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.locals.LocalCardStyle
import de.mm20.launcher2.ui.locals.LocalFavoritesEnabled
import de.mm20.launcher2.ui.locals.LocalGridColumns
import de.mm20.launcher2.ui.locals.LocalGridIconSize
import de.mm20.launcher2.ui.locals.LocalGridSettings
import de.mm20.launcher2.widgets.WidgetRepository
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
@ -42,19 +41,14 @@ fun ProvideSettings(
) { a, b, c -> a || b || c }.distinctUntilChanged()
}.collectAsState(true)
val gridColumns by remember {
dataStore.data.map { it.grid.columnCount }.distinctUntilChanged()
}.collectAsState(5)
val gridIconSize by remember {
dataStore.data.map { it.grid.iconSize.dp }.distinctUntilChanged()
}.collectAsState(48.dp)
val gridSettings by remember {
dataStore.data.map { it.grid }.distinctUntilChanged()
}.collectAsState(Settings.GridSettings.newBuilder().setColumnCount(5).setShowLabels(true).setIconSize(48).build())
CompositionLocalProvider(
LocalCardStyle provides cardStyle,
LocalFavoritesEnabled provides favoritesEnabled,
LocalGridColumns provides gridColumns,
LocalGridIconSize provides gridIconSize,
LocalGridSettings provides gridSettings,
) {
ProvideIconShape(iconShape) {
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.rememberLazyDragAndDropGridState
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 kotlin.math.roundToInt
@ -169,7 +169,7 @@ fun EditFavoritesSheet(
@Composable
fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM) {
val items by viewModel.gridItems.observeAsState(emptyList())
val columns = LocalGridColumns.current
val columns = LocalGridSettings.current.columnCount
val availableTags by viewModel.availableTags.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.website.WebsiteItem
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.toImmutableList
import kotlin.math.ceil
@ -70,7 +70,7 @@ fun SearchColumn(
reverse: Boolean = false,
) {
val columns = LocalGridColumns.current
val columns = LocalGridSettings.current.columnCount
val context = LocalContext.current
val viewModel: SearchVM = viewModel()
@ -78,8 +78,6 @@ fun SearchColumn(
val favoritesVM: SearchFavoritesVM = viewModel()
val favorites by favoritesVM.favorites.collectAsState(emptyList())
val showLabels by viewModel.showLabels.observeAsState(true)
var showWorkProfileApps by remember { mutableStateOf(false) }
val hideFavs by viewModel.hideFavorites.observeAsState(true)
@ -119,7 +117,6 @@ fun SearchColumn(
GridResults(
items = favorites.toImmutableList(),
columns = columns,
showLabels = showLabels,
key = "favorites",
reverse = reverse,
before = if (favorites.isEmpty()) {
@ -205,7 +202,6 @@ fun SearchColumn(
GridResults(
items = if (showWorkProfileApps && workApps.isNotEmpty()) workApps.toImmutableList() else apps.toImmutableList(),
columns = columns,
showLabels = showLabels,
reverse = reverse,
key = "apps",
before = if (workApps.isNotEmpty()) {
@ -380,7 +376,6 @@ fun LazyListScope.GridResults(
items: ImmutableList<SavableSearchable>,
columns: Int,
reverse: Boolean,
showLabels: Boolean,
key: String,
before: (@Composable () -> Unit)? = null,
after: (@Composable () -> Unit)? = null,
@ -421,7 +416,6 @@ fun LazyListScope.GridResults(
(it * columns + columns).coerceAtMost(items.size)
),
columns = columns,
showLabels = showLabels,
)
}
}
@ -444,7 +438,7 @@ fun GridRow(
modifier: Modifier = Modifier,
items: ImmutableList<SavableSearchable>,
columns: Int,
showLabels: Boolean,
showLabels: Boolean = LocalGridSettings.current.showLabels,
) {
Row(

View File

@ -31,8 +31,6 @@ class SearchVM : ViewModel(), KoinComponent {
val searchQuery = MutableLiveData<String>("")
val isSearchEmpty = MutableLiveData(true)
val showLabels = dataStore.data.map { it.grid.showLabels }.asLiveData()
val appResults = MutableLiveData<List<LauncherApp>>(emptyList())
val workAppResults = MutableLiveData<List<LauncherApp>>(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.launcher.search.common.customattrs.CustomizeSearchableSheet
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.modifier.scale
import kotlinx.coroutines.launch
@ -361,7 +361,7 @@ fun AppItemGridPopup(
modifier = Modifier
.fillMaxWidth()
.scale(
1 - (1 - LocalGridIconSize.current / 84.dp) * (1 - animationProgress),
1 - (1 - LocalGridSettings.current.iconSize / 84f) * (1 - animationProgress),
transformOrigin = TransformOrigin(1f, 0f)
)
.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.OutlinedTagsInputField
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.launch
@ -158,7 +158,7 @@ fun CustomizeSearchableSheet(
val isSearching by viewModel.isSearchingIcons.observeAsState(initial = false)
val iconResults by viewModel.iconSearchResults.observeAsState(emptyList())
val columns = LocalGridColumns.current
val columns = LocalGridSettings.current.columnCount
LazyVerticalGrid(
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.transitions.HandleHomeTransition
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.LocalWindowSize
import kotlinx.coroutines.delay
@ -54,7 +54,7 @@ fun GridItem(modifier: Modifier = Modifier, item: SavableSearchable, showLabels:
var bounds by remember { mutableStateOf(Rect.Zero) }
Column(modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally) {
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 launchOnPress = !item.preferDetailsOverLaunch
@ -72,7 +72,7 @@ fun GridItem(modifier: Modifier = Modifier, item: SavableSearchable, showLabels:
return@HandleHomeTransition HomeTransitionParams(
bounds
) { _, _ ->
ShapedLauncherIcon(size = LocalGridIconSize.current, icon = { icon })
ShapedLauncherIcon(size = LocalGridSettings.current.iconSize.dp, icon = { icon })
}
}
return@HandleHomeTransition null
@ -85,7 +85,7 @@ fun GridItem(modifier: Modifier = Modifier, item: SavableSearchable, showLabels:
.onGloballyPositioned {
bounds = it.boundsInWindow()
},
size = LocalGridIconSize.current,
size = LocalGridSettings.current.iconSize.dp,
badge = { badge },
icon = { icon },
onClick = {

View File

@ -7,15 +7,15 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import de.mm20.launcher2.search.SavableSearchable
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
@Composable
fun SearchResultGrid(
items: List<SavableSearchable>,
modifier: Modifier = Modifier,
showLabels: Boolean = true,
columns: Int = LocalGridColumns.current,
showLabels: Boolean = LocalGridSettings.current.showLabels,
columns: Int = LocalGridSettings.current.columnCount,
reverse: Boolean = false
) {
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.launcher.search.common.customattrs.CustomizeSearchableSheet
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.modifier.scale
import kotlinx.coroutines.launch
@ -349,7 +349,7 @@ fun ContactItemGridPopup(
modifier = Modifier
.fillMaxWidth()
.scale(
1 - (1 - LocalGridIconSize.current / 48.dp) * (1 - animationProgress),
1 - (1 - LocalGridSettings.current.iconSize / 48f) * (1 - animationProgress),
transformOrigin = TransformOrigin(0f, 0f)
)
.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.launcher.search.common.customattrs.CustomizeSearchableSheet
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.modifier.scale
import kotlinx.coroutines.launch
@ -321,7 +321,7 @@ fun FileItemGridPopup(
modifier = Modifier
.fillMaxWidth()
.scale(
1 - (1 - LocalGridIconSize.current / 48.dp) * (1 - animationProgress),
1 - (1 - LocalGridSettings.current.iconSize / 48f) * (1 - animationProgress),
transformOrigin = TransformOrigin(1f, 0f)
)
.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.launcher.search.common.customattrs.CustomizeSearchableSheet
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.modifier.scale
import kotlinx.coroutines.launch
@ -267,7 +267,7 @@ fun ShortcutItemGridPopup(
modifier = Modifier
.fillMaxWidth()
.scale(
1 - (1 - LocalGridIconSize.current / 84.dp) * (1 - animationProgress),
1 - (1 - LocalGridSettings.current.iconSize / 84f) * (1 - animationProgress),
transformOrigin = TransformOrigin(1f, 0f)
)
.offset(

View File

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