From 4827b7e077be4c8e924073ed340fa0e3dda606b1 Mon Sep 17 00:00:00 2001 From: tarsin Date: Thu, 27 Jul 2023 07:53:55 +0800 Subject: [PATCH] Convert to use SingleChoiceSegmentedButtonRow --- .../ehviewer/ui/login/SelectSiteScreen.kt | 51 +++---------------- 1 file changed, 7 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/login/SelectSiteScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/login/SelectSiteScreen.kt index 6c8fca844..f37217470 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/login/SelectSiteScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/login/SelectSiteScreen.kt @@ -2,28 +2,19 @@ package com.hippo.ehviewer.ui.login import android.app.Activity import androidx.activity.compose.BackHandler -import androidx.compose.foundation.background -import androidx.compose.foundation.border -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.IntrinsicSize -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.asPaddingValues -import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBars -import androidx.compose.foundation.layout.width -import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Button -import androidx.compose.material3.Divider import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.SegmentedButton +import androidx.compose.material3.SingleChoiceSegmentedButtonRow import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -32,7 +23,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource @@ -62,41 +52,14 @@ fun SelectSiteScreen() { style = MaterialTheme.typography.titleMedium, ) Spacer(modifier = Modifier.weight(1f)) - - // TODO: Replace this dummy impl with official one when available - // See https://m3.material.io/components/segmented-buttons/overview - Row( - modifier = Modifier.height(IntrinsicSize.Min).border( - 1.dp, - MaterialTheme.colorScheme.outline, - RoundedCornerShape(90f, 90f, 90f, 90f), - ).clip(RoundedCornerShape(90f, 90f, 90f, 90f)), - ) { - Box( - modifier = Modifier.background(if (!siteEx) MaterialTheme.colorScheme.secondaryContainer else MaterialTheme.colorScheme.surface).clickable { siteEx = false }.size(100.dp, 40.dp), - contentAlignment = Alignment.Center, - ) { - Text( - text = stringResource(id = R.string.site_e), - style = MaterialTheme.typography.labelLarge, - ) + SingleChoiceSegmentedButtonRow { + SegmentedButton(selected = !siteEx, onClick = { siteEx = false }) { + Text(text = stringResource(id = R.string.site_e)) } - Divider( - color = MaterialTheme.colorScheme.outline, - modifier = Modifier.fillMaxHeight().width(1.dp), - ) - Box( - modifier = Modifier.background(if (siteEx) MaterialTheme.colorScheme.secondaryContainer else MaterialTheme.colorScheme.surface).clickable { siteEx = true }.size(100.dp, 40.dp), - contentAlignment = Alignment.Center, - ) { - Text( - text = stringResource(id = R.string.site_ex), - style = MaterialTheme.typography.labelLarge, - ) + SegmentedButton(selected = siteEx, onClick = { siteEx = true }) { + Text(text = stringResource(id = R.string.site_ex)) } } - // Dummy impl end - Text( text = stringResource(id = R.string.select_scene_explain), modifier = Modifier.padding(top = 16.dp),