mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-02-22 14:27:49 +01:00
disable proximity sensor while external speaker is enabled
This commit is contained in:
parent
c7c2d9108a
commit
72e547228d
@ -22,10 +22,7 @@ import com.simplemobiletools.commons.helpers.isOreoMr1Plus
|
||||
import com.simplemobiletools.commons.helpers.isOreoPlus
|
||||
import com.simplemobiletools.dialer.App
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.extensions.addCharacter
|
||||
import com.simplemobiletools.dialer.extensions.audioManager
|
||||
import com.simplemobiletools.dialer.extensions.config
|
||||
import com.simplemobiletools.dialer.extensions.getHandleToUse
|
||||
import com.simplemobiletools.dialer.extensions.*
|
||||
import com.simplemobiletools.dialer.helpers.CallContactAvatarHelper
|
||||
import com.simplemobiletools.dialer.helpers.CallManager
|
||||
import com.simplemobiletools.dialer.models.CallContact
|
||||
@ -466,7 +463,8 @@ class CallActivity : SimpleActivity() {
|
||||
}
|
||||
|
||||
private fun initProximitySensor() {
|
||||
if (!config.disableProximitySensor && (proximityWakeLock == null || proximityWakeLock?.isHeld == false)) {
|
||||
if (!audioManager.hasExternalSpeaker() && !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)
|
||||
|
@ -0,0 +1,33 @@
|
||||
package com.simplemobiletools.dialer.extensions
|
||||
|
||||
import android.media.AudioDeviceInfo
|
||||
import android.media.AudioManager
|
||||
import com.simplemobiletools.commons.helpers.isOreoPlus
|
||||
import com.simplemobiletools.commons.helpers.isSPlus
|
||||
|
||||
fun AudioManager.hasExternalSpeaker(): Boolean {
|
||||
val audioDevices = getDevices(AudioManager.GET_DEVICES_INPUTS)
|
||||
if (isSPlus()) {
|
||||
if (audioDevices.find {
|
||||
it.type == AudioDeviceInfo.TYPE_BLE_HEADSET ||
|
||||
it.type == AudioDeviceInfo.TYPE_BLE_SPEAKER
|
||||
} != null) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
if (isOreoPlus()) {
|
||||
if (audioDevices.find {
|
||||
it.type == AudioDeviceInfo.TYPE_USB_HEADSET
|
||||
} != null) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
if (audioDevices.find {
|
||||
it.type == AudioDeviceInfo.TYPE_WIRED_HEADSET ||
|
||||
it.type == AudioDeviceInfo.TYPE_BLUETOOTH_SCO ||
|
||||
it.type == AudioDeviceInfo.TYPE_BLUETOOTH_A2DP
|
||||
} != null) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user