summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res-keyguard/values/strings.xml6
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java23
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java25
4 files changed, 49 insertions, 9 deletions
diff --git a/packages/SystemUI/res-keyguard/values/strings.xml b/packages/SystemUI/res-keyguard/values/strings.xml
index b951c4c591f7..589f1c16935b 100644
--- a/packages/SystemUI/res-keyguard/values/strings.xml
+++ b/packages/SystemUI/res-keyguard/values/strings.xml
@@ -99,12 +99,12 @@
<string name="keyguard_sim_unlock_progress_dialog_message">Unlocking SIM card\u2026</string>
<!-- Time format strings for fall-back clock widget -->
- <string name="keyguard_widget_12_hours_format" translatable="false">h\uee01mm</string>
+ <string name="keyguard_widget_12_hours_format" translatable="false">h:mm</string>
<!-- Time format strings for fall-back clock widget -->
- <string name="keyguard_widget_24_hours_format" translatable="false">kk\uee01mm</string>
+ <string name="keyguard_widget_24_hours_format" translatable="false">kk:mm</string>
<!-- The character used in keyguard_widget_12_hours_format and keyguard_widget_24_hours_format
to represent a ":". -->
- <string name="keyguard_fancy_colon" translatable="false">\uee01</string>
+ <string name="keyguard_fancy_colon" translatable="false"></string>
<!-- Accessibility description of the PIN password view. [CHAR_LIMIT=none] -->
<string name="keyguard_accessibility_pin_area">PIN area</string>
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java
index 80509a689a64..6a83c719b38f 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java
@@ -36,6 +36,9 @@ class KeyguardClockAccessibilityDelegate extends View.AccessibilityDelegate {
@Override
public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(host, event);
+ if (TextUtils.isEmpty(mFancyColon)) {
+ return;
+ }
CharSequence text = event.getContentDescription();
if (!TextUtils.isEmpty(text)) {
event.setContentDescription(replaceFancyColon(text));
@@ -44,15 +47,22 @@ class KeyguardClockAccessibilityDelegate extends View.AccessibilityDelegate {
@Override
public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
- CharSequence text = ((TextView) host).getText();
- if (!TextUtils.isEmpty(text)) {
- event.getText().add(replaceFancyColon(text));
+ if (TextUtils.isEmpty(mFancyColon)) {
+ super.onPopulateAccessibilityEvent(host, event);
+ } else {
+ CharSequence text = ((TextView) host).getText();
+ if (!TextUtils.isEmpty(text)) {
+ event.getText().add(replaceFancyColon(text));
+ }
}
}
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
+ if (TextUtils.isEmpty(mFancyColon)) {
+ return;
+ }
if (!TextUtils.isEmpty(info.getText())) {
info.setText(replaceFancyColon(info.getText()));
}
@@ -62,6 +72,13 @@ class KeyguardClockAccessibilityDelegate extends View.AccessibilityDelegate {
}
private CharSequence replaceFancyColon(CharSequence text) {
+ if (TextUtils.isEmpty(mFancyColon)) {
+ return text;
+ }
return text.toString().replace(mFancyColon, ":");
}
+
+ public static boolean isNeeded(Context context) {
+ return !TextUtils.isEmpty(context.getString(R.string.keyguard_fancy_colon));
+ }
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index a9d583f4f701..bc2a59df42a6 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -153,7 +153,9 @@ public class KeyguardStatusView extends GridLayout {
mDateView = findViewById(R.id.date_view);
mClockView = findViewById(R.id.clock_view);
mClockView.setShowCurrentUserTime(true);
- mClockView.setAccessibilityDelegate(new KeyguardClockAccessibilityDelegate(mContext));
+ if (KeyguardClockAccessibilityDelegate.isNeeded(mContext)) {
+ mClockView.setAccessibilityDelegate(new KeyguardClockAccessibilityDelegate(mContext));
+ }
mOwnerInfo = findViewById(R.id.owner_info);
mBatteryDoze = findViewById(R.id.battery_doze);
mKeyguardStatusArea = findViewById(R.id.keyguard_status_area);
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java
index 855adb451020..e37ea95515d0 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java
@@ -16,6 +16,7 @@
package com.android.keyguard;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -36,12 +37,17 @@ import java.util.List;
public class KeyguardClockAccessibilityDelegateTest extends SysuiTestCase {
private TextView mView;
+ private String m12HoursFormat;
+ private String m24HoursFormat;
@Before
public void setUp() throws Exception {
+ m12HoursFormat = mContext.getString(R.string.keyguard_widget_12_hours_format);
+ m24HoursFormat = mContext.getString(R.string.keyguard_widget_24_hours_format);
+
mView = new TextView(mContext);
- mView.setText(R.string.keyguard_widget_12_hours_format);
- mView.setContentDescription(mContext.getString(R.string.keyguard_widget_12_hours_format));
+ mView.setText(m12HoursFormat);
+ mView.setContentDescription(m12HoursFormat);
mView.setAccessibilityDelegate(new KeyguardClockAccessibilityDelegate(mContext));
}
@@ -77,6 +83,21 @@ public class KeyguardClockAccessibilityDelegateTest extends SysuiTestCase {
assertTrue(isAscii(info.getContentDescription()));
}
+ @Test
+ public void isNeeded_returnsTrueIfDateFormatsContainNonAscii() {
+ if (!isAscii(m12HoursFormat) || !isAscii(m24HoursFormat)) {
+ assertTrue(KeyguardClockAccessibilityDelegate.isNeeded(mContext));
+ }
+ }
+
+ @Test
+ public void isNeeded_returnsWhetherFancyColonExists() {
+ boolean hasFancyColon = !TextUtils.isEmpty(mContext.getString(
+ R.string.keyguard_fancy_colon));
+
+ assertEquals(hasFancyColon, KeyguardClockAccessibilityDelegate.isNeeded(mContext));
+ }
+
private boolean isAscii(CharSequence text) {
return text.chars().allMatch((i) -> i < 128);
}