From c53780d9a008db459ca210b360dc1f766ccaea45 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sat, 13 Nov 2021 12:16:35 -0600 Subject: [PATCH] Fix default reminder preference --- .../org/tasks/preferences/PreferenceTests.kt | 18 ++++++++++++++++++ .../java/org/tasks/preferences/Preferences.kt | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/androidTest/java/org/tasks/preferences/PreferenceTests.kt b/app/src/androidTest/java/org/tasks/preferences/PreferenceTests.kt index 8a554d157..20970a321 100644 --- a/app/src/androidTest/java/org/tasks/preferences/PreferenceTests.kt +++ b/app/src/androidTest/java/org/tasks/preferences/PreferenceTests.kt @@ -116,6 +116,16 @@ class PreferenceTests { assertEquals(dueDate, preferences.adjustForQuietHours(dueDate)) } + @Test + fun testDefaultReminders() { + assertEquals(0, defaultReminders()) + assertEquals(2, defaultReminders(1)) + assertEquals(4, defaultReminders(2)) + assertEquals(6, defaultReminders(1, 2)) + assertEquals(32, defaultReminders(5)) + assertEquals(38, defaultReminders(1, 2, 5)) + } + private fun setQuietHoursStart(hour: Int) { preferences.setInt(R.string.p_rmd_quietStart, hour * MILLIS_PER_HOUR) } @@ -124,6 +134,14 @@ class PreferenceTests { preferences.setInt(R.string.p_rmd_quietEnd, hour * MILLIS_PER_HOUR) } + private fun defaultReminders(vararg values: Int): Int { + preferences.setStringSet( + R.string.p_default_reminders_key, + values.map { it.toString() }.toSet() + ) + return preferences.defaultReminders + } + companion object { @SuppressLint("NewApi") private val MILLIS_PER_HOUR = TimeUnit.HOURS.toMillis(1).toInt() diff --git a/app/src/main/java/org/tasks/preferences/Preferences.kt b/app/src/main/java/org/tasks/preferences/Preferences.kt index f13e6391b..57ccf4398 100644 --- a/app/src/main/java/org/tasks/preferences/Preferences.kt +++ b/app/src/main/java/org/tasks/preferences/Preferences.kt @@ -203,7 +203,7 @@ class Preferences @JvmOverloads constructor( val defaultReminders: Int get() = defaultRemindersSet .mapNotNull { it.toIntOrNull() } - .sum() + .fold(0) { v, e -> v or (1 shl e) } val defaultRingMode: Int get() = getIntegerFromString(R.string.p_default_reminders_mode_key, 0)