From 329389bb414ec280cb4796b00d933bc3c4a2a9d7 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 20 Oct 2025 14:28:57 -0300 Subject: [PATCH] Utilize fixed rounded corner sheet for recipients fragment. --- .../org/thoughtcrime/securesms/MainActivity.kt | 1 - ...xedRoundedCornerBottomSheetDialogFragment.kt | 17 +++++++++++++++-- .../compose/ComposeBottomSheetDialogFragment.kt | 2 +- .../RecipientBottomSheetDialogFragment.kt | 17 ++++------------- app/src/main/res/values-sw480dp/dimens.xml | 1 + app/src/main/res/values/dimens.xml | 2 ++ app/src/main/res/values/themes.xml | 4 ++-- 7 files changed, 25 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt index deebbcb014..510a5d398f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt @@ -51,7 +51,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalFocusManager -import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.fragment.app.DialogFragment diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/FixedRoundedCornerBottomSheetDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/FixedRoundedCornerBottomSheetDialogFragment.kt index 31a88bfb5b..d6d1b4d365 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/FixedRoundedCornerBottomSheetDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/FixedRoundedCornerBottomSheetDialogFragment.kt @@ -19,6 +19,8 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.util.ThemeUtil import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.WindowUtil +import org.thoughtcrime.securesms.window.WindowSizeClass +import org.thoughtcrime.securesms.window.WindowSizeClass.Companion.getWindowSizeClass import com.google.android.material.R as MaterialR /** @@ -26,6 +28,17 @@ import com.google.android.material.R as MaterialR */ abstract class FixedRoundedCornerBottomSheetDialogFragment : BottomSheetDialogFragment() { + /** + * Sheet corner radius in DP + */ + protected val cornerRadius: Int by lazy { + if (WindowSizeClass.isLargeScreenSupportEnabled() && resources.getWindowSizeClass().isSplitPane()) { + 32 + } else { + 18 + } + } + protected open val peekHeightPercentage: Float = 0.5f @StyleRes @@ -54,8 +67,8 @@ abstract class FixedRoundedCornerBottomSheetDialogFragment : BottomSheetDialogFr dialog.behavior.peekHeight = (resources.displayMetrics.heightPixels * peekHeightPercentage).toInt() val shapeAppearanceModel = ShapeAppearanceModel.builder() - .setTopLeftCorner(CornerFamily.ROUNDED, ViewUtil.dpToPx(requireContext(), 18).toFloat()) - .setTopRightCorner(CornerFamily.ROUNDED, ViewUtil.dpToPx(requireContext(), 18).toFloat()) + .setTopLeftCorner(CornerFamily.ROUNDED, ViewUtil.dpToPx(requireContext(), cornerRadius).toFloat()) + .setTopRightCorner(CornerFamily.ROUNDED, ViewUtil.dpToPx(requireContext(), cornerRadius).toFloat()) .build() dialogBackground = MaterialShapeDrawable(shapeAppearanceModel) diff --git a/app/src/main/java/org/thoughtcrime/securesms/compose/ComposeBottomSheetDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/compose/ComposeBottomSheetDialogFragment.kt index 5d1360ecc7..a144637b9a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/compose/ComposeBottomSheetDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/compose/ComposeBottomSheetDialogFragment.kt @@ -28,7 +28,7 @@ abstract class ComposeBottomSheetDialogFragment : FixedRoundedCornerBottomSheetD isDarkMode = forceDarkTheme || DynamicTheme.isDarkTheme(LocalContext.current) ) { Surface( - shape = RoundedCornerShape(18.dp, 18.dp), + shape = RoundedCornerShape(cornerRadius.dp, cornerRadius.dp), color = SignalTheme.colors.colorSurface1, contentColor = MaterialTheme.colorScheme.onSurface ) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.kt index ee21c8f616..c02a478bce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.kt @@ -15,13 +15,11 @@ import android.view.ViewGroup import android.widget.ProgressBar import android.widget.TextView import android.widget.Toast -import androidx.fragment.app.DialogFragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.viewModels import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle -import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.snackbar.Snackbar import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -31,6 +29,7 @@ import org.thoughtcrime.securesms.avatar.view.AvatarView import org.thoughtcrime.securesms.badges.BadgeImageView import org.thoughtcrime.securesms.badges.view.ViewBadgeBottomSheetDialogFragment import org.thoughtcrime.securesms.calls.YouAreAlreadyInACallSnackbar +import org.thoughtcrime.securesms.components.FixedRoundedCornerBottomSheetDialogFragment import org.thoughtcrime.securesms.components.settings.DSLSettingsIcon import org.thoughtcrime.securesms.components.settings.conversation.preferences.ButtonStripPreference import org.thoughtcrime.securesms.conversation.v2.data.AvatarDownloadStateCache @@ -45,7 +44,6 @@ import org.thoughtcrime.securesms.recipients.ui.about.AboutSheet import org.thoughtcrime.securesms.util.BottomSheetUtil import org.thoughtcrime.securesms.util.ContextUtil import org.thoughtcrime.securesms.util.SpanUtil -import org.thoughtcrime.securesms.util.ThemeUtil import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.WindowUtil import org.thoughtcrime.securesms.util.visible @@ -54,7 +52,7 @@ import org.thoughtcrime.securesms.util.visible * A bottom sheet that shows some simple recipient details, as well as some actions (like calling, * adding to contacts, etc). */ -class RecipientBottomSheetDialogFragment : BottomSheetDialogFragment() { +class RecipientBottomSheetDialogFragment : FixedRoundedCornerBottomSheetDialogFragment() { companion object { val TAG: String = Log.tag(RecipientBottomSheetDialogFragment::class.java) @@ -87,6 +85,8 @@ class RecipientBottomSheetDialogFragment : BottomSheetDialogFragment() { } } + override val peekHeightPercentage: Float = 1f + private val viewModel: RecipientDialogViewModel by viewModels(factoryProducer = this::createFactory) private var callback: Callback? = null @@ -98,15 +98,6 @@ class RecipientBottomSheetDialogFragment : BottomSheetDialogFragment() { return RecipientDialogViewModel.Factory(requireContext(), recipientId, groupId) } - override fun onCreate(savedInstanceState: Bundle?) { - setStyle( - DialogFragment.STYLE_NORMAL, - if (ThemeUtil.isDarkTheme(requireContext())) R.style.Theme_Signal_RoundedBottomSheet else R.style.Theme_Signal_RoundedBottomSheet_Light - ) - - super.onCreate(savedInstanceState) - } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { return inflater.inflate(R.layout.recipient_bottom_sheet, container, false) } diff --git a/app/src/main/res/values-sw480dp/dimens.xml b/app/src/main/res/values-sw480dp/dimens.xml index 80c9e9b466..72467df3bb 100644 --- a/app/src/main/res/values-sw480dp/dimens.xml +++ b/app/src/main/res/values-sw480dp/dimens.xml @@ -2,4 +2,5 @@ 350dp 300dp + 32dp \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index f26c60b13e..27c573ed32 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -7,6 +7,8 @@ 64dp + 18dp + 60dp 260dp 110dp diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 64d6454b17..2150ed6cb8 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -476,8 +476,8 @@