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;