Fix default reminder preference

pull/1684/head
Alex Baker 4 years ago
parent a100fca5af
commit c53780d9a0

@ -116,6 +116,16 @@ class PreferenceTests {
assertEquals(dueDate, preferences.adjustForQuietHours(dueDate)) 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) { private fun setQuietHoursStart(hour: Int) {
preferences.setInt(R.string.p_rmd_quietStart, hour * MILLIS_PER_HOUR) 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) 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 { companion object {
@SuppressLint("NewApi") @SuppressLint("NewApi")
private val MILLIS_PER_HOUR = TimeUnit.HOURS.toMillis(1).toInt() private val MILLIS_PER_HOUR = TimeUnit.HOURS.toMillis(1).toInt()

@ -203,7 +203,7 @@ class Preferences @JvmOverloads constructor(
val defaultReminders: Int val defaultReminders: Int
get() = defaultRemindersSet get() = defaultRemindersSet
.mapNotNull { it.toIntOrNull() } .mapNotNull { it.toIntOrNull() }
.sum() .fold(0) { v, e -> v or (1 shl e) }
val defaultRingMode: Int val defaultRingMode: Int
get() = getIntegerFromString(R.string.p_default_reminders_mode_key, 0) get() = getIntegerFromString(R.string.p_default_reminders_mode_key, 0)

Loading…
Cancel
Save