diff --git a/app/src/main/java/org/linphone/ui/call/CallActivity.kt b/app/src/main/java/org/linphone/ui/call/CallActivity.kt index a6aced1b9..b5ab81ac6 100644 --- a/app/src/main/java/org/linphone/ui/call/CallActivity.kt +++ b/app/src/main/java/org/linphone/ui/call/CallActivity.kt @@ -384,6 +384,7 @@ class CallActivity : GenericActivity() { coreContext.postOnCoreThread { coreContext.notificationsManager.showInCallForegroundServiceNotificationIfNeeded() + callViewModel.updateProximitySensor() } } diff --git a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt index fc410ab76..9785cc738 100644 --- a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt +++ b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt @@ -1553,27 +1553,39 @@ class CurrentCallViewModel } @WorkerThread - private fun updateProximitySensor() { + fun updateProximitySensor() { if (::currentCall.isInitialized) { val callState = currentCall.state + Log.i("$TAG Call is in state [$callState], enabling/disabling proximity sensor if needed") + if (LinphoneUtils.isCallIncoming(callState)) { + Log.i("$TAG Call is incoming, disabling proximity sensor") proximitySensorEnabled.postValue(false) } else if (LinphoneUtils.isCallOutgoing(callState)) { val videoEnabled = currentCall.params.isVideoEnabled + if (videoEnabled) { + Log.i("$TAG Call is outgoing and video is enabled, disabling proximity sensor") + } else { + Log.i("$TAG Call is outgoing and video is disabled, enabling proximity sensor") + } proximitySensorEnabled.postValue(!videoEnabled) } else { if (isSendingVideo.value == true || isReceivingVideo.value == true) { + Log.i("$TAG Video is being sent and/or received, disabling proximity sensor") proximitySensorEnabled.postValue(false) } else { val outputAudioDevice = currentCall.outputAudioDevice ?: coreContext.core.outputAudioDevice if (outputAudioDevice != null && outputAudioDevice.type == AudioDevice.Type.Earpiece) { + Log.i("$TAG Audio device is earpiece, enabling proximity sensor") proximitySensorEnabled.postValue(true) } else { + Log.i("$TAG Audio device is [${outputAudioDevice?.type}], disabling proximity sensor") proximitySensorEnabled.postValue(false) } } } } else { + Log.w("$TAG No current call, disabling proximity sensor") proximitySensorEnabled.postValue(false) } }