diff --git a/domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/AddRunningRecordMediator.kt b/domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/AddRunningRecordMediator.kt index cd8f5cff7..24ccd1433 100644 --- a/domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/AddRunningRecordMediator.kt +++ b/domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/AddRunningRecordMediator.kt @@ -61,6 +61,7 @@ class AddRunningRecordMediator @Inject constructor( comment: String, timeStarted: Long? = null, updateNotificationSwitch: Boolean = true, + checkDefaultDuration: Boolean = true, ) { val actualTimeStarted = timeStarted ?: System.currentTimeMillis() val retroactiveTrackingMode = prefsInteractor.getRetroactiveTrackingMode() @@ -108,7 +109,7 @@ class AddRunningRecordMediator @Inject constructor( if (retroactiveTrackingMode) { addRetroactiveModeInternal(startParams, prevRecord) } else { - addInternal(startParams) + addInternal(startParams, checkDefaultDuration) } // Show goal count only on timer start, otherwise it would show on change also. notificationGoalCountInteractor.checkAndShow(typeId) @@ -125,19 +126,23 @@ class AddRunningRecordMediator @Inject constructor( tagIds: List, ) { addInternal( - StartParams( + params = StartParams( typeId = typeId, timeStarted = timeStarted, comment = comment, tagIds = tagIds, updateNotificationSwitch = true, ), + checkDefaultDuration = false, ) } - private suspend fun addInternal(params: StartParams) { + private suspend fun addInternal( + params: StartParams, + checkDefaultDuration: Boolean, + ) { val type = recordTypeInteractor.get(params.typeId) ?: return - if (type.defaultDuration > 0L) { + if (type.defaultDuration > 0L && checkDefaultDuration) { addInstantRecord(params, type) } else { addRunningRecord(params) diff --git a/domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/RecordActionContinueMediator.kt b/domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/RecordActionContinueMediator.kt index cb3c7f035..721c34174 100644 --- a/domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/RecordActionContinueMediator.kt +++ b/domain/src/main/java/com/example/util/simpletimetracker/domain/interactor/RecordActionContinueMediator.kt @@ -33,6 +33,7 @@ class RecordActionContinueMediator @Inject constructor( timeStarted = timeStarted, comment = comment, tagIds = tagIds, + checkDefaultDuration = false, ) } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordQuickActions/viewModel/RecordQuickActionsViewModel.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordQuickActions/viewModel/RecordQuickActionsViewModel.kt index 62a68e724..ac0591ad5 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordQuickActions/viewModel/RecordQuickActionsViewModel.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordQuickActions/viewModel/RecordQuickActionsViewModel.kt @@ -204,15 +204,16 @@ class RecordQuickActionsViewModel @Inject constructor( private suspend fun loadState(): RecordQuickActionsState { val retroactiveTrackingModeEnabled = prefsInteractor.getRetroactiveTrackingMode() + val canContinue = !retroactiveTrackingModeEnabled val buttons = when (extra.type) { is Type.RecordTracked -> listOfNotNull( RecordQuickActionsState.Button.Statistics(false), RecordQuickActionsState.Button.Delete(false), RecordQuickActionsState.Button.Continue(false) - .takeIf { !retroactiveTrackingModeEnabled }, + .takeIf { canContinue }, RecordQuickActionsState.Button.Repeat(false), - RecordQuickActionsState.Button.Duplicate(!retroactiveTrackingModeEnabled), + RecordQuickActionsState.Button.Duplicate(canContinue), ) is Type.RecordUntracked -> listOf( RecordQuickActionsState.Button.Statistics(false),