mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 09:49:30 +01:00
Convert calling and payments apis to WebSocket.
This commit is contained in:
committed by
Greyson Parrelli
parent
224a85f5db
commit
92e590aa3b
@@ -53,6 +53,7 @@ import org.thoughtcrime.securesms.jobs.GroupCallUpdateSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.RetrieveProfileJob;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.messages.GroupSendUtil;
|
||||
import org.thoughtcrime.securesms.net.SignalNetwork;
|
||||
import org.thoughtcrime.securesms.notifications.v2.ConversationId;
|
||||
import org.thoughtcrime.securesms.ratelimit.ProofRequiredExceptionHandler;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
@@ -74,6 +75,8 @@ import org.thoughtcrime.securesms.webrtc.CallNotificationBuilder;
|
||||
import org.thoughtcrime.securesms.webrtc.audio.SignalAudioManager;
|
||||
import org.thoughtcrime.securesms.webrtc.locks.LockManager;
|
||||
import org.webrtc.PeerConnection;
|
||||
import org.whispersystems.signalservice.api.NetworkResult;
|
||||
import org.whispersystems.signalservice.api.NetworkResultUtil;
|
||||
import org.whispersystems.signalservice.api.crypto.SealedSenderAccess;
|
||||
import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException;
|
||||
import org.whispersystems.signalservice.api.messages.SendMessageResult;
|
||||
@@ -876,9 +879,10 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall.
|
||||
headerPairs = Collections.emptyList();
|
||||
}
|
||||
|
||||
CallingResponse response = AppDependencies.getSignalServiceMessageSender()
|
||||
.makeCallingRequest(requestId, url, httpMethod.name(), headerPairs, body);
|
||||
NetworkResult<CallingResponse> result = SignalNetwork.calling()
|
||||
.makeCallingRequest(requestId, url, httpMethod.name(), headerPairs, body);
|
||||
|
||||
CallingResponse response = ((NetworkResult.Success<CallingResponse>) result).getResult();
|
||||
try {
|
||||
if (response instanceof CallingResponse.Success) {
|
||||
CallingResponse.Success success = (CallingResponse.Success) response;
|
||||
@@ -1029,7 +1033,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall.
|
||||
public void retrieveTurnServers(@NonNull RemotePeer remotePeer) {
|
||||
networkExecutor.execute(() -> {
|
||||
try {
|
||||
List<TurnServerInfo> turnServerInfos = AppDependencies.getSignalServiceAccountManager().getTurnServerInfo();
|
||||
List<TurnServerInfo> turnServerInfos = NetworkResultUtil.toBasicLegacy(SignalNetwork.calling().getTurnServerInfo());
|
||||
List<PeerConnection.IceServer> iceServers = mapToIceServers(turnServerInfos);
|
||||
process((s, p) -> {
|
||||
RemotePeer activePeer = s.getCallInfoState().getActivePeer();
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
package org.thoughtcrime.securesms.service.webrtc.links
|
||||
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import org.signal.core.util.isAbsent
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.signal.core.util.or
|
||||
import org.signal.libsignal.zkgroup.GenericServerPublicParams
|
||||
import org.signal.libsignal.zkgroup.calllinks.CallLinkAuthCredentialPresentation
|
||||
import org.signal.libsignal.zkgroup.calllinks.CallLinkSecretParams
|
||||
@@ -22,8 +20,9 @@ import org.signal.ringrtc.CallLinkState.Restrictions
|
||||
import org.signal.ringrtc.CallManager
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.net.SignalNetwork
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.whispersystems.signalservice.internal.ServiceResponse
|
||||
import org.whispersystems.signalservice.api.NetworkResult
|
||||
import java.io.IOException
|
||||
|
||||
/**
|
||||
@@ -51,27 +50,28 @@ class SignalCallLinkManager(
|
||||
|
||||
Log.d(TAG, "Requesting call link credential response.")
|
||||
|
||||
val serviceResponse: ServiceResponse<CreateCallLinkCredentialResponse> = AppDependencies.callLinksService.getCreateCallLinkAuthCredential(request)
|
||||
if (serviceResponse.result.isAbsent()) {
|
||||
throw IOException("Failed to create credential response", serviceResponse.applicationError.or(serviceResponse.executionError).get())
|
||||
when (val result: NetworkResult<CreateCallLinkCredentialResponse> = SignalNetwork.calling.createCallLinkCredential(request)) {
|
||||
is NetworkResult.Success -> {
|
||||
Log.d(TAG, "Requesting call link credential.")
|
||||
|
||||
val createCallLinkCredential: CreateCallLinkCredential = requestContext.receiveResponse(
|
||||
result.result,
|
||||
userAci.libSignalAci,
|
||||
genericServerPublicParams
|
||||
)
|
||||
|
||||
Log.d(TAG, "Requesting and returning call link presentation.")
|
||||
|
||||
return createCallLinkCredential.present(
|
||||
roomId,
|
||||
userAci.libSignalAci,
|
||||
genericServerPublicParams,
|
||||
CallLinkSecretParams.deriveFromRootKey(linkRootKey)
|
||||
)
|
||||
}
|
||||
|
||||
else -> throw IOException("Failed to create credential response", result.getCause())
|
||||
}
|
||||
|
||||
Log.d(TAG, "Requesting call link credential.")
|
||||
|
||||
val createCallLinkCredential: CreateCallLinkCredential = requestContext.receiveResponse(
|
||||
serviceResponse.result.get(),
|
||||
userAci.libSignalAci,
|
||||
genericServerPublicParams
|
||||
)
|
||||
|
||||
Log.d(TAG, "Requesting and returning call link presentation.")
|
||||
|
||||
return createCallLinkCredential.present(
|
||||
roomId,
|
||||
userAci.libSignalAci,
|
||||
genericServerPublicParams,
|
||||
CallLinkSecretParams.deriveFromRootKey(linkRootKey)
|
||||
)
|
||||
}
|
||||
|
||||
private fun requestCallLinkAuthCredentialPresentation(
|
||||
|
||||
Reference in New Issue
Block a user