Loading res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -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> Loading src/com/android/contacts/interactions/ContactDeletionInteraction.java +12 −2 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ public class ContactDeletionInteraction extends Fragment 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; Loading @@ -73,9 +74,11 @@ public class ContactDeletionInteraction extends Fragment 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; Loading Loading @@ -248,6 +251,7 @@ public class ContactDeletionInteraction extends Fragment 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) { Loading Loading @@ -338,8 +342,14 @@ public class ContactDeletionInteraction extends Fragment 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(); } } Loading tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java +7 −7 Original line number Diff line number Diff line Loading @@ -107,33 +107,33 @@ public class ContactDeletionInteractionTest } 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) { Loading Loading
res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -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> Loading
src/com/android/contacts/interactions/ContactDeletionInteraction.java +12 −2 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ public class ContactDeletionInteraction extends Fragment 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; Loading @@ -73,9 +74,11 @@ public class ContactDeletionInteraction extends Fragment 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; Loading Loading @@ -248,6 +251,7 @@ public class ContactDeletionInteraction extends Fragment 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) { Loading Loading @@ -338,8 +342,14 @@ public class ContactDeletionInteraction extends Fragment 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(); } } Loading
tests/src/com/android/contacts/interactions/ContactDeletionInteractionTest.java +7 −7 Original line number Diff line number Diff line Loading @@ -107,33 +107,33 @@ public class ContactDeletionInteractionTest } 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) { Loading