clear search when locking/unlocking private space

This commit is contained in:
MM20
2026-07-20 22:09:45 +02:00
parent b39c92d72f
commit a94c1cf285

View File

@@ -16,6 +16,8 @@ import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.surfaceColorAtElevation import androidx.compose.material3.surfaceColorAtElevation
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@@ -27,6 +29,9 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.repeatOnLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import de.mm20.launcher2.profiles.Profile import de.mm20.launcher2.profiles.Profile
import de.mm20.launcher2.search.AppShortcut import de.mm20.launcher2.search.AppShortcut
@@ -55,6 +60,9 @@ import de.mm20.launcher2.ui.launcher.sheets.HiddenItemsSheet
import de.mm20.launcher2.ui.launcher.sheets.LocalBottomSheetManager import de.mm20.launcher2.ui.launcher.sheets.LocalBottomSheetManager
import de.mm20.launcher2.ui.locals.LocalGridSettings import de.mm20.launcher2.ui.locals.LocalGridSettings
import de.mm20.launcher2.ui.theme.transparency.transparency import de.mm20.launcher2.ui.theme.transparency.transparency
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.zip
@Composable @Composable
fun SearchColumn( fun SearchColumn(
@@ -69,6 +77,7 @@ fun SearchColumn(
val columns = LocalGridSettings.current.columnCount val columns = LocalGridSettings.current.columnCount
val showList = LocalGridSettings.current.showList val showList = LocalGridSettings.current.showList
val context = LocalContext.current val context = LocalContext.current
val lifecycleOwner = LocalLifecycleOwner.current
val viewModel: SearchVM = viewModel() val viewModel: SearchVM = viewModel()
@@ -128,6 +137,26 @@ fun SearchColumn(
val showFilters by viewModel.showFilters val showFilters by viewModel.showFilters
LaunchedEffect(profiles) {
var previousState: Profile.State? = null
lifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
viewModel.profileStates.map { it[Profile.Type.Private] }.collect {
if (it == previousState) return@collect
previousState = it
viewModel.search("")
if (it?.locked == false && !it.hidden) {
val index = profiles.indexOfFirst { p -> p.type == Profile.Type.Private }
if (index != -1) {
selectedAppProfileIndex = index
}
}
}
}
}
AnimatedContent( AnimatedContent(
showFilters, showFilters,
modifier = modifier.padding(horizontal = 8.dp), modifier = modifier.padding(horizontal = 8.dp),