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

Commit c24f1714 authored by Frank Sposaro's avatar Frank Sposaro Committed by Android (Google) Code Review
Browse files

Merge "ContactDetails no longer needs to traverse all entries onLongPress."

parents c94a28f6 826b6ee0
Loading
Loading
Loading
Loading
+22 −29
Original line number Diff line number Diff line
@@ -223,6 +223,9 @@ public class ContactDetailFragment extends Fragment implements FragmentKeyListen

    private boolean mTransitionAnimationRequested;

    private boolean mIsUniqueNumber;
    private boolean mIsUniqueEmail;

    public ContactDetailFragment() {
        // Explicit constructor for inflation
    }
@@ -422,6 +425,9 @@ public class ContactDetailFragment extends Fragment implements FragmentKeyListen
        Collapser.collapseList(mPostalEntries);
        Collapser.collapseList(mImEntries);

        mIsUniqueNumber = mPhoneEntries.size() == 1;
        mIsUniqueEmail = mEmailEntries.size() == 1;

        // Make one aggregated list of all entries for display to the user.
        setupFlattenedList();

@@ -1716,26 +1722,14 @@ public class ContactDetailFragment extends Fragment implements FragmentKeyListen

        String selectedMimeType = selectedEntry.mimetype;

        // Only allow primary support for Phone and Email content types
        if (Phone.CONTENT_ITEM_TYPE.equals(selectedMimeType) ||
                Email.CONTENT_ITEM_TYPE.equals(selectedMimeType)) {

            // Used to determine if entry is the only mime type of its kind
        // Defaults to true will only enable the detail to be copied to the clipboard.
        boolean isUniqueMimeType = true;

            // Checking for unique mime type
            for (int positionCounter = 0; positionCounter < mAllEntries.size(); positionCounter++) {
                final ViewEntry entry = mAllEntries.get(positionCounter);

                // Ignoring cases where entry is not a detail entry
                if (entry.getViewType() != ViewAdapter.VIEW_TYPE_DETAIL_ENTRY) continue;

                final DetailViewEntry checkEntry = (DetailViewEntry) entry;
                if (positionCounter != info.position &&
                        checkEntry.mimetype.equalsIgnoreCase(selectedMimeType)) {
                    isUniqueMimeType = false;
                    break;
                }
        // Only allow primary support for Phone and Email content types
        if (Phone.CONTENT_ITEM_TYPE.equals(selectedMimeType)) {
            isUniqueMimeType = mIsUniqueNumber;
        } else if (Email.CONTENT_ITEM_TYPE.equals(selectedMimeType)) {
            isUniqueMimeType = mIsUniqueEmail;
        }

        // Checking for previously set default
@@ -1747,7 +1741,6 @@ public class ContactDetailFragment extends Fragment implements FragmentKeyListen
                    ContextMenu.NONE, getString(R.string.set_default));
        }
    }
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {