Add featureflag:load_dds_on_create
If this feature is enabled, Load default data subid onCreate
If this feature is disabled, sometimes dds change events may be
missed and remain at -1.
Bug: 310591561
Bug: 297319589
Test: manual bootup and verify
Change-Id: Ie27f0dfef48d1763c04cac98c60a8d5b31fdc1ef
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 4773a83..f6c56c9 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -240,6 +240,8 @@
// fine or coarse location since we only use ServiceState for
private PhoneAppCallback[] mTelephonyCallbacks;
+ private FeatureFlags mFeatureFlags;
+
private class PhoneAppCallback extends TelephonyCallback implements
TelephonyCallback.ServiceStateListener {
private final int mSubId;
@@ -480,8 +482,8 @@
getResources().getBoolean(R.bool.config_enable_aosp_domain_selection));
// Initialize the telephony framework
- FeatureFlags featureFlags = new FeatureFlagsImpl();
- PhoneFactory.makeDefaultPhones(this, featureFlags);
+ mFeatureFlags = new FeatureFlagsImpl();
+ PhoneFactory.makeDefaultPhones(this, mFeatureFlags);
// Initialize the DomainSelectionResolver after creating the Phone instance
// to check the Radio HAL version.
@@ -539,7 +541,7 @@
// Create the SatelliteController singleton, which acts as a backend service for
// {@link android.telephony.satellite.SatelliteManager}.
- SatelliteController.make(this, featureFlags);
+ SatelliteController.make(this, mFeatureFlags);
// Create an instance of CdmaPhoneCallState and initialize it to IDLE
cdmaPhoneCallState = new CdmaPhoneCallState();
@@ -554,7 +556,7 @@
mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
- phoneMgr = PhoneInterfaceManager.init(this, featureFlags);
+ phoneMgr = PhoneInterfaceManager.init(this, mFeatureFlags);
imsRcsController = ImsRcsController.init(this);
@@ -599,12 +601,16 @@
intentFilter.addAction(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
intentFilter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
registerReceiver(mReceiver, intentFilter);
- int defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
- if (SubscriptionManager.isValidSubscriptionId(defaultDataSubId)) {
- if (VDBG) Log.v(LOG_TAG, "Loaded initial default data sub: " + defaultDataSubId);
- mDefaultDataSubId = defaultDataSubId;
- registerSettingsObserver();
- updateDataRoamingStatus(ROAMING_NOTIFICATION_REASON_DEFAULT_DATA_SUBS_CHANGED);
+ if (mFeatureFlags.loadDdsOnCreate()) {
+ int defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId();
+ if (SubscriptionManager.isValidSubscriptionId(defaultDataSubId)) {
+ if (VDBG) {
+ Log.v(LOG_TAG, "Loaded initial default data sub: " + defaultDataSubId);
+ }
+ mDefaultDataSubId = defaultDataSubId;
+ registerSettingsObserver();
+ updateDataRoamingStatus(ROAMING_NOTIFICATION_REASON_DEFAULT_DATA_SUBS_CHANGED);
+ }
}
PhoneConfigurationManager.registerForMultiSimConfigChange(
@@ -1179,6 +1185,10 @@
IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, " ");
pw.println("------- PhoneGlobals -------");
pw.increaseIndent();
+ pw.println("FeatureFlags:");
+ pw.increaseIndent();
+ pw.println("loadDdsOnCreate=" + mFeatureFlags.loadDdsOnCreate());
+ pw.decreaseIndent();
pw.println("mCurrentRoamingNotification=" + mCurrentRoamingNotification);
pw.println("mDefaultDataSubId=" + mDefaultDataSubId);
pw.println("isSmsCapable=" + TelephonyManager.from(this).isSmsCapable());