From bd775d9f62194c80528e43965a4914b4ebb83085 Mon Sep 17 00:00:00 2001 From: Beverly Date: Thu, 14 Dec 2017 09:37:01 -0500 Subject: [PATCH] ZenModeBackend gets newest notification policy Previously, notification policy wouldn't be updated so behavior zen mode settings pages wouldn't update when an app changed the notification policy. Now notification policy will be updated on updateState of each AbstractZenModePreferenceController. Bug: 70662324 Test: make RunSettingsRoboTests -j40 Change-Id: Ibee20e4f27e0c833e05230ea8a3ea2cc75ae6bf0 --- .../AbstractZenModePreferenceController.java | 16 ++++++++++++---- .../ZenModeAlarmsPreferenceController.java | 2 -- .../settings/notification/ZenModeBackend.java | 1 - .../ZenModeButtonPreferenceController.java | 2 -- .../ZenModeCallsPreferenceController.java | 2 -- .../ZenModeEventsPreferenceController.java | 2 -- .../ZenModeMessagesPreferenceController.java | 2 -- .../ZenModeRemindersPreferenceController.java | 2 -- ...ZenModeRepeatCallersPreferenceController.java | 2 -- .../ZenModeScreenOffPreferenceController.java | 2 -- .../ZenModeScreenOnPreferenceController.java | 2 -- 11 files changed, 12 insertions(+), 23 deletions(-) diff --git a/src/com/android/settings/notification/AbstractZenModePreferenceController.java b/src/com/android/settings/notification/AbstractZenModePreferenceController.java index 33c027cd789..81ceca19c77 100644 --- a/src/com/android/settings/notification/AbstractZenModePreferenceController.java +++ b/src/com/android/settings/notification/AbstractZenModePreferenceController.java @@ -31,7 +31,6 @@ import android.service.notification.ScheduleCalendar; import android.service.notification.ZenModeConfig; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; -import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.core.PreferenceControllerMixin; @@ -54,6 +53,7 @@ abstract public class AbstractZenModePreferenceController extends final private NotificationManager mNotificationManager; protected static ZenModeConfigWrapper mZenModeConfigWrapper; protected MetricsFeatureProvider mMetricsFeatureProvider; + protected final ZenModeBackend mBackend; public AbstractZenModePreferenceController(Context context, String key, Lifecycle lifecycle) { @@ -68,6 +68,7 @@ abstract public class AbstractZenModePreferenceController extends final FeatureFactory featureFactory = FeatureFactory.getFactory(mContext); mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider(); + mBackend = ZenModeBackend.getInstance(context); } @Override @@ -90,6 +91,14 @@ abstract public class AbstractZenModePreferenceController extends } } + @Override + public void updateState(Preference preference) { + super.updateState(preference); + + mBackend.updatePolicy(); + mBackend.updateZenMode(); + } + protected NotificationManager.Policy getPolicy() { return mNotificationManager.getNotificationPolicy(); } @@ -99,8 +108,8 @@ abstract public class AbstractZenModePreferenceController extends } protected int getZenMode() { - return Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.ZEN_MODE, 0); + return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.ZEN_MODE, + mBackend.mZenMode); } class SettingObserver extends ContentObserver { @@ -188,7 +197,6 @@ abstract public class AbstractZenModePreferenceController extends } } - return endTimeMs; } diff --git a/src/com/android/settings/notification/ZenModeAlarmsPreferenceController.java b/src/com/android/settings/notification/ZenModeAlarmsPreferenceController.java index a15f7fca550..af5910760e3 100644 --- a/src/com/android/settings/notification/ZenModeAlarmsPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeAlarmsPreferenceController.java @@ -30,11 +30,9 @@ public class ZenModeAlarmsPreferenceController extends AbstractZenModePreferenceController implements Preference.OnPreferenceChangeListener { protected static final String KEY = "zen_mode_alarms"; - private final ZenModeBackend mBackend; public ZenModeAlarmsPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override diff --git a/src/com/android/settings/notification/ZenModeBackend.java b/src/com/android/settings/notification/ZenModeBackend.java index 945da0b9ca7..6cee28e26aa 100644 --- a/src/com/android/settings/notification/ZenModeBackend.java +++ b/src/com/android/settings/notification/ZenModeBackend.java @@ -82,7 +82,6 @@ public class ZenModeBackend { mZenMode = zenMode; } - /** gets last zen mode set by setZenMode or updateZenMode **/ protected int getZenMode() { mZenMode = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.ZEN_MODE, mZenMode); diff --git a/src/com/android/settings/notification/ZenModeButtonPreferenceController.java b/src/com/android/settings/notification/ZenModeButtonPreferenceController.java index 1886dab1524..f5169f04500 100644 --- a/src/com/android/settings/notification/ZenModeButtonPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeButtonPreferenceController.java @@ -34,11 +34,9 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference protected static final String KEY = "zen_mode_settings_button_container"; private Button mZenButtonOn; private Button mZenButtonOff; - private ZenModeBackend mBackend; public ZenModeButtonPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override diff --git a/src/com/android/settings/notification/ZenModeCallsPreferenceController.java b/src/com/android/settings/notification/ZenModeCallsPreferenceController.java index d952c11c149..3e2f8022f58 100644 --- a/src/com/android/settings/notification/ZenModeCallsPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeCallsPreferenceController.java @@ -26,11 +26,9 @@ import com.android.settingslib.core.lifecycle.Lifecycle; public class ZenModeCallsPreferenceController extends AbstractZenModePreferenceController { protected static final String KEY = "zen_mode_calls"; - private final ZenModeBackend mBackend; public ZenModeCallsPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override diff --git a/src/com/android/settings/notification/ZenModeEventsPreferenceController.java b/src/com/android/settings/notification/ZenModeEventsPreferenceController.java index be5e6d6e925..44234949a15 100644 --- a/src/com/android/settings/notification/ZenModeEventsPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeEventsPreferenceController.java @@ -31,11 +31,9 @@ public class ZenModeEventsPreferenceController extends AbstractZenModePreference implements Preference.OnPreferenceChangeListener { protected static final String KEY = "zen_mode_events"; - private final ZenModeBackend mBackend; public ZenModeEventsPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override diff --git a/src/com/android/settings/notification/ZenModeMessagesPreferenceController.java b/src/com/android/settings/notification/ZenModeMessagesPreferenceController.java index dad6cf13e5c..0ffc44d4b7f 100644 --- a/src/com/android/settings/notification/ZenModeMessagesPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeMessagesPreferenceController.java @@ -10,11 +10,9 @@ import com.android.settingslib.core.lifecycle.Lifecycle; public class ZenModeMessagesPreferenceController extends AbstractZenModePreferenceController { protected static final String KEY = "zen_mode_messages"; - private final ZenModeBackend mBackend; public ZenModeMessagesPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override diff --git a/src/com/android/settings/notification/ZenModeRemindersPreferenceController.java b/src/com/android/settings/notification/ZenModeRemindersPreferenceController.java index 99a4f0d7b64..b6c29223584 100644 --- a/src/com/android/settings/notification/ZenModeRemindersPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeRemindersPreferenceController.java @@ -30,11 +30,9 @@ public class ZenModeRemindersPreferenceController extends AbstractZenModePrefere implements Preference.OnPreferenceChangeListener { protected static final String KEY = "zen_mode_reminders"; - private final ZenModeBackend mBackend; public ZenModeRemindersPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override diff --git a/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceController.java b/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceController.java index 82fe865885c..d5c0a007119 100644 --- a/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceController.java @@ -30,11 +30,9 @@ public class ZenModeRepeatCallersPreferenceController extends AbstractZenModePre implements Preference.OnPreferenceChangeListener { protected static final String KEY = "zen_mode_repeat_callers"; - private final ZenModeBackend mBackend; public ZenModeRepeatCallersPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override diff --git a/src/com/android/settings/notification/ZenModeScreenOffPreferenceController.java b/src/com/android/settings/notification/ZenModeScreenOffPreferenceController.java index 0ba24c07a9c..81c9b0d3f72 100644 --- a/src/com/android/settings/notification/ZenModeScreenOffPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeScreenOffPreferenceController.java @@ -29,11 +29,9 @@ public class ZenModeScreenOffPreferenceController extends AbstractZenModePreferenceController implements Preference.OnPreferenceChangeListener { protected static final String KEY = "zen_mode_screen_off"; - private final ZenModeBackend mBackend; public ZenModeScreenOffPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override diff --git a/src/com/android/settings/notification/ZenModeScreenOnPreferenceController.java b/src/com/android/settings/notification/ZenModeScreenOnPreferenceController.java index bcb1af89a0b..bab4dd1abce 100644 --- a/src/com/android/settings/notification/ZenModeScreenOnPreferenceController.java +++ b/src/com/android/settings/notification/ZenModeScreenOnPreferenceController.java @@ -29,11 +29,9 @@ public class ZenModeScreenOnPreferenceController extends AbstractZenModePreferenceController implements Preference.OnPreferenceChangeListener { protected static final String KEY = "zen_mode_screen_on"; - private final ZenModeBackend mBackend; public ZenModeScreenOnPreferenceController(Context context, Lifecycle lifecycle) { super(context, KEY, lifecycle); - mBackend = ZenModeBackend.getInstance(context); } @Override