diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/java/com/android/internal/telephony/satellite/SatelliteController.java | 23 | ||||
-rw-r--r-- | src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java | 11 |
2 files changed, 28 insertions, 6 deletions
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java index a39ba91bda..76897630fc 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java @@ -365,6 +365,7 @@ public class SatelliteController extends Handler { private boolean mDisableNFCOnSatelliteEnabled = false; private boolean mDisableUWBOnSatelliteEnabled = false; private boolean mDisableWifiOnSatelliteEnabled = false; + private AtomicBoolean mIgnorePlmnListFromStorage = new AtomicBoolean(false); private final Object mSatelliteEnabledRequestLock = new Object(); /* This variable is used to store the first enable request that framework has received in the @@ -5421,7 +5422,8 @@ public class SatelliteController extends Handler { obtainMessage(EVENT_SET_SATELLITE_PLMN_INFO_DONE)); } - private Set<String> getAllPlmnSet() { + @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) + protected Set<String> getAllPlmnSet() { Set<String> allPlmnSetFromSubInfo = new HashSet<>(); int[] activeSubIdArray = mSubscriptionManagerService.getActiveSubIdList(true); for (int activeSubId : activeSubIdArray) { @@ -5430,6 +5432,12 @@ public class SatelliteController extends Handler { } allPlmnSetFromSubInfo.addAll(mSatellitePlmnListFromOverlayConfig); + if (mIgnorePlmnListFromStorage.get()) { + // Do not use PLMN list from storage + plogd("getAllPlmnList: allPlmnSetFromSubInfo=" + allPlmnSetFromSubInfo); + return allPlmnSetFromSubInfo; + } + Set<String> allPlmnListFromStorage = getCarrierRoamingNtnAllSatellitePlmnSetFromStorage(); if (!allPlmnListFromStorage.containsAll(allPlmnSetFromSubInfo)) { allPlmnListFromStorage.addAll(allPlmnSetFromSubInfo); @@ -9322,4 +9330,17 @@ public class SatelliteController extends Handler { return getSatelliteDataServicePolicyForPlmn(subId, ""); } + + /** + * This API can be used by only CTS to make the function {@link #getAllPlmnSet()} to exclude the + * PLMN list from storage from the returned result. + * + * @param enabled Whether to enable boolean config. + * @return {@code true} if the value is set successfully, {@code false} otherwise. + */ + public boolean setSatelliteIgnorePlmnListFromStorage(boolean enabled) { + plogd("setSatelliteIgnorePlmnListFromStorage - " + enabled); + mIgnorePlmnListFromStorage.set(enabled); + return true; + } } diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java index a6581398e0..fd47c16ee1 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java @@ -60,6 +60,7 @@ import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.subscription.SubscriptionManagerService; import com.android.internal.telephony.util.TelephonyUtils; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; @@ -556,8 +557,8 @@ public class SatelliteServiceUtils { /** Check whether device is connected to satellite PLMN */ public static boolean isSatellitePlmn(int subId, @NonNull ServiceState serviceState) { - List<String> satellitePlmnList = - SatelliteController.getInstance().getSatellitePlmnsForCarrier(subId); + List<String> satellitePlmnList = new ArrayList<>( + SatelliteController.getInstance().getAllPlmnSet()); if (satellitePlmnList.isEmpty()) { logd("isSatellitePlmn: satellitePlmnList is empty"); return false; @@ -567,12 +568,12 @@ public class SatelliteServiceUtils { serviceState.getNetworkRegistrationInfoListForTransportType( AccessNetworkConstants.TRANSPORT_TYPE_WWAN)) { String registeredPlmn = nri.getRegisteredPlmn(); - if (TextUtils.isEmpty(registeredPlmn)) { - logd("isSatellitePlmn: registeredPlmn is empty"); + String mccmnc = getMccMnc(nri); + if (TextUtils.isEmpty(registeredPlmn) && TextUtils.isEmpty(mccmnc)) { + logd("isSatellitePlmn: registeredPlmn and cell plmn are empty"); continue; } - String mccmnc = getMccMnc(nri); for (String satellitePlmn : satellitePlmnList) { if (TextUtils.equals(satellitePlmn, registeredPlmn) || TextUtils.equals(satellitePlmn, mccmnc)) { |