summaryrefslogtreecommitdiffstats
path: root/packages/Keyguard
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-02-24 08:55:26 -0500
committerJason Monk <jmonk@google.com>2015-02-24 10:13:47 -0500
commitde3260b5bf0a1a2b3b23d4634400e1ea56f10ee4 (patch)
treed5614a1c01a4d1ae72a9add9b045a5b9d66a7a15 /packages/Keyguard
parentaba93780b47472f411737744957af00ae8d12220 (diff)
downloadframeworks_base-de3260b5bf0a1a2b3b23d4634400e1ea56f10ee4.zip
frameworks_base-de3260b5bf0a1a2b3b23d4634400e1ea56f10ee4.tar.gz
frameworks_base-de3260b5bf0a1a2b3b23d4634400e1ea56f10ee4.tar.bz2
Keyguard: Use plmn/spn broadcast when no SIMs
The keyguard needs to show either 'emergency calls only' or 'no service' depending on whether there is service available, so try to pull this from the old sticky broadcast containing plmn/spn. Bug: 19476978 Change-Id: I83523cc4c7dd5f46bd97df2cc9ecdb38d1c2e001
Diffstat (limited to 'packages/Keyguard')
-rw-r--r--packages/Keyguard/src/com/android/keyguard/CarrierText.java26
1 files changed, 23 insertions, 3 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/CarrierText.java b/packages/Keyguard/src/com/android/keyguard/CarrierText.java
index d8b0c71..b9263bf 100644
--- a/packages/Keyguard/src/com/android/keyguard/CarrierText.java
+++ b/packages/Keyguard/src/com/android/keyguard/CarrierText.java
@@ -20,6 +20,8 @@ import java.util.List;
import java.util.Locale;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.content.res.TypedArray;
import android.net.ConnectivityManager;
import android.telephony.SubscriptionInfo;
@@ -33,6 +35,7 @@ import android.widget.TextView;
import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.IccCardConstants.State;
+import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.widget.LockPatternUtils;
public class CarrierText extends TextView {
@@ -120,10 +123,27 @@ public class CarrierText extends TextView {
subs.get(0).getCarrierName());
} else {
// We don't have a SubscriptionInfo to get the emergency calls only from.
- // Lets just make it ourselves.
+ // Grab it from the old sticky broadcast if possible instead. We can use it
+ // here because no subscriptions are active, so we don't have
+ // to worry about MSIM clashing.
+ CharSequence text =
+ getContext().getText(com.android.internal.R.string.emergency_calls_only);
+ Intent i = getContext().registerReceiver(null,
+ new IntentFilter(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION));
+ if (i != null) {
+ String spn = "";
+ String plmn = "";
+ if (i.getBooleanExtra(TelephonyIntents.EXTRA_SHOW_SPN, false)) {
+ spn = i.getStringExtra(TelephonyIntents.EXTRA_SPN);
+ }
+ if (i.getBooleanExtra(TelephonyIntents.EXTRA_SHOW_PLMN, false)) {
+ plmn = i.getStringExtra(TelephonyIntents.EXTRA_PLMN);
+ }
+ if (DEBUG) Log.d(TAG, "Getting plmn/spn sticky brdcst " + plmn + "/" + spn);
+ text = concatenate(plmn, spn);
+ }
displayText = makeCarrierStringOnEmergencyCapable(
- getContext().getText(R.string.keyguard_missing_sim_message_short),
- getContext().getText(com.android.internal.R.string.emergency_calls_only));
+ getContext().getText(R.string.keyguard_missing_sim_message_short), text);
}
}
setText(displayText);