diff --git a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
index c4e6026eb..16615afa8 100644
--- a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
@@ -734,39 +734,17 @@ class CurrentCallViewModel
for (device in audioDevices) {
// Only list output audio devices
if (!device.hasCapability(AudioDevice.Capabilities.CapabilityPlay)) continue
-
- val name = when (device.type) {
+ when (device.type) {
AudioDevice.Type.Earpiece -> {
earpieceFound = true
- AppUtils.getString(R.string.call_audio_device_type_earpiece)
}
AudioDevice.Type.Speaker -> {
speakerFound = true
- AppUtils.getString(R.string.call_audio_device_type_speaker)
}
- AudioDevice.Type.Headset -> {
- AppUtils.getString(R.string.call_audio_device_type_headset)
- }
- AudioDevice.Type.Headphones -> {
- AppUtils.getString(R.string.call_audio_device_type_headphones)
- }
- AudioDevice.Type.Bluetooth -> {
- AppUtils.getFormattedString(
- R.string.call_audio_device_type_bluetooth,
- device.deviceName
- )
- }
- AudioDevice.Type.HearingAid -> {
- AppUtils.getFormattedString(
- R.string.call_audio_device_type_hearing_aid,
- device.deviceName
- )
- }
- AudioDevice.Type.Hdmi -> {
- AppUtils.getString(R.string.call_audio_device_type_hdmi)
- }
- else -> device.deviceName
+ else -> {}
}
+
+ val name = LinphoneUtils.getAudioDeviceName(device)
val isCurrentlyInUse = device.type == currentDevice?.type && device.deviceName == currentDevice.deviceName
val model = AudioDeviceModel(device, name, device.type, isCurrentlyInUse, true) {
// onSelected
diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingWaitingRoomViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingWaitingRoomViewModel.kt
index da09c525b..2ad451122 100644
--- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingWaitingRoomViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingWaitingRoomViewModel.kt
@@ -41,8 +41,8 @@ import org.linphone.core.tools.Log
import org.linphone.ui.GenericViewModel
import org.linphone.ui.call.model.AudioDeviceModel
import org.linphone.ui.main.contacts.model.ContactAvatarModel
-import org.linphone.utils.AppUtils
import org.linphone.utils.Event
+import org.linphone.utils.LinphoneUtils
import org.linphone.utils.TimestampUtils
class MeetingWaitingRoomViewModel
@@ -324,40 +324,17 @@ class MeetingWaitingRoomViewModel
for (device in audioDevices) {
// Only list output audio devices
if (!device.hasCapability(AudioDevice.Capabilities.CapabilityPlay)) continue
-
- val name = when (device.type) {
+ when (device.type) {
AudioDevice.Type.Earpiece -> {
earpieceAudioDevice = device
- AppUtils.getString(R.string.call_audio_device_type_earpiece)
}
AudioDevice.Type.Speaker -> {
speakerAudioDevice = device
- AppUtils.getString(R.string.call_audio_device_type_speaker)
}
- AudioDevice.Type.Headset -> {
- AppUtils.getString(R.string.call_audio_device_type_headset)
- }
- AudioDevice.Type.Headphones -> {
- AppUtils.getString(R.string.call_audio_device_type_headphones)
- }
- AudioDevice.Type.Bluetooth -> {
- AppUtils.getFormattedString(
- R.string.call_audio_device_type_bluetooth,
- device.deviceName
- )
- }
- AudioDevice.Type.HearingAid -> {
- AppUtils.getFormattedString(
- R.string.call_audio_device_type_hearing_aid,
- device.deviceName
- )
- }
- AudioDevice.Type.Hdmi -> {
- AppUtils.getString(R.string.call_audio_device_type_hdmi)
- }
- else -> device.deviceName
+ else -> {}
}
+ val name = LinphoneUtils.getAudioDeviceName(device)
val currentDevice = if (::selectedOutputAudioDevice.isInitialized) {
selectedOutputAudioDevice
} else {
diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt
index 774235503..acf6dea16 100644
--- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt
@@ -45,6 +45,7 @@ import org.linphone.ui.main.settings.model.CardDavLdapModel
import org.linphone.ui.main.settings.model.CodecModel
import org.linphone.utils.AppUtils
import org.linphone.utils.Event
+import org.linphone.utils.LinphoneUtils
class SettingsViewModel
@UiThread
@@ -1031,10 +1032,11 @@ class SettingsViewModel
var inputIndex = 0
val defaultInputAudioDevice = core.defaultInputAudioDevice
- Log.i("$TAG Current default input audio device is [${defaultInputAudioDevice?.id}]")
+ Log.i("$TAG Current default input audio device ID is [${defaultInputAudioDevice?.id}]")
for (audioDevice in core.extendedAudioDevices) {
if (audioDevice.hasCapability(AudioDevice.Capabilities.CapabilityRecord)) {
- inputAudioDeviceLabels.add(audioDevice.id)
+ Log.i("$TAG Found record device [${audioDevice.deviceName}] with audio driver [${audioDevice.driverName}] and type [${audioDevice.type}]")
+ inputAudioDeviceLabels.add(LinphoneUtils.getAudioDeviceName(audioDevice))
inputAudioDeviceValues.add(audioDevice)
if (audioDevice.id == defaultInputAudioDevice?.id) {
inputAudioDeviceIndex.postValue(inputIndex)
@@ -1048,7 +1050,8 @@ class SettingsViewModel
Log.i("$TAG Current default output audio device is [${defaultOutputAudioDevice?.id}]")
for (audioDevice in core.extendedAudioDevices) {
if (audioDevice.hasCapability(AudioDevice.Capabilities.CapabilityPlay)) {
- outputAudioDeviceLabels.add(audioDevice.id)
+ Log.i("$TAG Found playback device [${audioDevice.deviceName}] with audio driver [${audioDevice.driverName}] and type [${audioDevice.type}]")
+ outputAudioDeviceLabels.add(LinphoneUtils.getAudioDeviceName(audioDevice))
outputAudioDeviceValues.add(audioDevice)
if (audioDevice.id == defaultOutputAudioDevice?.id) {
outputAudioDeviceIndex.postValue(outputIndex)
diff --git a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt
index 1c366547e..83d8421a3 100644
--- a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt
+++ b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt
@@ -36,6 +36,7 @@ import org.linphone.R
import org.linphone.contacts.getListOfSipAddresses
import org.linphone.core.Account
import org.linphone.core.Address
+import org.linphone.core.AudioDevice
import org.linphone.core.Call
import org.linphone.core.Call.Dir
import org.linphone.core.Call.Status
@@ -667,5 +668,42 @@ class LinphoneUtils {
return avatarModel
}
+
+ @WorkerThread
+ fun getAudioDeviceName(device: AudioDevice): String {
+ return when (device.type) {
+ AudioDevice.Type.Microphone -> {
+ AppUtils.getString(R.string.call_audio_device_type_microphone)
+ }
+ AudioDevice.Type.Earpiece -> {
+ AppUtils.getString(R.string.call_audio_device_type_earpiece)
+ }
+ AudioDevice.Type.Speaker -> {
+ AppUtils.getString(R.string.call_audio_device_type_speaker)
+ }
+ AudioDevice.Type.Headset -> {
+ AppUtils.getString(R.string.call_audio_device_type_headset)
+ }
+ AudioDevice.Type.Headphones -> {
+ AppUtils.getString(R.string.call_audio_device_type_headphones)
+ }
+ AudioDevice.Type.Bluetooth -> {
+ AppUtils.getFormattedString(
+ R.string.call_audio_device_type_bluetooth,
+ device.deviceName
+ )
+ }
+ AudioDevice.Type.HearingAid -> {
+ AppUtils.getFormattedString(
+ R.string.call_audio_device_type_hearing_aid,
+ device.deviceName
+ )
+ }
+ AudioDevice.Type.Hdmi -> {
+ AppUtils.getString(R.string.call_audio_device_type_hdmi)
+ }
+ else -> "${device.deviceName}(${device.type})"
+ }
+ }
}
}
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index c856a7fd4..588c49317 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -708,6 +708,7 @@
Réessayer
La confidentialité de votre appel peut être compromise !
+ Microphone
Oreillette
Haut parleur
Bluetooth (%s)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b31ffdfe4..dfd95a60a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -750,6 +750,7 @@
Try again
This call confidentiality may be compromise!
+ Microphone
Earpiece
Speaker
Bluetooth (%s)