Skip to content

Commit 2bb2153

Browse files
committed
refactor filtered color mapping
1 parent 9645efc commit 2bb2153

File tree

7 files changed

+96
-98
lines changed

7 files changed

+96
-98
lines changed

core/src/main/java/com/example/util/simpletimetracker/core/mapper/ActivityFilterViewDataMapper.kt

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@ class ActivityFilterViewDataMapper @Inject constructor(
2323
return ActivityFilterViewData(
2424
id = filter.id,
2525
name = filter.name,
26-
iconColor = mapFilterIconColor(
27-
selected = selected,
28-
isDarkTheme = isDarkTheme,
29-
),
3026
color = mapFilterColor(
3127
selected = selected,
3228
color = filter.color,
@@ -45,10 +41,6 @@ class ActivityFilterViewDataMapper @Inject constructor(
4541
return ActivityFilterViewData(
4642
id = filter.categoryId,
4743
name = filter.name,
48-
iconColor = mapFilterIconColor(
49-
selected = selected,
50-
isDarkTheme = isDarkTheme,
51-
),
5244
color = mapFilterColor(
5345
selected = selected,
5446
color = filter.color,
@@ -85,26 +77,15 @@ class ActivityFilterViewDataMapper @Inject constructor(
8577
)
8678
}
8779

88-
private fun mapFilterIconColor(
89-
selected: Boolean,
90-
isDarkTheme: Boolean,
91-
): Int {
92-
return if (selected) {
93-
colorMapper.toIconColor(isDarkTheme)
94-
} else {
95-
colorMapper.toFilteredIconColor(isDarkTheme)
96-
}
97-
}
98-
9980
private fun mapFilterColor(
10081
selected: Boolean,
10182
color: AppColor,
10283
isDarkTheme: Boolean,
10384
): Int {
104-
return if (selected) {
105-
colorMapper.mapToColorInt(color, isDarkTheme)
106-
} else {
107-
colorMapper.toFilteredColor(isDarkTheme)
108-
}
85+
return colorMapper.toFilteredColor(
86+
color = color,
87+
isDarkTheme = isDarkTheme,
88+
isFiltered = !selected,
89+
)
10990
}
11091
}

core/src/main/java/com/example/util/simpletimetracker/core/mapper/CategoryViewDataMapper.kt

Lines changed: 42 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.example.util.simpletimetracker.domain.base.ARCHIVED_BUTTON_ITEM_ID
66
import com.example.util.simpletimetracker.domain.base.UNCATEGORIZED_ITEM_ID
77
import com.example.util.simpletimetracker.domain.base.UNTRACKED_ITEM_ID
88
import com.example.util.simpletimetracker.domain.category.model.Category
9-
import com.example.util.simpletimetracker.domain.color.model.AppColor
109
import com.example.util.simpletimetracker.domain.record.model.RecordBase
1110
import com.example.util.simpletimetracker.domain.recordTag.model.RecordTag
1211
import com.example.util.simpletimetracker.domain.recordType.model.RecordType
@@ -37,8 +36,15 @@ class CategoryViewDataMapper @Inject constructor(
3736
return CategoryViewData.Category(
3837
id = category.id,
3938
name = category.name,
40-
iconColor = getTextColor(isDarkTheme, isFiltered),
41-
color = getColor(category.color, isDarkTheme, isFiltered),
39+
iconColor = colorMapper.toIconColor(
40+
isDarkTheme = isDarkTheme,
41+
isFiltered = isFiltered,
42+
),
43+
color = colorMapper.toFilteredColor(
44+
color = category.color,
45+
isDarkTheme = isDarkTheme,
46+
isFiltered = isFiltered,
47+
),
4248
)
4349
}
4450

@@ -50,15 +56,14 @@ class CategoryViewDataMapper @Inject constructor(
5056
id = UNCATEGORIZED_ITEM_ID,
5157
name = R.string.uncategorized_time_name
5258
.let(resourceRepo::getString),
53-
iconColor = getTextColor(
59+
iconColor = colorMapper.toIconColor(
60+
isDarkTheme = isDarkTheme,
61+
isFiltered = isFiltered,
62+
),
63+
color = colorMapper.toFilteredUntrackedColor(
5464
isDarkTheme = isDarkTheme,
5565
isFiltered = isFiltered,
5666
),
57-
color = if (isFiltered) {
58-
colorMapper.toFilteredColor(isDarkTheme)
59-
} else {
60-
colorMapper.toUntrackedColor(isDarkTheme)
61-
},
6267
)
6368
}
6469

@@ -70,15 +75,14 @@ class CategoryViewDataMapper @Inject constructor(
7075
id = UNTRACKED_ITEM_ID,
7176
name = R.string.untracked_time_name
7277
.let(resourceRepo::getString),
73-
iconColor = getTextColor(
78+
iconColor = colorMapper.toIconColor(
79+
isDarkTheme = isDarkTheme,
80+
isFiltered = isFiltered,
81+
),
82+
color = colorMapper.toFilteredUntrackedColor(
7483
isDarkTheme = isDarkTheme,
7584
isFiltered = isFiltered,
7685
),
77-
color = if (isFiltered) {
78-
colorMapper.toFilteredColor(isDarkTheme)
79-
} else {
80-
colorMapper.toUntrackedColor(isDarkTheme)
81-
},
8286
)
8387
}
8488

@@ -95,9 +99,16 @@ class CategoryViewDataMapper @Inject constructor(
9599
return CategoryViewData.Record.Tagged(
96100
id = tag.id,
97101
name = tag.name,
98-
iconColor = getTextColor(isDarkTheme, isFiltered),
102+
iconColor = colorMapper.toIconColor(
103+
isDarkTheme = isDarkTheme,
104+
isFiltered = isFiltered,
105+
),
99106
iconAlpha = colorMapper.toIconAlpha(icon, isFiltered),
100-
color = getColor(color, isDarkTheme, isFiltered),
107+
color = colorMapper.toFilteredColor(
108+
color = color,
109+
isDarkTheme = isDarkTheme,
110+
isFiltered = isFiltered,
111+
),
101112
icon = icon,
102113
)
103114
}
@@ -143,12 +154,14 @@ class CategoryViewDataMapper @Inject constructor(
143154
id = UNCATEGORIZED_ITEM_ID,
144155
name = R.string.change_record_untagged
145156
.let(resourceRepo::getString),
146-
iconColor = getTextColor(isDarkTheme, isFiltered),
147-
color = if (isFiltered) {
148-
colorMapper.toFilteredColor(isDarkTheme)
149-
} else {
150-
colorMapper.toUntrackedColor(isDarkTheme)
151-
},
157+
iconColor = colorMapper.toIconColor(
158+
isDarkTheme = isDarkTheme,
159+
isFiltered = isFiltered,
160+
),
161+
color = colorMapper.toFilteredUntrackedColor(
162+
isDarkTheme = isDarkTheme,
163+
isFiltered = isFiltered,
164+
),
152165
icon = RecordTypeIcon.Image(R.drawable.untagged),
153166
)
154167
}
@@ -162,15 +175,14 @@ class CategoryViewDataMapper @Inject constructor(
162175
name = R.string.untracked_time_name
163176
.let(resourceRepo::getString),
164177
icon = RecordTypeIcon.Image(R.drawable.unknown),
165-
iconColor = getTextColor(
178+
iconColor = colorMapper.toIconColor(
179+
isDarkTheme = isDarkTheme,
180+
isFiltered = isFiltered,
181+
),
182+
color = colorMapper.toFilteredUntrackedColor(
166183
isDarkTheme = isDarkTheme,
167184
isFiltered = isFiltered,
168185
),
169-
color = if (isFiltered) {
170-
colorMapper.toFilteredColor(isDarkTheme)
171-
} else {
172-
colorMapper.toUntrackedColor(isDarkTheme)
173-
},
174186
)
175187
}
176188

@@ -183,7 +195,7 @@ class CategoryViewDataMapper @Inject constructor(
183195
name = R.string.settings_archive
184196
.let(resourceRepo::getString),
185197
icon = RecordTypeIcon.Image(R.drawable.archive),
186-
iconColor = getTextColor(
198+
iconColor = colorMapper.toIconColor(
187199
isDarkTheme = isDarkTheme,
188200
isFiltered = false,
189201
),
@@ -248,31 +260,6 @@ class CategoryViewDataMapper @Inject constructor(
248260
)
249261
}
250262

251-
// TODO move to color mapper
252-
fun getTextColor(
253-
isDarkTheme: Boolean,
254-
isFiltered: Boolean,
255-
): Int {
256-
return if (isFiltered) {
257-
colorMapper.toFilteredIconColor(isDarkTheme)
258-
} else {
259-
colorMapper.toIconColor(isDarkTheme)
260-
}
261-
}
262-
263-
// TODO move to color mapper
264-
private fun getColor(
265-
color: AppColor,
266-
isDarkTheme: Boolean,
267-
isFiltered: Boolean,
268-
): Int {
269-
return if (isFiltered) {
270-
colorMapper.toFilteredColor(isDarkTheme)
271-
} else {
272-
colorMapper.mapToColorInt(color, isDarkTheme)
273-
}
274-
}
275-
276263
private fun map(type: TagType, isDarkTheme: Boolean): CategoryAddViewData {
277264
val name = when (type) {
278265
TagType.RECORD_TYPE -> R.string.categories_add_category

core/src/main/java/com/example/util/simpletimetracker/core/mapper/ChartFilterViewDataMapper.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ class ChartFilterViewDataMapper @Inject constructor(
1414
private val colorMapper: ColorMapper,
1515
private val resourceRepo: ResourceRepo,
1616
private val recordTypeCardSizeMapper: RecordTypeCardSizeMapper,
17-
private val categoryViewDataMapper: CategoryViewDataMapper,
1817
) {
1918

2019
fun mapToUntrackedItem(
@@ -27,15 +26,14 @@ class ChartFilterViewDataMapper @Inject constructor(
2726
name = R.string.untracked_time_name
2827
.let(resourceRepo::getString),
2928
iconId = RecordTypeIcon.Image(R.drawable.unknown),
30-
iconColor = categoryViewDataMapper.getTextColor(
29+
iconColor = colorMapper.toIconColor(
30+
isDarkTheme = isDarkTheme,
31+
isFiltered = UNTRACKED_ITEM_ID in typeIdsFiltered,
32+
),
33+
color = colorMapper.toFilteredUntrackedColor(
3134
isDarkTheme = isDarkTheme,
3235
isFiltered = UNTRACKED_ITEM_ID in typeIdsFiltered,
3336
),
34-
color = if (UNTRACKED_ITEM_ID in typeIdsFiltered) {
35-
colorMapper.toFilteredColor(isDarkTheme)
36-
} else {
37-
colorMapper.toUntrackedColor(isDarkTheme)
38-
},
3937
width = recordTypeCardSizeMapper.toCardWidth(numberOfCards),
4038
height = recordTypeCardSizeMapper.toCardHeight(numberOfCards),
4139
asRow = recordTypeCardSizeMapper.toCardAsRow(numberOfCards),

core/src/main/java/com/example/util/simpletimetracker/core/mapper/ColorMapper.kt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,17 @@ class ColorMapper @Inject constructor(
3737
}.let(resourceRepo::getColor)
3838
}
3939

40+
fun toIconColor(
41+
isDarkTheme: Boolean,
42+
isFiltered: Boolean,
43+
): Int {
44+
return if (isFiltered) {
45+
toFilteredIconColor(isDarkTheme)
46+
} else {
47+
toIconColor(isDarkTheme)
48+
}
49+
}
50+
4051
fun toIconAlpha(icon: RecordTypeIcon?, isFiltered: Boolean): Float {
4152
return if (icon is RecordTypeIcon.Text && isFiltered) {
4253
FILTERED_ICON_TEXT_ALPHA
@@ -53,6 +64,29 @@ class ColorMapper @Inject constructor(
5364
}.let(resourceRepo::getColor)
5465
}
5566

67+
fun toFilteredColor(
68+
color: AppColor,
69+
isDarkTheme: Boolean,
70+
isFiltered: Boolean,
71+
): Int {
72+
return if (isFiltered) {
73+
toFilteredColor(isDarkTheme)
74+
} else {
75+
mapToColorInt(color, isDarkTheme)
76+
}
77+
}
78+
79+
fun toFilteredUntrackedColor(
80+
isDarkTheme: Boolean,
81+
isFiltered: Boolean,
82+
): Int {
83+
return if (isFiltered) {
84+
toFilteredColor(isDarkTheme)
85+
} else {
86+
toUntrackedColor(isDarkTheme)
87+
}
88+
}
89+
5690
fun toFilteredIconColor(isDarkTheme: Boolean): Int {
5791
return if (isDarkTheme) {
5892
R.color.colorIconFilteredDark

core/src/main/java/com/example/util/simpletimetracker/core/mapper/RecordShortcutViewDataMapper.kt

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,15 @@ class RecordShortcutViewDataMapper @Inject constructor(
4040
val data = CategoryViewData.Record.Tagged(
4141
id = 0,
4242
name = name,
43-
iconColor = if (isFiltered) {
44-
colorMapper.toFilteredIconColor(isDarkTheme)
45-
} else {
46-
colorMapper.toIconColor(isDarkTheme)
47-
},
48-
color = if (isFiltered) {
49-
colorMapper.toFilteredColor(isDarkTheme)
50-
} else {
51-
colorMapper.mapToColorInt(recordType.color, isDarkTheme)
52-
},
43+
iconColor = colorMapper.toIconColor(
44+
isDarkTheme = isDarkTheme,
45+
isFiltered = isFiltered,
46+
),
47+
color = colorMapper.toFilteredColor(
48+
color = recordType.color,
49+
isDarkTheme = isDarkTheme,
50+
isFiltered = isFiltered,
51+
),
5352
icon = icon,
5453
iconAlpha = colorMapper.toIconAlpha(icon, isFiltered),
5554
// TODO show tag with alpha color like in record

features/feature_base_adapter/src/main/java/com/example/util/simpletimetracker/feature_base_adapter/activityFilter/ActivityFilterViewData.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
77
data class ActivityFilterViewData(
88
val id: Long,
99
val name: String,
10-
@ColorInt val iconColor: Int,
1110
@ColorInt val color: Int,
1211
val selected: Boolean,
1312
val type: ActivityFilterType,

features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/partialRestoreSelection/interactor/PartialRestoreSelectionViewDataInteractor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ class PartialRestoreSelectionViewDataInteractor @Inject constructor(
181181
CategoryViewData.Category(
182182
id = it.id,
183183
name = it.comment,
184-
iconColor = categoryViewDataMapper.getTextColor(
184+
iconColor = colorMapper.toIconColor(
185185
isDarkTheme = isDarkTheme,
186186
isFiltered = filtered,
187187
),

0 commit comments

Comments
 (0)