OSDN Git Service

When reparenting, prefer GROUP_ROW_ID but allow fallback.
authorJeff Sharkey <jsharkey@android.com>
Wed, 28 Oct 2009 21:20:42 +0000 (14:20 -0700)
committerJeff Sharkey <jsharkey@android.com>
Thu, 29 Oct 2009 23:19:16 +0000 (16:19 -0700)
When a GROUP_SOURCE_ID is the only value provided, usually
while a sync is still going on, allow it to remain when a
valid ROW_ID is present.  Fixes http://b/2222283

src/com/android/contacts/model/EntityDelta.java

index d4e9632..ae30806 100644 (file)
@@ -32,6 +32,7 @@ import android.provider.BaseColumns;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.RawContacts;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 import android.util.Log;
 import android.view.View;
 
@@ -695,7 +696,11 @@ public class EntityDelta implements Parcelable {
             if (mAfter != null) {
                 values.putAll(mAfter);
             }
-            values.remove(ContactsContract.CommonDataKinds.GroupMembership.GROUP_SOURCE_ID);
+            if (values.containsKey(GroupMembership.GROUP_ROW_ID)) {
+                // Clear to avoid double-definitions, and prefer rows
+                values.remove(GroupMembership.GROUP_SOURCE_ID);
+            }
+
             return values;
         }