Skip to content

Commit fb0b989

Browse files
committed
fix some retroactive mode errors
1 parent c807aff commit fb0b989

File tree

6 files changed

+43
-21
lines changed

6 files changed

+43
-21
lines changed

buildSrc/src/main/kotlin/com/example/util/simpletimetracker/Base.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ object Base {
55
const val namespace = "com.example.util.simpletimetracker"
66

77
// Raise by 2 to account for wear version code.
8-
const val versionCode = 79
8+
const val versionCode = 81
99
const val versionName = "1.46"
1010
const val minSDK = 21
1111
const val currentSDK = 34

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,9 @@ class AddRunningRecordMediator @Inject constructor(
132132
}
133133
// Show goal count only on timer start, otherwise it would show on change also.
134134
notificationGoalCountInteractor.checkAndShow(typeId)
135-
pomodoroStartInteractor.checkAndStart(typeId)
135+
if (!retroactiveTrackingMode) {
136+
pomodoroStartInteractor.checkAndStart(typeId)
137+
}
136138
}
137139

138140
// Used separately only for changing running activity,

domain/src/test/java/com/example/util/simpletimetracker/domain/mapper/AddRunningRecordMediatorTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,6 @@ class AddRunningRecordMediatorTest {
321321
)
322322
}
323323

