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

Commit 82c137c0 authored by Walter Jang's avatar Walter Jang Committed by Android (Google) Code Review
Browse files

Merge "resolve merge conflicts of 3cf4db4c to master"

parents 3ae86476 792dae7d
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -335,9 +335,12 @@ public final class ContactListFilter implements Comparable<ContactListFilter>, P
            throw new IllegalStateException(
                    "filterType must be FILTER_TYPE_ACCOUNT or FILER_TYPE_GROUP_MEMBERS");
        }
        // null account names are not valid, see ContactsProvider2#appendAccountFromParameter
        if (accountName != null) {
            uriBuilder.appendQueryParameter(RawContacts.ACCOUNT_NAME, accountName);
            uriBuilder.appendQueryParameter(RawContacts.ACCOUNT_TYPE, accountType);
        if (!TextUtils.isEmpty(dataSet)) {
        }
        if (dataSet != null) {
            uriBuilder.appendQueryParameter(RawContacts.DATA_SET, dataSet);
        }
        return uriBuilder;
+3 −3
Original line number Diff line number Diff line
@@ -318,7 +318,7 @@ public class GroupMembersFragment extends MultiSelectContactsListFragment<GroupM
        final long[] contactIds = getAdapter().getSelectedContactIdsArray();
        new UpdateGroupMembersAsyncTask(UpdateGroupMembersAsyncTask.TYPE_REMOVE,
                getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
                mGroupMetaData.accountType).execute();
                mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();

        mActionBarAdapter.setSelectionMode(false);
    }
@@ -340,7 +340,7 @@ public class GroupMembersFragment extends MultiSelectContactsListFragment<GroupM
            new UpdateGroupMembersAsyncTask(
                    UpdateGroupMembersAsyncTask.TYPE_ADD,
                    getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
                    mGroupMetaData.accountType).execute();
                    mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
        }
    }

@@ -636,7 +636,7 @@ public class GroupMembersFragment extends MultiSelectContactsListFragment<GroupM
            contactIds[0] = contactId;
            new UpdateGroupMembersAsyncTask(UpdateGroupMembersAsyncTask.TYPE_REMOVE,
                    getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
                    mGroupMetaData.accountType).execute();
                    mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
        }
    }

+14 −5
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.database.Cursor;
import android.net.Uri;
import android.os.AsyncTask;
import android.provider.ContactsContract;
import android.provider.ContactsContract.RawContacts;
import android.widget.Toast;

import com.android.contacts.ContactSaveService;
@@ -42,15 +43,17 @@ public class UpdateGroupMembersAsyncTask extends AsyncTask<Void, Void, Intent> {
    private final long mGroupId;
    private final String mAccountName;
    private final String mAccountType;
    private final String mDataSet;

    public UpdateGroupMembersAsyncTask(int type, Context context, long[] contactIds,
            long groupId, String accountName, String accountType) {
            long groupId, String accountName, String accountType, String dataSet) {
        mContext = context;
        mType = type;
        mContactIds = contactIds;
        mGroupId = groupId;
        mAccountName = accountName;
        mAccountType = accountType;
        mDataSet = dataSet;
    }

    @Override
@@ -81,10 +84,16 @@ public class UpdateGroupMembersAsyncTask extends AsyncTask<Void, Void, Intent> {
    // TODO(wjang): prune raw contacts that are already in the group; ContactSaveService will
    // log a warning if the raw contact is already a member and keep going but it is not ideal.
    private long[] getRawContactIds() {
        final Uri rawContactUri = ContactsContract.RawContacts.CONTENT_URI.buildUpon()
                .appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_NAME, mAccountName)
                .appendQueryParameter(ContactsContract.RawContacts.ACCOUNT_TYPE, mAccountType)
                .build();
        final Uri.Builder builder = RawContacts.CONTENT_URI.buildUpon();
        // null account names are not valid, see ContactsProvider2#appendAccountFromParameter
        if (mAccountName != null) {
            builder.appendQueryParameter(RawContacts.ACCOUNT_NAME, mAccountName);
            builder.appendQueryParameter(RawContacts.ACCOUNT_TYPE, mAccountType);
        }
        if (mDataSet != null) {
            builder.appendQueryParameter(RawContacts.DATA_SET, mDataSet);
        }
        final Uri rawContactUri = builder.build();
        final String[] projection = new String[]{ContactsContract.RawContacts._ID};
        final StringBuilder selection = new StringBuilder();
        final String[] selectionArgs = new String[mContactIds.length];