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();
     }
 }