summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/java/com/android/internal/telephony/satellite/SatelliteController.java23
-rw-r--r--src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java11
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)) {