Merge "Insert name into toast during contact deletion"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2b4b28a..8ee4c8d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -172,6 +172,9 @@
<!-- Toast shown after two contacts have been linked by a user action. [CHAR LIMIT=NONE] -->
<string name="contactsJoinedMessage">Contacts linked</string>
+ <!-- Toast shown after contact deleted when no display name is given. [CHAR LIMIT=20]-->
+ <string name="contact_deleted_named_toast"><xliff:g id="name">%s</xliff:g> deleted</string>
+
<!-- Toast shown after contacts that the user has selected are deleted by a user action. [CHAR LIMIT=30] -->
<plurals name="contacts_deleted_toast">
<item quantity="one">Contact deleted</item>
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index c9a5a9b..ec500f3 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -66,6 +66,7 @@
Entity.DATA_SET, // 2
Entity.CONTACT_ID, // 3
Entity.LOOKUP_KEY, // 4
+ Entity.DISPLAY_NAME, // 5
};
private static final int COLUMN_INDEX_RAW_CONTACT_ID = 0;
@@ -73,9 +74,11 @@
private static final int COLUMN_INDEX_DATA_SET = 2;
private static final int COLUMN_INDEX_CONTACT_ID = 3;
private static final int COLUMN_INDEX_LOOKUP_KEY = 4;
+ private static final int COLUMN_INDEX_DISPLAY_NAME = 5;
private boolean mActive;
private Uri mContactUri;
+ private String mDisplayName;
private boolean mFinishActivityWhenDone;
private Context mContext;
private AlertDialog mDialog;
@@ -248,6 +251,7 @@
final String dataSet = cursor.getString(COLUMN_INDEX_DATA_SET);
contactId = cursor.getLong(COLUMN_INDEX_CONTACT_ID);
lookupKey = cursor.getString(COLUMN_INDEX_LOOKUP_KEY);
+ mDisplayName = cursor.getString(COLUMN_INDEX_DISPLAY_NAME);
AccountType type = accountTypes.getAccountType(accountType, dataSet);
boolean writable = type == null || type.areContactsWritable();
if (writable) {
@@ -338,8 +342,14 @@
if (isAdded() && mFinishActivityWhenDone) {
getActivity().setResult(RESULT_CODE_DELETED);
getActivity().finish();
- final String deleteToastMessage = getResources().getQuantityString(R.plurals
- .contacts_deleted_toast, /* quantity */ 1);
+ final String deleteToastMessage;
+ if (mDisplayName == null) {
+ deleteToastMessage = getResources().getQuantityString(
+ R.plurals.contacts_deleted_toast, /* quantity */ 1);
+ } else {
+ deleteToastMessage = getResources().getString(
+ R.string.contact_deleted_named_toast, mDisplayName);
+ }
Toast.makeText(mContext, deleteToastMessage, Toast.LENGTH_LONG).show();
}
}
diff --git a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
index f943aaa..9152956 100644
--- a/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
+++ b/tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java
@@ -107,33 +107,33 @@
}
public void testSingleWritableRawContact() {
- expectQuery().returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo");
+ expectQuery().returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo", "baz");
assertWithMessageId(R.string.deleteConfirmation);
}
public void testReadOnlyRawContacts() {
- expectQuery().returnRow(1, READONLY_ACCOUNT_TYPE, null, 13, "foo");
+ expectQuery().returnRow(1, READONLY_ACCOUNT_TYPE, null, 13, "foo", "baz");
assertWithMessageId(R.string.readOnlyContactWarning);
}
public void testMixOfWritableAndReadOnlyRawContacts() {
expectQuery()
- .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo")
- .returnRow(2, READONLY_ACCOUNT_TYPE, null, 13, "foo");
+ .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo", "baz")
+ .returnRow(2, READONLY_ACCOUNT_TYPE, null, 13, "foo", "baz");
assertWithMessageId(R.string.readOnlyContactDeleteConfirmation);
}
public void testMultipleWritableRawContacts() {
expectQuery()
- .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo")
- .returnRow(2, WRITABLE_ACCOUNT_TYPE, null, 13, "foo");
+ .returnRow(1, WRITABLE_ACCOUNT_TYPE, null, 13, "foo", "baz")
+ .returnRow(2, WRITABLE_ACCOUNT_TYPE, null, 13, "foo", "baz");
assertWithMessageId(R.string.multipleContactDeleteConfirmation);
}
private Query expectQuery() {
return mContactsProvider.expectQuery(ENTITY_URI).withProjection(
Entity.RAW_CONTACT_ID, Entity.ACCOUNT_TYPE, Entity.DATA_SET, Entity.CONTACT_ID,
- Entity.LOOKUP_KEY);
+ Entity.LOOKUP_KEY, Entity.DISPLAY_NAME);
}
private void assertWithMessageId(int messageId) {