fix: crash when open System -> Options (#243)

Upgrade AGP
This commit is contained in:
BinTianqi
2026-02-14 12:19:47 +08:00
parent ca111738a1
commit a38bffded5
5 changed files with 47 additions and 27 deletions

View File

@@ -2,7 +2,6 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.compose)
alias(libs.plugins.serialization)
}

View File

@@ -357,9 +357,11 @@ fun SystemOptionsScreen(vm: MyViewModel, onNavigateUp: () -> Unit) {
val secureSettingsStatus = remember { mutableStateMapOf<String, Boolean>() }
LaunchedEffect(Unit) {
vm.getSystemOptionsStatus()
if (privilege.device) {
globalSettingsStatus.putAll(vm.getGlobalSettings())
secureSettingsStatus.putAll(vm.getSecureSettings())
}
}
MyScaffold(R.string.options, onNavigateUp, 0.dp) {
SwitchItem(R.string.disable_cam, status.cameraDisabled, vm::setCameraDisabled,
R.drawable.no_photography_fill0)
@@ -403,6 +405,7 @@ fun SystemOptionsScreen(vm: MyViewModel, onNavigateUp: () -> Unit) {
}
SwitchItem(R.string.stay_on_while_plugged_in, status.stayOnWhilePluggedIn,
vm::setStayOnWhilePluggedIn, R.drawable.mobile_phone_fill0)
if (privilege.device) {
globalSettings.forEach {
SwitchItem(it.name, globalSettingsStatus[it.setting] ?: false, { state ->
vm.setGlobalSetting(it.setting, state)
@@ -415,9 +418,12 @@ fun SystemOptionsScreen(vm: MyViewModel, onNavigateUp: () -> Unit) {
secureSettingsStatus[it.setting] = state
}, it.icon)
}
}
if (VERSION.SDK_INT < 34) {
Row(
Modifier.fillMaxWidth().padding(horizontal = HorizontalPadding),
Modifier
.fillMaxWidth()
.padding(horizontal = HorizontalPadding),
verticalAlignment = Alignment.CenterVertically
) {
Text(stringResource(R.string.status_bar), style = typography.titleMedium)
@@ -597,7 +603,10 @@ fun DefaultInputMethodScreen(
MyLazyScaffold(R.string.default_input_method, navigateUp) {
items(imList) { (id, info) ->
Row(
Modifier.fillMaxWidth().clickable { selectedIm = id }.padding(8.dp),
Modifier
.fillMaxWidth()
.clickable { selectedIm = id }
.padding(8.dp),
verticalAlignment = Alignment.CenterVertically
) {
RadioButton(selectedIm == id, { selectedIm = id })
@@ -613,7 +622,9 @@ fun DefaultInputMethodScreen(
Button({
setIm(selectedIm)
context.showOperationResultToast(true)
}, Modifier.fillMaxWidth().padding(horizontal = HorizontalPadding)) {
}, Modifier
.fillMaxWidth()
.padding(horizontal = HorizontalPadding)) {
Text(stringResource(R.string.apply))
}
Spacer(Modifier.height(BottomPadding))
@@ -678,7 +689,9 @@ fun ChangeTimeScreen(setTime: (Long, Boolean) -> Boolean, onNavigateUp: () -> Un
value = datePickerState.selectedDateMillis?.let { formatDate(it) } ?: "",
onValueChange = {}, readOnly = true,
label = { Text(stringResource(R.string.date)) },
modifier = Modifier.fillMaxWidth().clickableTextField { picker = 1 }
modifier = Modifier
.fillMaxWidth()
.clickableTextField { picker = 1 }
)
OutlinedTextField(
value = timePickerState.hour.toString().padStart(2, '0') + ":" +
@@ -1678,14 +1691,18 @@ fun SecurityLoggingScreen(
val date = SimpleDateFormat("yyyyMMdd", Locale.getDefault()).format(Date())
exportLauncher.launch("security_logs_$date")
},
Modifier.fillMaxWidth().padding(horizontal = HorizontalPadding),
Modifier
.fillMaxWidth()
.padding(horizontal = HorizontalPadding),
logsCount > 0
) {
Text(stringResource(R.string.export_logs))
}
if (logsCount > 0) FilledTonalButton(
{ dialog = true },
Modifier.fillMaxWidth().padding(HorizontalPadding, 4.dp)
Modifier
.fillMaxWidth()
.padding(HorizontalPadding, 4.dp)
) {
Text(stringResource(R.string.delete_logs))
}
@@ -1699,7 +1716,9 @@ fun SecurityLoggingScreen(
context.showOperationResultToast(false)
}
},
modifier = Modifier.fillMaxWidth().padding(HorizontalPadding, 15.dp)
modifier = Modifier
.fillMaxWidth()
.padding(HorizontalPadding, 15.dp)
) {
Text(stringResource(R.string.pre_reboot_security_logs))
}
@@ -1900,7 +1919,9 @@ fun WipeDataScreen(
dialog = 1
},
colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError),
modifier = Modifier.fillMaxWidth().padding(HorizontalPadding, 5.dp)
modifier = Modifier
.fillMaxWidth()
.padding(HorizontalPadding, 5.dp)
) {
Text("WipeData")
}
@@ -1912,7 +1933,9 @@ fun WipeDataScreen(
dialog = 2
},
colors = ButtonDefaults.buttonColors(containerColor = colorScheme.error, contentColor = colorScheme.onError),
modifier = Modifier.fillMaxWidth().padding(HorizontalPadding, 5.dp)
modifier = Modifier
.fillMaxWidth()
.padding(HorizontalPadding, 5.dp)
) {
Text("WipeDevice")
}

View File

@@ -1,5 +1,4 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
}

View File

@@ -1,5 +1,5 @@
[versions]
agp = "8.13.2"
agp = "9.0.1"
kotlin = "2.3.10"
navigation-compose = "2.9.7"
@@ -40,6 +40,5 @@ serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version = "2.3.10" }

View File

@@ -1,6 +1,6 @@
#Fri Jan 12 20:22:20 CST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://downloads.gradle.org/distributions/gradle-9.0.0-bin.zip
distributionUrl=https\://downloads.gradle.org/distributions/gradle-9.2.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists