aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2014-06-13 15:50:54 -0700
committerSteve Kondik <shade@chemlab.org>2014-06-13 15:50:54 -0700
commitd43b5b1ca91e0aac0c697546a5cb341ffa758e0b (patch)
treeb4df3a002c0880f74bf347be8950b06f0bb332c0
parent2a545c65c8be36377b0cc022fdcb741475c0b264 (diff)
parentea462c1ccb07f0176f00b4c71822509db3d89c00 (diff)
downloadandroid_frameworks_opt_telephony-next.tar.gz
android_frameworks_opt_telephony-next.tar.bz2
android_frameworks_opt_telephony-next.zip
Merge branch 'LNX.LA.3.5.2.2_rb1' of git://codeaurora.org/platform/frameworks/opt/telephony into cm-11.0next
Change-Id: Iea6b1df02ab59e2f897d589e5b9575546e09dd17
-rw-r--r--src/java/com/android/internal/telephony/ServiceStateTracker.java18
-rwxr-xr-xsrc/java/com/android/internal/telephony/cat/CommandParamsFactory.java4
-rw-r--r--src/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java14
-rw-r--r--src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java10
-rw-r--r--src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java9
-rw-r--r--src/java/com/android/internal/telephony/uicc/SIMRecords.java41
6 files changed, 77 insertions, 19 deletions
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index 912742a16..c5f3a86ff 100644
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -777,7 +777,7 @@ public abstract class ServiceStateTracker extends Handler {
log("SST.getAllCellInfo(): X size=" + result.list.size()
+ " list=" + result.list);
} else {
- log("SST.getAllCellInfo(): X size=0 list=null");
+ log("SST.getAllCellInfo(): X size=0 list=null");
}
}
return result.list;
@@ -820,6 +820,14 @@ public abstract class ServiceStateTracker extends Handler {
}
}
+ protected void updateCarrierMccMncConfiguration(String newOp, String oldOp, Context context) {
+ // if we have a change in operator, notify wifi (even to/from none)
+ if (((newOp == null) && (TextUtils.isEmpty(oldOp) == false)) ||
+ ((newOp != null) && (newOp.equals(oldOp) == false))) {
+ MccTable.updateMccMncConfiguration(context, newOp, true);
+ }
+ }
+
protected boolean isCallerOnDifferentThread() {
boolean value = Thread.currentThread() != getLooper().getThread();
if (VDBG) log("isCallerOnDifferentThread: " + value);
@@ -863,12 +871,4 @@ public abstract class ServiceStateTracker extends Handler {
DcTrackerBase dcTracker = mPhoneBase.mDcTracker;
dcTracker.disableApnType(PhoneConstants.APN_TYPE_DEFAULT);
}
-
- protected void updateCarrierMccMncConfiguration(String newOp, String oldOp, Context context) {
- // if we have a change in operator, notify wifi (even to/from none)
- if (((newOp == null) && (TextUtils.isEmpty(oldOp) == false)) ||
- ((newOp != null) && (newOp.equals(oldOp) == false))) {
- MccTable.updateMccMncConfiguration(context, newOp, true);
- }
- }
}
diff --git a/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java b/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java
index ae87ca378..83094bf65 100755
--- a/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java
+++ b/src/java/com/android/internal/telephony/cat/CommandParamsFactory.java
@@ -901,6 +901,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 11def6baa..8a25433c7 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);
}
@@ -340,6 +338,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
@@ -385,6 +385,9 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker {
mPhone.setSystemProperty(TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE,
ServiceState.rilRadioTechnologyToString(mSS.getRilDataRadioTechnology()));
+ // Query Signalstrength when there is a change in PS RAT.
+ sendMessage(obtainMessage(EVENT_POLL_SIGNAL_STRENGTH));
+
if (isIwlanFeatureAvailable()
&& (ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN
== mSS.getRilDataRadioTechnology())) {
@@ -500,11 +503,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 9646fa88c..9bfa3d774 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -679,13 +679,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;
@@ -789,7 +785,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 00749ed06..cdc31781c 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,
@@ -1158,11 +1160,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();
}
diff --git a/src/java/com/android/internal/telephony/uicc/SIMRecords.java b/src/java/com/android/internal/telephony/uicc/SIMRecords.java
index abecc9fa4..9287bcc7b 100644
--- a/src/java/com/android/internal/telephony/uicc/SIMRecords.java
+++ b/src/java/com/android/internal/telephony/uicc/SIMRecords.java
@@ -1211,6 +1211,47 @@ public class SIMRecords extends IccRecords {
}
}
+ private void handleSimRefresh(IccRefreshResponse refreshResponse){
+ if (refreshResponse == null) {
+ if (DBG) log("handleSimRefresh received without input");
+ return;
+ }
+
+ if (refreshResponse.aid != null &&
+ !refreshResponse.aid.equals(mParentApp.getAid())) {
+ // This is for different app. Ignore.
+ return;
+ }
+
+ switch (refreshResponse.refreshResult) {
+ case IccRefreshResponse.REFRESH_RESULT_FILE_UPDATE:
+ if (DBG) log("handleSimRefresh with SIM_FILE_UPDATED");
+ handleFileUpdate(refreshResponse.efId);
+ break;
+ case IccRefreshResponse.REFRESH_RESULT_INIT:
+ if (DBG) log("handleSimRefresh with SIM_REFRESH_INIT");
+ // need to reload all files (that we care about)
+ onIccRefreshInit();
+ break;
+ case IccRefreshResponse.REFRESH_RESULT_RESET:
+ if (DBG) log("handleSimRefresh with SIM_REFRESH_RESET");
+ mCi.setRadioPower(false, null);
+ /* Note: no need to call setRadioPower(true). Assuming the desired
+ * radio power state is still ON (as tracked by ServiceStateTracker),
+ * ServiceStateTracker will call setRadioPower when it receives the
+ * RADIO_STATE_CHANGED notification for the power off. And if the
+ * desired power state has changed in the interim, we don't want to
+ * override it with an unconditional power on.
+ */
+ mAdnCache.reset();
+ break;
+ default:
+ // unknown refresh operation
+ if (DBG) log("handleSimRefresh with unknown operation");
+ break;
+ }
+ }
+
/**
* Dispatch 3GPP format message to registrant ({@code GSMPhone} or {@code CDMALTEPhone})
* to pass to the 3GPP SMS dispatcher for delivery.