diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/WebRtcCallActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/WebRtcCallActivity.kt index b81da89c1f..2c8617cd7d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/WebRtcCallActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/WebRtcCallActivity.kt @@ -21,6 +21,7 @@ import android.view.Surface import android.view.ViewGroup import android.view.Window import android.view.WindowManager +import androidx.activity.OnBackPressedCallback import androidx.activity.viewModels import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatDelegate @@ -148,6 +149,20 @@ class WebRtcCallActivity : BaseActivity(), SafetyNumberChangeDialog.Callback, Re initializeResources() initializeViewModel() + onBackPressedDispatcher.addCallback( + this, + object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + if (viewModel.callParticipantsStateSnapshot.callState != WebRtcViewModel.State.CALL_INCOMING && enterPipModeIfPossible()) { + return + } + isEnabled = false + onBackPressedDispatcher.onBackPressed() + isEnabled = true + } + } + ) + // Restore saved state if recreated while in PIP mode val savedAspectRatio = savedInstanceState?.getFloat(SAVED_STATE_PIP_ASPECT_RATIO, 0f) ?: 0f lastLocalParticipantLandscape = savedInstanceState?.getBoolean(SAVED_STATE_LOCAL_PARTICIPANT_LANDSCAPE, false) ?: false @@ -331,12 +346,6 @@ class WebRtcCallActivity : BaseActivity(), SafetyNumberChangeDialog.Callback, Re } } - override fun onBackPressed() { - if (viewModel.callParticipantsStateSnapshot.callState == WebRtcViewModel.State.CALL_INCOMING || !enterPipModeIfPossible()) { - super.onBackPressed() - } - } - override fun onSendAnywayAfterSafetyNumberChange(changedRecipients: MutableList) { val state: CallParticipantsState = viewModel.callParticipantsStateSnapshot ?: return @@ -1369,7 +1378,7 @@ class WebRtcCallActivity : BaseActivity(), SafetyNumberChangeDialog.Callback, Re } override fun onNavigateUpClicked() { - onBackPressed() + onBackPressedDispatcher.onBackPressed() } override fun toggleControls() {