diff options
author | Zhang Fang <zfang@codeaurora.org> | 2014-09-10 16:00:02 +0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2014-12-27 03:46:24 -0800 |
commit | c50ad789739759e13dfa1f81b7fe59cb17f12324 (patch) | |
tree | f6fc42e62120ab18c535ca7f712d20759d691208 | |
parent | 611d7dce959c4f55f98b04f9badd616282a16858 (diff) | |
download | android_frameworks_opt_telephony-c50ad789739759e13dfa1f81b7fe59cb17f12324.tar.gz android_frameworks_opt_telephony-c50ad789739759e13dfa1f81b7fe59cb17f12324.tar.bz2 android_frameworks_opt_telephony-c50ad789739759e13dfa1f81b7fe59cb17f12324.zip |
Fix the wrong CDMA carrier text in expanded status bar
After updating operator, the expanded status bar will update SPN.
For GSM, it will display "no service" if service is out of service.
For CDMA, it always displays SPN which set from RuimRecords.java
and it displays CDMA carrier.
Check current service state whether out of service, if yes, display
"no service" instead of SPN.
Change-Id: I71bb32443e0cfaa8c2d77f928b428febed94fca8
CRs-Fixed: 711942
-rw-r--r-- | src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java index 1feb7093d..98281a0e6 100644 --- a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +++ b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java @@ -20,6 +20,7 @@ import android.app.AlarmManager; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; +import android.content.res.Resources; import android.database.ContentObserver; import android.os.AsyncResult; import android.os.Build; @@ -579,6 +580,14 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { // mOperatorAlphaLong contains the ERI text String plmn = mSS.getOperatorAlphaLong(); + int combinedRegState = getCombinedRegState(); + if (combinedRegState == ServiceState.STATE_OUT_OF_SERVICE) { + plmn = Resources.getSystem().getText(com.android.internal. + R.string.lockscreen_carrier_default).toString(); + if (DBG) log("updateSpnDisplay: radio is on but out " + + "of service, set plmn='" + plmn + "'"); + } + if (!TextUtils.equals(plmn, mCurPlmn)) { // Allow A blank plmn, "" to set showPlmn to true. Previously, we // would set showPlmn to true only if plmn was not empty, i.e. was not @@ -602,6 +611,23 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { mCurPlmn = plmn; } + /** + * Consider dataRegState if voiceRegState is OOS to determine SPN to be + * displayed + */ + private int getCombinedRegState() { + int regState = mSS.getVoiceRegState(); + int dataRegState = mSS.getDataRegState(); + + if ((regState == ServiceState.STATE_OUT_OF_SERVICE) + && (dataRegState == ServiceState.STATE_IN_SERVICE)) { + log("getCombinedRegState: return STATE_IN_SERVICE as Data is in service"); + regState = dataRegState; + } + + return regState; + } + @Override protected Phone getPhone() { return mPhone; |