From f042df95fa3d3e0560ceec93c4c66e2d3f6f3224 Mon Sep 17 00:00:00 2001 From: Dmitri Plotnikov Date: Fri, 2 Oct 2009 17:34:27 -0700 Subject: [PATCH] [Issue 2157935] Adding a confirmation dialog for contact split. Also renaming the menu button to "Separate" Also making the menu button only visible for aggregate contacts Bug discussed with and approved by Tim. Change-Id: Ie6950b2779c37a1694e01e5ca5ef819ae3d850b5 --- res/values/strings.xml | 12 ++++++-- .../android/contacts/ui/EditContactActivity.java | 34 ++++++++++++++++++---- 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index e1cf4ca..7dc1778 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -120,13 +120,21 @@ Make default email - Split + Separate Split contact - Contact split + Contacts separated + + + Separate Contact + + + Are you sure you want to separate this single contact + into multiple contacts: one for each set of contact information that was joined into it? + Join diff --git a/src/com/android/contacts/ui/EditContactActivity.java b/src/com/android/contacts/ui/EditContactActivity.java index e3c4340..3377bd6 100644 --- a/src/com/android/contacts/ui/EditContactActivity.java +++ b/src/com/android/contacts/ui/EditContactActivity.java @@ -19,7 +19,6 @@ package com.android.contacts.ui; import com.android.contacts.ContactsListActivity; import com.android.contacts.ContactsUtils; import com.android.contacts.R; -import com.android.contacts.ScrollingTabWidget; import com.android.contacts.model.ContactsSource; import com.android.contacts.model.Editor; import com.android.contacts.model.EntityDelta; @@ -30,10 +29,8 @@ import com.android.contacts.model.Sources; import com.android.contacts.model.Editor.EditorListener; import com.android.contacts.model.EntityDelta.ValuesDelta; import com.android.contacts.ui.widget.ContactEditorView; -import com.android.contacts.ui.widget.PhotoEditorView; import com.android.contacts.util.EmptyService; import com.android.contacts.util.WeakAsyncTask; -import com.android.internal.widget.ContactHeaderWidget; import com.google.android.collect.Lists; import android.accounts.Account; @@ -396,6 +393,14 @@ public final class EditContactActivity extends Activity MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.edit, menu); + + + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + menu.findItem(R.id.menu_split).setVisible(mState != null && mState.size() > 1); return true; } @@ -725,8 +730,27 @@ public final class EditContactActivity extends Activity } private boolean doSplitContactAction() { - mState.splitRawContacts(); - return doSaveAction(SAVE_MODE_SPLIT); + if (!hasValidState()) return false; + + showAndManageDialog(createSplitDialog()); + return true; + } + + private Dialog createSplitDialog() { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.splitConfirmation_title); + builder.setIcon(android.R.drawable.ic_dialog_alert); + builder.setMessage(R.string.splitConfirmation); + builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // Split the contacts + mState.splitRawContacts(); + doSaveAction(SAVE_MODE_SPLIT); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.setCancelable(false); + return builder.create(); } private boolean doJoinContactAction() { -- 2.11.0