From 20976c3a53802a8b78cab20e49154244ddaf9ddd Mon Sep 17 00:00:00 2001 From: Chun-Ku Lin Date: Thu, 29 Jun 2023 02:43:44 +0000 Subject: [PATCH] use L10n-friendly runtime number formatting based on locale Arabic use Western or Eastern numbers depends on the regions. Bug: 276479321 Test: atest AccessibilityButtonFooterPreferenceControllerTest Test: manual Change-Id: I855f4fd891893b094163b0d479bdf3e5155dffc1 --- res/values/strings.xml | 38 ++++++++++++++----- ...ilityButtonFooterPreferenceController.java | 6 ++- .../security/ScreenPinningSettings.java | 8 ++-- ...yButtonFooterPreferenceControllerTest.java | 22 ++++++++--- 4 files changed, 54 insertions(+), 20 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 381a3cad09e..f2ac7c922ac 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4497,10 +4497,24 @@ Using the accessibility button. The gesture isn\u2019t available with 3-button navigation. Quickly access accessibility features - - To get started\n1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose whether you want to use a button or gesture to access the feature - - To get started\n1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose the button to access the feature + + + To get started
+ {0,number,integer}. Go to accessibility settings
+ {1,number,integer}. Select a feature and tap the shortcut
+ {2,number,integer}. Choose whether you want to use a button or gesture to access the feature
+ ]]> +
+ + + To get started
+ {0,number,integer}. Go to accessibility settings
+ {1,number,integer}. Select a feature and tap the shortcut
+ {2,number,integer}. Choose the button to access the feature
+ ]]> +
Use button or gesture @@ -8616,20 +8630,24 @@ App pinning allows you to keep the current app in view until you unpin it. This feature can be used, for example, to let a trusted friend play a specific game. + + diff --git a/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java index 77b823042bc..bd46152066a 100644 --- a/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java +++ b/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java @@ -17,6 +17,8 @@ package com.android.settings.accessibility; import android.content.Context; +import android.icu.text.MessageFormat; +import android.text.Html; import androidx.preference.PreferenceScreen; @@ -50,7 +52,9 @@ public class AccessibilityButtonFooterPreferenceController extends final int titleResource = AccessibilityUtil.isGestureNavigateEnabled(mContext) ? R.string.accessibility_button_gesture_description : R.string.accessibility_button_description; - final CharSequence footerText = mContext.getText(titleResource); + final CharSequence footerText = Html.fromHtml( + MessageFormat.format(mContext.getString(titleResource), 1, 2, 3), + Html.FROM_HTML_MODE_COMPACT); final AccessibilityFooterPreference footerPreference = screen.findPreference(getPreferenceKey()); footerPreference.setTitle(footerText); diff --git a/src/com/android/settings/security/ScreenPinningSettings.java b/src/com/android/settings/security/ScreenPinningSettings.java index 8fae6e141a4..dae79e8a6cd 100644 --- a/src/com/android/settings/security/ScreenPinningSettings.java +++ b/src/com/android/settings/security/ScreenPinningSettings.java @@ -20,6 +20,7 @@ import android.app.settings.SettingsEnums; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.icu.text.MessageFormat; import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; @@ -242,9 +243,10 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment } private CharSequence getAppPinningContent() { - return isGuestModeSupported() - ? getActivity().getText(R.string.screen_pinning_guest_user_description) - : getActivity().getText(R.string.screen_pinning_description); + final int stringResource = isGuestModeSupported() + ? R.string.screen_pinning_guest_user_description + : R.string.screen_pinning_description; + return MessageFormat.format(getActivity().getString(stringResource), 1, 2, 3); } /** diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java index 7354555a719..f6954d2790b 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java @@ -25,6 +25,8 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.res.Resources; +import android.icu.text.MessageFormat; +import android.text.Html; import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; @@ -73,18 +75,26 @@ public class AccessibilityButtonFooterPreferenceControllerTest { mController.displayPreference(mScreen); - assertThat(mPreference.getTitle()).isEqualTo( - mContext.getText(R.string.accessibility_button_gesture_description)); + assertThat(mPreference.getTitle().toString()).isEqualTo( + Html.fromHtml( + MessageFormat.format(mContext.getString( + R.string.accessibility_button_gesture_description), 1, 2, 3), + Html.FROM_HTML_MODE_COMPACT).toString()); } @Test public void displayPreference_navigationGestureDisabled_setCorrectTitle() { - when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode)) - .thenReturn(NAV_BAR_MODE_2BUTTON); + when(mResources.getInteger( + com.android.internal.R.integer.config_navBarInteractionMode)).thenReturn( + NAV_BAR_MODE_2BUTTON); mController.displayPreference(mScreen); - assertThat(mPreference.getTitle()).isEqualTo( - mContext.getText(R.string.accessibility_button_description)); + assertThat(mPreference.getTitle().toString()).isEqualTo( + Html.fromHtml( + MessageFormat.format( + mContext.getString( + R.string.accessibility_button_description), 1, 2, 3), + Html.FROM_HTML_MODE_COMPACT).toString()); } }