324-
325324
@Test
326325
fun defaultTag(): Unit = runBlocking {
327326
// Given

features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/activitySwitch/interactor/NotificationActivitySwitchInteractorImpl.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.example.util.simpletimetracker.domain.interactor.GetSelectableTagsInt
1010
import com.example.util.simpletimetracker.domain.interactor.NotificationActivitySwitchInteractor
1111
import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor
1212
import com.example.util.simpletimetracker.domain.interactor.RecordInteractor
13+
import com.example.util.simpletimetracker.domain.interactor.RecordTagInteractor
1314
import com.example.util.simpletimetracker.domain.interactor.RecordTypeGoalInteractor
1415
import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor
1516
import com.example.util.simpletimetracker.domain.interactor.RunningRecordInteractor
@@ -19,6 +20,7 @@ import com.example.util.simpletimetracker.feature_notification.R
1920
import com.example.util.simpletimetracker.feature_notification.activitySwitch.manager.NotificationActivitySwitchManager
2021
import com.example.util.simpletimetracker.feature_notification.activitySwitch.manager.NotificationActivitySwitchParams
2122
import com.example.util.simpletimetracker.feature_notification.activitySwitch.manager.NotificationControlsParams
23+
import com.example.util.simpletimetracker.feature_notification.core.NotificationCommonMapper
2224
import com.example.util.simpletimetracker.feature_views.viewData.RecordTypeIcon
2325
import javax.inject.Inject
2426

@@ -31,12 +33,14 @@ class NotificationActivitySwitchInteractorImpl @Inject constructor(
3133
private val recordTypeInteractor: RecordTypeInteractor,
3234
private val recordTypeGoalInteractor: RecordTypeGoalInteractor,
3335
private val runningRecordInteractor: RunningRecordInteractor,
36+
private val recordTagInteractor: RecordTagInteractor,
3437
private val getCurrentRecordsDurationInteractor: GetCurrentRecordsDurationInteractor,
3538
private val timeMapper: TimeMapper,
3639
private val filterGoalsByDayOfWeekInteractor: FilterGoalsByDayOfWeekInteractor,
3740
private val getSelectableTagsInteractor: GetSelectableTagsInteractor,
3841
private val getNotificationActivitySwitchControlsInteractor: GetNotificationActivitySwitchControlsInteractor,
3942
private val recordInteractor: RecordInteractor,
43+
private val notificationCommonMapper: NotificationCommonMapper,
4044
) : NotificationActivitySwitchInteractor {
4145

4246
override suspend fun updateNotification(
@@ -82,6 +86,7 @@ class NotificationActivitySwitchInteractorImpl @Inject constructor(
8286
emptyList()
8387
}
8488
val recordTypes = recordTypeInteractor.getAll().associateBy(RecordType::id)
89+
val recordTags = recordTagInteractor.getAll()
8590
val prevRecord = if (retroactiveTrackingModeEnabled) {
8691
// TODO several previous?
8792
recordInteractor.getAllPrev(timeStarted = System.currentTimeMillis())
@@ -128,9 +133,12 @@ class NotificationActivitySwitchInteractorImpl @Inject constructor(
128133
hint = resourceRepo.getString(R.string.retroactive_tracking_mode_hint)
129134
icon = prevRecordType.icon.let(iconMapper::mapIcon)
130135
color = colorMapper.mapToColorInt(prevRecordType.color, isDarkTheme)
131-
title = resourceRepo.getString(R.string.statistics_detail_last_record) +
132-
" - " +
133-
prevRecordType.name
136+
val namePrefix = resourceRepo.getString(R.string.statistics_detail_last_record)
137+
val fullName = notificationCommonMapper.getNotificationText(
138+
recordType = prevRecordType,
139+
recordTags = recordTags.filter { it.id in prevRecord.tagIds },
140+
)
141+
title = "$namePrefix - $fullName"
134142
subtitle = timeMapper.formatTime(
135143
time = prevRecord.timeEnded,
136144
useMilitaryTime = prefsInteractor.getUseMilitaryTimeFormat(),
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.example.util.simpletimetracker.feature_notification.core
2+
3+
import com.example.util.simpletimetracker.domain.extension.getFullName
4+
import com.example.util.simpletimetracker.domain.model.RecordTag
5+
import com.example.util.simpletimetracker.domain.model.RecordType
6+
import javax.inject.Inject
7+
8+
class NotificationCommonMapper @Inject constructor() {
9+
10+
fun getNotificationText(
11+
recordType: RecordType,
12+
recordTags: List<RecordTag>,
13+
): String {
14+
val tag = recordTags.getFullName()
15+
16+
return if (tag.isEmpty()) {
17+
recordType.name
18+
} else {
19+
"${recordType.name} - $tag"
20+
}
21+
}
22+
}

features/feature_notification/src/main/java/com/example/util/simpletimetracker/feature_notification/recordType/interactor/NotificationTypeInteractorImpl.kt

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import com.example.util.simpletimetracker.core.mapper.IconMapper
77
import com.example.util.simpletimetracker.core.mapper.TimeMapper
88
import com.example.util.simpletimetracker.core.repo.ResourceRepo
99
import com.example.util.simpletimetracker.domain.extension.getDailyDuration
10-
import com.example.util.simpletimetracker.domain.extension.getFullName
1110
import com.example.util.simpletimetracker.domain.extension.getSessionDuration
1211
import com.example.util.simpletimetracker.domain.extension.hasDailyDuration
1312
import com.example.util.simpletimetracker.domain.extension.value
@@ -26,6 +25,7 @@ import com.example.util.simpletimetracker.domain.model.RunningRecord
2625
import com.example.util.simpletimetracker.feature_notification.R
2726
import com.example.util.simpletimetracker.feature_notification.activitySwitch.interactor.GetNotificationActivitySwitchControlsInteractor
2827
import com.example.util.simpletimetracker.feature_notification.activitySwitch.manager.NotificationControlsParams
28+
import com.example.util.simpletimetracker.feature_notification.core.NotificationCommonMapper
2929
import com.example.util.simpletimetracker.feature_notification.recordType.manager.NotificationTypeManager
3030
import com.example.util.simpletimetracker.feature_notification.recordType.manager.NotificationTypeParams
3131
import javax.inject.Inject
@@ -45,6 +45,7 @@ class NotificationTypeInteractorImpl @Inject constructor(
4545
private val filterGoalsByDayOfWeekInteractor: FilterGoalsByDayOfWeekInteractor,
4646
private val getSelectableTagsInteractor: GetSelectableTagsInteractor,
4747
private val getNotificationActivitySwitchControlsInteractor: GetNotificationActivitySwitchControlsInteractor,
48+
private val notificationCommonMapper: NotificationCommonMapper,
4849
) : NotificationTypeInteractor {
4950

5051
// TODO merge with update function?
@@ -226,7 +227,10 @@ class NotificationTypeInteractorImpl @Inject constructor(
226227
id = recordType.id,
227228
icon = recordType.icon.let(iconMapper::mapIcon),
228229
color = colorMapper.mapToColorInt(recordType.color, isDarkTheme),
229-
text = getNotificationText(recordType, recordTags),
230+
text = notificationCommonMapper.getNotificationText(
231+
recordType = recordType,
232+
recordTags = recordTags,
233+
),
230234
timeStarted = timeMapper.formatTime(
231235
time = runningRecord.timeStarted,
232236
useMilitaryTime = useMilitaryTime,
@@ -246,19 +250,6 @@ class NotificationTypeInteractorImpl @Inject constructor(
246250
).let(notificationTypeManager::show)
247251
}
248252

249-
private fun getNotificationText(
250-
recordType: RecordType,
251-
recordTags: List<RecordTag>,
252-
): String {
253-
val tag = recordTags.getFullName()
254-
255-
return if (tag.isEmpty()) {
256-
recordType.name
257-
} else {
258-
"${recordType.name} - $tag"
259-
}
260-
}
261-
262253
private fun hide(typeId: Long) {
263254
notificationTypeManager.hide(typeId.toInt())
264255
}

0 commit comments

Comments
 (0)