Loading telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java +34 −30 Original line number Diff line number Diff line Loading @@ -44,22 +44,14 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { CDMALTEPhone mCdmaLtePhone; private int gprsState = ServiceState.STATE_OUT_OF_SERVICE; private int newGPRSState = ServiceState.STATE_OUT_OF_SERVICE; private ServiceState mLteSS; // The last LTE state from Voice Registration public CdmaLteServiceStateTracker(CDMALTEPhone phone) { super(phone); mCdmaLtePhone = phone; if (DBG) log("CdmaLteServiceStateTracker Constructors"); } /** * @return The current GPRS state. IN_SERVICE is the same as "attached" and * OUT_OF_SERVICE is the same as detached. */ public int getCurrentDataConnectionState() { return gprsState; mLteSS = new ServiceState(); if (DBG) log("CdmaLteServiceStateTracker Constructors"); } @Override Loading @@ -77,11 +69,13 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { } /** * The LTE data connection state, only return true here * Set the cdmaSS for EVENT_POLL_STATE_REGISTRATION_CDMA */ @Override protected boolean checkAdditionalDataAvaiable() { return newGPRSState != ServiceState.STATE_IN_SERVICE; protected void setCdmaTechnology(int radioTechnology) { // Called on voice registration state response. // Just record new CDMA radio technology newSS.setRadioTechnology(radioTechnology); } /** Loading Loading @@ -109,14 +103,10 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { } } newGPRSState = regCodeToServiceState(regState); // Not sure if this is needed in CDMALTE phone. // mDataRoaming = regCodeIsRoaming(regState); if (newGPRSState == ServiceState.STATE_IN_SERVICE) { this.newCdmaDataConnectionState = newGPRSState; newNetworkType = type; newSS.setRadioTechnology(type); } mLteSS.setRadioTechnology(type); mLteSS.setState(regCodeToServiceState(regState)); } else { super.handlePollStateResultMessage(what, ar); } Loading Loading @@ -216,6 +206,21 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { @Override protected void pollStateDone() { // determine data NetworkType from both LET and CDMA SS if (mLteSS.getState() == ServiceState.STATE_IN_SERVICE) { //in LTE service newNetworkType = mLteSS.getRadioTechnology(); mNewDataConnectionState = mLteSS.getState(); newSS.setRadioTechnology(newNetworkType); log("pollStateDone LTE/eHRPD STATE_IN_SERVICE newNetworkType = " + newNetworkType); } else { // LTE out of service, get CDMA Service State newNetworkType = newSS.getRadioTechnology(); mNewDataConnectionState = radioTechnologyToDataServiceState(newNetworkType); log("pollStateDone CDMA STATE_IN_SERVICE newNetworkType = " + newNetworkType + " mNewDataConnectionState = " + mNewDataConnectionState); } if (DBG) log("pollStateDone: oldSS=[" + ss + "] newSS=[" + newSS + "]"); boolean hasRegistered = ss.getState() != ServiceState.STATE_IN_SERVICE Loading @@ -225,15 +230,15 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { && newSS.getState() != ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionAttached = this.cdmaDataConnectionState != ServiceState.STATE_IN_SERVICE && this.newCdmaDataConnectionState == ServiceState.STATE_IN_SERVICE; mDataConnectionState != ServiceState.STATE_IN_SERVICE && mNewDataConnectionState == ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionDetached = this.cdmaDataConnectionState == ServiceState.STATE_IN_SERVICE && this.newCdmaDataConnectionState != ServiceState.STATE_IN_SERVICE; mDataConnectionState == ServiceState.STATE_IN_SERVICE && mNewDataConnectionState != ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionChanged = cdmaDataConnectionState != newCdmaDataConnectionState; mDataConnectionState != mNewDataConnectionState; boolean hasNetworkTypeChanged = networkType != newNetworkType; Loading Loading @@ -272,9 +277,9 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { } // Add an event log when connection state changes if (ss.getState() != newSS.getState() || cdmaDataConnectionState != newCdmaDataConnectionState) { || mDataConnectionState != mNewDataConnectionState) { EventLog.writeEvent(EventLogTags.CDMA_SERVICE_STATE_CHANGE, ss.getState(), cdmaDataConnectionState, newSS.getState(), newCdmaDataConnectionState); mDataConnectionState, newSS.getState(), mNewDataConnectionState); } ServiceState tss; Loading @@ -283,6 +288,7 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { newSS = tss; // clean slate for next time newSS.setStateOutOfService(); mLteSS.setStateOutOfService(); // TODO: 4G Tech Handoff // if (has4gHandoff) { Loading @@ -309,11 +315,9 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { cellLoc = newCellLoc; newCellLoc = tcl; cdmaDataConnectionState = newCdmaDataConnectionState; mDataConnectionState = mNewDataConnectionState; networkType = newNetworkType; gprsState = newCdmaDataConnectionState; newSS.setStateOutOfService(); // clean slate for next time if (hasNetworkTypeChanged) { Loading telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +22 −25 Original line number Diff line number Diff line Loading @@ -97,8 +97,8 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { /** * Initially assume no data connection. */ protected int cdmaDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE; protected int newCdmaDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE; protected int mDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE; protected int mNewDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE; protected int mRegistrationState = -1; protected RegistrantList cdmaForSubscriptionInfoReadyRegistrants = new RegistrantList(); Loading Loading @@ -217,8 +217,8 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { phone.mRuimRecords.unregisterForRecordsLoaded(this); cm.unSetOnSignalStrengthUpdate(this); cm.unSetOnNITZTime(this); cr.unregisterContentObserver(this.mAutoTimeObserver); cr.unregisterContentObserver(this.mAutoTimeZoneObserver); cr.unregisterContentObserver(mAutoTimeObserver); cr.unregisterContentObserver(mAutoTimeZoneObserver); } @Override Loading Loading @@ -548,10 +548,12 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { } /** * The LTE data connection state, only return true here * Determine data network type based on radio technology. */ protected boolean checkAdditionalDataAvaiable(){ return true; protected void setCdmaTechnology(int radioTechnology){ mNewDataConnectionState = radioTechnologyToDataServiceState(radioTechnology); newSS.setRadioTechnology(radioTechnology); newNetworkType = radioTechnology; } /** Loading Loading @@ -639,12 +641,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { regCodeIsRoaming(registrationState) && !isRoamIndForHomeSystem(states[10]); newSS.setState (regCodeToServiceState(registrationState)); if(checkAdditionalDataAvaiable()) { this.newCdmaDataConnectionState = radioTechnologyToDataServiceState(radioTechnology); newSS.setRadioTechnology(radioTechnology); newNetworkType = radioTechnology; } setCdmaTechnology(radioTechnology); newSS.setCssIndicator(cssIndicator); newSS.setSystemAndNetworkId(systemId, networkId); Loading Loading @@ -953,15 +950,15 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { && newSS.getState() != ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionAttached = this.cdmaDataConnectionState != ServiceState.STATE_IN_SERVICE && this.newCdmaDataConnectionState == ServiceState.STATE_IN_SERVICE; mDataConnectionState != ServiceState.STATE_IN_SERVICE && mNewDataConnectionState == ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionDetached = this.cdmaDataConnectionState == ServiceState.STATE_IN_SERVICE && this.newCdmaDataConnectionState != ServiceState.STATE_IN_SERVICE; mDataConnectionState == ServiceState.STATE_IN_SERVICE && mNewDataConnectionState != ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionChanged = cdmaDataConnectionState != newCdmaDataConnectionState; mDataConnectionState != mNewDataConnectionState; boolean hasNetworkTypeChanged = networkType != newNetworkType; Loading @@ -975,10 +972,10 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { // Add an event log when connection state changes if (ss.getState() != newSS.getState() || cdmaDataConnectionState != newCdmaDataConnectionState) { mDataConnectionState != mNewDataConnectionState) { EventLog.writeEvent(EventLogTags.CDMA_SERVICE_STATE_CHANGE, ss.getState(), cdmaDataConnectionState, newSS.getState(), newCdmaDataConnectionState); ss.getState(), mDataConnectionState, newSS.getState(), mNewDataConnectionState); } ServiceState tss; Loading @@ -992,7 +989,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { cellLoc = newCellLoc; newCellLoc = tcl; cdmaDataConnectionState = newCdmaDataConnectionState; mDataConnectionState = mNewDataConnectionState; networkType = newNetworkType; // this new state has been applied - forget it until we get a new new state newNetworkType = 0; Loading Loading @@ -1175,7 +1172,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { } private int radioTechnologyToDataServiceState(int code) { protected int radioTechnologyToDataServiceState(int code) { int retVal = ServiceState.STATE_OUT_OF_SERVICE; switch(code) { case 0: Loading Loading @@ -1226,14 +1223,14 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { * ServiceState.RADIO_TECHNOLOGY_UNKNOWN is the same as detached. */ /*package*/ int getCurrentCdmaDataConnectionState() { return cdmaDataConnectionState; return mDataConnectionState; } /** * TODO: In the future, we need remove getCurrentCdmaDataConnectionState */ public int getCurrentDataConnectionState() { return cdmaDataConnectionState; return mDataConnectionState; } /** Loading Loading
telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java +34 −30 Original line number Diff line number Diff line Loading @@ -44,22 +44,14 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { CDMALTEPhone mCdmaLtePhone; private int gprsState = ServiceState.STATE_OUT_OF_SERVICE; private int newGPRSState = ServiceState.STATE_OUT_OF_SERVICE; private ServiceState mLteSS; // The last LTE state from Voice Registration public CdmaLteServiceStateTracker(CDMALTEPhone phone) { super(phone); mCdmaLtePhone = phone; if (DBG) log("CdmaLteServiceStateTracker Constructors"); } /** * @return The current GPRS state. IN_SERVICE is the same as "attached" and * OUT_OF_SERVICE is the same as detached. */ public int getCurrentDataConnectionState() { return gprsState; mLteSS = new ServiceState(); if (DBG) log("CdmaLteServiceStateTracker Constructors"); } @Override Loading @@ -77,11 +69,13 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { } /** * The LTE data connection state, only return true here * Set the cdmaSS for EVENT_POLL_STATE_REGISTRATION_CDMA */ @Override protected boolean checkAdditionalDataAvaiable() { return newGPRSState != ServiceState.STATE_IN_SERVICE; protected void setCdmaTechnology(int radioTechnology) { // Called on voice registration state response. // Just record new CDMA radio technology newSS.setRadioTechnology(radioTechnology); } /** Loading Loading @@ -109,14 +103,10 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { } } newGPRSState = regCodeToServiceState(regState); // Not sure if this is needed in CDMALTE phone. // mDataRoaming = regCodeIsRoaming(regState); if (newGPRSState == ServiceState.STATE_IN_SERVICE) { this.newCdmaDataConnectionState = newGPRSState; newNetworkType = type; newSS.setRadioTechnology(type); } mLteSS.setRadioTechnology(type); mLteSS.setState(regCodeToServiceState(regState)); } else { super.handlePollStateResultMessage(what, ar); } Loading Loading @@ -216,6 +206,21 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { @Override protected void pollStateDone() { // determine data NetworkType from both LET and CDMA SS if (mLteSS.getState() == ServiceState.STATE_IN_SERVICE) { //in LTE service newNetworkType = mLteSS.getRadioTechnology(); mNewDataConnectionState = mLteSS.getState(); newSS.setRadioTechnology(newNetworkType); log("pollStateDone LTE/eHRPD STATE_IN_SERVICE newNetworkType = " + newNetworkType); } else { // LTE out of service, get CDMA Service State newNetworkType = newSS.getRadioTechnology(); mNewDataConnectionState = radioTechnologyToDataServiceState(newNetworkType); log("pollStateDone CDMA STATE_IN_SERVICE newNetworkType = " + newNetworkType + " mNewDataConnectionState = " + mNewDataConnectionState); } if (DBG) log("pollStateDone: oldSS=[" + ss + "] newSS=[" + newSS + "]"); boolean hasRegistered = ss.getState() != ServiceState.STATE_IN_SERVICE Loading @@ -225,15 +230,15 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { && newSS.getState() != ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionAttached = this.cdmaDataConnectionState != ServiceState.STATE_IN_SERVICE && this.newCdmaDataConnectionState == ServiceState.STATE_IN_SERVICE; mDataConnectionState != ServiceState.STATE_IN_SERVICE && mNewDataConnectionState == ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionDetached = this.cdmaDataConnectionState == ServiceState.STATE_IN_SERVICE && this.newCdmaDataConnectionState != ServiceState.STATE_IN_SERVICE; mDataConnectionState == ServiceState.STATE_IN_SERVICE && mNewDataConnectionState != ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionChanged = cdmaDataConnectionState != newCdmaDataConnectionState; mDataConnectionState != mNewDataConnectionState; boolean hasNetworkTypeChanged = networkType != newNetworkType; Loading Loading @@ -272,9 +277,9 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { } // Add an event log when connection state changes if (ss.getState() != newSS.getState() || cdmaDataConnectionState != newCdmaDataConnectionState) { || mDataConnectionState != mNewDataConnectionState) { EventLog.writeEvent(EventLogTags.CDMA_SERVICE_STATE_CHANGE, ss.getState(), cdmaDataConnectionState, newSS.getState(), newCdmaDataConnectionState); mDataConnectionState, newSS.getState(), mNewDataConnectionState); } ServiceState tss; Loading @@ -283,6 +288,7 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { newSS = tss; // clean slate for next time newSS.setStateOutOfService(); mLteSS.setStateOutOfService(); // TODO: 4G Tech Handoff // if (has4gHandoff) { Loading @@ -309,11 +315,9 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { cellLoc = newCellLoc; newCellLoc = tcl; cdmaDataConnectionState = newCdmaDataConnectionState; mDataConnectionState = mNewDataConnectionState; networkType = newNetworkType; gprsState = newCdmaDataConnectionState; newSS.setStateOutOfService(); // clean slate for next time if (hasNetworkTypeChanged) { Loading
telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +22 −25 Original line number Diff line number Diff line Loading @@ -97,8 +97,8 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { /** * Initially assume no data connection. */ protected int cdmaDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE; protected int newCdmaDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE; protected int mDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE; protected int mNewDataConnectionState = ServiceState.STATE_OUT_OF_SERVICE; protected int mRegistrationState = -1; protected RegistrantList cdmaForSubscriptionInfoReadyRegistrants = new RegistrantList(); Loading Loading @@ -217,8 +217,8 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { phone.mRuimRecords.unregisterForRecordsLoaded(this); cm.unSetOnSignalStrengthUpdate(this); cm.unSetOnNITZTime(this); cr.unregisterContentObserver(this.mAutoTimeObserver); cr.unregisterContentObserver(this.mAutoTimeZoneObserver); cr.unregisterContentObserver(mAutoTimeObserver); cr.unregisterContentObserver(mAutoTimeZoneObserver); } @Override Loading Loading @@ -548,10 +548,12 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { } /** * The LTE data connection state, only return true here * Determine data network type based on radio technology. */ protected boolean checkAdditionalDataAvaiable(){ return true; protected void setCdmaTechnology(int radioTechnology){ mNewDataConnectionState = radioTechnologyToDataServiceState(radioTechnology); newSS.setRadioTechnology(radioTechnology); newNetworkType = radioTechnology; } /** Loading Loading @@ -639,12 +641,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { regCodeIsRoaming(registrationState) && !isRoamIndForHomeSystem(states[10]); newSS.setState (regCodeToServiceState(registrationState)); if(checkAdditionalDataAvaiable()) { this.newCdmaDataConnectionState = radioTechnologyToDataServiceState(radioTechnology); newSS.setRadioTechnology(radioTechnology); newNetworkType = radioTechnology; } setCdmaTechnology(radioTechnology); newSS.setCssIndicator(cssIndicator); newSS.setSystemAndNetworkId(systemId, networkId); Loading Loading @@ -953,15 +950,15 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { && newSS.getState() != ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionAttached = this.cdmaDataConnectionState != ServiceState.STATE_IN_SERVICE && this.newCdmaDataConnectionState == ServiceState.STATE_IN_SERVICE; mDataConnectionState != ServiceState.STATE_IN_SERVICE && mNewDataConnectionState == ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionDetached = this.cdmaDataConnectionState == ServiceState.STATE_IN_SERVICE && this.newCdmaDataConnectionState != ServiceState.STATE_IN_SERVICE; mDataConnectionState == ServiceState.STATE_IN_SERVICE && mNewDataConnectionState != ServiceState.STATE_IN_SERVICE; boolean hasCdmaDataConnectionChanged = cdmaDataConnectionState != newCdmaDataConnectionState; mDataConnectionState != mNewDataConnectionState; boolean hasNetworkTypeChanged = networkType != newNetworkType; Loading @@ -975,10 +972,10 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { // Add an event log when connection state changes if (ss.getState() != newSS.getState() || cdmaDataConnectionState != newCdmaDataConnectionState) { mDataConnectionState != mNewDataConnectionState) { EventLog.writeEvent(EventLogTags.CDMA_SERVICE_STATE_CHANGE, ss.getState(), cdmaDataConnectionState, newSS.getState(), newCdmaDataConnectionState); ss.getState(), mDataConnectionState, newSS.getState(), mNewDataConnectionState); } ServiceState tss; Loading @@ -992,7 +989,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { cellLoc = newCellLoc; newCellLoc = tcl; cdmaDataConnectionState = newCdmaDataConnectionState; mDataConnectionState = mNewDataConnectionState; networkType = newNetworkType; // this new state has been applied - forget it until we get a new new state newNetworkType = 0; Loading Loading @@ -1175,7 +1172,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { } private int radioTechnologyToDataServiceState(int code) { protected int radioTechnologyToDataServiceState(int code) { int retVal = ServiceState.STATE_OUT_OF_SERVICE; switch(code) { case 0: Loading Loading @@ -1226,14 +1223,14 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { * ServiceState.RADIO_TECHNOLOGY_UNKNOWN is the same as detached. */ /*package*/ int getCurrentCdmaDataConnectionState() { return cdmaDataConnectionState; return mDataConnectionState; } /** * TODO: In the future, we need remove getCurrentCdmaDataConnectionState */ public int getCurrentDataConnectionState() { return cdmaDataConnectionState; return mDataConnectionState; } /** Loading