Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea89eec6 authored by Jim Laskey's avatar Jim Laskey Committed by Android (Google) Code Review
Browse files

Merge "Insert name into toast during contact deletion"

parents af338dd0 4beed7e9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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>
+12 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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) {
@@ -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();
        }
    }
+7 −7
Original line number Diff line number Diff line
@@ -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) {