diff --git a/api/src/main/java/com/todoroo/andlib/utility/Preferences.java b/api/src/main/java/com/todoroo/andlib/utility/Preferences.java index 691d739c4..06cfba9d8 100644 --- a/api/src/main/java/com/todoroo/andlib/utility/Preferences.java +++ b/api/src/main/java/com/todoroo/andlib/utility/Preferences.java @@ -21,6 +21,13 @@ import com.todoroo.andlib.service.ContextManager; */ public class Preferences { + public static void setIntIfUnset(SharedPreferences prefs, Editor editor, Resources r, int keyResource, int value) { + String key = r.getString(keyResource); + if(!prefs.contains(key)) { + editor.putInt(key, value); + } + } + /** * Helper to write to editor if key specified is null. Writes a String * property with the given integer diff --git a/api/src/main/java/com/todoroo/andlib/utility/TodorooPreferenceActivity.java b/api/src/main/java/com/todoroo/andlib/utility/TodorooPreferenceActivity.java index c902786f2..01dbadc7b 100644 --- a/api/src/main/java/com/todoroo/andlib/utility/TodorooPreferenceActivity.java +++ b/api/src/main/java/com/todoroo/andlib/utility/TodorooPreferenceActivity.java @@ -24,7 +24,7 @@ import android.preference.PreferenceManager; import android.preference.RingtonePreference; import com.todoroo.andlib.service.ContextManager; -import com.todoroo.astrid.ui.TimePreference; +import org.tasks.ui.TimePreference; /** * Displays a preference screen for users to edit their preferences. Override diff --git a/api/src/main/java/com/todoroo/astrid/ui/TimePreference.java b/api/src/main/java/org/tasks/ui/TimePreference.java similarity index 69% rename from api/src/main/java/com/todoroo/astrid/ui/TimePreference.java rename to api/src/main/java/org/tasks/ui/TimePreference.java index a910e15ec..2eb32f14a 100644 --- a/api/src/main/java/com/todoroo/astrid/ui/TimePreference.java +++ b/api/src/main/java/org/tasks/ui/TimePreference.java @@ -1,7 +1,6 @@ -package com.todoroo.astrid.ui; +package org.tasks.ui; import android.content.Context; -import android.content.res.TypedArray; import android.preference.DialogPreference; import android.text.format.DateFormat; import android.util.AttributeSet; @@ -10,20 +9,8 @@ import android.widget.TimePicker; import org.joda.time.DateTime; -/** - * Preference dialog that displays a TimePicker and persists the selected value. - * - * The xml to use it is of the form: - < com.todoroo.astrid.ui.TimePreference - android:key="@string/my_key_value" - android:defaultValue="-1" - android:positiveButtonText="Save" - android:negativeButtonText="Reset" - android:title="@string/my_pref_title_value" /> - */ public class TimePreference extends DialogPreference { - /** The last hour digit picked by the user in String format */ private int millisOfDay; private TimePicker picker = null; @@ -32,7 +19,6 @@ public class TimePreference extends DialogPreference { setPositiveButtonText(android.R.string.ok); setNegativeButtonText(android.R.string.cancel); - } @Override @@ -56,13 +42,11 @@ public class TimePreference extends DialogPreference { picker.setCurrentHour(dateTime.getHourOfDay()); picker.setCurrentMinute(dateTime.getMinuteOfHour()); picker.setIs24HourView(DateFormat.is24HourFormat(getContext())); - } @Override public void onDialogClosed(boolean positiveResult) { super.onDialogClosed(positiveResult); - /** When the dialog is closed update the lastHour variable and store the value in preferences */ if (positiveResult) { millisOfDay = new DateTime() .withMillisOfDay(0) @@ -76,13 +60,6 @@ public class TimePreference extends DialogPreference { } } - @Override - public Object onGetDefaultValue(TypedArray array, int index) { - return (array.getInt(index, 0)); - } - - /** When called for the first time initialize the value of the last hour to either the saved one - * or to the default one. If a default one is not provided use "0" */ @Override public void onSetInitialValue(boolean restoreValue, Object defaultValue) { int def = (defaultValue == null) ? 0 : (int) defaultValue; diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java b/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java index a0faa7c86..88df20f3c 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java @@ -121,10 +121,7 @@ public final class ReminderService { Resources r = context.getResources(); Preferences.setIfUnset(prefs, editor, r, R.string.p_rmd_enable_quiet, false); - Preferences.setIfUnset(prefs, editor, r, R.string.p_rmd_quietStart, 22 * MILLIS_PER_HOUR); - Preferences.setIfUnset(prefs, editor, r, R.string.p_rmd_quietEnd, 10 * MILLIS_PER_HOUR); Preferences.setIfUnset(prefs, editor, r, R.string.p_rmd_default_random_hours, 0); - Preferences.setIfUnset(prefs, editor, r, R.string.p_rmd_time, 18 * MILLIS_PER_HOUR); Preferences.setIfUnset(prefs, editor, r, R.string.p_rmd_persistent, true); editor.commit(); diff --git a/astrid/src/main/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpec.java b/astrid/src/main/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpec.java index 30024184d..7206fa921 100644 --- a/astrid/src/main/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpec.java +++ b/astrid/src/main/java/com/todoroo/astrid/utility/AstridDefaultPreferenceSpec.java @@ -14,6 +14,8 @@ import com.todoroo.astrid.data.Task; import org.joda.time.DateTime; import org.tasks.R; +import static com.todoroo.andlib.utility.Preferences.setIntIfUnset; + public class AstridDefaultPreferenceSpec extends AstridPreferenceSpec { public static interface PreferenceExtras { @@ -88,11 +90,15 @@ public class AstridDefaultPreferenceSpec extends AstridPreferenceSpec { setPreference(prefs, editor, r, R.string.p_hide_plus_button, true); - extras.setExtras(context); + setIntIfUnset(prefs, editor, r, R.string.p_rmd_quietStart, r.getInteger(R.integer.default_quiet_hours_start)); + setIntIfUnset(prefs, editor, r, R.string.p_rmd_quietEnd, r.getInteger(R.integer.default_quiet_hours_end)); + setIntIfUnset(prefs, editor, r, R.string.p_rmd_time, r.getInteger(R.integer.default_remind_time)); - migrateToNewQuietHours(); + extras.setExtras(context); editor.commit(); + + migrateToNewQuietHours(); } static void migrateToNewQuietHours() { diff --git a/astrid/src/main/res/values/integers.xml b/astrid/src/main/res/values/integers.xml new file mode 100644 index 000000000..329a59454 --- /dev/null +++ b/astrid/src/main/res/values/integers.xml @@ -0,0 +1,6 @@ + + + 79200000 + 36000000 + 64800000 + \ No newline at end of file diff --git a/astrid/src/main/res/xml/preferences_reminders.xml b/astrid/src/main/res/xml/preferences_reminders.xml index fae2ff35b..67066e24e 100644 --- a/astrid/src/main/res/xml/preferences_reminders.xml +++ b/astrid/src/main/res/xml/preferences_reminders.xml @@ -12,19 +12,19 @@ android:key="@string/p_rmd_enable_quiet" android:title="@string/rmd_EPr_enable_quiet_title" android:defaultValue="false"/> - - -