Skip to content

Commit f1ca703

Browse files
committed
fix button to show all tags available when no more tags exist
1 parent 13005a7 commit f1ca703

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

core/src/main/java/com/example/util/simpletimetracker/core/interactor/RecordTagViewDataInteractor.kt

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ package com.example.util.simpletimetracker.core.interactor
33
import com.example.util.simpletimetracker.core.mapper.CategoryViewDataMapper
44
import com.example.util.simpletimetracker.core.mapper.CommonViewDataMapper
55
import com.example.util.simpletimetracker.domain.extension.plusAssign
6-
import com.example.util.simpletimetracker.domain.recordTag.interactor.GetSelectableTagsInteractor
76
import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
7+
import com.example.util.simpletimetracker.domain.recordTag.interactor.GetSelectableTagsInteractor
88
import com.example.util.simpletimetracker.domain.recordTag.interactor.RecordTagInteractor
9+
import com.example.util.simpletimetracker.domain.recordTag.model.RecordTag
910
import com.example.util.simpletimetracker.domain.recordType.interactor.RecordTypeInteractor
1011
import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
1112
import 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

Comments
 (0)