Loading res/layout/expanding_entry_card_item.xml +3 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,8 @@ limitations under the License. --> <RelativeLayout <view class="com.android.contacts.quickcontact.ExpandingEntryCardView$EntryView" xmlns:android="http://schemas.android.com/apk/res/android" style="@style/SelectableItem" android:layout_width="match_parent" Loading Loading @@ -93,4 +94,4 @@ android:layout_marginTop="@dimen/expanding_entry_card_item_icon_margin_top" android:layout_marginBottom="@dimen/expanding_entry_card_item_alternate_icon_margin_bottom" /> </RelativeLayout> </view> src/com/android/contacts/quickcontact/ExpandingEntryCardView.java +65 −5 Original line number Diff line number Diff line Loading @@ -33,9 +33,11 @@ import android.transition.TransitionManager; import android.transition.TransitionSet; import android.util.AttributeSet; import android.util.Log; import android.view.ContextMenu.ContextMenuInfo; import android.view.LayoutInflater; import android.view.TouchDelegate; import android.view.View; import android.view.View.OnCreateContextMenuListener; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; Loading Loading @@ -78,19 +80,22 @@ public class ExpandingEntryCardView extends CardView { private final String mAlternateContentDescription; private final boolean mShouldApplyColor; private final boolean mIsEditable; private final EntryContextMenuInfo mEntryContextMenuInfo; public Entry(int viewId, Drawable icon, String header, String subHeader, String text, Intent intent, Drawable alternateIcon, Intent alternateIntent, String alternateContentDescription, boolean shouldApplyColor, boolean isEditable) { boolean isEditable, EntryContextMenuInfo entryContextMenuInfo) { this(viewId, icon, header, subHeader, null, text, null, intent, alternateIcon, alternateIntent, alternateContentDescription, shouldApplyColor, isEditable); alternateIntent, alternateContentDescription, shouldApplyColor, isEditable, entryContextMenuInfo); } public Entry(int viewId, Drawable mainIcon, String header, String subHeader, Drawable subHeaderIcon, String text, Drawable textIcon, Intent intent, Drawable alternateIcon, Intent alternateIntent, String alternateContentDescription, boolean shouldApplyColor, boolean isEditable) { boolean shouldApplyColor, boolean isEditable, EntryContextMenuInfo entryContextMenuInfo) { mViewId = viewId; mIcon = mainIcon; mHeader = header; Loading @@ -104,6 +109,7 @@ public class ExpandingEntryCardView extends CardView { mAlternateContentDescription = alternateContentDescription; mShouldApplyColor = shouldApplyColor; mIsEditable = isEditable; mEntryContextMenuInfo = entryContextMenuInfo; } Drawable getIcon() { Loading Loading @@ -157,6 +163,10 @@ public class ExpandingEntryCardView extends CardView { int getViewId() { return mViewId; } EntryContextMenuInfo getEntryContextMenuInfo() { return mEntryContextMenuInfo; } } public interface ExpandingEntryCardViewListener { Loading @@ -170,6 +180,7 @@ public class ExpandingEntryCardView extends CardView { private CharSequence mExpandButtonText; private CharSequence mCollapseButtonText; private OnClickListener mOnClickListener; private OnCreateContextMenuListener mOnCreateContextMenuListener; private boolean mIsExpanded = false; private int mCollapsedEntriesCount; private ExpandingEntryCardViewListener mListener; Loading Loading @@ -292,6 +303,11 @@ public class ExpandingEntryCardView extends CardView { mOnClickListener = listener; } @Override public void setOnCreateContextMenuListener (OnCreateContextMenuListener listener) { mOnCreateContextMenuListener = listener; } private void insertEntriesIntoViewGroup() { mEntriesViewGroup.removeAllViews(); Loading Loading @@ -469,10 +485,12 @@ public class ExpandingEntryCardView extends CardView { } } private View createEntryView(LayoutInflater layoutInflater, Entry entry, int iconVisibility) { final View view = layoutInflater.inflate( private View createEntryView(LayoutInflater layoutInflater, final Entry entry, int iconVisibility) { final EntryView view = (EntryView) layoutInflater.inflate( R.layout.expanding_entry_card_item, this, false); view.setContextMenuInfo(entry.getEntryContextMenuInfo()); view.setId(entry.getViewId()); final ImageView icon = (ImageView) view.findViewById(R.id.icon); Loading Loading @@ -570,6 +588,9 @@ public class ExpandingEntryCardView extends CardView { view.getPaddingBottom()); } view.setOnCreateContextMenuListener(mOnCreateContextMenuListener); return view; } Loading Loading @@ -748,4 +769,43 @@ public class ExpandingEntryCardView extends CardView { public boolean shouldShow() { return mEntries != null && mEntries.size() > 0; } public static final class EntryView extends RelativeLayout { private EntryContextMenuInfo mEntryContextMenuInfo; public EntryView(Context context) { super(context); } public EntryView(Context context, AttributeSet attrs) { super(context, attrs); } public void setContextMenuInfo(EntryContextMenuInfo info) { mEntryContextMenuInfo = info; } @Override protected ContextMenuInfo getContextMenuInfo() { return mEntryContextMenuInfo; } } public static final class EntryContextMenuInfo implements ContextMenuInfo { private final String mCopyText; private final String mCopyLabel; public EntryContextMenuInfo(String copyText, String copyLabel) { mCopyText = copyText; mCopyLabel = copyLabel; } public String getCopyText() { return mCopyText; } public String getCopyLabel() { return mCopyLabel; } } } src/com/android/contacts/quickcontact/QuickContactActivity.java +59 −6 Original line number Diff line number Diff line Loading @@ -70,11 +70,14 @@ import android.support.v7.graphics.Palette; import android.text.TextUtils; import android.util.Log; import android.util.Pair; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnCreateContextMenuListener; import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; Loading @@ -86,6 +89,7 @@ import com.android.contacts.ContactsActivity; import com.android.contacts.NfcHandler; import com.android.contacts.R; import com.android.contacts.common.CallUtil; import com.android.contacts.common.ClipboardUtils; import com.android.contacts.common.Collapser; import com.android.contacts.common.ContactsUtils; import com.android.contacts.common.editor.SelectAccountDialogFragment; Loading Loading @@ -122,6 +126,7 @@ import com.android.contacts.interactions.ContactDeletionInteraction; import com.android.contacts.interactions.ContactInteraction; import com.android.contacts.interactions.SmsInteractionsLoader; import com.android.contacts.quickcontact.ExpandingEntryCardView.Entry; import com.android.contacts.quickcontact.ExpandingEntryCardView.EntryContextMenuInfo; import com.android.contacts.quickcontact.ExpandingEntryCardView.ExpandingEntryCardViewListener; import com.android.contacts.util.ImageViewDrawableSetter; import com.android.contacts.util.PhoneCapabilityTester; Loading Loading @@ -337,6 +342,33 @@ public class QuickContactActivity extends ContactsActivity { } }; private final OnCreateContextMenuListener mEntryContextMenuListener = new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { if (menuInfo == null) { return; } EntryContextMenuInfo info = (EntryContextMenuInfo) menuInfo; menu.setHeaderTitle(info.getCopyText()); menu.add(R.string.copy_text); } }; @Override public boolean onContextItemSelected(MenuItem item) { EntryContextMenuInfo menuInfo; try { menuInfo = (EntryContextMenuInfo) item.getMenuInfo(); } catch (ClassCastException e) { Log.e(TAG, "bad menuInfo", e); return false; } ClipboardUtils.copyText(this, menuInfo.getCopyLabel(), menuInfo.getCopyText(), true); return true; } /** * Headless fragment used to handle account selection callbacks invoked from * {@link DirectoryContactUtil}. Loading Loading @@ -519,11 +551,13 @@ public class QuickContactActivity extends ContactsActivity { mContactCard.setOnClickListener(mEntryClickHandler); mContactCard.setExpandButtonText( getResources().getString(R.string.expanding_entry_card_view_see_all)); mContactCard.setOnCreateContextMenuListener(mEntryContextMenuListener); mRecentCard.setOnClickListener(mEntryClickHandler); mRecentCard.setTitle(getResources().getString(R.string.recent_card_title)); mAboutCard.setOnClickListener(mEntryClickHandler); mAboutCard.setOnCreateContextMenuListener(mEntryContextMenuListener); mPhotoView = (ImageView) findViewById(R.id.photo); mTransparentView = findViewById(R.id.transparent_view); Loading Loading @@ -859,8 +893,9 @@ public class QuickContactActivity extends ContactsActivity { /* alternateIntent = */ null, /* alternateContentDescription = */ null, /* shouldApplyColor = */ false, /* isEditable = */ false ); /* isEditable = */ false, /* EntryContextMenuInfo = */ new EntryContextMenuInfo(phoneticName, getResources().getString(R.string.name_phonetic))); List<Entry> phoneticList = new ArrayList<>(); phoneticList.add(phoneticEntry); // Phonetic name comes after nickname. Check to see if the first entry type is nickname Loading Loading @@ -904,7 +939,7 @@ public class QuickContactActivity extends ContactsActivity { /* subHeader = */ null, /* text = */ null, getEditContactIntent(), /* alternateIcon = */ null, /* alternateIntent = */ null, /* alternateContentDescription = */ null, /* shouldApplyColor = */ true, /* isEditable = */ false); /* isEditable = */ false, /* EntryContextMenuInfo = */ null); final Drawable emailIcon = getResources().getDrawable( R.drawable.ic_email_24dp).mutate(); Loading @@ -912,7 +947,8 @@ public class QuickContactActivity extends ContactsActivity { emailIcon, getString(R.string.quickcontact_add_email), /* subHeader = */ null, /* text = */ null, getEditContactIntent(), /* alternateIcon = */ null, /* alternateIntent = */ null, /* alternateContentDescription = */ null, /* shouldApplyColor = */ true, /* isEditable = */ false); /* shouldApplyColor = */ true, /* isEditable = */ false, /* EntryContextMenuInfo = */ null); final List<List<Entry>> promptEntries = new ArrayList<>(); promptEntries.add(new ArrayList<Entry>(1)); Loading Loading @@ -1019,6 +1055,7 @@ public class QuickContactActivity extends ContactsActivity { Intent alternateIntent = null; String alternateContentDescription = null; final boolean isEditable = false; EntryContextMenuInfo entryContextMenuInfo = null; DataKind kind = dataItem.getDataKind(); Loading @@ -1044,10 +1081,12 @@ public class QuickContactActivity extends ContactsActivity { im.getCustomProtocol()).toString(); subHeader = im.getData(); } entryContextMenuInfo = new EntryContextMenuInfo(im.getData(), header); } else if (dataItem instanceof OrganizationDataItem) { final OrganizationDataItem organization = (OrganizationDataItem) dataItem; header = getResources().getString(R.string.header_organization_entry); subHeader = organization.getCompany(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); text = organization.getTitle(); } else if (dataItem instanceof NicknameDataItem) { final NicknameDataItem nickname = (NicknameDataItem) dataItem; Loading @@ -1062,15 +1101,18 @@ public class QuickContactActivity extends ContactsActivity { if (!duplicatesTitle) { header = getResources().getString(R.string.header_nickname_entry); subHeader = nickname.getName(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); } } else if (dataItem instanceof NoteDataItem) { final NoteDataItem note = (NoteDataItem) dataItem; header = getResources().getString(R.string.header_note_entry); subHeader = note.getNote(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); } else if (dataItem instanceof WebsiteDataItem) { final WebsiteDataItem website = (WebsiteDataItem) dataItem; header = getResources().getString(R.string.header_website_entry); subHeader = website.getUrl(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); try { final WebAddress webAddress = new WebAddress(website.buildDataString(this, kind)); intent = new Intent(Intent.ACTION_VIEW, Uri.parse(webAddress.toString())); Loading Loading @@ -1105,6 +1147,7 @@ public class QuickContactActivity extends ContactsActivity { } header = getResources().getString(R.string.header_relation_entry); subHeader = relation.getName(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); if (relation.hasKindTypeColumn(kind)) { text = Relation.getTypeLabel(getResources(), relation.getKindTypeColumn(kind), relation.getLabel()).toString(); Loading @@ -1113,6 +1156,8 @@ public class QuickContactActivity extends ContactsActivity { final PhoneDataItem phone = (PhoneDataItem) dataItem; if (!TextUtils.isEmpty(phone.getNumber())) { header = phone.buildDataString(this, kind); entryContextMenuInfo = new EntryContextMenuInfo(header, getResources().getString(R.string.phoneLabelsGroup)); if (phone.hasKindTypeColumn(kind)) { text = Phone.getTypeLabel(getResources(), phone.getKindTypeColumn(kind), phone.getLabel()).toString(); Loading @@ -1133,6 +1178,8 @@ public class QuickContactActivity extends ContactsActivity { final Uri mailUri = Uri.fromParts(CallUtil.SCHEME_MAILTO, address, null); intent = new Intent(Intent.ACTION_SENDTO, mailUri); header = email.getAddress(); entryContextMenuInfo = new EntryContextMenuInfo(header, getResources().getString(R.string.emailLabelsGroup)); if (email.hasKindTypeColumn(kind)) { text = Email.getTypeLabel(getResources(), email.getKindTypeColumn(kind), email.getLabel()).toString(); Loading @@ -1145,6 +1192,8 @@ public class QuickContactActivity extends ContactsActivity { if (!TextUtils.isEmpty(postalAddress)) { intent = StructuredPostalUtils.getViewPostalAddressIntent(postalAddress); header = postal.getFormattedAddress(); entryContextMenuInfo = new EntryContextMenuInfo(header, getResources().getString(R.string.postalLabelsGroup)); if (postal.hasKindTypeColumn(kind)) { text = StructuredPostal.getTypeLabel(getResources(), postal.getKindTypeColumn(kind), postal.getLabel()).toString(); Loading @@ -1162,6 +1211,8 @@ public class QuickContactActivity extends ContactsActivity { final Uri callUri = Uri.fromParts(CallUtil.SCHEME_SIP, address, null); intent = CallUtil.getCallIntent(callUri); header = address; entryContextMenuInfo = new EntryContextMenuInfo(header, getResources().getString(R.string.phoneLabelsGroup)); if (sip.hasKindTypeColumn(kind)) { text = SipAddress.getTypeLabel(getResources(), sip.getKindTypeColumn(kind), sip.getLabel()).toString(); Loading Loading @@ -1217,6 +1268,7 @@ public class QuickContactActivity extends ContactsActivity { } break; default: entryContextMenuInfo = new EntryContextMenuInfo(header, mimetype); icon = ResolveCache.getInstance(this).getIcon( dataItem.getMimeType(), intent); // Call mutate to create a new Drawable.ConstantState for color filtering Loading Loading @@ -1258,7 +1310,7 @@ public class QuickContactActivity extends ContactsActivity { return new Entry(dataId, icon, header, subHeader, subHeaderIcon, text, textIcon, intent, alternateIcon, alternateIntent, alternateContentDescription, shouldApplyColor, isEditable); isEditable, entryContextMenuInfo); } private List<Entry> dataItemsToEntries(List<DataItem> dataItems) { Loading Loading @@ -1424,7 +1476,8 @@ public class QuickContactActivity extends ContactsActivity { /* alternateIntent = */ null, /* alternateContentDescription = */ null, /* shouldApplyColor = */ true, /* isEditable = */ false)); /* isEditable = */ false, /* EntryContextMenuInfo = */ null)); } return entries; } Loading Loading
res/layout/expanding_entry_card_item.xml +3 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,8 @@ limitations under the License. --> <RelativeLayout <view class="com.android.contacts.quickcontact.ExpandingEntryCardView$EntryView" xmlns:android="http://schemas.android.com/apk/res/android" style="@style/SelectableItem" android:layout_width="match_parent" Loading Loading @@ -93,4 +94,4 @@ android:layout_marginTop="@dimen/expanding_entry_card_item_icon_margin_top" android:layout_marginBottom="@dimen/expanding_entry_card_item_alternate_icon_margin_bottom" /> </RelativeLayout> </view>
src/com/android/contacts/quickcontact/ExpandingEntryCardView.java +65 −5 Original line number Diff line number Diff line Loading @@ -33,9 +33,11 @@ import android.transition.TransitionManager; import android.transition.TransitionSet; import android.util.AttributeSet; import android.util.Log; import android.view.ContextMenu.ContextMenuInfo; import android.view.LayoutInflater; import android.view.TouchDelegate; import android.view.View; import android.view.View.OnCreateContextMenuListener; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; Loading Loading @@ -78,19 +80,22 @@ public class ExpandingEntryCardView extends CardView { private final String mAlternateContentDescription; private final boolean mShouldApplyColor; private final boolean mIsEditable; private final EntryContextMenuInfo mEntryContextMenuInfo; public Entry(int viewId, Drawable icon, String header, String subHeader, String text, Intent intent, Drawable alternateIcon, Intent alternateIntent, String alternateContentDescription, boolean shouldApplyColor, boolean isEditable) { boolean isEditable, EntryContextMenuInfo entryContextMenuInfo) { this(viewId, icon, header, subHeader, null, text, null, intent, alternateIcon, alternateIntent, alternateContentDescription, shouldApplyColor, isEditable); alternateIntent, alternateContentDescription, shouldApplyColor, isEditable, entryContextMenuInfo); } public Entry(int viewId, Drawable mainIcon, String header, String subHeader, Drawable subHeaderIcon, String text, Drawable textIcon, Intent intent, Drawable alternateIcon, Intent alternateIntent, String alternateContentDescription, boolean shouldApplyColor, boolean isEditable) { boolean shouldApplyColor, boolean isEditable, EntryContextMenuInfo entryContextMenuInfo) { mViewId = viewId; mIcon = mainIcon; mHeader = header; Loading @@ -104,6 +109,7 @@ public class ExpandingEntryCardView extends CardView { mAlternateContentDescription = alternateContentDescription; mShouldApplyColor = shouldApplyColor; mIsEditable = isEditable; mEntryContextMenuInfo = entryContextMenuInfo; } Drawable getIcon() { Loading Loading @@ -157,6 +163,10 @@ public class ExpandingEntryCardView extends CardView { int getViewId() { return mViewId; } EntryContextMenuInfo getEntryContextMenuInfo() { return mEntryContextMenuInfo; } } public interface ExpandingEntryCardViewListener { Loading @@ -170,6 +180,7 @@ public class ExpandingEntryCardView extends CardView { private CharSequence mExpandButtonText; private CharSequence mCollapseButtonText; private OnClickListener mOnClickListener; private OnCreateContextMenuListener mOnCreateContextMenuListener; private boolean mIsExpanded = false; private int mCollapsedEntriesCount; private ExpandingEntryCardViewListener mListener; Loading Loading @@ -292,6 +303,11 @@ public class ExpandingEntryCardView extends CardView { mOnClickListener = listener; } @Override public void setOnCreateContextMenuListener (OnCreateContextMenuListener listener) { mOnCreateContextMenuListener = listener; } private void insertEntriesIntoViewGroup() { mEntriesViewGroup.removeAllViews(); Loading Loading @@ -469,10 +485,12 @@ public class ExpandingEntryCardView extends CardView { } } private View createEntryView(LayoutInflater layoutInflater, Entry entry, int iconVisibility) { final View view = layoutInflater.inflate( private View createEntryView(LayoutInflater layoutInflater, final Entry entry, int iconVisibility) { final EntryView view = (EntryView) layoutInflater.inflate( R.layout.expanding_entry_card_item, this, false); view.setContextMenuInfo(entry.getEntryContextMenuInfo()); view.setId(entry.getViewId()); final ImageView icon = (ImageView) view.findViewById(R.id.icon); Loading Loading @@ -570,6 +588,9 @@ public class ExpandingEntryCardView extends CardView { view.getPaddingBottom()); } view.setOnCreateContextMenuListener(mOnCreateContextMenuListener); return view; } Loading Loading @@ -748,4 +769,43 @@ public class ExpandingEntryCardView extends CardView { public boolean shouldShow() { return mEntries != null && mEntries.size() > 0; } public static final class EntryView extends RelativeLayout { private EntryContextMenuInfo mEntryContextMenuInfo; public EntryView(Context context) { super(context); } public EntryView(Context context, AttributeSet attrs) { super(context, attrs); } public void setContextMenuInfo(EntryContextMenuInfo info) { mEntryContextMenuInfo = info; } @Override protected ContextMenuInfo getContextMenuInfo() { return mEntryContextMenuInfo; } } public static final class EntryContextMenuInfo implements ContextMenuInfo { private final String mCopyText; private final String mCopyLabel; public EntryContextMenuInfo(String copyText, String copyLabel) { mCopyText = copyText; mCopyLabel = copyLabel; } public String getCopyText() { return mCopyText; } public String getCopyLabel() { return mCopyLabel; } } }
src/com/android/contacts/quickcontact/QuickContactActivity.java +59 −6 Original line number Diff line number Diff line Loading @@ -70,11 +70,14 @@ import android.support.v7.graphics.Palette; import android.text.TextUtils; import android.util.Log; import android.util.Pair; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnCreateContextMenuListener; import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; Loading @@ -86,6 +89,7 @@ import com.android.contacts.ContactsActivity; import com.android.contacts.NfcHandler; import com.android.contacts.R; import com.android.contacts.common.CallUtil; import com.android.contacts.common.ClipboardUtils; import com.android.contacts.common.Collapser; import com.android.contacts.common.ContactsUtils; import com.android.contacts.common.editor.SelectAccountDialogFragment; Loading Loading @@ -122,6 +126,7 @@ import com.android.contacts.interactions.ContactDeletionInteraction; import com.android.contacts.interactions.ContactInteraction; import com.android.contacts.interactions.SmsInteractionsLoader; import com.android.contacts.quickcontact.ExpandingEntryCardView.Entry; import com.android.contacts.quickcontact.ExpandingEntryCardView.EntryContextMenuInfo; import com.android.contacts.quickcontact.ExpandingEntryCardView.ExpandingEntryCardViewListener; import com.android.contacts.util.ImageViewDrawableSetter; import com.android.contacts.util.PhoneCapabilityTester; Loading Loading @@ -337,6 +342,33 @@ public class QuickContactActivity extends ContactsActivity { } }; private final OnCreateContextMenuListener mEntryContextMenuListener = new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { if (menuInfo == null) { return; } EntryContextMenuInfo info = (EntryContextMenuInfo) menuInfo; menu.setHeaderTitle(info.getCopyText()); menu.add(R.string.copy_text); } }; @Override public boolean onContextItemSelected(MenuItem item) { EntryContextMenuInfo menuInfo; try { menuInfo = (EntryContextMenuInfo) item.getMenuInfo(); } catch (ClassCastException e) { Log.e(TAG, "bad menuInfo", e); return false; } ClipboardUtils.copyText(this, menuInfo.getCopyLabel(), menuInfo.getCopyText(), true); return true; } /** * Headless fragment used to handle account selection callbacks invoked from * {@link DirectoryContactUtil}. Loading Loading @@ -519,11 +551,13 @@ public class QuickContactActivity extends ContactsActivity { mContactCard.setOnClickListener(mEntryClickHandler); mContactCard.setExpandButtonText( getResources().getString(R.string.expanding_entry_card_view_see_all)); mContactCard.setOnCreateContextMenuListener(mEntryContextMenuListener); mRecentCard.setOnClickListener(mEntryClickHandler); mRecentCard.setTitle(getResources().getString(R.string.recent_card_title)); mAboutCard.setOnClickListener(mEntryClickHandler); mAboutCard.setOnCreateContextMenuListener(mEntryContextMenuListener); mPhotoView = (ImageView) findViewById(R.id.photo); mTransparentView = findViewById(R.id.transparent_view); Loading Loading @@ -859,8 +893,9 @@ public class QuickContactActivity extends ContactsActivity { /* alternateIntent = */ null, /* alternateContentDescription = */ null, /* shouldApplyColor = */ false, /* isEditable = */ false ); /* isEditable = */ false, /* EntryContextMenuInfo = */ new EntryContextMenuInfo(phoneticName, getResources().getString(R.string.name_phonetic))); List<Entry> phoneticList = new ArrayList<>(); phoneticList.add(phoneticEntry); // Phonetic name comes after nickname. Check to see if the first entry type is nickname Loading Loading @@ -904,7 +939,7 @@ public class QuickContactActivity extends ContactsActivity { /* subHeader = */ null, /* text = */ null, getEditContactIntent(), /* alternateIcon = */ null, /* alternateIntent = */ null, /* alternateContentDescription = */ null, /* shouldApplyColor = */ true, /* isEditable = */ false); /* isEditable = */ false, /* EntryContextMenuInfo = */ null); final Drawable emailIcon = getResources().getDrawable( R.drawable.ic_email_24dp).mutate(); Loading @@ -912,7 +947,8 @@ public class QuickContactActivity extends ContactsActivity { emailIcon, getString(R.string.quickcontact_add_email), /* subHeader = */ null, /* text = */ null, getEditContactIntent(), /* alternateIcon = */ null, /* alternateIntent = */ null, /* alternateContentDescription = */ null, /* shouldApplyColor = */ true, /* isEditable = */ false); /* shouldApplyColor = */ true, /* isEditable = */ false, /* EntryContextMenuInfo = */ null); final List<List<Entry>> promptEntries = new ArrayList<>(); promptEntries.add(new ArrayList<Entry>(1)); Loading Loading @@ -1019,6 +1055,7 @@ public class QuickContactActivity extends ContactsActivity { Intent alternateIntent = null; String alternateContentDescription = null; final boolean isEditable = false; EntryContextMenuInfo entryContextMenuInfo = null; DataKind kind = dataItem.getDataKind(); Loading @@ -1044,10 +1081,12 @@ public class QuickContactActivity extends ContactsActivity { im.getCustomProtocol()).toString(); subHeader = im.getData(); } entryContextMenuInfo = new EntryContextMenuInfo(im.getData(), header); } else if (dataItem instanceof OrganizationDataItem) { final OrganizationDataItem organization = (OrganizationDataItem) dataItem; header = getResources().getString(R.string.header_organization_entry); subHeader = organization.getCompany(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); text = organization.getTitle(); } else if (dataItem instanceof NicknameDataItem) { final NicknameDataItem nickname = (NicknameDataItem) dataItem; Loading @@ -1062,15 +1101,18 @@ public class QuickContactActivity extends ContactsActivity { if (!duplicatesTitle) { header = getResources().getString(R.string.header_nickname_entry); subHeader = nickname.getName(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); } } else if (dataItem instanceof NoteDataItem) { final NoteDataItem note = (NoteDataItem) dataItem; header = getResources().getString(R.string.header_note_entry); subHeader = note.getNote(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); } else if (dataItem instanceof WebsiteDataItem) { final WebsiteDataItem website = (WebsiteDataItem) dataItem; header = getResources().getString(R.string.header_website_entry); subHeader = website.getUrl(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); try { final WebAddress webAddress = new WebAddress(website.buildDataString(this, kind)); intent = new Intent(Intent.ACTION_VIEW, Uri.parse(webAddress.toString())); Loading Loading @@ -1105,6 +1147,7 @@ public class QuickContactActivity extends ContactsActivity { } header = getResources().getString(R.string.header_relation_entry); subHeader = relation.getName(); entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header); if (relation.hasKindTypeColumn(kind)) { text = Relation.getTypeLabel(getResources(), relation.getKindTypeColumn(kind), relation.getLabel()).toString(); Loading @@ -1113,6 +1156,8 @@ public class QuickContactActivity extends ContactsActivity { final PhoneDataItem phone = (PhoneDataItem) dataItem; if (!TextUtils.isEmpty(phone.getNumber())) { header = phone.buildDataString(this, kind); entryContextMenuInfo = new EntryContextMenuInfo(header, getResources().getString(R.string.phoneLabelsGroup)); if (phone.hasKindTypeColumn(kind)) { text = Phone.getTypeLabel(getResources(), phone.getKindTypeColumn(kind), phone.getLabel()).toString(); Loading @@ -1133,6 +1178,8 @@ public class QuickContactActivity extends ContactsActivity { final Uri mailUri = Uri.fromParts(CallUtil.SCHEME_MAILTO, address, null); intent = new Intent(Intent.ACTION_SENDTO, mailUri); header = email.getAddress(); entryContextMenuInfo = new EntryContextMenuInfo(header, getResources().getString(R.string.emailLabelsGroup)); if (email.hasKindTypeColumn(kind)) { text = Email.getTypeLabel(getResources(), email.getKindTypeColumn(kind), email.getLabel()).toString(); Loading @@ -1145,6 +1192,8 @@ public class QuickContactActivity extends ContactsActivity { if (!TextUtils.isEmpty(postalAddress)) { intent = StructuredPostalUtils.getViewPostalAddressIntent(postalAddress); header = postal.getFormattedAddress(); entryContextMenuInfo = new EntryContextMenuInfo(header, getResources().getString(R.string.postalLabelsGroup)); if (postal.hasKindTypeColumn(kind)) { text = StructuredPostal.getTypeLabel(getResources(), postal.getKindTypeColumn(kind), postal.getLabel()).toString(); Loading @@ -1162,6 +1211,8 @@ public class QuickContactActivity extends ContactsActivity { final Uri callUri = Uri.fromParts(CallUtil.SCHEME_SIP, address, null); intent = CallUtil.getCallIntent(callUri); header = address; entryContextMenuInfo = new EntryContextMenuInfo(header, getResources().getString(R.string.phoneLabelsGroup)); if (sip.hasKindTypeColumn(kind)) { text = SipAddress.getTypeLabel(getResources(), sip.getKindTypeColumn(kind), sip.getLabel()).toString(); Loading Loading @@ -1217,6 +1268,7 @@ public class QuickContactActivity extends ContactsActivity { } break; default: entryContextMenuInfo = new EntryContextMenuInfo(header, mimetype); icon = ResolveCache.getInstance(this).getIcon( dataItem.getMimeType(), intent); // Call mutate to create a new Drawable.ConstantState for color filtering Loading Loading @@ -1258,7 +1310,7 @@ public class QuickContactActivity extends ContactsActivity { return new Entry(dataId, icon, header, subHeader, subHeaderIcon, text, textIcon, intent, alternateIcon, alternateIntent, alternateContentDescription, shouldApplyColor, isEditable); isEditable, entryContextMenuInfo); } private List<Entry> dataItemsToEntries(List<DataItem> dataItems) { Loading Loading @@ -1424,7 +1476,8 @@ public class QuickContactActivity extends ContactsActivity { /* alternateIntent = */ null, /* alternateContentDescription = */ null, /* shouldApplyColor = */ true, /* isEditable = */ false)); /* isEditable = */ false, /* EntryContextMenuInfo = */ null)); } return entries; } Loading