Refactor PinStorage#storePin to avoid dead lock when unlock PIN.

There'll be dead lock if we try to get iccid (acquire UiccController)
after PinStorage lock acquired since another process will try to get
locks in reverse order.

Bug: 200588835
Test: FrameworksTelephonyTests:PinStorageTest
Change-Id: Ia6d8fe10d6814991ac034ce19d037228700c83d9
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f0a6a69..5fc8f86 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -183,6 +183,7 @@
 import com.android.internal.telephony.uicc.IccIoResult;
 import com.android.internal.telephony.uicc.IccRecords;
 import com.android.internal.telephony.uicc.IccUtils;
+import com.android.internal.telephony.uicc.PinStorage;
 import com.android.internal.telephony.uicc.SIMRecords;
 import com.android.internal.telephony.uicc.UiccCard;
 import com.android.internal.telephony.uicc.UiccCardApplication;
@@ -1716,8 +1717,9 @@
                         // If the operation is successful, update the PIN storage
                         Pair<String, String> passwords = (Pair<String, String>) request.argument;
                         int phoneId = getPhoneFromRequest(request).getPhoneId();
-                        UiccController.getInstance().getPinStorage()
-                                .storePin(passwords.second, phoneId);
+                        PinStorage pinStorage = UiccController.getInstance().getPinStorage();
+                        pinStorage.storePin(passwords.second, phoneId,
+                                pinStorage.getIccid(phoneId));
                     } else {
                         request.result = msg.arg1;
                     }
@@ -1741,8 +1743,9 @@
                         Pair<Boolean, String> enabled = (Pair<Boolean, String>) request.argument;
                         int phoneId = getPhoneFromRequest(request).getPhoneId();
                         if (enabled.first) {
-                            UiccController.getInstance().getPinStorage()
-                                    .storePin(enabled.second, phoneId);
+                            PinStorage pinStorage = UiccController.getInstance().getPinStorage();
+                            pinStorage.storePin(enabled.second, phoneId,
+                                    pinStorage.getIccid(phoneId));
                         } else {
                             UiccController.getInstance().getPinStorage().clearPin(phoneId);
                         }
@@ -2444,7 +2447,8 @@
             resultArray[1] = mRetryCount;
 
             if (mResult == PhoneConstants.PIN_RESULT_SUCCESS && pin.length() > 0) {
-                UiccController.getInstance().getPinStorage().storePin(pin, mPhoneId);
+                PinStorage pinStorage = UiccController.getInstance().getPinStorage();
+                pinStorage.storePin(pin, mPhoneId, pinStorage.getIccid(mPhoneId));
             }
 
             return resultArray;