diff options
author | Brian Attwell <brianattwell@google.com> | 2015-03-03 11:13:49 -0800 |
---|---|---|
committer | Brian Attwell <brianattwell@google.com> | 2015-03-03 15:51:26 -0800 |
commit | d3946cae17273ed1c2fceb507990882e3f828ba9 (patch) | |
tree | c3877cb532d6905963c077e7a07d0ba820ac614a /src/com/android/contacts/activities/PeopleActivity.java | |
parent | d2962a3bb669a381d31a586df3b906033a8fa571 (diff) | |
download | android_packages_apps_Contacts-d3946cae17273ed1c2fceb507990882e3f828ba9.tar.gz android_packages_apps_Contacts-d3946cae17273ed1c2fceb507990882e3f828ba9.tar.bz2 android_packages_apps_Contacts-d3946cae17273ed1c2fceb507990882e3f828ba9.zip |
Batch join contacts
* Add new action to ContactSaveService to support joining more than
two contacts toghether.
* Add new dialog fragment for the join
Bug: 19549465
Change-Id: Ib0b1d5e7652e429f8e78d81dd3d98d03b3129e1e
Diffstat (limited to 'src/com/android/contacts/activities/PeopleActivity.java')
-rw-r--r-- | src/com/android/contacts/activities/PeopleActivity.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java index 577bf57f1..d660f4fa3 100644 --- a/src/com/android/contacts/activities/PeopleActivity.java +++ b/src/com/android/contacts/activities/PeopleActivity.java @@ -64,6 +64,8 @@ import com.android.contacts.common.list.ContactListFilterController; import com.android.contacts.common.list.ContactTileAdapter.DisplayType; import com.android.contacts.interactions.ContactMultiDeletionInteraction; import com.android.contacts.interactions.ContactMultiDeletionInteraction.MultiContactDeleteListener; +import com.android.contacts.interactions.JoinContactsDialogFragment; +import com.android.contacts.interactions.JoinContactsDialogFragment.JoinContactsListener; import com.android.contacts.list.MultiSelectContactsListFragment; import com.android.contacts.list.MultiSelectContactsListFragment.OnCheckBoxListActionListener; import com.android.contacts.list.ContactTileListFragment; @@ -100,7 +102,8 @@ public class PeopleActivity extends ContactsActivity implements DialogManager.DialogShowingViewActivity, ContactListFilterController.ContactListFilterListener, ProviderStatusListener, - MultiContactDeleteListener { + MultiContactDeleteListener, + JoinContactsListener { private static final String TAG = "PeopleActivity"; @@ -1065,6 +1068,8 @@ public class PeopleActivity extends ContactsActivity implements && mAllFragment.getSelectedContactIds().size() != 0; makeMenuItemVisible(menu, R.id.menu_share, showSelectedContactOptions); makeMenuItemVisible(menu, R.id.menu_delete, showSelectedContactOptions); + makeMenuItemVisible(menu, R.id.menu_join, showSelectedContactOptions); + makeMenuItemEnabled(menu, R.id.menu_join, mAllFragment.getSelectedContactIds().size() > 1); // Debug options need to be visible even in search mode. makeMenuItemVisible(menu, R.id.export_database, mEnableDebugMenuOptions); @@ -1081,12 +1086,19 @@ public class PeopleActivity extends ContactsActivity implements } private void makeMenuItemVisible(Menu menu, int itemId, boolean visible) { - MenuItem item =menu.findItem(itemId); + final MenuItem item = menu.findItem(itemId); if (item != null) { item.setVisible(visible); } } + private void makeMenuItemEnabled(Menu menu, int itemId, boolean visible) { + final MenuItem item = menu.findItem(itemId); + if (item != null) { + item.setEnabled(visible); + } + } + @Override public boolean onOptionsItemSelected(MenuItem item) { if (mDisableOptionItemSelected) { @@ -1130,6 +1142,9 @@ public class PeopleActivity extends ContactsActivity implements case R.id.menu_share: shareSelectedContacts(); return true; + case R.id.menu_join: + joinSelectedContacts(); + return true; case R.id.menu_delete: deleteSelectedContacts(); return true; @@ -1197,6 +1212,15 @@ public class PeopleActivity extends ContactsActivity implements ImplicitIntentsUtil.startActivityOutsideApp(this, intent); } + private void joinSelectedContacts() { + JoinContactsDialogFragment.start(this, mAllFragment.getSelectedContactIds()); + } + + @Override + public void onContactsJoined() { + mAllFragment.clearCheckBoxes(); + } + private void deleteSelectedContacts() { ContactMultiDeletionInteraction.start(PeopleActivity.this, mAllFragment.getSelectedContactIds()); |