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" />
-
+
-