Loading packages/SystemUI/res-keyguard/values/strings.xml +3 −3 Original line number Diff line number Diff line Loading @@ -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> Loading packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java +20 −3 Original line number Diff line number Diff line Loading @@ -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)); Loading @@ -44,15 +47,22 @@ class KeyguardClockAccessibilityDelegate extends View.AccessibilityDelegate { @Override public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) { 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())); } Loading @@ -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)); } } packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +3 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,9 @@ public class KeyguardStatusView extends GridLayout { mDateView = findViewById(R.id.date_view); mClockView = findViewById(R.id.clock_view); mClockView.setShowCurrentUserTime(true); 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); Loading packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java +23 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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)); } Loading Loading @@ -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); } Loading Loading
packages/SystemUI/res-keyguard/values/strings.xml +3 −3 Original line number Diff line number Diff line Loading @@ -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> Loading
packages/SystemUI/src/com/android/keyguard/KeyguardClockAccessibilityDelegate.java +20 −3 Original line number Diff line number Diff line Loading @@ -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)); Loading @@ -44,15 +47,22 @@ class KeyguardClockAccessibilityDelegate extends View.AccessibilityDelegate { @Override public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) { 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())); } Loading @@ -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)); } }
packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +3 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,9 @@ public class KeyguardStatusView extends GridLayout { mDateView = findViewById(R.id.date_view); mClockView = findViewById(R.id.clock_view); mClockView.setShowCurrentUserTime(true); 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); Loading
packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockAccessibilityDelegateTest.java +23 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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)); } Loading Loading @@ -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); } Loading