From ea0d71390ab528ffea7161674333b0bbab8356df Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Thu, 28 Jul 2016 18:50:10 -0700 Subject: [PATCH] Stop exposing LTE_CA as a rat type. Instead add a new hidden function to ServiceState for use by SystemUI until we get a real API in O. bug:30480638 Change-Id: Ifd9b1fbdb74d3a408c419467b7390675fc13ea3d --- .../statusbar/policy/MobileSignalController.java | 8 +++++ telephony/java/android/telephony/ServiceState.java | 34 ++++++++++++++++++++-- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java index a1265fbc426f..83463e29c080 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java @@ -471,6 +471,10 @@ public class MobileSignalController extends SignalController< } mServiceState = state; mDataNetType = state.getDataNetworkType(); + if (mDataNetType == TelephonyManager.NETWORK_TYPE_LTE && mServiceState != null && + mServiceState.isUsingCarrierAggregation()) { + mDataNetType = TelephonyManager.NETWORK_TYPE_LTE_CA; + } updateTelephony(); } @@ -482,6 +486,10 @@ public class MobileSignalController extends SignalController< } mDataState = state; mDataNetType = networkType; + if (mDataNetType == TelephonyManager.NETWORK_TYPE_LTE && mServiceState != null && + mServiceState.isUsingCarrierAggregation()) { + mDataNetType = TelephonyManager.NETWORK_TYPE_LTE_CA; + } updateTelephony(); } diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index 8446dd04326c..6151e5b2c58d 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -240,6 +240,8 @@ public class ServiceState implements Parcelable { private boolean mIsDataRoamingFromRegistration; + private boolean mIsUsingCarrierAggregation; + /** * get String description of roaming type * @hide @@ -318,6 +320,7 @@ public class ServiceState implements Parcelable { mCdmaEriIconMode = s.mCdmaEriIconMode; mIsEmergencyOnly = s.mIsEmergencyOnly; mIsDataRoamingFromRegistration = s.mIsDataRoamingFromRegistration; + mIsUsingCarrierAggregation = s.mIsUsingCarrierAggregation; } /** @@ -346,6 +349,7 @@ public class ServiceState implements Parcelable { mCdmaEriIconMode = in.readInt(); mIsEmergencyOnly = in.readInt() != 0; mIsDataRoamingFromRegistration = in.readInt() != 0; + mIsUsingCarrierAggregation = in.readInt() != 0; } public void writeToParcel(Parcel out, int flags) { @@ -371,6 +375,7 @@ public class ServiceState implements Parcelable { out.writeInt(mCdmaEriIconMode); out.writeInt(mIsEmergencyOnly ? 1 : 0); out.writeInt(mIsDataRoamingFromRegistration ? 1 : 0); + out.writeInt(mIsUsingCarrierAggregation ? 1 : 0); } public int describeContents() { @@ -680,7 +685,8 @@ public class ServiceState implements Parcelable { && equalsHandlesNulls(mCdmaDefaultRoamingIndicator, s.mCdmaDefaultRoamingIndicator) && mIsEmergencyOnly == s.mIsEmergencyOnly - && mIsDataRoamingFromRegistration == s.mIsDataRoamingFromRegistration); + && mIsDataRoamingFromRegistration == s.mIsDataRoamingFromRegistration + && mIsUsingCarrierAggregation == s.mIsUsingCarrierAggregation); } /** @@ -788,7 +794,8 @@ public class ServiceState implements Parcelable { + " RoamInd=" + mCdmaRoamingIndicator + " DefRoamInd=" + mCdmaDefaultRoamingIndicator + " EmergOnly=" + mIsEmergencyOnly - + " IsDataRoamingFromRegistration=" + mIsDataRoamingFromRegistration); + + " IsDataRoamingFromRegistration=" + mIsDataRoamingFromRegistration + + " IsUsingCarrierAggregation=" + mIsUsingCarrierAggregation); } private void setNullState(int state) { @@ -815,6 +822,7 @@ public class ServiceState implements Parcelable { mCdmaEriIconMode = -1; mIsEmergencyOnly = false; mIsDataRoamingFromRegistration = false; + mIsUsingCarrierAggregation = false; } public void setStateOutOfService() { @@ -988,6 +996,7 @@ public class ServiceState implements Parcelable { mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator"); mIsEmergencyOnly = m.getBoolean("emergencyOnly"); mIsDataRoamingFromRegistration = m.getBoolean("isDataRoamingFromRegistration"); + mIsUsingCarrierAggregation = m.getBoolean("isUsingCarrierAggregation"); } /** @@ -1017,21 +1026,42 @@ public class ServiceState implements Parcelable { m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); m.putBoolean("emergencyOnly", Boolean.valueOf(mIsEmergencyOnly)); m.putBoolean("isDataRoamingFromRegistration", Boolean.valueOf(mIsDataRoamingFromRegistration)); + m.putBoolean("isUsingCarrierAggregation", Boolean.valueOf(mIsUsingCarrierAggregation)); } /** @hide */ public void setRilVoiceRadioTechnology(int rt) { + if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) { + rt = RIL_RADIO_TECHNOLOGY_LTE; + } + this.mRilVoiceRadioTechnology = rt; } /** @hide */ public void setRilDataRadioTechnology(int rt) { + if (rt == RIL_RADIO_TECHNOLOGY_LTE_CA) { + rt = RIL_RADIO_TECHNOLOGY_LTE; + this.mIsUsingCarrierAggregation = true; + } else { + this.mIsUsingCarrierAggregation = false; + } this.mRilDataRadioTechnology = rt; if (VDBG) Rlog.d(LOG_TAG, "[ServiceState] setRilDataRadioTechnology=" + mRilDataRadioTechnology); } /** @hide */ + public boolean isUsingCarrierAggregation() { + return mIsUsingCarrierAggregation; + } + + /** @hide */ + public void setIsUsingCarrierAggregation(boolean ca) { + mIsUsingCarrierAggregation = ca; + } + + /** @hide */ public void setCssIndicator(int css) { this.mCssIndicator = (css != 0); } -- 2.11.0