Skip to content

Commit 100ebf8

Browse files
committed
fix continue action for record with default duration
1 parent 24e55e5 commit 100ebf8

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class AddRunningRecordMediator @Inject constructor(
6161
comment: String,
6262
timeStarted: Long? = null,
6363
updateNotificationSwitch: Boolean = true,
64+
checkDefaultDuration: Boolean = true,
6465
) {
6566
val actualTimeStarted = timeStarted ?: System.currentTimeMillis()
6667
val retroactiveTrackingMode = prefsInteractor.getRetroactiveTrackingMode()
@@ -108,7 +109,7 @@ class AddRunningRecordMediator @Inject constructor(
108109
if (retroactiveTrackingMode) {
109110
addRetroactiveModeInternal(startParams, prevRecord)
110111
} else {
111-
addInternal(startParams)
112+
addInternal(startParams, checkDefaultDuration)
112113
}
113114
// Show goal count only on timer start, otherwise it would show on change also.
114115
notificationGoalCountInteractor.checkAndShow(typeId)
@@ -125,19 +126,23 @@ class AddRunningRecordMediator @Inject constructor(
125126
tagIds: List<Long>,
126127
) {
127128
addInternal(
128-
StartParams(
129+
params = StartParams(
129130
typeId = typeId,
130131
timeStarted = timeStarted,
131132
comment = comment,
132133
tagIds = tagIds,
133134
updateNotificationSwitch = true,
134135
),
136+
checkDefaultDuration = false,
135137
)
136138
}
137139

138-
private suspend fun addInternal(params: StartParams) {
140+
private suspend fun addInternal(
141+
params: StartParams,
142+
checkDefaultDuration: Boolean,
143+
) {
139144
val type = recordTypeInteractor.get(params.typeId) ?: return
140-
if (type.defaultDuration > 0L) {
145+
if (type.defaultDuration > 0L && checkDefaultDuration) {
141146
addInstantRecord(params, type)
142147
} else {
143148
addRunningRecord(params)

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class RecordActionContinueMediator @Inject constructor(
3333
timeStarted = timeStarted,
3434
comment = comment,
3535
tagIds = tagIds,
36+
checkDefaultDuration = false,
3637
)
3738
}
3839
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,15 +204,16 @@ class RecordQuickActionsViewModel @Inject constructor(
204204

205205
private suspend fun loadState(): RecordQuickActionsState {
206206
val retroactiveTrackingModeEnabled = prefsInteractor.getRetroactiveTrackingMode()
207+
val canContinue = !retroactiveTrackingModeEnabled
207208

208209
val buttons = when (extra.type) {
209210
is Type.RecordTracked -> listOfNotNull(
210211
RecordQuickActionsState.Button.Statistics(false),
211212
RecordQuickActionsState.Button.Delete(false),
212213
RecordQuickActionsState.Button.Continue(false)
213-
.takeIf { !retroactiveTrackingModeEnabled },
214+
.takeIf { canContinue },
214215
RecordQuickActionsState.Button.Repeat(false),
215-
RecordQuickActionsState.Button.Duplicate(!retroactiveTrackingModeEnabled),
216+
RecordQuickActionsState.Button.Duplicate(canContinue),
216217
)
217218
is Type.RecordUntracked -> listOf(
218219
RecordQuickActionsState.Button.Statistics(false),

0 commit comments

Comments
 (0)