Set reminder and quiet hour defaults

pull/120/head
Alex Baker 10 years ago
parent 9789ec05db
commit c642d0a9d6

@ -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

@ -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

@ -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;

@ -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();

@ -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() {

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="default_quiet_hours_start">79200000</integer> <!-- 22:00 -->
<integer name="default_quiet_hours_end">36000000</integer> <!-- 10:00 -->
<integer name="default_remind_time">64800000</integer> <!-- 18:00 -->
</resources>

@ -12,19 +12,19 @@
android:key="@string/p_rmd_enable_quiet"
android:title="@string/rmd_EPr_enable_quiet_title"
android:defaultValue="false"/>
<com.todoroo.astrid.ui.TimePreference
<org.tasks.ui.TimePreference
android:key="@string/p_rmd_quietStart"
android:defaultValue="-1"
android:defaultValue="@integer/default_quiet_hours_start"
android:dependency="@string/p_rmd_enable_quiet"
android:title="@string/rmd_EPr_quiet_hours_start_title"/>
<com.todoroo.astrid.ui.TimePreference
<org.tasks.ui.TimePreference
android:key="@string/p_rmd_quietEnd"
android:defaultValue="-1"
android:dependency="@string/p_rmd_quietStart"
android:defaultValue="@integer/default_quiet_hours_end"
android:dependency="@string/p_rmd_enable_quiet"
android:title="@string/rmd_EPr_quiet_hours_end_title"/>
<com.todoroo.astrid.ui.TimePreference
<org.tasks.ui.TimePreference
android:key="@string/p_rmd_time"
android:defaultValue="7"
android:defaultValue="@integer/default_remind_time"
android:title="@string/rmd_EPr_rmd_time_title"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_rmd_persistent"

Loading…
Cancel
Save