diff options
author | 2025-03-21 09:32:34 -0700 | |
---|---|---|
committer | 2025-03-21 09:32:34 -0700 | |
commit | 14d1646bced0f9ad7c32526af78886551effec33 (patch) | |
tree | 57a6a2c794b3421186908c0b4c9281ed35182061 /src | |
parent | df35ff6aeb802c9b5daec1f77ea5592460b38d86 (diff) | |
parent | 01e0245fab39374506675cc481697464c480be7a (diff) |
Merge "Return highest preferred data policy if input plmn is empty." into main
Diffstat (limited to 'src')
-rw-r--r-- | src/java/com/android/internal/telephony/satellite/SatelliteController.java | 33 |
1 files changed, 26 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; } |