From 4c7f4282c7dedded344e0fb48b5342abfb6836c7 Mon Sep 17 00:00:00 2001 From: Diego Beraldin Date: Sat, 6 Jan 2024 11:20:35 +0100 Subject: [PATCH] fix: retaining custom sort type after navigation (#424) --- .../unit/communitydetail/CommunityDetailViewModel.kt | 4 +++- .../unit/postdetail/PostDetailViewModel.kt | 10 ++++++++-- .../unit/userdetail/UserDetailViewModel.kt | 5 ++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/unit/communitydetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/communitydetail/CommunityDetailViewModel.kt b/unit/communitydetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/communitydetail/CommunityDetailViewModel.kt index 155b5168c..bd3af5ea7 100644 --- a/unit/communitydetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/communitydetail/CommunityDetailViewModel.kt +++ b/unit/communitydetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/communitydetail/CommunityDetailViewModel.kt @@ -87,7 +87,6 @@ class CommunityDetailViewModel( blurNsfw = settings.blurNsfw, swipeActionsEnabled = settings.enableSwipeActions, doubleTapActionEnabled = settings.enableDoubleTapAction, - sortType = settings.defaultPostSortType.toSortType(), fullHeightImages = settings.fullHeightImages, voteFormat = settings.voteFormat, autoLoadImages = settings.autoLoadImages, @@ -148,6 +147,9 @@ class CommunityDetailViewModel( mvi.updateState { it.copy(currentUserId = user?.id ?: 0) } } if (mvi.uiState.value.posts.isEmpty()) { + val defaultPostSortType = + settingsRepository.currentSettings.value.defaultPostSortType + mvi.updateState { it.copy(sortType = defaultPostSortType.toSortType()) } refresh() } } diff --git a/unit/postdetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/postdetail/PostDetailViewModel.kt b/unit/postdetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/postdetail/PostDetailViewModel.kt index 465246e72..5978a1236 100644 --- a/unit/postdetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/postdetail/PostDetailViewModel.kt +++ b/unit/postdetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/postdetail/PostDetailViewModel.kt @@ -102,7 +102,6 @@ class PostDetailViewModel( it.copy( swipeActionsEnabled = settings.enableSwipeActions, doubleTapActionEnabled = settings.enableDoubleTapAction, - sortType = settings.defaultCommentSortType.toSortType(), voteFormat = settings.voteFormat, autoLoadImages = settings.autoLoadImages, fullHeightImages = settings.fullHeightImages, @@ -183,7 +182,14 @@ class PostDetailViewModel( if (mvi.uiState.value.comments.isEmpty()) { val sortTypes = getSortTypesUseCase.getTypesForComments(otherInstance = otherInstance) - mvi.updateState { it.copy(availableSortTypes = sortTypes) } + val defaultCommentSortType = + settingsRepository.currentSettings.value.defaultCommentSortType.toSortType() + mvi.updateState { + it.copy( + sortType = defaultCommentSortType, + availableSortTypes = sortTypes, + ) + } refresh() } } diff --git a/unit/userdetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/userdetail/UserDetailViewModel.kt b/unit/userdetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/userdetail/UserDetailViewModel.kt index 435a945c2..d6a2049a8 100644 --- a/unit/userdetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/userdetail/UserDetailViewModel.kt +++ b/unit/userdetail/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/unit/userdetail/UserDetailViewModel.kt @@ -93,7 +93,6 @@ class UserDetailViewModel( blurNsfw = settings.blurNsfw, swipeActionsEnabled = settings.enableSwipeActions, doubleTapActionEnabled = settings.enableDoubleTapAction, - sortType = settings.defaultPostSortType.toSortType(), voteFormat = settings.voteFormat, autoLoadImages = settings.autoLoadImages, fullHeightImages = settings.fullHeightImages, @@ -115,6 +114,10 @@ class UserDetailViewModel( } if (uiState.value.posts.isEmpty()) { + val defaultPostSortType = + settingsRepository.currentSettings.value.defaultPostSortType + mvi.updateState { it.copy(sortType = defaultPostSortType.toSortType()) } + withContext(Dispatchers.IO) { refresh(initial = true) }