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
Change-Id: I42f2141f9378fc4f7a6f11af6073d38f917528bc
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
index 35a65aa..76adf04 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java
@@ -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.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;
@@ -35,7 +37,6 @@
import android.view.WindowManager;
import android.widget.ImageView;
-import com.android.internal.telephony.PhoneConstants;
import com.android.systemui.Dependency;
import com.android.systemui.R;
@@ -139,11 +140,11 @@
// 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();
}
}
@@ -251,7 +252,7 @@
mSubId = subId;
}
- abstract void onSimCheckResponse(final int result, final int attemptsRemaining);
+ abstract void onSimCheckResponse(@NonNull PinResult result);
@Override
public void run() {
@@ -261,23 +262,23 @@
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);
}
});
}
@@ -330,17 +331,18 @@
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) {
Dependency.get(KeyguardUpdateMonitor.class)
.reportSimUnlocked(mSubId);
mRemainingAttempts = -1;
@@ -350,14 +352,16 @@
}
} 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
@@ -367,7 +371,7 @@
}
if (DEBUG) Log.d(LOG_TAG, "verifyPasswordAndUnlock "
+ " CheckSimPin.onSimCheckResponse: " + result
- + " attemptsRemaining=" + attemptsRemaining);
+ + " attemptsRemaining=" + result.getAttemptsRemaining());
}
mCallback.userActivity();
mCheckSimPinThread = null;
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java
index dc68115..10dcbd6 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java
@@ -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.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;
@@ -34,7 +36,6 @@
import android.view.WindowManager;
import android.widget.ImageView;
-import com.android.internal.telephony.PhoneConstants;
import com.android.systemui.Dependency;
import com.android.systemui.R;
@@ -191,13 +192,16 @@
// 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;
- mSecurityMessageDisplay.setMessage(
- getPukPasswordErrorMessage(attemptsRemaining, true));
+ 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(result.getAttemptsRemaining(), true));
+ }
}
}
}.start();
@@ -311,7 +315,7 @@
mSubId = subId;
}
- abstract void onSimLockChangedResponse(final int result, final int attemptsRemaining);
+ abstract void onSimLockChangedResponse(@NonNull PinResult result);
@Override
public void run() {
@@ -319,23 +323,23 @@
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);
}
});
}
@@ -402,7 +406,7 @@
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() {
@@ -410,29 +414,32 @@
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) {
Dependency.get(KeyguardUpdateMonitor.class)
.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(
@@ -440,7 +447,7 @@
}
if (DEBUG) Log.d(LOG_TAG, "verifyPasswordAndUnlock "
+ " UpdateSim.onSimCheckResponse: "
- + " attemptsRemaining=" + attemptsRemaining);
+ + " attemptsRemaining=" + result.getAttemptsRemaining());
mStateMachine.reset();
}
mCheckSimPukThread = null;