@@ -3,10 +3,12 @@ package com.x8bit.bitwarden.ui.platform.components.segment
33import androidx.compose.foundation.BorderStroke
44import androidx.compose.foundation.background
55import androidx.compose.foundation.layout.Box
6+ import androidx.compose.foundation.layout.IntrinsicSize
67import androidx.compose.foundation.layout.WindowInsets
78import androidx.compose.foundation.layout.WindowInsetsSides
89import androidx.compose.foundation.layout.displayCutout
910import androidx.compose.foundation.layout.fillMaxWidth
11+ import androidx.compose.foundation.layout.height
1012import androidx.compose.foundation.layout.navigationBars
1113import androidx.compose.foundation.layout.only
1214import androidx.compose.foundation.layout.padding
@@ -24,7 +26,9 @@ import androidx.compose.runtime.setValue
2426import androidx.compose.ui.Modifier
2527import androidx.compose.ui.graphics.Color
2628import androidx.compose.ui.layout.onGloballyPositioned
29+ import androidx.compose.ui.platform.LocalConfiguration
2730import androidx.compose.ui.platform.LocalDensity
31+ import androidx.compose.ui.text.style.Hyphens
2832import androidx.compose.ui.unit.Density
2933import androidx.compose.ui.unit.Dp
3034import androidx.compose.ui.unit.dp
@@ -34,6 +38,8 @@ import com.x8bit.bitwarden.ui.platform.components.segment.color.bitwardenSegment
3438import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme
3539import kotlinx.collections.immutable.ImmutableList
3640
41+ private const val FONT_SCALE_THRESHOLD = 1.5f
42+
3743/* *
3844 * Displays a Bitwarden styled row of segmented buttons.
3945 *
@@ -82,7 +88,8 @@ fun BitwardenSegmentedButton(
8288 .onGloballyPositioned {
8389 weightedWidth = (it.size.width / options.size).toDp(density)
8490 }
85- .padding(horizontal = 4 .dp),
91+ .padding(horizontal = 2 .dp, vertical = 2 .dp)
92+ .height(IntrinsicSize .Min ),
8693 space = 0 .dp,
8794 ) {
8895 options.forEachIndexed { index, option ->
@@ -100,6 +107,12 @@ fun SingleChoiceSegmentedButtonRowScope.SegmentedButtonOptionContent(
100107 option : SegmentedButtonState ,
101108 modifier : Modifier = Modifier ,
102109) {
110+ val fontScale = LocalConfiguration .current.fontScale
111+ val labelVerticalPadding = if (fontScale > FONT_SCALE_THRESHOLD ) {
112+ 8 .dp
113+ } else {
114+ 0 .dp
115+ }
103116 SegmentedButton (
104117 enabled = option.isEnabled,
105118 selected = option.isChecked,
@@ -110,7 +123,13 @@ fun SingleChoiceSegmentedButtonRowScope.SegmentedButtonOptionContent(
110123 label = {
111124 Text (
112125 text = option.text,
113- style = BitwardenTheme .typography.labelLarge,
126+ style = BitwardenTheme .typography.labelLarge.copy(
127+ hyphens = Hyphens .Auto ,
128+ ),
129+ modifier = Modifier .padding(
130+ vertical = labelVerticalPadding,
131+ horizontal = 4 .dp,
132+ ),
114133 )
115134 },
116135 icon = {
0 commit comments