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 f781f0081..c4e6026eb 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 @@ -126,6 +126,8 @@ class CurrentCallViewModel val isBluetoothEnabled = MutableLiveData() + val isHdmiEnabled = MutableLiveData() + val fullScreenMode = MutableLiveData() val pipMode = MutableLiveData() @@ -760,6 +762,9 @@ class CurrentCallViewModel device.deviceName ) } + AudioDevice.Type.Hdmi -> { + AppUtils.getString(R.string.call_audio_device_type_hdmi) + } else -> device.deviceName } val isCurrentlyInUse = device.type == currentDevice?.type && device.deviceName == currentDevice.deviceName @@ -781,6 +786,9 @@ class CurrentCallViewModel AudioDevice.Type.Speaker -> AudioUtils.routeAudioToSpeaker( currentCall ) + AudioDevice.Type.Hdmi -> AudioUtils.routeAudioToHdmi( + currentCall + ) else -> AudioUtils.routeAudioToEarpiece(currentCall) } } @@ -1279,6 +1287,7 @@ class CurrentCallViewModel ) isHearingAidEnabled.postValue(audioDevice?.type == AudioDevice.Type.HearingAid) isBluetoothEnabled.postValue(audioDevice?.type == AudioDevice.Type.Bluetooth) + isHdmiEnabled.postValue(audioDevice?.type == AudioDevice.Type.Hdmi) updateProximitySensor() } 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 3a76ef481..da09c525b 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 @@ -352,6 +352,9 @@ class MeetingWaitingRoomViewModel device.deviceName ) } + AudioDevice.Type.Hdmi -> { + AppUtils.getString(R.string.call_audio_device_type_hdmi) + } else -> device.deviceName } diff --git a/app/src/main/java/org/linphone/utils/AudioUtils.kt b/app/src/main/java/org/linphone/utils/AudioUtils.kt index e125b51bc..3ac0268cf 100644 --- a/app/src/main/java/org/linphone/utils/AudioUtils.kt +++ b/app/src/main/java/org/linphone/utils/AudioUtils.kt @@ -63,6 +63,11 @@ class AudioUtils { ) } + @WorkerThread + fun routeAudioToHdmi(call: Call? = null) { + routeAudioTo(call, arrayListOf(AudioDevice.Type.Hdmi)) + } + @WorkerThread private fun routeAudioTo( call: Call?, diff --git a/app/src/main/res/drawable/monitor.xml b/app/src/main/res/drawable/monitor.xml new file mode 100644 index 000000000..c36f919cb --- /dev/null +++ b/app/src/main/res/drawable/monitor.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/call_actions_generic.xml b/app/src/main/res/layout/call_actions_generic.xml index 19b1915c2..0c508bae4 100644 --- a/app/src/main/res/layout/call_actions_generic.xml +++ b/app/src/main/res/layout/call_actions_generic.xml @@ -122,7 +122,7 @@ android:layout_height="@dimen/call_button_size" android:layout_marginEnd="16dp" android:padding="@dimen/call_button_icon_padding" - android:src="@{viewModel.isHearingAidEnabled ? @drawable/ear : viewModel.isHeadsetEnabled ? @drawable/headset : viewModel.isBluetoothEnabled ? @drawable/bluetooth : viewModel.isSpeakerEnabled ? @drawable/speaker_high : @drawable/speaker_slash, default=@drawable/speaker_slash}" + android:src="@{viewModel.isHdmiEnabled ? @drawable/monitor : viewModel.isHearingAidEnabled ? @drawable/ear : viewModel.isHeadsetEnabled ? @drawable/headset : viewModel.isBluetoothEnabled ? @drawable/bluetooth : viewModel.isSpeakerEnabled ? @drawable/speaker_high : @drawable/speaker_slash, default=@drawable/speaker_slash}" android:contentDescription="@string/content_description_change_output_audio_device" android:background="@drawable/in_call_button_background_transparent" app:tint="@color/in_call_button_tint_color" diff --git a/app/src/main/res/layout/call_audio_device_list_cell.xml b/app/src/main/res/layout/call_audio_device_list_cell.xml index 866c9e9f9..9b90a0239 100644 --- a/app/src/main/res/layout/call_audio_device_list_cell.xml +++ b/app/src/main/res/layout/call_audio_device_list_cell.xml @@ -22,7 +22,7 @@ android:textColor="@color/in_call_label_color" android:gravity="center_vertical" android:layout_marginBottom="1dp" - android:drawableEnd="@{model.type == Type.HearingAid ? @drawable/ear : model.type == Type.Speaker ? @drawable/speaker_high : model.type == Type.Bluetooth ? @drawable/bluetooth : model.type == Type.Headphones || model.type == Type.Headset ? @drawable/headset : @drawable/speaker_slash, default=@drawable/speaker_high}" + android:drawableEnd="@{model.type == Type.Hdmi ? @drawable/monitor : model.type == Type.HearingAid ? @drawable/ear : model.type == Type.Speaker ? @drawable/speaker_high : model.type == Type.Bluetooth ? @drawable/bluetooth : model.type == Type.Headphones || model.type == Type.Headset ? @drawable/headset : @drawable/speaker_slash, default=@drawable/speaker_high}" android:drawableTint="@color/in_call_label_color" android:checked="@{model.isCurrentlySelected}" app:useMaterialThemeColors="false" diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2e830ab34..c40b25bd7 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -713,6 +713,7 @@ Aide auditive (%s) Casque Écouteurs + HDMI Audio Codec : %s diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eb07b448a..fa7248a50 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -755,6 +755,7 @@ Hearing aid (%s) Headset Headphones + HDMI Audio Codec: %s