diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/FavoritesPartProvider.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/FavoritesPartProvider.kt
index 98c7a8053..6e083e032 100644
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/FavoritesPartProvider.kt
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/widgets/clock/parts/FavoritesPartProvider.kt
@@ -38,15 +38,16 @@ class FavoritesPartProvider : PartProvider, KoinComponent {
it.columnCount
}
}.collectAsState(0)
+ val dockRows by uiSettings.dockRows.collectAsState(1)
val excludeCalendar by remember { widgetRepository.exists(CalendarWidget.Type) }.collectAsState(
true
)
- val favorites by remember(columns, excludeCalendar) {
+ val favorites by remember(columns, dockRows, excludeCalendar) {
favoritesService.getFavorites(
excludeTypes = if (excludeCalendar) listOf("calendar", "tag") else listOf("tag"),
minPinnedLevel = PinnedLevel.FrequentlyUsed,
- limit = columns
+ limit = columns * dockRows
)
}.collectAsState(emptyList())
diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreen.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreen.kt
index de896f097..9c070d6a6 100644
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreen.kt
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreen.kt
@@ -75,6 +75,7 @@ fun HomescreenSettingsScreen() {
val context = LocalContext.current
val dock by viewModel.dock.collectAsStateWithLifecycle(null)
+ val dockRows by viewModel.dockRows.collectAsStateWithLifecycle(1)
val fixedRotation by viewModel.fixedRotation.collectAsStateWithLifecycle(null)
val widgetsOnHomeScreen by viewModel.widgetsOnHomeScreen.collectAsStateWithLifecycle(null)
val editButton by viewModel.widgetEditButton.collectAsStateWithLifecycle(null)
@@ -123,6 +124,17 @@ fun HomescreenSettingsScreen() {
viewModel.setDock(it)
},
)
+ AnimatedVisibility(dock == true) {
+ SliderPreference(
+ title = stringResource(R.string.preference_clockwidget_dock_rows),
+ value = dockRows,
+ min = 1,
+ max = 4,
+ onValueChanged = {
+ viewModel.setDockRows(it)
+ }
+ )
+ }
SwitchPreference(
title = stringResource(R.string.preference_widgets_on_home_screen),
summary = stringResource(R.string.preference_widgets_on_home_screen_summary),
diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreenVM.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreenVM.kt
index fec61653d..e1cd58c2c 100644
--- a/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreenVM.kt
+++ b/app/ui/src/main/java/de/mm20/launcher2/ui/settings/homescreen/HomescreenSettingsScreenVM.kt
@@ -131,6 +131,13 @@ class HomescreenSettingsScreenVM(
uiSettings.setDock(dock)
}
+ val dockRows = uiSettings.dockRows
+ .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), 1)
+
+ fun setDockRows(rows: Int) {
+ uiSettings.setDockRows(rows)
+ }
+
val fixedRotation = uiSettings.orientation.map { it != ScreenOrientation.Auto }
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(), null)
diff --git a/core/i18n/src/main/res/values-cs/units.xml b/core/i18n/src/main/res/values-cs/units.xml
index c109cc901..05e0dc46d 100644
--- a/core/i18n/src/main/res/values-cs/units.xml
+++ b/core/i18n/src/main/res/values-cs/units.xml
@@ -380,4 +380,63 @@
- litrů
mL
+
+ - lžička (US)
+ - lžičky (US)
+ - lžiček (US)
+
+ gal (US)
+
+ - galon (US)
+ - galony (US)
+ - galonů (US)
+
+ pt (imp.)
+ pt (US)
+
+ - pint (US)
+ - pinty (US)
+ - pintů (US)
+
+ gal (imp.)
+ fl oz (US)
+
+ - pint (imperiální)
+ - pinty (imperiální)
+ - pintů (imperiálních)
+
+ fl oz (imp.)
+
+ - objemová unce (US)
+ - objemové unce (US)
+ - objemových uncí (US)
+
+ cup
+ pol. lž.
+ lž.
+
+ - cup (US)
+ - cupy (US)
+ - cupů (US)
+
+
+ - polévková lžíce (US)
+ - polévkové lžíce (US)
+ - polévkových lžic (US)
+
+
+ - galon (imperiální)
+ - galony (imperiální)
+ - galonů (imperiálních)
+
+
+ - yard krychlový
+ - yardy krychlové
+ - yardů krychlových
+
+
+ - objemová unce (imperiální)
+ - objemové unce (imperiální)
+ - objemových uncí (imperiálních)
+
\ No newline at end of file
diff --git a/core/i18n/src/main/res/values-de/strings.xml b/core/i18n/src/main/res/values-de/strings.xml
index 5d8dbeef5..21a2979c8 100644
--- a/core/i18n/src/main/res/values-de/strings.xml
+++ b/core/i18n/src/main/res/values-de/strings.xml
@@ -322,7 +322,8 @@
App-Shortcuts durchsuchen
Favoriten
Dock
- Die erste Zeile der Favoriten anzeigen
+ Favoriten im Dock anzeigen
+ Dock-Zeilen
Symbolgröße
Währungsrechner
Regelmäßig Wechselkurse herunterladen, um Währungen umzurechnen
diff --git a/core/i18n/src/main/res/values/strings.xml b/core/i18n/src/main/res/values/strings.xml
index 12b9fc2ae..f75da5768 100644
--- a/core/i18n/src/main/res/values/strings.xml
+++ b/core/i18n/src/main/res/values/strings.xml
@@ -598,7 +598,8 @@
Date
Show the current date
Dock
- Show the first row of pinned items
+ Show pinned items in dock
+ Dock rows
Media
Show media controls when there is an active media session
Battery
diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/LauncherSettingsData.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/LauncherSettingsData.kt
index e307f64b5..46f7fc776 100644
--- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/LauncherSettingsData.kt
+++ b/core/preferences/src/main/java/de/mm20/launcher2/preferences/LauncherSettingsData.kt
@@ -56,6 +56,7 @@ data class LauncherSettingsData internal constructor(
val clockWidgetAlignment: ClockWidgetAlignment = ClockWidgetAlignment.Bottom,
val homeScreenDock: Boolean = false,
+ val homeScreenDockRows: Int = 1,
val homeScreenWidgets: Boolean = false,
val favoritesEnabled: Boolean = true,
diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/ui/UiSettings.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/ui/UiSettings.kt
index 2849c7ae0..48c4808af 100644
--- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/ui/UiSettings.kt
+++ b/core/preferences/src/main/java/de/mm20/launcher2/preferences/ui/UiSettings.kt
@@ -357,6 +357,17 @@ class UiSettings internal constructor(
}
}
+ val dockRows
+ get() = launcherDataStore.data.map {
+ it.homeScreenDockRows
+ }.distinctUntilChanged()
+
+ fun setDockRows(rows: Int) {
+ launcherDataStore.update {
+ it.copy(homeScreenDockRows = rows)
+ }
+ }
+
val homeScreenWidgets
get() = launcherDataStore.data.map {
it.homeScreenWidgets