summaryrefslogtreecommitdiffstats
path: root/src/com/android/contacts/activities/PeopleActivity.java
diff options
context:
space:
mode:
authorBrian Attwell <brianattwell@google.com>2015-03-03 11:13:49 -0800
committerBrian Attwell <brianattwell@google.com>2015-03-03 15:51:26 -0800
commitd3946cae17273ed1c2fceb507990882e3f828ba9 (patch)
treec3877cb532d6905963c077e7a07d0ba820ac614a /src/com/android/contacts/activities/PeopleActivity.java
parentd2962a3bb669a381d31a586df3b906033a8fa571 (diff)
downloadandroid_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.java28
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());