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" />
+
+
+
+
+
+
+
+