Skip to content

Commit f885312

Browse files
committed
add goal navigation keeping range and shift
1 parent a161496 commit f885312

File tree

11 files changed

+36
-13
lines changed

11 files changed

+36
-13
lines changed

app/src/androidTest/java/com/example/util/simpletimetracker/GoalsTabTest.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ import com.example.util.simpletimetracker.utils.NavUtils
3434
import com.example.util.simpletimetracker.utils.checkViewIsDisplayed
3535
import com.example.util.simpletimetracker.utils.clickOnCurrentDate
3636
import com.example.util.simpletimetracker.utils.clickOnCurrentSelectedDate
37-
import com.example.util.simpletimetracker.utils.clickOnNextDate
38-
import com.example.util.simpletimetracker.utils.clickOnPrevDate
3937
import com.example.util.simpletimetracker.utils.clickOnView
4038
import com.example.util.simpletimetracker.utils.clickOnViewWithId
4139
import com.example.util.simpletimetracker.utils.clickOnViewWithText

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,13 @@ class GetStatisticsDetailRangeInteractor @Inject constructor(
1010
private val prefsInteractor: PrefsInteractor,
1111
) {
1212

13-
suspend fun execute(): RangeLengthParams {
14-
return getRangeLength().toParams()
15-
}
16-
17-
private suspend fun getRangeLength(): RangeLength {
13+
suspend fun execute(
14+
overrideStatisticsRange: RangeLength? = null,
15+
): RangeLengthParams {
1816
return if (prefsInteractor.getKeepStatisticsRange()) {
19-
prefsInteractor.getStatisticsRange()
17+
overrideStatisticsRange ?: prefsInteractor.getStatisticsRange()
2018
} else {
2119
prefsInteractor.getStatisticsDetailRange()
22-
}
20+
}.toParams()
2321
}
2422
}

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import com.example.util.simpletimetracker.domain.statistics.model.ChartFilterTyp
1313
import com.example.util.simpletimetracker.domain.recordType.model.RecordTypeGoal
1414
import com.example.util.simpletimetracker.domain.record.model.RecordsFilter
1515
import com.example.util.simpletimetracker.domain.recordTag.interactor.RecordTagInteractor
16+
import com.example.util.simpletimetracker.domain.statistics.model.RangeLength
1617
import com.example.util.simpletimetracker.feature_views.viewData.RecordTypeIcon
1718
import com.example.util.simpletimetracker.navigation.Router
1819
import com.example.util.simpletimetracker.navigation.params.screen.StatisticsDetailParams
@@ -36,6 +37,7 @@ class StatisticsDetailNavigationInteractor @Inject constructor(
3637
transitionName: String,
3738
filterType: ChartFilterType,
3839
shift: Int,
40+
overrideStatisticsRange: RangeLength?,
3941
sharedElements: Map<Any, String>,
4042
itemId: Long,
4143
itemName: String,
@@ -49,7 +51,7 @@ class StatisticsDetailNavigationInteractor @Inject constructor(
4951
filterType = filterType,
5052
selectedId = itemId,
5153
).let(::listOf).map(RecordsFilter::toParams),
52-
range = getStatisticsDetailRangeInteractor.execute(),
54+
range = getStatisticsDetailRangeInteractor.execute(overrideStatisticsRange),
5355
shift = shift,
5456
preview = StatisticsDetailParams.Preview(
5557
name = itemName,
@@ -64,6 +66,7 @@ class StatisticsDetailNavigationInteractor @Inject constructor(
6466
suspend fun navigateByGoal(
6567
goalId: Long,
6668
shift: Int,
69+
range: RangeLength?,
6770
) {
6871
val goal = recordTypeGoalInteractor.get(goalId) ?: return
6972
val isDarkTheme = prefsInteractor.getDarkMode()
@@ -75,6 +78,7 @@ class StatisticsDetailNavigationInteractor @Inject constructor(
7578
transitionName = "",
7679
filterType = ChartFilterType.ACTIVITY,
7780
shift = shift,
81+
overrideStatisticsRange = range,
7882
sharedElements = emptyMap(),
7983
itemId = type.id,
8084
itemName = type.name,
@@ -91,6 +95,7 @@ class StatisticsDetailNavigationInteractor @Inject constructor(
9195
transitionName = "",
9296
filterType = ChartFilterType.CATEGORY,
9397
shift = shift,
98+
overrideStatisticsRange = range,
9499
sharedElements = emptyMap(),
95100
itemId = category.id,
96101
itemName = category.name,
@@ -108,6 +113,7 @@ class StatisticsDetailNavigationInteractor @Inject constructor(
108113
transitionName = "",
109114
filterType = ChartFilterType.RECORD_TAG,
110115
shift = shift,
116+
overrideStatisticsRange = range,
111117
sharedElements = emptyMap(),
112118
itemId = tag.id,
113119
itemName = tag.name,

features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/viewModel/ChangeCategoryViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ class ChangeCategoryViewModel @Inject constructor(
185185
transitionName = "",
186186
filterType = ChartFilterType.CATEGORY,
187187
shift = 0,
188+
overrideStatisticsRange = null,
188189
sharedElements = emptyMap(),
189190
itemId = categoryId,
190191
itemName = preview.name,

features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ class ChangeRecordViewModel @Inject constructor(
127127
transitionName = "",
128128
filterType = ChartFilterType.ACTIVITY,
129129
shift = 0,
130+
overrideStatisticsRange = null,
130131
sharedElements = emptyMap(),
131132
itemId = itemId,
132133
itemName = preview.recordPreview.name,

features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/viewModel/ChangeRecordTagViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ class ChangeRecordTagViewModel @Inject constructor(
309309
transitionName = "",
310310
filterType = ChartFilterType.RECORD_TAG,
311311
shift = 0,
312+
overrideStatisticsRange = null,
312313
sharedElements = emptyMap(),
313314
itemId = recordTagId,
314315
itemName = preview.name,

features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/viewModel/ChangeRecordTypeViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ class ChangeRecordTypeViewModel @Inject constructor(
266266
transitionName = "",
267267
filterType = ChartFilterType.ACTIVITY,
268268
shift = 0,
269+
overrideStatisticsRange = null,
269270
sharedElements = emptyMap(),
270271
itemId = recordTypeId,
271272
itemName = preview.name,

features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/viewModel/ChangeRunningRecordViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ class ChangeRunningRecordViewModel @Inject constructor(
131131
transitionName = "",
132132
filterType = ChartFilterType.ACTIVITY,
133133
shift = 0,
134+
overrideStatisticsRange = null,
134135
sharedElements = emptyMap(),
135136
itemId = newTypeId,
136137
itemName = preview.name,

features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordQuickActions/viewModel/RecordQuickActionsViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ class RecordQuickActionsViewModel @Inject constructor(
123123
transitionName = "",
124124
filterType = ChartFilterType.ACTIVITY,
125125
shift = 0,
126+
overrideStatisticsRange = null,
126127
sharedElements = emptyMap(),
127128
itemId = itemId,
128129
itemName = preview.name,

features/feature_goals/src/main/java/com/example/util/simpletimetracker/feature_goals/viewModel/GoalsViewModel.kt

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ import com.example.util.simpletimetracker.core.extension.shiftTimeStamp
1212
import com.example.util.simpletimetracker.core.interactor.StatisticsDetailNavigationInteractor
1313
import com.example.util.simpletimetracker.core.mapper.TimeMapper
1414
import com.example.util.simpletimetracker.core.model.NavigationTab
15+
import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
16+
import com.example.util.simpletimetracker.domain.recordType.extension.toRangeLength
17+
import com.example.util.simpletimetracker.domain.recordType.interactor.RecordTypeGoalInteractor
18+
import com.example.util.simpletimetracker.domain.statistics.model.RangeLength
1519
import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType
1620
import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData
1721
import com.example.util.simpletimetracker.feature_base_adapter.statisticsGoal.StatisticsGoalViewData
1822
import com.example.util.simpletimetracker.feature_goals.interactor.GoalsViewDataInteractor
19-
import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
20-
import com.example.util.simpletimetracker.domain.statistics.model.RangeLength
2123
import com.example.util.simpletimetracker.navigation.Router
2224
import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams
2325
import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType
@@ -36,6 +38,7 @@ class GoalsViewModel @Inject constructor(
3638
private val router: Router,
3739
private val prefsInteractor: PrefsInteractor,
3840
private val timeMapper: TimeMapper,
41+
private val recordTypeGoalInteractor: RecordTypeGoalInteractor,
3942
val dateSelectorViewModelDelegate: DateSelectorViewModelDelegate,
4043
) : ViewModel() {
4144

@@ -76,9 +79,19 @@ class GoalsViewModel @Inject constructor(
7679
}
7780

7881
fun onGoalClick(item: StatisticsGoalViewData) = viewModelScope.launch {
82+
val goal = recordTypeGoalInteractor.get(item.id) ?: return@launch
83+
val rangeShift = if (prefsInteractor.getKeepStatisticsRange()) {
84+
goalsViewDataInteractor.getRangeShift(
85+
dayShift = currentShift,
86+
goalRange = goal.range,
87+
)
88+
} else {
89+
0
90+
}
7991
statisticsDetailNavigationInteractor.navigateByGoal(
8092
goalId = item.id,
81-
shift = 0, // TODO GOAL pass correct shift and range?
93+
shift = rangeShift,
94+
range = goal.range.toRangeLength() ?: return@launch,
8295
)
8396
}
8497

0 commit comments

Comments
 (0)