diff options
| author | Danny Baumann <dannybaumann@web.de> | 2015-03-25 14:24:15 +0100 |
|---|---|---|
| committer | Rohit Yengisetty <rohit@cyngn.com> | 2015-12-02 15:44:44 -0800 |
| commit | ca42a57c9c8d56a846ae311b581814bc8d324a62 (patch) | |
| tree | 31a083fa8be687a96b713ac16ad4007d7082b9f5 /src/com/android | |
| parent | 5e83544814610aa47041539a297887c36a500f99 (diff) | |
| download | android_packages_apps_ContactsCommon-ca42a57c9c8d56a846ae311b581814bc8d324a62.tar.gz android_packages_apps_ContactsCommon-ca42a57c9c8d56a846ae311b581814bc8d324a62.tar.bz2 android_packages_apps_ContactsCommon-ca42a57c9c8d56a846ae311b581814bc8d324a62.zip | |
Populate group title.
Better than showing a mysterious number as item.
Change-Id: I1e39e33749bc67dbdadfb6c696b8ad52eb01780f
Diffstat (limited to 'src/com/android')
3 files changed, 39 insertions, 1 deletions
diff --git a/src/com/android/contacts/common/model/ContactLoader.java b/src/com/android/contacts/common/model/ContactLoader.java index ee1ddd1c..fc0bb98f 100644 --- a/src/com/android/contacts/common/model/ContactLoader.java +++ b/src/com/android/contacts/common/model/ContactLoader.java @@ -44,6 +44,7 @@ import com.android.contacts.common.model.account.AccountType; import com.android.contacts.common.model.account.AccountTypeWithDataSet; import com.android.contacts.common.model.dataitem.DataItem; +import com.android.contacts.common.model.dataitem.GroupMembershipDataItem; import com.android.contacts.common.model.dataitem.PhoneDataItem; import com.android.contacts.common.model.dataitem.PhotoDataItem; import com.android.contacts.common.util.Constants; @@ -896,7 +897,30 @@ public class ContactLoader extends AsyncTaskLoader<Contact> { cursor.close(); } } - result.setGroupMetaData(groupListBuilder.build()); + + final ImmutableList<GroupMetaData> metaDataList = groupListBuilder.build(); + result.setGroupMetaData(metaDataList); + + for (RawContact rawContact : result.getRawContacts()) { + for (DataItem dataItem : rawContact.getDataItems()) { + if (!(dataItem instanceof GroupMembershipDataItem)) { + continue; + } + + final GroupMembershipDataItem groupItem = (GroupMembershipDataItem) dataItem; + final Long groupId = groupItem.getGroupRowId(); + if (groupId == null) { + continue; + } + + for (GroupMetaData groupData : metaDataList) { + if (groupData.getGroupId() == groupId) { + groupItem.setGroupMetaData(groupData); + break; + } + } + } + } } /** diff --git a/src/com/android/contacts/common/model/account/BaseAccountType.java b/src/com/android/contacts/common/model/account/BaseAccountType.java index 7526f0c8..3c7dc82f 100644 --- a/src/com/android/contacts/common/model/account/BaseAccountType.java +++ b/src/com/android/contacts/common/model/account/BaseAccountType.java @@ -40,6 +40,7 @@ import android.view.inputmethod.EditorInfo; import com.android.contacts.common.R; import com.android.contacts.common.model.dataitem.DataKind; +import com.android.contacts.common.model.dataitem.GroupMembershipDataItem; import com.android.contacts.common.testing.NeededForTesting; import com.android.contacts.common.util.CommonDateUtils; import com.android.contacts.common.util.ContactDisplayUtils; @@ -436,6 +437,8 @@ public abstract class BaseAccountType extends AccountType { DataKind kind = addKind(new DataKind(GroupMembership.CONTENT_ITEM_TYPE, R.string.groupsLabel, Weight.GROUP_MEMBERSHIP, true)); + kind.actionHeader = new SimpleInflater(R.string.label_groups); + kind.actionBody = new SimpleInflater(GroupMembershipDataItem.GROUP_TITLE); kind.typeOverallMax = 1; kind.fieldList = Lists.newArrayList(); kind.fieldList.add(new EditField(GroupMembership.GROUP_ROW_ID, -1, -1)); diff --git a/src/com/android/contacts/common/model/dataitem/GroupMembershipDataItem.java b/src/com/android/contacts/common/model/dataitem/GroupMembershipDataItem.java index 41f19e65..5105a1b4 100644 --- a/src/com/android/contacts/common/model/dataitem/GroupMembershipDataItem.java +++ b/src/com/android/contacts/common/model/dataitem/GroupMembershipDataItem.java @@ -20,11 +20,14 @@ import android.content.ContentValues; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.GroupMembership; +import com.android.contacts.common.GroupMetaData; + /** * Represents a group memebership data item, wrapping the columns in * {@link ContactsContract.CommonDataKinds.GroupMembership}. */ public class GroupMembershipDataItem extends DataItem { + public static final String GROUP_TITLE = "group_title"; /* package */ GroupMembershipDataItem(ContentValues values) { super(values); @@ -37,4 +40,12 @@ public class GroupMembershipDataItem extends DataItem { public String getGroupSourceId() { return getContentValues().getAsString(GroupMembership.GROUP_SOURCE_ID); } + + public void setGroupMetaData(GroupMetaData metaData) { + getContentValues().put(GROUP_TITLE, metaData.getTitle()); + } + + public String getGroupTitle() { + return getContentValues().getAsString(GROUP_TITLE); + } } |
