Loading services/core/java/com/android/server/biometrics/AuthService.java +64 −48 Original line number Diff line number Diff line Loading @@ -791,14 +791,12 @@ public class AuthService extends SystemService { private void registerAuthenticators() { BiometricHandlerProvider handlerProvider = mInjector.getBiometricHandlerProvider(); handlerProvider.getFingerprintHandler().post(() -> registerFingerprintSensors(mInjector.getFingerprintAidlInstances(), mInjector.getFingerprintConfiguration(getContext()), getContext(), mInjector.getFingerprintService())); handlerProvider.getFaceHandler().post(() -> mInjector.getFingerprintService(), handlerProvider); registerFaceSensors(mInjector.getFaceAidlInstances(), mInjector.getFaceConfiguration(getContext()), getContext(), mInjector.getFaceService())); mInjector.getFaceService(), handlerProvider); registerIrisSensors(mInjector.getIrisConfiguration(getContext())); } Loading Loading @@ -854,7 +852,14 @@ public class AuthService extends SystemService { */ private static void registerFaceSensors(final String[] faceAidlInstances, final String[] hidlConfigStrings, final Context context, final IFaceService faceService) { final IFaceService faceService, final BiometricHandlerProvider handlerProvider) { if ((hidlConfigStrings == null || hidlConfigStrings.length == 0) && (faceAidlInstances == null || faceAidlInstances.length == 0)) { Slog.d(TAG, "No face sensors."); return; } handlerProvider.getFaceHandler().post(() -> { final FaceSensorConfigurations mFaceSensorConfigurations = new FaceSensorConfigurations(hidlConfigStrings != null && hidlConfigStrings.length > 0); Loading @@ -878,6 +883,7 @@ public class AuthService extends SystemService { } else if (mFaceSensorConfigurations.hasSensorConfigurations()) { Slog.e(TAG, "Face configuration exists, but FaceService is null."); } }); } /** Loading @@ -885,7 +891,15 @@ public class AuthService extends SystemService { */ private static void registerFingerprintSensors(final String[] fingerprintAidlInstances, final String[] hidlConfigStrings, final Context context, final IFingerprintService fingerprintService) { final IFingerprintService fingerprintService, final BiometricHandlerProvider handlerProvider) { if ((hidlConfigStrings == null || hidlConfigStrings.length == 0) && (fingerprintAidlInstances == null || fingerprintAidlInstances.length == 0)) { Slog.d(TAG, "No fingerprint sensors."); return; } handlerProvider.getFingerprintHandler().post(() -> { final FingerprintSensorConfigurations mFingerprintSensorConfigurations = new FingerprintSensorConfigurations(!(hidlConfigStrings != null && hidlConfigStrings.length > 0)); Loading @@ -902,13 +916,15 @@ public class AuthService extends SystemService { if (fingerprintService != null) { try { fingerprintService.registerAuthenticatorsLegacy(mFingerprintSensorConfigurations); fingerprintService.registerAuthenticatorsLegacy( mFingerprintSensorConfigurations); } catch (RemoteException e) { Slog.e(TAG, "RemoteException when registering fingerprint authenticators", e); } } else if (mFingerprintSensorConfigurations.hasSensorConfigurations()) { Slog.e(TAG, "Fingerprint configuration exists, but FingerprintService is null."); } }); } /** Loading services/core/java/com/android/server/biometrics/BiometricHandlerProvider.java +19 −10 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.server.biometrics; import static android.os.Process.THREAD_PRIORITY_DEFAULT; import static android.os.Process.THREAD_PRIORITY_DISPLAY; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; Loading @@ -27,9 +30,9 @@ public class BiometricHandlerProvider { private static final BiometricHandlerProvider sBiometricHandlerProvider = new BiometricHandlerProvider(); private final Handler mBiometricsCallbackHandler; private final Handler mFingerprintHandler; private final Handler mFaceHandler; private Handler mBiometricsCallbackHandler; private Handler mFingerprintHandler; private Handler mFaceHandler; /** * @return an instance of {@link BiometricHandlerProvider} which contains the three Loading @@ -39,16 +42,16 @@ public class BiometricHandlerProvider { return sBiometricHandlerProvider; } private BiometricHandlerProvider() { mBiometricsCallbackHandler = getNewHandler("BiometricsCallbackHandler"); mFingerprintHandler = getNewHandler("FingerprintHandler"); mFaceHandler = getNewHandler("FaceHandler"); } private BiometricHandlerProvider() {} /** * @return the handler to process all biometric callback operations */ public synchronized Handler getBiometricCallbackHandler() { if (mBiometricsCallbackHandler == null) { mBiometricsCallbackHandler = getNewHandler("BiometricsCallbackHandler", THREAD_PRIORITY_DISPLAY); } return mBiometricsCallbackHandler; } Loading @@ -56,6 +59,9 @@ public class BiometricHandlerProvider { * @return the handler to process all face related biometric operations */ public synchronized Handler getFaceHandler() { if (mFaceHandler == null) { mFaceHandler = getNewHandler("FaceHandler", THREAD_PRIORITY_DEFAULT); } return mFaceHandler; } Loading @@ -63,12 +69,15 @@ public class BiometricHandlerProvider { * @return the handler to process all fingerprint related biometric operations */ public synchronized Handler getFingerprintHandler() { if (mFingerprintHandler == null) { mFingerprintHandler = getNewHandler("FingerprintHandler", THREAD_PRIORITY_DEFAULT); } return mFingerprintHandler; } private Handler getNewHandler(String tag) { private Handler getNewHandler(String tag, int priority) { if (Flags.deHidl()) { HandlerThread handlerThread = new HandlerThread(tag); HandlerThread handlerThread = new HandlerThread(tag, priority); handlerThread.start(); return new Handler(handlerThread.getLooper()); } Loading Loading
services/core/java/com/android/server/biometrics/AuthService.java +64 −48 Original line number Diff line number Diff line Loading @@ -791,14 +791,12 @@ public class AuthService extends SystemService { private void registerAuthenticators() { BiometricHandlerProvider handlerProvider = mInjector.getBiometricHandlerProvider(); handlerProvider.getFingerprintHandler().post(() -> registerFingerprintSensors(mInjector.getFingerprintAidlInstances(), mInjector.getFingerprintConfiguration(getContext()), getContext(), mInjector.getFingerprintService())); handlerProvider.getFaceHandler().post(() -> mInjector.getFingerprintService(), handlerProvider); registerFaceSensors(mInjector.getFaceAidlInstances(), mInjector.getFaceConfiguration(getContext()), getContext(), mInjector.getFaceService())); mInjector.getFaceService(), handlerProvider); registerIrisSensors(mInjector.getIrisConfiguration(getContext())); } Loading Loading @@ -854,7 +852,14 @@ public class AuthService extends SystemService { */ private static void registerFaceSensors(final String[] faceAidlInstances, final String[] hidlConfigStrings, final Context context, final IFaceService faceService) { final IFaceService faceService, final BiometricHandlerProvider handlerProvider) { if ((hidlConfigStrings == null || hidlConfigStrings.length == 0) && (faceAidlInstances == null || faceAidlInstances.length == 0)) { Slog.d(TAG, "No face sensors."); return; } handlerProvider.getFaceHandler().post(() -> { final FaceSensorConfigurations mFaceSensorConfigurations = new FaceSensorConfigurations(hidlConfigStrings != null && hidlConfigStrings.length > 0); Loading @@ -878,6 +883,7 @@ public class AuthService extends SystemService { } else if (mFaceSensorConfigurations.hasSensorConfigurations()) { Slog.e(TAG, "Face configuration exists, but FaceService is null."); } }); } /** Loading @@ -885,7 +891,15 @@ public class AuthService extends SystemService { */ private static void registerFingerprintSensors(final String[] fingerprintAidlInstances, final String[] hidlConfigStrings, final Context context, final IFingerprintService fingerprintService) { final IFingerprintService fingerprintService, final BiometricHandlerProvider handlerProvider) { if ((hidlConfigStrings == null || hidlConfigStrings.length == 0) && (fingerprintAidlInstances == null || fingerprintAidlInstances.length == 0)) { Slog.d(TAG, "No fingerprint sensors."); return; } handlerProvider.getFingerprintHandler().post(() -> { final FingerprintSensorConfigurations mFingerprintSensorConfigurations = new FingerprintSensorConfigurations(!(hidlConfigStrings != null && hidlConfigStrings.length > 0)); Loading @@ -902,13 +916,15 @@ public class AuthService extends SystemService { if (fingerprintService != null) { try { fingerprintService.registerAuthenticatorsLegacy(mFingerprintSensorConfigurations); fingerprintService.registerAuthenticatorsLegacy( mFingerprintSensorConfigurations); } catch (RemoteException e) { Slog.e(TAG, "RemoteException when registering fingerprint authenticators", e); } } else if (mFingerprintSensorConfigurations.hasSensorConfigurations()) { Slog.e(TAG, "Fingerprint configuration exists, but FingerprintService is null."); } }); } /** Loading
services/core/java/com/android/server/biometrics/BiometricHandlerProvider.java +19 −10 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.server.biometrics; import static android.os.Process.THREAD_PRIORITY_DEFAULT; import static android.os.Process.THREAD_PRIORITY_DISPLAY; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; Loading @@ -27,9 +30,9 @@ public class BiometricHandlerProvider { private static final BiometricHandlerProvider sBiometricHandlerProvider = new BiometricHandlerProvider(); private final Handler mBiometricsCallbackHandler; private final Handler mFingerprintHandler; private final Handler mFaceHandler; private Handler mBiometricsCallbackHandler; private Handler mFingerprintHandler; private Handler mFaceHandler; /** * @return an instance of {@link BiometricHandlerProvider} which contains the three Loading @@ -39,16 +42,16 @@ public class BiometricHandlerProvider { return sBiometricHandlerProvider; } private BiometricHandlerProvider() { mBiometricsCallbackHandler = getNewHandler("BiometricsCallbackHandler"); mFingerprintHandler = getNewHandler("FingerprintHandler"); mFaceHandler = getNewHandler("FaceHandler"); } private BiometricHandlerProvider() {} /** * @return the handler to process all biometric callback operations */ public synchronized Handler getBiometricCallbackHandler() { if (mBiometricsCallbackHandler == null) { mBiometricsCallbackHandler = getNewHandler("BiometricsCallbackHandler", THREAD_PRIORITY_DISPLAY); } return mBiometricsCallbackHandler; } Loading @@ -56,6 +59,9 @@ public class BiometricHandlerProvider { * @return the handler to process all face related biometric operations */ public synchronized Handler getFaceHandler() { if (mFaceHandler == null) { mFaceHandler = getNewHandler("FaceHandler", THREAD_PRIORITY_DEFAULT); } return mFaceHandler; } Loading @@ -63,12 +69,15 @@ public class BiometricHandlerProvider { * @return the handler to process all fingerprint related biometric operations */ public synchronized Handler getFingerprintHandler() { if (mFingerprintHandler == null) { mFingerprintHandler = getNewHandler("FingerprintHandler", THREAD_PRIORITY_DEFAULT); } return mFingerprintHandler; } private Handler getNewHandler(String tag) { private Handler getNewHandler(String tag, int priority) { if (Flags.deHidl()) { HandlerThread handlerThread = new HandlerThread(tag); HandlerThread handlerThread = new HandlerThread(tag, priority); handlerThread.start(); return new Handler(handlerThread.getLooper()); } Loading