aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhang Fang <zfang@codeaurora.org>2014-09-10 16:00:02 +0800
committerSteve Kondik <steve@cyngn.com>2014-12-27 03:46:24 -0800
commitc50ad789739759e13dfa1f81b7fe59cb17f12324 (patch)
treef6fc42e62120ab18c535ca7f712d20759d691208
parent611d7dce959c4f55f98b04f9badd616282a16858 (diff)
downloadandroid_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.java26
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;