@@ -3,9 +3,10 @@ package com.example.util.simpletimetracker.core.interactor
33import com.example.util.simpletimetracker.core.mapper.CategoryViewDataMapper
44import com.example.util.simpletimetracker.core.mapper.CommonViewDataMapper
55import com.example.util.simpletimetracker.domain.extension.plusAssign
6- import com.example.util.simpletimetracker.domain.recordTag.interactor.GetSelectableTagsInteractor
76import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
7+ import com.example.util.simpletimetracker.domain.recordTag.interactor.GetSelectableTagsInteractor
88import com.example.util.simpletimetracker.domain.recordTag.interactor.RecordTagInteractor
9+ import com.example.util.simpletimetracker.domain.recordTag.model.RecordTag
910import com.example.util.simpletimetracker.domain.recordType.interactor.RecordTypeInteractor
1011import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
1112import com.example.util.simpletimetracker.feature_base_adapter.divider.DividerViewData
@@ -31,19 +32,23 @@ class RecordTagViewDataInteractor @Inject constructor(
3132 showUntaggedButton : Boolean ,
3233 showAllTagsButton : Boolean ,
3334 ): Result {
35+ fun List<RecordTag>.filterArchived (): List <RecordTag > {
36+ return if (showArchived) this else this .filterNot { it.archived }
37+ }
38+
3439 val isDarkTheme = prefsInteractor.getDarkMode()
40+ val allTags = recordTagInteractor.getAll().filterArchived()
3541 val recordTags = if (typeId != null ) {
3642 getSelectableTagsInteractor.execute(typeId)
3743 } else {
38- recordTagInteractor.getAll()
39- }
44+ allTags
45+ }.filterArchived()
4046 val types = recordTypeInteractor.getAll().associateBy { it.id }
41- val data = recordTags
42- .let { tags -> if (showArchived) tags else tags.filterNot { it.archived } }
47+ val hasMoreTags = recordTags.size != allTags.size
4348
44- return if (data .isNotEmpty()) {
45- val selected = data .filter { it.id in selectedTags }
46- val available = data .filter { it.id !in selectedTags }
49+ return if (recordTags .isNotEmpty()) {
50+ val selected = recordTags .filter { it.id in selectedTags }
51+ val available = recordTags .filter { it.id !in selectedTags }
4752
4853 val viewData = mutableListOf<ViewHolderType >()
4954
@@ -93,7 +98,7 @@ class RecordTagViewDataInteractor @Inject constructor(
9398 }
9499 }
95100
96- if (showAllTagsButton) {
101+ if (showAllTagsButton && hasMoreTags ) {
97102 viewData + = categoryViewDataMapper.mapToRecordTagShowAllItem(
98103 isDarkTheme = isDarkTheme,
99104 )
0 commit comments