From ff8653b54106e9d172aada4ab0a0d61b98304e0d Mon Sep 17 00:00:00 2001 From: Dharanish Date: Tue, 25 Jun 2024 13:35:21 +0200 Subject: [PATCH] SkipDays validation --- .../uhabits/activities/habits/edit/EditHabitActivity.kt | 7 +++++++ uhabits-android/src/main/res/values/strings.xml | 1 + .../java/org/isoron/uhabits/core/models/WeekdayList.kt | 8 ++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt index 9902af731..e24ffa126 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitActivity.kt @@ -342,6 +342,13 @@ class EditHabitActivity : AppCompatActivity() { isValid = false } } + if (isSkipDays && freqDen == 7) { + if (7 - listSkipDays.numDays() < freqNum) { + binding.skipDaysPicker.text = getString(R.string.validation_too_many_skips) + binding.skipDaysPicker.error = getFormattedValidationError(R.string.validation_too_many_skips) + isValid = false + } + } return isValid } diff --git a/uhabits-android/src/main/res/values/strings.xml b/uhabits-android/src/main/res/values/strings.xml index 2af199da9..069072209 100644 --- a/uhabits-android/src/main/res/values/strings.xml +++ b/uhabits-android/src/main/res/values/strings.xml @@ -220,6 +220,7 @@ e.g. miles Every month Cannot be blank + Too many days selected Today Enter No habits found diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/WeekdayList.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/WeekdayList.kt index abdc00ec1..03e335f6d 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/WeekdayList.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/models/WeekdayList.kt @@ -34,8 +34,12 @@ class WeekdayList { } } - constructor(weekdays: BooleanArray) { - this.weekdays = Arrays.copyOf(weekdays, 7) + constructor(weekdays: BooleanArray?) { + this.weekdays = if (weekdays == null) { + BooleanArray(7) + } else { + Arrays.copyOf(weekdays, 7) + } } constructor(days: BooleanArray, removeDays: BooleanArray) {