mirror of
				https://github.com/SimpleMobileTools/Simple-Contacts.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	creating the dialog for managing visible contact fields
This commit is contained in:
		| @@ -6,6 +6,7 @@ import com.simplemobiletools.commons.extensions.beVisibleIf | |||||||
| import com.simplemobiletools.commons.extensions.updateTextColors | import com.simplemobiletools.commons.extensions.updateTextColors | ||||||
| import com.simplemobiletools.commons.models.RadioItem | import com.simplemobiletools.commons.models.RadioItem | ||||||
| import com.simplemobiletools.contacts.R | import com.simplemobiletools.contacts.R | ||||||
|  | import com.simplemobiletools.contacts.dialogs.ManageVisibleFieldsDialog | ||||||
| import com.simplemobiletools.contacts.extensions.config | import com.simplemobiletools.contacts.extensions.config | ||||||
| import com.simplemobiletools.contacts.helpers.ON_CLICK_CALL_CONTACT | import com.simplemobiletools.contacts.helpers.ON_CLICK_CALL_CONTACT | ||||||
| import com.simplemobiletools.contacts.helpers.ON_CLICK_EDIT_CONTACT | import com.simplemobiletools.contacts.helpers.ON_CLICK_EDIT_CONTACT | ||||||
| @@ -42,7 +43,7 @@ class SettingsActivity : SimpleActivity() { | |||||||
|  |  | ||||||
|     private fun setupManageShownContactFields() { |     private fun setupManageShownContactFields() { | ||||||
|         settings_manage_contact_fields_holder.setOnClickListener { |         settings_manage_contact_fields_holder.setOnClickListener { | ||||||
|  |             ManageVisibleFieldsDialog(this) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -0,0 +1,55 @@ | |||||||
|  | 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.* | ||||||
|  |  | ||||||
|  | class ManageVisibleFieldsDialog(val activity: BaseSimpleActivity) { | ||||||
|  |     private var view = activity.layoutInflater.inflate(R.layout.dialog_manage_visible_fields, null) | ||||||
|  |     private val fields = LinkedHashMap<Int, Int>() | ||||||
|  |  | ||||||
|  |     init { | ||||||
|  |         fields.apply { | ||||||
|  |             put(SHOW_PREFIX_FIELD, R.id.manage_visible_fields_prefix) | ||||||
|  |             put(SHOW_FIRST_NAME_FIELD, R.id.manage_visible_fields_first_name) | ||||||
|  |             put(SHOW_MIDDLE_NAME_FIELD, R.id.manage_visible_fields_middle_name) | ||||||
|  |             put(SHOW_SURNAME_FIELD, R.id.manage_visible_fields_surname) | ||||||
|  |             put(SHOW_SUFFIX_FIELD, R.id.manage_visible_fields_suffix) | ||||||
|  |             put(SHOW_PHONE_NUMBERS_FIELD, R.id.manage_visible_fields_phone_numbers) | ||||||
|  |             put(SHOW_EMAILS_FIELD, R.id.manage_visible_fields_emails) | ||||||
|  |             put(SHOW_ADDRESSES_FIELD, R.id.manage_visible_fields_addresses) | ||||||
|  |             put(SHOW_EVENTS_FIELD, R.id.manage_visible_fields_events) | ||||||
|  |             put(SHOW_NOTES_FIELD, R.id.manage_visible_fields_notes) | ||||||
|  |             put(SHOW_ORGANIZATION_FIELD, R.id.manage_visible_fields_organization) | ||||||
|  |             put(SHOW_GROUPS_FIELD, R.id.manage_visible_fields_groups) | ||||||
|  |             put(SHOW_CONTACT_SOURCE_FIELD, R.id.manage_visible_fields_contact_source) | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         val showContactFields = activity.config.showContactFields | ||||||
|  |         for ((key, value) in fields) { | ||||||
|  |             view.findViewById<MyAppCompatCheckbox>(value).isChecked = showContactFields 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 fields) { | ||||||
|  |             if (view.findViewById<MyAppCompatCheckbox>(value).isChecked) { | ||||||
|  |                 result += key | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         activity.config.showContactFields = result | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										122
									
								
								app/src/main/res/layout/dialog_manage_visible_fields.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								app/src/main/res/layout/dialog_manage_visible_fields.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,122 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <ScrollView | ||||||
|  |     xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:id="@+id/manage_visible_fields_scroll_view" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="wrap_content"> | ||||||
|  |  | ||||||
|  |     <LinearLayout | ||||||
|  |         android:id="@+id/manage_visible_fields_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_fields_prefix" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/prefix"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_first_name" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/first_name"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_middle_name" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/middle_name"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_surname" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/surname"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_suffix" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/suffix"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_phone_numbers" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/phone_numbers"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_emails" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/emails"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_addresses" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/addresses"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_events" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/events"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_notes" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/notes"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_organization" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/organization"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_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"/> | ||||||
|  |  | ||||||
|  |         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||||
|  |             android:id="@+id/manage_visible_fields_contact_source" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingBottom="@dimen/activity_margin" | ||||||
|  |             android:paddingTop="@dimen/activity_margin" | ||||||
|  |             android:text="@string/contact_source"/> | ||||||
|  |  | ||||||
|  |     </LinearLayout> | ||||||
|  | </ScrollView> | ||||||
		Reference in New Issue
	
	Block a user