Merge cherrypicks of ['googleplex-android-review.googlesource.com/30967297'] into 25Q1-release.

Change-Id: If803b9745b25795ef9b3be460df3eda2257da5a2
diff --git a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
index c0f02cd..0a753b4 100644
--- a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
+++ b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
@@ -2267,7 +2267,6 @@
                     ploge("cleanupOnDeviceAccessControllerResources: ex=" + ex);
                 }
                 mSatelliteOnDeviceAccessController = null;
-                mSatelliteAccessConfigMap = null;
                 stopKeepOnDeviceAccessControllerResourcesTimer();
             }
         }
diff --git a/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java b/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
index 315184e..3750dd1 100644
--- a/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
+++ b/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
@@ -41,6 +41,7 @@
 import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES;
 import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.EVENT_CONFIG_DATA_UPDATED;
 import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.EVENT_COUNTRY_CODE_CHANGED;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.EVENT_KEEP_ON_DEVICE_ACCESS_CONTROLLER_RESOURCES_TIMEOUT;
 import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.EVENT_WAIT_FOR_CURRENT_LOCATION_TIMEOUT;
 import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.GOOGLE_US_SAN_SAT_S2_FILE_NAME;
 import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.UNKNOWN_REGIONAL_SATELLITE_CONFIG_ID;
@@ -96,7 +97,6 @@
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
-import android.os.Parcel;
 import android.os.ResultReceiver;
 import android.os.UserHandle;
 import android.telecom.TelecomManager;
@@ -586,7 +586,7 @@
         ArgumentCaptor<Bundle> bundleCaptor = ArgumentCaptor.forClass(Bundle.class);
         SatelliteAccessConfiguration satelliteAccessConfig = getSatelliteAccessConfiguration();
 
-        // setup satellite communication allwed state as true
+        // setup satellite communication allowed state as true
         setSatelliteCommunicationAllowed();
 
         // setup map data of location and configId.
@@ -625,6 +625,9 @@
 
         doReturn(true).when(mMockFeatureFlags).carrierRoamingNbIotNtn();
 
+        // Verify if the map is maintained after the cleanup event
+        sendSatelliteDeviceAccessControllerResourcesTimeOutEvent();
+
         // satellite communication allowed state is enabled and
         // regional config id is DEFAULT_REGIONAL_SATELLITE_CONFIG_ID.
         clearInvocations(mockResultReceiver);
@@ -664,16 +667,10 @@
     }
 
     private SatelliteAccessConfiguration getSatelliteAccessConfiguration() {
-        Parcel satelliteAccessconfigParcel = Parcel.obtain();
-
         List<SatelliteInfo> satelliteInfoList = new ArrayList<>();
         satelliteInfoList.add(mSatelliteInfo);
-        satelliteAccessconfigParcel.writeTypedList(satelliteInfoList);
-
         List<Integer> tagIds = new ArrayList<>(List.of(1, 2));
-        satelliteAccessconfigParcel.writeList(tagIds);
-
-        return new SatelliteAccessConfiguration(satelliteAccessconfigParcel);
+        return new SatelliteAccessConfiguration(satelliteInfoList, tagIds);
     }
 
     @Test
@@ -2063,6 +2060,13 @@
         mTestableLooper.processAllMessages();
     }
 
+    private void sendSatelliteDeviceAccessControllerResourcesTimeOutEvent() {
+        Message msg = mSatelliteAccessControllerUT
+                .obtainMessage(EVENT_KEEP_ON_DEVICE_ACCESS_CONTROLLER_RESOURCES_TIMEOUT);
+        msg.sendToTarget();
+        mTestableLooper.processAllMessages();
+    }
+
     private void sendConfigUpdateChangedEvent(Context context) {
         Message msg = mSatelliteAccessControllerUT.obtainMessage(EVENT_CONFIG_DATA_UPDATED);
         msg.obj = new AsyncResult(context, SATELLITE_RESULT_SUCCESS, null);