From b137e7a6e5edac49ecf9656af769a05d5342e0f7 Mon Sep 17 00:00:00 2001 From: jasonwshsu Date: Fri, 8 May 2020 16:05:04 +0800 Subject: [PATCH] Change to use CaseMap.toTitle in shortcut type summary to handle different locale. Bug: 153850193 Test: manual test Change-Id: I6b4583d0b42a0019dfae9442536f6ed752ccc409 --- .../accessibility/ToggleFeaturePreferenceFragment.java | 8 ++++++-- .../ToggleScreenMagnificationPreferenceFragment.java | 10 +++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index 23869110c68..d0b83b6b8e1 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -28,6 +28,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; +import android.icu.text.CaseMap; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -61,6 +62,7 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.StringJoiner; import java.util.stream.Collectors; @@ -581,7 +583,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference } if ((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE) { final CharSequence hardwareTitle = context.getText( - R.string.accessibility_shortcut_edit_dialog_title_hardware); + R.string.accessibility_shortcut_hardware_keyword); list.add(hardwareTitle); } @@ -590,7 +592,9 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference list.add(softwareTitle); } final String joinStrings = TextUtils.join(/* delimiter= */", ", list); - return AccessibilityUtil.capitalize(joinStrings); + + return CaseMap.toTitle().wholeString().noLowercase().apply(Locale.getDefault(), /* iter= */ + null, joinStrings); } protected int getUserShortcutTypes(Context context, @UserShortcutType int defaultValue) { diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java index 797a332e8c4..083ad94f198 100644 --- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java @@ -25,6 +25,7 @@ import android.app.settings.SettingsEnums; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; +import android.icu.text.CaseMap; import android.net.Uri; import android.os.Bundle; import android.provider.Settings; @@ -46,6 +47,7 @@ import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.StringJoiner; import java.util.stream.Collectors; @@ -258,13 +260,13 @@ public class ToggleScreenMagnificationPreferenceFragment extends } if ((shortcutType & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE) { final CharSequence hardwareTitle = context.getText( - R.string.accessibility_shortcut_edit_dialog_title_hardware); + R.string.accessibility_shortcut_hardware_keyword); list.add(hardwareTitle); } if ((shortcutType & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP) { final CharSequence tripleTapTitle = context.getText( - R.string.accessibility_shortcut_edit_dialog_title_triple_tap); + R.string.accessibility_shortcut_triple_tap_keyword); list.add(tripleTapTitle); } @@ -273,7 +275,9 @@ public class ToggleScreenMagnificationPreferenceFragment extends list.add(softwareTitle); } final String joinStrings = TextUtils.join(/* delimiter= */", ", list); - return AccessibilityUtil.capitalize(joinStrings); + + return CaseMap.toTitle().wholeString().noLowercase().apply(Locale.getDefault(), /* iter= */ + null, joinStrings); } @Override