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

Commit 1a81dbc9 authored by Daniel Bright's avatar Daniel Bright
Browse files

Created typed class for the pin result

The initial goal was to remove PhoneConstants.  But in doing so, it made sense to replace
an int[] array as a return type with a strongly typed class called PinResult.

Bug: 147774309
Test: SystemUITests
Merged-In: I42f2141f9378fc4f7a6f11af6073d38f917528bc
Change-Id: I42f2141f9378fc4f7a6f11af6073d38f917528bc
parent 15de9ee0
Loading
Loading
Loading
Loading
+25 −21
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.keyguard;

import android.annotation.NonNull;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
@@ -26,6 +27,7 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.telephony.PinResult;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -37,7 +39,6 @@ import android.widget.ImageView;

import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.IccCardConstants.State;
import com.android.internal.telephony.PhoneConstants;
import com.android.systemui.R;

/**
@@ -135,11 +136,11 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {

        // Sending empty PIN here to query the number of remaining PIN attempts
        new CheckSimPin("", mSubId) {
            void onSimCheckResponse(final int result, final int attemptsRemaining) {
                Log.d(LOG_TAG, "onSimCheckResponse " + " dummy One result" + result +
                        " attemptsRemaining=" + attemptsRemaining);
                if (attemptsRemaining >= 0) {
                    mRemainingAttempts = attemptsRemaining;
            void onSimCheckResponse(final PinResult result) {
                Log.d(LOG_TAG, "onSimCheckResponse " + " dummy One result "
                        + result.toString());
                if (result.getAttemptsRemaining() >= 0) {
                    mRemainingAttempts = result.getAttemptsRemaining();
                    setLockedSimMessage();
                }
            }
@@ -247,7 +248,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
            mSubId = subId;
        }

        abstract void onSimCheckResponse(final int result, final int attemptsRemaining);
        abstract void onSimCheckResponse(@NonNull PinResult result);

        @Override
        public void run() {
@@ -257,23 +258,23 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
            TelephonyManager telephonyManager =
                    ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE))
                            .createForSubscriptionId(mSubId);
            final int[] result = telephonyManager.supplyPinReportResult(mPin);
            if (result == null || result.length == 0) {
            final PinResult result = telephonyManager.supplyPinReportPinResult(mPin);
            if (result == null) {
                Log.e(TAG, "Error result for supplyPinReportResult.");
                post(new Runnable() {
                    @Override
                    public void run() {
                        onSimCheckResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1);
                        onSimCheckResponse(PinResult.getDefaultFailedResult());
                    }
                });
            } else {
                if (DEBUG) {
                    Log.v(TAG, "supplyPinReportResult returned: " + result[0] + " " + result[1]);
                    Log.v(TAG, "supplyPinReportResult returned: " + result.toString());
                }
                post(new Runnable() {
                    @Override
                    public void run() {
                        onSimCheckResponse(result[0], result[1]);
                        onSimCheckResponse(result);
                    }
                });
            }
@@ -326,17 +327,18 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
        if (mCheckSimPinThread == null) {
            mCheckSimPinThread = new CheckSimPin(mPasswordEntry.getText(), mSubId) {
                @Override
                void onSimCheckResponse(final int result, final int attemptsRemaining) {
                void onSimCheckResponse(final PinResult result) {
                    post(new Runnable() {
                        @Override
                        public void run() {
                            mRemainingAttempts = attemptsRemaining;
                            mRemainingAttempts = result.getAttemptsRemaining();
                            if (mSimUnlockProgressDialog != null) {
                                mSimUnlockProgressDialog.hide();
                            }
                            resetPasswordText(true /* animate */,
                                    result != PhoneConstants.PIN_RESULT_SUCCESS /* announce */);
                            if (result == PhoneConstants.PIN_RESULT_SUCCESS) {
                                    /* announce */
                                    result.getType() != PinResult.PIN_RESULT_TYPE_SUCCESS);
                            if (result.getType() == PinResult.PIN_RESULT_TYPE_SUCCESS) {
                                KeyguardUpdateMonitor.getInstance(getContext())
                                        .reportSimUnlocked(mSubId);
                                mRemainingAttempts = -1;
@@ -346,14 +348,16 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
                                }
                            } else {
                                mShowDefaultMessage = false;
                                if (result == PhoneConstants.PIN_PASSWORD_INCORRECT) {
                                    if (attemptsRemaining <= 2) {
                                if (result.getType() == PinResult.PIN_RESULT_TYPE_INCORRECT) {
                                    if (result.getAttemptsRemaining() <= 2) {
                                        // this is getting critical - show dialog
                                        getSimRemainingAttemptsDialog(attemptsRemaining).show();
                                        getSimRemainingAttemptsDialog(
                                                result.getAttemptsRemaining()).show();
                                    } else {
                                        // show message
                                        mSecurityMessageDisplay.setMessage(
                                                getPinPasswordErrorMessage(attemptsRemaining, false));
                                                getPinPasswordErrorMessage(
                                                        result.getAttemptsRemaining(), false));
                                    }
                                } else {
                                    // "PIN operation failed!" - no idea what this was and no way to
@@ -363,7 +367,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
                                }
                                if (DEBUG) Log.d(LOG_TAG, "verifyPasswordAndUnlock "
                                        + " CheckSimPin.onSimCheckResponse: " + result
                                        + " attemptsRemaining=" + attemptsRemaining);
                                        + " attemptsRemaining=" + result.getAttemptsRemaining());
                            }
                            mCallback.userActivity();
                            mCheckSimPinThread = null;
+31 −24
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.keyguard;

