Fix favorites widget not remembering tags expanded state

Fix #892
This commit is contained in:
MM20 2024-06-28 13:13:55 +02:00
parent 9705f43228
commit 4a51da1460
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -1,5 +1,6 @@
package de.mm20.launcher2.ui.launcher.widgets.favorites package de.mm20.launcher2.ui.launcher.widgets.favorites
import androidx.lifecycle.viewModelScope
import de.mm20.launcher2.preferences.ui.GridSettings import de.mm20.launcher2.preferences.ui.GridSettings
import de.mm20.launcher2.preferences.ui.UiSettings import de.mm20.launcher2.preferences.ui.UiSettings
import de.mm20.launcher2.services.widgets.WidgetsService import de.mm20.launcher2.services.widgets.WidgetsService
@ -7,6 +8,8 @@ import de.mm20.launcher2.ui.common.FavoritesVM
import de.mm20.launcher2.widgets.FavoritesWidget import de.mm20.launcher2.widgets.FavoritesWidget
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn
import org.koin.core.component.inject import org.koin.core.component.inject
class FavoritesWidgetVM : FavoritesVM() { class FavoritesWidgetVM : FavoritesVM() {
@ -15,8 +18,8 @@ class FavoritesWidgetVM : FavoritesVM() {
private val uiSettings: UiSettings by inject() private val uiSettings: UiSettings by inject()
override val tagsExpanded: MutableStateFlow<Boolean> = MutableStateFlow(false)
private val widget = MutableStateFlow<FavoritesWidget?>(null) private val widget = MutableStateFlow<FavoritesWidget?>(null)
override val tagsExpanded = widget.map { it?.config?.tagsMultiline == true }
private val isTopWidget = widgetsService.isFavoritesWidgetFirst() private val isTopWidget = widgetsService.isFavoritesWidgetFirst()
private val clockWidgetFavSlots = private val clockWidgetFavSlots =
@ -40,7 +43,6 @@ class FavoritesWidgetVM : FavoritesVM() {
} }
override fun setTagsExpanded(expanded: Boolean) { override fun setTagsExpanded(expanded: Boolean) {
this.tagsExpanded.value = expanded
val widget = this.widget.value ?: return val widget = this.widget.value ?: return
widgetsService.updateWidget( widgetsService.updateWidget(
widget.copy( widget.copy(
@ -50,7 +52,7 @@ class FavoritesWidgetVM : FavoritesVM() {
} }
fun updateWidget(widget: FavoritesWidget) { fun updateWidget(widget: FavoritesWidget) {
tagsExpanded.value = widget.config.tagsMultiline this.widget.value = widget
} }
} }