Improve nullability for setting communication devices.

This commit is contained in:
Nicholas
2023-05-09 16:18:49 -04:00
committed by Cody Henthorne
parent bef15482af
commit 92e8f125f9
2 changed files with 6 additions and 6 deletions

View File

@@ -122,7 +122,7 @@ public abstract class AudioManagerCompat {
}
@RequiresApi(31)
public boolean setCommunicationDevice(@Nullable AudioDeviceInfo device) {
public boolean setCommunicationDevice(@NonNull AudioDeviceInfo device) {
return audioManager.setCommunicationDevice(device);
}

View File

@@ -166,11 +166,11 @@ class FullSignalAudioManagerApi31(context: Context, eventListener: EventListener
val currentAudioDevice: AudioDeviceInfo? = androidAudioManager.communicationDevice
val availableCommunicationDevices: List<AudioDeviceInfo> = androidAudioManager.availableCommunicationDevices
if (userSelectedAudioDevice != null) {
androidAudioManager.communicationDevice = userSelectedAudioDevice
eventListener?.onAudioDeviceChanged(AudioDeviceMapping.fromPlatformType(userSelectedAudioDevice!!.type), availableCommunicationDevices.map { AudioDeviceMapping.fromPlatformType(it.type) }.toSet())
var candidate: AudioDeviceInfo? = userSelectedAudioDevice
if (candidate != null && candidate.id != 0) {
androidAudioManager.setCommunicationDevice(candidate)
eventListener?.onAudioDeviceChanged(AudioDeviceMapping.fromPlatformType(candidate.type), availableCommunicationDevices.map { AudioDeviceMapping.fromPlatformType(it.type) }.toSet())
} else {
var candidate: AudioDeviceInfo? = null
val searchOrder: List<AudioDevice> = listOf(AudioDevice.BLUETOOTH, AudioDevice.WIRED_HEADSET, defaultAudioDevice, AudioDevice.EARPIECE, AudioDevice.SPEAKER_PHONE, AudioDevice.NONE).distinct()
for (deviceType in searchOrder) {
candidate = availableCommunicationDevices.find { AudioDeviceMapping.fromPlatformType(it.type) == deviceType }
@@ -186,7 +186,7 @@ class FullSignalAudioManagerApi31(context: Context, eventListener: EventListener
}
else -> {
Log.d(TAG, "Switching to new device of type ${candidate.type} from ${currentAudioDevice?.type}")
androidAudioManager.communicationDevice = candidate
androidAudioManager.setCommunicationDevice(candidate)
eventListener?.onAudioDeviceChanged(AudioDeviceMapping.fromPlatformType(candidate.type), availableCommunicationDevices.map { AudioDeviceMapping.fromPlatformType(it.type) }.toSet())
}
}