mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-02-23 06:47:45 +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.commons.helpers.isOreoPlus
|
||||||
import com.simplemobiletools.dialer.App
|
import com.simplemobiletools.dialer.App
|
||||||
import com.simplemobiletools.dialer.R
|
import com.simplemobiletools.dialer.R
|
||||||
import com.simplemobiletools.dialer.extensions.addCharacter
|
import com.simplemobiletools.dialer.extensions.*
|
||||||
import com.simplemobiletools.dialer.extensions.audioManager
|
|
||||||
import com.simplemobiletools.dialer.extensions.config
|
|
||||||
import com.simplemobiletools.dialer.extensions.getHandleToUse
|
|
||||||
import com.simplemobiletools.dialer.helpers.CallContactAvatarHelper
|
import com.simplemobiletools.dialer.helpers.CallContactAvatarHelper
|
||||||
import com.simplemobiletools.dialer.helpers.CallManager
|
import com.simplemobiletools.dialer.helpers.CallManager
|
||||||
import com.simplemobiletools.dialer.models.CallContact
|
import com.simplemobiletools.dialer.models.CallContact
|
||||||
@ -466,7 +463,8 @@ class CallActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun initProximitySensor() {
|
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
|
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)
|
||||||
|
@ -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