Merge "Lazy load BiometricUnlockController" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-04-28 18:20:16 +00:00
committed by Android (Google) Code Review
3 changed files with 27 additions and 13 deletions

View File

@@ -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

View File

@@ -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");
}
}
}

View File

@@ -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