Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 622142ce authored by Jim Miller's avatar Jim Miller
Browse files

Fix crash in fingerprint settings.

Fixes bug 21333219
Fixes bug 21336059

Change-Id: I3e5c9257affd10ace6b55f6d0b2ddbf3babf30f1
parent b56a1036
Loading
Loading
Loading
Loading
+30 −21
Original line number Diff line number Diff line
@@ -127,7 +127,6 @@ public class FingerprintSettings extends SubSettings {

        private FingerprintManager mFingerprintManager;
        private EditText mDialogTextField;
        private PreferenceGroup mManageCategory;
        private CancellationSignal mFingerprintCancel;
        private int mMaxFingerprintAttempts;
        private byte[] mToken;
@@ -148,7 +147,7 @@ public class FingerprintSettings extends SubSettings {
            @Override
            public void onAuthenticationError(int errMsgId, CharSequence errString) {
                // get activity will be null on a screen rotation
                Activity activity = getActivity();
                final Activity activity = getActivity();
                if (activity != null) {
                    Toast.makeText(activity, errString, Toast.LENGTH_SHORT);
                }
@@ -159,7 +158,10 @@ public class FingerprintSettings extends SubSettings {

            @Override
            public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
                Toast.makeText(getActivity(), helpString, Toast.LENGTH_SHORT);
                final Activity activity = getActivity();
                if (activity != null) {
                    Toast.makeText(activity, helpString, Toast.LENGTH_SHORT);
                }
            }
        };
        private RemovalCallback mRemoveCallback = new RemovalCallback() {
@@ -172,7 +174,10 @@ public class FingerprintSettings extends SubSettings {

            @Override
            public void onRemovalError(Fingerprint fp, int errMsgId, CharSequence errString) {
                Toast.makeText(getActivity(), errString, Toast.LENGTH_SHORT);
                final Activity activity = getActivity();
                if (activity != null) {
                    Toast.makeText(activity, errString, Toast.LENGTH_SHORT);
                }
            }
        };
        private final Handler mHandler = new Handler() {
@@ -186,7 +191,7 @@ public class FingerprintSettings extends SubSettings {
                        retryFingerprint(true);
                    break;
                    case MSG_FINGER_AUTH_FAIL:
                        retryFingerprint(false);
                        retryFingerprint(true);
                    break;
                }
            };
@@ -440,16 +445,19 @@ public class FingerprintSettings extends SubSettings {

        private Drawable getHighlightDrawable() {
            if (mHighlightDrawable == null) {
                mHighlightDrawable = getActivity().getDrawable(R.drawable.preference_highlight);
                final Activity activity = getActivity();
                if (activity != null) {
                    mHighlightDrawable = activity.getDrawable(R.drawable.preference_highlight);
                }
            }
            return mHighlightDrawable;
        }

        private void highlightFingerprintItem(int fpId) {
            String prefName = genKey(fpId);
            FingerprintPreference fpref =
                    (FingerprintPreference) mManageCategory.findPreference(prefName);
            FingerprintPreference fpref = (FingerprintPreference) findPreference(prefName);
            final Drawable highlight = getHighlightDrawable();
            if (highlight != null) {
                final View view = fpref.getView();
                final int centerX = view.getWidth() / 2;
                final int centerY = view.getHeight() / 2;
@@ -464,6 +472,7 @@ public class FingerprintSettings extends SubSettings {
                    }
                }, RESET_HIGHLIGHT_DELAY_MS);
            }
        }

        private void launchChooseOrConfirmLock() {
            Intent intent = new Intent();