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 464f59160..10f530573 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 43eaa76f2..e54b0f6eb 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 035aee604..0f8367030 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(); }