Don't show star icon in QC for uri-encoded contact
Also don't show empty directory name/type in contact details card
Bug: 10600250
Change-Id: Ifa7cdd3f9f943f4beed3b9cb26f5bb3300577eea
diff --git a/src/com/android/contacts/detail/ContactDetailDisplayUtils.java b/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
index 35eb7a0..e07ae4c 100644
--- a/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
+++ b/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
@@ -129,9 +129,14 @@
if (contactData.isDirectoryEntry()) {
String directoryDisplayName = contactData.getDirectoryDisplayName();
String directoryType = contactData.getDirectoryType();
- String displayName = !TextUtils.isEmpty(directoryDisplayName)
- ? directoryDisplayName
- : directoryType;
+ final String displayName;
+ if (!TextUtils.isEmpty(directoryDisplayName)) {
+ displayName = directoryDisplayName;
+ } else if (!TextUtils.isEmpty(directoryType)) {
+ displayName = directoryType;
+ } else {
+ return null;
+ }
return context.getString(R.string.contact_directory_description, displayName);
}
return null;
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 0c4369c..1e91fb6 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -69,6 +69,7 @@
import com.android.contacts.model.dataitem.EmailDataItem;
import com.android.contacts.model.dataitem.ImDataItem;
import com.android.contacts.common.util.Constants;
+import com.android.contacts.common.util.UriUtils;
import com.android.contacts.util.DataStatus;
import com.android.contacts.util.ImageViewDrawableSetter;
import com.android.contacts.util.SchedulingUtils;
@@ -352,26 +353,34 @@
mStarImage.setImageResource(R.drawable.ic_favorite_off_lt);
}
final Uri lookupUri = data.getLookupUri();
- mStarImage.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- // Toggle "starred" state
- // Make sure there is a contact
- if (lookupUri != null) {
- // Changes the state of the image already before sending updates to the database
- if (isStarred) {
- mStarImage.setImageResource(R.drawable.ic_favorite_off_lt);
- } else {
- mStarImage.setImageResource(R.drawable.ic_favorite_on_lt);
- }
- // Now perform the real save
- final Intent intent = ContactSaveService.createSetStarredIntent(context,
- lookupUri, !isStarred);
- context.startService(intent);
+ // If this is a json encoded URI, there is no local contact to star
+ if (UriUtils.isEncodedContactUri(lookupUri)) {
+ mStarImage.setVisibility(View.GONE);
+ } else {
+ mStarImage.setVisibility(View.VISIBLE);
+ mStarImage.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ // Toggle "starred" state
+ // Make sure there is a contact
+ if (lookupUri != null) {
+ // Changes the state of the image already before sending updates to the
+ // database
+ if (isStarred) {
+ mStarImage.setImageResource(R.drawable.ic_favorite_off_lt);
+ } else {
+ mStarImage.setImageResource(R.drawable.ic_favorite_on_lt);
+ }
+
+ // Now perform the real save
+ final Intent intent = ContactSaveService.createSetStarredIntent(context,
+ lookupUri, !isStarred);
+ context.startService(intent);
+ }
}
- }
- });
+ });
+ }
mDefaultsMap.clear();