diff --git a/briar-android/src/org/briarproject/android/groups/ConfigureGroupActivity.java b/briar-android/src/org/briarproject/android/groups/ConfigureGroupActivity.java index fff9bc5f96bdbc7e4c6471c960d9515407b92be3..7314ef7bbe8c9fbec240d55abfe81224def33555 100644 --- a/briar-android/src/org/briarproject/android/groups/ConfigureGroupActivity.java +++ b/briar-android/src/org/briarproject/android/groups/ConfigureGroupActivity.java @@ -50,6 +50,7 @@ SelectContactsDialog.Listener { private RadioButton visibleToAll = null, visibleToSome = null; private Button doneButton = null; private ProgressBar progress = null; + private boolean changed = false; // Fields that are accessed from background threads must be volatile @Inject private volatile DatabaseComponent db; @@ -128,20 +129,28 @@ SelectContactsDialog.Listener { public void onClick(View view) { if(view == subscribeCheckBox) { + changed = true; boolean subscribe = subscribeCheckBox.isChecked(); visibleToAll.setEnabled(subscribe); visibleToSome.setEnabled(subscribe); + } else if(view == visibleToAll) { + changed = true; } else if(view == visibleToSome) { + changed = true; if(contacts == null) loadContacts(); else displayContacts(); } else if(view == doneButton) { - boolean subscribe = subscribeCheckBox.isChecked(); - boolean all = visibleToAll.isChecked(); - // Replace the button with a progress bar - doneButton.setVisibility(GONE); - progress.setVisibility(VISIBLE); - // Update the blog in a background thread - if(subscribe || subscribed) updateGroup(subscribe, all); + if(changed) { + boolean subscribe = subscribeCheckBox.isChecked(); + boolean all = visibleToAll.isChecked(); + // Replace the button with a progress bar + doneButton.setVisibility(GONE); + progress.setVisibility(VISIBLE); + // Update the blog in a background thread + if(subscribe || subscribed) updateGroup(subscribe, all); + } else { + finish(); + } } }