Fixing filtering contacts by account

Change-Id: I7adb24049c5e78a478f337aa96439ae6d89659ef
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
index 3cf28c0..d74ffd3 100644
--- a/src/com/android/contacts/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -85,8 +85,7 @@
     protected void configureUri(CursorLoader loader, long directoryId, ContactListFilter filter) {
         Uri uri = Contacts.CONTENT_URI;
         if (filter != null) {
-            if (filter.filterType == ContactListFilter.FILTER_TYPE_GROUP ||
-                    filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
+            if (filter.filterType == ContactListFilter.FILTER_TYPE_GROUP) {
                 uri = Data.CONTENT_URI;
             } else if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
                 String lookupKey = getSelectedContactLookupKey();
@@ -116,8 +115,7 @@
 
     protected void configureProjection(
             CursorLoader loader, long directoryId, ContactListFilter filter) {
-        if (filter != null && (filter.groupId != 0
-                || filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT)) {
+        if (filter != null && filter.filterType == ContactListFilter.FILTER_TYPE_GROUP) {
             loader.setProjection(PROJECTION_DATA);
         } else {
             loader.setProjection(PROJECTION_CONTACT);
@@ -163,24 +161,23 @@
                 }
                 break;
             }
-            case ContactListFilter.FILTER_TYPE_ACCOUNT:
+            case ContactListFilter.FILTER_TYPE_ACCOUNT: {
+                // TODO: avoid the use of private API
+                selection.append(
+                        Contacts._ID + " IN ("
+                                + "SELECT DISTINCT " + RawContacts.CONTACT_ID
+                                + " FROM raw_contacts"
+                                + " WHERE " + RawContacts.ACCOUNT_TYPE + "=?"
+                                + "   AND " + RawContacts.ACCOUNT_NAME + "=?)");
+                selectionArgs.add(filter.accountType);
+                selectionArgs.add(filter.accountName);
+                break;
+            }
             case ContactListFilter.FILTER_TYPE_GROUP: {
-                if (filter.groupId != 0) {
-                    selection.append(Data.MIMETYPE + "=?"
-                            + " AND " + GroupMembership.GROUP_ROW_ID + "=?");
-                    selectionArgs.add(GroupMembership.CONTENT_ITEM_TYPE);
-                    selectionArgs.add(String.valueOf(filter.groupId));
-                } else {
-                    // TODO: avoid the use of private API
-                    selection.append(
-                            Data.CONTACT_ID + " IN ("
-                                    + "SELECT DISTINCT " + RawContacts.CONTACT_ID
-                                    + " FROM raw_contacts"
-                                    + " WHERE " + RawContacts.ACCOUNT_TYPE + "=?"
-                                    + "   AND " + RawContacts.ACCOUNT_NAME + "=?)");
-                    selectionArgs.add(filter.accountType);
-                    selectionArgs.add(filter.accountName);
-                }
+                selection.append(Data.MIMETYPE + "=?"
+                        + " AND " + GroupMembership.GROUP_ROW_ID + "=?");
+                selectionArgs.add(GroupMembership.CONTENT_ITEM_TYPE);
+                selectionArgs.add(String.valueOf(filter.groupId));
                 break;
             }
         }