From 73fcf2e238595b35e33edf435607e72e32ffea9a Mon Sep 17 00:00:00 2001 From: Dharanish Date: Tue, 28 May 2024 22:35:39 +0200 Subject: [PATCH] Fix skip days for short toggle --- .../habits/list/views/CheckmarkButtonView.kt | 4 ++-- .../ui/screens/habits/list/ListHabitsBehavior.kt | 12 ++++++++---- .../core/ui/screens/habits/show/views/HistoryCard.kt | 11 +++++++++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/CheckmarkButtonView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/CheckmarkButtonView.kt index 3cf77789e..2b394eae6 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/CheckmarkButtonView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/CheckmarkButtonView.kt @@ -89,12 +89,12 @@ class CheckmarkButtonView( } fun performToggle() { - value = Entry.nextToggleValue( + val next_value = Entry.nextToggleValue( value = value, isSkipEnabled = preferences.isSkipEnabled, areQuestionMarksEnabled = preferences.areQuestionMarksEnabled ) - onToggle(value, notes) + onToggle(next_value, notes) performHapticFeedback(HapticFeedbackConstants.LONG_PRESS) invalidate() } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt index a06dd9d04..1536ecfbf 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/list/ListHabitsBehavior.kt @@ -137,10 +137,14 @@ open class ListHabitsBehavior @Inject constructor( } fun onToggle(habit: Habit, timestamp: Timestamp, value: Int, notes: String, x: Float, y: Float) { - commandRunner.run( - CreateRepetitionCommand(habitList, habit, timestamp, value, notes) - ) - if (value == YES_MANUAL) screen.showConfetti(habit.color, x, y) + if (habit.skipDays.isDaySkipped(timestamp)) { + commandRunner.run(BlockSkippedDayCommand()) + } else { + commandRunner.run( + CreateRepetitionCommand(habitList, habit, timestamp, value, notes) + ) + if (value == YES_MANUAL) screen.showConfetti(habit.color, x, y) + } } enum class Message { diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt index 73f7be416..00aaa02da 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/HistoryCard.kt @@ -21,6 +21,7 @@ package org.isoron.uhabits.core.ui.screens.habits.show.views import org.isoron.platform.time.DayOfWeek import org.isoron.platform.time.LocalDate +import org.isoron.uhabits.core.commands.BlockSkippedDayCommand import org.isoron.uhabits.core.commands.CommandRunner import org.isoron.uhabits.core.commands.CreateRepetitionCommand import org.isoron.uhabits.core.models.Entry @@ -67,7 +68,10 @@ class HistoryCardPresenter( override fun onDateLongPress(date: LocalDate) { val timestamp = Timestamp.fromLocalDate(date) screen.showFeedback() - if (habit.skipDays.isDaySkipped(timestamp)) return + if (habit.skipDays.isDaySkipped(timestamp)) { + commandRunner.run(BlockSkippedDayCommand()) + return + } if (habit.isNumerical) { showNumberPopup(timestamp) } else { @@ -82,7 +86,10 @@ class HistoryCardPresenter( override fun onDateShortPress(date: LocalDate) { val timestamp = Timestamp.fromLocalDate(date) screen.showFeedback() - if (habit.skipDays.isDaySkipped(timestamp)) return + if (habit.skipDays.isDaySkipped(timestamp)) { + commandRunner.run(BlockSkippedDayCommand()) + return + } if (habit.isNumerical) { showNumberPopup(timestamp) } else {