From dcde0bd5c9d0864cb49d12fda78c8be0db9eed2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sat, 13 Dec 2025 20:06:18 +0800 Subject: [PATCH] Use the new UI entirely for the release build --- .../io/nekohasekai/sfa/LauncherActivity.kt | 12 +-- .../compose/screen/settings/SettingsScreen.kt | 85 ++++++++++--------- .../sfa/ui/main/SettingsFragment.kt | 2 + build.gradle | 4 +- 4 files changed, 52 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sfa/LauncherActivity.kt b/app/src/main/java/io/nekohasekai/sfa/LauncherActivity.kt index 0d5b6e2..a844fe7 100644 --- a/app/src/main/java/io/nekohasekai/sfa/LauncherActivity.kt +++ b/app/src/main/java/io/nekohasekai/sfa/LauncherActivity.kt @@ -12,16 +12,12 @@ class LauncherActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val useComposeUI = - runBlocking { - Settings.useComposeUI - } - val targetActivity = - if (useComposeUI) { - ComposeActivity::class.java + if (BuildConfig.DEBUG) { + val useComposeUI = runBlocking { Settings.useComposeUI } + if (useComposeUI) ComposeActivity::class.java else MainActivity::class.java } else { - MainActivity::class.java + ComposeActivity::class.java } val launchIntent = diff --git a/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/SettingsScreen.kt b/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/SettingsScreen.kt index 3e66363..c178b33 100644 --- a/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/SettingsScreen.kt +++ b/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/SettingsScreen.kt @@ -37,6 +37,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.navigation.NavController +import io.nekohasekai.sfa.BuildConfig import io.nekohasekai.sfa.R import io.nekohasekai.sfa.database.Settings import kotlinx.coroutines.Dispatchers @@ -275,51 +276,53 @@ fun SettingsScreen(navController: NavController) { modifier = Modifier.padding(horizontal = 32.dp, vertical = 8.dp), ) - Card( - modifier = - Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - colors = - CardDefaults.cardColors( - containerColor = MaterialTheme.colorScheme.surfaceContainer, - ), - ) { - ListItem( - headlineContent = { - Text( - stringResource(R.string.switch_to_legacy_ui), - style = MaterialTheme.typography.bodyLarge, - ) - }, - leadingContent = { - Icon( - imageVector = Icons.Outlined.SwapHoriz, - contentDescription = null, - tint = MaterialTheme.colorScheme.primary, - ) - }, + if (BuildConfig.DEBUG) { + Card( modifier = Modifier - .clip(RoundedCornerShape(12.dp)) - .clickable { - scope.launch(Dispatchers.IO) { - Settings.useComposeUI = false - val intent = - android.content.Intent( - context, - Class.forName("io.nekohasekai.sfa.ui.MainActivity"), - ) - intent.flags = - android.content.Intent.FLAG_ACTIVITY_NEW_TASK or android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK - context.startActivity(intent) - } - }, + .fillMaxWidth() + .padding(horizontal = 16.dp), colors = - ListItemDefaults.colors( - containerColor = Color.Transparent, + CardDefaults.cardColors( + containerColor = MaterialTheme.colorScheme.surfaceContainer, ), - ) + ) { + ListItem( + headlineContent = { + Text( + stringResource(R.string.switch_to_legacy_ui), + style = MaterialTheme.typography.bodyLarge, + ) + }, + leadingContent = { + Icon( + imageVector = Icons.Outlined.SwapHoriz, + contentDescription = null, + tint = MaterialTheme.colorScheme.primary, + ) + }, + modifier = + Modifier + .clip(RoundedCornerShape(12.dp)) + .clickable { + scope.launch(Dispatchers.IO) { + Settings.useComposeUI = false + val intent = + android.content.Intent( + context, + Class.forName("io.nekohasekai.sfa.ui.MainActivity"), + ) + intent.flags = + android.content.Intent.FLAG_ACTIVITY_NEW_TASK or android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK + context.startActivity(intent) + } + }, + colors = + ListItemDefaults.colors( + containerColor = Color.Transparent, + ), + ) + } } Spacer(modifier = Modifier.height(16.dp)) diff --git a/app/src/main/java/io/nekohasekai/sfa/ui/main/SettingsFragment.kt b/app/src/main/java/io/nekohasekai/sfa/ui/main/SettingsFragment.kt index edde2fe..c44a4c1 100644 --- a/app/src/main/java/io/nekohasekai/sfa/ui/main/SettingsFragment.kt +++ b/app/src/main/java/io/nekohasekai/sfa/ui/main/SettingsFragment.kt @@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import io.nekohasekai.libbox.Libbox import io.nekohasekai.sfa.Application +import io.nekohasekai.sfa.BuildConfig import io.nekohasekai.sfa.R import io.nekohasekai.sfa.constant.EnabledType import io.nekohasekai.sfa.database.Settings @@ -167,6 +168,7 @@ class SettingsFragment : Fragment() { binding.dynamicNotificationEnabled.text = EnabledType.from(dynamicNotification).getString(requireContext()) binding.dynamicNotificationEnabled.setSimpleItems(R.array.enabled) + binding.experimentalFeaturesCard.isVisible = BuildConfig.DEBUG binding.useComposeUIEnabled.text = EnabledType.from(useComposeUI).getString(requireContext()) binding.useComposeUIEnabled.setSimpleItems(R.array.enabled) diff --git a/build.gradle b/build.gradle index beb4586..1ccf789 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,8 @@ buildscript { } plugins { - id 'com.android.application' version '8.13.1' apply false - id 'com.android.library' version '8.13.1' apply false + id 'com.android.application' version '8.13.2' apply false + id 'com.android.library' version '8.13.2' apply false id 'org.jetbrains.kotlin.android' version '2.2.0' apply false id 'com.google.devtools.ksp' version '2.2.0-2.0.2' apply false id 'com.github.triplet.play' version '3.12.1' apply false