feat: staging profile & fix warnings

This commit is contained in:
rushiiMachine 2025-05-18 13:54:04 -07:00
parent fbe72ef834
commit 334f1bf118
No known key found for this signature in database
GPG key ID: DCBE5952BB3B6420
10 changed files with 39 additions and 19 deletions

View file

@ -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<JavaCompile> {
// Disable warnings about obsolete target version
options.compilerArgs.add("-Xlint:-options")
}
dependencies {
implementation(libs.bundles.accompanist)
implementation(libs.bundles.androidx)

View file

@ -0,0 +1,2 @@
# Keeps all class and field names for debugging
-keepnames class ** { *; }

View file

@ -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<AboutModel>()
val model = koinScreenModel<AboutModel>()
AboutScreenContent(state = model.state.collectAsState())
}

View file

@ -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<HomeModel>()
val model = koinScreenModel<HomeModel>()
val onClickInstall = remember { { navigator.push(PatchOptionsScreen()) } }
// Refresh installations list when the screen changes or activity resumes

View file

@ -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<LogScreenModel> { parametersOf(installId) }
val model = koinScreenModel<LogScreenModel> { parametersOf(installId) }
val navigator = LocalNavigator.currentOrThrow
if (model.shouldCloseScreen) {

View file

@ -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<LogsListScreenModel>()
val model = koinScreenModel<LogsListScreenModel>()
LogsScreenContent(
logs = model.logEntries,

View file

@ -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<PatchingScreenModel> { parametersOf(data) }
val model = koinScreenModel<PatchingScreenModel> { parametersOf(data) }
val state by model.state.collectAsState()
val listState = rememberLazyListState()

View file

@ -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<IconOptionsModel>()
return koinScreenModel<IconOptionsModel>()
}
@Composable
override fun Content() {
val context = LocalContext.current
val navigator = LocalNavigator.currentOrThrow
val model = getScreenModel<PatchOptionsModel> { parametersOf(prefilledOptions ?: PatchOptions.Default) }
val iconModel = getScreenModel<IconOptionsModel> { parametersOf((prefilledOptions ?: PatchOptions.Default).iconReplacement) }
val model = koinScreenModel<PatchOptionsModel> { parametersOf(prefilledOptions ?: PatchOptions.Default) }
val iconModel = koinScreenModel<IconOptionsModel> { 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),

View file

@ -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<PluginsModel>()
val model = koinScreenModel<PluginsModel>()
// Refresh plugins list on activity resume or when this initially opens
LifecycleResumeEffect(Unit) {

View file

@ -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<SettingsModel>()
val model = koinScreenModel<SettingsModel>()
var clearedCache by rememberSaveable { mutableStateOf(false) }
Scaffold(