Loading packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +13 −32 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import static android.hardware.biometrics.BiometricManager.Authenticators; import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.app.IActivityTaskManager; import android.app.TaskStackListener; import android.content.BroadcastReceiver; Loading Loading @@ -72,7 +71,8 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, private final CommandQueue mCommandQueue; private final StatusBarStateController mStatusBarStateController; private final Injector mInjector; private final IActivityTaskManager mActivityTaskManager; @Nullable private final FingerprintManager mFingerprintManager; private final Provider<UdfpsController> mUdfpsControllerFactory; // TODO: These should just be saved from onSaveState Loading @@ -85,16 +85,14 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, @Nullable private UdfpsController mUdfpsController; @VisibleForTesting IActivityTaskManager mActivityTaskManager; @VisibleForTesting BiometricTaskStackListener mTaskStackListener; TaskStackListener mTaskStackListener; @VisibleForTesting IBiometricSysuiReceiver mReceiver; public class BiometricTaskStackListener extends TaskStackListener { private class BiometricTaskStackListener extends TaskStackListener { @Override public void onTaskStackChanged() { mHandler.post(mTaskStackChangedRunnable); mHandler.post(AuthController.this::handleTaskStackChanged); } } Loading @@ -121,7 +119,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, } }; private final Runnable mTaskStackChangedRunnable = () -> { private void handleTaskStackChanged() { if (mCurrentDialog != null) { try { final String clientPackage = mCurrentDialog.getOpPackageName(); Loading @@ -146,7 +144,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, Log.e(TAG, "Remote exception", e); } } }; } @Override public void dozeTimeTick() { Loading Loading @@ -281,32 +279,17 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, onDialogDismissed(reason); } public static class Injector { IActivityTaskManager getActivityTaskManager() { return ActivityTaskManager.getService(); } FingerprintManager getFingerprintManager(Context context) { return context.getSystemService(FingerprintManager.class); } } @Inject public AuthController(Context context, CommandQueue commandQueue, StatusBarStateController statusBarStateController, Provider<UdfpsController> udfpsControllerFactory) { this(context, commandQueue, statusBarStateController, new Injector(), udfpsControllerFactory); } @VisibleForTesting AuthController(Context context, CommandQueue commandQueue, StatusBarStateController statusBarStateController, Injector injector, IActivityTaskManager activityTaskManager, @Nullable FingerprintManager fingerprintManager, Provider<UdfpsController> udfpsControllerFactory) { super(context); mCommandQueue = commandQueue; mStatusBarStateController = statusBarStateController; mInjector = injector; mActivityTaskManager = activityTaskManager; mFingerprintManager = fingerprintManager; mUdfpsControllerFactory = udfpsControllerFactory; IntentFilter filter = new IntentFilter(); Loading @@ -320,12 +303,10 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, public void start() { mCommandQueue.addCallback(this); mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); mActivityTaskManager = mInjector.getActivityTaskManager(); final FingerprintManager fpm = mInjector.getFingerprintManager(mContext); if (fpm != null && fpm.isHardwareDetected()) { if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) { final List<FingerprintSensorProperties> fingerprintSensorProperties = fpm.getSensorProperties(); mFingerprintManager.getSensorProperties(); for (FingerprintSensorProperties props : fingerprintSensorProperties) { if (props.sensorType == FingerprintSensorProperties.TYPE_UDFPS) { mUdfpsController = mUdfpsControllerFactory.get(); Loading packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +8 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.hardware.SensorPrivacyManager; import android.hardware.display.ColorDisplayManager; import android.hardware.display.DisplayManager; import android.hardware.face.FaceManager; import android.hardware.fingerprint.FingerprintManager; import android.media.AudioManager; import android.media.MediaRouter2Manager; import android.media.session.MediaSessionManager; Loading Loading @@ -173,6 +174,13 @@ public class FrameworkServicesModule { } @Provides @Singleton @Nullable static FingerprintManager providesFingerprintManager(Context context) { return context.getSystemService(FingerprintManager.class); } @Provides @Singleton static IPackageManager provideIPackageManager() { Loading packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java +9 −17 Original line number Diff line number Diff line Loading @@ -90,6 +90,8 @@ public class AuthControllerTest extends SysuiTestCase { @Mock private StatusBarStateController mStatusBarStateController; @Mock private IActivityTaskManager mActivityTaskManager; @Mock private FingerprintManager mFingerprintManager; @Mock private UdfpsController mUdfpsController; Loading Loading @@ -123,7 +125,7 @@ public class AuthControllerTest extends SysuiTestCase { when(mFingerprintManager.getSensorProperties()).thenReturn(props); mAuthController = new TestableAuthController(context, mCommandQueue, mStatusBarStateController, new MockInjector(), mStatusBarStateController, mActivityTaskManager, mFingerprintManager, () -> mUdfpsController); mAuthController.start(); Loading Loading @@ -438,7 +440,7 @@ public class AuthControllerTest extends SysuiTestCase { taskInfo.topActivity = mock(ComponentName.class); when(taskInfo.topActivity.getPackageName()).thenReturn("other_package"); tasks.add(taskInfo); when(mAuthController.mActivityTaskManager.getTasks(anyInt())).thenReturn(tasks); when(mActivityTaskManager.getTasks(anyInt())).thenReturn(tasks); mAuthController.mTaskStackListener.onTaskStackChanged(); waitForIdleSync(); Loading Loading @@ -544,10 +546,12 @@ public class AuthControllerTest extends SysuiTestCase { private PromptInfo mLastBiometricPromptInfo; TestableAuthController(Context context, CommandQueue commandQueue, StatusBarStateController statusBarStateController, Injector injector, StatusBarStateController statusBarStateController, IActivityTaskManager activityTaskManager, FingerprintManager fingerprintManager, Provider<UdfpsController> udfpsControllerFactory) { super(context, commandQueue, statusBarStateController, injector, udfpsControllerFactory); super(context, commandQueue, statusBarStateController, activityTaskManager, fingerprintManager, udfpsControllerFactory); } @Override Loading @@ -569,17 +573,5 @@ public class AuthControllerTest extends SysuiTestCase { return dialog; } } private final class MockInjector extends AuthController.Injector { @Override IActivityTaskManager getActivityTaskManager() { return mock(IActivityTaskManager.class); } @Override FingerprintManager getFingerprintManager(Context context) { return mFingerprintManager; } } } Loading
packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java +13 −32 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import static android.hardware.biometrics.BiometricManager.Authenticators; import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.app.IActivityTaskManager; import android.app.TaskStackListener; import android.content.BroadcastReceiver; Loading Loading @@ -72,7 +71,8 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, private final CommandQueue mCommandQueue; private final StatusBarStateController mStatusBarStateController; private final Injector mInjector; private final IActivityTaskManager mActivityTaskManager; @Nullable private final FingerprintManager mFingerprintManager; private final Provider<UdfpsController> mUdfpsControllerFactory; // TODO: These should just be saved from onSaveState Loading @@ -85,16 +85,14 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, @Nullable private UdfpsController mUdfpsController; @VisibleForTesting IActivityTaskManager mActivityTaskManager; @VisibleForTesting BiometricTaskStackListener mTaskStackListener; TaskStackListener mTaskStackListener; @VisibleForTesting IBiometricSysuiReceiver mReceiver; public class BiometricTaskStackListener extends TaskStackListener { private class BiometricTaskStackListener extends TaskStackListener { @Override public void onTaskStackChanged() { mHandler.post(mTaskStackChangedRunnable); mHandler.post(AuthController.this::handleTaskStackChanged); } } Loading @@ -121,7 +119,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, } }; private final Runnable mTaskStackChangedRunnable = () -> { private void handleTaskStackChanged() { if (mCurrentDialog != null) { try { final String clientPackage = mCurrentDialog.getOpPackageName(); Loading @@ -146,7 +144,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, Log.e(TAG, "Remote exception", e); } } }; } @Override public void dozeTimeTick() { Loading Loading @@ -281,32 +279,17 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, onDialogDismissed(reason); } public static class Injector { IActivityTaskManager getActivityTaskManager() { return ActivityTaskManager.getService(); } FingerprintManager getFingerprintManager(Context context) { return context.getSystemService(FingerprintManager.class); } } @Inject public AuthController(Context context, CommandQueue commandQueue, StatusBarStateController statusBarStateController, Provider<UdfpsController> udfpsControllerFactory) { this(context, commandQueue, statusBarStateController, new Injector(), udfpsControllerFactory); } @VisibleForTesting AuthController(Context context, CommandQueue commandQueue, StatusBarStateController statusBarStateController, Injector injector, IActivityTaskManager activityTaskManager, @Nullable FingerprintManager fingerprintManager, Provider<UdfpsController> udfpsControllerFactory) { super(context); mCommandQueue = commandQueue; mStatusBarStateController = statusBarStateController; mInjector = injector; mActivityTaskManager = activityTaskManager; mFingerprintManager = fingerprintManager; mUdfpsControllerFactory = udfpsControllerFactory; IntentFilter filter = new IntentFilter(); Loading @@ -320,12 +303,10 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks, public void start() { mCommandQueue.addCallback(this); mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); mActivityTaskManager = mInjector.getActivityTaskManager(); final FingerprintManager fpm = mInjector.getFingerprintManager(mContext); if (fpm != null && fpm.isHardwareDetected()) { if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) { final List<FingerprintSensorProperties> fingerprintSensorProperties = fpm.getSensorProperties(); mFingerprintManager.getSensorProperties(); for (FingerprintSensorProperties props : fingerprintSensorProperties) { if (props.sensorType == FingerprintSensorProperties.TYPE_UDFPS) { mUdfpsController = mUdfpsControllerFactory.get(); Loading
packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +8 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.hardware.SensorPrivacyManager; import android.hardware.display.ColorDisplayManager; import android.hardware.display.DisplayManager; import android.hardware.face.FaceManager; import android.hardware.fingerprint.FingerprintManager; import android.media.AudioManager; import android.media.MediaRouter2Manager; import android.media.session.MediaSessionManager; Loading Loading @@ -173,6 +174,13 @@ public class FrameworkServicesModule { } @Provides @Singleton @Nullable static FingerprintManager providesFingerprintManager(Context context) { return context.getSystemService(FingerprintManager.class); } @Provides @Singleton static IPackageManager provideIPackageManager() { Loading
packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthControllerTest.java +9 −17 Original line number Diff line number Diff line Loading @@ -90,6 +90,8 @@ public class AuthControllerTest extends SysuiTestCase { @Mock private StatusBarStateController mStatusBarStateController; @Mock private IActivityTaskManager mActivityTaskManager; @Mock private FingerprintManager mFingerprintManager; @Mock private UdfpsController mUdfpsController; Loading Loading @@ -123,7 +125,7 @@ public class AuthControllerTest extends SysuiTestCase { when(mFingerprintManager.getSensorProperties()).thenReturn(props); mAuthController = new TestableAuthController(context, mCommandQueue, mStatusBarStateController, new MockInjector(), mStatusBarStateController, mActivityTaskManager, mFingerprintManager, () -> mUdfpsController); mAuthController.start(); Loading Loading @@ -438,7 +440,7 @@ public class AuthControllerTest extends SysuiTestCase { taskInfo.topActivity = mock(ComponentName.class); when(taskInfo.topActivity.getPackageName()).thenReturn("other_package"); tasks.add(taskInfo); when(mAuthController.mActivityTaskManager.getTasks(anyInt())).thenReturn(tasks); when(mActivityTaskManager.getTasks(anyInt())).thenReturn(tasks); mAuthController.mTaskStackListener.onTaskStackChanged(); waitForIdleSync(); Loading Loading @@ -544,10 +546,12 @@ public class AuthControllerTest extends SysuiTestCase { private PromptInfo mLastBiometricPromptInfo; TestableAuthController(Context context, CommandQueue commandQueue, StatusBarStateController statusBarStateController, Injector injector, StatusBarStateController statusBarStateController, IActivityTaskManager activityTaskManager, FingerprintManager fingerprintManager, Provider<UdfpsController> udfpsControllerFactory) { super(context, commandQueue, statusBarStateController, injector, udfpsControllerFactory); super(context, commandQueue, statusBarStateController, activityTaskManager, fingerprintManager, udfpsControllerFactory); } @Override Loading @@ -569,17 +573,5 @@ public class AuthControllerTest extends SysuiTestCase { return dialog; } } private final class MockInjector extends AuthController.Injector { @Override IActivityTaskManager getActivityTaskManager() { return mock(IActivityTaskManager.class); } @Override FingerprintManager getFingerprintManager(Context context) { return mFingerprintManager; } } }