diff options
author | Steve Kondik <shade@chemlab.org> | 2014-06-13 15:50:54 -0700 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2014-06-13 15:50:54 -0700 |
commit | d43b5b1ca91e0aac0c697546a5cb341ffa758e0b (patch) | |
tree | b4df3a002c0880f74bf347be8950b06f0bb332c0 | |
parent | 2a545c65c8be36377b0cc022fdcb741475c0b264 (diff) | |
parent | ea462c1ccb07f0176f00b4c71822509db3d89c00 (diff) | |
download | android_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
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. |