diff --git a/res/values/strings.xml b/res/values/strings.xml
index 327ef366b..e17bd9089 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -338,6 +338,13 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
Lock-screen notifications
Don\'t display message subject in notification bar when system is locked
+
+ Quiet Time
+ Disable ringing, buzzing and flashing at night
+ Quiet Time starts
+ Quiet Time ends
+
+
Set up a new account
Enter this account\'s email address:
(You may add %d more accounts.)
diff --git a/res/xml/global_preferences.xml b/res/xml/global_preferences.xml
index c55c23c29..dbc54b117 100644
--- a/res/xml/global_preferences.xml
+++ b/res/xml/global_preferences.xml
@@ -264,4 +264,29 @@
+
+
+
+
+
+
diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java
index 32b52a690..18d569888 100644
--- a/src/com/fsck/k9/K9.java
+++ b/src/com/fsck/k9/K9.java
@@ -164,6 +164,9 @@ public class K9 extends Application
private static boolean mCountSearchMessages = true;
private static boolean mZoomControlsEnabled = false;
private static boolean mMobileOptimizedLayout = false;
+ private static boolean mQuietTimeEnabled = false;
+ private static String mQuietTimeStarts = null;
+ private static String mQuietTimeEnds = null;
private static boolean useGalleryBugWorkaround = false;
private static boolean galleryBuggy;
@@ -417,7 +420,9 @@ public class K9 extends Application
editor.putBoolean("manageBack", mManageBack);
editor.putBoolean("zoomControlsEnabled",mZoomControlsEnabled);
editor.putBoolean("mobileOptimizedLayout", mMobileOptimizedLayout);
-
+ editor.putBoolean("quietTimeEnabled", mQuietTimeEnabled);
+ editor.putString("quietTimeStarts", mQuietTimeStarts);
+ editor.putString("quietTimeEnds", mQuietTimeEnds);
editor.putBoolean("startIntegratedInbox", mStartIntegratedInbox);
editor.putBoolean("measureAccounts", mMeasureAccounts);
@@ -472,6 +477,10 @@ public class K9 extends Application
mMobileOptimizedLayout = sprefs.getBoolean("mobileOptimizedLayout", false);
mZoomControlsEnabled = sprefs.getBoolean("zoomControlsEnabled",false);
+ mQuietTimeEnabled = sprefs.getBoolean("quietTimeEnabled", false);
+ mQuietTimeStarts = sprefs.getString("quietTimeStarts", "21:00" );
+ mQuietTimeEnds= sprefs.getString("quietTimeEnds", "7:00");
+
mShowContactName = sprefs.getBoolean("showContactName", false);
mChangeContactNameColor = sprefs.getBoolean("changeRegisteredNameColor", false);
mContactNameColor = sprefs.getInt("registeredNameColor", 0xff00008f);
@@ -714,9 +723,29 @@ public class K9 extends Application
mMobileOptimizedLayout = mobileOptimizedLayout;
}
+ public static boolean getQuietTimeEnabled() {
+ return mQuietTimeEnabled;
+ }
+ public static void setQuietTimeEnabled(boolean quietTimeEnabled) {
+ mQuietTimeEnabled = quietTimeEnabled;
+ }
+ public static String getQuietTimeStarts() {
+ return mQuietTimeStarts;
+ }
+ public static void setQuietTimeStarts(String quietTimeStarts) {
+ mQuietTimeStarts = quietTimeStarts;
+ }
+
+ public static String getQuietTimeEnds() {
+ return mQuietTimeEnds;
+ }
+
+ public static void setQuietTimeEnds(String quietTimeEnds) {
+ mQuietTimeEnds = quietTimeEnds;
+ }
public static boolean startIntegratedInbox()
{
diff --git a/src/com/fsck/k9/activity/setup/Prefs.java b/src/com/fsck/k9/activity/setup/Prefs.java
index 7951bbe49..eec263c87 100644
--- a/src/com/fsck/k9/activity/setup/Prefs.java
+++ b/src/com/fsck/k9/activity/setup/Prefs.java
@@ -15,6 +15,7 @@ import android.preference.ListPreference;
import android.preference.Preference;
import android.view.KeyEvent;
import android.widget.Toast;
+import android.widget.TimePicker;
import com.fsck.k9.K9;
import com.fsck.k9.Preferences;
@@ -24,6 +25,8 @@ import com.fsck.k9.activity.ColorPickerDialog;
import com.fsck.k9.activity.DateFormatter;
import com.fsck.k9.activity.K9PreferenceActivity;
import com.fsck.k9.preferences.CheckBoxListPreference;
+import com.fsck.k9.preferences.TimePickerPreference;
+
import com.fsck.k9.service.MailService;
public class Prefs extends K9PreferenceActivity
@@ -60,6 +63,11 @@ public class Prefs extends K9PreferenceActivity
private static final String PREFERENCE_MESSAGEVIEW_RETURN_TO_LIST = "messageview_return_to_list";
private static final String PREFERENCE_MESSAGEVIEW_ZOOM_CONTROLS_ENABLED = "messageview_zoom_controls";
+ private static final String PREFERENCE_QUIET_TIME_ENABLED = "quiet_time_enabled";
+ private static final String PREFERENCE_QUIET_TIME_STARTS = "quiet_time_starts";
+ private static final String PREFERENCE_QUIET_TIME_ENDS = "quiet_time_ends";
+
+
private static final String PREFERENCE_MESSAGEVIEW_MOBILE_LAYOUT = "messageview_mobile_layout";
private static final String PREFERENCE_BACKGROUND_OPS = "background_ops";
private static final String PREFERENCE_GALLERY_BUG_WORKAROUND = "use_gallery_bug_workaround";
@@ -94,6 +102,11 @@ public class Prefs extends K9PreferenceActivity
private CheckBoxPreference mDebugLogging;
private CheckBoxPreference mSensitiveLogging;
+ private CheckBoxPreference mQuietTimeEnabled;
+ private com.fsck.k9.preferences.TimePickerPreference mQuietTimeStarts;
+ private com.fsck.k9.preferences.TimePickerPreference mQuietTimeEnds;
+
+
public static void actionPrefs(Context context)
{
@@ -241,6 +254,37 @@ public class Prefs extends K9PreferenceActivity
mMobileOptimizedLayout.setChecked(K9.mobileOptimizedLayout());
+ mQuietTimeEnabled = (CheckBoxPreference) findPreference(PREFERENCE_QUIET_TIME_ENABLED);
+ mQuietTimeEnabled.setChecked(K9.getQuietTimeEnabled());
+
+ mQuietTimeStarts = (TimePickerPreference) findPreference(PREFERENCE_QUIET_TIME_STARTS);
+ mQuietTimeStarts.setDefaultValue(K9.getQuietTimeStarts());
+ mQuietTimeStarts.setSummary(K9.getQuietTimeStarts());
+ mQuietTimeStarts.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ final String time = (String) newValue;
+ mQuietTimeStarts.setSummary(time);
+ return false;
+ }
+ });
+
+ mQuietTimeEnds = (TimePickerPreference) findPreference(PREFERENCE_QUIET_TIME_ENDS);
+ mQuietTimeEnds.setSummary(K9.getQuietTimeEnds());
+ mQuietTimeEnds.setDefaultValue(K9.getQuietTimeEnds());
+ mQuietTimeEnds.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
+ {
+ public boolean onPreferenceChange(Preference preference, Object newValue)
+ {
+ final String time = (String) newValue;
+ mQuietTimeEnds.setSummary(time);
+ return false;
+ }
+ });
+
+
+
mBackgroundOps = setupListPreference(PREFERENCE_BACKGROUND_OPS, K9.getBackgroundOps().toString());
@@ -279,6 +323,12 @@ public class Prefs extends K9PreferenceActivity
K9.setMessageViewFixedWidthFont(mFixedWidth.isChecked());
K9.setMessageViewReturnToList(mReturnToList.isChecked());
K9.setMobileOptimizedLayout(mMobileOptimizedLayout.isChecked());
+ K9.setQuietTimeEnabled(mQuietTimeEnabled.isChecked());
+
+ K9.setQuietTimeStarts(mQuietTimeStarts.getTime());
+ K9.setQuietTimeEnds(mQuietTimeEnds.getTime());
+
+
K9.setZoomControlsEnabled(mZoomControlsEnabled.isChecked());
boolean needsRefresh = K9.setBackgroundOps(mBackgroundOps.getValue());
diff --git a/src/com/fsck/k9/preferences/TimePickerPreference.java b/src/com/fsck/k9/preferences/TimePickerPreference.java
index d09df11d6..51e0be4bc 100644
--- a/src/com/fsck/k9/preferences/TimePickerPreference.java
+++ b/src/com/fsck/k9/preferences/TimePickerPreference.java
@@ -84,7 +84,8 @@ public class TimePickerPreference extends DialogPreference implements
@Override
public void onTimeChanged(TimePicker view, int hour, int minute) {
- persistString(hour + ":" + minute);
+ persistString(String.format("%02d:%02d",hour,minute));
+ callChangeListener(String.format("%02d:%02d",hour,minute));
}
/*
@@ -136,5 +137,10 @@ public class TimePickerPreference extends DialogPreference implements
return Integer.valueOf(time.split(":")[1]);
}
+
+ public String getTime() {
+ return getPersistedString(this.defaultValue);
+ }
+
}