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
commit 0b11732a3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 9 deletions

View File

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