diff options
author | Wink Saville <wink@google.com> | 2010-11-18 15:16:42 -0800 |
---|---|---|
committer | Wink Saville <wink@google.com> | 2010-11-18 15:16:42 -0800 |
commit | 0fa0d40b25bd6fd199431a18f8d02a1c946f821c (patch) | |
tree | 0cc71df5085d29446ab63d789da6bbd1f0a37ed9 /telephony | |
parent | d80661c129010f89e3b305797e1712f3d3481467 (diff) | |
download | frameworks_base-0fa0d40b25bd6fd199431a18f8d02a1c946f821c.zip frameworks_base-0fa0d40b25bd6fd199431a18f8d02a1c946f821c.tar.gz frameworks_base-0fa0d40b25bd6fd199431a18f8d02a1c946f821c.tar.bz2 |
Fix SPN_STRINGS_UPDATED_ACTION.
Change EXTRA_SHOW_SPN and EXTRA_SHOW_PLMN to be false if spn and plmn
are null or empty respectively. For CDMA EXTRA_SHOW_SPN is always false.
bug: 3191159
Change-Id: Ic13b946cee10b123ec4960f2d22e13c8cb1dd20d
Diffstat (limited to 'telephony')
-rwxr-xr-x | telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java | 47 | ||||
-rw-r--r-- | telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java | 9 |
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); |