Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59853614 authored by Dave Santoro's avatar Dave Santoro Committed by Android (Google) Code Review
Browse files

Merge "Fix re-parenting for modifications to the profile."

parents bf4e2f4f c90f95e6
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.contacts;

import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.model.AccountWithDataSet;
import com.android.contacts.model.EntityDelta;
import com.android.contacts.model.EntityDeltaList;
import com.android.contacts.model.EntityModifier;
import com.google.android.collect.Lists;
@@ -48,6 +49,7 @@ import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Groups;
import android.provider.ContactsContract.Profile;
import android.provider.ContactsContract.RawContacts;
import android.provider.ContactsContract.RawContactsEntity;
import android.util.Log;
import android.widget.Toast;

@@ -355,9 +357,19 @@ public class ContactSaveService extends IntentService {
                    throw new IllegalStateException("Version consistency failed for a new contact");
                }

                final EntityDeltaList newState = EntityDeltaList.fromQuery(resolver,
                        sb.toString(), null, null);
                final EntityDeltaList newState = EntityDeltaList.fromQuery(
                        isProfile
                                ? RawContactsEntity.PROFILE_CONTENT_URI
                                : RawContactsEntity.CONTENT_URI,
                        resolver, sb.toString(), null, null);
                state = EntityDeltaList.mergeAfter(newState, state);

                // Update the new state to use profile URIs if appropriate.
                if (isProfile) {
                    for (EntityDelta delta : state) {
                        delta.setProfileQueryUri();
                    }
                }
            }
        }

+5 −1
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.provider.ContactsContract.RawContactsEntity;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
@@ -378,7 +379,10 @@ public class ConfirmAddDetailActivity extends Activity implements
                mSelection = Data.RAW_CONTACT_ID + "=?";
            }

            return EntityDeltaList.fromQuery(activityTarget.getContentResolver(), mSelection,
            // Note that this query does not need to concern itself with whether the contact is
            // the user's profile, since the profile does not show up in the picker.
            return EntityDeltaList.fromQuery(RawContactsEntity.CONTENT_URI,
                    activityTarget.getContentResolver(), mSelection,
                    new String[] { selectionArg }, null);
        }

+4 −3
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.ContentResolver;
import android.content.Entity;
import android.content.EntityIterator;
import android.content.ContentProviderOperation.Builder;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.provider.ContactsContract.AggregationExceptions;
@@ -63,10 +64,10 @@ public class EntityDeltaList extends ArrayList<EntityDelta> implements Parcelabl
     * given query parameters. This closes the {@link EntityIterator} when
     * finished, so it doesn't subscribe to updates.
     */
    public static EntityDeltaList fromQuery(ContentResolver resolver, String selection,
            String[] selectionArgs, String sortOrder) {
    public static EntityDeltaList fromQuery(Uri entityUri, ContentResolver resolver,
            String selection, String[] selectionArgs, String sortOrder) {
        final EntityIterator iterator = RawContacts.newEntityIterator(resolver.query(
                RawContactsEntity.CONTENT_URI, null, selection, selectionArgs,
                entityUri, null, selection, selectionArgs,
                sortOrder));
        try {
            return fromIterator(iterator);