diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/AudioManagerCompat.java b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/AudioManagerCompat.java index d89def3bbb..9a3fabdc4d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/AudioManagerCompat.java +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/AudioManagerCompat.java @@ -103,6 +103,7 @@ public abstract class AudioManagerCompat { } @RequiresApi(31) + @Nullable public AudioDeviceInfo getCommunicationDevice() { return audioManager.getCommunicationDevice(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/FullSignalAudioManagerApi31.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/FullSignalAudioManagerApi31.kt index 8c55522298..44e0e81eb4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/FullSignalAudioManagerApi31.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/FullSignalAudioManagerApi31.kt @@ -166,7 +166,12 @@ class FullSignalAudioManagerApi31(context: Context, eventListener: EventListener private fun updateAudioDeviceState() { handler.assertHandlerThread() - currentAudioDevice = AudioDeviceMapping.fromPlatformType(androidAudioManager.communicationDevice.type) + val communicationDevice: AudioDeviceInfo? = androidAudioManager.communicationDevice + currentAudioDevice = if (communicationDevice == null) { + AudioDevice.NONE + } else { + AudioDeviceMapping.fromPlatformType(communicationDevice.type) + } val availableCommunicationDevices: List = androidAudioManager.availableCommunicationDevices hasBluetoothHeadset = availableCommunicationDevices.any { AudioDeviceMapping.fromPlatformType(it.type) == AudioDevice.BLUETOOTH } hasWiredHeadset = availableCommunicationDevices.any { AudioDeviceMapping.fromPlatformType(it.type) == AudioDevice.WIRED_HEADSET }