diff options
| author | 2010-09-26 13:12:55 -0700 | |
|---|---|---|
| committer | 2010-09-26 13:12:55 -0700 | |
| commit | b643cbe55852b01f1ab81da76d841b58d890276a (patch) | |
| tree | db748661aef6c6539e484dafeff1e63f2844473d | |
| parent | f023c4dceb9cf112dd621b52b364211e2e549a06 (diff) | |
| parent | e0998604df4ddfcd5c87ea097dcc0950a9518ed1 (diff) | |
am e0998604: Add necessary logic removed during backport
Merge commit 'e0998604df4ddfcd5c87ea097dcc0950a9518ed1' into gingerbread-plus-aosp
* commit 'e0998604df4ddfcd5c87ea097dcc0950a9518ed1':
Add necessary logic removed during backport
| -rw-r--r-- | core/java/android/pim/vcard/VCardEntry.java | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/core/java/android/pim/vcard/VCardEntry.java b/core/java/android/pim/vcard/VCardEntry.java index 94f7c5fe1b0d..02e16747b7b3 100644 --- a/core/java/android/pim/vcard/VCardEntry.java +++ b/core/java/android/pim/vcard/VCardEntry.java @@ -20,12 +20,10 @@ import android.content.ContentProviderOperation; import android.content.ContentProviderResult; import android.content.ContentResolver; import android.content.OperationApplicationException; +import android.database.Cursor; import android.net.Uri; import android.os.RemoteException; import android.provider.ContactsContract; -import android.provider.ContactsContract.Contacts; -import android.provider.ContactsContract.Data; -import android.provider.ContactsContract.RawContacts; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Event; import android.provider.ContactsContract.CommonDataKinds.GroupMembership; @@ -38,6 +36,10 @@ import android.provider.ContactsContract.CommonDataKinds.Photo; import android.provider.ContactsContract.CommonDataKinds.StructuredName; import android.provider.ContactsContract.CommonDataKinds.StructuredPostal; import android.provider.ContactsContract.CommonDataKinds.Website; +import android.provider.ContactsContract.Contacts; +import android.provider.ContactsContract.Data; +import android.provider.ContactsContract.Groups; +import android.provider.ContactsContract.RawContacts; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.util.Log; @@ -59,6 +61,9 @@ public class VCardEntry { private final static int DEFAULT_ORGANIZATION_TYPE = Organization.TYPE_WORK; + private static final String ACCOUNT_TYPE_GOOGLE = "com.google"; + private static final String GOOGLE_MY_CONTACTS_GROUP = "System Group: My Contacts"; + private static final Map<String, Integer> sImMap = new HashMap<String, Integer>(); static { @@ -1111,6 +1116,23 @@ public class VCardEntry { if (mAccount != null) { builder.withValue(RawContacts.ACCOUNT_NAME, mAccount.name); builder.withValue(RawContacts.ACCOUNT_TYPE, mAccount.type); + + // Assume that caller side creates this group if it does not exist. + if (ACCOUNT_TYPE_GOOGLE.equals(mAccount.type)) { + final Cursor cursor = resolver.query(Groups.CONTENT_URI, new String[] { + Groups.SOURCE_ID }, + Groups.TITLE + "=?", new String[] { + GOOGLE_MY_CONTACTS_GROUP }, null); + try { + if (cursor != null && cursor.moveToFirst()) { + myGroupsId = cursor.getString(0); + } + } finally { + if (cursor != null) { + cursor.close(); + } + } + } } else { builder.withValue(RawContacts.ACCOUNT_NAME, null); builder.withValue(RawContacts.ACCOUNT_TYPE, null); |