manager: Add settings screen

This commit is contained in:
tiann
2023-01-01 20:55:25 +08:00
parent bf92185d38
commit 4fc8a62374
4 changed files with 70 additions and 31 deletions

View File

@@ -77,6 +77,7 @@ dependencies {
implementation("me.zhanghai.android.appiconloader:appiconloader-coil:1.5.0") implementation("me.zhanghai.android.appiconloader:appiconloader-coil:1.5.0")
implementation("com.github.topjohnwu.libsu:core:5.0.3") implementation("com.github.topjohnwu.libsu:core:5.0.3")
implementation("com.github.alorma:compose-settings-ui-m3:0.15.0")
ksp("io.github.raamcosta.compose-destinations:ksp:$composeDestinationsVersion") ksp("io.github.raamcosta.compose-destinations:ksp:$composeDestinationsVersion")

View File

@@ -63,7 +63,6 @@ fun HomeScreen(navigator: DestinationsNavigator) {
StatusCard(kernelVersion, ksuVersion) StatusCard(kernelVersion, ksuVersion)
InfoCard() InfoCard()
SupportCard()
Spacer(Modifier) Spacer(Modifier)
} }
} }
@@ -253,28 +252,3 @@ private fun StatusCardPreview() {
StatusCard(KernelVersion(4, 10, 101), null) StatusCard(KernelVersion(4, 10, 101), null)
} }
} }
@Preview
@Composable
private fun SupportCard() {
ElevatedCard {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(24.dp)
) {
Text(
text = stringResource(R.string.home_support),
fontWeight = FontWeight.SemiBold,
style = MaterialTheme.typography.titleMedium
)
Spacer(Modifier.height(8.dp))
CompositionLocalProvider(LocalTextStyle provides MaterialTheme.typography.bodyMedium) {
LinkifyText("Author: weishu")
LinkifyText("Github: https://github.com/tiann/KernelSU")
LinkifyText("Telegram: https://t.me/KernelSU")
LinkifyText("QQ: https://pd.qq.com/s/8lipl1brp")
}
}
}
}

View File

@@ -1,16 +1,21 @@
package me.weishu.kernelsu.ui.screen package me.weishu.kernelsu.ui.screen
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.Info
import androidx.compose.material3.* import androidx.compose.material3.*
import androidx.compose.runtime.Composable import androidx.compose.runtime.*
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.alorma.compose.settings.ui.*
import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.navigation.DestinationsNavigator
import me.weishu.kernelsu.R import me.weishu.kernelsu.R
import me.weishu.kernelsu.ui.util.LinkifyText
/** /**
* @author weishu * @author weishu
@@ -21,7 +26,7 @@ import me.weishu.kernelsu.R
@Composable @Composable
fun SettingScreen(navigator: DestinationsNavigator) { fun SettingScreen(navigator: DestinationsNavigator) {
Scaffold ( Scaffold(
topBar = { topBar = {
TopBar(onBack = { TopBar(onBack = {
navigator.popBackStack() navigator.popBackStack()
@@ -29,8 +34,48 @@ fun SettingScreen(navigator: DestinationsNavigator) {
} }
) { paddingValues -> ) { paddingValues ->
var openDialog by remember { mutableStateOf(false) }
if (openDialog) {
AlertDialog(
onDismissRequest = {
openDialog = false
},
title = {
Text(text = stringResource(id = R.string.about))
},
text = {
SupportCard()
},
confirmButton = {
TextButton(
onClick = {
openDialog = false
}
) {
Text(stringResource(id = android.R.string.ok))
}
},
)
}
Column(modifier = Modifier.padding(paddingValues)) { Column(modifier = Modifier.padding(paddingValues)) {
Text(text = stringResource(id = R.string.settings))
SettingsSwitch(
title = {
Text(stringResource(id = R.string.settings_system_rw))
},
subtitle = {
Text(stringResource(id = R.string.settings_system_rw_summary))
}
)
SettingsMenuLink(title = {
Text(stringResource(id = R.string.about))
},
onClick = {
openDialog = true
}
)
} }
} }
} }
@@ -46,4 +91,20 @@ private fun TopBar(onBack: () -> Unit = {}) {
) { Icon(Icons.Filled.ArrowBack, contentDescription = null) } ) { Icon(Icons.Filled.ArrowBack, contentDescription = null) }
}, },
) )
}
@Preview
@Composable
private fun SupportCard() {
Column(
modifier = Modifier
.fillMaxWidth()
) {
CompositionLocalProvider(LocalTextStyle provides MaterialTheme.typography.bodyMedium) {
LinkifyText("Author: weishu")
LinkifyText("Github: https://github.com/tiann/KernelSU")
LinkifyText("Telegram: https://t.me/KernelSU")
LinkifyText("QQ: https://pd.qq.com/s/8lipl1brp")
}
}
} }

View File

@@ -28,4 +28,7 @@
<string name="reboot_bootloader">Reboot to Bootloader</string> <string name="reboot_bootloader">Reboot to Bootloader</string>
<string name="reboot_download">Reboot to Download</string> <string name="reboot_download">Reboot to Download</string>
<string name="reboot_edl">Reboot to EDL</string> <string name="reboot_edl">Reboot to EDL</string>
<string name="settings_system_rw">Make system writable</string>
<string name="settings_system_rw_summary">Use overlayfs to make system partition writable, reboot to take effect.</string>
<string name="about">About</string>
</resources> </resources>