Fix: updateExternalState() does not update SIM state to PERM_DISABLED

setExternalState() shall be called with State.PERM_DISABLED if the state
of PIN1 is PinState.PINSTATE_ENABLED_PERM_BLOCKED. Refer to the same
logic in processLockedState().

Bug: 29864172
Change-Id: I68f6c62b3713520431177b041c23027e94a5d66b
diff --git a/src/java/com/android/internal/telephony/uicc/IccCardProxy.java b/src/java/com/android/internal/telephony/uicc/IccCardProxy.java
index ce8a671..19032c1 100644
--- a/src/java/com/android/internal/telephony/uicc/IccCardProxy.java
+++ b/src/java/com/android/internal/telephony/uicc/IccCardProxy.java
@@ -419,6 +419,11 @@
                 setExternalState(State.PIN_REQUIRED);
                 break;
             case APPSTATE_PUK:
+                PinState pin1State = mUiccApplication.getPin1State();
+                if (pin1State.isPermBlocked()) {
+                    setExternalState(State.PERM_DISABLED);
+                    return;
+                }
                 setExternalState(State.PUK_REQUIRED);
                 break;
             case APPSTATE_SUBSCRIPTION_PERSO: