Merge "Created typed class for the pin result"

This commit is contained in:
Daniel Bright
2020-03-03 22:41:52 +00:00
committed by Gerrit Code Review
2 changed files with 56 additions and 45 deletions

View File

@@ -16,6 +16,7 @@
package com.android.keyguard; package com.android.keyguard;
import android.annotation.NonNull;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.app.Dialog; import android.app.Dialog;
@@ -26,6 +27,7 @@ import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.graphics.Color; import android.graphics.Color;
import android.telephony.PinResult;
import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
@@ -37,7 +39,6 @@ import android.widget.ImageView;
import com.android.internal.telephony.IccCardConstants; import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.telephony.IccCardConstants.State;
import com.android.internal.telephony.PhoneConstants;
import com.android.systemui.R; 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 // Sending empty PIN here to query the number of remaining PIN attempts
new CheckSimPin("", mSubId) { new CheckSimPin("", mSubId) {
void onSimCheckResponse(final int result, final int attemptsRemaining) { void onSimCheckResponse(final PinResult result) {
Log.d(LOG_TAG, "onSimCheckResponse " + " dummy One result" + result + Log.d(LOG_TAG, "onSimCheckResponse " + " dummy One result "
" attemptsRemaining=" + attemptsRemaining); + result.toString());
if (attemptsRemaining >= 0) { if (result.getAttemptsRemaining() >= 0) {
mRemainingAttempts = attemptsRemaining; mRemainingAttempts = result.getAttemptsRemaining();
setLockedSimMessage(); setLockedSimMessage();
} }
} }
@@ -247,7 +248,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
mSubId = subId; mSubId = subId;
} }
abstract void onSimCheckResponse(final int result, final int attemptsRemaining); abstract void onSimCheckResponse(@NonNull PinResult result);
@Override @Override
public void run() { public void run() {
@@ -257,23 +258,23 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
TelephonyManager telephonyManager = TelephonyManager telephonyManager =
((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE)) ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE))
.createForSubscriptionId(mSubId); .createForSubscriptionId(mSubId);
final int[] result = telephonyManager.supplyPinReportResult(mPin); final PinResult result = telephonyManager.supplyPinReportPinResult(mPin);
if (result == null || result.length == 0) { if (result == null) {
Log.e(TAG, "Error result for supplyPinReportResult."); Log.e(TAG, "Error result for supplyPinReportResult.");
post(new Runnable() { post(new Runnable() {
@Override @Override
public void run() { public void run() {
onSimCheckResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1); onSimCheckResponse(PinResult.getDefaultFailedResult());
} }
}); });
} else { } else {
if (DEBUG) { if (DEBUG) {
Log.v(TAG, "supplyPinReportResult returned: " + result[0] + " " + result[1]); Log.v(TAG, "supplyPinReportResult returned: " + result.toString());
} }
post(new Runnable() { post(new Runnable() {
@Override @Override
public void run() { public void run() {
onSimCheckResponse(result[0], result[1]); onSimCheckResponse(result);
} }
}); });
} }
@@ -326,17 +327,18 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
if (mCheckSimPinThread == null) { if (mCheckSimPinThread == null) {
mCheckSimPinThread = new CheckSimPin(mPasswordEntry.getText(), mSubId) { mCheckSimPinThread = new CheckSimPin(mPasswordEntry.getText(), mSubId) {
@Override @Override
void onSimCheckResponse(final int result, final int attemptsRemaining) { void onSimCheckResponse(final PinResult result) {
post(new Runnable() { post(new Runnable() {
@Override @Override
public void run() { public void run() {
mRemainingAttempts = attemptsRemaining; mRemainingAttempts = result.getAttemptsRemaining();
if (mSimUnlockProgressDialog != null) { if (mSimUnlockProgressDialog != null) {
mSimUnlockProgressDialog.hide(); mSimUnlockProgressDialog.hide();
} }
resetPasswordText(true /* animate */, resetPasswordText(true /* animate */,
result != PhoneConstants.PIN_RESULT_SUCCESS /* announce */); /* announce */
if (result == PhoneConstants.PIN_RESULT_SUCCESS) { result.getType() != PinResult.PIN_RESULT_TYPE_SUCCESS);
if (result.getType() == PinResult.PIN_RESULT_TYPE_SUCCESS) {
KeyguardUpdateMonitor.getInstance(getContext()) KeyguardUpdateMonitor.getInstance(getContext())
.reportSimUnlocked(mSubId); .reportSimUnlocked(mSubId);
mRemainingAttempts = -1; mRemainingAttempts = -1;
@@ -346,14 +348,16 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
} }
} else { } else {
mShowDefaultMessage = false; mShowDefaultMessage = false;
if (result == PhoneConstants.PIN_PASSWORD_INCORRECT) { if (result.getType() == PinResult.PIN_RESULT_TYPE_INCORRECT) {
if (attemptsRemaining <= 2) { if (result.getAttemptsRemaining() <= 2) {
// this is getting critical - show dialog // this is getting critical - show dialog
getSimRemainingAttemptsDialog(attemptsRemaining).show(); getSimRemainingAttemptsDialog(
result.getAttemptsRemaining()).show();
} else { } else {
// show message // show message
mSecurityMessageDisplay.setMessage( mSecurityMessageDisplay.setMessage(
getPinPasswordErrorMessage(attemptsRemaining, false)); getPinPasswordErrorMessage(
result.getAttemptsRemaining(), false));
} }
} else { } else {
// "PIN operation failed!" - no idea what this was and no way to // "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 " if (DEBUG) Log.d(LOG_TAG, "verifyPasswordAndUnlock "
+ " CheckSimPin.onSimCheckResponse: " + result + " CheckSimPin.onSimCheckResponse: " + result
+ " attemptsRemaining=" + attemptsRemaining); + " attemptsRemaining=" + result.getAttemptsRemaining());
} }
mCallback.userActivity(); mCallback.userActivity();
mCheckSimPinThread = null; mCheckSimPinThread = null;

View File

@@ -16,6 +16,7 @@
package com.android.keyguard; package com.android.keyguard;
import android.annotation.NonNull;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
@@ -25,6 +26,7 @@ import android.content.res.ColorStateList;
import android.content.res.Resources; import android.content.res.Resources;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.graphics.Color; import android.graphics.Color;
import android.telephony.PinResult;
import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
@@ -36,7 +38,6 @@ import android.widget.ImageView;
import com.android.internal.telephony.IccCardConstants; import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.telephony.IccCardConstants.State;
import com.android.internal.telephony.PhoneConstants;
import com.android.systemui.R; 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 // Sending empty PUK here to query the number of remaining PIN attempts
new CheckSimPuk("", "", mSubId) { new CheckSimPuk("", "", mSubId) {
void onSimLockChangedResponse(final int result, final int attemptsRemaining) { void onSimLockChangedResponse(final PinResult result) {
Log.d(LOG_TAG, "onSimCheckResponse " + " dummy One result" + result + if (result == null) Log.e(LOG_TAG, "onSimCheckResponse, pin result is NULL");
" attemptsRemaining=" + attemptsRemaining); else {
if (attemptsRemaining >= 0) { Log.d(LOG_TAG, "onSimCheckResponse " + " dummy One result "
mRemainingAttempts = attemptsRemaining; + result.toString());
mSecurityMessageDisplay.setMessage( if (result.getAttemptsRemaining() >= 0) {
getPukPasswordErrorMessage(attemptsRemaining, true)); mRemainingAttempts = result.getAttemptsRemaining();
mSecurityMessageDisplay.setMessage(
getPukPasswordErrorMessage(result.getAttemptsRemaining(), true));
}
} }
} }
}.start(); }.start();
@@ -307,7 +311,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
mSubId = subId; mSubId = subId;
} }
abstract void onSimLockChangedResponse(final int result, final int attemptsRemaining); abstract void onSimLockChangedResponse(@NonNull PinResult result);
@Override @Override
public void run() { public void run() {
@@ -315,23 +319,23 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
TelephonyManager telephonyManager = TelephonyManager telephonyManager =
((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE)) ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE))
.createForSubscriptionId(mSubId); .createForSubscriptionId(mSubId);
final int[] result = telephonyManager.supplyPukReportResult(mPuk, mPin); final PinResult result = telephonyManager.supplyPukReportPinResult(mPuk, mPin);
if (result == null || result.length == 0) { if (result == null) {
Log.e(TAG, "Error result for supplyPukReportResult."); Log.e(TAG, "Error result for supplyPukReportResult.");
post(new Runnable() { post(new Runnable() {
@Override @Override
public void run() { public void run() {
onSimLockChangedResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1); onSimLockChangedResponse(PinResult.getDefaultFailedResult());
} }
}); });
} else { } else {
if (DEBUG) { if (DEBUG) {
Log.v(TAG, "supplyPukReportResult returned: " + result[0] + " " + result[1]); Log.v(TAG, "supplyPukReportResult returned: " + result.toString());
} }
post(new Runnable() { post(new Runnable() {
@Override @Override
public void run() { public void run() {
onSimLockChangedResponse(result[0], result[1]); onSimLockChangedResponse(result);
} }
}); });
} }
@@ -398,7 +402,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
if (mCheckSimPukThread == null) { if (mCheckSimPukThread == null) {
mCheckSimPukThread = new CheckSimPuk(mPukText, mPinText, mSubId) { mCheckSimPukThread = new CheckSimPuk(mPukText, mPinText, mSubId) {
@Override @Override
void onSimLockChangedResponse(final int result, final int attemptsRemaining) { void onSimLockChangedResponse(final PinResult result) {
post(new Runnable() { post(new Runnable() {
@Override @Override
public void run() { public void run() {
@@ -406,29 +410,32 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
mSimUnlockProgressDialog.hide(); mSimUnlockProgressDialog.hide();
} }
resetPasswordText(true /* animate */, resetPasswordText(true /* animate */,
result != PhoneConstants.PIN_RESULT_SUCCESS /* announce */); /* announce */
if (result == PhoneConstants.PIN_RESULT_SUCCESS) { result.getType() != PinResult.PIN_RESULT_TYPE_SUCCESS);
if (result.getType() == PinResult.PIN_RESULT_TYPE_SUCCESS) {
KeyguardUpdateMonitor.getInstance(getContext()) KeyguardUpdateMonitor.getInstance(getContext())
.reportSimUnlocked(mSubId); .reportSimUnlocked(mSubId);
mRemainingAttempts = -1; mRemainingAttempts = -1;
mShowDefaultMessage = true; mShowDefaultMessage = true;
if (mCallback != null) { if (mCallback != null) {
mCallback.dismiss(true, KeyguardUpdateMonitor.getCurrentUser()); mCallback.dismiss(true,
KeyguardUpdateMonitor.getCurrentUser());
} }
} else { } else {
mShowDefaultMessage = false; mShowDefaultMessage = false;
if (result == PhoneConstants.PIN_PASSWORD_INCORRECT) { if (result.getType() == PinResult.PIN_RESULT_TYPE_INCORRECT) {
// show message // show message
mSecurityMessageDisplay.setMessage(getPukPasswordErrorMessage( mSecurityMessageDisplay.setMessage(getPukPasswordErrorMessage(
attemptsRemaining, false)); result.getAttemptsRemaining(), false));
if (attemptsRemaining <= 2) { if (result.getAttemptsRemaining() <= 2) {
// this is getting critical - show dialog // this is getting critical - show dialog
getPukRemainingAttemptsDialog(attemptsRemaining).show(); getPukRemainingAttemptsDialog(
result.getAttemptsRemaining()).show();
} else { } else {
// show message // show message
mSecurityMessageDisplay.setMessage( mSecurityMessageDisplay.setMessage(
getPukPasswordErrorMessage( getPukPasswordErrorMessage(
attemptsRemaining, false)); result.getAttemptsRemaining(), false));
} }
} else { } else {
mSecurityMessageDisplay.setMessage(getContext().getString( mSecurityMessageDisplay.setMessage(getContext().getString(
@@ -436,7 +443,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
} }
if (DEBUG) Log.d(LOG_TAG, "verifyPasswordAndUnlock " if (DEBUG) Log.d(LOG_TAG, "verifyPasswordAndUnlock "
+ " UpdateSim.onSimCheckResponse: " + " UpdateSim.onSimCheckResponse: "
+ " attemptsRemaining=" + attemptsRemaining); + " attemptsRemaining=" + result.getAttemptsRemaining());
mStateMachine.reset(); mStateMachine.reset();
} }
mCheckSimPukThread = null; mCheckSimPukThread = null;