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

Commit 95a13451 authored by yaolu's avatar yaolu
Browse files

Provide only "add phone number" option in QuickContact for SIM contact

Bug: 31547071

Test: Manually test for
1, a SIM contact;
2, linked contact from a SIM contact and a non-SIM contact;
3, linked contact all from SIM contacts.

Change-Id: Iab5b5161574d644c9a7c4289a7a3d175ae86169c
parent 45540662
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.provider.ContactsContract.Directory;
import android.provider.ContactsContract.DisplayNameSources;

import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.SimAccountType;
import com.android.contacts.common.util.DataStatus;
import com.android.contacts.group.GroupMetaData;

@@ -471,6 +472,19 @@ public class Contact {
        return mIsUserProfile;
    }

    /**
     * @return true if all the raw contacts are from SIM accounts, and false otherwise.
     */
    public boolean areAllRawContactsSimAccounts(final Context context) {
        if (getRawContacts() == null) return false;

        for (RawContact rawContact : getRawContacts()) {
            final AccountType accountType = rawContact.getAccountType(context);
            if (!(accountType instanceof SimAccountType)) return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "{requested=" + mRequestedUri + ",lookupkey=" + mLookupKey +
+24 −18
Original line number Diff line number Diff line
@@ -1660,7 +1660,7 @@ public class QuickContactActivity extends ContactsActivity
                mScroller);

        if (contactCardEntries.size() == 0 && aboutCardEntries.size() == 0) {
            initializeNoContactDetailCard();
            initializeNoContactDetailCard(cp2DataCardModel.areAllRawContactsSimAccounts);
        } else {
            mNoContactDetailsCard.setVisibility(View.GONE);
        }
@@ -1681,8 +1681,9 @@ public class QuickContactActivity extends ContactsActivity

    /**
     * Create a card that shows "Add email" and "Add phone number" entries in grey.
     * When contact is a SIM contact, only shows "Add phone number".
     */
    private void initializeNoContactDetailCard() {
    private void initializeNoContactDetailCard(boolean areAllRawContactsSimAccounts) {
        final Drawable phoneIcon = getResources().getDrawable(
                R.drawable.ic_phone_24dp).mutate();
        final Entry phonePromptEntry = new Entry(CARD_ENTRY_ID_EDIT_CONTACT,
@@ -1699,6 +1700,11 @@ public class QuickContactActivity extends ContactsActivity
                /* thirdExtras = */ null,
                R.drawable.ic_phone_24dp);

        final List<List<Entry>> promptEntries = new ArrayList<>();
        promptEntries.add(new ArrayList<Entry>(1));
        promptEntries.get(0).add(phonePromptEntry);

        if (!areAllRawContactsSimAccounts) {
            final Drawable emailIcon = getResources().getDrawable(
                    R.drawable.ic_email_24dp).mutate();
            final Entry emailPromptEntry = new Entry(CARD_ENTRY_ID_EDIT_CONTACT,
@@ -1713,11 +1719,9 @@ public class QuickContactActivity extends ContactsActivity
                    /* thirdAction = */ Entry.ACTION_NONE, /* thirdExtras = */ null,
                    R.drawable.ic_email_24dp);

        final List<List<Entry>> promptEntries = new ArrayList<>();
        promptEntries.add(new ArrayList<Entry>(1));
            promptEntries.add(new ArrayList<Entry>(1));
        promptEntries.get(0).add(phonePromptEntry);
            promptEntries.get(1).add(emailPromptEntry);
        }

        final int subHeaderTextColor = getResources().getColor(
                R.color.quickcontact_entry_sub_header_text_color);
@@ -1828,6 +1832,7 @@ public class QuickContactActivity extends ContactsActivity
        dataModel.aboutCardEntries = aboutCardEntries;
        dataModel.contactCardEntries = contactCardEntries;
        dataModel.dataItemsMap = dataItemsMap;
        dataModel.areAllRawContactsSimAccounts = data.areAllRawContactsSimAccounts(this);
        return dataModel;
    }

@@ -1844,6 +1849,7 @@ public class QuickContactActivity extends ContactsActivity
        public List<List<Entry>> aboutCardEntries;
        public List<List<Entry>> contactCardEntries;
        public String customAboutCardName;
        public boolean areAllRawContactsSimAccounts;
    }

    private static class MutableString {