clear search when locking/unlocking private space
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
Reference in New Issue
Block a user