diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt index 1bcbad2c..0f57a37e 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt @@ -11,6 +11,7 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll 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.Settings import androidx.compose.material.icons.outlined.Block @@ -42,9 +43,13 @@ import me.weishu.kernelsu.ui.util.* @Destination @Composable fun HomeScreen(navigator: DestinationsNavigator) { + val kernelVersion = getKernelVersion() + Scaffold(topBar = { - TopBar(onSettingsClick = { + TopBar(kernelVersion, onSettingsClick = { navigator.navigate(SettingScreenDestination) + }, onInstallClick = { + navigator.navigate(InstallScreenDestination) }) }) { innerPadding -> Column( @@ -54,7 +59,6 @@ fun HomeScreen(navigator: DestinationsNavigator) { .verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(16.dp) ) { - val kernelVersion = getKernelVersion() val isManager = Natives.becomeManager(ksuApp.packageName) SideEffect { if (isManager) install() @@ -138,8 +142,17 @@ fun RebootDropdownItem(@StringRes id: Int, reason: String = "") { @OptIn(ExperimentalMaterial3Api::class) @Composable -private fun TopBar(onSettingsClick: () -> Unit) { +private fun TopBar(kernelVersion: KernelVersion, onInstallClick: () -> Unit, onSettingsClick: () -> Unit) { 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) } IconButton(onClick = { showDropdown = true