1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.settings.biometrics.fingerprint;
18 
19 import android.content.Context;
20 import android.hardware.fingerprint.FingerprintManager;
21 
22 import com.android.settings.R;
23 import com.android.settings.Utils;
24 import com.android.settings.biometrics.BiometricStatusPreferenceController;
25 
26 public class FingerprintStatusPreferenceController extends BiometricStatusPreferenceController {
27 
28     private static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings";
29 
30     protected final FingerprintManager mFingerprintManager;
31 
FingerprintStatusPreferenceController(Context context)32     public FingerprintStatusPreferenceController(Context context) {
33         this(context, KEY_FINGERPRINT_SETTINGS);
34     }
35 
FingerprintStatusPreferenceController(Context context, String key)36     public FingerprintStatusPreferenceController(Context context, String key) {
37         super(context, key);
38         mFingerprintManager = Utils.getFingerprintManagerOrNull(context);
39     }
40 
41     @Override
isDeviceSupported()42     protected boolean isDeviceSupported() {
43         return mFingerprintManager != null && mFingerprintManager.isHardwareDetected();
44     }
45 
46     @Override
hasEnrolledBiometrics()47     protected boolean hasEnrolledBiometrics() {
48         return mFingerprintManager.hasEnrolledFingerprints(getUserId());
49     }
50 
51     @Override
getSummaryTextEnrolled()52     protected String getSummaryTextEnrolled() {
53         final int numEnrolled = mFingerprintManager.getEnrolledFingerprints(getUserId()).size();
54         return mContext.getResources().getQuantityString(
55                 R.plurals.security_settings_fingerprint_preference_summary,
56                 numEnrolled, numEnrolled);
57     }
58 
59     @Override
getSummaryTextNoneEnrolled()60     protected String getSummaryTextNoneEnrolled() {
61         return mContext.getString(R.string.security_settings_fingerprint_preference_summary_none);
62     }
63 
64     @Override
getSettingsClassName()65     protected String getSettingsClassName() {
66         return FingerprintSettings.class.getName();
67     }
68 
69     @Override
getEnrollClassName()70     protected String getEnrollClassName() {
71         return FingerprintEnrollIntroduction.class.getName();
72     }
73 
74 }
75