Exit edit mode when the last group member is removed

Bug 30470170

Change-Id: I74f19c40baffaba9396520f9d36bb22c3ea6347d
diff --git a/src/com/android/contacts/activities/GroupMembersActivity.java b/src/com/android/contacts/activities/GroupMembersActivity.java
index f8efa85..093c8b6 100644
--- a/src/com/android/contacts/activities/GroupMembersActivity.java
+++ b/src/com/android/contacts/activities/GroupMembersActivity.java
@@ -255,9 +255,14 @@
 
             toast(getToastMessageForSaveAction(newIntent.getAction()));
 
-            // If we're editing the group, don't reload the fragment so the user can
-            // continue to remove group members one by one
-            if (!mIsEditMode && !ACTION_REMOVE_FROM_GROUP.equals(newIntent.getAction())) {
+            if (mIsEditMode) {
+                // If we're removing group members one at a time, don't reload the fragment so
+                // the user can continue to remove group members one by one
+                if (getGroupCount() == 1) {
+                    // If we're deleting the last group member, exit edit mode
+                    onBackPressed();
+                }
+            } else if (!ACTION_REMOVE_FROM_GROUP.equals(newIntent.getAction())) {
                 replaceGroupMembersFragment();
                 invalidateOptionsMenu();
             }
@@ -281,6 +286,11 @@
         throw new IllegalArgumentException("Unhanded contact save action " + action);
     }
 
+    private int getGroupCount() {
+        return mMembersFragment != null && mMembersFragment.getAdapter() != null
+                ? mMembersFragment.getAdapter().getCount() : -1;
+    }
+
     private void replaceGroupMembersFragment() {
         mMembersFragment = GroupMembersFragment.newInstance(mGroupUri);
         mMembersFragment.setListener(this);