Load all groups data from editor

GroupMembershipView needs all group data to determine which group
is favorites/default, so when we load from the editor use the old
selection string.

Test:
Followed steps in bug and made sure the contact wasn't booted from
the My Contacts list, and the selected labels were updated properly.
Also tested adding multiple new labels and saving those.

Bug: 31750797
Change-Id: I84b1be6c17f2acf46efc202fb81a2c180cc2bcae
diff --git a/src/com/android/contacts/GroupListLoader.java b/src/com/android/contacts/GroupListLoader.java
index 4816a5e..51695f5 100644
--- a/src/com/android/contacts/GroupListLoader.java
+++ b/src/com/android/contacts/GroupListLoader.java
@@ -29,12 +29,6 @@
  * groups.
  */
 public final class GroupListLoader extends CursorLoader {
-
-    public final static String DEFAULT_SELECTION =
-            Groups.ACCOUNT_TYPE + " NOT NULL AND " +
-                    Groups.ACCOUNT_NAME + " NOT NULL AND " + Groups.AUTO_ADD + "=0 AND " +
-                    Groups.FAVORITES + "=0 AND " + Groups.DELETED + "=0";
-
     private final static String[] COLUMNS = new String[] {
         Groups.ACCOUNT_NAME,
         Groups.ACCOUNT_TYPE,
@@ -61,7 +55,7 @@
         super(context,
                 GROUP_LIST_URI,
                 COLUMNS,
-                DEFAULT_SELECTION,
+                GroupUtil.DEFAULT_SELECTION,
                 null,
                 GroupUtil.getGroupsSortOrder());
     }
diff --git a/src/com/android/contacts/GroupMetaDataLoader.java b/src/com/android/contacts/GroupMetaDataLoader.java
index 57aa67b..200d919 100644
--- a/src/com/android/contacts/GroupMetaDataLoader.java
+++ b/src/com/android/contacts/GroupMetaDataLoader.java
@@ -51,7 +51,12 @@
     public final static int DELETED = 8;
 
     public GroupMetaDataLoader(Context context, Uri groupUri) {
-        super(context, ensureIsGroupUri(groupUri), COLUMNS, GroupListLoader.DEFAULT_SELECTION, null,
+        super(context, ensureIsGroupUri(groupUri), COLUMNS, GroupUtil.DEFAULT_SELECTION, null,
+                GroupUtil.getGroupsSortOrder());
+    }
+
+    public GroupMetaDataLoader(Context context, Uri groupUri, String selection) {
+        super(context, ensureIsGroupUri(groupUri), COLUMNS, selection, null,
                 GroupUtil.getGroupsSortOrder());
     }
 
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 05a69ec..80e1b82 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -78,6 +78,7 @@
 import com.android.contacts.common.util.ImplicitIntentsUtil;
 import com.android.contacts.common.util.MaterialColorMapUtils;
 import com.android.contacts.editor.AggregationSuggestionEngine.Suggestion;
+import com.android.contacts.group.GroupUtil;
 import com.android.contacts.list.UiIntentActions;
 import com.android.contacts.quickcontact.InvisibleContactUtil;
 import com.android.contacts.quickcontact.QuickContactActivity;
@@ -426,7 +427,8 @@
 
                 @Override
                 public CursorLoader onCreateLoader(int id, Bundle args) {
-                    return new GroupMetaDataLoader(mContext, ContactsContract.Groups.CONTENT_URI);
+                    return new GroupMetaDataLoader(mContext, ContactsContract.Groups.CONTENT_URI,
+                            GroupUtil.ALL_GROUPS_SELECTION);
                 }
 
                 @Override
diff --git a/src/com/android/contacts/group/GroupUtil.java b/src/com/android/contacts/group/GroupUtil.java
index 8976270..1a99a65 100644
--- a/src/com/android/contacts/group/GroupUtil.java
+++ b/src/com/android/contacts/group/GroupUtil.java
@@ -42,6 +42,13 @@
  */
 public final class GroupUtil {
 
+    public final static String ALL_GROUPS_SELECTION =
+            Groups.ACCOUNT_TYPE + " NOT NULL AND " + Groups.ACCOUNT_NAME + " NOT NULL AND "
+                    + Groups.DELETED + "=0";
+
+    public final static String DEFAULT_SELECTION = ALL_GROUPS_SELECTION + " AND "
+            + Groups.AUTO_ADD + "=0 AND " + Groups.FAVORITES + "=0";
+
     public static final String ACTION_ADD_TO_GROUP = "addToGroup";
     public static final String ACTION_CREATE_GROUP = "createGroup";
     public static final String ACTION_DELETE_GROUP = "deleteGroup";