From e9be14077161b9c5dcaa521e9ce4d3e017c11ac6 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Thu, 1 Nov 2012 16:14:20 -0700 Subject: [PATCH] Add configurable em-dash separator for all concatenated keyguard strings Fixes bug 7459426 Change-Id: I2e4944f25f3e4e62b734bc57db628f1b3ce263cd --- core/res/res/values/strings.xml | 3 +++ core/res/res/values/symbols.xml | 1 + .../policy/impl/keyguard/CarrierText.java | 5 +++- .../impl/keyguard/KeyguardMessageArea.java | 27 ++++++++++--------- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 51d64293d534d..ada26441c4d6e 100755 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -3976,6 +3976,9 @@ you will be asked to unlock your phone using an email account.\n\n Try again in %d seconds. + + \u2014 diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 05edbcc321564..213d93b45541d 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1478,6 +1478,7 @@ + diff --git a/policy/src/com/android/internal/policy/impl/keyguard/CarrierText.java b/policy/src/com/android/internal/policy/impl/keyguard/CarrierText.java index b031baf738eb2..f3ea9925e4523 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/CarrierText.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/CarrierText.java @@ -27,6 +27,8 @@ import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.widget.LockPatternUtils; public class CarrierText extends TextView { + private static CharSequence mSeparator; + private LockPatternUtils mLockPatternUtils; private KeyguardUpdateMonitorCallback mCallback = new KeyguardUpdateMonitorCallback() { @@ -82,6 +84,7 @@ public class CarrierText extends TextView { @Override protected void onFinishInflate() { super.onFinishInflate(); + mSeparator = getResources().getString(R.string.kg_text_message_separator); KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mCallback); setSelected(true); // Allow marquee to work. } @@ -202,7 +205,7 @@ public class CarrierText extends TextView { final boolean plmnValid = !TextUtils.isEmpty(plmn); final boolean spnValid = !TextUtils.isEmpty(spn); if (plmnValid && spnValid) { - return plmn + "|" + spn; + return new StringBuilder().append(plmn).append(mSeparator).append(spn).toString(); } else if (plmnValid) { return plmn; } else if (spnValid) { diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMessageArea.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMessageArea.java index 5e331e1aafbfc..f6f3fabbe58cf 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMessageArea.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardMessageArea.java @@ -43,7 +43,6 @@ class KeyguardMessageArea extends TextView { static final int SECURITY_MESSAGE_DURATION = 5000; protected static final int FADE_DURATION = 750; - static final String SEPARATOR = " "; // are we showing battery information? boolean mShowingBatteryInfo = false; @@ -143,6 +142,8 @@ class KeyguardMessageArea extends TextView { } }; + private CharSequence mSeparator; + public KeyguardMessageArea(Context context) { this(context, null); } @@ -158,6 +159,8 @@ class KeyguardMessageArea extends TextView { mUpdateMonitor.registerCallback(mInfoCallback); mHandler = new Handler(Looper.myLooper()); + mSeparator = getResources().getString(R.string.kg_text_message_separator); + update(); } @@ -186,23 +189,23 @@ class KeyguardMessageArea extends TextView { setText(status); } - - private CharSequence concat(Object... args) { + private CharSequence concat(CharSequence... args) { StringBuilder b = new StringBuilder(); - for (int i = 0; i < args.length; i++) { - final Object arg = args[i]; - if (arg instanceof CharSequence) { - b.append((CharSequence)args[i]); - b.append(SEPARATOR); - } else if (arg instanceof String) { - b.append((String)args[i]); - b.append(SEPARATOR); + if (!TextUtils.isEmpty(args[0])) { + b.append(args[0]); + } + for (int i = 1; i < args.length; i++) { + CharSequence text = args[i]; + if (!TextUtils.isEmpty(text)) { + if (b.length() > 0) { + b.append(mSeparator); + } + b.append(text); } } return b.toString(); } - CharSequence getCurrentMessage() { return mShowingMessage ? mMessage : null; }