Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +2 −2 Original line number Diff line number Diff line Loading @@ -1864,12 +1864,12 @@ public class GsmCdmaPhone extends Phone { @Override public boolean getDataRoamingEnabled() { return mDcTracker.getDataOnRoamingEnabled(); return mDcTracker.getDataRoamingEnabled(); } @Override public void setDataRoamingEnabled(boolean enable) { mDcTracker.setDataOnRoamingEnabled(enable); mDcTracker.setDataRoamingEnabled(enable); } @Override Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +37 −41 Original line number Diff line number Diff line Loading @@ -909,8 +909,7 @@ public class DcTracker extends Handler { Settings.Global.putInt(mResolver, Settings.Global.MOBILE_DATA + phoneSubId, enabled ? 1 : 0); } if (getDataOnRoamingEnabled() == false && mPhone.getServiceState().getDataRoaming() == true) { if (!getDataRoamingEnabled() && mPhone.getServiceState().getDataRoaming()) { if (enabled) { notifyOffApnsOfAvailability(Phone.REASON_ROAMING_ON); } else { Loading Loading @@ -1437,7 +1436,7 @@ public class DcTracker extends Handler { failureReason.addDataAllowFailReason( DataAllowFailReasonType.DEFAULT_DATA_UNSELECTED); } if (mPhone.getServiceState().getDataRoaming() && !getDataOnRoamingEnabled()) { if (mPhone.getServiceState().getDataRoaming() && !getDataRoamingEnabled()) { if(failureReason == null) return false; failureReason.addDataAllowFailReason(DataAllowFailReasonType.ROAMING_DISABLED); } Loading Loading @@ -2733,9 +2732,9 @@ public class DcTracker extends Handler { /** * Modify {@link android.provider.Settings.Global#DATA_ROAMING} value. */ public void setDataOnRoamingEnabled(boolean enabled) { public void setDataRoamingEnabled(boolean enabled) { final int phoneSubId = mPhone.getSubId(); if (getDataOnRoamingEnabled() != enabled) { if (getDataRoamingEnabled() != enabled) { int roaming = enabled ? 1 : 0; // For single SIM phones, this is a per phone property. Loading @@ -2749,12 +2748,12 @@ public class DcTracker extends Handler { mSubscriptionManager.setDataRoaming(roaming, phoneSubId); // will trigger handleDataOnRoamingChange() through observer if (DBG) { log("setDataOnRoamingEnabled: set phoneSubId=" + phoneSubId log("setDataRoamingEnabled: set phoneSubId=" + phoneSubId + " isRoaming=" + enabled); } } else { if (DBG) { log("setDataOnRoamingEnabled: unchanged phoneSubId=" + phoneSubId log("setDataRoamingEnabled: unchanged phoneSubId=" + phoneSubId + " isRoaming=" + enabled); } } Loading @@ -2763,7 +2762,7 @@ public class DcTracker extends Handler { /** * Return current {@link android.provider.Settings.Global#DATA_ROAMING} value. */ public boolean getDataOnRoamingEnabled() { public boolean getDataRoamingEnabled() { boolean isDataRoamingEnabled = "true".equalsIgnoreCase(SystemProperties.get( "ro.com.android.dataroaming", "false")); final int phoneSubId = mPhone.getSubId(); Loading @@ -2778,18 +2777,20 @@ public class DcTracker extends Handler { Settings.Global.DATA_ROAMING, phoneSubId) != 0; } } catch (SettingNotFoundException snfe) { if (DBG) log("getDataOnRoamingEnabled: SettingNofFoundException snfe=" + snfe); if (DBG) log("getDataRoamingEnabled: SettingNofFoundException snfe=" + snfe); } if (VDBG) { log("getDataOnRoamingEnabled: phoneSubId=" + phoneSubId + " isDataRoamingEnabled=" + isDataRoamingEnabled); log("getDataRoamingEnabled: phoneSubId=" + phoneSubId + " isDataRoamingEnabled=" + isDataRoamingEnabled); } return isDataRoamingEnabled; } private void onRoamingOff() { if (DBG) log("onRoamingOff"); // When the data roaming status changes from roaming to non-roaming. private void onDataRoamingOff() { if (DBG) log("onDataRoamingOff"); if (!getDataRoamingEnabled()) { // TODO: Remove this once all old vendor RILs are gone. We don't need to set initial apn // attach and send the data profile again as the modem should have both roaming and // non-roaming protocol in place. Modem should choose the right protocol based on the Loading @@ -2797,9 +2798,9 @@ public class DcTracker extends Handler { setInitialAttachApn(); setDataProfilesAsNeeded(); if (!mDataEnabledSettings.isUserDataEnabled()) return; // If the user did not enable data roaming, now when we transit from roaming to // non-roaming, we should try to reestablish the data connection. if (getDataOnRoamingEnabled() == false) { notifyOffApnsOfAvailability(Phone.REASON_ROAMING_OFF); setupDataOnConnectableApns(Phone.REASON_ROAMING_OFF); } else { Loading @@ -2807,20 +2808,11 @@ public class DcTracker extends Handler { } } private void onRoamingOn() { if (DBG) log("onRoamingOn"); // TODO: Remove this once all old vendor RILs are gone. We don't need to set initial apn // attach and send the data profile again as the modem should have both roaming and // non-roaming protocol in place. Modem should choose the right protocol based on the // roaming condition. setInitialAttachApn(); setDataProfilesAsNeeded(); if (!mDataEnabledSettings.isUserDataEnabled()) { if (DBG) log("data not enabled by user"); return; } // This method is called // 1. When the data roaming status changes from non-roaming to roaming. // 2. When allowed data roaming settings is changed by the user. private void onDataRoamingOnOrSettingsChanged() { if (DBG) log("onDataRoamingOnOrSettingsChanged"); // Check if the device is actually data roaming if (!mPhone.getServiceState().getDataRoaming()) { Loading @@ -2828,12 +2820,16 @@ public class DcTracker extends Handler { return; } if (getDataOnRoamingEnabled()) { if (DBG) log("onRoamingOn: setup data on roaming"); if (getDataRoamingEnabled()) { if (DBG) log("onDataRoamingOnOrSettingsChanged: setup data on roaming"); setupDataOnConnectableApns(Phone.REASON_ROAMING_ON); notifyDataConnection(Phone.REASON_ROAMING_ON); } else { if (DBG) log("onRoamingOn: Tear down data connection on roaming."); // If the user does not turn on data roaming, when we transit from non-roaming to // roaming, we need to tear down the data connection otherwise the user might be // charged for data roaming usage. if (DBG) log("onDataRoamingOnOrSettingsChanged: Tear down data connection on roaming."); cleanUpAllConnections(true, Phone.REASON_ROAMING_ON); notifyOffApnsOfAvailability(Phone.REASON_ROAMING_ON); } Loading Loading @@ -3850,11 +3846,11 @@ public class DcTracker extends Handler { break; case DctConstants.EVENT_ROAMING_OFF: onRoamingOff(); onDataRoamingOff(); break; case DctConstants.EVENT_ROAMING_ON: onRoamingOn(); onDataRoamingOnOrSettingsChanged(); break; case DctConstants.EVENT_DEVICE_PROVISIONED_CHANGE: Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -625,7 +625,7 @@ public class DcTrackerTest extends TelephonyTest { //step 4: only tear down metered data connections. //set Default and MMS to be metered in the CarrierConfigManager boolean roamingEnabled = mDct.getDataOnRoamingEnabled(); boolean roamingEnabled = mDct.getDataRoamingEnabled(); boolean dataEnabled = mDct.getDataEnabled(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_ROAMING_APN_TYPES_STRINGS, Loading Loading @@ -654,7 +654,7 @@ public class DcTrackerTest extends TelephonyTest { //user is in roaming doReturn(true).when(mServiceState).getDataRoaming(); logd("Sending DISABLE_ROAMING_CMD"); mDct.setDataOnRoamingEnabled(false); mDct.setDataRoamingEnabled(false); mDct.sendMessage(mDct.obtainMessage(DctConstants.EVENT_ROAMING_ON)); waitForMs(200); Loading @@ -666,7 +666,7 @@ public class DcTrackerTest extends TelephonyTest { assertEquals(DctConstants.State.CONNECTED, mDct.getState(PhoneConstants.APN_TYPE_IMS)); // reset roaming settings / data enabled settings at end of this test mDct.setDataOnRoamingEnabled(roamingEnabled); mDct.setDataRoamingEnabled(roamingEnabled); mDct.setDataEnabled(dataEnabled); waitForMs(200); } Loading @@ -679,7 +679,7 @@ public class DcTrackerTest extends TelephonyTest { //step 2: user toggled data settings on //step 3: only non-metered data call is established boolean roamingEnabled = mDct.getDataOnRoamingEnabled(); boolean roamingEnabled = mDct.getDataRoamingEnabled(); boolean dataEnabled = mDct.getDataEnabled(); //set Default and MMS to be metered in the CarrierConfigManager Loading @@ -690,7 +690,7 @@ public class DcTrackerTest extends TelephonyTest { doReturn(true).when(mServiceState).getDataRoaming(); logd("Sending DISABLE_ROAMING_CMD"); mDct.setDataOnRoamingEnabled(false); mDct.setDataRoamingEnabled(false); logd("Sending EVENT_RECORDS_LOADED"); mDct.sendMessage(mDct.obtainMessage(DctConstants.EVENT_RECORDS_LOADED, null)); Loading @@ -715,7 +715,7 @@ public class DcTrackerTest extends TelephonyTest { assertEquals(DctConstants.State.CONNECTED, mDct.getState(PhoneConstants.APN_TYPE_IMS)); // reset roaming settings / data enabled settings at end of this test mDct.setDataOnRoamingEnabled(roamingEnabled); mDct.setDataRoamingEnabled(roamingEnabled); mDct.setDataEnabled(dataEnabled); waitForMs(200); } Loading tests/telephonytests/src/com/android/internal/telephony/mocks/DcTrackerMock.java +2 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.net.LinkProperties; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.util.LocalLog; Loading Loading @@ -106,11 +105,11 @@ public class DcTrackerMock extends DcTracker { throw new RuntimeException("Not Implemented"); } @Override public void setDataOnRoamingEnabled(boolean enabled) { public void setDataRoamingEnabled(boolean enabled) { throw new RuntimeException("Not Implemented"); } @Override public boolean getDataOnRoamingEnabled() { public boolean getDataRoamingEnabled() { throw new RuntimeException("Not Implemented"); } @Override Loading Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +2 −2 Original line number Diff line number Diff line Loading @@ -1864,12 +1864,12 @@ public class GsmCdmaPhone extends Phone { @Override public boolean getDataRoamingEnabled() { return mDcTracker.getDataOnRoamingEnabled(); return mDcTracker.getDataRoamingEnabled(); } @Override public void setDataRoamingEnabled(boolean enable) { mDcTracker.setDataOnRoamingEnabled(enable); mDcTracker.setDataRoamingEnabled(enable); } @Override Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +37 −41 Original line number Diff line number Diff line Loading @@ -909,8 +909,7 @@ public class DcTracker extends Handler { Settings.Global.putInt(mResolver, Settings.Global.MOBILE_DATA + phoneSubId, enabled ? 1 : 0); } if (getDataOnRoamingEnabled() == false && mPhone.getServiceState().getDataRoaming() == true) { if (!getDataRoamingEnabled() && mPhone.getServiceState().getDataRoaming()) { if (enabled) { notifyOffApnsOfAvailability(Phone.REASON_ROAMING_ON); } else { Loading Loading @@ -1437,7 +1436,7 @@ public class DcTracker extends Handler { failureReason.addDataAllowFailReason( DataAllowFailReasonType.DEFAULT_DATA_UNSELECTED); } if (mPhone.getServiceState().getDataRoaming() && !getDataOnRoamingEnabled()) { if (mPhone.getServiceState().getDataRoaming() && !getDataRoamingEnabled()) { if(failureReason == null) return false; failureReason.addDataAllowFailReason(DataAllowFailReasonType.ROAMING_DISABLED); } Loading Loading @@ -2733,9 +2732,9 @@ public class DcTracker extends Handler { /** * Modify {@link android.provider.Settings.Global#DATA_ROAMING} value. */ public void setDataOnRoamingEnabled(boolean enabled) { public void setDataRoamingEnabled(boolean enabled) { final int phoneSubId = mPhone.getSubId(); if (getDataOnRoamingEnabled() != enabled) { if (getDataRoamingEnabled() != enabled) { int roaming = enabled ? 1 : 0; // For single SIM phones, this is a per phone property. Loading @@ -2749,12 +2748,12 @@ public class DcTracker extends Handler { mSubscriptionManager.setDataRoaming(roaming, phoneSubId); // will trigger handleDataOnRoamingChange() through observer if (DBG) { log("setDataOnRoamingEnabled: set phoneSubId=" + phoneSubId log("setDataRoamingEnabled: set phoneSubId=" + phoneSubId + " isRoaming=" + enabled); } } else { if (DBG) { log("setDataOnRoamingEnabled: unchanged phoneSubId=" + phoneSubId log("setDataRoamingEnabled: unchanged phoneSubId=" + phoneSubId + " isRoaming=" + enabled); } } Loading @@ -2763,7 +2762,7 @@ public class DcTracker extends Handler { /** * Return current {@link android.provider.Settings.Global#DATA_ROAMING} value. */ public boolean getDataOnRoamingEnabled() { public boolean getDataRoamingEnabled() { boolean isDataRoamingEnabled = "true".equalsIgnoreCase(SystemProperties.get( "ro.com.android.dataroaming", "false")); final int phoneSubId = mPhone.getSubId(); Loading @@ -2778,18 +2777,20 @@ public class DcTracker extends Handler { Settings.Global.DATA_ROAMING, phoneSubId) != 0; } } catch (SettingNotFoundException snfe) { if (DBG) log("getDataOnRoamingEnabled: SettingNofFoundException snfe=" + snfe); if (DBG) log("getDataRoamingEnabled: SettingNofFoundException snfe=" + snfe); } if (VDBG) { log("getDataOnRoamingEnabled: phoneSubId=" + phoneSubId + " isDataRoamingEnabled=" + isDataRoamingEnabled); log("getDataRoamingEnabled: phoneSubId=" + phoneSubId + " isDataRoamingEnabled=" + isDataRoamingEnabled); } return isDataRoamingEnabled; } private void onRoamingOff() { if (DBG) log("onRoamingOff"); // When the data roaming status changes from roaming to non-roaming. private void onDataRoamingOff() { if (DBG) log("onDataRoamingOff"); if (!getDataRoamingEnabled()) { // TODO: Remove this once all old vendor RILs are gone. We don't need to set initial apn // attach and send the data profile again as the modem should have both roaming and // non-roaming protocol in place. Modem should choose the right protocol based on the Loading @@ -2797,9 +2798,9 @@ public class DcTracker extends Handler { setInitialAttachApn(); setDataProfilesAsNeeded(); if (!mDataEnabledSettings.isUserDataEnabled()) return; // If the user did not enable data roaming, now when we transit from roaming to // non-roaming, we should try to reestablish the data connection. if (getDataOnRoamingEnabled() == false) { notifyOffApnsOfAvailability(Phone.REASON_ROAMING_OFF); setupDataOnConnectableApns(Phone.REASON_ROAMING_OFF); } else { Loading @@ -2807,20 +2808,11 @@ public class DcTracker extends Handler { } } private void onRoamingOn() { if (DBG) log("onRoamingOn"); // TODO: Remove this once all old vendor RILs are gone. We don't need to set initial apn // attach and send the data profile again as the modem should have both roaming and // non-roaming protocol in place. Modem should choose the right protocol based on the // roaming condition. setInitialAttachApn(); setDataProfilesAsNeeded(); if (!mDataEnabledSettings.isUserDataEnabled()) { if (DBG) log("data not enabled by user"); return; } // This method is called // 1. When the data roaming status changes from non-roaming to roaming. // 2. When allowed data roaming settings is changed by the user. private void onDataRoamingOnOrSettingsChanged() { if (DBG) log("onDataRoamingOnOrSettingsChanged"); // Check if the device is actually data roaming if (!mPhone.getServiceState().getDataRoaming()) { Loading @@ -2828,12 +2820,16 @@ public class DcTracker extends Handler { return; } if (getDataOnRoamingEnabled()) { if (DBG) log("onRoamingOn: setup data on roaming"); if (getDataRoamingEnabled()) { if (DBG) log("onDataRoamingOnOrSettingsChanged: setup data on roaming"); setupDataOnConnectableApns(Phone.REASON_ROAMING_ON); notifyDataConnection(Phone.REASON_ROAMING_ON); } else { if (DBG) log("onRoamingOn: Tear down data connection on roaming."); // If the user does not turn on data roaming, when we transit from non-roaming to // roaming, we need to tear down the data connection otherwise the user might be // charged for data roaming usage. if (DBG) log("onDataRoamingOnOrSettingsChanged: Tear down data connection on roaming."); cleanUpAllConnections(true, Phone.REASON_ROAMING_ON); notifyOffApnsOfAvailability(Phone.REASON_ROAMING_ON); } Loading Loading @@ -3850,11 +3846,11 @@ public class DcTracker extends Handler { break; case DctConstants.EVENT_ROAMING_OFF: onRoamingOff(); onDataRoamingOff(); break; case DctConstants.EVENT_ROAMING_ON: onRoamingOn(); onDataRoamingOnOrSettingsChanged(); break; case DctConstants.EVENT_DEVICE_PROVISIONED_CHANGE: Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/DcTrackerTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -625,7 +625,7 @@ public class DcTrackerTest extends TelephonyTest { //step 4: only tear down metered data connections. //set Default and MMS to be metered in the CarrierConfigManager boolean roamingEnabled = mDct.getDataOnRoamingEnabled(); boolean roamingEnabled = mDct.getDataRoamingEnabled(); boolean dataEnabled = mDct.getDataEnabled(); mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_ROAMING_APN_TYPES_STRINGS, Loading Loading @@ -654,7 +654,7 @@ public class DcTrackerTest extends TelephonyTest { //user is in roaming doReturn(true).when(mServiceState).getDataRoaming(); logd("Sending DISABLE_ROAMING_CMD"); mDct.setDataOnRoamingEnabled(false); mDct.setDataRoamingEnabled(false); mDct.sendMessage(mDct.obtainMessage(DctConstants.EVENT_ROAMING_ON)); waitForMs(200); Loading @@ -666,7 +666,7 @@ public class DcTrackerTest extends TelephonyTest { assertEquals(DctConstants.State.CONNECTED, mDct.getState(PhoneConstants.APN_TYPE_IMS)); // reset roaming settings / data enabled settings at end of this test mDct.setDataOnRoamingEnabled(roamingEnabled); mDct.setDataRoamingEnabled(roamingEnabled); mDct.setDataEnabled(dataEnabled); waitForMs(200); } Loading @@ -679,7 +679,7 @@ public class DcTrackerTest extends TelephonyTest { //step 2: user toggled data settings on //step 3: only non-metered data call is established boolean roamingEnabled = mDct.getDataOnRoamingEnabled(); boolean roamingEnabled = mDct.getDataRoamingEnabled(); boolean dataEnabled = mDct.getDataEnabled(); //set Default and MMS to be metered in the CarrierConfigManager Loading @@ -690,7 +690,7 @@ public class DcTrackerTest extends TelephonyTest { doReturn(true).when(mServiceState).getDataRoaming(); logd("Sending DISABLE_ROAMING_CMD"); mDct.setDataOnRoamingEnabled(false); mDct.setDataRoamingEnabled(false); logd("Sending EVENT_RECORDS_LOADED"); mDct.sendMessage(mDct.obtainMessage(DctConstants.EVENT_RECORDS_LOADED, null)); Loading @@ -715,7 +715,7 @@ public class DcTrackerTest extends TelephonyTest { assertEquals(DctConstants.State.CONNECTED, mDct.getState(PhoneConstants.APN_TYPE_IMS)); // reset roaming settings / data enabled settings at end of this test mDct.setDataOnRoamingEnabled(roamingEnabled); mDct.setDataRoamingEnabled(roamingEnabled); mDct.setDataEnabled(dataEnabled); waitForMs(200); } Loading
tests/telephonytests/src/com/android/internal/telephony/mocks/DcTrackerMock.java +2 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.net.LinkProperties; import android.net.NetworkCapabilities; import android.net.NetworkRequest; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.util.LocalLog; Loading Loading @@ -106,11 +105,11 @@ public class DcTrackerMock extends DcTracker { throw new RuntimeException("Not Implemented"); } @Override public void setDataOnRoamingEnabled(boolean enabled) { public void setDataRoamingEnabled(boolean enabled) { throw new RuntimeException("Not Implemented"); } @Override public boolean getDataOnRoamingEnabled() { public boolean getDataRoamingEnabled() { throw new RuntimeException("Not Implemented"); } @Override Loading