Loading src/com/android/settings/biometrics2/data/repository/AccessibilityRepository.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.biometrics2.data.repository; import android.view.accessibility.AccessibilityManager; /** * This repository is used to call all APIs in {@link AccessibilityManager} */ public class AccessibilityRepository { private final AccessibilityManager mAccessibilityManager; public AccessibilityRepository(AccessibilityManager accessibilityManager) { mAccessibilityManager = accessibilityManager; } /** * Requests interruption of the accessibility feedback from all accessibility services. */ public void interrupt() { mAccessibilityManager.interrupt(); } /** * Returns if the {@link AccessibilityManager} is enabled. * * @return True if this {@link AccessibilityManager} is enabled, false otherwise. */ public boolean isEnabled() { return mAccessibilityManager.isEnabled(); } } src/com/android/settings/biometrics2/data/repository/FingerprintRepository.java +16 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,8 @@ import java.util.List; public class FingerprintRepository { private static final String TAG = "FingerprintRepository"; @NonNull private final FingerprintManager mFingerprintManager; @NonNull private final FingerprintManager mFingerprintManager; private List<FingerprintSensorPropertiesInternal> mSensorPropertiesCache; Loading Loading @@ -130,4 +131,18 @@ public class FingerprintRepository { return RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled( context, DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT, userId) != null; } /** * Get fingerprint enroll stage threshold */ public float getEnrollStageThreshold(int index) { return mFingerprintManager.getEnrollStageThreshold(index); } /** * Get fingerprint enroll stage count */ public int getEnrollStageCount() { return mFingerprintManager.getEnrollStageCount(); } } src/com/android/settings/biometrics2/data/repository/VibratorRepository.java 0 → 100644 +43 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.biometrics2.data.repository; import android.annotation.NonNull; import android.os.VibrationAttributes; import android.os.VibrationEffect; import android.os.Vibrator; /** * This repository is used to call all APIs in {@link Vibrator} */ public class VibratorRepository { private final Vibrator mVibrator; public VibratorRepository(Vibrator vibrator) { mVibrator = vibrator; } /** * Like {@link #vibrate(VibrationEffect, VibrationAttributes)}, but allows the * caller to specify the vibration is owned by someone else and set a reason for vibration. */ public void vibrate(int uid, String opPkg, @NonNull VibrationEffect vibe, String reason, @NonNull VibrationAttributes attributes) { mVibrator.vibrate(uid, opPkg, vibe, reason, attributes); } } src/com/android/settings/biometrics2/factory/BiometricsRepositoryProvider.java +14 −0 Original line number Diff line number Diff line Loading @@ -21,7 +21,9 @@ import android.app.Application; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.settings.biometrics2.data.repository.AccessibilityRepository; import com.android.settings.biometrics2.data.repository.FingerprintRepository; import com.android.settings.biometrics2.data.repository.VibratorRepository; /** * Interface for BiometricsRepositoryProvider Loading @@ -33,4 +35,16 @@ public interface BiometricsRepositoryProvider { */ @Nullable FingerprintRepository getFingerprintRepository(@NonNull Application application); /** * Get VibtatorRepository */ @Nullable VibratorRepository getVibratorRepository(@NonNull Application application); /** * Get AccessibilityRepository */ @Nullable AccessibilityRepository getAccessibilityRepository(@NonNull Application application); } src/com/android/settings/biometrics2/factory/BiometricsRepositoryProviderImpl.java +51 −0 Original line number Diff line number Diff line Loading @@ -18,12 +18,16 @@ package com.android.settings.biometrics2.factory; import android.app.Application; import android.hardware.fingerprint.FingerprintManager; import android.os.Vibrator; import android.view.accessibility.AccessibilityManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.settings.Utils; import com.android.settings.biometrics2.data.repository.AccessibilityRepository; import com.android.settings.biometrics2.data.repository.FingerprintRepository; import com.android.settings.biometrics2.data.repository.VibratorRepository; /** * Implementation for BiometricsRepositoryProvider Loading @@ -31,6 +35,8 @@ import com.android.settings.biometrics2.data.repository.FingerprintRepository; public class BiometricsRepositoryProviderImpl implements BiometricsRepositoryProvider { private static volatile FingerprintRepository sFingerprintRepository; private static volatile VibratorRepository sVibratorRepository; private static volatile AccessibilityRepository sAccessibilityRepository; /** * Get FingerprintRepository Loading @@ -52,4 +58,49 @@ public class BiometricsRepositoryProviderImpl implements BiometricsRepositoryPro } return sFingerprintRepository; } /** * Get VibratorRepository */ @Nullable @Override public VibratorRepository getVibratorRepository(@NonNull Application application) { final Vibrator vibrator = application.getSystemService(Vibrator.class); if (vibrator == null) { return null; } if (sVibratorRepository == null) { synchronized (VibratorRepository.class) { if (sVibratorRepository == null) { sVibratorRepository = new VibratorRepository(vibrator); } } } return sVibratorRepository; } /** * Get AccessibilityRepository */ @Nullable @Override public AccessibilityRepository getAccessibilityRepository(@NonNull Application application) { final AccessibilityManager accessibilityManager = application.getSystemService( AccessibilityManager.class); if (accessibilityManager == null) { return null; } if (sAccessibilityRepository == null) { synchronized (AccessibilityRepository.class) { if (sAccessibilityRepository == null) { sAccessibilityRepository = new AccessibilityRepository(accessibilityManager); } } } return sAccessibilityRepository; } } Loading
src/com/android/settings/biometrics2/data/repository/AccessibilityRepository.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.biometrics2.data.repository; import android.view.accessibility.AccessibilityManager; /** * This repository is used to call all APIs in {@link AccessibilityManager} */ public class AccessibilityRepository { private final AccessibilityManager mAccessibilityManager; public AccessibilityRepository(AccessibilityManager accessibilityManager) { mAccessibilityManager = accessibilityManager; } /** * Requests interruption of the accessibility feedback from all accessibility services. */ public void interrupt() { mAccessibilityManager.interrupt(); } /** * Returns if the {@link AccessibilityManager} is enabled. * * @return True if this {@link AccessibilityManager} is enabled, false otherwise. */ public boolean isEnabled() { return mAccessibilityManager.isEnabled(); } }
src/com/android/settings/biometrics2/data/repository/FingerprintRepository.java +16 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,8 @@ import java.util.List; public class FingerprintRepository { private static final String TAG = "FingerprintRepository"; @NonNull private final FingerprintManager mFingerprintManager; @NonNull private final FingerprintManager mFingerprintManager; private List<FingerprintSensorPropertiesInternal> mSensorPropertiesCache; Loading Loading @@ -130,4 +131,18 @@ public class FingerprintRepository { return RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled( context, DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT, userId) != null; } /** * Get fingerprint enroll stage threshold */ public float getEnrollStageThreshold(int index) { return mFingerprintManager.getEnrollStageThreshold(index); } /** * Get fingerprint enroll stage count */ public int getEnrollStageCount() { return mFingerprintManager.getEnrollStageCount(); } }
src/com/android/settings/biometrics2/data/repository/VibratorRepository.java 0 → 100644 +43 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.biometrics2.data.repository; import android.annotation.NonNull; import android.os.VibrationAttributes; import android.os.VibrationEffect; import android.os.Vibrator; /** * This repository is used to call all APIs in {@link Vibrator} */ public class VibratorRepository { private final Vibrator mVibrator; public VibratorRepository(Vibrator vibrator) { mVibrator = vibrator; } /** * Like {@link #vibrate(VibrationEffect, VibrationAttributes)}, but allows the * caller to specify the vibration is owned by someone else and set a reason for vibration. */ public void vibrate(int uid, String opPkg, @NonNull VibrationEffect vibe, String reason, @NonNull VibrationAttributes attributes) { mVibrator.vibrate(uid, opPkg, vibe, reason, attributes); } }
src/com/android/settings/biometrics2/factory/BiometricsRepositoryProvider.java +14 −0 Original line number Diff line number Diff line Loading @@ -21,7 +21,9 @@ import android.app.Application; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.settings.biometrics2.data.repository.AccessibilityRepository; import com.android.settings.biometrics2.data.repository.FingerprintRepository; import com.android.settings.biometrics2.data.repository.VibratorRepository; /** * Interface for BiometricsRepositoryProvider Loading @@ -33,4 +35,16 @@ public interface BiometricsRepositoryProvider { */ @Nullable FingerprintRepository getFingerprintRepository(@NonNull Application application); /** * Get VibtatorRepository */ @Nullable VibratorRepository getVibratorRepository(@NonNull Application application); /** * Get AccessibilityRepository */ @Nullable AccessibilityRepository getAccessibilityRepository(@NonNull Application application); }
src/com/android/settings/biometrics2/factory/BiometricsRepositoryProviderImpl.java +51 −0 Original line number Diff line number Diff line Loading @@ -18,12 +18,16 @@ package com.android.settings.biometrics2.factory; import android.app.Application; import android.hardware.fingerprint.FingerprintManager; import android.os.Vibrator; import android.view.accessibility.AccessibilityManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.settings.Utils; import com.android.settings.biometrics2.data.repository.AccessibilityRepository; import com.android.settings.biometrics2.data.repository.FingerprintRepository; import com.android.settings.biometrics2.data.repository.VibratorRepository; /** * Implementation for BiometricsRepositoryProvider Loading @@ -31,6 +35,8 @@ import com.android.settings.biometrics2.data.repository.FingerprintRepository; public class BiometricsRepositoryProviderImpl implements BiometricsRepositoryProvider { private static volatile FingerprintRepository sFingerprintRepository; private static volatile VibratorRepository sVibratorRepository; private static volatile AccessibilityRepository sAccessibilityRepository; /** * Get FingerprintRepository Loading @@ -52,4 +58,49 @@ public class BiometricsRepositoryProviderImpl implements BiometricsRepositoryPro } return sFingerprintRepository; } /** * Get VibratorRepository */ @Nullable @Override public VibratorRepository getVibratorRepository(@NonNull Application application) { final Vibrator vibrator = application.getSystemService(Vibrator.class); if (vibrator == null) { return null; } if (sVibratorRepository == null) { synchronized (VibratorRepository.class) { if (sVibratorRepository == null) { sVibratorRepository = new VibratorRepository(vibrator); } } } return sVibratorRepository; } /** * Get AccessibilityRepository */ @Nullable @Override public AccessibilityRepository getAccessibilityRepository(@NonNull Application application) { final AccessibilityManager accessibilityManager = application.getSystemService( AccessibilityManager.class); if (accessibilityManager == null) { return null; } if (sAccessibilityRepository == null) { synchronized (AccessibilityRepository.class) { if (sAccessibilityRepository == null) { sAccessibilityRepository = new AccessibilityRepository(accessibilityManager); } } } return sAccessibilityRepository; } }