From 483443fd60f5899be56ff0950ac6e76049119d3f Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 18 Nov 2022 11:08:09 +0100 Subject: [PATCH] Prevent proximity sensor to turn screen off while on incoming/outgoing call fragments --- .../activities/voip/fragments/IncomingCallFragment.kt | 11 +++++++++++ .../activities/voip/fragments/OutgoingCallFragment.kt | 11 +++++++++++ .../activities/voip/viewmodels/ControlsViewModel.kt | 8 +++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/activities/voip/fragments/IncomingCallFragment.kt b/app/src/main/java/org/linphone/activities/voip/fragments/IncomingCallFragment.kt index 2cfca960b..b10a04710 100644 --- a/app/src/main/java/org/linphone/activities/voip/fragments/IncomingCallFragment.kt +++ b/app/src/main/java/org/linphone/activities/voip/fragments/IncomingCallFragment.kt @@ -81,4 +81,15 @@ class IncomingCallFragment : GenericFragment() coreContext.core.nativeVideoWindowId = binding.remoteVideoSurface } } + + // We don't want the proximity sensor to turn screen OFF in this fragment + override fun onResume() { + super.onResume() + controlsViewModel.forceDisableProximitySensor.value = true + } + + override fun onPause() { + controlsViewModel.forceDisableProximitySensor.value = false + super.onPause() + } } diff --git a/app/src/main/java/org/linphone/activities/voip/fragments/OutgoingCallFragment.kt b/app/src/main/java/org/linphone/activities/voip/fragments/OutgoingCallFragment.kt index 3b3997c43..32bc7b828 100644 --- a/app/src/main/java/org/linphone/activities/voip/fragments/OutgoingCallFragment.kt +++ b/app/src/main/java/org/linphone/activities/voip/fragments/OutgoingCallFragment.kt @@ -83,4 +83,15 @@ class OutgoingCallFragment : GenericVideoPreviewFragment() + val forceDisableProximitySensor = MutableLiveData() + val showTakeSnapshotButton = MutableLiveData() val goToConferenceParticipantsListEvent: MutableLiveData> by lazy { @@ -199,6 +201,7 @@ class ControlsViewModel : ViewModel() { extraButtonsMenuTranslateY.value = AppUtils.getDimension(R.dimen.voip_call_extra_buttons_translate_y) audioRoutesMenuTranslateY.value = AppUtils.getDimension(R.dimen.voip_audio_routes_menu_translate_y) audioRoutesSelected.value = false + forceDisableProximitySensor.value = false nonEarpieceOutputAudioDevice.value = coreContext.core.outputAudioDevice?.type != AudioDevice.Type.Earpiece proximitySensorEnabled.value = shouldProximitySensorBeEnabled() @@ -208,6 +211,9 @@ class ControlsViewModel : ViewModel() { proximitySensorEnabled.addSource(nonEarpieceOutputAudioDevice) { proximitySensorEnabled.value = shouldProximitySensorBeEnabled() } + proximitySensorEnabled.addSource(forceDisableProximitySensor) { + proximitySensorEnabled.value = shouldProximitySensorBeEnabled() + } updateUI() @@ -448,6 +454,6 @@ class ControlsViewModel : ViewModel() { } private fun shouldProximitySensorBeEnabled(): Boolean { - return !(isVideoEnabled.value ?: false) && !(nonEarpieceOutputAudioDevice.value ?: false) + return forceDisableProximitySensor.value == false && !(isVideoEnabled.value ?: false) && !(nonEarpieceOutputAudioDevice.value ?: false) } }