From 6c56ef470f0fa6889335675f1a52a240796ec9c4 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Mon, 3 Oct 2022 10:50:55 -0400 Subject: [PATCH] Nullability safety for getCommunicationDevice(). --- .../securesms/webrtc/audio/AudioManagerCompat.java | 1 + .../securesms/webrtc/audio/FullSignalAudioManagerApi31.kt | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) 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 }