From 58e3eb7266df677932524184fbd2e96c05ca3608 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Tue, 5 Jan 2016 10:31:13 -0500 Subject: [PATCH] DND Visual interruptions: don't turn screen on. Change-Id: I15b66918e53e733c779cf8f79d12e03a213fb26d --- res/values/strings.xml | 6 ++++++ .../zen_mode_visual_interruptions_settings.xml | 5 +++++ .../ZenModeVisualInterruptionSettings.java | 16 ++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/res/values/strings.xml b/res/values/strings.xml index 86a6195a584..b91a3fc5428 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5991,6 +5991,12 @@ Prevent notifications silenced by Do Not Disturb from causing the light to pulse + + Never turn on the screen + + + If the screen is off, prevent notifications silenced by Do Not Disturb from turning it on + Notification settings diff --git a/res/xml/zen_mode_visual_interruptions_settings.xml b/res/xml/zen_mode_visual_interruptions_settings.xml index 8131650dd58..8f67e08322e 100644 --- a/res/xml/zen_mode_visual_interruptions_settings.xml +++ b/res/xml/zen_mode_visual_interruptions_settings.xml @@ -28,4 +28,9 @@ android:summary="@string/zen_mode_lights_summary" android:persistent="false" /> + + diff --git a/src/com/android/settings/notification/ZenModeVisualInterruptionSettings.java b/src/com/android/settings/notification/ZenModeVisualInterruptionSettings.java index ba1b3784072..46e0cfeb4db 100644 --- a/src/com/android/settings/notification/ZenModeVisualInterruptionSettings.java +++ b/src/com/android/settings/notification/ZenModeVisualInterruptionSettings.java @@ -38,9 +38,11 @@ public class ZenModeVisualInterruptionSettings extends ZenModeSettingsBase { private static final String KEY_PEEK = "peek"; private static final String KEY_LIGHTS = "lights"; + private static final String KEY_SCREEN_ON = "screen_on"; private SwitchPreference mPeek; private SwitchPreference mLights; + private SwitchPreference mScreenOn; private boolean mDisableListeners; private NotificationManager.Policy mPolicy; @@ -78,6 +80,19 @@ public class ZenModeVisualInterruptionSettings extends ZenModeSettingsBase { return true; } }); + + mScreenOn = (SwitchPreference) root.findPreference(KEY_SCREEN_ON); + mScreenOn.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (mDisableListeners) return true; + final boolean val = (Boolean) newValue; + MetricsLogger.action(mContext, MetricsLogger.ACTION_ZEN_ALLOW_SCREEN_ON, val); + if (DEBUG) Log.d(TAG, "onPrefChange suppressScreenOn=" + val); + savePolicy(getNewSuppressedEffects(val, Policy.SUPPRESSED_EFFECT_SCREEN_ON)); + return true; + } + }); } @Override @@ -100,6 +115,7 @@ public class ZenModeVisualInterruptionSettings extends ZenModeSettingsBase { mDisableListeners = true; mPeek.setChecked(isEffectSuppressed(Policy.SUPPRESSED_EFFECT_PEEK)); mLights.setChecked(isEffectSuppressed(Policy.SUPPRESSED_EFFECT_LIGHTS)); + mScreenOn.setChecked(isEffectSuppressed(Policy.SUPPRESSED_EFFECT_SCREEN_ON)); mDisableListeners = false; }