From b1fdbc01512e592cb4d8c830b648a6092d15a710 Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Wed, 23 Sep 2020 11:47:14 -0300 Subject: [PATCH] Refresh own GV2 capability on group create. --- .../groups/ui/creategroup/CreateGroupActivity.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 f790c776bb..9e28f07c99 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 @@ -31,6 +31,7 @@ import org.thoughtcrime.securesms.util.views.SimpleProgressDialog; import org.whispersystems.libsignal.util.guava.Optional; import java.io.IOException; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -152,9 +153,12 @@ public class CreateGroupActivity extends ContactSelectionActivity { stopwatch.split("registered"); + List recipientsAndSelf = new ArrayList<>(resolved); + recipientsAndSelf.add(Recipient.self().resolve()); + if (FeatureFlags.groupsV2create()) { try { - GroupsV2CapabilityChecker.refreshCapabilitiesIfNecessary(resolved); + GroupsV2CapabilityChecker.refreshCapabilitiesIfNecessary(recipientsAndSelf); } catch (IOException e) { Log.w(TAG, "Failed to refresh all recipient capabilities.", e); } @@ -164,8 +168,8 @@ public class CreateGroupActivity extends ContactSelectionActivity { resolved = Recipient.resolvedList(ids); - if (Stream.of(resolved).anyMatch(r -> r.getGroupsV2Capability() != Recipient.Capability.SUPPORTED) && - Stream.of(resolved).anyMatch(r -> !r.hasE164())) + boolean gv2 = Stream.of(recipientsAndSelf).allMatch(r -> r.getGroupsV2Capability() == Recipient.Capability.SUPPORTED); + if (!gv2 && Stream.of(resolved).anyMatch(r -> !r.hasE164())) { Log.w(TAG, "Invalid GV1 group..."); ids = Collections.emptyList();