From a2f23f80c5721d38d382a642a9a379f726e42e3f Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 28 Mar 2017 14:44:55 -0500 Subject: [PATCH] Fix quiet hours --- .../java/org/tasks/preferences/Preferences.java | 16 +++++++++++++--- .../java/org/tasks/scheduling/AlarmManager.java | 5 ++--- src/main/java/org/tasks/ui/TimePreference.java | 4 ++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/tasks/preferences/Preferences.java b/src/main/java/org/tasks/preferences/Preferences.java index d7aeaf3ac..39f8fab6e 100644 --- a/src/main/java/org/tasks/preferences/Preferences.java +++ b/src/main/java/org/tasks/preferences/Preferences.java @@ -60,6 +60,14 @@ public class Preferences { return getBoolean(R.string.p_rmd_enable_quiet, false); } + public int getQuietHoursStart() { + return getMillisPerDayPref(R.string.p_rmd_quietStart, R.integer.default_quiet_hours_start); + } + + public int getQuietHoursEnd() { + return getMillisPerDayPref(R.string.p_rmd_quietEnd, R.integer.default_quiet_hours_end); + } + public int getDateShortcutMorning() { return getMillisPerDayPref(R.string.p_date_shortcut_morning, R.integer.default_morning); } @@ -77,9 +85,11 @@ public class Preferences { } private int getMillisPerDayPref(int resId, int defResId) { - int defaultValue = context.getResources().getInteger(defResId); - int setting = getInt(resId, defaultValue); - return setting < 0 || setting > DateTime.MAX_MILLIS_PER_DAY ? defaultValue : setting; + int setting = getInt(resId, -1); + if (setting < 0 || setting > DateTime.MAX_MILLIS_PER_DAY) { + return context.getResources().getInteger(defResId); + } + return setting; } public boolean isDefaultCalendarSet() { diff --git a/src/main/java/org/tasks/scheduling/AlarmManager.java b/src/main/java/org/tasks/scheduling/AlarmManager.java index 11c63bb06..351659350 100644 --- a/src/main/java/org/tasks/scheduling/AlarmManager.java +++ b/src/main/java/org/tasks/scheduling/AlarmManager.java @@ -4,7 +4,6 @@ import android.annotation.SuppressLint; import android.app.PendingIntent; import android.content.Context; -import org.tasks.R; import org.tasks.injection.ForApplication; import org.tasks.preferences.Preferences; import org.tasks.time.DateTime; @@ -58,8 +57,8 @@ public class AlarmManager { long adjustForQuietHours(long time) { if (preferences.quietHoursEnabled()) { DateTime dateTime = new DateTime(time); - DateTime start = dateTime.withMillisOfDay(preferences.getInt(R.string.p_rmd_quietStart)); - DateTime end = dateTime.withMillisOfDay(preferences.getInt(R.string.p_rmd_quietEnd)); + DateTime start = dateTime.withMillisOfDay(preferences.getQuietHoursStart()); + DateTime end = dateTime.withMillisOfDay(preferences.getQuietHoursEnd()); if (start.isAfter(end)) { if (dateTime.isBefore(end)) { return end.getMillis(); diff --git a/src/main/java/org/tasks/ui/TimePreference.java b/src/main/java/org/tasks/ui/TimePreference.java index b82b33269..df190ebd1 100644 --- a/src/main/java/org/tasks/ui/TimePreference.java +++ b/src/main/java/org/tasks/ui/TimePreference.java @@ -27,7 +27,7 @@ public class TimePreference extends Preference { @Override protected Object onGetDefaultValue(TypedArray a, int index) { - return a.getString(index); + return a.getInteger(index, -1); } @Override @@ -36,7 +36,7 @@ public class TimePreference extends Preference { int noon = new DateTime().startOfDay().withHourOfDay(12).getMillisOfDay(); millisOfDay = getPersistedInt(noon); } else { - millisOfDay = Integer.parseInt((String) defaultValue); + millisOfDay = (Integer) defaultValue; } setMillisOfDay(millisOfDay);