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

Commit e06093da authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Lazy load BiometricUnlockController" into rvc-dev am: 261f1caf am: 545ee87b

Change-Id: Ic643f0e2b744fb8dc86bbfa035ed155a46504a68
parents c2542125 545ee87b
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -51,6 +51,8 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
import javax.inject.Inject;
import javax.inject.Singleton;

import dagger.Lazy;

/**
 * Automotive implementation of the {@link KeyguardViewController}. It controls the Keyguard View
 * that is mounted to the SystemUIOverlayWindow.
@@ -66,9 +68,10 @@ public class CarKeyguardViewController extends OverlayViewController implements
    private final CarServiceProvider mCarServiceProvider;
    private final KeyguardStateController mKeyguardStateController;
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
    private final LockPatternUtils mLockPatternUtils;
    private final FalsingManager mFalsingManager;
    private final KeyguardBypassController mKeyguardBypassController;
    private final Lazy<KeyguardBypassController> mKeyguardBypassControllerLazy;
    private final DismissCallbackRegistry mDismissCallbackRegistry;
    private final ViewMediatorCallback mViewMediatorCallback;
    private final CarNavigationBarController mCarNavigationBarController;
@@ -109,14 +112,14 @@ public class CarKeyguardViewController extends OverlayViewController implements
            OverlayViewGlobalStateController overlayViewGlobalStateController,
            KeyguardStateController keyguardStateController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            BiometricUnlockController biometricUnlockController,
            Lazy<BiometricUnlockController> biometricUnlockControllerLazy,
            ViewMediatorCallback viewMediatorCallback,
            CarNavigationBarController carNavigationBarController,
            /* The params below are only used to reuse KeyguardBouncer */
            LockPatternUtils lockPatternUtils,
            DismissCallbackRegistry dismissCallbackRegistry,
            FalsingManager falsingManager,
            KeyguardBypassController keyguardBypassController) {
            Lazy<KeyguardBypassController> keyguardBypassControllerLazy) {

        super(R.id.keyguard_stub, overlayViewGlobalStateController);

@@ -125,14 +128,14 @@ public class CarKeyguardViewController extends OverlayViewController implements
        mCarServiceProvider = carServiceProvider;
        mKeyguardStateController = keyguardStateController;
        mKeyguardUpdateMonitor = keyguardUpdateMonitor;
        mBiometricUnlockControllerLazy = biometricUnlockControllerLazy;
        mLockPatternUtils = lockPatternUtils;
        mFalsingManager = falsingManager;
        mKeyguardBypassController = keyguardBypassController;
        mKeyguardBypassControllerLazy = keyguardBypassControllerLazy;
        mDismissCallbackRegistry = dismissCallbackRegistry;
        mViewMediatorCallback = viewMediatorCallback;
        mCarNavigationBarController = carNavigationBarController;

        biometricUnlockController.setKeyguardViewController(this);
        registerUserSwitchedListener();
    }

@@ -142,7 +145,8 @@ public class CarKeyguardViewController extends OverlayViewController implements
                mViewMediatorCallback, mLockPatternUtils,
                getLayout().findViewById(R.id.keyguard_container), mDismissCallbackRegistry,
                mExpansionCallback, mKeyguardStateController, mFalsingManager,
                mKeyguardBypassController);
                mKeyguardBypassControllerLazy.get());
        mBiometricUnlockControllerLazy.get().setKeyguardViewController(this);
    }

    @Override
+9 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.car.window;

import android.content.Context;
import android.util.Log;

import com.android.systemui.R;
import com.android.systemui.SystemUI;
@@ -35,7 +36,7 @@ import javax.inject.Singleton;
 */
@Singleton
public class SystemUIOverlayWindowManager extends SystemUI {
    private static final String TAG = "SystemUIOverlayWindowManager";
    private static final String TAG = "SystemUIOverlayWM";
    private final Map<Class<?>, Provider<OverlayViewMediator>>
            mContentMediatorCreators;
    private final OverlayViewGlobalStateController mOverlayViewGlobalStateController;
@@ -59,6 +60,7 @@ public class SystemUIOverlayWindowManager extends SystemUI {

    private void startServices(String[] services) {
        for (String clsName : services) {
            long ti = System.currentTimeMillis();
            try {
                OverlayViewMediator obj = resolveContentMediator(clsName);
                if (obj == null) {
@@ -73,6 +75,12 @@ public class SystemUIOverlayWindowManager extends SystemUI {
                    | InvocationTargetException ex) {
                throw new RuntimeException(ex);
            }

            // Warn if initialization of component takes too long
            ti = System.currentTimeMillis() - ti;
            if (ti > 200) {
                Log.w(TAG, "Initialization of " + clsName + " took " + ti + " ms");
            }
        }
    }

+8 −6
Original line number Diff line number Diff line
@@ -54,6 +54,8 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import dagger.Lazy;

@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
public class CarKeyguardViewControllerTest extends SysuiTestCase {
@@ -88,13 +90,13 @@ public class CarKeyguardViewControllerTest extends SysuiTestCase {
                mOverlayViewGlobalStateController,
                mock(KeyguardStateController.class),
                mock(KeyguardUpdateMonitor.class),
                mock(BiometricUnlockController.class),
                () -> mock(BiometricUnlockController.class),
                mock(ViewMediatorCallback.class),
                mock(CarNavigationBarController.class),
                mock(LockPatternUtils.class),
                mock(DismissCallbackRegistry.class),
                mock(FalsingManager.class),
                mock(KeyguardBypassController.class)
                () -> mock(KeyguardBypassController.class)
        );
    }

@@ -186,17 +188,17 @@ public class CarKeyguardViewControllerTest extends SysuiTestCase {
                OverlayViewGlobalStateController overlayViewGlobalStateController,
                KeyguardStateController keyguardStateController,
                KeyguardUpdateMonitor keyguardUpdateMonitor,
                BiometricUnlockController biometricUnlockController,
                Lazy<BiometricUnlockController> biometricUnlockControllerLazy,
                ViewMediatorCallback viewMediatorCallback,
                CarNavigationBarController carNavigationBarController,
                LockPatternUtils lockPatternUtils,
                DismissCallbackRegistry dismissCallbackRegistry,
                FalsingManager falsingManager,
                KeyguardBypassController keyguardBypassController) {
                Lazy<KeyguardBypassController> keyguardBypassControllerLazy) {
            super(context, mainHandler, carServiceProvider, overlayViewGlobalStateController,
                    keyguardStateController, keyguardUpdateMonitor, biometricUnlockController,
                    keyguardStateController, keyguardUpdateMonitor, biometricUnlockControllerLazy,
                    viewMediatorCallback, carNavigationBarController, lockPatternUtils,
                    dismissCallbackRegistry, falsingManager, keyguardBypassController);
                    dismissCallbackRegistry, falsingManager, keyguardBypassControllerLazy);
        }

        @Override