summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2015-03-25 14:24:15 +0100
committerDanny Baumann <dannybaumann@web.de>2015-03-25 15:16:29 +0100
commit40f86ac6db656364d073e0a7d6e56e0fecdaa301 (patch)
treeeef93dd8314f08a48d2f58f227626a3b811c1050
parent90b89eda4c38deeb39a0c961b8149a04d553051b (diff)
downloadandroid_packages_apps_ContactsCommon-40f86ac6db656364d073e0a7d6e56e0fecdaa301.tar.gz
android_packages_apps_ContactsCommon-40f86ac6db656364d073e0a7d6e56e0fecdaa301.tar.bz2
android_packages_apps_ContactsCommon-40f86ac6db656364d073e0a7d6e56e0fecdaa301.zip
Populate group title.staging/cm-12.1-test
Better than showing a mysterious number as item. Change-Id: I1e39e33749bc67dbdadfb6c696b8ad52eb01780f
-rw-r--r--src/com/android/contacts/common/model/ContactLoader.java26
-rw-r--r--src/com/android/contacts/common/model/account/BaseAccountType.java3
-rw-r--r--src/com/android/contacts/common/model/dataitem/GroupMembershipDataItem.java11
3 files changed, 38 insertions, 2 deletions
diff --git a/src/com/android/contacts/common/model/ContactLoader.java b/src/com/android/contacts/common/model/ContactLoader.java
index 59ab292e..78eac7eb 100644
--- a/src/com/android/contacts/common/model/ContactLoader.java
+++ b/src/com/android/contacts/common/model/ContactLoader.java
@@ -47,6 +47,7 @@ import com.android.contacts.common.util.ContactLoaderUtils;
import com.android.contacts.common.util.DataStatus;
import com.android.contacts.common.util.UriUtils;
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.google.common.collect.ImmutableList;
@@ -864,7 +865,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 1ead103f..cb9b3e73 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;
@@ -437,7 +438,7 @@ public abstract class BaseAccountType extends AccountType {
R.string.groupsLabel, Weight.GROUP_MEMBERSHIP, true));
kind.actionHeader = new SimpleInflater(R.string.label_groups);
- kind.actionBody = new SimpleInflater(GroupMembership.GROUP_ROW_ID);
+ 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);
+ }
}