Merge "Refactor PinStorage#storePin to avoid dead lock when unlock PIN." am: 4a59a2d838

Original change: https://android-review.googlesource.com/c/platform/packages/services/Telephony/+/1832798

Change-Id: I8614344ff3557cb61b473b08b8d91b7eff79cd20
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index c75933b..f78a0a1 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -185,6 +185,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;
@@ -1732,8 +1733,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;
                     }
@@ -1757,8 +1759,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);
                         }
@@ -2457,7 +2460,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;