Add a new API getAggregateSatellitePlmnListForCarrier

All sum of available satellite plmn list will be return when invoked.

Bug: 316264277
Test: Manual test with pixel in live network
Test: atest SatelliteManagerTest, SatelliteManagerTestOnMockService, NetworkSelectSettingsTest
Change-Id: If46bcb2b8a145d6894b38ff2e6e93f5f84c350e3
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index d8d8450..8e62191 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -12643,6 +12643,27 @@
         return result;
     }
 
+    /**
+     * Get the aggregated satellite plmn list. This API collects plmn data from multiple sources,
+     * including carrier config, entitlement server, and config update.
+     *
+     * @param subId subId The subscription ID of the carrier.
+     *
+     * @return List of plmns for carrier satellite service. If no plmn is available, empty list will
+     * be returned.
+     *
+     * @throws SecurityException if the caller doesn't have the required permission.
+     */
+    @NonNull public List<String> getAllSatellitePlmnsForCarrier(int subId) {
+        enforceSatelliteCommunicationPermission("getAllSatellitePlmnsForCarrier");
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return mSatelliteController.getAllSatellitePlmnsForCarrier(subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
     @Override
     public void setVoiceServiceStateOverride(int subId, boolean hasService, String callingPackage) {
         // Only telecom (and shell, for CTS purposes) is allowed to call this method.