Reset last known num uicc applications on sim reset.
Test: atest UiccController
Test: verified in lab against failing test
Bug: 194749659
Change-Id: Ib19d378fe6b0b83683d38b91f4aa556bda6f6ed0
diff --git a/src/java/com/android/internal/telephony/uicc/UiccController.java b/src/java/com/android/internal/telephony/uicc/UiccController.java
index d811e4c..171e5df 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccController.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccController.java
@@ -1163,7 +1163,7 @@
}
if (changed && resp.refreshResult == IccRefreshResponse.REFRESH_RESULT_RESET) {
- uiccCard.getUiccProfile().updateIccAvailability(true);
+ uiccCard.getUiccProfile().onSimReset();
// If there is any change on RESET, reset carrier config as well. From carrier config
// perspective, this is treated the same as sim state unknown
CarrierConfigManager configManager = (CarrierConfigManager)
diff --git a/src/java/com/android/internal/telephony/uicc/UiccProfile.java b/src/java/com/android/internal/telephony/uicc/UiccProfile.java
index c7f9cf3..2e0c8b0 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccProfile.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccProfile.java
@@ -524,9 +524,17 @@
}
/**
+ * This function is called on SIM_REFRESH of type RESET
+ */
+ public void onSimReset() {
+ mLastReportedNumOfUiccApplications = 0;
+ updateIccAvailability(true);
+ }
+
+ /**
* ICC availability/state changed. Update corresponding fields and external state if needed.
*/
- public void updateIccAvailability(boolean allAppsChanged) {
+ private void updateIccAvailability(boolean allAppsChanged) {
synchronized (mLock) {
UiccCardApplication newApp;
IccRecords newRecords = null;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccControllerTest.java
index 40f87e9..75c3da0 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/uicc/UiccControllerTest.java
@@ -651,7 +651,7 @@
mUiccControllerUT.handleMessage(msg);
processAllMessages();
- // verify that updateIccAvailability() is called on refresh with RESET
- verify(mMockProfile).updateIccAvailability(true);
+ // verify that onSimReset() is called on refresh with RESET
+ verify(mMockProfile).onSimReset();
}
}