Added flag to enable subscription manager service through adb
Test: Boot up and basic phone testing
Test: adb root && adb shell device_config put telephony enable_subscription_manager_service true
&& adb shell device_config set_sync_disabled_for_tests persistent && sleep 3 && adb reboot
Fix: 266896752
Change-Id: I14ff642402929bcfd39e6c20c50588ef8eec4eed
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index da63822..0bc46dd 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -42,6 +42,7 @@
import android.os.UserManager;
import android.os.WorkSource;
import android.preference.PreferenceManager;
+import android.provider.DeviceConfig;
import android.sysprop.TelephonyProperties;
import android.telecom.VideoProfile;
import android.telephony.AccessNetworkConstants;
@@ -627,8 +628,11 @@
// Initialize SMS stats
mSmsStats = new SmsStats(this);
+ // This is a temp flag which will be removed before U AOSP public release.
mIsSubscriptionManagerServiceEnabled = mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_using_subscription_manager_service);
+ com.android.internal.R.bool.config_using_subscription_manager_service)
+ || DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_TELEPHONY,
+ "enable_subscription_manager_service", false);
if (isSubscriptionManagerServiceEnabled()) {
mSubscriptionManagerService = SubscriptionManagerService.getInstance();
}
diff --git a/src/java/com/android/internal/telephony/PhoneFactory.java b/src/java/com/android/internal/telephony/PhoneFactory.java
index c69f844..e926607 100644
--- a/src/java/com/android/internal/telephony/PhoneFactory.java
+++ b/src/java/com/android/internal/telephony/PhoneFactory.java
@@ -34,6 +34,7 @@
import android.os.HandlerThread;
import android.os.Looper;
import android.preference.PreferenceManager;
+import android.provider.DeviceConfig;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.telephony.AnomalyReporter;
@@ -124,8 +125,11 @@
if (!sMadeDefaults) {
sContext = context;
+ // This is a temp flag which will be removed before U AOSP public release.
sSubscriptionManagerServiceEnabled = context.getResources().getBoolean(
- com.android.internal.R.bool.config_using_subscription_manager_service);
+ com.android.internal.R.bool.config_using_subscription_manager_service)
+ || DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_TELEPHONY,
+ "enable_subscription_manager_service", false);
// create the telephony device controller.
TelephonyDevController.create();
diff --git a/src/java/com/android/internal/telephony/SubscriptionController.java b/src/java/com/android/internal/telephony/SubscriptionController.java
index 6f74147..bbdba56 100644
--- a/src/java/com/android/internal/telephony/SubscriptionController.java
+++ b/src/java/com/android/internal/telephony/SubscriptionController.java
@@ -79,6 +79,7 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.data.PhoneSwitcher;
import com.android.internal.telephony.metrics.TelephonyMetrics;
+import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.uicc.IccUtils;
import com.android.internal.telephony.uicc.UiccCard;
import com.android.internal.telephony.uicc.UiccController;
@@ -403,6 +404,8 @@
}
});
+ SubscriptionManager.invalidateSubscriptionManagerServiceEnabledCaches();
+
if (DBG) logdl("[SubscriptionController] init by Context");
}
@@ -4953,6 +4956,16 @@
}
/**
+ * @return {@code true} if using {@link SubscriptionManagerService} instead of
+ * {@link SubscriptionController}.
+ */
+ //TODO: Removed before U AOSP public release.
+ @Override
+ public boolean isSubscriptionManagerServiceEnabled() {
+ return false;
+ }
+
+ /**
* @hide
*/
private void setGlobalSetting(String name, int value) {
diff --git a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java
index e81ba33..b4bfd0b 100644
--- a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java
+++ b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java
@@ -82,6 +82,7 @@
import com.android.internal.telephony.MultiSimSettingController;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.TelephonyPermissions;
import com.android.internal.telephony.data.PhoneSwitcher;
@@ -542,6 +543,9 @@
mEuiccController = EuiccController.get();
}
});
+
+ SubscriptionManager.invalidateSubscriptionManagerServiceCaches();
+ SubscriptionManager.invalidateSubscriptionManagerServiceEnabledCaches();
}
/**
@@ -3566,6 +3570,16 @@
}
/**
+ * @return {@code true} if using {@link SubscriptionManagerService} instead of
+ * {@link SubscriptionController}.
+ */
+ //TODO: Removed before U AOSP public release.
+ @Override
+ public boolean isSubscriptionManagerServiceEnabled() {
+ return true;
+ }
+
+ /**
* Register the callback for receiving information from {@link SubscriptionManagerService}.
*
* @param callback The callback.