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 902bbbcfc6..846c33bf4b 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 @@ -681,16 +681,18 @@ public abstract class WebRtcActionProcessor { ApplicationDependencies.getAppForegroundObserver().removeListener(webRtcInteractor.getForegroundListener()); - webRtcInteractor.updatePhoneState(LockManager.PhoneState.PROCESSING); - boolean playDisconnectSound = (activePeer.getState() == CallState.DIALING) || - (activePeer.getState() == CallState.REMOTE_RINGING) || - (activePeer.getState() == CallState.RECEIVED_BUSY) || - (activePeer.getState() == CallState.CONNECTED); - webRtcInteractor.stopAudio(playDisconnectSound); + if (activePeer.getState() != CallState.IDLE) { + webRtcInteractor.updatePhoneState(LockManager.PhoneState.PROCESSING); + boolean playDisconnectSound = (activePeer.getState() == CallState.DIALING) || + (activePeer.getState() == CallState.REMOTE_RINGING) || + (activePeer.getState() == CallState.RECEIVED_BUSY) || + (activePeer.getState() == CallState.CONNECTED); + webRtcInteractor.stopAudio(playDisconnectSound); - webRtcInteractor.terminateCall(activePeer.getId()); - webRtcInteractor.updatePhoneState(LockManager.PhoneState.IDLE); - webRtcInteractor.stopForegroundService(); + webRtcInteractor.terminateCall(activePeer.getId()); + webRtcInteractor.updatePhoneState(LockManager.PhoneState.IDLE); + webRtcInteractor.stopForegroundService(); + } return WebRtcVideoUtil.deinitializeVideo(currentState) .builder()