Offer a null FignerprintManager.

Settings likes null.

Test: builds
Bug: 32060380
Change-Id: I5ba19bccfd48916d4e581518928a6aee19e84a77
This commit is contained in:
Jeff Sharkey
2016-10-11 14:25:22 -06:00
parent b2cca091c9
commit ab50807d1e
11 changed files with 30 additions and 18 deletions

View File

@@ -142,8 +142,7 @@ public class ChooseLockGeneric extends SettingsActivity {
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());

View File

@@ -904,8 +904,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
}
// 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);

View File

@@ -44,6 +44,7 @@ import android.content.res.TypedArray;
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 @@ public final class Utils extends com.android.settingslib.Utils {
}
return null;
}
public static FingerprintManager getFingerprintManagerOrNull(Context context) {
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
return context.getSystemService(FingerprintManager.class);
} else {
return null;
}
}
}

View File

@@ -35,6 +35,7 @@ import com.android.settings.Settings.FingerprintSuggestionActivity;
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 @@ public class SuggestionsChecks {
}
private boolean isNotSingleFingerprintEnrolled() {
FingerprintManager manager = mContext.getSystemService(FingerprintManager.class);
FingerprintManager manager = Utils.getFingerprintManagerOrNull(mContext);
return manager == null || manager.getEnrolledFingerprints().size() != 1;
}

View File

@@ -24,6 +24,7 @@ import android.os.UserHandle;
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 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
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 @@ public class FingerprintEnrollFindSensor extends FingerprintEnrollBase {
}
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) {

View File

@@ -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 @@ public class FingerprintEnrollFinish extends FingerprintEnrollBase {
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);

View File

@@ -32,6 +32,7 @@ import com.android.internal.logging.MetricsProto.MetricsEvent;
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 @@ public class FingerprintEnrollIntroduction extends FingerprintEnrollBase
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);

View File

@@ -27,6 +27,7 @@ import android.os.UserHandle;
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 @@ public class FingerprintEnrollSidecar extends InstrumentedFragment {
@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);

View File

@@ -26,6 +26,7 @@ import android.content.ActivityNotFoundException;
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 @@ public class FingerprintSettings extends SubSettings {
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 class FingerprintSettings extends SubSettings {
}
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;

View File

@@ -23,6 +23,7 @@ import android.widget.ImageView;
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 class FingerprintUiHelper extends FingerprintManager.AuthenticationCallba
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;

View File

@@ -30,6 +30,7 @@ import android.os.UserHandle;
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 @@ final class SetNewPasswordController {
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);
}