aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/java/com/android/internal/telephony/cat/CommandParamsFactory.java4
-rw-r--r--src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java11
-rw-r--r--src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java10
-rw-r--r--src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java9
4 files changed, 24 insertions, 10 deletions
diff --git a/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java b/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java
index 63beb800a..a8fa174b7 100755
--- a/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java
+++ b/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java
@@ -860,6 +860,10 @@ public class CommandParamsFactory extends Handler {
ctlv = searchForTag(ComprehensionTlvTag.ALPHA_ID, ctlvs);
if (ctlv != null) {
textMsg.text = ValueParser.retrieveAlphaId(ctlv);
+ // Assign the tone message text to empty string, if alpha identifier
+ // data is null. If no alpha identifier tlv is present, then tone
+ // message text will be null.
+ if (textMsg.text == null) textMsg.text = "";
}
// parse tone duration
ctlv = searchForTag(ComprehensionTlvTag.DURATION, ctlvs);
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
index 72d2c7572..7f64bf598 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java
@@ -208,8 +208,6 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
+ " dataRadioTechnology=" + type);
}
mDataRoaming = regCodeIsRoaming(regState);
-
- if (mDataRoaming) mNewSS.setRoaming(true);
} else {
super.handlePollStateResultMessage(what, ar);
}
@@ -327,6 +325,8 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
((mNewSS.getRilDataRadioTechnology() >= ServiceState.RIL_RADIO_TECHNOLOGY_IS95A) &&
(mNewSS.getRilDataRadioTechnology() <= ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A));
+ boolean needNotifyData = (mSS.getCssIndicator() != mNewSS.getCssIndicator());
+
if (DBG) {
log("pollStateDone:"
+ " hasRegistered=" + hasRegistered
@@ -486,11 +486,16 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
//DCT shall inform the availability of APN for all non-default
//contexts.
mIwlanRegistrants.notifyRegistrants();
+ needNotifyData = false;
} else {
- mPhone.notifyDataConnection(null);
+ needNotifyData = true;
}
}
+ if (needNotifyData) {
+ mPhone.notifyDataConnection(null);
+ }
+
if (hasCdmaDataConnectionAttached || has4gHandoff) {
mAttachedRegistrants.notifyRegistrants();
}
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
index 20bf3ca15..b945951d2 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -676,13 +676,9 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
// When registration state is roaming and TSB58
// roaming indicator is not in the carrier-specified
// list of ERIs for home system, mCdmaRoaming is true.
- mCdmaRoaming =
- regCodeIsRoaming(registrationState) && !isRoamIndForHomeSystem(states[10]);
- mCdmaRoaming = mCdmaRoaming || mDataRoaming;
+ mCdmaRoaming = regCodeIsRoaming(registrationState);
mNewSS.setState (regCodeToServiceState(registrationState));
-
mNewSS.setRilVoiceRadioTechnology(radioTechnology);
-
mNewSS.setCssIndicator(cssIndicator);
mNewSS.setSystemAndNetworkId(systemId, networkId);
mRoamingIndicator = roamingIndicator;
@@ -786,7 +782,9 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
if (!isSidsAllZeros() && isHomeSid(mNewSS.getSystemId())) {
namMatch = true;
}
-
+ mCdmaRoaming =
+ (mCdmaRoaming || mDataRoaming) &&
+ !isRoamIndForHomeSystem(String.valueOf(mRoamingIndicator));
// Setting SS Roaming (general)
if (mIsSubscriptionFromRuim) {
mNewSS.setRoaming(isRoamingBetweenOperators(mCdmaRoaming, mNewSS));
diff --git a/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
index e4cce643a..78d334fda 100644
--- a/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
@@ -933,6 +933,8 @@ public class GsmServiceStateTracker extends ServiceStateTracker {
boolean hasLocationChanged = !mNewCellLoc.equals(mCellLoc);
+ boolean needNotifyData = (mSS.getCssIndicator() != mNewSS.getCssIndicator());
+
// Add an event log when connection state changes
if (hasVoiceRegStateChanged || hasDataRegStateChanged) {
EventLog.writeEvent(EventLogTags.GSM_SERVICE_STATE_CHANGE,
@@ -1157,11 +1159,16 @@ public class GsmServiceStateTracker extends ServiceStateTracker {
//DCT shall inform the availability of APN for all non-default
//contexts.
mIwlanRegistrants.notifyRegistrants();
+ needNotifyData = false;
} else {
- mPhone.notifyDataConnection(null);
+ needNotifyData = true;
}
}
+ if (needNotifyData) {
+ mPhone.notifyDataConnection(null);
+ }
+
if (hasGprsAttached) {
mAttachedRegistrants.notifyRegistrants();
}