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.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import dagger.Lazy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Automotive implementation of the {@link KeyguardViewController}. It controls the Keyguard View
|
* Automotive implementation of the {@link KeyguardViewController}. It controls the Keyguard View
|
||||||
* that is mounted to the SystemUIOverlayWindow.
|
* that is mounted to the SystemUIOverlayWindow.
|
||||||
@@ -66,9 +68,10 @@ public class CarKeyguardViewController extends OverlayViewController implements
|
|||||||
private final CarServiceProvider mCarServiceProvider;
|
private final CarServiceProvider mCarServiceProvider;
|
||||||
private final KeyguardStateController mKeyguardStateController;
|
private final KeyguardStateController mKeyguardStateController;
|
||||||
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
|
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
|
||||||
private final LockPatternUtils mLockPatternUtils;
|
private final LockPatternUtils mLockPatternUtils;
|
||||||
private final FalsingManager mFalsingManager;
|
private final FalsingManager mFalsingManager;
|
||||||
private final KeyguardBypassController mKeyguardBypassController;
|
private final Lazy<KeyguardBypassController> mKeyguardBypassControllerLazy;
|
||||||
private final DismissCallbackRegistry mDismissCallbackRegistry;
|
private final DismissCallbackRegistry mDismissCallbackRegistry;
|
||||||
private final ViewMediatorCallback mViewMediatorCallback;
|
private final ViewMediatorCallback mViewMediatorCallback;
|
||||||
private final CarNavigationBarController mCarNavigationBarController;
|
private final CarNavigationBarController mCarNavigationBarController;
|
||||||
@@ -109,14 +112,14 @@ public class CarKeyguardViewController extends OverlayViewController implements
|
|||||||
OverlayViewGlobalStateController overlayViewGlobalStateController,
|
OverlayViewGlobalStateController overlayViewGlobalStateController,
|
||||||
KeyguardStateController keyguardStateController,
|
KeyguardStateController keyguardStateController,
|
||||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||||
BiometricUnlockController biometricUnlockController,
|
Lazy<BiometricUnlockController> biometricUnlockControllerLazy,
|
||||||
ViewMediatorCallback viewMediatorCallback,
|
ViewMediatorCallback viewMediatorCallback,
|
||||||
CarNavigationBarController carNavigationBarController,
|
CarNavigationBarController carNavigationBarController,
|
||||||
/* The params below are only used to reuse KeyguardBouncer */
|
/* The params below are only used to reuse KeyguardBouncer */
|
||||||
LockPatternUtils lockPatternUtils,
|
LockPatternUtils lockPatternUtils,
|
||||||
DismissCallbackRegistry dismissCallbackRegistry,
|
DismissCallbackRegistry dismissCallbackRegistry,
|
||||||
FalsingManager falsingManager,
|
FalsingManager falsingManager,
|
||||||
KeyguardBypassController keyguardBypassController) {
|
Lazy<KeyguardBypassController> keyguardBypassControllerLazy) {
|
||||||
|
|
||||||
super(R.id.keyguard_stub, overlayViewGlobalStateController);
|
super(R.id.keyguard_stub, overlayViewGlobalStateController);
|
||||||
|
|
||||||
@@ -125,14 +128,14 @@ public class CarKeyguardViewController extends OverlayViewController implements
|
|||||||
mCarServiceProvider = carServiceProvider;
|
mCarServiceProvider = carServiceProvider;
|
||||||
mKeyguardStateController = keyguardStateController;
|
mKeyguardStateController = keyguardStateController;
|
||||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||||
|
mBiometricUnlockControllerLazy = biometricUnlockControllerLazy;
|
||||||
mLockPatternUtils = lockPatternUtils;
|
mLockPatternUtils = lockPatternUtils;
|
||||||
mFalsingManager = falsingManager;
|
mFalsingManager = falsingManager;
|
||||||
mKeyguardBypassController = keyguardBypassController;
|
mKeyguardBypassControllerLazy = keyguardBypassControllerLazy;
|
||||||
mDismissCallbackRegistry = dismissCallbackRegistry;
|
mDismissCallbackRegistry = dismissCallbackRegistry;
|
||||||
mViewMediatorCallback = viewMediatorCallback;
|
mViewMediatorCallback = viewMediatorCallback;
|
||||||
mCarNavigationBarController = carNavigationBarController;
|
mCarNavigationBarController = carNavigationBarController;
|
||||||
|
|
||||||
biometricUnlockController.setKeyguardViewController(this);
|
|
||||||
registerUserSwitchedListener();
|
registerUserSwitchedListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,7 +145,8 @@ public class CarKeyguardViewController extends OverlayViewController implements
|
|||||||
mViewMediatorCallback, mLockPatternUtils,
|
mViewMediatorCallback, mLockPatternUtils,
|
||||||
getLayout().findViewById(R.id.keyguard_container), mDismissCallbackRegistry,
|
getLayout().findViewById(R.id.keyguard_container), mDismissCallbackRegistry,
|
||||||
mExpansionCallback, mKeyguardStateController, mFalsingManager,
|
mExpansionCallback, mKeyguardStateController, mFalsingManager,
|
||||||
mKeyguardBypassController);
|
mKeyguardBypassControllerLazy.get());
|
||||||
|
mBiometricUnlockControllerLazy.get().setKeyguardViewController(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.android.systemui.car.window;
|
package com.android.systemui.car.window;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SystemUI;
|
import com.android.systemui.SystemUI;
|
||||||
@@ -35,7 +36,7 @@ import javax.inject.Singleton;
|
|||||||
*/
|
*/
|
||||||
@Singleton
|
@Singleton
|
||||||
public class SystemUIOverlayWindowManager extends SystemUI {
|
public class SystemUIOverlayWindowManager extends SystemUI {
|
||||||
private static final String TAG = "SystemUIOverlayWindowManager";
|
private static final String TAG = "SystemUIOverlayWM";
|
||||||
private final Map<Class<?>, Provider<OverlayViewMediator>>
|
private final Map<Class<?>, Provider<OverlayViewMediator>>
|
||||||
mContentMediatorCreators;
|
mContentMediatorCreators;
|
||||||
private final OverlayViewGlobalStateController mOverlayViewGlobalStateController;
|
private final OverlayViewGlobalStateController mOverlayViewGlobalStateController;
|
||||||
@@ -59,6 +60,7 @@ public class SystemUIOverlayWindowManager extends SystemUI {
|
|||||||
|
|
||||||
private void startServices(String[] services) {
|
private void startServices(String[] services) {
|
||||||
for (String clsName : services) {
|
for (String clsName : services) {
|
||||||
|
long ti = System.currentTimeMillis();
|
||||||
try {
|
try {
|
||||||
OverlayViewMediator obj = resolveContentMediator(clsName);
|
OverlayViewMediator obj = resolveContentMediator(clsName);
|
||||||
if (obj == null) {
|
if (obj == null) {
|
||||||
@@ -73,6 +75,12 @@ public class SystemUIOverlayWindowManager extends SystemUI {
|
|||||||
| InvocationTargetException ex) {
|
| InvocationTargetException ex) {
|
||||||
throw new RuntimeException(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.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
|
import dagger.Lazy;
|
||||||
|
|
||||||
@RunWith(AndroidTestingRunner.class)
|
@RunWith(AndroidTestingRunner.class)
|
||||||
@TestableLooper.RunWithLooper
|
@TestableLooper.RunWithLooper
|
||||||
public class CarKeyguardViewControllerTest extends SysuiTestCase {
|
public class CarKeyguardViewControllerTest extends SysuiTestCase {
|
||||||
@@ -88,13 +90,13 @@ public class CarKeyguardViewControllerTest extends SysuiTestCase {
|
|||||||
mOverlayViewGlobalStateController,
|
mOverlayViewGlobalStateController,
|
||||||
mock(KeyguardStateController.class),
|
mock(KeyguardStateController.class),
|
||||||
mock(KeyguardUpdateMonitor.class),
|
mock(KeyguardUpdateMonitor.class),
|
||||||
mock(BiometricUnlockController.class),
|
() -> mock(BiometricUnlockController.class),
|
||||||
mock(ViewMediatorCallback.class),
|
mock(ViewMediatorCallback.class),
|
||||||
mock(CarNavigationBarController.class),
|
mock(CarNavigationBarController.class),
|
||||||
mock(LockPatternUtils.class),
|
mock(LockPatternUtils.class),
|
||||||
mock(DismissCallbackRegistry.class),
|
mock(DismissCallbackRegistry.class),
|
||||||
mock(FalsingManager.class),
|
mock(FalsingManager.class),
|
||||||
mock(KeyguardBypassController.class)
|
() -> mock(KeyguardBypassController.class)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,17 +188,17 @@ public class CarKeyguardViewControllerTest extends SysuiTestCase {
|
|||||||
OverlayViewGlobalStateController overlayViewGlobalStateController,
|
OverlayViewGlobalStateController overlayViewGlobalStateController,
|
||||||
KeyguardStateController keyguardStateController,
|
KeyguardStateController keyguardStateController,
|
||||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||||
BiometricUnlockController biometricUnlockController,
|
Lazy<BiometricUnlockController> biometricUnlockControllerLazy,
|
||||||
ViewMediatorCallback viewMediatorCallback,
|
ViewMediatorCallback viewMediatorCallback,
|
||||||
CarNavigationBarController carNavigationBarController,
|
CarNavigationBarController carNavigationBarController,
|
||||||
LockPatternUtils lockPatternUtils,
|
LockPatternUtils lockPatternUtils,
|
||||||
DismissCallbackRegistry dismissCallbackRegistry,
|
DismissCallbackRegistry dismissCallbackRegistry,
|
||||||
FalsingManager falsingManager,
|
FalsingManager falsingManager,
|
||||||
KeyguardBypassController keyguardBypassController) {
|
Lazy<KeyguardBypassController> keyguardBypassControllerLazy) {
|
||||||
super(context, mainHandler, carServiceProvider, overlayViewGlobalStateController,
|
super(context, mainHandler, carServiceProvider, overlayViewGlobalStateController,
|
||||||
keyguardStateController, keyguardUpdateMonitor, biometricUnlockController,
|
keyguardStateController, keyguardUpdateMonitor, biometricUnlockControllerLazy,
|
||||||
viewMediatorCallback, carNavigationBarController, lockPatternUtils,
|
viewMediatorCallback, carNavigationBarController, lockPatternUtils,
|
||||||
dismissCallbackRegistry, falsingManager, keyguardBypassController);
|
dismissCallbackRegistry, falsingManager, keyguardBypassControllerLazy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user