resolve merge conflicts of 3cf4db4 to master
Change-Id: I990bc8cf9dc3d1ecd1ade5fc60aa21c120ead7d5
diff --git a/src/com/android/contacts/common/list/ContactListFilter.java b/src/com/android/contacts/common/list/ContactListFilter.java
index 63eae17..c6baf41 100644
--- a/src/com/android/contacts/common/list/ContactListFilter.java
+++ b/src/com/android/contacts/common/list/ContactListFilter.java
@@ -335,9 +335,12 @@
throw new IllegalStateException(
"filterType must be FILTER_TYPE_ACCOUNT or FILER_TYPE_GROUP_MEMBERS");
}
- uriBuilder.appendQueryParameter(RawContacts.ACCOUNT_NAME, accountName);
- uriBuilder.appendQueryParameter(RawContacts.ACCOUNT_TYPE, accountType);
- if (!TextUtils.isEmpty(dataSet)) {
+ // 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 (dataSet != null) {
uriBuilder.appendQueryParameter(RawContacts.DATA_SET, dataSet);
}
return uriBuilder;
diff --git a/src/com/android/contacts/group/GroupMembersFragment.java b/src/com/android/contacts/group/GroupMembersFragment.java
index 66bd509..f7897bc 100644
--- a/src/com/android/contacts/group/GroupMembersFragment.java
+++ b/src/com/android/contacts/group/GroupMembersFragment.java
@@ -318,7 +318,7 @@
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 @@
new UpdateGroupMembersAsyncTask(
UpdateGroupMembersAsyncTask.TYPE_ADD,
getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
- mGroupMetaData.accountType).execute();
+ mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
}
}
@@ -636,7 +636,7 @@
contactIds[0] = contactId;
new UpdateGroupMembersAsyncTask(UpdateGroupMembersAsyncTask.TYPE_REMOVE,
getContext(), contactIds, mGroupMetaData.groupId, mGroupMetaData.accountName,
- mGroupMetaData.accountType).execute();
+ mGroupMetaData.accountType, mGroupMetaData.dataSet).execute();
}
}
diff --git a/src/com/android/contacts/group/UpdateGroupMembersAsyncTask.java b/src/com/android/contacts/group/UpdateGroupMembersAsyncTask.java
index 46aa674..9b255eb 100644
--- a/src/com/android/contacts/group/UpdateGroupMembersAsyncTask.java
+++ b/src/com/android/contacts/group/UpdateGroupMembersAsyncTask.java
@@ -22,6 +22,7 @@
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 @@
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 @@
// 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];