Handle settings update case for data_set.
Bug 5156004
Change-Id: Idd1455f9bd98ca3607e64546e9ba6c77ea9a2f61
diff --git a/src/com/android/contacts/list/CustomContactListFilterActivity.java b/src/com/android/contacts/list/CustomContactListFilterActivity.java
index 638a28e..d5395bd 100644
--- a/src/com/android/contacts/list/CustomContactListFilterActivity.java
+++ b/src/com/android/contacts/list/CustomContactListFilterActivity.java
@@ -373,13 +373,21 @@
}
} else if (isUpdate()) {
if (mUngrouped) {
+ String accountName = this.getAsString(Settings.ACCOUNT_NAME);
+ String accountType = this.getAsString(Settings.ACCOUNT_TYPE);
+ String dataSet = this.getAsString(Settings.DATA_SET);
+ StringBuilder selection = new StringBuilder(Settings.ACCOUNT_NAME + "=? AND "
+ + Settings.ACCOUNT_TYPE + "=?");
+ String[] selectionArgs;
+ if (dataSet == null) {
+ selection.append(" AND " + Settings.DATA_SET + " IS NULL");
+ selectionArgs = new String[] {accountName, accountType};
+ } else {
+ selection.append(" AND " + Settings.DATA_SET + "=?");
+ selectionArgs = new String[] {accountName, accountType, dataSet};
+ }
return ContentProviderOperation.newUpdate(Settings.CONTENT_URI)
- .withSelection(Settings.ACCOUNT_NAME + "=? AND "
- + Settings.ACCOUNT_TYPE + "=?",
- new String[] {
- this.getAsString(Settings.ACCOUNT_NAME),
- this.getAsString(Settings.ACCOUNT_TYPE)
- })
+ .withSelection(selection.toString(), selectionArgs)
.withValues(mAfter)
.build();
} else {