Offer a null FignerprintManager.
Settings likes null.
Test: builds
Bug: 32060380
Change-Id: I5ba19bccfd48916d4e581518928a6aee19e84a77
(cherry picked from commit ab50807d1edacb4fca5447525bb5270a853eaafc)
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index a9e48dc..9349c13 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -142,8 +142,7 @@
super.onCreate(savedInstanceState);
String chooseLockAction = getActivity().getIntent().getAction();
- mFingerprintManager =
- (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE);
+ mFingerprintManager = Utils.getFingerprintManagerOrNull(getActivity());
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
mKeyStore = KeyStore.getInstance();
mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this.getActivity());
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 9af91cc..5f90353 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -904,8 +904,7 @@
}
// Fingerprint
- FingerprintManager fpm =
- (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
+ final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(context);
if (fpm != null && fpm.isHardwareDetected()) {
// This catches the title which can be overloaded in an overlay
data = new SearchIndexableRaw(context);
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 1186c46..f8520d8 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -44,6 +44,7 @@
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.hardware.fingerprint.FingerprintManager;
import android.net.ConnectivityManager;
import android.net.LinkProperties;
import android.net.Uri;
@@ -1175,4 +1176,12 @@
}
return null;
}
+
+ public static FingerprintManager getFingerprintManagerOrNull(Context context) {
+ if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
+ return context.getSystemService(FingerprintManager.class);
+ } else {
+ return null;
+ }
+ }
}
diff --git a/src/com/android/settings/dashboard/SuggestionsChecks.java b/src/com/android/settings/dashboard/SuggestionsChecks.java
index b816a79..78f21ea 100644
--- a/src/com/android/settings/dashboard/SuggestionsChecks.java
+++ b/src/com/android/settings/dashboard/SuggestionsChecks.java
@@ -35,6 +35,7 @@
import com.android.settings.Settings.ScreenLockSuggestionActivity;
import com.android.settings.Settings.WifiCallingSuggestionActivity;
import com.android.settings.Settings.ZenModeAutomationSuggestionActivity;
+import com.android.settings.Utils;
import com.android.settings.WallpaperSuggestionActivity;
import com.android.settingslib.drawer.Tile;
@@ -75,7 +76,7 @@
}
private boolean isNotSingleFingerprintEnrolled() {
- FingerprintManager manager = mContext.getSystemService(FingerprintManager.class);
+ FingerprintManager manager = Utils.getFingerprintManagerOrNull(mContext);
return manager == null || manager.getEnrolledFingerprints().size() != 1;
}
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
index 33768c5..f2fda6b 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
@@ -24,6 +24,7 @@
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.fingerprint.FingerprintEnrollSidecar.Listener;
/**
@@ -155,7 +156,7 @@
setResult(RESULT_TIMEOUT);
finish();
} else {
- FingerprintManager fpm = getSystemService(FingerprintManager.class);
+ FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
int enrolled = fpm.getEnrolledFingerprints().size();
int max = getResources().getInteger(
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
@@ -172,7 +173,7 @@
}
private void launchConfirmLock() {
- long challenge = getSystemService(FingerprintManager.class).preEnroll();
+ long challenge = Utils.getFingerprintManagerOrNull(this).preEnroll();
ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this);
boolean launchedConfirmationActivity = false;
if (mUserId == UserHandle.USER_NULL) {
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/fingerprint/FingerprintEnrollFinish.java
index 75557a0..94d2570 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollFinish.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollFinish.java
@@ -16,16 +16,16 @@
package com.android.settings.fingerprint;
-import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
-import android.os.UserHandle;
import android.view.View;
import android.widget.Button;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
+import com.android.settings.Utils;
/**
* Activity which concludes fingerprint enrollment.
@@ -39,7 +39,7 @@
setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title);
Button addButton = (Button) findViewById(R.id.add_another_button);
- FingerprintManager fpm = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE);
+ final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
int enrolled = fpm.getEnrolledFingerprints(mUserId).size();
int max = getResources().getInteger(
com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser);
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
index b5be4b6..697c44a 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
@@ -32,6 +32,7 @@
import com.android.settings.ChooseLockGeneric;
import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settingslib.HelpUtils;
import com.android.settingslib.RestrictedLockUtils;
import com.android.setupwizardlib.span.LinkSpan;
@@ -97,7 +98,7 @@
private void launchChooseLock() {
Intent intent = getChooseLockIntent();
- long challenge = getSystemService(FingerprintManager.class).preEnroll();
+ long challenge = Utils.getFingerprintManagerOrNull(this).preEnroll();
intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.HIDE_DISABLED_PREFS, true);
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
index 9b574b6..24061b4 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
@@ -27,6 +27,7 @@
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.ChooseLockSettingsHelper;
+import com.android.settings.Utils;
import com.android.settings.core.InstrumentedFragment;
/**
@@ -54,7 +55,7 @@
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
- mFingerprintManager = activity.getSystemService(FingerprintManager.class);
+ mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);
mToken = activity.getIntent().getByteArrayExtra(
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
mUserId = activity.getIntent().getIntExtra(Intent.EXTRA_USER_ID, UserHandle.USER_NULL);
diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java
index b044ce3..3c1be40 100644
--- a/src/com/android/settings/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/fingerprint/FingerprintSettings.java
@@ -26,6 +26,7 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.hardware.fingerprint.Fingerprint;
@@ -290,8 +291,7 @@
Intent.EXTRA_USER_ID, UserHandle.myUserId());
Activity activity = getActivity();
- mFingerprintManager = (FingerprintManager) activity.getSystemService(
- Context.FINGERPRINT_SERVICE);
+ mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);
// Need to authenticate a session token if none
if (mToken == null && mLaunchedConfirm == false) {
@@ -820,8 +820,7 @@
}
public static Preference getFingerprintPreferenceForUser(Context context, final int userId) {
- FingerprintManager fpm = (FingerprintManager) context.getSystemService(
- Context.FINGERPRINT_SERVICE);
+ final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(context);
if (fpm == null || !fpm.isHardwareDetected()) {
Log.v(TAG, "No fingerprint hardware detected!!");
return null;
diff --git a/src/com/android/settings/fingerprint/FingerprintUiHelper.java b/src/com/android/settings/fingerprint/FingerprintUiHelper.java
index f7ec97b..655ce26 100644
--- a/src/com/android/settings/fingerprint/FingerprintUiHelper.java
+++ b/src/com/android/settings/fingerprint/FingerprintUiHelper.java
@@ -23,6 +23,7 @@
import android.widget.TextView;
import com.android.settings.R;
+import com.android.settings.Utils;
/**
* Small helper class to manage text/icon around fingerprint authentication UI.
@@ -41,7 +42,7 @@
public FingerprintUiHelper(ImageView icon, TextView errorTextView, Callback callback,
int userId) {
- mFingerprintManager = icon.getContext().getSystemService(FingerprintManager.class);
+ mFingerprintManager = Utils.getFingerprintManagerOrNull(icon.getContext());
mIcon = icon;
mErrorTextView = errorTextView;
mCallback = callback;
diff --git a/src/com/android/settings/password/SetNewPasswordController.java b/src/com/android/settings/password/SetNewPasswordController.java
index 470723b..03afa76 100644
--- a/src/com/android/settings/password/SetNewPasswordController.java
+++ b/src/com/android/settings/password/SetNewPasswordController.java
@@ -30,6 +30,7 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.ChooseLockGeneric;
import com.android.settings.ChooseLockSettingsHelper;
+import com.android.settings.Utils;
/**
* Business logic for {@link SetNewPasswordActivity}.
@@ -54,7 +55,7 @@
public SetNewPasswordController(Context context, Ui ui) {
this(context.getUserId(),
context.getPackageManager(),
- (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE),
+ Utils.getFingerprintManagerOrNull(context),
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE),
ui);
}