UX update to edit linked contact modal
Remove "(read only)" string.
Remove gray from read-only accounts.
Use ViewHolder pattern.
Test:
Manual test of modal with read-only raw contact.
Bug: 32460007
Change-Id: Id4d7fd45d120e1bebe6172e324efd3d20fcd7e46
diff --git a/src/com/android/contacts/editor/PickRawContactDialogFragment.java b/src/com/android/contacts/editor/PickRawContactDialogFragment.java
index dd079a2..aa65b01 100644
--- a/src/com/android/contacts/editor/PickRawContactDialogFragment.java
+++ b/src/com/android/contacts/editor/PickRawContactDialogFragment.java
@@ -77,17 +77,8 @@
if (TextUtils.isEmpty(displayName)) {
displayName = mContext.getString(R.string.missing_name);
}
-
- if (!account.areContactsWritable()) {
- displayName = mContext
- .getString(R.string.contact_editor_pick_raw_contact_read_only, displayName);
- view.setAlpha(.38f);
- } else {
- view.setAlpha(1f);
- }
- final TextView nameView = (TextView) view.findViewById(
- R.id.display_name);
- nameView.setText(displayName);
+ final RawContactViewHolder holder = (RawContactViewHolder) view.getTag();
+ holder.displayName.setText(displayName);
final String accountDisplayLabel;
@@ -106,12 +97,9 @@
} else {
accountDisplayLabel = account.getDisplayLabel(mContext).toString();
}
- final TextView accountTextView = (TextView) view.findViewById(
- R.id.account_name);
- final ImageView accountIconView = (ImageView) view.findViewById(
- R.id.account_icon);
- accountTextView.setText(accountDisplayLabel);
- accountIconView.setImageDrawable(account.getDisplayIcon(mContext));
+
+ holder.accountName.setText(accountDisplayLabel);
+ holder.accountIcon.setImageDrawable(account.getDisplayIcon(mContext));
final ContactPhotoManager.DefaultImageRequest
request = new ContactPhotoManager.DefaultImageRequest(
@@ -119,9 +107,8 @@
final Uri photoUri = Uri.withAppendedPath(
ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId),
RawContacts.DisplayPhoto.CONTENT_DIRECTORY);
- final ImageView photoView = (ImageView) view.findViewById(
- R.id.photo);
- ContactPhotoManager.getInstance(mContext).loadDirectoryPhoto(photoView,
+
+ ContactPhotoManager.getInstance(mContext).loadDirectoryPhoto(holder.photo,
photoUri,
/* darkTheme = */ false,
/* isCircular = */ true,
@@ -130,7 +117,14 @@
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
- return mInflater.inflate(R.layout.raw_contact_list_item, parent, false);
+ final View view = mInflater.inflate(R.layout.raw_contact_list_item, parent, false);
+ final RawContactViewHolder holder = new RawContactViewHolder();
+ holder.displayName = (TextView) view.findViewById(R.id.display_name);
+ holder.accountName = (TextView) view.findViewById(R.id.account_name);
+ holder.accountIcon = (ImageView) view.findViewById(R.id.account_icon);
+ holder.photo = (ImageView) view.findViewById(R.id.photo);
+ view.setTag(holder);
+ return view;
}
@Override
@@ -138,6 +132,13 @@
getCursor().moveToPosition(position);
return getCursor().getLong(PickRawContactLoader.RAW_CONTACT_ID);
}
+
+ class RawContactViewHolder {
+ TextView displayName;
+ TextView accountName;
+ ImageView accountIcon;
+ ImageView photo;
+ }
}
// Cursor holding all raw contact rows for the given Contact.