diff --git a/app/src/main/java/com/todoroo/astrid/alarms/AlarmCalculator.kt b/app/src/main/java/com/todoroo/astrid/alarms/AlarmCalculator.kt index a08d25e4d..a4ddf73c1 100644 --- a/app/src/main/java/com/todoroo/astrid/alarms/AlarmCalculator.kt +++ b/app/src/main/java/com/todoroo/astrid/alarms/AlarmCalculator.kt @@ -10,13 +10,14 @@ import org.tasks.time.DateTimeUtils.withMillisOfDay import javax.inject.Inject class AlarmCalculator( + private val preferences: Preferences, private val random: Random, private val defaultTimeProvider: () -> Int, ){ @Inject internal constructor( preferences: Preferences - ) : this(Random(), { preferences.defaultDueTime }) + ) : this(preferences, Random(), { preferences.defaultDueTime }) fun toAlarmEntry(task: Task, alarm: Alarm): AlarmEntry? { val trigger = when (alarm.type) { @@ -36,7 +37,7 @@ class AlarmCalculator( when { task.hasDueTime() -> task.dueDate + alarm.time - task.hasDueDate() -> + task.hasDueDate() && preferences.isDefaultDueTimeEnabled -> task.dueDate.withMillisOfDay(defaultTimeProvider()) + alarm.time else -> AlarmService.NO_ALARM diff --git a/app/src/main/java/org/tasks/preferences/Preferences.kt b/app/src/main/java/org/tasks/preferences/Preferences.kt index 588c69712..abc7ea68b 100644 --- a/app/src/main/java/org/tasks/preferences/Preferences.kt +++ b/app/src/main/java/org/tasks/preferences/Preferences.kt @@ -87,6 +87,9 @@ class Preferences @JvmOverloads constructor( private fun quietHoursEnabled(): Boolean = getBoolean(R.string.p_rmd_enable_quiet, false) + val isDefaultDueTimeEnabled: Boolean + get() = getBoolean(R.string.p_rmd_time_enabled, true) + val defaultDueTime: Int get() = getInt(R.string.p_rmd_time, TimeUnit.HOURS.toMillis(18).toInt()) diff --git a/app/src/main/java/org/tasks/preferences/fragments/Notifications.kt b/app/src/main/java/org/tasks/preferences/fragments/Notifications.kt index 3c2dd0031..84dba0a84 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/Notifications.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/Notifications.kt @@ -55,6 +55,7 @@ class Notifications : InjectingPreferenceFragment() { override suspend fun setupPreferences(savedInstanceState: Bundle?) { rescheduleNotificationsOnChange( false, + R.string.p_rmd_time_enabled, R.string.p_rmd_time, R.string.p_rmd_enable_quiet, R.string.p_rmd_quietStart, diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml index 0772ab072..3ccaa39a1 100644 --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -69,6 +69,7 @@ notif_qend_new + reminder_time_new_enabled reminder_time_new diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8870f5a4d..16464bec2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -155,7 +155,7 @@ File %1$s contained %2$s.\n\n Snooze all Quiet hours start Quiet hours end - Default reminder + Reminder time Notifications for tasks without due times will appear at %s Persistent notifications Persistent notifications cannot be cleared @@ -438,6 +438,7 @@ File %1$s contained %2$s.\n\n Error: %s Battery optimizations may delay notifications Bundle notifications + Default Reminder Badges List Repeats from @@ -462,6 +463,7 @@ File %1$s contained %2$s.\n\n ,\u0020 Don\'t add to calendar Default calendar + Show notifications for tasks without due times Display a task count on Tasks\' launcher icon. Not all launchers support badges. Combine multiple notifications into one on the same day each month diff --git a/app/src/main/res/xml/preferences_notifications.xml b/app/src/main/res/xml/preferences_notifications.xml index bbaf2d24b..51e7078c3 100644 --- a/app/src/main/res/xml/preferences_notifications.xml +++ b/app/src/main/res/xml/preferences_notifications.xml @@ -19,17 +19,11 @@ - - + android:title="@string/completion_sound" + app:allowDividerAbove="true" /> + + + + + + + +