Fix tcp buffer sizes on LTE_CA.
Make them the same as LTE since we don't have an overlay setting for
LTE_CA (nor do we want one).
Also noticed that on CDMA/CDMA+LTE we didn't enable the ratcheting
mechanism so we'd bounce between LTE and LTE_CA unnecessarily.
bug:30269506
Change-Id: I34d308c7ee92745ce18700f31b8b68e78728b01e
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index 54edc37..69391e2 100644
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -2794,6 +2794,19 @@
boolean hasCdmaDataConnectionChanged =
mSS.getDataRegState() != mNewSS.getDataRegState();
+ boolean hasLocationChanged = !mNewCellLoc.equals(mCellLoc);
+
+ // ratchet the new tech up through it's rat family but don't drop back down
+ // until cell change
+ if (hasLocationChanged == false) {
+ mNewSS.setRilVoiceRadioTechnology(mRatRatcheter.ratchetRat(
+ mSS.getRilVoiceRadioTechnology(),
+ mNewSS.getRilVoiceRadioTechnology()));
+ mNewSS.setRilDataRadioTechnology(mRatRatcheter.ratchetRat(
+ mSS.getRilDataRadioTechnology(),
+ mNewSS.getRilDataRadioTechnology()));
+ }
+
boolean hasRilVoiceRadioTechnologyChanged =
mSS.getRilVoiceRadioTechnology() != mNewSS.getRilVoiceRadioTechnology();
@@ -2810,8 +2823,6 @@
boolean hasDataRoamingOff = mSS.getDataRoaming() && !mNewSS.getDataRoaming();
- boolean hasLocationChanged = !mNewCellLoc.equals(mCellLoc);
-
TelephonyManager tm =
(TelephonyManager) mPhone.getContext().getSystemService(Context.TELEPHONY_SERVICE);
@@ -2989,6 +3000,19 @@
boolean hasCdmaDataConnectionChanged =
mSS.getDataRegState() != mNewSS.getDataRegState();
+ boolean hasLocationChanged = !mNewCellLoc.equals(mCellLoc);
+
+ // ratchet the new tech up through it's rat family but don't drop back down
+ // until cell change
+ if (hasLocationChanged == false) {
+ mNewSS.setRilVoiceRadioTechnology(mRatRatcheter.ratchetRat(
+ mSS.getRilVoiceRadioTechnology(),
+ mNewSS.getRilVoiceRadioTechnology()));
+ mNewSS.setRilDataRadioTechnology(mRatRatcheter.ratchetRat(
+ mSS.getRilDataRadioTechnology(),
+ mNewSS.getRilDataRadioTechnology()));
+ }
+
boolean hasVoiceRadioTechnologyChanged = mSS.getRilVoiceRadioTechnology()
!= mNewSS.getRilVoiceRadioTechnology();
@@ -3005,8 +3029,6 @@
boolean hasDataRoamingOff = mSS.getDataRoaming() && !mNewSS.getDataRoaming();
- boolean hasLocationChanged = !mNewCellLoc.equals(mCellLoc);
-
boolean has4gHandoff =
mNewSS.getDataRegState() == ServiceState.STATE_IN_SERVICE &&
((ServiceState.isLte(mSS.getRilDataRadioTechnology()) &&
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
index c7c6ec0..0919af1 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
@@ -760,6 +760,11 @@
private void updateTcpBufferSizes(int rilRat) {
String sizes = null;
+ if (rilRat == ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA) {
+ // for now treat CA as LTE. Plan to surface the extra bandwith in a more
+ // precise manner which should affect buffer sizes
+ rilRat = ServiceState.RIL_RADIO_TECHNOLOGY_LTE;
+ }
String ratName = ServiceState.rilRadioTechnologyToString(rilRat).toLowerCase(Locale.ROOT);
// ServiceState gives slightly different names for EVDO tech ("evdo-rev.0" for ex)
// - patch it up: