diff --git a/app/src/main/java/chat/stoat/sheets/ColourPickerSheet.kt b/app/src/main/java/chat/stoat/sheets/ColourPickerSheet.kt index 0bb73b58..3ea11978 100644 --- a/app/src/main/java/chat/stoat/sheets/ColourPickerSheet.kt +++ b/app/src/main/java/chat/stoat/sheets/ColourPickerSheet.kt @@ -23,19 +23,17 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.CornerSize import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Check -import androidx.compose.material.icons.filled.CheckCircle import androidx.compose.material.icons.filled.Close import androidx.compose.material3.Button +import androidx.compose.material3.ButtonGroup import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.SegmentedButton -import androidx.compose.material3.SingleChoiceSegmentedButtonRow import androidx.compose.material3.Slider import androidx.compose.material3.SliderDefaults import androidx.compose.material3.SliderState @@ -54,11 +52,11 @@ import androidx.compose.ui.geometry.CornerRadius import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.ShaderBrush import androidx.compose.ui.graphics.drawscope.DrawScope import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import chat.stoat.R @@ -264,7 +262,10 @@ vec4 main(vec2 fragCoord) { } """ -@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) +@OptIn( + ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class, + ExperimentalMaterial3ExpressiveApi::class +) @Composable fun ColumnScope.ColourPickerSheet( initialValue: Int, @@ -303,34 +304,32 @@ fun ColumnScope.ColourPickerSheet( .padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(8.dp) ) { - SingleChoiceSegmentedButtonRow(Modifier.fillMaxWidth()) { - SegmentedButton( - selected = mode == ColourPickerMode.Sliders, - onClick = { mode = ColourPickerMode.Sliders }, - shape = CircleShape.copy( - topEnd = CornerSize(0), - bottomEnd = CornerSize(0) - ) - ) { - Text(stringResource(R.string.colour_picker_mode_sliders)) - } - SegmentedButton( - selected = mode == ColourPickerMode.Palette, - onClick = { mode = ColourPickerMode.Palette }, - shape = RectangleShape - ) { - Text(stringResource(R.string.colour_picker_mode_palette)) - } - SegmentedButton( - selected = mode == ColourPickerMode.Hex, - onClick = { mode = ColourPickerMode.Hex }, - shape = CircleShape.copy( - topStart = CornerSize(0), - bottomStart = CornerSize(0) - ) - ) { - Text(stringResource(R.string.colour_picker_hex)) - } + val slidersLabel = stringResource(R.string.colour_picker_mode_sliders) + val paletteLabel = stringResource(R.string.colour_picker_mode_palette) + val hexLabel = stringResource(R.string.colour_picker_hex) + + ButtonGroup( + modifier = Modifier.fillMaxWidth(), + overflowIndicator = {} + ) { + toggleableItem( + weight = 1f, + checked = mode == ColourPickerMode.Sliders, + onCheckedChange = { mode = ColourPickerMode.Sliders }, + label = slidersLabel + ) + toggleableItem( + weight = 1f, + checked = mode == ColourPickerMode.Palette, + onCheckedChange = { mode = ColourPickerMode.Palette }, + label = paletteLabel + ) + toggleableItem( + weight = 1f, + checked = mode == ColourPickerMode.Hex, + onCheckedChange = { mode = ColourPickerMode.Hex }, + label = hexLabel + ) } Spacer(Modifier.height(16.dp)) @@ -672,7 +671,7 @@ fun ColumnScope.ColourPickerSheet( verticalArrangement = Arrangement.spacedBy(4.dp) ) { TextButton(onClick = onUseDefaultColour, Modifier.fillMaxWidth()) { - Icon(Icons.Default.CheckCircle, null) + Icon(painter = painterResource(R.drawable.ic_undo_24dp), null) Spacer(Modifier.width(8.dp)) Text(stringResource(R.string.colour_picker_use_default)) } diff --git a/app/src/main/res/drawable/ic_undo_24dp.xml b/app/src/main/res/drawable/ic_undo_24dp.xml new file mode 100644 index 00000000..a3f745b7 --- /dev/null +++ b/app/src/main/res/drawable/ic_undo_24dp.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index df3bc88f..e61db746 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -595,7 +595,7 @@ Use Alpha Preview - Default + Use Default Cancel Apply