Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 032075cb authored by Heemin Seog's avatar Heemin Seog
Browse files

Inject StatusBarKeyguardViewManager into StatusBar

Test: manual (sdk_gphone_x86, hawk), atest SystemUITests
Change-Id: Ib65efeca27971ece2da5af37836ad0b095ebc6af
parent acea4976
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import com.android.car.notification.PreprocessingManager;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.statusbar.RegisterStatusBarResult;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.BatteryMeterView;
import com.android.systemui.CarSystemUIFactory;
import com.android.systemui.Dependency;
@@ -68,6 +69,7 @@ import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.classifier.FalsingLog;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.keyguard.WakefulnessLifecycle;
@@ -119,6 +121,7 @@ import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarWindowController;
import com.android.systemui.statusbar.phone.StatusBarWindowViewController;
import com.android.systemui.statusbar.policy.BatteryController;
@@ -298,6 +301,9 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
            Optional<Divider> dividerOptional,
            SuperStatusBarViewFactory superStatusBarViewFactory,
            LightsOutNotifController lightsOutNotifController,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
            ViewMediatorCallback viewMediatorCallback,
            DismissCallbackRegistry dismissCallbackRegistry,
            /* Car Settings injected components. */
            CarNavigationBarController carNavigationBarController) {
        super(
@@ -364,7 +370,10 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
                remoteInputUriController,
                dividerOptional,
                lightsOutNotifController,
                superStatusBarViewFactory);
                superStatusBarViewFactory,
                statusBarKeyguardViewManager,
                viewMediatorCallback,
                dismissCallbackRegistry);
        mScrimController = scrimController;
        mCarNavigationBarController = carNavigationBarController;
    }
+9 −0
Original line number Diff line number Diff line
@@ -24,11 +24,13 @@ import android.util.DisplayMetrics;

