From 92fa92ff509533f6b4b664a613b4353844530f36 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Fri, 21 Apr 2023 15:03:33 +0200 Subject: [PATCH] Change icon and badge stateIn behavior from WhileSubscriped to Lazy --- .../launcher2/ui/launcher/search/common/SearchableItemVM.kt | 4 ++-- .../mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/SearchableItemVM.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/SearchableItemVM.kt index 718ae26b..9ce4d66b 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/SearchableItemVM.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/SearchableItemVM.kt @@ -78,11 +78,11 @@ class SearchableItemVM : ListItemViewModel(), KoinComponent { val badge = searchable.flatMapLatest { if (it == null) emptyFlow() else badgeService.getBadge(it) - }.stateIn(viewModelScope, SharingStarted.WhileSubscribed(), null) + }.stateIn(viewModelScope, SharingStarted.Lazily, null) val icon = searchable.combine(iconSize) { sh, sz -> sh to sz }.flatMapLatest { (s, size) -> if (s == null || size == 0) emptyFlow() else iconService.getIcon(s, size) - }.stateIn(viewModelScope, SharingStarted.WhileSubscribed(), null) + }.stateIn(viewModelScope, SharingStarted.Lazily, null) val tags = searchable.flatMapLatest { if (it == null) emptyFlow() else tagsService.getTags(it) diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt index 4e7f0ef3..66c5e17e 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/common/grid/GridItem.kt @@ -88,7 +88,7 @@ fun GridItem( var bounds by remember { mutableStateOf(Rect.Zero) } Column(modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally) { - val badge by remember(item.key) { viewModel.badge }.collectAsStateWithLifecycle() + val badge by viewModel.badge.collectAsStateWithLifecycle() val icon by viewModel.icon.collectAsStateWithLifecycle() val launchOnPress = !item.preferDetailsOverLaunch