From cbb04e8f0c63a3e888b19380b83ab20f07050a18 Mon Sep 17 00:00:00 2001 From: Jim Gustafson Date: Wed, 17 Apr 2024 07:32:29 -0700 Subject: [PATCH] Update to RingRTC v2.40.0 --- .../service/webrtc/SignalCallManager.java | 20 ++++++++++++++----- dependencies.gradle.kts | 2 +- gradle/verification-metadata.xml | 10 +++++----- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java index c5a3054aa7..1d35497222 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java @@ -91,6 +91,7 @@ import java.io.IOException; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -757,10 +758,10 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. } @Override - public void onSendCallMessage(@NonNull UUID aciUuid, @NonNull byte[] bytes, @NonNull CallManager.CallMessageUrgency urgency) { + public void onSendCallMessage(@NonNull UUID aciUuid, @NonNull byte[] message, @NonNull CallManager.CallMessageUrgency urgency) { Log.i(TAG, "onSendCallMessage():"); - OpaqueMessage opaqueMessage = new OpaqueMessage(bytes, getUrgencyFromCallUrgency(urgency)); + OpaqueMessage opaqueMessage = new OpaqueMessage(message, getUrgencyFromCallUrgency(urgency)); SignalServiceCallMessage callMessage = SignalServiceCallMessage.forOpaque(opaqueMessage, null); networkExecutor.execute(() -> { @@ -774,27 +775,36 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. recipient.isSelf() ? Optional.empty() : UnidentifiedAccessUtil.getAccessFor(context, recipient), callMessage); } catch (UntrustedIdentityException e) { - Log.i(TAG, "sendOpaqueCallMessage onFailure: ", e); + Log.i(TAG, "onSendCallMessage onFailure: ", e); RetrieveProfileJob.enqueue(recipient.getId()); process((s, p) -> p.handleGroupMessageSentError(s, Collections.singletonList(recipient.getId()), UNTRUSTED_IDENTITY)); } catch (IOException e) { - Log.i(TAG, "sendOpaqueCallMessage onFailure: ", e); + Log.i(TAG, "onSendCallMessage onFailure: ", e); process((s, p) -> p.handleGroupMessageSentError(s, Collections.singletonList(recipient.getId()), NETWORK_FAILURE)); } }); } @Override - public void onSendCallMessageToGroup(@NonNull byte[] groupIdBytes, @NonNull byte[] message, @NonNull CallManager.CallMessageUrgency urgency) { + public void onSendCallMessageToGroup(@NonNull byte[] groupIdBytes, @NonNull byte[] message, @NonNull CallManager.CallMessageUrgency urgency, @NonNull List overrideRecipients) { Log.i(TAG, "onSendCallMessageToGroup():"); networkExecutor.execute(() -> { try { GroupId groupId = GroupId.v2(new GroupIdentifier(groupIdBytes)); List recipients = SignalDatabase.groups().getGroupMembers(groupId, GroupTable.MemberSet.FULL_MEMBERS_EXCLUDING_SELF); + Set toInclude = new HashSet<>(overrideRecipients.size()); + + toInclude.addAll(overrideRecipients); recipients = RecipientUtil.getEligibleForSending((recipients.stream() .map(Recipient::resolve) + .filter(r -> { + if (toInclude.isEmpty()) { + return true; + } + return r.getHasServiceId() && toInclude.contains(r.requireServiceId().getRawUuid()); + }) .collect(Collectors.toList()))); OpaqueMessage opaqueMessage = new OpaqueMessage(message, getUrgencyFromCallUrgency(urgency)); diff --git a/dependencies.gradle.kts b/dependencies.gradle.kts index 7425b277c4..23258f7a48 100644 --- a/dependencies.gradle.kts +++ b/dependencies.gradle.kts @@ -120,7 +120,7 @@ dependencyResolutionManagement { library("libsignal-client", "org.signal", "libsignal-client").versionRef("libsignal-client") library("libsignal-android", "org.signal", "libsignal-android").versionRef("libsignal-client") library("signal-aesgcmprovider", "org.signal:aesgcmprovider:0.0.3") - library("signal-ringrtc", "org.signal:ringrtc-android:2.39.3") + library("signal-ringrtc", "org.signal:ringrtc-android:2.40.0") library("signal-android-database-sqlcipher", "org.signal:sqlcipher-android:4.5.4-S2") // Third Party diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index ac7b8f07b8..4b88b89e2f 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -5719,12 +5719,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + +