Merge "Fix error message shown when SIM PIN enable/disable fails"

am: f29392303a

Change-Id: I060d7e0e02b56d9fea5260ba1f2cf8a1ea746414
This commit is contained in:
Youming Ye
2018-10-15 10:42:52 -07:00
committed by android-build-merger
2 changed files with 22 additions and 4 deletions

View File

@@ -2720,6 +2720,10 @@
<string name="sim_change_succeeded">SIM PIN changed successfully</string> <string name="sim_change_succeeded">SIM PIN changed successfully</string>
<!-- SIM card lock settings screen, toast after not entering correct SIM PIN [CHAR LIMIT=40] --> <!-- SIM card lock settings screen, toast after not entering correct SIM PIN [CHAR LIMIT=40] -->
<string name="sim_lock_failed">Can\u2019t change SIM card lock state.\nPossibly incorrect PIN.</string> <string name="sim_lock_failed">Can\u2019t change SIM card lock state.\nPossibly incorrect PIN.</string>
<!-- SIM card lock settings screen, toast after disabling PIN failed from modem -->
<string name="sim_pin_disable_failed">Can\'t disable PIN.</string>
<!-- SIM card lock settings screen, toast after enabling PIN failed from modem -->
<string name="sim_pin_enable_failed">Can\'t enable PIN.</string>
<!-- SIM card lock settings screen, SIM PIN dialog button labels: [CHAR LIMIT=40] --> <!-- SIM card lock settings screen, SIM PIN dialog button labels: [CHAR LIMIT=40] -->
<string name="sim_enter_ok">OK</string> <string name="sim_enter_ok">OK</string>
<!-- SIM card lock settings screen, SIM PIN dialog button labels: [CHAR LIMIT=40] --> <!-- SIM card lock settings screen, SIM PIN dialog button labels: [CHAR LIMIT=40] -->

View File

@@ -44,6 +44,7 @@ import android.widget.TabHost.TabSpec;
import android.widget.TabWidget; import android.widget.TabWidget;
import android.widget.Toast; import android.widget.Toast;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.Phone; import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.TelephonyIntents;
@@ -121,7 +122,7 @@ public class IccLockSettings extends SettingsPreferenceFragment
AsyncResult ar = (AsyncResult) msg.obj; AsyncResult ar = (AsyncResult) msg.obj;
switch (msg.what) { switch (msg.what) {
case MSG_ENABLE_ICC_PIN_COMPLETE: case MSG_ENABLE_ICC_PIN_COMPLETE:
iccLockChanged(ar.exception == null, msg.arg1); iccLockChanged(ar.exception == null, msg.arg1, ar.exception);
break; break;
case MSG_CHANGE_ICC_PIN_COMPLETE: case MSG_CHANGE_ICC_PIN_COMPLETE:
iccPinChanged(ar.exception == null, msg.arg1); iccPinChanged(ar.exception == null, msg.arg1);
@@ -451,12 +452,25 @@ public class IccLockSettings extends SettingsPreferenceFragment
mPinToggle.setEnabled(false); mPinToggle.setEnabled(false);
} }
private void iccLockChanged(boolean success, int attemptsRemaining) { private void iccLockChanged(boolean success, int attemptsRemaining, Throwable exception) {
if (success) { if (success) {
mPinToggle.setChecked(mToState); mPinToggle.setChecked(mToState);
} else { } else {
if (exception instanceof CommandException) {
CommandException.Error err = ((CommandException)(exception)).getCommandError();
if (err == CommandException.Error.PASSWORD_INCORRECT) {
Toast.makeText(getContext(), getPinPasswordErrorMessage(attemptsRemaining), Toast.makeText(getContext(), getPinPasswordErrorMessage(attemptsRemaining),
Toast.LENGTH_LONG).show(); Toast.LENGTH_LONG).show();
} else {
if (mToState) {
Toast.makeText(getContext(), mRes.getString
(R.string.sim_pin_enable_failed), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getContext(), mRes.getString
(R.string.sim_pin_disable_failed), Toast.LENGTH_LONG).show();
}
}
}
} }
mPinToggle.setEnabled(true); mPinToggle.setEnabled(true);
resetDialogState(); resetDialogState();