Merge "Added the bug number to the flag" into main
diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
index 0f56973..7e9f3ff 100644
--- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java
+++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java
@@ -238,7 +238,7 @@
private static final int EVENT_SATELLITE_CONFIG_DATA_UPDATED = 40;
private static final int EVENT_SATELLITE_SUPPORTED_STATE_CHANGED = 41;
private static final int EVENT_NOTIFY_NTN_HYSTERESIS_TIMED_OUT = 42;
- private static final int EVENT_EVALUATE_ESOS_PROFILES_PRIORITIZATION = 43;
+ private static final int CMD_EVALUATE_ESOS_PROFILES_PRIORITIZATION = 43;
private static final int CMD_UPDATE_PROVISION_SATELLITE_TOKEN = 44;
private static final int EVENT_UPDATE_PROVISION_SATELLITE_TOKEN_DONE = 45;
private static final int EVENT_NOTIFY_NTN_ELIGIBILITY_HYSTERESIS_TIMED_OUT = 46;
@@ -519,6 +519,17 @@
private final Object mIsWifiConnectedLock = new Object();
@GuardedBy("mIsWifiConnectedLock")
private boolean mIsWifiConnected = false;
+ private BroadcastReceiver
+ mDefaultSmsSubscriptionChangedBroadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent.getAction().equals(
+ SubscriptionManager.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED)) {
+ plogd("Default SMS subscription changed");
+ sendRequestAsync(CMD_EVALUATE_ESOS_PROFILES_PRIORITIZATION, null, null);
+ }
+ }
+ };
/**
* @return The singleton instance of SatelliteController.
@@ -651,7 +662,7 @@
getDemoPointingNotAlignedDurationMillisFromResources();
mSatelliteEmergencyModeDurationMillis =
getSatelliteEmergencyModeDurationFromOverlayConfig(context);
- sendMessageDelayed(obtainMessage(EVENT_EVALUATE_ESOS_PROFILES_PRIORITIZATION),
+ sendMessageDelayed(obtainMessage(CMD_EVALUATE_ESOS_PROFILES_PRIORITIZATION),
/* delayMillis= */ TimeUnit.MINUTES.toMillis(1));
SubscriptionManager subscriptionManager = mContext.getSystemService(
@@ -661,6 +672,7 @@
subscriptionManager.addOnSubscriptionsChangedListener(
new HandlerExecutor(new Handler(looper)), mSubscriptionsChangedListener);
}
+ registerDefaultSmsSubscriptionChangedBroadcastReceiver();
}
class SatelliteSubscriptionsChangedListener
@@ -1576,7 +1588,7 @@
break;
}
- case EVENT_EVALUATE_ESOS_PROFILES_PRIORITIZATION: {
+ case CMD_EVALUATE_ESOS_PROFILES_PRIORITIZATION: {
evaluateESOSProfilesPrioritization();
break;
}
@@ -4356,13 +4368,13 @@
processNewCarrierConfigData(subId);
resetCarrierRoamingSatelliteModeParams(subId);
handleStateChangedForCarrierRoamingNtnEligibility();
- sendMessageDelayed(obtainMessage(EVENT_EVALUATE_ESOS_PROFILES_PRIORITIZATION),
+ sendMessageDelayed(obtainMessage(CMD_EVALUATE_ESOS_PROFILES_PRIORITIZATION),
TimeUnit.MINUTES.toMillis(1));
}
// imsi, msisdn, default sms subId change
private void handleSubscriptionsChanged() {
- sendMessageDelayed(obtainMessage(EVENT_EVALUATE_ESOS_PROFILES_PRIORITIZATION),
+ sendMessageDelayed(obtainMessage(CMD_EVALUATE_ESOS_PROFILES_PRIORITIZATION),
TimeUnit.MINUTES.toMillis(1));
}
@@ -5621,11 +5633,12 @@
*/
private void evaluateESOSProfilesPrioritization() {
if (!mFeatureFlags.carrierRoamingNbIotNtn()) {
+ plogd("evaluateESOSProfilesPrioritization: Flag CarrierRoamingNbIotNtn is disabled");
return;
}
List<SubscriptionInfo> allSubInfos = mSubscriptionManagerService.getAllSubInfoList(
mContext.getOpPackageName(), mContext.getAttributionTag());
- //key : priority, low value is high, value : List<SubscriptionInfo>
+ // Key : priority - lower value has higher priority; Value : List<SubscriptionInfo>
Map<Integer, List<SubscriptionInfo>> newSubsInfoListPerPriority = new HashMap<>();
for (SubscriptionInfo info : allSubInfos) {
int subId = info.getSubscriptionId();
@@ -5643,15 +5656,18 @@
if (keyPriority != -1) {
newSubsInfoListPerPriority.computeIfAbsent(keyPriority,
k -> new ArrayList<>()).add(info);
+ } else {
+ plogw("evaluateESOSProfilesPrioritization: Got -1 keyPriority for subId="
+ + info.getSubscriptionId());
}
}
if (newSubsInfoListPerPriority.size() == 0) {
- logd("evaluateESOSProfilesPrioritization: no available");
+ logd("evaluateESOSProfilesPrioritization: no satellite subscription available");
return;
}
- // if priority is changed, send broadcast for provisioned ESOS subs ids
+ // If priority has changed, send broadcast for provisioned ESOS subs IDs
synchronized (mSatelliteTokenProvisionedLock) {
if (isPriorityChanged(mSubsInfoListPerPriority, newSubsInfoListPerPriority)) {
mSubsInfoListPerPriority = newSubsInfoListPerPriority;
@@ -6022,4 +6038,15 @@
}
}
}
+
+ private void registerDefaultSmsSubscriptionChangedBroadcastReceiver() {
+ if (!mFeatureFlags.carrierRoamingNbIotNtn()) {
+ plogd("registerDefaultSmsSubscriptionChangedBroadcastReceiver: Flag "
+ + "CarrierRoamingNbIotNtn is disabled");
+ return;
+ }
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(SubscriptionManager.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED);
+ mContext.registerReceiver(mDefaultSmsSubscriptionChangedBroadcastReceiver, intentFilter);
+ }
}