aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Yu <jackyu@google.com>2015-08-26 01:34:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-08-26 01:34:40 +0000
commitca474793ea87ba4c92803d4aef2a4723bd1a2745 (patch)
tree1bcb66f77ff7be383b2b42d1b324640b9922b546
parentea2280512403c7ad718b73fcceb8590bebf87b63 (diff)
parent6c497f695c5c0017c511e471d36bdfc66dbbf605 (diff)
downloadtelephony-marshmallow-dev.tar.gz
Merge "Fixed that no service was shown after boot up" into mnc-devmarshmallow-dev
-rw-r--r--src/java/com/android/internal/telephony/ServiceStateTracker.java6
-rw-r--r--src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java11
-rwxr-xr-xsrc/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java14
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;