Merge "Lazy load BiometricUnlockController" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
261f1cafc6
@@ -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
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user