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);