Hide grid labels in favorites widget when grid labels are disabled

This commit is contained in:
MM20 2022-10-19 11:41:49 +02:00
parent b3a36f640b
commit ef93ec0010
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
12 changed files with 29 additions and 44 deletions

View File

@ -7,8 +7,7 @@ import de.mm20.launcher2.preferences.Settings
import de.mm20.launcher2.ui.component.ProvideIconShape import de.mm20.launcher2.ui.component.ProvideIconShape
import de.mm20.launcher2.ui.locals.LocalCardStyle import de.mm20.launcher2.ui.locals.LocalCardStyle
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
import de.mm20.launcher2.ui.locals.LocalGridColumns import de.mm20.launcher2.ui.locals.LocalGridSettings
import de.mm20.launcher2.ui.locals.LocalGridIconSize
import de.mm20.launcher2.widgets.WidgetRepository import de.mm20.launcher2.widgets.WidgetRepository
import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.distinctUntilChanged
@ -42,19 +41,14 @@ fun ProvideSettings(
) { a, b, c -> a || b || c }.distinctUntilChanged() ) { a, b, c -> a || b || c }.distinctUntilChanged()
}.collectAsState(true) }.collectAsState(true)
val gridColumns by remember { val gridSettings by remember {
dataStore.data.map { it.grid.columnCount }.distinctUntilChanged() dataStore.data.map { it.grid }.distinctUntilChanged()
}.collectAsState(5) }.collectAsState(Settings.GridSettings.newBuilder().setColumnCount(5).setShowLabels(true).setIconSize(48).build())
val gridIconSize by remember {
dataStore.data.map { it.grid.iconSize.dp }.distinctUntilChanged()
}.collectAsState(48.dp)
CompositionLocalProvider( CompositionLocalProvider(
LocalCardStyle provides cardStyle, LocalCardStyle provides cardStyle,
LocalFavoritesEnabled provides favoritesEnabled, LocalFavoritesEnabled provides favoritesEnabled,
LocalGridColumns provides gridColumns, LocalGridSettings provides gridSettings,
LocalGridIconSize provides gridIconSize,
) { ) {
ProvideIconShape(iconShape) { ProvideIconShape(iconShape) {
content() content()

View File

@ -100,7 +100,7 @@ import de.mm20.launcher2.ui.launcher.helper.LazyDragAndDropRow
import de.mm20.launcher2.ui.launcher.helper.LazyVerticalDragAndDropGrid import de.mm20.launcher2.ui.launcher.helper.LazyVerticalDragAndDropGrid
import de.mm20.launcher2.ui.launcher.helper.rememberLazyDragAndDropGridState import de.mm20.launcher2.ui.launcher.helper.rememberLazyDragAndDropGridState
import de.mm20.launcher2.ui.launcher.helper.rememberLazyDragAndDropListState import de.mm20.launcher2.ui.launcher.helper.rememberLazyDragAndDropListState
import de.mm20.launcher2.ui.locals.LocalGridColumns import de.mm20.launcher2.ui.locals.LocalGridSettings
import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.currentCoroutineContext
import kotlin.math.roundToInt import kotlin.math.roundToInt
@ -169,7 +169,7 @@ fun EditFavoritesSheet(
@Composable @Composable
fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM) { fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM) {
val items by viewModel.gridItems.observeAsState(emptyList()) val items by viewModel.gridItems.observeAsState(emptyList())
val columns = LocalGridColumns.current val columns = LocalGridSettings.current.columnCount
val availableTags by viewModel.availableTags.observeAsState(emptyList()) val availableTags by viewModel.availableTags.observeAsState(emptyList())
val pinnedTags by viewModel.pinnedTags.observeAsState(emptyList()) val pinnedTags by viewModel.pinnedTags.observeAsState(emptyList())

View File

@ -57,7 +57,7 @@ import de.mm20.launcher2.ui.launcher.search.hidden.HiddenResults
import de.mm20.launcher2.ui.launcher.search.unitconverter.UnitConverterItem import de.mm20.launcher2.ui.launcher.search.unitconverter.UnitConverterItem
import de.mm20.launcher2.ui.launcher.search.website.WebsiteItem import de.mm20.launcher2.ui.launcher.search.website.WebsiteItem
import de.mm20.launcher2.ui.launcher.search.wikipedia.WikipediaItem import de.mm20.launcher2.ui.launcher.search.wikipedia.WikipediaItem
import de.mm20.launcher2.ui.locals.LocalGridColumns import de.mm20.launcher2.ui.locals.LocalGridSettings
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
import kotlin.math.ceil import kotlin.math.ceil
@ -70,7 +70,7 @@ fun SearchColumn(
reverse: Boolean = false, reverse: Boolean = false,
) { ) {
val columns = LocalGridColumns.current val columns = LocalGridSettings.current.columnCount
val context = LocalContext.current val context = LocalContext.current
val viewModel: SearchVM = viewModel() val viewModel: SearchVM = viewModel()
@ -78,8 +78,6 @@ fun SearchColumn(
val favoritesVM: SearchFavoritesVM = viewModel() val favoritesVM: SearchFavoritesVM = viewModel()
val favorites by favoritesVM.favorites.collectAsState(emptyList()) val favorites by favoritesVM.favorites.collectAsState(emptyList())
val showLabels by viewModel.showLabels.observeAsState(true)
var showWorkProfileApps by remember { mutableStateOf(false) } var showWorkProfileApps by remember { mutableStateOf(false) }
val hideFavs by viewModel.hideFavorites.observeAsState(true) val hideFavs by viewModel.hideFavorites.observeAsState(true)
@ -119,7 +117,6 @@ fun SearchColumn(
GridResults( GridResults(
items = favorites.toImmutableList(), items = favorites.toImmutableList(),
columns = columns, columns = columns,
showLabels = showLabels,
key = "favorites", key = "favorites",
reverse = reverse, reverse = reverse,
before = if (favorites.isEmpty()) { before = if (favorites.isEmpty()) {
@ -205,7 +202,6 @@ fun SearchColumn(
GridResults( GridResults(
items = if (showWorkProfileApps && workApps.isNotEmpty()) workApps.toImmutableList() else apps.toImmutableList(), items = if (showWorkProfileApps && workApps.isNotEmpty()) workApps.toImmutableList() else apps.toImmutableList(),
columns = columns, columns = columns,
showLabels = showLabels,
reverse = reverse, reverse = reverse,
key = "apps", key = "apps",
before = if (workApps.isNotEmpty()) { before = if (workApps.isNotEmpty()) {
@ -380,7 +376,6 @@ fun LazyListScope.GridResults(
items: ImmutableList<SavableSearchable>, items: ImmutableList<SavableSearchable>,
columns: Int, columns: Int,
reverse: Boolean, reverse: Boolean,
showLabels: Boolean,
key: String, key: String,
before: (@Composable () -> Unit)? = null, before: (@Composable () -> Unit)? = null,
after: (@Composable () -> Unit)? = null, after: (@Composable () -> Unit)? = null,
@ -421,7 +416,6 @@ fun LazyListScope.GridResults(
(it * columns + columns).coerceAtMost(items.size) (it * columns + columns).coerceAtMost(items.size)
), ),
columns = columns, columns = columns,
showLabels = showLabels,
) )
} }
} }
@ -444,7 +438,7 @@ fun GridRow(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
items: ImmutableList<SavableSearchable>, items: ImmutableList<SavableSearchable>,
columns: Int, columns: Int,
showLabels: Boolean, showLabels: Boolean = LocalGridSettings.current.showLabels,
) { ) {
Row( Row(

View File

@ -31,8 +31,6 @@ class SearchVM : ViewModel(), KoinComponent {
val searchQuery = MutableLiveData<String>("") val searchQuery = MutableLiveData<String>("")
val isSearchEmpty = MutableLiveData(true) val isSearchEmpty = MutableLiveData(true)
val showLabels = dataStore.data.map { it.grid.showLabels }.asLiveData()
val appResults = MutableLiveData<List<LauncherApp>>(emptyList()) val appResults = MutableLiveData<List<LauncherApp>>(emptyList())
val workAppResults = MutableLiveData<List<LauncherApp>>(emptyList()) val workAppResults = MutableLiveData<List<LauncherApp>>(emptyList())
val appShortcutResults = MutableLiveData<List<AppShortcut>>(emptyList()) val appShortcutResults = MutableLiveData<List<AppShortcut>>(emptyList())

View File

@ -30,7 +30,7 @@ import de.mm20.launcher2.ui.ktx.toDp
import de.mm20.launcher2.ui.ktx.toPixels import de.mm20.launcher2.ui.ktx.toPixels
import de.mm20.launcher2.ui.launcher.search.common.customattrs.CustomizeSearchableSheet import de.mm20.launcher2.ui.launcher.search.common.customattrs.CustomizeSearchableSheet
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
import de.mm20.launcher2.ui.locals.LocalGridIconSize import de.mm20.launcher2.ui.locals.LocalGridSettings
import de.mm20.launcher2.ui.locals.LocalSnackbarHostState import de.mm20.launcher2.ui.locals.LocalSnackbarHostState
import de.mm20.launcher2.ui.modifier.scale import de.mm20.launcher2.ui.modifier.scale
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -361,7 +361,7 @@ fun AppItemGridPopup(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.scale( .scale(
1 - (1 - LocalGridIconSize.current / 84.dp) * (1 - animationProgress), 1 - (1 - LocalGridSettings.current.iconSize / 84f) * (1 - animationProgress),
transformOrigin = TransformOrigin(1f, 0f) transformOrigin = TransformOrigin(1f, 0f)
) )
.offset( .offset(

View File

@ -29,7 +29,7 @@ import de.mm20.launcher2.ui.component.BottomSheetDialog
import de.mm20.launcher2.ui.component.ShapedLauncherIcon import de.mm20.launcher2.ui.component.ShapedLauncherIcon
import de.mm20.launcher2.ui.component.OutlinedTagsInputField import de.mm20.launcher2.ui.component.OutlinedTagsInputField
import de.mm20.launcher2.ui.ktx.toPixels import de.mm20.launcher2.ui.ktx.toPixels
import de.mm20.launcher2.ui.locals.LocalGridColumns import de.mm20.launcher2.ui.locals.LocalGridSettings
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -158,7 +158,7 @@ fun CustomizeSearchableSheet(
val isSearching by viewModel.isSearchingIcons.observeAsState(initial = false) val isSearching by viewModel.isSearchingIcons.observeAsState(initial = false)
val iconResults by viewModel.iconSearchResults.observeAsState(emptyList()) val iconResults by viewModel.iconSearchResults.observeAsState(emptyList())
val columns = LocalGridColumns.current val columns = LocalGridSettings.current.columnCount
LazyVerticalGrid( LazyVerticalGrid(
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),

View File

@ -38,7 +38,7 @@ import de.mm20.launcher2.ui.launcher.search.website.WebsiteItemGridPopup
import de.mm20.launcher2.ui.launcher.search.wikipedia.WikipediaItemGridPopup import de.mm20.launcher2.ui.launcher.search.wikipedia.WikipediaItemGridPopup
import de.mm20.launcher2.ui.launcher.transitions.HandleHomeTransition import de.mm20.launcher2.ui.launcher.transitions.HandleHomeTransition
import de.mm20.launcher2.ui.launcher.transitions.HomeTransitionParams import de.mm20.launcher2.ui.launcher.transitions.HomeTransitionParams
import de.mm20.launcher2.ui.locals.LocalGridIconSize import de.mm20.launcher2.ui.locals.LocalGridSettings
import de.mm20.launcher2.ui.locals.LocalWindowPosition import de.mm20.launcher2.ui.locals.LocalWindowPosition
import de.mm20.launcher2.ui.locals.LocalWindowSize import de.mm20.launcher2.ui.locals.LocalWindowSize
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
@ -54,7 +54,7 @@ fun GridItem(modifier: Modifier = Modifier, item: SavableSearchable, showLabels:
var bounds by remember { mutableStateOf(Rect.Zero) } var bounds by remember { mutableStateOf(Rect.Zero) }
Column(modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally) { Column(modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally) {
val badge by remember(item.key) { viewModel.badge }.collectAsState(null) val badge by remember(item.key) { viewModel.badge }.collectAsState(null)
val iconSize = LocalGridIconSize.current.toPixels() val iconSize = LocalGridSettings.current.iconSize.dp.toPixels()
val icon by remember(item.key) { viewModel.getIcon(iconSize.toInt()) }.collectAsState(null) val icon by remember(item.key) { viewModel.getIcon(iconSize.toInt()) }.collectAsState(null)
val launchOnPress = !item.preferDetailsOverLaunch val launchOnPress = !item.preferDetailsOverLaunch
@ -72,7 +72,7 @@ fun GridItem(modifier: Modifier = Modifier, item: SavableSearchable, showLabels:
return@HandleHomeTransition HomeTransitionParams( return@HandleHomeTransition HomeTransitionParams(
bounds bounds
) { _, _ -> ) { _, _ ->
ShapedLauncherIcon(size = LocalGridIconSize.current, icon = { icon }) ShapedLauncherIcon(size = LocalGridSettings.current.iconSize.dp, icon = { icon })
} }
} }
return@HandleHomeTransition null return@HandleHomeTransition null
@ -85,7 +85,7 @@ fun GridItem(modifier: Modifier = Modifier, item: SavableSearchable, showLabels:
.onGloballyPositioned { .onGloballyPositioned {
bounds = it.boundsInWindow() bounds = it.boundsInWindow()
}, },
size = LocalGridIconSize.current, size = LocalGridSettings.current.iconSize.dp,
badge = { badge }, badge = { badge },
icon = { icon }, icon = { icon },
onClick = { onClick = {

View File

@ -7,15 +7,15 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import de.mm20.launcher2.search.SavableSearchable import de.mm20.launcher2.search.SavableSearchable
import de.mm20.launcher2.ui.layout.BottomReversed import de.mm20.launcher2.ui.layout.BottomReversed
import de.mm20.launcher2.ui.locals.LocalGridColumns import de.mm20.launcher2.ui.locals.LocalGridSettings
import kotlin.math.ceil import kotlin.math.ceil
@Composable @Composable
fun SearchResultGrid( fun SearchResultGrid(
items: List<SavableSearchable>, items: List<SavableSearchable>,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
showLabels: Boolean = true, showLabels: Boolean = LocalGridSettings.current.showLabels,
columns: Int = LocalGridColumns.current, columns: Int = LocalGridSettings.current.columnCount,
reverse: Boolean = false reverse: Boolean = false
) { ) {
Column( Column(

View File

@ -33,7 +33,7 @@ import de.mm20.launcher2.ui.ktx.toDp
import de.mm20.launcher2.ui.ktx.toPixels import de.mm20.launcher2.ui.ktx.toPixels
import de.mm20.launcher2.ui.launcher.search.common.customattrs.CustomizeSearchableSheet import de.mm20.launcher2.ui.launcher.search.common.customattrs.CustomizeSearchableSheet
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
import de.mm20.launcher2.ui.locals.LocalGridIconSize import de.mm20.launcher2.ui.locals.LocalGridSettings
import de.mm20.launcher2.ui.locals.LocalSnackbarHostState import de.mm20.launcher2.ui.locals.LocalSnackbarHostState
import de.mm20.launcher2.ui.modifier.scale import de.mm20.launcher2.ui.modifier.scale
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -349,7 +349,7 @@ fun ContactItemGridPopup(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.scale( .scale(
1 - (1 - LocalGridIconSize.current / 48.dp) * (1 - animationProgress), 1 - (1 - LocalGridSettings.current.iconSize / 48f) * (1 - animationProgress),
transformOrigin = TransformOrigin(0f, 0f) transformOrigin = TransformOrigin(0f, 0f)
) )
.offset( .offset(

View File

@ -32,7 +32,7 @@ import de.mm20.launcher2.ui.ktx.toDp
import de.mm20.launcher2.ui.ktx.toPixels import de.mm20.launcher2.ui.ktx.toPixels
import de.mm20.launcher2.ui.launcher.search.common.customattrs.CustomizeSearchableSheet import de.mm20.launcher2.ui.launcher.search.common.customattrs.CustomizeSearchableSheet
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
import de.mm20.launcher2.ui.locals.LocalGridIconSize import de.mm20.launcher2.ui.locals.LocalGridSettings
import de.mm20.launcher2.ui.locals.LocalSnackbarHostState import de.mm20.launcher2.ui.locals.LocalSnackbarHostState
import de.mm20.launcher2.ui.modifier.scale import de.mm20.launcher2.ui.modifier.scale
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -321,7 +321,7 @@ fun FileItemGridPopup(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.scale( .scale(
1 - (1 - LocalGridIconSize.current / 48.dp) * (1 - animationProgress), 1 - (1 - LocalGridSettings.current.iconSize / 48f) * (1 - animationProgress),
transformOrigin = TransformOrigin(1f, 0f) transformOrigin = TransformOrigin(1f, 0f)
) )
.offset( .offset(

View File

@ -28,7 +28,7 @@ import de.mm20.launcher2.ui.ktx.toDp
import de.mm20.launcher2.ui.ktx.toPixels import de.mm20.launcher2.ui.ktx.toPixels
import de.mm20.launcher2.ui.launcher.search.common.customattrs.CustomizeSearchableSheet import de.mm20.launcher2.ui.launcher.search.common.customattrs.CustomizeSearchableSheet
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
import de.mm20.launcher2.ui.locals.LocalGridIconSize import de.mm20.launcher2.ui.locals.LocalGridSettings
import de.mm20.launcher2.ui.locals.LocalSnackbarHostState import de.mm20.launcher2.ui.locals.LocalSnackbarHostState
import de.mm20.launcher2.ui.modifier.scale import de.mm20.launcher2.ui.modifier.scale
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -267,7 +267,7 @@ fun ShortcutItemGridPopup(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.scale( .scale(
1 - (1 - LocalGridIconSize.current / 84.dp) * (1 - animationProgress), 1 - (1 - LocalGridSettings.current.iconSize / 84f) * (1 - animationProgress),
transformOrigin = TransformOrigin(1f, 0f) transformOrigin = TransformOrigin(1f, 0f)
) )
.offset( .offset(

View File

@ -7,6 +7,7 @@ import androidx.compose.ui.geometry.Size
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.navigation.NavController import androidx.navigation.NavController
import de.mm20.launcher2.preferences.Settings import de.mm20.launcher2.preferences.Settings
import de.mm20.launcher2.preferences.Settings.GridSettings
val LocalWindowSize = compositionLocalOf { Size(0f, 0f) } val LocalWindowSize = compositionLocalOf { Size(0f, 0f) }
@ -18,9 +19,7 @@ val LocalCardStyle = compositionLocalOf<Settings.CardSettings> { Settings.CardSe
val LocalFavoritesEnabled = compositionLocalOf { true } val LocalFavoritesEnabled = compositionLocalOf { true }
val LocalGridColumns = compositionLocalOf { 5 } val LocalGridSettings = compositionLocalOf { GridSettings.newBuilder().setColumnCount(5).setShowLabels(true).setIconSize(48).build() }
val LocalGridIconSize = compositionLocalOf { 48.dp }
val LocalSnackbarHostState = compositionLocalOf { SnackbarHostState() } val LocalSnackbarHostState = compositionLocalOf { SnackbarHostState() }