import android.annotation.NonNull;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -25,6 +26,7 @@ import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.telephony.PinResult;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -36,7 +38,6 @@ import android.widget.ImageView;

import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.IccCardConstants.State;
import com.android.internal.telephony.PhoneConstants;
import com.android.systemui.R;


@@ -187,13 +188,16 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {

        // Sending empty PUK here to query the number of remaining PIN attempts
        new CheckSimPuk("", "", mSubId) {
            void onSimLockChangedResponse(final int result, final int attemptsRemaining) {
                Log.d(LOG_TAG, "onSimCheckResponse " + " dummy One result" + result +
                        " attemptsRemaining=" + attemptsRemaining);
                if (attemptsRemaining >= 0) {
                    mRemainingAttempts = attemptsRemaining;
            void onSimLockChangedResponse(final PinResult result) {
                if (result == null) Log.e(LOG_TAG, "onSimCheckResponse, pin result is NULL");
                else {
                    Log.d(LOG_TAG, "onSimCheckResponse " + " dummy One result "
                            + result.toString());
                    if (result.getAttemptsRemaining() >= 0) {
                        mRemainingAttempts = result.getAttemptsRemaining();
                        mSecurityMessageDisplay.setMessage(
                            getPukPasswordErrorMessage(attemptsRemaining, true));
                                getPukPasswordErrorMessage(result.getAttemptsRemaining(), true));
                    }
                }
            }
        }.start();
@@ -307,7 +311,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
            mSubId = subId;
        }

        abstract void onSimLockChangedResponse(final int result, final int attemptsRemaining);
        abstract void onSimLockChangedResponse(@NonNull PinResult result);

        @Override
        public void run() {
@@ -315,23 +319,23 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
            TelephonyManager telephonyManager =
                    ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE))
                            .createForSubscriptionId(mSubId);
            final int[] result = telephonyManager.supplyPukReportResult(mPuk, mPin);
            if (result == null || result.length == 0) {
            final PinResult result = telephonyManager.supplyPukReportPinResult(mPuk, mPin);
            if (result == null) {
                Log.e(TAG, "Error result for supplyPukReportResult.");
                post(new Runnable() {
                    @Override
                    public void run() {
                        onSimLockChangedResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1);
                        onSimLockChangedResponse(PinResult.getDefaultFailedResult());
                    }
                });
            } else {
                if (DEBUG) {
                    Log.v(TAG, "supplyPukReportResult returned: " + result[0] + " " + result[1]);
                    Log.v(TAG, "supplyPukReportResult returned: " + result.toString());
                }
                post(new Runnable() {
                    @Override
                    public void run() {
                        onSimLockChangedResponse(result[0], result[1]);
                        onSimLockChangedResponse(result);
                    }
                });
            }
@@ -398,7 +402,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
        if (mCheckSimPukThread == null) {
            mCheckSimPukThread = new CheckSimPuk(mPukText, mPinText, mSubId) {
                @Override
                void onSimLockChangedResponse(final int result, final int attemptsRemaining) {
                void onSimLockChangedResponse(final PinResult result) {
                    post(new Runnable() {
                        @Override
                        public void run() {
@@ -406,29 +410,32 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
                                mSimUnlockProgressDialog.hide();
                            }
                            resetPasswordText(true /* animate */,
                                    result != PhoneConstants.PIN_RESULT_SUCCESS /* announce */);
                            if (result == PhoneConstants.PIN_RESULT_SUCCESS) {
                                    /* announce */
                                    result.getType() != PinResult.PIN_RESULT_TYPE_SUCCESS);
                            if (result.getType() == PinResult.PIN_RESULT_TYPE_SUCCESS) {
                                KeyguardUpdateMonitor.getInstance(getContext())
                                        .reportSimUnlocked(mSubId);
                                mRemainingAttempts = -1;
                                mShowDefaultMessage = true;
                                if (mCallback != null) {
                                    mCallback.dismiss(true, KeyguardUpdateMonitor.getCurrentUser());
                                    mCallback.dismiss(true,
                                            KeyguardUpdateMonitor.getCurrentUser());
                                }
                            } else {
                                mShowDefaultMessage = false;
                                if (result == PhoneConstants.PIN_PASSWORD_INCORRECT) {
                                if (result.getType() == PinResult.PIN_RESULT_TYPE_INCORRECT) {
                                    // show message
                                    mSecurityMessageDisplay.setMessage(getPukPasswordErrorMessage(
                                            attemptsRemaining, false));
                                    if (attemptsRemaining <= 2) {
                                            result.getAttemptsRemaining(), false));
                                    if (result.getAttemptsRemaining() <= 2) {
                                        // this is getting critical - show dialog
                                        getPukRemainingAttemptsDialog(attemptsRemaining).show();
                                        getPukRemainingAttemptsDialog(
                                                result.getAttemptsRemaining()).show();
                                    } else {
                                        // show message
                                        mSecurityMessageDisplay.setMessage(
                                                getPukPasswordErrorMessage(
                                                attemptsRemaining, false));
                                                        result.getAttemptsRemaining(), false));
                                    }
                                } else {
                                    mSecurityMessageDisplay.setMessage(getContext().getString(
@@ -436,7 +443,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
                                }
                                if (DEBUG) Log.d(LOG_TAG, "verifyPasswordAndUnlock "
                                        + " UpdateSim.onSimCheckResponse: "
                                        + " attemptsRemaining=" + attemptsRemaining);
                                        + " attemptsRemaining=" + result.getAttemptsRemaining());
                                mStateMachine.reset();
                            }
                            mCheckSimPukThread = null;