mirror of
				https://github.com/SimpleMobileTools/Simple-Contacts.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	add a settings item for managing visible tabs
This commit is contained in:
		| @@ -9,6 +9,7 @@ import com.simplemobiletools.commons.extensions.updateTextColors | ||||
| import com.simplemobiletools.commons.models.RadioItem | ||||
| import com.simplemobiletools.contacts.R | ||||
| import com.simplemobiletools.contacts.dialogs.ManageVisibleFieldsDialog | ||||
| import com.simplemobiletools.contacts.dialogs.ManageVisibleTabsDialog | ||||
| import com.simplemobiletools.contacts.extensions.config | ||||
| import com.simplemobiletools.contacts.helpers.ON_CLICK_CALL_CONTACT | ||||
| import com.simplemobiletools.contacts.helpers.ON_CLICK_EDIT_CONTACT | ||||
| @@ -28,6 +29,7 @@ class SettingsActivity : SimpleActivity() { | ||||
|         setupPurchaseThankYou() | ||||
|         setupCustomizeColors() | ||||
|         setupManageShownContactFields() | ||||
|         setupManageShownTabs() | ||||
|         setupUseEnglish() | ||||
|         setupAvoidWhatsNew() | ||||
|         setupShowInfoBubble() | ||||
| @@ -58,6 +60,12 @@ class SettingsActivity : SimpleActivity() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun setupManageShownTabs() { | ||||
|         settings_manage_tabs_holder.setOnClickListener { | ||||
|             ManageVisibleTabsDialog(this) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun setupUseEnglish() { | ||||
|         settings_use_english_holder.beVisibleIf(config.wasUseEnglishToggled || Locale.getDefault().language != "en") | ||||
|         settings_use_english.isChecked = config.useEnglish | ||||
|   | ||||
| @@ -36,7 +36,7 @@ class ManageVisibleFieldsDialog(val activity: BaseSimpleActivity) { | ||||
|         } | ||||
|  | ||||
|         AlertDialog.Builder(activity) | ||||
|                 .setPositiveButton(R.string.ok, { dialog, which -> dialogConfirmed() }) | ||||
|                 .setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() } | ||||
|                 .setNegativeButton(R.string.cancel, null) | ||||
|                 .create().apply { | ||||
|                     activity.setupDialogStuff(view, this) | ||||
|   | ||||
| @@ -0,0 +1,47 @@ | ||||
| package com.simplemobiletools.contacts.dialogs | ||||
|  | ||||
| import android.support.v7.app.AlertDialog | ||||
| import com.simplemobiletools.commons.activities.BaseSimpleActivity | ||||
| import com.simplemobiletools.commons.extensions.setupDialogStuff | ||||
| import com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||
| import com.simplemobiletools.contacts.R | ||||
| import com.simplemobiletools.contacts.extensions.config | ||||
| import com.simplemobiletools.contacts.helpers.CONTACTS_TAB_MASK | ||||
| import com.simplemobiletools.contacts.helpers.FAVORITES_TAB_MASK | ||||
| import com.simplemobiletools.contacts.helpers.GROUPS_TAB_MASK | ||||
|  | ||||
| class ManageVisibleTabsDialog(val activity: BaseSimpleActivity) { | ||||
|     private var view = activity.layoutInflater.inflate(R.layout.dialog_manage_visible_tabs, null) | ||||
|     private val tabs = LinkedHashMap<Int, Int>() | ||||
|  | ||||
|     init { | ||||
|         tabs.apply { | ||||
|             put(CONTACTS_TAB_MASK, R.id.manage_visible_tabs_contacts) | ||||
|             put(FAVORITES_TAB_MASK, R.id.manage_visible_tabs_favorites) | ||||
|             put(GROUPS_TAB_MASK, R.id.manage_visible_tabs_groups) | ||||
|         } | ||||
|  | ||||
|         val showTabs = activity.config.showTabs | ||||
|         for ((key, value) in tabs) { | ||||
|             view.findViewById<MyAppCompatCheckbox>(value).isChecked = showTabs and key != 0 | ||||
|         } | ||||
|  | ||||
|         AlertDialog.Builder(activity) | ||||
|                 .setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() } | ||||
|                 .setNegativeButton(R.string.cancel, null) | ||||
|                 .create().apply { | ||||
|                     activity.setupDialogStuff(view, this) | ||||
|                 } | ||||
|     } | ||||
|  | ||||
|     private fun dialogConfirmed() { | ||||
|         var result = 0 | ||||
|         for ((key, value) in tabs) { | ||||
|             if (view.findViewById<MyAppCompatCheckbox>(value).isChecked) { | ||||
|                 result += key | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         activity.config.showTabs = result | ||||
|     } | ||||
| } | ||||
| @@ -48,4 +48,8 @@ class Config(context: Context) : BaseConfig(context) { | ||||
|     var filterDuplicates: Boolean | ||||
|         get() = prefs.getBoolean(FILTER_DUPLICATES, true) | ||||
|         set(filterDuplicates) = prefs.edit().putBoolean(FILTER_DUPLICATES, filterDuplicates).apply() | ||||
|  | ||||
|     var showTabs: Int | ||||
|         get() = prefs.getInt(SHOW_TABS, ALL_TABS_MASK) | ||||
|         set(showTabs) = prefs.edit().putInt(SHOW_TABS, showTabs).apply() | ||||
| } | ||||
|   | ||||
| @@ -12,6 +12,7 @@ const val LOCAL_ACCOUNT_NAME = "local_account_name" | ||||
| const val LOCAL_ACCOUNT_TYPE = "local_account_type" | ||||
| const val ON_CONTACT_CLICK = "on_contact_click" | ||||
| const val SHOW_CONTACT_FIELDS = "show_contact_fields" | ||||
| const val SHOW_TABS = "show_tabs" | ||||
| const val FILTER_DUPLICATES = "filter_duplicates" | ||||
|  | ||||
| const val CONTACT_ID = "contact_id" | ||||
|   | ||||
| @@ -77,6 +77,28 @@ | ||||
|  | ||||
|         </RelativeLayout> | ||||
|  | ||||
|         <RelativeLayout | ||||
|             android:id="@+id/settings_manage_tabs_holder" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginTop="@dimen/medium_margin" | ||||
|             android:background="?attr/selectableItemBackground" | ||||
|             android:paddingBottom="@dimen/activity_margin" | ||||
|             android:paddingLeft="@dimen/normal_margin" | ||||
|             android:paddingRight="@dimen/normal_margin" | ||||
|             android:paddingTop="@dimen/activity_margin"> | ||||
|  | ||||
|             <com.simplemobiletools.commons.views.MyTextView | ||||
|                 android:id="@+id/settings_manage_tabs" | ||||
|                 android:layout_width="wrap_content" | ||||
|                 android:layout_height="wrap_content" | ||||
|                 android:layout_centerVertical="true" | ||||
|                 android:paddingLeft="@dimen/medium_margin" | ||||
|                 android:paddingStart="@dimen/medium_margin" | ||||
|                 android:text="@string/manage_shown_tabs"/> | ||||
|  | ||||
|         </RelativeLayout> | ||||
|  | ||||
|         <RelativeLayout | ||||
|             android:id="@+id/settings_use_english_holder" | ||||
|             android:layout_width="match_parent" | ||||
|   | ||||
							
								
								
									
										42
									
								
								app/src/main/res/layout/dialog_manage_visible_tabs.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								app/src/main/res/layout/dialog_manage_visible_tabs.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <ScrollView | ||||
|     xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     android:id="@+id/manage_visible_tabs_scroll_view" | ||||
|     android:layout_width="match_parent" | ||||
|     android:layout_height="wrap_content"> | ||||
|  | ||||
|     <LinearLayout | ||||
|         android:id="@+id/manage_visible_tabs_holder" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:orientation="vertical" | ||||
|         android:paddingLeft="@dimen/activity_margin" | ||||
|         android:paddingRight="@dimen/activity_margin" | ||||
|         android:paddingTop="@dimen/activity_margin"> | ||||
|  | ||||
|         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||
|             android:id="@+id/manage_visible_tabs_contacts" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:paddingBottom="@dimen/activity_margin" | ||||
|             android:paddingTop="@dimen/activity_margin" | ||||
|             android:text="@string/contacts"/> | ||||
|  | ||||
|         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||
|             android:id="@+id/manage_visible_tabs_favorites" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:paddingBottom="@dimen/activity_margin" | ||||
|             android:paddingTop="@dimen/activity_margin" | ||||
|             android:text="@string/favorites"/> | ||||
|  | ||||
|         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||
|             android:id="@+id/manage_visible_tabs_groups" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:paddingBottom="@dimen/activity_margin" | ||||
|             android:paddingTop="@dimen/activity_margin" | ||||
|             android:text="@string/groups"/> | ||||
|  | ||||
|     </LinearLayout> | ||||
| </ScrollView> | ||||
		Reference in New Issue
	
	Block a user