1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-11-14 21:45:14 -05:00

Merge pull request #700 from k9mail/issue-661_disable_notifications_during_quiet_time

Add setting to completely disable notifications during Quiet Time
This commit is contained in:
cketti 2015-07-06 22:23:45 +02:00
commit fde7b985fc
7 changed files with 36 additions and 3 deletions

View File

@ -237,6 +237,7 @@ public class K9 extends Application {
private static boolean mHideSpecialAccounts = false; private static boolean mHideSpecialAccounts = false;
private static boolean mAutofitWidth; private static boolean mAutofitWidth;
private static boolean mQuietTimeEnabled = false; private static boolean mQuietTimeEnabled = false;
private static boolean mNotificationDuringQuietTimeEnabled = true;
private static String mQuietTimeStarts = null; private static String mQuietTimeStarts = null;
private static String mQuietTimeEnds = null; private static String mQuietTimeEnds = null;
private static String mAttachmentDefaultPath = ""; private static String mAttachmentDefaultPath = "";
@ -474,6 +475,7 @@ public class K9 extends Application {
editor.putBoolean("useVolumeKeysForListNavigation", mUseVolumeKeysForListNavigation); editor.putBoolean("useVolumeKeysForListNavigation", mUseVolumeKeysForListNavigation);
editor.putBoolean("autofitWidth", mAutofitWidth); editor.putBoolean("autofitWidth", mAutofitWidth);
editor.putBoolean("quietTimeEnabled", mQuietTimeEnabled); editor.putBoolean("quietTimeEnabled", mQuietTimeEnabled);
editor.putBoolean("notificationDuringQuietTimeEnabled", mNotificationDuringQuietTimeEnabled);
editor.putString("quietTimeStarts", mQuietTimeStarts); editor.putString("quietTimeStarts", mQuietTimeStarts);
editor.putString("quietTimeEnds", mQuietTimeEnds); editor.putString("quietTimeEnds", mQuietTimeEnds);
@ -708,6 +710,7 @@ public class K9 extends Application {
mAutofitWidth = sprefs.getBoolean("autofitWidth", true); mAutofitWidth = sprefs.getBoolean("autofitWidth", true);
mQuietTimeEnabled = sprefs.getBoolean("quietTimeEnabled", false); mQuietTimeEnabled = sprefs.getBoolean("quietTimeEnabled", false);
mNotificationDuringQuietTimeEnabled = sprefs.getBoolean("notificationDuringQuietTimeEnabled", true);
mQuietTimeStarts = sprefs.getString("quietTimeStarts", "21:00"); mQuietTimeStarts = sprefs.getString("quietTimeStarts", "21:00");
mQuietTimeEnds = sprefs.getString("quietTimeEnds", "7:00"); mQuietTimeEnds = sprefs.getString("quietTimeEnds", "7:00");
@ -970,6 +973,14 @@ public class K9 extends Application {
mQuietTimeEnabled = quietTimeEnabled; mQuietTimeEnabled = quietTimeEnabled;
} }
public static boolean isNotificationDuringQuietTimeEnabled() {
return mNotificationDuringQuietTimeEnabled;
}
public static void setNotificationDuringQuietTimeEnabled(boolean notificationDuringQuietTimeEnabled) {
mNotificationDuringQuietTimeEnabled = notificationDuringQuietTimeEnabled;
}
public static String getQuietTimeStarts() { public static String getQuietTimeStarts() {
return mQuietTimeStarts; return mQuietTimeStarts;
} }

View File

@ -79,6 +79,8 @@ public class Prefs extends K9PreferenceActivity {
private static final String PREFERENCE_MESSAGEVIEW_RETURN_TO_LIST = "messageview_return_to_list"; private static final String PREFERENCE_MESSAGEVIEW_RETURN_TO_LIST = "messageview_return_to_list";
private static final String PREFERENCE_MESSAGEVIEW_SHOW_NEXT = "messageview_show_next"; private static final String PREFERENCE_MESSAGEVIEW_SHOW_NEXT = "messageview_show_next";
private static final String PREFERENCE_QUIET_TIME_ENABLED = "quiet_time_enabled"; private static final String PREFERENCE_QUIET_TIME_ENABLED = "quiet_time_enabled";
private static final String PREFERENCE_DISABLE_NOTIFICATION_DURING_QUIET_TIME =
"disable_notifications_during_quiet_time";
private static final String PREFERENCE_QUIET_TIME_STARTS = "quiet_time_starts"; 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_QUIET_TIME_ENDS = "quiet_time_ends";
private static final String PREFERENCE_NOTIF_QUICK_DELETE = "notification_quick_delete"; private static final String PREFERENCE_NOTIF_QUICK_DELETE = "notification_quick_delete";
@ -142,6 +144,7 @@ public class Prefs extends K9PreferenceActivity {
private CheckBoxListPreference mVisibleRefileActions; private CheckBoxListPreference mVisibleRefileActions;
private CheckBoxPreference mQuietTimeEnabled; private CheckBoxPreference mQuietTimeEnabled;
private CheckBoxPreference mDisableNotificationDuringQuietTime;
private com.fsck.k9.preferences.TimePickerPreference mQuietTimeStarts; private com.fsck.k9.preferences.TimePickerPreference mQuietTimeStarts;
private com.fsck.k9.preferences.TimePickerPreference mQuietTimeEnds; private com.fsck.k9.preferences.TimePickerPreference mQuietTimeEnds;
private ListPreference mNotificationQuickDelete; private ListPreference mNotificationQuickDelete;
@ -309,6 +312,9 @@ public class Prefs extends K9PreferenceActivity {
mQuietTimeEnabled = (CheckBoxPreference) findPreference(PREFERENCE_QUIET_TIME_ENABLED); mQuietTimeEnabled = (CheckBoxPreference) findPreference(PREFERENCE_QUIET_TIME_ENABLED);
mQuietTimeEnabled.setChecked(K9.getQuietTimeEnabled()); mQuietTimeEnabled.setChecked(K9.getQuietTimeEnabled());
mDisableNotificationDuringQuietTime = (CheckBoxPreference) findPreference(
PREFERENCE_DISABLE_NOTIFICATION_DURING_QUIET_TIME);
mDisableNotificationDuringQuietTime.setChecked(!K9.isNotificationDuringQuietTimeEnabled());
mQuietTimeStarts = (TimePickerPreference) findPreference(PREFERENCE_QUIET_TIME_STARTS); mQuietTimeStarts = (TimePickerPreference) findPreference(PREFERENCE_QUIET_TIME_STARTS);
mQuietTimeStarts.setDefaultValue(K9.getQuietTimeStarts()); mQuietTimeStarts.setDefaultValue(K9.getQuietTimeStarts());
mQuietTimeStarts.setSummary(K9.getQuietTimeStarts()); mQuietTimeStarts.setSummary(K9.getQuietTimeStarts());
@ -485,6 +491,7 @@ public class Prefs extends K9PreferenceActivity {
K9.setMessageViewCopyActionVisible(enabledRefileActions[VISIBLE_REFILE_ACTIONS_COPY]); K9.setMessageViewCopyActionVisible(enabledRefileActions[VISIBLE_REFILE_ACTIONS_COPY]);
K9.setMessageViewSpamActionVisible(enabledRefileActions[VISIBLE_REFILE_ACTIONS_SPAM]); K9.setMessageViewSpamActionVisible(enabledRefileActions[VISIBLE_REFILE_ACTIONS_SPAM]);
K9.setNotificationDuringQuietTimeEnabled(!mDisableNotificationDuringQuietTime.isChecked());
K9.setQuietTimeStarts(mQuietTimeStarts.getTime()); K9.setQuietTimeStarts(mQuietTimeStarts.getTime());
K9.setQuietTimeEnds(mQuietTimeEnds.getTime()); K9.setQuietTimeEnds(mQuietTimeEnds.getTime());
K9.setWrapFolderNames(mWrapFolderNames.isChecked()); K9.setWrapFolderNames(mWrapFolderNames.isChecked());

View File

@ -4715,8 +4715,11 @@ public class MessagingController implements Runnable {
/** /**
* Creates a notification of a newly received message. * Creates a notification of a newly received message.
*/ */
private void notifyAccount(Context context, Account account, private void notifyAccount(Context context, Account account, LocalMessage message, int previousUnreadMessageCount) {
LocalMessage message, int previousUnreadMessageCount) { if (K9.isQuietTime() && !K9.isNotificationDuringQuietTimeEnabled()) {
return;
}
final NotificationData data = getNotificationData(account, previousUnreadMessageCount); final NotificationData data = getNotificationData(account, previousUnreadMessageCount);
synchronized (data) { synchronized (data) {
notifyAccountWithDataLocked(context, account, message, data); notifyAccountWithDataLocked(context, account, message, data);

View File

@ -266,6 +266,9 @@ public class GlobalSettings {
new V(38, new EnumSetting<NotificationQuickDelete>(NotificationQuickDelete.class, new V(38, new EnumSetting<NotificationQuickDelete>(NotificationQuickDelete.class,
NotificationQuickDelete.NEVER)) NotificationQuickDelete.NEVER))
)); ));
s.put("notificationDuringQuietTimeEnabled", Settings.versions(
new V(39, new BooleanSetting(true))
));
SETTINGS = Collections.unmodifiableMap(s); SETTINGS = Collections.unmodifiableMap(s);

View File

@ -35,7 +35,7 @@ public class Settings {
* *
* @see SettingsExporter * @see SettingsExporter
*/ */
public static final int VERSION = 38; public static final int VERSION = 39;
public static Map<String, Object> validate(int version, Map<String, public static Map<String, Object> validate(int version, Map<String,
TreeMap<Integer, SettingsDescription>> settings, TreeMap<Integer, SettingsDescription>> settings,

View File

@ -353,6 +353,8 @@ Please submit bug reports, contribute new features and ask questions at
<string name="quiet_time">Quiet Time</string> <string name="quiet_time">Quiet Time</string>
<string name="quiet_time_description">Disable ringing, buzzing and flashing at night</string> <string name="quiet_time_description">Disable ringing, buzzing and flashing at night</string>
<string name="quiet_time_notification">Disable notifications</string>
<string name="quiet_time_notification_description">Completely disable notifications during Quiet Time</string>
<string name="quiet_time_starts">Quiet Time starts</string> <string name="quiet_time_starts">Quiet Time starts</string>
<string name="quiet_time_ends">Quiet Time ends</string> <string name="quiet_time_ends">Quiet Time ends</string>

View File

@ -303,6 +303,13 @@
android:title="@string/quiet_time" android:title="@string/quiet_time"
android:summary="@string/quiet_time_description" android:summary="@string/quiet_time_description"
/> />
<CheckBoxPreference
android:key="disable_notifications_during_quiet_time"
android:persistent="false"
android:dependency="quiet_time_enabled"
android:title="@string/quiet_time_notification"
android:summary="@string/quiet_time_notification_description"
/>
<com.fsck.k9.preferences.TimePickerPreference <com.fsck.k9.preferences.TimePickerPreference
android:key="quiet_time_starts" android:key="quiet_time_starts"
android:persistent="false" android:persistent="false"