diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/ActiveCallActionProcessorDelegate.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/ActiveCallActionProcessorDelegate.java index 8561d268e7..a7625b4768 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/ActiveCallActionProcessorDelegate.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/ActiveCallActionProcessorDelegate.java @@ -88,27 +88,6 @@ public class ActiveCallActionProcessorDelegate extends WebRtcActionProcessor { return currentState; } - @Override - protected @NonNull WebRtcServiceState handleReceivedIceCandidates(@NonNull WebRtcServiceState currentState, - @NonNull WebRtcData.CallMetadata callMetadata, - @NonNull ArrayList iceCandidateParcels) - { - Log.i(tag, "handleReceivedIceCandidates(): id: " + callMetadata.getCallId().format(callMetadata.getRemoteDevice()) + ", count: " + iceCandidateParcels.size()); - - LinkedList iceCandidates = new LinkedList<>(); - for (IceCandidateParcel parcel : iceCandidateParcels) { - iceCandidates.add(parcel.getIceCandidate()); - } - - try { - webRtcInteractor.getCallManager().receivedIceCandidates(callMetadata.getCallId(), callMetadata.getRemoteDevice(), iceCandidates); - } catch (CallException e) { - return callFailure(currentState, "receivedIceCandidates() failed: ", e); - } - - return currentState; - } - @Override protected @NonNull WebRtcServiceState handleRemoteVideoEnable(@NonNull WebRtcServiceState currentState, boolean enable) { RemotePeer activePeer = currentState.getCallInfoState().requireActivePeer(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/ConnectedCallActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/ConnectedCallActionProcessor.java index 033c9a9c0d..430f092189 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/ConnectedCallActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/ConnectedCallActionProcessor.java @@ -90,14 +90,6 @@ public class ConnectedCallActionProcessor extends DeviceAwareActionProcessor { return activeCallDelegate.handleSendIceCandidates(currentState, callMetadata, broadcast, iceCandidates); } - @Override - protected @NonNull WebRtcServiceState handleReceivedIceCandidates(@NonNull WebRtcServiceState currentState, - @NonNull WebRtcData.CallMetadata callMetadata, - @NonNull ArrayList iceCandidateParcels) - { - return activeCallDelegate.handleReceivedIceCandidates(currentState, callMetadata, iceCandidateParcels); - } - @Override protected @NonNull WebRtcServiceState handleLocalHangup(@NonNull WebRtcServiceState currentState) { return activeCallDelegate.handleLocalHangup(currentState); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java index 6d7721db7b..7071469ea5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java @@ -227,14 +227,6 @@ public class IncomingCallActionProcessor extends DeviceAwareActionProcessor { return activeCallDelegate.handleSendIceCandidates(currentState, callMetadata, broadcast, iceCandidates); } - @Override - protected @NonNull WebRtcServiceState handleReceivedIceCandidates(@NonNull WebRtcServiceState currentState, - @NonNull WebRtcData.CallMetadata callMetadata, - @NonNull ArrayList iceCandidateParcels) - { - return activeCallDelegate.handleReceivedIceCandidates(currentState, callMetadata, iceCandidateParcels); - } - @Override public @NonNull WebRtcServiceState handleCallConnected(@NonNull WebRtcServiceState currentState, @NonNull RemotePeer remotePeer) { return callSetupDelegate.handleCallConnected(currentState, remotePeer); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/OutgoingCallActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/OutgoingCallActionProcessor.java index 351f19592f..5148fbdbe1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/OutgoingCallActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/OutgoingCallActionProcessor.java @@ -231,14 +231,6 @@ public class OutgoingCallActionProcessor extends DeviceAwareActionProcessor { return activeCallDelegate.handleSendIceCandidates(currentState, callMetadata, broadcast, iceCandidates); } - @Override - protected @NonNull WebRtcServiceState handleReceivedIceCandidates(@NonNull WebRtcServiceState currentState, - @NonNull WebRtcData.CallMetadata callMetadata, - @NonNull ArrayList iceCandidateParcels) - { - return activeCallDelegate.handleReceivedIceCandidates(currentState, callMetadata, iceCandidateParcels); - } - @Override public @NonNull WebRtcServiceState handleCallConnected(@NonNull WebRtcServiceState currentState, @NonNull RemotePeer remotePeer) { return callSetupDelegate.handleCallConnected(currentState, remotePeer); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java index de1bdf44e8..92f7ec93e8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java @@ -4,14 +4,12 @@ import android.content.Context; import android.content.Intent; import android.os.ResultReceiver; -import androidx.annotation.CallSuper; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.signal.ringrtc.CallException; import org.signal.ringrtc.CallId; -import org.signal.ringrtc.CallManager; import org.signal.ringrtc.GroupCall; import org.thoughtcrime.securesms.components.sensors.Orientation; import org.thoughtcrime.securesms.crypto.IdentityKeyUtil; @@ -43,6 +41,7 @@ import org.whispersystems.signalservice.api.messages.calls.OfferMessage; import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMessage; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import java.util.Objects; @@ -558,7 +557,19 @@ public abstract class WebRtcActionProcessor { } protected @NonNull WebRtcServiceState handleReceivedIceCandidates(@NonNull WebRtcServiceState currentState, @NonNull CallMetadata callMetadata, @NonNull ArrayList iceCandidateParcels) { - Log.i(tag, "handleReceivedIceCandidates not processed"); + Log.i(tag, "handleReceivedIceCandidates(): id: " + callMetadata.getCallId().format(callMetadata.getRemoteDevice()) + ", count: " + iceCandidateParcels.size()); + + LinkedList iceCandidates = new LinkedList<>(); + for (IceCandidateParcel parcel : iceCandidateParcels) { + iceCandidates.add(parcel.getIceCandidate()); + } + + try { + webRtcInteractor.getCallManager().receivedIceCandidates(callMetadata.getCallId(), callMetadata.getRemoteDevice(), iceCandidates); + } catch (CallException e) { + return callFailure(currentState, "receivedIceCandidates() failed: ", e); + } + return currentState; }