Revert "Removed old data stack"
Revert "Removed old data stack"
Revert submission 19477826-remove_old_data
Reason for revert: Pixel 4a needs it
Reverted Changes:
I4f58626b0:Removed old data stack
I798b17a59:Removed old data stack
I523b924c2:Removed old data stack
Change-Id: Ia834a6da389da4d5e5f8e8fb58a00b4222ae6537
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index fdd610e..7bff98a 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -456,7 +456,11 @@
CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
false);
boolean isDataEnabled;
- isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled();
+ if (mPhone.isUsingNewDataStack()) {
+ isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled();
+ } else {
+ isDataEnabled = mPhone.getDataEnabledSettings().isDataEnabled();
+ }
if (mImsMgr.isVtEnabledByPlatform() && mImsMgr.isVtProvisionedOnDevice()
&& (carrierConfig.getBoolean(
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index abbd816..f6ec75d 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -49,6 +49,7 @@
import android.telephony.TelephonyCallback;
import android.telephony.TelephonyLocalConnection;
import android.telephony.TelephonyManager;
+import android.telephony.data.ApnSetting;
import android.util.LocalLog;
import android.util.Log;
import android.widget.Toast;
@@ -67,6 +68,8 @@
import com.android.internal.telephony.TelephonyComponentFactory;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.data.DataEvaluation.DataDisallowedReason;
+import com.android.internal.telephony.dataconnection.DataConnectionReasons;
+import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataDisallowedReasonType;
import com.android.internal.telephony.ims.ImsResolver;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
@@ -888,13 +891,22 @@
boolean dataAllowed;
boolean notAllowedDueToRoamingOff;
- List<DataDisallowedReason> reasons = phone.getDataNetworkController()
- .getInternetDataDisallowedReasons();
- dataAllowed = reasons.isEmpty();
- notAllowedDueToRoamingOff = (reasons.size() == 1
- && reasons.contains(DataDisallowedReason.ROAMING_DISABLED));
- mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
- if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+ if (phone.isUsingNewDataStack()) {
+ List<DataDisallowedReason> reasons = phone.getDataNetworkController()
+ .getInternetDataDisallowedReasons();
+ dataAllowed = reasons.isEmpty();
+ notAllowedDueToRoamingOff = (reasons.size() == 1
+ && reasons.contains(DataDisallowedReason.ROAMING_DISABLED));
+ mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+ if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+ } else {
+ DataConnectionReasons reasons = new DataConnectionReasons();
+ dataAllowed = phone.isDataAllowed(ApnSetting.TYPE_DEFAULT, reasons);
+ notAllowedDueToRoamingOff = reasons.containsOnly(
+ DataDisallowedReasonType.ROAMING_DISABLED);
+ mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+ if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+ }
if (!dataAllowed && notAllowedDueToRoamingOff) {
// No need to show it again if we never cancelled it explicitly.
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f1f0a68..66cef64 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -184,6 +184,7 @@
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.TelephonyPermissions;
import com.android.internal.telephony.data.DataUtils;
+import com.android.internal.telephony.dataconnection.ApnSettingUtils;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.euicc.EuiccConnector;
import com.android.internal.telephony.ims.ImsResolver;
@@ -2860,8 +2861,13 @@
int subId = mSubscriptionController.getDefaultDataSubId();
final Phone phone = getPhone(subId);
if (phone != null) {
- phone.getDataSettingsManager().setDataEnabled(
- TelephonyManager.DATA_ENABLED_REASON_USER, true, callingPackage);
+ if (phone.isUsingNewDataStack()) {
+ phone.getDataSettingsManager().setDataEnabled(
+ TelephonyManager.DATA_ENABLED_REASON_USER, true, callingPackage);
+ } else {
+ phone.getDataEnabledSettings().setDataEnabled(
+ TelephonyManager.DATA_ENABLED_REASON_USER, true);
+ }
return true;
} else {
return false;
@@ -2881,8 +2887,13 @@
int subId = mSubscriptionController.getDefaultDataSubId();
final Phone phone = getPhone(subId);
if (phone != null) {
- phone.getDataSettingsManager().setDataEnabled(
- TelephonyManager.DATA_ENABLED_REASON_USER, false, callingPackage);
+ if (phone.isUsingNewDataStack()) {
+ phone.getDataSettingsManager().setDataEnabled(
+ TelephonyManager.DATA_ENABLED_REASON_USER, false, callingPackage);
+ } else {
+ phone.getDataEnabledSettings().setDataEnabled(
+ TelephonyManager.DATA_ENABLED_REASON_USER, false);
+ }
return true;
} else {
return false;
@@ -2998,7 +3009,10 @@
try {
final Phone phone = getPhone(subId);
if (phone != null) {
- return phone.getDataNetworkController().getInternetDataNetworkState();
+ if (phone.isUsingNewDataStack()) {
+ return phone.getDataNetworkController().getInternetDataNetworkState();
+ }
+ return PhoneConstantConversions.convertDataState(phone.getDataConnectionState());
} else {
return PhoneConstantConversions.convertDataState(
PhoneConstants.DataState.DISCONNECTED);
@@ -6634,7 +6648,11 @@
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone != null) {
boolean retVal;
- retVal = phone.getDataSettingsManager().isDataEnabled();
+ if (phone.isUsingNewDataStack()) {
+ retVal = phone.getDataSettingsManager().isDataEnabled();
+ } else {
+ retVal = phone.getDataEnabledSettings().isDataEnabled();
+ }
if (DBG) log("isDataEnabled: " + retVal + ", subId=" + subId);
return retVal;
} else {
@@ -6686,7 +6704,15 @@
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone != null) {
boolean retVal;
- retVal = phone.getDataSettingsManager().isDataEnabledForReason(reason);
+ if (phone.isUsingNewDataStack()) {
+ retVal = phone.getDataSettingsManager().isDataEnabledForReason(reason);
+ } else {
+ if (reason == TelephonyManager.DATA_ENABLED_REASON_USER) {
+ retVal = phone.isUserDataEnabled();
+ } else {
+ retVal = phone.getDataEnabledSettings().isDataEnabledForReason(reason);
+ }
+ }
if (DBG) log("isDataEnabledForReason: retVal=" + retVal);
return retVal;
} else {
@@ -8425,8 +8451,12 @@
if (reason == TelephonyManager.DATA_ENABLED_REASON_CARRIER) {
phone.carrierActionSetMeteredApnsEnabled(enabled);
} else {
- phone.getDataSettingsManager().setDataEnabled(
- reason, enabled, callingPackage);
+ if (phone.isUsingNewDataStack()) {
+ phone.getDataSettingsManager().setDataEnabled(
+ reason, enabled, callingPackage);
+ } else {
+ phone.getDataEnabledSettings().setDataEnabled(reason, enabled);
+ }
}
}
} finally {
@@ -9636,10 +9666,15 @@
boolean isMetered;
boolean isDataEnabled;
- isMetered = phone.getDataNetworkController().getDataConfigManager()
- .isMeteredCapability(DataUtils.apnTypeToNetworkCapability(apnType),
- phone.getServiceState().getDataRoaming());
- isDataEnabled = phone.getDataSettingsManager().isDataEnabled(apnType);
+ if (phone.isUsingNewDataStack()) {
+ isMetered = phone.getDataNetworkController().getDataConfigManager()
+ .isMeteredCapability(DataUtils.apnTypeToNetworkCapability(apnType),
+ phone.getServiceState().getDataRoaming());
+ isDataEnabled = phone.getDataSettingsManager().isDataEnabled(apnType);
+ } else {
+ isMetered = ApnSettingUtils.isMeteredApnType(apnType, phone);
+ isDataEnabled = phone.getDataEnabledSettings().isDataEnabled(apnType);
+ }
return !isMetered || isDataEnabled;
} finally {
Binder.restoreCallingIdentity(identity);
@@ -9655,9 +9690,13 @@
try {
Phone phone = getPhone(subId);
if (phone == null) return true; // By default return true.
- return phone.getDataNetworkController().getDataConfigManager().isMeteredCapability(
- DataUtils.apnTypeToNetworkCapability(apnType),
- phone.getServiceState().getDataRoaming());
+ if (phone.isUsingNewDataStack()) {
+ return phone.getDataNetworkController().getDataConfigManager().isMeteredCapability(
+ DataUtils.apnTypeToNetworkCapability(apnType),
+ phone.getServiceState().getDataRoaming());
+ }
+
+ return ApnSettingUtils.isMeteredApnType(apnType, phone);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -9789,9 +9828,17 @@
switch (policy) {
case TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL:
- return phone.getDataSettingsManager().isDataAllowedInVoiceCall();
+ if (phone.isUsingNewDataStack()) {
+ return phone.getDataSettingsManager().isDataAllowedInVoiceCall();
+ } else {
+ return phone.getDataEnabledSettings().isDataAllowedInVoiceCall();
+ }
case TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED:
- return phone.getDataSettingsManager().isMmsAlwaysAllowed();
+ if (phone.isUsingNewDataStack()) {
+ return phone.getDataSettingsManager().isMmsAlwaysAllowed();
+ } else {
+ return phone.getDataEnabledSettings().isMmsAlwaysAllowed();
+ }
default:
throw new IllegalArgumentException(policy + " is not a valid policy");
}
@@ -9812,10 +9859,18 @@
switch (policy) {
case TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL:
- phone.getDataSettingsManager().setAllowDataDuringVoiceCall(enabled);
+ if (phone.isUsingNewDataStack()) {
+ phone.getDataSettingsManager().setAllowDataDuringVoiceCall(enabled);
+ } else {
+ phone.getDataEnabledSettings().setAllowDataDuringVoiceCall(enabled);
+ }
break;
case TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED:
- phone.getDataSettingsManager().setAlwaysAllowMmsData(enabled);
+ if (phone.isUsingNewDataStack()) {
+ phone.getDataSettingsManager().setAlwaysAllowMmsData(enabled);
+ } else {
+ phone.getDataEnabledSettings().setAlwaysAllowMmsData(enabled);
+ }
break;
default:
throw new IllegalArgumentException(policy + " is not a valid policy");
@@ -11192,6 +11247,12 @@
}
}
+ @Override
+ public boolean isUsingNewDataStack() {
+ TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "isUsingNewDataStack");
+ return getDefaultPhone().isUsingNewDataStack();
+ }
+
/**
* Sets the modem service class Name that Telephony will bind to.
*
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index d19cf67..97676fc 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -171,6 +171,8 @@
"get-allowed-network-types-for-users";
private static final String SET_ALLOWED_NETWORK_TYPES_FOR_USER =
"set-allowed-network-types-for-users";
+ // Check if telephony new data stack is enabled.
+ private static final String GET_DATA_MODE = "get-data-mode";
private static final String GET_IMEI = "get-imei";
private static final String GET_SIM_SLOTS_MAPPING = "get-sim-slots-mapping";
// Take advantage of existing methods that already contain permissions checks when possible.
@@ -327,6 +329,8 @@
case GET_ALLOWED_NETWORK_TYPES_FOR_USER:
case SET_ALLOWED_NETWORK_TYPES_FOR_USER:
return handleAllowedNetworkTypesCommand(cmd);
+ case GET_DATA_MODE:
+ return handleGetDataMode();
case GET_IMEI:
return handleGetImei();
case GET_SIM_SLOTS_MAPPING:
@@ -2909,6 +2913,24 @@
}
}
+ private int handleGetDataMode() {
+ if (!checkShellUid()) {
+ return -1;
+ }
+
+ boolean newDataStackEnabled = false;
+ try {
+ newDataStackEnabled = mInterface.isUsingNewDataStack();
+ } catch (RemoteException e) {
+ getOutPrintWriter().println("Something went wrong. " + e);
+ return -1;
+ }
+
+ getOutPrintWriter().println("Telephony is running with the "
+ + (newDataStackEnabled ? "new" : "old") + " data stack.");
+ return 0;
+ }
+
private int handleRadioSetModemServiceCommand() {
PrintWriter errPw = getErrPrintWriter();
String serviceName = null;