From dc22b27cd8c1dbf094d46fcb8fe0222aca5d92b5 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 3 Nov 2021 11:33:23 -0400 Subject: [PATCH] Fix issues rendering long button text in bottom sheet. Fixes #11727 --- .../preferences/ButtonStripPreference.kt | 29 +- .../conversation_settings_button_strip.xml | 264 ++++++++++-------- 2 files changed, 163 insertions(+), 130 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/ButtonStripPreference.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/ButtonStripPreference.kt index 7dc6b1413..a90c6e842 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/ButtonStripPreference.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/ButtonStripPreference.kt @@ -9,6 +9,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsIcon import org.thoughtcrime.securesms.components.settings.PreferenceModel import org.thoughtcrime.securesms.util.MappingAdapter import org.thoughtcrime.securesms.util.MappingViewHolder +import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.visible /** @@ -41,27 +42,24 @@ object ButtonStripPreference { class ViewHolder(itemView: View) : MappingViewHolder(itemView) { private val message: View = itemView.findViewById(R.id.message) - private val messageLabel: View = itemView.findViewById(R.id.message_label) + private val messageContainer: View = itemView.findViewById(R.id.button_strip_message_container) private val videoCall: View = itemView.findViewById(R.id.start_video) - private val videoLabel: View = itemView.findViewById(R.id.start_video_label) + private val videoContainer: View = itemView.findViewById(R.id.button_strip_video_container) private val audioCall: ImageView = itemView.findViewById(R.id.start_audio) private val audioLabel: TextView = itemView.findViewById(R.id.start_audio_label) + private val audioContainer: View = itemView.findViewById(R.id.button_strip_audio_container) private val mute: ImageView = itemView.findViewById(R.id.mute) private val muteLabel: TextView = itemView.findViewById(R.id.mute_label) + private val muteContainer: View = itemView.findViewById(R.id.button_strip_mute_container) private val search: View = itemView.findViewById(R.id.search) - private val searchLabel: View = itemView.findViewById(R.id.search_label) + private val searchContainer: View = itemView.findViewById(R.id.button_strip_search_container) override fun bind(model: Model) { - message.visible = model.state.isMessageAvailable - messageLabel.visible = model.state.isMessageAvailable - videoCall.visible = model.state.isVideoAvailable - videoLabel.visible = model.state.isVideoAvailable - audioCall.visible = model.state.isAudioAvailable - audioLabel.visible = model.state.isAudioAvailable - mute.visible = model.state.isMuteAvailable - muteLabel.visible = model.state.isMuteAvailable - search.visible = model.state.isSearchAvailable - searchLabel.visible = model.state.isSearchAvailable + messageContainer.visible = model.state.isMessageAvailable + videoContainer.visible = model.state.isVideoAvailable + audioContainer.visible = model.state.isAudioAvailable + muteContainer.visible = model.state.isMuteAvailable + searchContainer.visible = model.state.isSearchAvailable if (model.state.isAudioSecure) { audioLabel.setText(R.string.ConversationSettingsFragment__audio) @@ -90,6 +88,11 @@ object ButtonStripPreference { audioCall.setOnClickListener { model.onAudioClick() } mute.setOnClickListener { model.onMuteClick() } search.setOnClickListener { model.onSearchClick() } + + val firstButton: View? = listOf(messageContainer, videoContainer, audioContainer, muteContainer, searchContainer).firstOrNull { it.visible } + if (firstButton != null) { + ViewUtil.setLeftMargin(firstButton, context.resources.getDimensionPixelSize(R.dimen.conversation_settings_button_strip_spacing)) + } } } diff --git a/app/src/main/res/layout/conversation_settings_button_strip.xml b/app/src/main/res/layout/conversation_settings_button_strip.xml index 4c0863976..41201c6a5 100644 --- a/app/src/main/res/layout/conversation_settings_button_strip.xml +++ b/app/src/main/res/layout/conversation_settings_button_strip.xml @@ -1,137 +1,167 @@ - + android:paddingBottom="16dp" + android:layout_gravity="center_horizontal" + android:baselineAligned="false"> - + android:orientation="vertical" + android:gravity="center_horizontal"> - + - + + + + + android:orientation="vertical" + android:gravity="center_horizontal"> - + - + + + + + android:orientation="vertical" + android:gravity="center_horizontal"> - + - + + + + + android:orientation="vertical" + android:gravity="center_horizontal"> - + - + - + - \ No newline at end of file + + + + + + + + +