import com.android.internal.logging.MetricsLogger;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.UiOffloadThread;
import com.android.systemui.assist.AssistManager;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.keyguard.WakefulnessLifecycle;
@@ -73,6 +75,7 @@ import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarWindowController;
import com.android.systemui.statusbar.phone.StatusBarWindowViewController;
import com.android.systemui.statusbar.policy.BatteryController;
@@ -167,6 +170,9 @@ public class CarStatusBarModule {
            Optional<Divider> dividerOptional,
            SuperStatusBarViewFactory superStatusBarViewFactory,
            LightsOutNotifController lightsOutNotifController,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
            ViewMediatorCallback viewMediatorCallback,
            DismissCallbackRegistry dismissCallbackRegistry,
            CarNavigationBarController carNavigationBarController) {
        return new CarStatusBar(
                context,
@@ -232,6 +238,9 @@ public class CarStatusBarModule {
                dividerOptional,
                superStatusBarViewFactory,
                lightsOutNotifController,
                statusBarKeyguardViewManager,
                viewMediatorCallback,
                dismissCallbackRegistry,
                carNavigationBarController);
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -22,14 +22,21 @@ import com.android.systemui.UiOffloadThread;

import java.util.ArrayList;

import javax.inject.Inject;
import javax.inject.Singleton;

/**
 * Registry holding the current set of {@link IKeyguardDismissCallback}s.
 */
@Singleton
public class DismissCallbackRegistry {

    private final ArrayList<DismissCallbackWrapper> mDismissCallbacks = new ArrayList<>();
    private final UiOffloadThread mUiOffloadThread = Dependency.get(UiOffloadThread.class);

    @Inject
    public DismissCallbackRegistry() {}

    public void addCallback(IKeyguardDismissCallback callback) {
        mDismissCallbacks.add(new DismissCallbackWrapper(callback));
    }
+4 −2
Original line number Diff line number Diff line
@@ -283,7 +283,7 @@ public class KeyguardViewMediator extends SystemUI {
     * var being non-null as an indicator that there is an in progress request.
     */
    private IKeyguardExitCallback mExitSecureCallback;
    private final DismissCallbackRegistry mDismissCallbackRegistry = new DismissCallbackRegistry();
    private final DismissCallbackRegistry mDismissCallbackRegistry;

    // the properties of the keyguard

@@ -691,12 +691,14 @@ public class KeyguardViewMediator extends SystemUI {
            FalsingManager falsingManager,
            LockPatternUtils lockPatternUtils,
            BroadcastDispatcher broadcastDispatcher,
            Lazy<StatusBarKeyguardViewManager> statusBarKeyguardViewManagerLazy) {
            Lazy<StatusBarKeyguardViewManager> statusBarKeyguardViewManagerLazy,
            DismissCallbackRegistry dismissCallbackRegistry) {
        super(context);
        mFalsingManager = falsingManager;
        mLockPatternUtils = lockPatternUtils;
        mBroadcastDispatcher = broadcastDispatcher;
        mStatusBarKeyguardViewManagerLazy = statusBarKeyguardViewManagerLazy;
        mDismissCallbackRegistry = dismissCallbackRegistry;
    }

    public void userActivity() {
+14 −5
Original line number Diff line number Diff line
@@ -151,6 +151,7 @@ import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.doze.DozeHost;
import com.android.systemui.fragments.ExtensionFragmentListener;
import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.keyguard.KeyguardSliceProvider;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.keyguard.ScreenLifecycle;
@@ -389,6 +390,7 @@ public class StatusBar extends SystemUI implements DemoMode,
    private final Optional<Divider> mDividerOptional;
    private final SuperStatusBarViewFactory mSuperStatusBarViewFactory;
    private final LightsOutNotifController mLightsOutNotifController;
    private final DismissCallbackRegistry mDismissCallbackRegistry;

    // expanded notifications
    protected NotificationPanelView mNotificationPanel; // the sliding/resizing panel within the notification window
@@ -674,7 +676,10 @@ public class StatusBar extends SystemUI implements DemoMode,
            RemoteInputUriController remoteInputUriController,
            Optional<Divider> dividerOptional,
            LightsOutNotifController lightsOutNotifController,
            SuperStatusBarViewFactory superStatusBarViewFactory) {
            SuperStatusBarViewFactory superStatusBarViewFactory,
            StatusBarKeyguardViewManager statusBarKeyguardViewManager,
            ViewMediatorCallback viewMediatorCallback,
            DismissCallbackRegistry dismissCallbackRegistry) {
        super(context);
        mFeatureFlags = featureFlags;
        mLightBarController = lightBarController;
@@ -740,6 +745,10 @@ public class StatusBar extends SystemUI implements DemoMode,

        mSuperStatusBarViewFactory = superStatusBarViewFactory;
        mLightsOutNotifController =  lightsOutNotifController;
        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
        mKeyguardViewMediatorCallback = viewMediatorCallback;
        mDismissCallbackRegistry = dismissCallbackRegistry;

        mBubbleExpandListener =
                (isExpanding, key) -> {
                    mEntryManager.updateNotifications("onBubbleExpandChanged");
@@ -1390,17 +1399,17 @@ public class StatusBar extends SystemUI implements DemoMode,
    protected void startKeyguard() {
        Trace.beginSection("StatusBar#startKeyguard");
        mBiometricUnlockController = mBiometricUnlockControllerLazy.get();
        mStatusBarKeyguardViewManager = mKeyguardViewMediator.registerStatusBar(this,
                getBouncerContainer(), mNotificationPanel, mBiometricUnlockController,
        mStatusBarKeyguardViewManager.registerStatusBar(
                /* statusBar= */ this, getBouncerContainer(), mNotificationPanel,
                mBiometricUnlockController, mDismissCallbackRegistry,
                mStatusBarWindow.findViewById(R.id.lock_icon_container), mStackScroller,
                mKeyguardBypassController);
                mKeyguardBypassController, mFalsingManager);
        mKeyguardIndicationController
                .setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
        mBiometricUnlockController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
        mRemoteInputManager.getController().addCallback(mStatusBarKeyguardViewManager);
        mDynamicPrivacyController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);

        mKeyguardViewMediatorCallback = mKeyguardViewMediator.getViewMediatorCallback();
        mLightBarController.setBiometricUnlockController(mBiometricUnlockController);
        mMediaManager.setBiometricUnlockController(mBiometricUnlockController);
        Dependency.get(KeyguardDismissUtil.class).setDismissHandler(this::executeWhenUnlocked);
Loading