Skip to content

Commit 77e3275

Browse files
committed
tag values statistics bar chart zoom axis
1 parent 29973ae commit 77e3275

42 files changed

Lines changed: 282 additions & 114 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

domain/src/main/java/com/example/util/simpletimetracker/domain/prefs/interactor/PrefsInteractor.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,18 +1291,18 @@ class PrefsInteractor @Inject constructor(
12911291
val modeInt = parts.getOrNull(1)?.toIntOrNull().orZero()
12921292
val multiplyInt = parts.getOrNull(2)?.toIntOrNull().orZero()
12931293
val fillInt = parts.getOrNull(3)?.toIntOrNull().orZero()
1294+
val zoomInt = parts.getOrNull(4)?.toIntOrNull().orZero()
12941295
val chartValueMode = when (modeInt) {
12951296
0 -> ChartValueMode.TOTAL
12961297
1 -> ChartValueMode.AVERAGE
12971298
else -> ChartValueMode.TOTAL
12981299
}
1299-
val multiplyDuration = multiplyInt == 1
1300-
val fillEmptyPeriods = fillInt == 1
13011300
tagId to StatisticsDetailTagValueSettings(
13021301
tagId = tagId,
13031302
chartValueMode = chartValueMode,
1304-
multiplyDuration = multiplyDuration,
1305-
fillEmptyPeriods = fillEmptyPeriods,
1303+
multiplyDuration = multiplyInt == 1,
1304+
fillEmptyPeriods = fillInt == 1,
1305+
yAxisZoomed = zoomInt == 1,
13061306
)
13071307
}
13081308
}?.toMap().orEmpty()
@@ -1325,6 +1325,8 @@ class PrefsInteractor @Inject constructor(
13251325
append(if (settings.multiplyDuration) 1 else 0)
13261326
append(STATISTICS_DETAIL_TAG_VALUE_DELIMITER)
13271327
append(if (settings.fillEmptyPeriods) 1 else 0)
1328+
append(STATISTICS_DETAIL_TAG_VALUE_DELIMITER)
1329+
append(if (settings.yAxisZoomed) 1 else 0)
13281330
}
13291331
}.toSet()
13301332
}

domain/src/main/java/com/example/util/simpletimetracker/domain/statistics/model/StatisticsDetailTagValueSettings.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ data class StatisticsDetailTagValueSettings(
55
val chartValueMode: ChartValueMode,
66
val multiplyDuration: Boolean,
77
val fillEmptyPeriods: Boolean,
8+
val yAxisZoomed: Boolean,
89
) {
910

1011
companion object {
@@ -14,6 +15,7 @@ data class StatisticsDetailTagValueSettings(
1415
chartValueMode = ChartValueMode.TOTAL,
1516
multiplyDuration = false,
1617
fillEmptyPeriods = false,
18+
yAxisZoomed = false,
1719
)
1820
}
1921
}

