Showing My Contacts if contact is NOT a member of it
Change-Id: I5da6ee72ddea68567028a6d129552a35a826a4f2
diff --git a/src/com/android/contacts/ui/widget/GroupMembershipView.java b/src/com/android/contacts/ui/widget/GroupMembershipView.java
index 543820d..f141046 100644
--- a/src/com/android/contacts/ui/widget/GroupMembershipView.java
+++ b/src/com/android/contacts/ui/widget/GroupMembershipView.java
@@ -86,6 +86,8 @@
private long mFavoritesGroupId;
private ListPopupWindow mPopup;
private DataKind mKind;
+ private boolean mDefaultGroupVisibilityKnown;
+ private boolean mDefaultGroupVisible;
public GroupMembershipView(Context context) {
super(context);
@@ -111,6 +113,7 @@
ValuesDelta values = state.getValues();
mAccountType = values.getAsString(RawContacts.ACCOUNT_TYPE);
mAccountName = values.getAsString(RawContacts.ACCOUNT_NAME);
+ mDefaultGroupVisibilityKnown = false;
updateView();
}
@@ -162,11 +165,17 @@
if (mGroupList == null) {
mGroupList = (TextView) findViewById(R.id.group_list);
- mGroupList.setOnClickListener(this);
+ setOnClickListener(this);
}
mGroupList.setText(sb);
setVisibility(VISIBLE);
+
+ if (!mDefaultGroupVisibilityKnown) {
+ // Only show the default group (My Contacts) if the contact is NOT in it
+ mDefaultGroupVisible = mDefaultGroupId != 0 && !hasMembership(mDefaultGroupId);
+ mDefaultGroupVisibilityKnown = true;
+ }
}
@Override
@@ -185,7 +194,8 @@
String accountType = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
if (accountName.equals(mAccountName) && accountType.equals(mAccountType)) {
long groupId = mGroupMetaData.getLong(GroupMetaDataLoader.GROUP_ID);
- if (groupId != mFavoritesGroupId && groupId != mDefaultGroupId) {
+ if (groupId != mFavoritesGroupId
+ && (groupId != mDefaultGroupId || mDefaultGroupVisible)) {
String title = mGroupMetaData.getString(GroupMetaDataLoader.TITLE);
boolean checked = hasMembership(groupId);
mAdapter.add(new GroupSelectionItem(groupId, title, checked));