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

Commit 792e6afc authored by Youming Ye's avatar Youming Ye Committed by android-build-merger
Browse files

Merge "Fix error message shown when SIM PIN enable/disable fails" am: f2939230 am: 8bac5926

am: 6293483f

Change-Id: I5b533e911f1185bb9fe1847701e333093b49926e
parents 1d95218e 6293483f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2768,6 +2768,10 @@
    <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] -->
    <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] -->
    <string name="sim_enter_ok">OK</string>
    <!-- SIM card lock settings screen, SIM PIN dialog button labels: [CHAR LIMIT=40] -->
+18 −4
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ import androidx.preference.Preference;
import androidx.preference.SwitchPreference;

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.PhoneFactory;
import com.android.internal.telephony.TelephonyIntents;
@@ -123,7 +124,7 @@ public class IccLockSettings extends SettingsPreferenceFragment
            AsyncResult ar = (AsyncResult) msg.obj;
            switch (msg.what) {
                case MSG_ENABLE_ICC_PIN_COMPLETE:
                    iccLockChanged(ar.exception == null, msg.arg1);
                    iccLockChanged(ar.exception == null, msg.arg1, ar.exception);
                    break;
                case MSG_CHANGE_ICC_PIN_COMPLETE:
                    iccPinChanged(ar.exception == null, msg.arg1);
@@ -453,12 +454,25 @@ public class IccLockSettings extends SettingsPreferenceFragment
        mPinToggle.setEnabled(false);
    }

    private void iccLockChanged(boolean success, int attemptsRemaining) {
    private void iccLockChanged(boolean success, int attemptsRemaining, Throwable exception) {
        if (success) {
            mPinToggle.setChecked(mToState);
        } else {
            if (exception instanceof CommandException) {
                CommandException.Error err = ((CommandException)(exception)).getCommandError();
                if (err == CommandException.Error.PASSWORD_INCORRECT) {
                    Toast.makeText(getContext(), getPinPasswordErrorMessage(attemptsRemaining),
                            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);
        resetDialogState();