From c8f1ebdf4c3473d2f5ddaf7dae3b07f817b285f0 Mon Sep 17 00:00:00 2001 From: Nicholas Tinsley Date: Fri, 17 Nov 2023 10:04:03 -0500 Subject: [PATCH] Fix speakerphone drawables for selection. --- .../webrtc/WebRtcAudioOutputToggleButton.kt | 21 ++++++------------- .../webrtc_call_screen_speaker_toggle.xml | 2 +- ...ebrtc_call_screen_speaker_toggle_small.xml | 2 +- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioOutputToggleButton.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioOutputToggleButton.kt index 0344c90992..71c8a897f2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioOutputToggleButton.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioOutputToggleButton.kt @@ -86,21 +86,12 @@ class WebRtcAudioOutputToggleButton @JvmOverloads constructor(context: Context, val currentOutput = outputState.getCurrentOutput() - val numberOfOutputs = outputState.getOutputs().size - val extra = if (numberOfOutputs < SHOW_PICKER_THRESHOLD) { - when (currentOutput) { - WebRtcAudioOutput.HANDSET -> intArrayOf(R.attr.state_speaker_off) - WebRtcAudioOutput.SPEAKER -> intArrayOf(R.attr.state_speaker_on) - WebRtcAudioOutput.BLUETOOTH_HEADSET -> intArrayOf(R.attr.state_bt_headset_selected) // should never be seen in practice. - WebRtcAudioOutput.WIRED_HEADSET -> intArrayOf(R.attr.state_wired_headset_selected) // should never be seen in practice. - } - } else { - when (currentOutput) { - WebRtcAudioOutput.HANDSET -> intArrayOf(R.attr.state_handset_selected) - WebRtcAudioOutput.SPEAKER -> intArrayOf(R.attr.state_speaker_selected) - WebRtcAudioOutput.BLUETOOTH_HEADSET -> intArrayOf(R.attr.state_bt_headset_selected) - WebRtcAudioOutput.WIRED_HEADSET -> intArrayOf(R.attr.state_wired_headset_selected) - } + val shouldShowDropdownForSpeaker = outputState.getOutputs().size >= SHOW_PICKER_THRESHOLD || !outputState.getOutputs().contains(WebRtcAudioOutput.HANDSET) + val extra = when (currentOutput) { + WebRtcAudioOutput.HANDSET -> intArrayOf(R.attr.state_speaker_off) + WebRtcAudioOutput.SPEAKER -> if (shouldShowDropdownForSpeaker) intArrayOf(R.attr.state_speaker_selected) else intArrayOf(R.attr.state_speaker_on) + WebRtcAudioOutput.BLUETOOTH_HEADSET -> intArrayOf(R.attr.state_bt_headset_selected) + WebRtcAudioOutput.WIRED_HEADSET -> intArrayOf(R.attr.state_wired_headset_selected) } Log.i(TAG, "Switching to $currentOutput") diff --git a/app/src/main/res/drawable/webrtc_call_screen_speaker_toggle.xml b/app/src/main/res/drawable/webrtc_call_screen_speaker_toggle.xml index 0f439b411a..9f2cffe6a8 100644 --- a/app/src/main/res/drawable/webrtc_call_screen_speaker_toggle.xml +++ b/app/src/main/res/drawable/webrtc_call_screen_speaker_toggle.xml @@ -9,7 +9,7 @@ - + diff --git a/app/src/main/res/drawable/webrtc_call_screen_speaker_toggle_small.xml b/app/src/main/res/drawable/webrtc_call_screen_speaker_toggle_small.xml index be16a3345e..6804fa6b55 100644 --- a/app/src/main/res/drawable/webrtc_call_screen_speaker_toggle_small.xml +++ b/app/src/main/res/drawable/webrtc_call_screen_speaker_toggle_small.xml @@ -19,7 +19,7 @@ android:left="4dp" android:right="4dp" android:drawable="@drawable/webrtc_call_screen_circle_checked" /> - +