Skip to content

Commit

Permalink
Hide legacy group warning when GV2 create feature flag is off or MMS …
Browse files Browse the repository at this point in the history
…is forced.

Fixes #9913
  • Loading branch information
alan-signal committed Aug 8, 2020
1 parent eefe60a commit 8924bc5
Showing 1 changed file with 13 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,16 @@
import com.annimon.stream.Collectors;
import com.annimon.stream.Stream;

import org.thoughtcrime.securesms.groups.GroupsV2CapabilityChecker;
import org.thoughtcrime.securesms.groups.ui.GroupMemberEntry;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.util.DefaultValueLiveData;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.SingleLiveEvent;
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;

import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
Expand Down Expand Up @@ -51,8 +50,18 @@ private AddGroupDetailsViewModel(@NonNull Collection<RecipientId> recipientIds,
LiveData<Boolean> isValidName = Transformations.map(name, name -> !TextUtils.isEmpty(name));

members = LiveDataUtil.combineLatest(initialMembers, deleted, AddGroupDetailsViewModel::filterDeletedMembers);
nonGv2CapableMembers = LiveDataUtil.mapAsync(members, memberList -> repository.checkCapabilities(Stream.of(memberList).map(newGroupCandidate -> newGroupCandidate.getMember().getId()).toList()));

isMms = Transformations.map(members, AddGroupDetailsViewModel::isAnyForcedSms);

LiveData<List<GroupMemberEntry.NewGroupCandidate>> membersToCheckGv2CapabilityOf = LiveDataUtil.combineLatest(isMms, members, (forcedMms, memberList) -> {
if (FeatureFlags.groupsV2create() && !forcedMms) {
return memberList;
} else {
return Collections.emptyList();
}
});

nonGv2CapableMembers = LiveDataUtil.mapAsync(membersToCheckGv2CapabilityOf, memberList -> repository.checkCapabilities(Stream.of(memberList).map(newGroupCandidate -> newGroupCandidate.getMember().getId()).toList()));
canSubmitForm = LiveDataUtil.combineLatest(isMms, isValidName, (mms, validName) -> mms || validName);

repository.resolveMembers(recipientIds, initialMembers::postValue);
Expand Down

0 comments on commit 8924bc5

Please sign in to comment.