From c53f1fcecfcddb4928e726fcdaaec5cb3c8f46c8 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 30 Sep 2021 16:54:23 -0400 Subject: [PATCH] Insert call logs for calls accepted by linked devices. --- .../service/webrtc/ActiveCallActionProcessorDelegate.java | 4 ++++ .../securesms/service/webrtc/SignalCallManager.java | 8 ++++++++ .../securesms/service/webrtc/WebRtcInteractor.java | 4 ++++ 3 files changed, 16 insertions(+) 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 464f591609..10f5305738 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 @@ -222,6 +222,10 @@ public class ActiveCallActionProcessorDelegate extends WebRtcActionProcessor { webRtcInteractor.insertMissedCall(remotePeer, remotePeer.getCallStartTimestamp(), currentState.getCallSetupState().isRemoteVideoOffer()); } + if (state == WebRtcViewModel.State.CALL_ACCEPTED_ELSEWHERE) { + webRtcInteractor.insertReceivedCall(remotePeer, currentState.getCallSetupState().isRemoteVideoOffer()); + } + currentState = currentState.builder() .changeCallInfoState() .callState(state) 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 43eaa76f2e..e54b0f6eb4 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 @@ -788,6 +788,14 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. .updateNotification(context, messageAndThreadId.second(), signal); } + public void insertReceivedCall(@NonNull RemotePeer remotePeer, boolean signal, boolean isVideoOffer) { + Pair messageAndThreadId = DatabaseFactory.getSmsDatabase(context) + .insertReceivedCall(remotePeer.getId(), isVideoOffer); + + ApplicationDependencies.getMessageNotifier() + .updateNotification(context, messageAndThreadId.second(), signal); + } + public void retrieveTurnServers(@NonNull RemotePeer remotePeer) { networkExecutor.execute(() -> { try { diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcInteractor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcInteractor.java index 035aee604d..0f83670307 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcInteractor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcInteractor.java @@ -111,6 +111,10 @@ public class WebRtcInteractor { signalCallManager.insertMissedCall(remotePeer, true, timestamp, isVideoOffer); } + void insertReceivedCall(@NonNull RemotePeer remotePeer, boolean isVideoOffer) { + signalCallManager.insertReceivedCall(remotePeer, true, isVideoOffer); + } + boolean startWebRtcCallActivityIfPossible() { return signalCallManager.startCallCardActivityIfPossible(); }