From 68248119c2171b786cd85e18524b82dd0b4705c1 Mon Sep 17 00:00:00 2001 From: shawnlin Date: Tue, 26 Mar 2019 20:58:32 +0800 Subject: [PATCH] Fixed incorrect color of volume panel after theme change Apply theme change to volume panel. Fixes: 127674670 Test: manual - enable battery saver and talk back then check the volume panel Change-Id: I48f292012ef3abec45f35836aad9c261cd9a039c --- .../android/systemui/volume/VolumeDialogImpl.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index bd7824df1d242..e5f709a995e59 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -95,6 +95,7 @@ import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.VolumeDialogController.State; import com.android.systemui.plugins.VolumeDialogController.StreamState; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; +import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import java.io.PrintWriter; @@ -108,7 +109,8 @@ import java.util.List; * * Methods ending in "H" must be called on the (ui) handler. */ -public class VolumeDialogImpl implements VolumeDialog { +public class VolumeDialogImpl implements VolumeDialog, + ConfigurationController.ConfigurationListener { private static final String TAG = Util.logTag(VolumeDialogImpl.class); private static final long USER_ATTEMPT_GRACE_PERIOD = 1000; @@ -175,6 +177,11 @@ public class VolumeDialogImpl implements VolumeDialog { Prefs.getBoolean(context, Prefs.Key.HAS_SEEN_ODI_CAPTIONS_TOOLTIP, false); } + @Override + public void onUiModeChanged() { + mContext.getTheme().applyStyle(mContext.getThemeResId(), true); + } + public void init(int windowType, Callback callback) { initDialog(); @@ -182,12 +189,15 @@ public class VolumeDialogImpl implements VolumeDialog { mController.addCallback(mControllerCallbackH, mHandler); mController.getState(); + + Dependency.get(ConfigurationController.class).addCallback(this); } @Override public void destroy() { mController.removeCallback(mControllerCallbackH); mHandler.removeCallbacksAndMessages(null); + Dependency.get(ConfigurationController.class).removeCallback(this); } private void initDialog() {