From 77254015a5e70def8a6785590d83202bf0190d71 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Fri, 4 Nov 2022 20:01:22 +0100 Subject: [PATCH] Move hidden items button to search bar --- .../ui/assistant/AssistantScaffold.kt | 1 + .../launcher2/ui/launcher/PagerScaffold.kt | 1 + .../launcher2/ui/launcher/PullDownScaffold.kt | 1 + .../ui/launcher/search/SearchColumn.kt | 3 -- .../launcher/searchbar/LauncherSearchBar.kt | 39 +++++++++++++++++++ 5 files changed, 42 insertions(+), 3 deletions(-) diff --git a/ui/src/main/java/de/mm20/launcher2/ui/assistant/AssistantScaffold.kt b/ui/src/main/java/de/mm20/launcher2/ui/assistant/AssistantScaffold.kt index f1a7079d..f4121a35 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/assistant/AssistantScaffold.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/assistant/AssistantScaffold.kt @@ -208,6 +208,7 @@ fun AssistantScaffold( viewModel.setSearchbarFocus(it) }, actions = actions, + showHiddenItemsButton = true, value = { value }, onValueChange = { searchVM.search(it) }, darkColors = LocalPreferDarkContentOverWallpaper.current && searchBarColor == Settings.SearchBarSettings.SearchBarColors.Auto || searchBarColor == Settings.SearchBarSettings.SearchBarColors.Dark, diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt index 8af2ec04..7219656a 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/PagerScaffold.kt @@ -451,6 +451,7 @@ fun PagerScaffold( viewModel.setSearchbarFocus(it) }, actions = actions, + showHiddenItemsButton = isSearchOpen, value = { value }, onValueChange = { searchVM.search(it) }, darkColors = LocalPreferDarkContentOverWallpaper.current && searchBarColor == SearchBarColors.Auto || searchBarColor == SearchBarColors.Dark, diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt index 74bd18ba..794360ba 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/PullDownScaffold.kt @@ -424,6 +424,7 @@ fun PullDownScaffold( viewModel.setSearchbarFocus(it) }, actions = actions, + showHiddenItemsButton = isSearchOpen, value = { value }, onValueChange = { searchVM.search(it) }, darkColors = LocalPreferDarkContentOverWallpaper.current && searchBarColor == Settings.SearchBarSettings.SearchBarColors.Auto || searchBarColor == Settings.SearchBarSettings.SearchBarColors.Dark, diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchColumn.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchColumn.kt index 8db873dc..bb260ab5 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchColumn.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchColumn.kt @@ -360,9 +360,6 @@ fun SearchColumn( reverse = reverse, key = "files" ) - item { - HiddenResults() - } } if (showEditFavoritesDialog) { diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/LauncherSearchBar.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/LauncherSearchBar.kt index a80334ca..6f418bd0 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/LauncherSearchBar.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/searchbar/LauncherSearchBar.kt @@ -1,15 +1,31 @@ package de.mm20.launcher2.ui.launcher.searchbar +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.tween +import androidx.compose.animation.scaleIn +import androidx.compose.animation.scaleOut +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.VisibilityOff +import androidx.compose.material3.FilledIconButton +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButtonDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.platform.LocalFocusManager +import androidx.lifecycle.viewmodel.compose.viewModel import de.mm20.launcher2.preferences.Settings import de.mm20.launcher2.searchactions.actions.SearchAction import de.mm20.launcher2.ui.component.SearchBar import de.mm20.launcher2.ui.component.SearchBarLevel +import de.mm20.launcher2.ui.launcher.modals.HiddenItemsSheet +import de.mm20.launcher2.ui.launcher.search.SearchVM @Composable fun LauncherSearchBar( @@ -21,12 +37,19 @@ fun LauncherSearchBar( focused: Boolean, onFocusChange: (Boolean) -> Unit, actions: List, + showHiddenItemsButton: Boolean = false, reverse: Boolean = false, darkColors: Boolean = false, ) { val focusManager = LocalFocusManager.current val focusRequester = remember { FocusRequester() } + val searchVM: SearchVM = viewModel() + + var showHiddenItemsSheet by remember { mutableStateOf(false) } + + val hiddenItems by searchVM.hiddenResults.observeAsState(emptyList()) + LaunchedEffect(focused) { if (focused) focusRequester.requestFocus() @@ -41,6 +64,18 @@ fun LauncherSearchBar( reverse = reverse, darkColors = darkColors, menu = { + AnimatedVisibility( + showHiddenItemsButton && hiddenItems.isNotEmpty(), + enter = scaleIn(tween(100)), + exit = scaleOut(tween(100)) + ) { + FilledIconButton( + onClick = { showHiddenItemsSheet = !showHiddenItemsSheet }, + colors = if (showHiddenItemsSheet) IconButtonDefaults.filledTonalIconButtonColors() else IconButtonDefaults.iconButtonColors() + ) { + Icon(imageVector = Icons.Rounded.VisibilityOff, contentDescription = null) + } + } SearchBarMenu(searchBarValue = _value, onSearchBarValueChange = onValueChange) }, actions = { @@ -50,4 +85,8 @@ fun LauncherSearchBar( onFocus = { onFocusChange(true) }, onUnfocus = { onFocusChange(false) }, ) + + if (showHiddenItemsSheet) { + HiddenItemsSheet(hiddenItems, onDismiss = { showHiddenItemsSheet = false }) + } } \ No newline at end of file