From 334f1bf1188033bb17988cd14f0878d239f7a257 Mon Sep 17 00:00:00 2001 From: rushiiMachine <33725716+rushiiMachine@users.noreply.github.com> Date: Sun, 18 May 2025 13:54:04 -0700 Subject: [PATCH] feat: staging profile & fix warnings --- app/build.gradle.kts | 19 ++++++++++++++++++- app/proguard-rules-staging.pro | 2 ++ .../manager/ui/screens/about/AboutScreen.kt | 4 ++-- .../manager/ui/screens/home/HomeScreen.kt | 4 ++-- .../manager/ui/screens/log/LogScreen.kt | 4 ++-- .../manager/ui/screens/logs/LogsListScreen.kt | 4 ++-- .../ui/screens/patching/PatchingScreen.kt | 4 ++-- .../screens/patchopts/PatchOptionsScreen.kt | 9 +++++---- .../ui/screens/plugins/PluginsScreen.kt | 4 ++-- .../ui/screens/settings/SettingsScreen.kt | 4 ++-- 10 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 app/proguard-rules-staging.pro diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1d46d75..6c9fd62 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -46,7 +46,7 @@ android { enableV4Signing = true keyAlias = System.getenv("SIGNING_KEY_ALIAS") keyPassword = System.getenv("SIGNING_KEY_PASSWORD") - storeFile = System.getenv("SIGNING_STORE_FILE")?.let { File(it) } + storeFile = System.getenv("SIGNING_STORE_FILE")?.let(::File) storePassword = System.getenv("SIGNING_STORE_PASSWORD") } } @@ -61,6 +61,18 @@ android { signingConfig = signingConfigs.getByName(if (hasReleaseSigning) "release" else "debug") proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } + + create("staging") { + isMinifyEnabled = true + isShrinkResources = true + isCrunchPngs = true + signingConfig = signingConfigs.getByName("debug") + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro", + "proguard-rules-staging.pro", + ) + } } androidComponents { @@ -138,6 +150,11 @@ kotlin { } } +tasks.withType { + // Disable warnings about obsolete target version + options.compilerArgs.add("-Xlint:-options") +} + dependencies { implementation(libs.bundles.accompanist) implementation(libs.bundles.androidx) diff --git a/app/proguard-rules-staging.pro b/app/proguard-rules-staging.pro new file mode 100644 index 0000000..e2c3c54 --- /dev/null +++ b/app/proguard-rules-staging.pro @@ -0,0 +1,2 @@ +# Keeps all class and field names for debugging +-keepnames class ** { *; } diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/about/AboutScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/about/AboutScreen.kt index 2977ca3..7b3e081 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/about/AboutScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/about/AboutScreen.kt @@ -16,7 +16,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import cafe.adriel.voyager.core.screen.Screen -import cafe.adriel.voyager.koin.getScreenModel +import cafe.adriel.voyager.koin.koinScreenModel import com.aliucord.manager.R import com.aliucord.manager.ui.components.* import com.aliucord.manager.ui.screens.about.components.LeadContributor @@ -32,7 +32,7 @@ class AboutScreen : Screen, Parcelable { @Composable override fun Content() { - val model = getScreenModel() + val model = koinScreenModel() AboutScreenContent(state = model.state.collectAsState()) } diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/home/HomeScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/home/HomeScreen.kt index 053902a..fe05885 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/home/HomeScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/home/HomeScreen.kt @@ -23,7 +23,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.LifecycleResumeEffect import cafe.adriel.voyager.core.screen.Screen -import cafe.adriel.voyager.koin.getScreenModel +import cafe.adriel.voyager.koin.koinScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow import com.aliucord.manager.R @@ -47,7 +47,7 @@ class HomeScreen : Screen, Parcelable { override fun Content() { val navigator = LocalNavigator.currentOrThrow val scope = rememberCoroutineScope() - val model = getScreenModel() + val model = koinScreenModel() val onClickInstall = remember { { navigator.push(PatchOptionsScreen()) } } // Refresh installations list when the screen changes or activity resumes diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/log/LogScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/log/LogScreen.kt index 8650507..79ae2c1 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/log/LogScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/log/LogScreen.kt @@ -10,7 +10,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.ScreenKey -import cafe.adriel.voyager.koin.getScreenModel +import cafe.adriel.voyager.koin.koinScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow import com.aliucord.manager.R @@ -31,7 +31,7 @@ class LogScreen(private val installId: String) : Screen, Parcelable { @Composable override fun Content() { - val model = getScreenModel { parametersOf(installId) } + val model = koinScreenModel { parametersOf(installId) } val navigator = LocalNavigator.currentOrThrow if (model.shouldCloseScreen) { diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/logs/LogsListScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/logs/LogsListScreen.kt index a9cde27..c38283e 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/logs/LogsListScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/logs/LogsListScreen.kt @@ -11,7 +11,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.ScreenKey -import cafe.adriel.voyager.koin.getScreenModel +import cafe.adriel.voyager.koin.koinScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow import com.aliucord.manager.ui.screens.log.LogScreen @@ -31,7 +31,7 @@ class LogsListScreen : Screen, Parcelable { @Composable override fun Content() { val navigator = LocalNavigator.currentOrThrow - val model = getScreenModel() + val model = koinScreenModel() LogsScreenContent( logs = model.logEntries, diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/patching/PatchingScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/patching/PatchingScreen.kt index f53f43e..d524523 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/patching/PatchingScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/patching/PatchingScreen.kt @@ -24,7 +24,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import cafe.adriel.voyager.core.screen.Screen -import cafe.adriel.voyager.koin.getScreenModel +import cafe.adriel.voyager.koin.koinScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow import com.aliucord.manager.BuildConfig @@ -56,7 +56,7 @@ class PatchingScreen(private val data: PatchOptions) : Screen, Parcelable { override fun Content() { val navigator = LocalNavigator.currentOrThrow val context = LocalContext.current - val model = getScreenModel { parametersOf(data) } + val model = koinScreenModel { parametersOf(data) } val state by model.state.collectAsState() val listState = rememberLazyListState() diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsScreen.kt index c835c3c..882df5e 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/patchopts/PatchOptionsScreen.kt @@ -15,7 +15,7 @@ import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import cafe.adriel.voyager.core.screen.Screen -import cafe.adriel.voyager.koin.getScreenModel +import cafe.adriel.voyager.koin.koinScreenModel import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow import com.aliucord.manager.R @@ -45,15 +45,15 @@ class PatchOptionsScreen( @Composable override fun getIconModel(): IconOptionsModel { - return getScreenModel() + return koinScreenModel() } @Composable override fun Content() { val context = LocalContext.current val navigator = LocalNavigator.currentOrThrow - val model = getScreenModel { parametersOf(prefilledOptions ?: PatchOptions.Default) } - val iconModel = getScreenModel { parametersOf((prefilledOptions ?: PatchOptions.Default).iconReplacement) } + val model = koinScreenModel { parametersOf(prefilledOptions ?: PatchOptions.Default) } + val iconModel = koinScreenModel { parametersOf((prefilledOptions ?: PatchOptions.Default).iconReplacement) } LaunchedEffect(Unit) { // Ensure that when popping this screen off the stack that permission requests don't get triggered @@ -146,6 +146,7 @@ fun PatchOptionsScreenContent( TextDivider(text = stringResource(R.string.patchopts_divider_basic)) + // TODO: hide when below to Android 8 IconPatchOption( icon = painterResource(R.drawable.ic_app_shortcut), name = stringResource(R.string.patchopts_icon_title), diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/plugins/PluginsScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/plugins/PluginsScreen.kt index e136f63..8adf922 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/plugins/PluginsScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/plugins/PluginsScreen.kt @@ -16,7 +16,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.LifecycleResumeEffect import cafe.adriel.voyager.core.screen.Screen -import cafe.adriel.voyager.koin.getScreenModel +import cafe.adriel.voyager.koin.koinScreenModel import com.aliucord.manager.R import com.aliucord.manager.ui.components.BackButton import com.aliucord.manager.ui.screens.plugins.components.* @@ -34,7 +34,7 @@ class PluginsScreen : Screen, Parcelable { @Composable override fun Content() { - val model = getScreenModel() + val model = koinScreenModel() // Refresh plugins list on activity resume or when this initially opens LifecycleResumeEffect(Unit) { diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/settings/SettingsScreen.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/settings/SettingsScreen.kt index fbc5f89..f9c1351 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/settings/SettingsScreen.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/settings/SettingsScreen.kt @@ -18,7 +18,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import cafe.adriel.voyager.core.screen.Screen -import cafe.adriel.voyager.koin.getScreenModel +import cafe.adriel.voyager.koin.koinScreenModel import com.aliucord.manager.R import com.aliucord.manager.network.services.AliucordGithubService import com.aliucord.manager.ui.components.BackButton @@ -35,7 +35,7 @@ class SettingsScreen : Screen, Parcelable { @Composable override fun Content() { - val model = getScreenModel() + val model = koinScreenModel() var clearedCache by rememberSaveable { mutableStateOf(false) } Scaffold(