diff --git a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java index e05cfb5838..6233ff3a20 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -423,6 +423,10 @@ public final class ContactSelectionListFragment extends LoggingFragment { onRefreshListener = null; } + public int getSelectedMembersSize() { + return contactSearchMediator.getSelectedMembersSize(); + } + private @NonNull Bundle safeArguments() { return getArguments() != null ? getArguments() : new Bundle(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchMediator.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchMediator.kt index 1bf592e86b..8e44c17ce5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchMediator.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchMediator.kt @@ -133,6 +133,10 @@ class ContactSearchMediator( viewModel.clearSelection() } + fun getSelectedMembersSize(): Int { + return viewModel.getSelectedMembersSize() + } + fun getSelectedContacts(): Set { return viewModel.getSelectedContacts() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt index 6c166d7728..eace07fec9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt @@ -55,10 +55,14 @@ class ContactSearchViewModel( val selectionState: LiveData> = selectionStore.stateLiveData val errorEventsStream: Observable = errorEvents + private var selectionSize = 0; override fun onCleared() { disposables.clear() } + fun getSelectedMembersSize(): Int { + return selectionSize + } fun setConfiguration(contactSearchConfiguration: ContactSearchConfiguration) { val pagedDataSource = ContactSearchPagedDataSource( contactSearchConfiguration, @@ -90,7 +94,7 @@ class ContactSearchViewModel( val newSelectionEntries = results.filter { it.isSelectable }.map { it.key } - getSelectedContacts() val newSelectionSize = newSelectionEntries.size + getSelectedContacts().size - + selectionSize = newSelectionSize if (selectionLimits.hasRecommendedLimit() && getSelectedContacts().size < selectionLimits.recommendedLimit && newSelectionSize >= selectionLimits.recommendedLimit) { errorEvents.onNext(ContactSearchError.RECOMMENDED_LIMIT_REACHED) } else if (selectionLimits.hasHardLimit() && newSelectionSize > selectionLimits.hardLimit) { @@ -107,6 +111,8 @@ class ContactSearchViewModel( } fun setKeysNotSelected(contactSearchKeys: Set) { + val newSelectionSize = getSelectedContacts().size - contactSearchKeys.size + selectionSize = newSelectionSize selectionStore.update { it - contactSearchKeys } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/creategroup/CreateGroupActivity.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/creategroup/CreateGroupActivity.java index bf0aa73618..263e969278 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/creategroup/CreateGroupActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/creategroup/CreateGroupActivity.java @@ -121,11 +121,12 @@ public class CreateGroupActivity extends ContactSelectionActivity { @Override public void onSelectionChanged() { + int selectedMembers = contactsFragment.getSelectedMembersSize(); int selectedContactsCount = contactsFragment.getTotalMemberCount(); if (selectedContactsCount == 0) { getToolbar().setTitle(getString(R.string.CreateGroupActivity__select_members)); } else { - getToolbar().setTitle(getResources().getQuantityString(R.plurals.CreateGroupActivity__d_members, selectedContactsCount, selectedContactsCount)); + getToolbar().setTitle(getResources().getQuantityString(R.plurals.CreateGroupActivity__d_members, selectedMembers, selectedMembers)); } }