feat: Return empty list on error for fetchDeviceMicrophones

This commit is contained in:
Myzel394 2023-10-21 23:30:39 +02:00
parent dc7a5648a5
commit 07f3c49a88
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B

View File

@ -4,6 +4,7 @@ import android.content.Context
import android.media.AudioDeviceInfo import android.media.AudioDeviceInfo
import android.media.AudioManager import android.media.AudioManager
import android.os.Build import android.os.Build
import android.util.Log
val ALLOWED_MICROPHONE_TYPES = val ALLOWED_MICROPHONE_TYPES =
setOf( setOf(
@ -52,13 +53,19 @@ data class MicrophoneInfo(
} }
fun fetchDeviceMicrophones(context: Context): List<MicrophoneInfo> { fun fetchDeviceMicrophones(context: Context): List<MicrophoneInfo> {
val audioManager = context.getSystemService(Context.AUDIO_SERVICE)!! as AudioManager return try {
return (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { val audioManager = context.getSystemService(Context.AUDIO_SERVICE)!! as AudioManager
audioManager.availableCommunicationDevices.map(::fromDeviceInfo) (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
} else { audioManager.availableCommunicationDevices.map(::fromDeviceInfo)
audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS).map(::fromDeviceInfo) } else {
}).filter { audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS).map(::fromDeviceInfo)
ALLOWED_MICROPHONE_TYPES.contains(it.deviceInfo.type) && it.deviceInfo.isSink }).filter {
ALLOWED_MICROPHONE_TYPES.contains(it.deviceInfo.type) && it.deviceInfo.isSink
}
} catch (error: Exception) {
Log.getStackTraceString(error)
emptyList()
} }
} }
} }