diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/about/AboutPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/about/AboutPage.kt index d4c11015..a22ee608 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/about/AboutPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/settings/about/AboutPage.kt @@ -1,6 +1,8 @@ package com.huanchengfly.tieba.post.ui.page.settings.about import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -15,19 +17,27 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.material.TextButton import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableLongStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import com.google.accompanist.drawablepainter.rememberDrawablePainter -import com.google.accompanist.insets.ui.Scaffold import com.huanchengfly.tieba.post.BuildConfig import com.huanchengfly.tieba.post.R +import com.huanchengfly.tieba.post.toastShort import com.huanchengfly.tieba.post.ui.common.theme.compose.ExtendedTheme import com.huanchengfly.tieba.post.ui.widgets.compose.BackNavigationIcon +import com.huanchengfly.tieba.post.ui.widgets.compose.MyScaffold import com.huanchengfly.tieba.post.ui.widgets.compose.TitleCentredToolbar +import com.huanchengfly.tieba.post.utils.appPreferences import com.huanchengfly.tieba.post.utils.launchUrl import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.navigation.DestinationsNavigator @@ -37,11 +47,20 @@ import com.ramcosta.composedestinations.navigation.DestinationsNavigator fun AboutPage( navigator: DestinationsNavigator, ) { - Scaffold( + var lastClickTime by remember { mutableLongStateOf(0L) } + var clickCount by remember { mutableIntStateOf(0) } + + MyScaffold( backgroundColor = Color.Transparent, topBar = { TitleCentredToolbar( - title = stringResource(id = R.string.title_about), + title = { + Text( + text = stringResource(id = R.string.title_about), + fontWeight = FontWeight.Bold, + style = MaterialTheme.typography.h6 + ) + }, navigationIcon = { BackNavigationIcon(onBackPressed = { navigator.navigateUp() }) } @@ -91,7 +110,30 @@ fun AboutPage( Text( text = stringResource(id = R.string.tip_about, BuildConfig.VERSION_NAME), style = MaterialTheme.typography.caption, - color = ExtendedTheme.colors.textSecondary + color = ExtendedTheme.colors.textSecondary, + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + onClick = { + val currentTime = System.currentTimeMillis() + if (currentTime - lastClickTime < 500) { + clickCount++ + } else { + clickCount = 1 + } + lastClickTime = currentTime + if (clickCount >= 7) { + clickCount = 0 + context.appPreferences.showExperimentalFeatures = + !context.appPreferences.showExperimentalFeatures + if (context.appPreferences.showExperimentalFeatures) { + context.toastShort(R.string.toast_experimental_features_enabled) + } else { + context.toastShort(R.string.toast_experimental_features_disabled) + } + } + } + ) ) } Spacer(modifier = Modifier.height(48.dp)) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9c613493..941994db 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -641,7 +641,7 @@ 语音 表情 表情 %s - (实验性特性)启用新版 UI。仅少部分页面完成,BUG 可能较多,仅供尝鲜使用! + 启用新版 UI。部分页面尚未完成,BUG 可能较多,仅供尝鲜使用! 启用新版 UI 请忽略“电池优化” 在 Android 12 及以上版本中,后台启动前台服务被严格限制。为了避免一键签到无法正常启动,请忽略本应用的“电池优化”。