File tree Expand file tree Collapse file tree 5 files changed +19
-5
lines changed
app/src/androidTest/java/com/example/util/simpletimetracker
core/src/main/java/com/example/util/simpletimetracker/core
feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor Expand file tree Collapse file tree 5 files changed +19
-5
lines changed Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ import androidx.test.espresso.matcher.ViewMatchers.isNotChecked
1616import androidx.test.espresso.matcher.ViewMatchers.withId
1717import androidx.test.espresso.matcher.ViewMatchers.withText
1818import androidx.test.ext.junit.runners.AndroidJUnit4
19+ import com.example.util.simpletimetracker.core.extension.setWeekToFirstDay
1920import com.example.util.simpletimetracker.core.mapper.ColorMapper
2021import com.example.util.simpletimetracker.domain.model.DayOfWeek
2122import com.example.util.simpletimetracker.utils.BaseUiTest
@@ -571,7 +572,7 @@ class SettingsTest : BaseUiTest() {
571572 .apply {
572573 val recordDay = if (isTodaySunday) Calendar .MONDAY else Calendar .SUNDAY
573574 firstDayOfWeek = recordDay
574- set( Calendar . DAY_OF_WEEK , recordDay )
575+ setWeekToFirstDay( )
575576 set(Calendar .HOUR_OF_DAY , 15 )
576577 }
577578 testUtils.addRecord(
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ import androidx.test.espresso.matcher.ViewMatchers.withClassName
99import androidx.test.espresso.matcher.ViewMatchers.withId
1010import androidx.test.espresso.matcher.ViewMatchers.withText
1111import androidx.test.ext.junit.runners.AndroidJUnit4
12+ import com.example.util.simpletimetracker.core.extension.setWeekToFirstDay
1213import com.example.util.simpletimetracker.domain.model.DayOfWeek
1314import com.example.util.simpletimetracker.utils.BaseUiTest
1415import com.example.util.simpletimetracker.utils.NavUtils
@@ -695,7 +696,7 @@ class StatisticsRangesTest : BaseUiTest() {
695696 set(Calendar .MINUTE , 0 )
696697 set(Calendar .SECOND , 0 )
697698 set(Calendar .MILLISECOND , 0 )
698- set( Calendar . DAY_OF_WEEK , firstDayOfWeek )
699+ setWeekToFirstDay( )
699700 }
700701 val rangeStart = calendar.timeInMillis
701702 val rangeEnd = calendar.apply { add(Calendar .DATE , 6 ) }.timeInMillis
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ package com.example.util.simpletimetracker.core.extension
33import android.os.StrictMode
44import com.example.util.simpletimetracker.domain.model.Record
55import com.example.util.simpletimetracker.navigation.params.TypesFilterParams
6+ import java.util.Calendar
67
78inline fun <T , R > T.allowDiskWrite (block : T .() -> R ): R {
89 val oldPolicy = StrictMode .allowThreadDiskWrites()
@@ -18,4 +19,13 @@ fun Record.isNotFiltered(filter: TypesFilterParams): Boolean {
1819 .filterIsInstance<TypesFilterParams .FilteredRecordTag .Tagged >().map { it.id }) ||
1920 (tagId == 0L && typeId !in filter.filteredRecordTags
2021 .filterIsInstance<TypesFilterParams .FilteredRecordTag .Untagged >().map { it.typeId })
22+ }
23+
24+ fun Calendar.setWeekToFirstDay () {
25+ val currentTime = timeInMillis
26+ set(Calendar .DAY_OF_WEEK , firstDayOfWeek)
27+ // If went to future - go back a week
28+ if (timeInMillis > currentTime) {
29+ add(Calendar .DATE , - 7 )
30+ }
2131}
Original file line number Diff line number Diff line change 11package com.example.util.simpletimetracker.core.mapper
22
33import com.example.util.simpletimetracker.core.R
4+ import com.example.util.simpletimetracker.core.extension.setWeekToFirstDay
45import com.example.util.simpletimetracker.core.repo.ResourceRepo
56import com.example.util.simpletimetracker.domain.model.DayOfWeek
67import com.example.util.simpletimetracker.domain.model.RangeLength
@@ -308,7 +309,7 @@ class TimeMapper @Inject constructor(
308309 rangeEnd = calendar.apply { add(Calendar .DATE , 1 ) }.timeInMillis
309310 }
310311 RangeLength .WEEK -> {
311- calendar.set( Calendar . DAY_OF_WEEK , calendar.firstDayOfWeek )
312+ calendar.setWeekToFirstDay( )
312313 calendar.add(Calendar .DATE , shift * 7 )
313314 rangeStart = calendar.timeInMillis
314315 rangeEnd = calendar.apply { add(Calendar .DATE , 7 ) }.timeInMillis
@@ -386,7 +387,7 @@ class TimeMapper @Inject constructor(
386387 set(Calendar .MINUTE , 0 )
387388 set(Calendar .SECOND , 0 )
388389 set(Calendar .MILLISECOND , 0 )
389- set( Calendar . DAY_OF_WEEK , this .firstDayOfWeek )
390+ calendar.setWeekToFirstDay( )
390391 add(Calendar .DATE , weeksFromToday * 7 )
391392 }
392393 val rangeStart = calendar.timeInMillis
Original file line number Diff line number Diff line change 11package com.example.util.simpletimetracker.feature_statistics_detail.interactor
22
33import com.example.util.simpletimetracker.core.extension.isNotFiltered
4+ import com.example.util.simpletimetracker.core.extension.setWeekToFirstDay
45import com.example.util.simpletimetracker.core.interactor.TypesFilterInteractor
56import com.example.util.simpletimetracker.core.mapper.RangeMapper
67import com.example.util.simpletimetracker.core.mapper.TimeMapper
@@ -208,7 +209,7 @@ class StatisticsDetailChartInteractor @Inject constructor(
208209 set(Calendar .SECOND , 0 )
209210 set(Calendar .MILLISECOND , 0 )
210211 }
211- calendar.set( Calendar . DAY_OF_WEEK , calendar.firstDayOfWeek )
212+ calendar.setWeekToFirstDay( )
212213 calendar.add(Calendar .DATE , - shift * 7 )
213214
214215 val legend = timeMapper.formatShortMonth(calendar.timeInMillis)
You can’t perform that action at this time.
0 commit comments