Hopeful fix for bluetooth selection issues.

This commit is contained in:
Greyson Parrelli
2023-04-07 09:08:41 -04:00
committed by GitHub
parent 0b62c0346b
commit 4da4de3b99
5 changed files with 16 additions and 8 deletions

View File

@@ -6,8 +6,6 @@ import androidx.annotation.RequiresApi
@RequiresApi(31)
object AudioDeviceMapping {
val orderOfPreference: List<SignalAudioManager.AudioDevice> = listOf(SignalAudioManager.AudioDevice.BLUETOOTH, SignalAudioManager.AudioDevice.WIRED_HEADSET, SignalAudioManager.AudioDevice.EARPIECE, SignalAudioManager.AudioDevice.SPEAKER_PHONE, SignalAudioManager.AudioDevice.NONE)
private val systemDeviceTypeMap: Map<SignalAudioManager.AudioDevice, List<Int>> = mapOf(
SignalAudioManager.AudioDevice.BLUETOOTH to listOf(AudioDeviceInfo.TYPE_BLUETOOTH_SCO, AudioDeviceInfo.TYPE_BLUETOOTH_A2DP, AudioDeviceInfo.TYPE_BLE_HEADSET, AudioDeviceInfo.TYPE_HEARING_AID),
SignalAudioManager.AudioDevice.EARPIECE to listOf(AudioDeviceInfo.TYPE_BUILTIN_EARPIECE),

View File

@@ -173,7 +173,7 @@ class FullSignalAudioManagerApi31(context: Context, eventListener: EventListener
val excludedDevices = emptyList<String>() // TODO: pull this from somewhere. Preferences?
val autoSelectableDevices = availableCommunicationDevices.filterNot { excludedDevices.contains(it.address) }
var candidate: AudioDeviceInfo? = null
val searchOrder: List<AudioDevice> = listOf(defaultAudioDevice) + AudioDeviceMapping.orderOfPreference.filterNot { it == defaultAudioDevice }
val searchOrder: List<AudioDevice> = listOf(AudioDevice.BLUETOOTH, defaultAudioDevice, AudioDevice.WIRED_HEADSET, AudioDevice.EARPIECE, AudioDevice.SPEAKER_PHONE, AudioDevice.NONE).distinct()
for (deviceType in searchOrder) {
candidate = autoSelectableDevices.find { AudioDeviceMapping.fromPlatformType(it.type) == deviceType }
if (candidate != null) {