From 81a560a90dbccf060b45525cf615a338299bcf26 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Tue, 28 Jun 2016 10:01:28 -0400 Subject: [PATCH] Always apply config updates. In case the config and global settings are mismatched. Bug: 29617474 Change-Id: I3a3ae338dce45c7c7e579d56f6d05b581e0dd8f7 --- .../android/server/notification/ZenModeHelper.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 461c3a26ddd7e..c9a1f78a4bea1 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -332,14 +332,16 @@ public class ZenModeHelper { } mConditions.evaluateConfig(config, false /*processSubscriptions*/); // may modify config mConfigs.put(config.user, config); - if (config.equals(mConfig)) return true; if (DEBUG) Log.d(TAG, "setConfig reason=" + reason, new Throwable()); ZenLog.traceConfig(reason, mConfig, config); final boolean policyChanged = !Objects.equals(getNotificationPolicy(mConfig), getNotificationPolicy(config)); + boolean configChanged = !config.equals(mConfig); mConfig = config; - dispatchOnConfigChanged(); - if (policyChanged){ + if (configChanged) { + dispatchOnConfigChanged(); + } + if (policyChanged) { dispatchOnPolicyChanged(); } final String val = Integer.toString(mConfig.hashCode()); @@ -372,9 +374,9 @@ public class ZenModeHelper { private boolean evaluateZenMode(String reason, boolean setRingerMode) { if (DEBUG) Log.d(TAG, "evaluateZenMode"); + final int zenBefore = mZenMode; final ArraySet automaticRules = new ArraySet(); final int zen = computeZenMode(automaticRules); - if (zen == mZenMode) return false; ZenLog.traceSetZenMode(zen, reason); mZenMode = zen; updateRingerModeAffectedStreams(); @@ -383,7 +385,9 @@ public class ZenModeHelper { applyZenToRingerMode(); } applyRestrictions(); - mHandler.postDispatchOnZenModeChanged(); + if (zen != zenBefore) { + mHandler.postDispatchOnZenModeChanged(); + } return true; }