features/feature_settings/api/src/main/java/com/example/util/simpletimetracker/feature_settings/api/SettingsBlock.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,5 @@ enum class SettingsBlock {
156156
StatisticsTagValuesChartValueMode,
157157
StatisticsTagValuesMultiplyDuration,
158158
StatisticsTagValuesFillEmptyPeriods,
159+
StatisticsTagValuesZoomYAxis,
159160
}

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/adapter/StatisticsDetailBarChartAdapterDelegate.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ fun createStatisticsDetailBarChartAdapterDelegate(
2828
selectedBarPosition = viewData.selectedBarPosition,
2929
animate = viewData.animate.getValue().orFalse(),
3030
)
31+
setYAxisZoomed(viewData.yAxisZoomed)
3132
setLegendTextSuffix(viewData.legendSuffix)
3233
shouldAddLegendToSelectedBar(viewData.addLegendToSelectedBar)
3334
shouldDrawHorizontalLegends(viewData.shouldDrawHorizontalLegends)

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailDataDistributionInteractor.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ class StatisticsDetailDataDistributionInteractor @Inject constructor(
304304
showSelectedBarOnStart = false,
305305
selectedBarPosition = selectedBarPosition,
306306
goalValue = 0f,
307+
yAxisZoomed = false,
307308
useSingleColor = true,
308309
drawRoundCaps = true,
309310
animate = OneShotValue(animate),

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailTagValueInteractor.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class StatisticsDetailTagValueInteractor @Inject constructor(
4141
currentChartValueMode: ChartValueMode,
4242
multiplyDuration: Boolean,
4343
fillEmptyPeriods: Boolean,
44+
yAxisZoomed: Boolean,
4445
rangeLength: RangeLength,
4546
rangePosition: Int,
4647
): StatisticsDetailTagValuesCompositeViewData = withContext(Dispatchers.Default) {
@@ -121,6 +122,7 @@ class StatisticsDetailTagValueInteractor @Inject constructor(
121122
appliedChartLength = compositeData.appliedChartLength,
122123
chartMode = chartMode,
123124
chartValueMode = currentChartValueMode,
125+
yAxisZoomed = yAxisZoomed,
124126
valueSuffix = valuedTag.valueSuffix,
125127
durationFormat = durationFormat,
126128
showSeconds = showSeconds,

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/mapper/StatisticsDetailGoalsViewDataMapper.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ class StatisticsDetailGoalsViewDataMapper @Inject constructor(
123123
goal = 0, // Don't show goal on goal graph.
124124
rangeLength = rangeLength,
125125
chartMode = chartMode,
126+
yAxisZoomed = false,
126127
showSelectedBarOnStart = true,
127128
useSingleColor = false,
128129
drawRoundCaps = true,

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/mapper/StatisticsDetailTagValuesViewDataMapper.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class StatisticsDetailTagValuesViewDataMapper @Inject constructor(
3636
appliedChartLength: ChartLength,
3737
chartMode: ChartMode.TAG_VALUE,
3838
chartValueMode: ChartValueMode,
39+
yAxisZoomed: Boolean,
3940
valueSuffix: String,
4041
durationFormat: DurationFormat,
4142
showSeconds: Boolean,
@@ -48,6 +49,7 @@ class StatisticsDetailTagValuesViewDataMapper @Inject constructor(
4849
goal = 0, // Don't show goal.
4950
rangeLength = rangeLength,
5051
chartMode = chartMode,
52+
yAxisZoomed = yAxisZoomed,
5153
showSelectedBarOnStart = true,
5254
useSingleColor = true,
5355
drawRoundCaps = true,

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/mapper/StatisticsDetailViewDataMapper.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ class StatisticsDetailViewDataMapper @Inject constructor(
311311
goal = goalValue,
312312
rangeLength = rangeLength,
313313
chartMode = chartMode,
314+
yAxisZoomed = false,
314315
showSelectedBarOnStart = true,
315316
useSingleColor = !chartIsSplitByActivity,
316317
drawRoundCaps = !chartIsSplitByActivity,
@@ -320,6 +321,7 @@ class StatisticsDetailViewDataMapper @Inject constructor(
320321
goal = compareGoalValue,
321322
rangeLength = rangeLength,
322323
chartMode = chartMode,
324+
yAxisZoomed = false,
323325
showSelectedBarOnStart = false,
324326
useSingleColor = !chartComparisonIsSplitByActivity,
325327
drawRoundCaps = !chartComparisonIsSplitByActivity,
@@ -386,6 +388,7 @@ class StatisticsDetailViewDataMapper @Inject constructor(
386388
showSelectedBarOnStart = false,
387389
selectedBarPosition = null,
388390
goalValue = 0f,
391+
yAxisZoomed = false,
389392
drawRoundCaps = true,
390393
useSingleColor = true,
391394
animate = OneShotValue(true),
@@ -438,6 +441,7 @@ class StatisticsDetailViewDataMapper @Inject constructor(
438441
showSelectedBarOnStart = false,
439442
selectedBarPosition = null,
440443
goalValue = 0f,
444+
yAxisZoomed = false,
441445
useSingleColor = true,
442446
drawRoundCaps = true,
443447
animate = OneShotValue(true),
@@ -470,6 +474,7 @@ class StatisticsDetailViewDataMapper @Inject constructor(
470474
showSelectedBarOnStart = false,
471475
selectedBarPosition = null,
472476
goalValue = 0f,
477+
yAxisZoomed = false,
473478
useSingleColor = true,
474479
drawRoundCaps = true,
475480
animate = OneShotValue(true),
@@ -526,6 +531,7 @@ class StatisticsDetailViewDataMapper @Inject constructor(
526531
showSelectedBarOnStart = false,
527532
selectedBarPosition = null,
528533
goalValue = 0f,
534+
yAxisZoomed = false,
529535
useSingleColor = true,
530536
drawRoundCaps = true,
531537
animate = OneShotValue(true),
@@ -723,6 +729,7 @@ class StatisticsDetailViewDataMapper @Inject constructor(
723729
goal: Long,
724730
rangeLength: RangeLength,
725731
chartMode: ChartMode,
732+
yAxisZoomed: Boolean,
726733
showSelectedBarOnStart: Boolean,
727734
useSingleColor: Boolean,
728735
drawRoundCaps: Boolean,
@@ -768,6 +775,7 @@ class StatisticsDetailViewDataMapper @Inject constructor(
768775
showSelectedBarOnStart = showSelectedBarOnStart,
769776
selectedBarPosition = null,
770777
goalValue = formatInterval(goal),
778+
yAxisZoomed = yAxisZoomed,
771779
useSingleColor = useSingleColor,
772780
drawRoundCaps = drawRoundCaps,
773781
animate = OneShotValue(true),

features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/settings/interactor/StatisticsTagValuesSettingsViewDataInteractor.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ class StatisticsTagValuesSettingsViewDataInteractor @Inject constructor(
3737
title = resourceRepo.getString(R.string.statistics_detail_tag_values_fill_empty_periods),
3838
subtitle = "",
3939
isChecked = settings.fillEmptyPeriods,
40+
backgroundIsVisible = false,
41+
),
42+
SettingsCheckboxViewData(
43+
block = SettingsBlock.StatisticsTagValuesZoomYAxis,
44+
title = resourceRepo.getString(R.string.statistics_detail_tag_values_zoom_y_axis),
45+
subtitle = "",
46+
isChecked = settings.yAxisZoomed,
4047
dividerIsVisible = false,
4148
backgroundIsVisible = false,
4249
),

0 commit comments

Comments
 (0)