From 143a61e312f38e5cd1e0ed761ec745ff2dec3fa4 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 7 Jun 2024 15:07:19 -0400 Subject: [PATCH] Fix calling error state display bugs. --- .../thoughtcrime/securesms/WebRtcCallActivity.java | 11 +++++++---- .../securesms/components/webrtc/WebRtcCallView.java | 12 +++++++----- .../webrtc/controls/ControlsAndInfoController.kt | 4 ++-- app/src/main/res/values/strings.xml | 3 ++- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java index 13bc444518..125bd0c203 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java @@ -1102,7 +1102,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan @Override public void toggleControls() { WebRtcControls controlState = viewModel.getWebRtcControls().getValue(); - if (controlState != null && !controlState.displayIncomingCallButtons()) { + if (controlState != null && !controlState.displayIncomingCallButtons() && !controlState.displayErrorControls()) { controlsAndInfo.toggleControls(); } } @@ -1287,9 +1287,12 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan @Override public void onHidden() { - fullscreenHelper.hideSystemUI(); - if (videoTooltip != null) { - videoTooltip.dismiss(); + WebRtcControls controlState = viewModel.getWebRtcControls().getValue(); + if (controlState == null || !controlState.displayErrorControls()) { + fullscreenHelper.hideSystemUI(); + if (videoTooltip != null) { + videoTooltip.dismiss(); + } } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java index 0c9a714bf3..9a13e20ccd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java @@ -458,12 +458,14 @@ public class WebRtcCallView extends InsetAwareConstraintLayout { boolean isLandscapeEnabled = callParticipantsViewState.isLandscapeEnabled(); List pages = new ArrayList<>(2); - if (!state.getGridParticipants().isEmpty()) { - pages.add(WebRtcCallParticipantsPage.forMultipleParticipants(state.getGridParticipants(), state.getFocusedParticipant(), state.isInPipMode(), isPortrait, isLandscapeEnabled, state.getHideAvatar(), navBarBottomInset)); - } + if (!state.getCallState().isErrorState()) { + if (!state.getGridParticipants().isEmpty()) { + pages.add(WebRtcCallParticipantsPage.forMultipleParticipants(state.getGridParticipants(), state.getFocusedParticipant(), state.isInPipMode(), isPortrait, isLandscapeEnabled, state.getHideAvatar(), navBarBottomInset)); + } - if (state.getFocusedParticipant() != CallParticipant.EMPTY && state.getAllRemoteParticipants().size() > 1) { - pages.add(WebRtcCallParticipantsPage.forSingleParticipant(state.getFocusedParticipant(), state.isInPipMode(), isPortrait, isLandscapeEnabled)); + if (state.getFocusedParticipant() != CallParticipant.EMPTY && state.getAllRemoteParticipants().size() > 1) { + pages.add(WebRtcCallParticipantsPage.forSingleParticipant(state.getFocusedParticipant(), state.isInPipMode(), isPortrait, isLandscapeEnabled)); + } } if (state.getGroupCallState().isNotIdle()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/ControlsAndInfoController.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/ControlsAndInfoController.kt index c68e517d6e..6568ae5c58 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/ControlsAndInfoController.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/ControlsAndInfoController.kt @@ -238,7 +238,7 @@ class ControlsAndInfoController( private fun hide(delay: Long = 0L) { if (delay == 0L) { - if (controlState.isFadeOutEnabled || controlState == WebRtcControls.PIP) { + if (controlState.isFadeOutEnabled || controlState == WebRtcControls.PIP || controlState.displayErrorControls()) { behavior.isHideable = true behavior.state = BottomSheetBehavior.STATE_HIDDEN @@ -283,7 +283,7 @@ class ControlsAndInfoController( } private fun showOrHideControlsOnUpdate(previousState: WebRtcControls) { - if (controlState == WebRtcControls.PIP) { + if (controlState == WebRtcControls.PIP || controlState.displayErrorControls()) { hide() return } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dbd1afdc30..4f53c92b43 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1944,7 +1944,8 @@ Ringing… Busy Recipient unavailable - Network failed! + + Network failed! Please check network connection and try again. Number not registered! The number you dialed does not support secure voice! Got it