summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Aishwarya Mallampati <amallampati@google.com> 2025-03-20 20:20:40 +0000
committer Aishwarya Mallampati <amallampati@google.com> 2025-03-21 01:16:05 +0000
commit01e0245fab39374506675cc481697464c480be7a (patch)
tree03765ff9ffdc1fec4360994a1b6a4f641e904a25
parentaffac042eb60e249d4cbb496b971dbd0e352314b (diff)
Return highest preferred data policy if input plmn is empty.
Bug: 404629211 Test: atest SatelliteControllerTest Flag: EXEMPT bugfix Change-Id: I14feb99ef015ce0aae17353ffe49f8cad21108b7
-rw-r--r--src/java/com/android/internal/telephony/satellite/SatelliteController.java33
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java22
2 files changed, 48 insertions, 7 deletions
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
index 0d6a2250a7..672a064549 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
@@ -9195,23 +9195,42 @@ public class SatelliteController extends Handler {
* @return Supported modes {@link CarrierConfigManager.SATELLITE_DATA_SUPPORT_MODE}
*/
public int getSatelliteDataServicePolicyForPlmn(int subId, String plmn) {
- if (plmn != null && isValidSubscriptionId(subId)) {
+ plogd("getSatelliteDataServicePolicyForPlmn: subId=" + subId + " plmn=" + plmn);
+ if (isValidSubscriptionId(subId)) {
+ Map<String, Integer> dataServicePolicy;
synchronized (mSupportedSatelliteServicesLock) {
- Map<String, Integer> dataServicePolicy =
- mEntitlementDataServicePolicyMapPerCarrier.get(
- subId);
- logd("data policy available for sub id:" + dataServicePolicy);
- if (dataServicePolicy != null && dataServicePolicy.containsKey(plmn)
- && !plmn.isEmpty()) {
+ dataServicePolicy = mEntitlementDataServicePolicyMapPerCarrier.get(subId);
+ }
+ plogd("getSatelliteDataServicePolicyForPlmn: dataServicePolicy=" + dataServicePolicy);
+
+ if (dataServicePolicy != null) {
+ if (!TextUtils.isEmpty(plmn) && dataServicePolicy.containsKey(plmn)) {
+ plogd("getSatelliteDataServicePolicyForPlmn: "
+ + "return policy using dataServicePolicy map");
return dataServicePolicy.get(plmn);
+ } else if (TextUtils.isEmpty(plmn)) {
+ int preferredPolicy =
+ CarrierConfigManager.SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED;
+ for (String plmnKey : dataServicePolicy.keySet()) {
+ int policy = dataServicePolicy.get(plmnKey);
+ // higher value has higher preference
+ if (policy > preferredPolicy) {
+ preferredPolicy = policy;
+ }
+ }
+ plogd("getSatelliteDataServicePolicyForPlmn: "
+ + "return preferredPolicy=" + preferredPolicy);
+ return preferredPolicy;
}
}
if (isSatelliteDataServicesAllowed(subId, plmn)) {
+ plogd("getSatelliteDataServicePolicyForPlmn: return data support mode from config");
return getCarrierSatelliteDataSupportedModeFromConfig(subId);
}
}
+ plogd("getSatelliteDataServicePolicyForPlmn: return data support only restricted");
return CarrierConfigManager.SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED;
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
index bc50894257..a519067e78 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java
@@ -6593,6 +6593,13 @@ public class SatelliteControllerTest extends TelephonyTest {
.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00102");
assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn);
+ dataSupportModeForPlmn = mSatelliteControllerUT
+ .getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
+ assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn);
+
+ dataSupportModeForPlmn = mSatelliteControllerUT
+ .getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
+ assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn);
}
@Test
@@ -6626,6 +6633,14 @@ public class SatelliteControllerTest extends TelephonyTest {
.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);
+ dataSupportModeForPlmn = mSatelliteControllerUT
+ .getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
+ assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);
+
+ dataSupportModeForPlmn = mSatelliteControllerUT
+ .getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
+ assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);
+
setConfigData(new ArrayList<>());
PersistableBundle carrierSupportedSatelliteServicesPerProvider =
new PersistableBundle();
@@ -6642,6 +6657,13 @@ public class SatelliteControllerTest extends TelephonyTest {
.getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101");
assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn);
+ dataSupportModeForPlmn = mSatelliteControllerUT
+ .getSatelliteDataServicePolicyForPlmn(SUB_ID, "");
+ assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);
+
+ dataSupportModeForPlmn = mSatelliteControllerUT
+ .getSatelliteDataServicePolicyForPlmn(SUB_ID, null);
+ assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn);
}
@Test