diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/ExecuteModuleAction.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/ExecuteModuleAction.kt index 69480997d73f..21f40aa1c832 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/ExecuteModuleAction.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/ExecuteModuleAction.kt @@ -140,4 +140,4 @@ private fun TopBar(onBack: () -> Unit = {}, onSave: () -> Unit = {}) { } } ) -} +} \ No newline at end of file diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt index a0d28f093189..193f76b21c46 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Module.kt @@ -477,6 +477,7 @@ fun ModuleItem( val textDecoration = if (!module.remove) null else TextDecoration.LineThrough val interactionSource = remember { MutableInteractionSource() } val indication = LocalIndication.current + val viewModel = viewModel() Column( modifier = Modifier @@ -580,7 +581,10 @@ fun ModuleItem( if (module.hasActionScript) { FilledTonalButton( modifier = Modifier.defaultMinSize(52.dp, 32.dp), - onClick = { navigator.navigate(ExecuteModuleActionScreenDestination(module.id)) }, + onClick = { + navigator.navigate(ExecuteModuleActionScreenDestination(module.id)) + viewModel.markNeedRefresh() + }, contentPadding = ButtonDefaults.TextButtonContentPadding ) { Icon( diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/SuperUser.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/SuperUser.kt index 1a37d0110318..a2510a7fff94 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/SuperUser.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/SuperUser.kt @@ -4,6 +4,7 @@ import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.ExperimentalMaterialApi @@ -40,13 +41,21 @@ fun SuperUserScreen(navigator: DestinationsNavigator) { val viewModel = viewModel() val scope = rememberCoroutineScope() val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()) + val listState = rememberLazyListState() - LaunchedEffect(Unit) { + LaunchedEffect(key1 = navigator) { + viewModel.search = "" if (viewModel.appList.isEmpty()) { viewModel.fetchAppList() } } + LaunchedEffect(viewModel.search) { + if (viewModel.search.isEmpty()) { + listState.scrollToItem(0) + } + } + Scaffold( topBar = { SearchAppBar( @@ -104,6 +113,7 @@ fun SuperUserScreen(navigator: DestinationsNavigator) { isRefreshing = viewModel.isRefreshing ) { LazyColumn( + state = listState, modifier = Modifier .fillMaxSize() .nestedScroll(scrollBehavior.nestedScrollConnection)