manager: Add install menu
This commit is contained in:
@@ -11,6 +11,7 @@ import androidx.compose.foundation.layout.*
|
|||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.filled.Archive
|
||||||
import androidx.compose.material.icons.filled.Refresh
|
import androidx.compose.material.icons.filled.Refresh
|
||||||
import androidx.compose.material.icons.filled.Settings
|
import androidx.compose.material.icons.filled.Settings
|
||||||
import androidx.compose.material.icons.outlined.Block
|
import androidx.compose.material.icons.outlined.Block
|
||||||
@@ -42,9 +43,13 @@ import me.weishu.kernelsu.ui.util.*
|
|||||||
@Destination
|
@Destination
|
||||||
@Composable
|
@Composable
|
||||||
fun HomeScreen(navigator: DestinationsNavigator) {
|
fun HomeScreen(navigator: DestinationsNavigator) {
|
||||||
|
val kernelVersion = getKernelVersion()
|
||||||
|
|
||||||
Scaffold(topBar = {
|
Scaffold(topBar = {
|
||||||
TopBar(onSettingsClick = {
|
TopBar(kernelVersion, onSettingsClick = {
|
||||||
navigator.navigate(SettingScreenDestination)
|
navigator.navigate(SettingScreenDestination)
|
||||||
|
}, onInstallClick = {
|
||||||
|
navigator.navigate(InstallScreenDestination)
|
||||||
})
|
})
|
||||||
}) { innerPadding ->
|
}) { innerPadding ->
|
||||||
Column(
|
Column(
|
||||||
@@ -54,7 +59,6 @@ fun HomeScreen(navigator: DestinationsNavigator) {
|
|||||||
.verticalScroll(rememberScrollState()),
|
.verticalScroll(rememberScrollState()),
|
||||||
verticalArrangement = Arrangement.spacedBy(16.dp)
|
verticalArrangement = Arrangement.spacedBy(16.dp)
|
||||||
) {
|
) {
|
||||||
val kernelVersion = getKernelVersion()
|
|
||||||
val isManager = Natives.becomeManager(ksuApp.packageName)
|
val isManager = Natives.becomeManager(ksuApp.packageName)
|
||||||
SideEffect {
|
SideEffect {
|
||||||
if (isManager) install()
|
if (isManager) install()
|
||||||
@@ -138,8 +142,17 @@ fun RebootDropdownItem(@StringRes id: Int, reason: String = "") {
|
|||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
private fun TopBar(onSettingsClick: () -> Unit) {
|
private fun TopBar(kernelVersion: KernelVersion, onInstallClick: () -> Unit, onSettingsClick: () -> Unit) {
|
||||||
TopAppBar(title = { Text(stringResource(R.string.app_name)) }, actions = {
|
TopAppBar(title = { Text(stringResource(R.string.app_name)) }, actions = {
|
||||||
|
if (kernelVersion.isGKI()) {
|
||||||
|
IconButton(onClick = onInstallClick) {
|
||||||
|
Icon(
|
||||||
|
imageVector = Icons.Filled.Archive,
|
||||||
|
contentDescription = stringResource(id = R.string.install)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var showDropdown by remember { mutableStateOf(false) }
|
var showDropdown by remember { mutableStateOf(false) }
|
||||||
IconButton(onClick = {
|
IconButton(onClick = {
|
||||||
showDropdown = true
|
showDropdown = true
|
||||||
|
|||||||
Reference in New Issue
Block a user