Merge pull request #336 from sdex/dIsable_proximity_sensor_while_external_speaker_is_enabled

Disable proximity sensor while external speaker is enabled
This commit is contained in:
Tibor Kaputa
2022-05-09 15:38:46 +02:00
committed by GitHub

View File

@@ -80,9 +80,7 @@ class CallActivity : SimpleActivity() {
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
CallManager.unregisterCallback(callCallback) CallManager.unregisterCallback(callCallback)
if (proximityWakeLock?.isHeld == true) { disableProximitySensor()
proximityWakeLock!!.release()
}
} }
override fun onBackPressed() { override fun onBackPressed() {
@@ -283,6 +281,12 @@ class CallActivity : SimpleActivity() {
val newRoute = if (isSpeakerOn) CallAudioState.ROUTE_SPEAKER else CallAudioState.ROUTE_EARPIECE val newRoute = if (isSpeakerOn) CallAudioState.ROUTE_SPEAKER else CallAudioState.ROUTE_EARPIECE
CallManager.inCallService?.setAudioRoute(newRoute) CallManager.inCallService?.setAudioRoute(newRoute)
call_toggle_speaker.contentDescription = getString(if (isSpeakerOn) R.string.turn_speaker_off else R.string.turn_speaker_on) call_toggle_speaker.contentDescription = getString(if (isSpeakerOn) R.string.turn_speaker_off else R.string.turn_speaker_on)
if (isSpeakerOn) {
disableProximitySensor()
} else {
enableProximitySensor()
}
} }
private fun toggleMicrophone() { private fun toggleMicrophone() {
@@ -376,7 +380,7 @@ class CallActivity : SimpleActivity() {
} }
private fun initOutgoingCallUI() { private fun initOutgoingCallUI() {
initProximitySensor() enableProximitySensor()
incoming_call_holder.beGone() incoming_call_holder.beGone()
ongoing_call_holder.beVisible() ongoing_call_holder.beVisible()
} }
@@ -386,7 +390,7 @@ class CallActivity : SimpleActivity() {
} }
private fun callStarted() { private fun callStarted() {
initProximitySensor() enableProximitySensor()
incoming_call_holder.beGone() incoming_call_holder.beGone()
ongoing_call_holder.beVisible() ongoing_call_holder.beVisible()
callDurationHelper.onDurationChange { callDurationHelper.onDurationChange {
@@ -409,9 +413,7 @@ class CallActivity : SimpleActivity() {
private fun endCall() { private fun endCall() {
CallManager.reject() CallManager.reject()
if (proximityWakeLock?.isHeld == true) { disableProximitySensor()
proximityWakeLock!!.release()
}
if (isCallEnded) { if (isCallEnded) {
finishAndRemoveTask() finishAndRemoveTask()
@@ -465,11 +467,17 @@ class CallActivity : SimpleActivity() {
} }
} }
private fun initProximitySensor() { private fun enableProximitySensor() {
if (!config.disableProximitySensor && (proximityWakeLock == null || proximityWakeLock?.isHeld == false)) { if (!config.disableProximitySensor && (proximityWakeLock == null || proximityWakeLock?.isHeld == false)) {
val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
proximityWakeLock = powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "com.simplemobiletools.dialer.pro:wake_lock") proximityWakeLock = powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "com.simplemobiletools.dialer.pro:wake_lock")
proximityWakeLock!!.acquire(60 * MINUTE_SECONDS * 1000L) proximityWakeLock!!.acquire(60 * MINUTE_SECONDS * 1000L)
} }
} }
private fun disableProximitySensor() {
if (proximityWakeLock?.isHeld == true) {
proximityWakeLock!!.release()
}
}
} }