summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2010-11-18 15:42:04 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-11-18 15:42:04 -0800
commit36d26c92908f0e181a05e700e7e212ce1baafa66 (patch)
tree66763be438a4d860b969cabbf58fd9beb2ac191b /telephony
parent3d019afcdb167a04d9c879285b448f9be1de3c67 (diff)
parent0fa0d40b25bd6fd199431a18f8d02a1c946f821c (diff)
downloadframeworks_base-36d26c92908f0e181a05e700e7e212ce1baafa66.zip
frameworks_base-36d26c92908f0e181a05e700e7e212ce1baafa66.tar.gz
frameworks_base-36d26c92908f0e181a05e700e7e212ce1baafa66.tar.bz2
Merge "Fix SPN_STRINGS_UPDATED_ACTION."
Diffstat (limited to 'telephony')
-rwxr-xr-xtelephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java47
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java9
2 files changed, 23 insertions, 33 deletions
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
index c006fcf..1eb480a 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -128,10 +128,6 @@ final class CdmaServiceStateTracker extends ServiceStateTracker {
private PowerManager.WakeLock mWakeLock;
private static final String WAKELOCK_TAG = "ServiceStateTracker";
- /** Track of SPN display rules, so we only broadcast intent if something changes. */
- private String curSpn = null;
- private int curSpnRule = 0;
-
/** Contains the name of the registered network in CDMA (either ONS or ERI text). */
private String curPlmn = null;
@@ -620,40 +616,29 @@ final class CdmaServiceStateTracker extends ServiceStateTracker {
@Override
protected void updateSpnDisplay() {
- String spn = "";
- boolean showSpn = false;
- String plmn = "";
- boolean showPlmn = false;
- int rule = 0;
- if (cm.getRadioState().isRUIMReady()) {
- // TODO RUIM SPN is not implemented, EF_SPN has to be read and Display Condition
- // Character Encoding, Language Indicator and SPN has to be set
- // rule = phone.mRuimRecords.getDisplayRule(ss.getOperatorNumeric());
- // spn = phone.mSIMRecords.getServiceProvideName();
- plmn = ss.getOperatorAlphaLong(); // mOperatorAlphaLong contains the ONS
- // showSpn = (rule & ...
- showPlmn = true; // showPlmn = (rule & ...
-
- } else {
- // In this case there is no SPN available from RUIM, we show the ERI text
- plmn = ss.getOperatorAlphaLong(); // mOperatorAlphaLong contains the ERI text
- showPlmn = true;
- }
-
- if (rule != curSpnRule
- || !TextUtils.equals(spn, curSpn)
- || !TextUtils.equals(plmn, curPlmn)) {
+ // TODO RUIM SPN is not implemented, EF_SPN has to be read and Display Condition
+ // Character Encoding, Language Indicator and SPN has to be set, something like below:
+ // if (cm.getRadioState().isRUIMReady()) {
+ // rule = phone.mRuimRecords.getDisplayRule(ss.getOperatorNumeric());
+ // spn = phone.mSIMRecords.getServiceProvideName();
+ // }
+
+ // mOperatorAlphaLong contains the ERI text
+ String plmn = ss.getOperatorAlphaLong();
+ if (!TextUtils.equals(plmn, curPlmn)) {
+ boolean showPlmn = (plmn != null) && !TextUtils.equals(plmn, "");
+ Log.d(LOG_TAG,
+ String.format("updateSpnDisplay: changed sending intent" +
+ " showPlmn='%b' plmn='%s'", showPlmn, plmn));
Intent intent = new Intent(Intents.SPN_STRINGS_UPDATED_ACTION);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
- intent.putExtra(Intents.EXTRA_SHOW_SPN, showSpn);
- intent.putExtra(Intents.EXTRA_SPN, spn);
+ intent.putExtra(Intents.EXTRA_SHOW_SPN, false);
+ intent.putExtra(Intents.EXTRA_SPN, "");
intent.putExtra(Intents.EXTRA_SHOW_PLMN, showPlmn);
intent.putExtra(Intents.EXTRA_PLMN, plmn);
phone.getContext().sendStickyBroadcast(intent);
}
- curSpnRule = rule;
- curSpn = spn;
curPlmn = plmn;
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
index 632615d..b04d4b9 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
@@ -599,16 +599,21 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
if (mEmergencyOnly && cm.getRadioState().isOn()) {
plmn = Resources.getSystem().
getText(com.android.internal.R.string.emergency_calls_only).toString();
+ Log.d(LOG_TAG, "updateSpnDisplay: emergency only and radio is on plmn='" + plmn + "'");
}
if (rule != curSpnRule
|| !TextUtils.equals(spn, curSpn)
|| !TextUtils.equals(plmn, curPlmn)) {
- boolean showSpn = !mEmergencyOnly
+ boolean showSpn = !mEmergencyOnly && !TextUtils.isEmpty(spn)
&& (rule & SIMRecords.SPN_RULE_SHOW_SPN) == SIMRecords.SPN_RULE_SHOW_SPN;
- boolean showPlmn =
+ boolean showPlmn = !TextUtils.isEmpty(plmn) &&
(rule & SIMRecords.SPN_RULE_SHOW_PLMN) == SIMRecords.SPN_RULE_SHOW_PLMN;
+ Log.d(LOG_TAG,
+ String.format("updateSpnDisplay: changed sending intent" + " rule=" + rule +
+ " showPlmn='%b' plmn='%s' showSpn='%b' spn='%s'",
+ showPlmn, plmn, showSpn, spn));
Intent intent = new Intent(Intents.SPN_STRINGS_UPDATED_ACTION);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
intent.putExtra(Intents.EXTRA_SHOW_SPN, showSpn);