From 4c87ac0128e5d564558a2e13a25e5176f5e480c1 Mon Sep 17 00:00:00 2001 From: Jakub Kalinowski Date: Sun, 12 Sep 2021 18:22:55 +0200 Subject: [PATCH] Add delay after toggling a habit --- .../org/isoron/uhabits/acceptance/HabitsTest.kt | 5 +++++ .../activities/habits/list/views/HabitCardView.kt | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/HabitsTest.kt b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/HabitsTest.kt index 171a9ed41..bfbdf3bb8 100644 --- a/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/HabitsTest.kt +++ b/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/HabitsTest.kt @@ -55,6 +55,7 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) @LargeTest class HabitsTest : BaseUserInterfaceTest() { + @Test @Throws(Exception::class) fun shouldCreateHabit() { @@ -180,6 +181,8 @@ class HabitsTest : BaseUserInterfaceTest() { longPressCheckmarks("Wake up early", count = 2) clickText("Wake up early") verifyShowsScreen(SHOW_HABIT) + // TODO: find a better way than sleeping in tests + Thread.sleep(2001L) verifyDisplaysText("10%") } @@ -194,6 +197,8 @@ class HabitsTest : BaseUserInterfaceTest() { verifyDoesNotDisplayText("Track time") verifyDisplaysText("Wake up early") longPressCheckmarks("Wake up early", count = 1) + // TODO: find a better way than sleeping in tests + Thread.sleep(2001L) verifyDoesNotDisplayText("Wake up early") clickMenu(TOGGLE_COMPLETED) verifyDisplaysText("Track time") diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt index d6e7a2ad3..39260a637 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt @@ -36,6 +36,7 @@ import android.widget.TextView import org.isoron.platform.gui.toInt import org.isoron.uhabits.R import org.isoron.uhabits.activities.common.views.RingView +import org.isoron.uhabits.activities.habits.list.views.HabitCardView.Companion.delay import org.isoron.uhabits.core.models.Habit import org.isoron.uhabits.core.models.ModelObservable import org.isoron.uhabits.core.models.Timestamp @@ -143,7 +144,11 @@ class HabitCardView( checkmarkPanel = checkmarkPanelFactory.create().apply { onToggle = { timestamp, value -> triggerRipple(timestamp) - habit?.let { behavior.onToggle(it, timestamp, value) } + habit?.let { + { + behavior.onToggle(it, timestamp, value) + }.delay(TOGGLE_DELAY_MILLIS) + } } } @@ -263,4 +268,12 @@ class HabitCardView( } innerFrame.setBackgroundResource(background) } + + companion object { + const val TOGGLE_DELAY_MILLIS = 2000L + + fun (() -> Unit).delay(delayInMillis: Long) { + Handler(Looper.getMainLooper()).postDelayed(this, delayInMillis) + } + } }