diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java index 86ef0a727831e..01d489f91de2e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java @@ -39,6 +39,8 @@ import com.android.systemui.tuner.TunerService; import java.io.FileDescriptor; import java.io.PrintWriter; +import java.util.HashSet; +import java.util.Set; import javax.inject.Inject; @@ -62,6 +64,8 @@ public class DozeParameters implements TunerService.Tunable, private final BatteryController mBatteryController; private final FeatureFlags mFeatureFlags; + private final Set mCallbacks = new HashSet<>(); + private boolean mDozeAlwaysOn; private boolean mControlScreenOffAnimation; @@ -250,9 +254,26 @@ public class DozeParameters implements TunerService.Tunable, return mResources.getBoolean(R.bool.doze_long_press_uses_prox); } + /** + * Callback to listen for DozeParameter changes. + */ + public void addCallback(Callback callback) { + mCallbacks.add(callback); + } + + /** + * Remove callback that listens for DozeParameter changes. + */ + public void removeCallback(Callback callback) { + mCallbacks.remove(callback); + } + @Override public void onTuningChanged(String key, String newValue) { mDozeAlwaysOn = mAmbientDisplayConfiguration.alwaysOnEnabled(UserHandle.USER_CURRENT); + for (Callback callback : mCallbacks) { + callback.onAlwaysOnChange(); + } } @Override @@ -270,4 +291,11 @@ public class DozeParameters implements TunerService.Tunable, pw.print("getSelectivelyRegisterSensorsUsingProx(): "); pw.println(getSelectivelyRegisterSensorsUsingProx()); } + + interface Callback { + /** + * Invoked when the value of getAlwaysOn may have changed. + */ + void onAlwaysOnChange(); + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index dd9ebfcd03de0..137b7226f1371 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -241,7 +241,6 @@ import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener; import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import com.android.systemui.statusbar.policy.UserSwitcherController; -import com.android.systemui.tuner.TunerService; import com.android.systemui.volume.VolumeComponent; import com.android.systemui.wmshell.BubblesManager; import com.android.wm.shell.bubbles.Bubbles; @@ -800,7 +799,6 @@ public class StatusBar extends SystemUI implements DemoMode, OngoingCallController ongoingCallController, SystemStatusAnimationScheduler animationScheduler, PrivacyDotViewController dotViewController, - TunerService tunerService, FeatureFlags featureFlags, KeyguardUnlockAnimationController keyguardUnlockAnimationController) { super(context); @@ -886,15 +884,6 @@ public class StatusBar extends SystemUI implements DemoMode, mDotViewController = dotViewController; mFeatureFlags = featureFlags; - tunerService.addTunable( - (key, newValue) -> { - if (key.equals(Settings.Secure.DOZE_ALWAYS_ON)) { - updateLightRevealScrimVisibility(); - } - }, - Settings.Secure.DOZE_ALWAYS_ON - ); - mExpansionChangedListeners = new ArrayList<>(); mBubbleExpandListener = @@ -1038,6 +1027,7 @@ public class StatusBar extends SystemUI implements DemoMode, mNotificationShadeWindowViewController, mNotificationPanelViewController, mAmbientIndicationContainer); + mDozeParameters.addCallback(this::updateLightRevealScrimVisibility); mConfigurationController.addCallback(this); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java index 4795e8a3d35a5..66e1c2e1b5719 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java @@ -103,7 +103,6 @@ import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import com.android.systemui.statusbar.policy.UserSwitcherController; -import com.android.systemui.tuner.TunerService; import com.android.systemui.volume.VolumeComponent; import com.android.systemui.wmshell.BubblesManager; import com.android.wm.shell.bubbles.Bubbles; @@ -214,7 +213,6 @@ public interface StatusBarPhoneModule { OngoingCallController ongoingCallController, SystemStatusAnimationScheduler animationScheduler, PrivacyDotViewController dotViewController, - TunerService tunerService, FeatureFlags featureFlags, KeyguardUnlockAnimationController keyguardUnlockAnimationController) { return new StatusBar( @@ -301,7 +299,6 @@ public interface StatusBarPhoneModule { ongoingCallController, animationScheduler, dotViewController, - tunerService, featureFlags, keyguardUnlockAnimationController); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index 8c8212cdb56c0..545e2e08ec07e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -146,7 +146,6 @@ import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler; import com.android.systemui.statusbar.policy.UserInfoControllerImpl; import com.android.systemui.statusbar.policy.UserSwitcherController; -import com.android.systemui.tuner.TunerService; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.time.FakeSystemClock; import com.android.systemui.volume.VolumeComponent; @@ -269,7 +268,6 @@ public class StatusBarTest extends SysuiTestCase { @Mock private OngoingCallController mOngoingCallController; @Mock private SystemStatusAnimationScheduler mAnimationScheduler; @Mock private PrivacyDotViewController mDotViewController; - @Mock private TunerService mTunerService; @Mock private FeatureFlags mFeatureFlags; @Mock private IWallpaperManager mWallpaperManager; @Mock private KeyguardUnlockAnimationController mKeyguardUnlockAnimationController; @@ -440,7 +438,6 @@ public class StatusBarTest extends SysuiTestCase { mOngoingCallController, mAnimationScheduler, mDotViewController, - mTunerService, mFeatureFlags, mKeyguardUnlockAnimationController); when(mKeyguardViewMediator.registerStatusBar(any(StatusBar.class), any(ViewGroup.class),