diff options
author | Jack Yu <jackyu@google.com> | 2015-08-26 01:34:40 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-08-26 01:34:40 +0000 |
commit | ca474793ea87ba4c92803d4aef2a4723bd1a2745 (patch) | |
tree | 1bcb66f77ff7be383b2b42d1b324640b9922b546 | |
parent | ea2280512403c7ad718b73fcceb8590bebf87b63 (diff) | |
parent | 6c497f695c5c0017c511e471d36bdfc66dbbf605 (diff) | |
download | telephony-marshmallow-dev.tar.gz |
Merge "Fixed that no service was shown after boot up" into mnc-devmarshmallow-dev
3 files changed, 26 insertions, 5 deletions
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java index 547291a4d3..cdd65e528e 100644 --- a/src/java/com/android/internal/telephony/ServiceStateTracker.java +++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java @@ -239,6 +239,7 @@ public abstract class ServiceStateTracker extends Handler { protected String mCurPlmn = null; protected boolean mCurShowPlmn = false; protected boolean mCurShowSpn = false; + protected int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private boolean mImsRegistered = false; @@ -303,6 +304,11 @@ public abstract class ServiceStateTracker extends Handler { editor.remove(PhoneBase.NETWORK_SELECTION_SHORT_KEY); editor.commit(); } + + // Once sub id becomes valid, we need to update the service provider name + // displayed on the UI again. The old SPN update intents sent to + // MobileSignalController earlier were actually ignored due to invalid sub id. + updateSpnDisplay(); } } } diff --git a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java index 91c51261d5..d0361656e4 100644 --- a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java +++ b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java @@ -572,7 +572,13 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { String plmn = mSS.getOperatorAlphaLong(); boolean showPlmn = false; - if (!TextUtils.equals(plmn, mCurPlmn)) { + int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; + int[] subIds = SubscriptionManager.getSubId(mPhone.getPhoneId()); + if (subIds != null && subIds.length > 0) { + subId = subIds[0]; + } + + if (mSubId != subId || !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 // null and not blank. But this would cause us to incorrectly display @@ -580,7 +586,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { showPlmn = plmn != null; if (DBG) { log(String.format("updateSpnDisplay: changed sending intent" + - " showPlmn='%b' plmn='%s'", showPlmn, plmn)); + " showPlmn='%b' plmn='%s' subId='%d'", showPlmn, plmn, subId)); } Intent intent = new Intent(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION); intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING); @@ -597,6 +603,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker { } } + mSubId = subId; mCurShowSpn = false; mCurShowPlmn = showPlmn; mCurSpn = ""; diff --git a/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java index 113c8f201f..133e628820 100755 --- a/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java +++ b/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java @@ -645,8 +645,15 @@ final class GsmServiceStateTracker extends ServiceStateTracker { showSpn = false; } + int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; + int[] subIds = SubscriptionManager.getSubId(mPhone.getPhoneId()); + if (subIds != null && subIds.length > 0) { + subId = subIds[0]; + } + // Update SPN_STRINGS_UPDATED_ACTION IFF any value changes - if (showPlmn != mCurShowPlmn + if (mSubId != subId || + showPlmn != mCurShowPlmn || showSpn != mCurShowSpn || !TextUtils.equals(spn, mCurSpn) || !TextUtils.equals(dataSpn, mCurDataSpn) @@ -654,8 +661,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker { if (DBG) { log(String.format("updateSpnDisplay: changed" + " sending intent rule=" + rule + - " showPlmn='%b' plmn='%s' showSpn='%b' spn='%s' dataSpn='%s'", - showPlmn, plmn, showSpn, spn, dataSpn)); + " showPlmn='%b' plmn='%s' showSpn='%b' spn='%s' dataSpn='%s' subId='%d'", + showPlmn, plmn, showSpn, spn, dataSpn, subId)); } Intent intent = new Intent(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION); intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING); @@ -673,6 +680,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker { } } + mSubId = subId; mCurShowSpn = showSpn; mCurShowPlmn = showPlmn; mCurSpn = spn; |