diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java index 47e4cb476..d6e74b1bb 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java @@ -79,9 +79,10 @@ public class GroupActivity extends // start with group disabled and enable when not dissolved setGroupEnabled(false); - viewModel.isDissolved().observeEvent(this, dissolved -> { + viewModel.isDissolved().observe(this, dissolved -> { setGroupEnabled(!dissolved); - if (dissolved) onGroupDissolved(); + // only show dialog when no prior state + if (dissolved && state == null) onGroupDissolved(); }); } @@ -153,7 +154,7 @@ public class GroupActivity extends @Override public void onReplyClick(GroupMessageItem item) { - Boolean isDissolved = viewModel.isDissolved().getLastValue(); + Boolean isDissolved = viewModel.isDissolved().getValue(); if (isDissolved != null && !isDissolved) super.onReplyClick(item); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupViewModel.java index 2b25ee75e..b3ce68229 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupViewModel.java @@ -22,8 +22,6 @@ import org.briarproject.bramble.api.system.AndroidExecutor; import org.briarproject.bramble.api.system.Clock; import org.briarproject.briar.android.sharing.SharingController; import org.briarproject.briar.android.threaded.ThreadListViewModel; -import org.briarproject.briar.android.viewmodel.LiveEvent; -import org.briarproject.briar.android.viewmodel.MutableLiveEvent; import org.briarproject.briar.api.android.AndroidNotificationManager; import org.briarproject.briar.api.client.MessageTracker; import org.briarproject.briar.api.client.MessageTracker.GroupCount; @@ -71,8 +69,8 @@ class GroupViewModel extends ThreadListViewModel { private final MutableLiveData privateGroup = new MutableLiveData<>(); private final MutableLiveData isCreator = new MutableLiveData<>(); - private final MutableLiveEvent isDissolved = - new MutableLiveEvent<>(); + private final MutableLiveData isDissolved = + new MutableLiveData<>(); @Inject GroupViewModel(Application application, @@ -129,7 +127,7 @@ class GroupViewModel extends ThreadListViewModel { } else if (e instanceof GroupDissolvedEvent) { GroupDissolvedEvent g = (GroupDissolvedEvent) e; if (g.getGroupId().equals(groupId)) { - isDissolved.setEvent(true); + isDissolved.setValue(true); } } else { super.eventOccurred(e); @@ -164,7 +162,7 @@ class GroupViewModel extends ThreadListViewModel { loadList(txn -> { // check first if group is dissolved isDissolved - .postEvent(privateGroupManager.isDissolved(txn, groupId)); + .postValue(privateGroupManager.isDissolved(txn, groupId)); // now continue to load the items long start = now(); List headers = @@ -282,7 +280,7 @@ class GroupViewModel extends ThreadListViewModel { return isCreator; } - LiveEvent isDissolved() { + LiveData isDissolved() { return isDissolved; }