diff options
5 files changed, 29 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index 5daee6c2b924..91a0e6fedef8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -33,7 +33,6 @@ import static com.android.systemui.plugins.FalsingManager.LOW_PENALTY; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; -import android.app.ActivityManager; import android.app.IActivityManager; import android.app.admin.DevicePolicyManager; import android.content.BroadcastReceiver; @@ -147,6 +146,7 @@ public class KeyguardIndicationController implements KeyguardStateController.Cal private long mChargingTimeRemaining; private String mMessageToShowOnScreenOn; protected int mLockScreenMode; + private boolean mInited; private KeyguardUpdateMonitorCallback mUpdateMonitorCallback; @@ -174,7 +174,9 @@ public class KeyguardIndicationController implements KeyguardStateController.Cal IBatteryStats iBatteryStats, UserManager userManager, @Main DelayableExecutor executor, - FalsingManager falsingManager) { + FalsingManager falsingManager, + LockPatternUtils lockPatternUtils, + IActivityManager iActivityManager) { mContext = context; mBroadcastDispatcher = broadcastDispatcher; mDevicePolicyManager = devicePolicyManager; @@ -182,17 +184,26 @@ public class KeyguardIndicationController implements KeyguardStateController.Cal mStatusBarStateController = statusBarStateController; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mDockManager = dockManager; - mDockManager.addAlignmentStateListener( - alignState -> mHandler.post(() -> handleAlignStateChanged(alignState))); mWakeLock = new SettableWakeLock( wakeLockBuilder.setTag("Doze:KeyguardIndication").build(), TAG); mBatteryInfo = iBatteryStats; mUserManager = userManager; mExecutor = executor; - mLockPatternUtils = new LockPatternUtils(context); - mIActivityManager = ActivityManager.getService(); + mLockPatternUtils = lockPatternUtils; + mIActivityManager = iActivityManager; mFalsingManager = falsingManager; + } + + /** Call this after construction to finish setting up the instance. */ + public void init() { + if (mInited) { + return; + } + mInited = true; + + mDockManager.addAlignmentStateListener( + alignState -> mHandler.post(() -> handleAlignStateChanged(alignState))); mKeyguardUpdateMonitor.registerCallback(getKeyguardCallback()); mKeyguardUpdateMonitor.registerCallback(mTickReceiver); mStatusBarStateController.addCallback(mStatusBarStateListener); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 075a0c86dc6d..12dec14dabd0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -4071,6 +4071,7 @@ public class NotificationPanelViewController extends PanelViewController { // force a call to onThemeChanged mConfigurationListener.onThemeChanged(); mFalsingManager.addTapListener(mFalsingTapListener); + mKeyguardIndicationController.init(); } @Override 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 cae7e354465b..52332813faf0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -909,6 +909,8 @@ public class StatusBar extends SystemUI implements DemoMode, mBroadcastDispatcher.registerReceiver(mTaskbarChangeReceiver, filter); } + mKeyguardIndicationController.init(); + mColorExtractor.addOnColorsChangedListener(this); mStatusBarStateController.addCallback(this, SysuiStatusBarStateController.RANK_STATUS_BAR); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java index 2b5caf91e024..75c544d3aa4b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java @@ -194,6 +194,7 @@ public class StatusBarNotificationPresenter implements NotificationPresenter, } }; + mKeyguardIndicationController.init(); mViewHierarchyManager.setUpWithPresenter(this, stackScrollerController.getNotificationListContainer()); mEntryManager.setUpWithPresenter(this); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java index 6f0ae223540d..b8db1156b85d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java @@ -46,6 +46,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.app.IActivityManager; import android.app.Instrumentation; import android.app.admin.DevicePolicyManager; import android.app.trust.TrustManager; @@ -69,6 +70,7 @@ import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.app.IBatteryStats; +import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.settingslib.Utils; import com.android.settingslib.fuelgauge.BatteryStatus; @@ -141,6 +143,10 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase { private KeyguardIndicationRotateTextViewController mRotateTextViewController; @Mock private FalsingManager mFalsingManager; + @Mock + private LockPatternUtils mLockPatternUtils; + @Mock + private IActivityManager mIActivityManager; @Captor private ArgumentCaptor<DockManager.AlignmentStateListener> mAlignmentListener; @Captor @@ -208,7 +214,8 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase { mController = new KeyguardIndicationController(mContext, mWakeLockBuilder, mKeyguardStateController, mStatusBarStateController, mKeyguardUpdateMonitor, mDockManager, mBroadcastDispatcher, mDevicePolicyManager, mIBatteryStats, - mUserManager, mExecutor, mFalsingManager); + mUserManager, mExecutor, mFalsingManager, mLockPatternUtils, mIActivityManager); + mController.init(); mController.setIndicationArea(mIndicationArea); verify(mStatusBarStateController).addCallback(mStatusBarStateListenerCaptor.capture()); mStatusBarStateListener = mStatusBarStateListenerCaptor.getValue(); |