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("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")

View File

@@ -63,7 +63,6 @@ fun HomeScreen(navigator: DestinationsNavigator) {
StatusCard(kernelVersion, ksuVersion)
InfoCard()
SupportCard()
Spacer(Modifier)
}
}
@@ -253,28 +252,3 @@ private fun StatusCardPreview() {
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
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.Info
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
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.navigation.DestinationsNavigator
import me.weishu.kernelsu.R
import me.weishu.kernelsu.ui.util.LinkifyText
/**
* @author weishu
@@ -21,7 +26,7 @@ import me.weishu.kernelsu.R
@Composable
fun SettingScreen(navigator: DestinationsNavigator) {
Scaffold (
Scaffold(
topBar = {
TopBar(onBack = {
navigator.popBackStack()
@@ -29,8 +34,48 @@ fun SettingScreen(navigator: DestinationsNavigator) {
}
) { 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)) {
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) }
},
)
}
@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_download">Reboot to Download</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>