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