summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2015-03-25 15:17:32 +0100
committerDanny Baumann <dannybaumann@web.de>2015-03-25 15:33:32 +0100
commit7fff99adaf6411aeef6a987a5ea36a7f2f16ff4b (patch)
tree40adecb7804c5614ce5d09565999cdb4d485ab87
parent0d4dea329d77f6aa1bd1023892e6c0a7cf6090cb (diff)
downloadpackages_apps_Contacts-staging/cm-12.1-test.tar.gz
packages_apps_Contacts-staging/cm-12.1-test.tar.bz2
packages_apps_Contacts-staging/cm-12.1-test.zip
Display group memberships in a meaningful way.staging/cm-12.1-test
Change-Id: I60d789b3cf533173a46417bf6876e7098cde2335
-rw-r--r--src/com/android/contacts/quickcontact/QuickContactActivity.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 9424cb7ee..15013470f 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -124,6 +124,7 @@ import com.android.contacts.common.model.dataitem.DataItem;
import com.android.contacts.common.model.dataitem.DataKind;
import com.android.contacts.common.model.dataitem.EmailDataItem;
import com.android.contacts.common.model.dataitem.EventDataItem;
+import com.android.contacts.common.model.dataitem.GroupMembershipDataItem;
import com.android.contacts.common.model.dataitem.ImDataItem;
import com.android.contacts.common.model.dataitem.NicknameDataItem;
import com.android.contacts.common.model.dataitem.NoteDataItem;
@@ -1664,6 +1665,12 @@ public class QuickContactActivity extends ContactsActivity {
if (dataItems.get(0).getMimeType().equals(MIMETYPE_GPLUS_PROFILE) ||
dataItems.get(0).getMimeType().equals(MIMETYPE_HANGOUTS)) {
return gPlusOrHangoutsDataItemsToEntries(dataItems);
+ } else if (dataItems.get(0).getMimeType().equals(GroupMembership.CONTENT_ITEM_TYPE)) {
+ final Entry entry = groupDataItemsToEntry(dataItems);
+ if (entry != null) {
+ return Lists.newArrayList(entry);
+ }
+ return null;
} else {
final List<Entry> entries = new ArrayList<>();
for (DataItem dataItem : dataItems) {
@@ -1677,6 +1684,39 @@ public class QuickContactActivity extends ContactsActivity {
}
}
+ private Entry groupDataItemsToEntry(List<DataItem> dataItems) {
+ final List<String> titles = new ArrayList<>();
+ for (DataItem dataItem : dataItems) {
+ final String title = dataItem instanceof GroupMembershipDataItem
+ ? ((GroupMembershipDataItem) dataItem).getGroupTitle() : null;
+ if (title != null) {
+ titles.add(title);
+ }
+ }
+ if (titles.isEmpty()) {
+ return null;
+ }
+
+ return new Entry(/* viewId = */ -1, /* icon = */ null,
+ /* header */ getResources().getString(R.string.contacts_groups_label),
+ /* subHeader */ null,
+ /* subHeaderIcon = */ null,
+ /* text = */ TextUtils.join(", ", titles),
+ /* textIcon = */ null,
+ /* primaryContentDescription = */ null,
+ /* intent = */ null,
+ /* alternateIcon = */ null,
+ /* alternateIntent = */ null,
+ /* alternateContentDescription = */ null,
+ /* shouldApplyColor = */ true,
+ /* isEditable = */ false,
+ /* EntryContextMenuInfo = */ null,
+ /* thirdIcon = */ null,
+ /* thirdIntent = */ null,
+ /* thirdContentDescription = */ null,
+ /* iconResourceId = */ 0);
+ }
+
/**
* G+ and Hangout entries are unique in that a single ExpandingEntryCardView.Entry consists
* of two data items. This method attempts to build each entry using the two data items if