diff --git a/res/values/strings.xml b/res/values/strings.xml index bddba381f2f..36886e68b14 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -36,10 +36,10 @@ Tap to show info - - You are now %1$d step away from being a developer. - You are now %1$d steps away from being a developer. - + {count, plural, + =1 {You are now # step away from being a developer.} + other {You are now # steps away from being a developer.} + } You are now a developer! @@ -355,10 +355,10 @@ Only apps that support language selection are shown here. - - Remove selected language? - Remove selected languages? - + {count, plural, + =1 {Remove selected language?} + other {Remove selected languages?} + } Text will be displayed in another language. @@ -1128,10 +1128,10 @@ If you enter an incorrect password on the next attempt, your work profile and its data will be deleted - - Must contain at least %d character - Must be at least %d characters - + {count, plural, + =1 {Must contain at least # character} + other {Must be at least # characters} + } {count, plural, @@ -1140,21 +1140,21 @@ } - - PIN must contain at least %d digit - PIN must be at least %d digits - + {count, plural, + =1 {PIN must contain at least # digit} + other {PIN must be at least # digits} + } - - Must be fewer than %d character - Must be fewer than %d characters - + {count, plural, + =1 {Must be fewer than # character} + other {Must be fewer than # characters} + } - - Must be fewer than %d digit - Must be fewer than %d digits - + {count, plural, + =1 {Must be fewer than # digit} + other {Must be fewer than # digits} + } Device admin doesn\'t allow using a recent PIN @@ -1163,46 +1163,46 @@ This can\'t include an invalid character - - Must contain at least 1 letter - Must contain at least %d letters - + {count, plural, + =1 {Must contain at least 1 letter} + other {Must contain at least # letters} + } - - Must contain at least 1 lowercase letter - Must contain at least %d lowercase letters - + {count, plural, + =1 {Must contain at least 1 lowercase letter} + other {Must contain at least # lowercase letters} + } - - Must contain at least 1 uppercase letter - Must contain at least %d uppercase letters - + {count, plural, + =1 {Must contain at least 1 uppercase letter} + other {Must contain at least # uppercase letters} + } - - Must contain at least 1 numerical digit - Must contain at least %d numerical digits - + {count, plural, + =1 {Must contain at least 1 numerical digit} + other {Must contain at least # numerical digits} + } - - Must contain at least 1 special symbol - Must contain at least %d special symbols - + {count, plural, + =1 {Must contain at least 1 special symbol} + other {Must contain at least # special symbols} + } - - Must contain at least 1 non-letter character - Must contain at least %d non-letter characters - + {count, plural, + =1 {Must contain at least 1 non-letter character} + other {Must contain at least # non-letter characters} + } - - Must contain at least 1 non-numerical character - Must contain at least %d non-numerical characters - + {count, plural, + =1 {Must contain at least 1 non-numerical character} + other {Must contain at least # non-numerical characters} + } Device admin doesn\'t allow using a recent @@ -1234,10 +1234,10 @@ No active apps - - %d active app - %d active apps - + {count, plural, + =1 {# active app} + other {# active apps} + } Trust agents @@ -1249,10 +1249,10 @@ None - - 1 active trust agent - %d active trust agents - + {count, plural, + =1 {1 active trust agent} + other {# active trust agents} + } @@ -1751,20 +1751,20 @@ - - 1 network - %d networks - + {count, plural, + =1 {1 network} + other {# networks} + } - - 1 subscription - %d subscriptions - + {count, plural, + =1 {1 subscription} + other {# subscriptions} + } - - 1 network & subscription - %d networks & subscriptions - + {count, plural, + =1 {1 network & subscription} + other {# networks & subscriptions} + } SSID @@ -2372,10 +2372,10 @@ Displayed in a dialog box. [CHAR LIMIT=100] --> Incorrect SIM PIN code you must now contact your carrier to unlock your device. - - Incorrect SIM PIN code, you have %d remaining attempt before you must contact your carrier to unlock your device. - Incorrect SIM PIN code, you have %d remaining attempts. - + {count, plural, + =1 {Incorrect SIM PIN code, you have # remaining attempt before you must contact your carrier to unlock your device.} + other {Incorrect SIM PIN code, you have # remaining attempts.} + } @@ -2951,18 +2951,10 @@ "total_location_app_count" is almost always greater than 1, so "apps" is always in plural form. [CHAR LIMIT=NONE]--> - - - %1$d - of - %2$d - apps has access to location - - %1$d - of - %2$d - apps have access to location - + {count, plural, + =1 {# of {total} apps has access to location} + other {# of {total} apps have access to location} + } Recent access @@ -3319,10 +3311,10 @@ Recently opened apps - - See all apps - See all %1$d apps - + {count, plural, + =1 {See all apps} + other {See all # apps} + } Contact your IT admin @@ -3352,10 +3344,10 @@ Cache - - 1 item - %d items - + {count, plural, + =1 {1 item} + other {# items} + } Clear access @@ -9629,10 +9621,10 @@ Number of apps is estimated. It may not include apps installed outside of the Play Store. - - Minimum %d app - Minimum %d apps - + {count, plural, + =1 {Minimum # app} + other {Minimum # apps} + } Location permissions @@ -9642,10 +9634,10 @@ Default apps - - %d app - %d apps - + {count, plural, + =1 {# app} + other {# apps} + } Default keyboard @@ -9665,10 +9657,10 @@ Trusted credentials in your work profile - - Minimum %d CA certificate - Minimum %d CA certificates - + {count, plural, + =1 {Minimum # CA certificate} + other {Minimum # CA certificates} + } Admin can lock the device and reset password @@ -9678,10 +9670,10 @@ Failed password attempts before deleting work profile data - - %d attempt - %d attempts - + {count, plural, + =1 {# attempt} + other {# attempts} + } This device is managed by your organization. @@ -9742,26 +9734,26 @@ - - Camera app - Camera apps - + {count, plural, + =1 {Camera app} + other {Camera apps} + } Calendar app Contacts app - - Email client app - Email client apps - + {count, plural, + =1 {Email client app} + other {Email client apps} + } Map app - - Phone app - Phone apps - + {count, plural, + =1 {Phone app} + other {Phone apps} + } %1$s, %2$s @@ -9844,10 +9836,10 @@ Password and identity services - - %1$d password - %1$d passwords - + {count, plural, + =1 {# password} + other {# passwords} + } \u2014 @@ -10625,10 +10617,10 @@ Accessibility usage - - 1 app has full access to your device - %1$d apps have full access to your device - + {count, plural, + =1 {1 app has full access to your device} + other {# apps have full access to your device} + } Important information diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java index c206cc69448..0ebe8c77af7 100644 --- a/src/com/android/settings/IccLockSettings.java +++ b/src/com/android/settings/IccLockSettings.java @@ -57,6 +57,7 @@ import androidx.preference.SwitchPreference; import com.android.settings.network.ProxySubscriptionManager; import com.android.settings.network.SubscriptionUtil; +import com.android.settingslib.utils.StringUtil; import java.util.ArrayList; import java.util.List; @@ -674,9 +675,8 @@ public class IccLockSettings extends SettingsPreferenceFragment } else if (attemptsRemaining == 1) { displayMessage = mRes.getString(R.string.wrong_pin_code_one, attemptsRemaining); } else if (attemptsRemaining > 1) { - displayMessage = mRes - .getQuantityString(R.plurals.wrong_pin_code, attemptsRemaining, - attemptsRemaining); + displayMessage = StringUtil.getIcuPluralsString(getPrefContext(), attemptsRemaining, + R.string.wrong_pin_code); } else { displayMessage = mRes.getString(R.string.pin_failed); } diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java index 5a1d11b405d..807f0432990 100644 --- a/src/com/android/settings/applications/AppStorageSettings.java +++ b/src/com/android/settings/applications/AppStorageSettings.java @@ -58,6 +58,7 @@ import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState.Callbacks; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource.AppStorageStats; +import com.android.settingslib.utils.StringUtil; import com.android.settingslib.widget.ActionButtonsPreference; import com.android.settingslib.widget.LayoutPreference; @@ -438,9 +439,8 @@ public class AppStorageSettings extends AppInfoWithHeader int numberResources = entry.getValue().value; Preference pref = new Preference(getPrefContext()); pref.setTitle(entry.getKey()); - pref.setSummary(getPrefContext().getResources() - .getQuantityString(R.plurals.uri_permissions_text, numberResources, - numberResources)); + pref.setSummary(StringUtil.getIcuPluralsString(mUri.getContext(), numberResources, + R.string.uri_permissions_text)); pref.setSelectable(false); pref.setLayoutResource(R.layout.horizontal_preference); pref.setOrder(order); diff --git a/src/com/android/settings/applications/AppsPreferenceController.java b/src/com/android/settings/applications/AppsPreferenceController.java index 922ba3c505b..37ec0bbf0a1 100644 --- a/src/com/android/settings/applications/AppsPreferenceController.java +++ b/src/com/android/settings/applications/AppsPreferenceController.java @@ -142,9 +142,8 @@ public class AppsPreferenceController extends BasePreferenceController implement @Override protected void onCountComplete(int num) { if (!mRecentApps.isEmpty()) { - mSeeAllPref.setTitle( - mContext.getResources().getQuantityString(R.plurals.see_all_apps_title, - num, num)); + mSeeAllPref.setTitle(StringUtil.getIcuPluralsString(mContext, num, + R.string.see_all_apps_title)); } else { mAllAppsInfoPref.setSummary(mContext.getString(R.string.apps_summary, num)); } diff --git a/src/com/android/settings/applications/autofill/PasswordsPreferenceController.java b/src/com/android/settings/applications/autofill/PasswordsPreferenceController.java index a130bb28302..03a551fb798 100644 --- a/src/com/android/settings/applications/autofill/PasswordsPreferenceController.java +++ b/src/com/android/settings/applications/autofill/PasswordsPreferenceController.java @@ -55,6 +55,7 @@ import com.android.internal.os.IResultReceiver; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.core.BasePreferenceController; +import com.android.settingslib.utils.StringUtil; import com.android.settingslib.widget.AppPreference; import java.lang.ref.WeakReference; @@ -153,9 +154,8 @@ public class PasswordsPreferenceController extends BasePreferenceController passwordCount.observe( mLifecycleOwner, count -> { // TODO(b/169455298): Validate the result. - final CharSequence summary = - mContext.getResources().getQuantityString( - R.plurals.autofill_passwords_count, count, count); + final CharSequence summary = StringUtil.getIcuPluralsString(mContext, count, + R.string.autofill_passwords_count); pref.setSummary(summary); }); // TODO(b/169455298): Limit the number of concurrent queries. diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java index 6af58b5bc6b..55b38afd0a8 100644 --- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java @@ -47,6 +47,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.development.DevelopmentSettingsEnabler; +import com.android.settingslib.utils.StringUtil; import com.google.android.setupcompat.util.WizardManagerHelper; public class BuildNumberPreferenceController extends BasePreferenceController implements @@ -181,9 +182,8 @@ public class BuildNumberPreferenceController extends BasePreferenceController im mDevHitToast.cancel(); } mDevHitToast = Toast.makeText(mContext, - mContext.getResources().getQuantityString( - R.plurals.show_dev_countdown, mDevHitCountdown, - mDevHitCountdown), + StringUtil.getIcuPluralsString(mContext, mDevHitCountdown, + R.string.show_dev_countdown), Toast.LENGTH_SHORT); mDevHitToast.show(); } diff --git a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java index 86d08cb674d..65ee5e063d9 100644 --- a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java +++ b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java @@ -24,6 +24,7 @@ import com.android.settings.applications.ApplicationFeatureProvider; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.utils.StringUtil; public abstract class AdminGrantedPermissionsPreferenceControllerBase extends AbstractPreferenceController implements PreferenceControllerMixin { @@ -51,9 +52,8 @@ public abstract class AdminGrantedPermissionsPreferenceControllerBase if (num == 0) { mHasApps = false; } else { - preference.setSummary(mContext.getResources().getQuantityString( - R.plurals.enterprise_privacy_number_packages_lower_bound, - num, num)); + preference.setSummary(StringUtil.getIcuPluralsString(mContext, num, + R.string.enterprise_privacy_number_packages_lower_bound)); mHasApps = true; } preference.setVisible(mHasApps); diff --git a/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java b/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java index c7dde5cc462..936df255ea6 100644 --- a/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java +++ b/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java @@ -22,6 +22,7 @@ import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.utils.StringUtil; public abstract class CaCertsPreferenceControllerBase extends AbstractPreferenceController implements PreferenceControllerMixin { @@ -36,9 +37,8 @@ public abstract class CaCertsPreferenceControllerBase @Override public void updateState(Preference preference) { - final int certs = getNumberOfCaCerts(); - preference.setSummary(mContext.getResources().getQuantityString( - R.plurals.enterprise_privacy_number_ca_certs, certs, certs)); + preference.setSummary(StringUtil.getIcuPluralsString(mContext, getNumberOfCaCerts(), + R.string.enterprise_privacy_number_ca_certs)); } @Override diff --git a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java index 9bd4279db3f..91ebeff7523 100644 --- a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java +++ b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java @@ -22,6 +22,7 @@ import com.android.settings.applications.ApplicationFeatureProvider; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.utils.StringUtil; public class EnterpriseInstalledPackagesPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin { @@ -47,9 +48,8 @@ public class EnterpriseInstalledPackagesPreferenceController available = false; } else { available = true; - preference.setSummary(mContext.getResources().getQuantityString( - R.plurals.enterprise_privacy_number_packages_lower_bound, num, - num)); + preference.setSummary(StringUtil.getIcuPluralsString(mContext, num, + R.string.enterprise_privacy_number_packages_lower_bound)); } preference.setVisible(available); diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java index 3c090ed73d6..3e83523842d 100644 --- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java +++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java @@ -40,6 +40,7 @@ import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import com.android.settings.users.UserFeatureProvider; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.utils.StringUtil; import com.android.settingslib.utils.ThreadUtils; import java.util.ArrayList; @@ -192,16 +193,16 @@ public class EnterpriseSetDefaultAppsListPreferenceController extends case CONTACTS: return context.getString(R.string.default_contacts_app_title); case PHONE: - return context.getResources() - .getQuantityString(R.plurals.default_phone_app_title, appCount); + return StringUtil.getIcuPluralsString(context, appCount, + R.string.default_phone_app_title); case MAP: return context.getString(R.string.default_map_app_title); case EMAIL: - return context.getResources() - .getQuantityString(R.plurals.default_email_app_title, appCount); + return StringUtil.getIcuPluralsString(context, appCount, + R.string.default_email_app_title); case CAMERA: - return context.getResources() - .getQuantityString(R.plurals.default_camera_app_title, appCount); + return StringUtil.getIcuPluralsString(context, appCount, + R.string.default_camera_app_title); default: throw new IllegalStateException("Unknown type of default " + typeOfDefault); } diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java index b2f9459d8a3..32abcc461de 100644 --- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java +++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java @@ -26,6 +26,7 @@ import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import com.android.settings.users.UserFeatureProvider; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.utils.StringUtil; public class EnterpriseSetDefaultAppsPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin { @@ -44,8 +45,8 @@ public class EnterpriseSetDefaultAppsPreferenceController @Override public void updateState(Preference preference) { final int num = getNumberOfEnterpriseSetDefaultApps(); - preference.setSummary(mContext.getResources().getQuantityString( - R.plurals.enterprise_privacy_number_packages, num, num)); + preference.setSummary(StringUtil.getIcuPluralsString(mContext, num, + R.string.enterprise_privacy_number_packages)); } @Override diff --git a/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java b/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java index 322589ea3f9..f008b189965 100644 --- a/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java +++ b/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java @@ -22,6 +22,7 @@ import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.AbstractPreferenceController; +import com.android.settingslib.utils.StringUtil; public abstract class FailedPasswordWipePreferenceControllerBase extends AbstractPreferenceController implements PreferenceControllerMixin { @@ -39,9 +40,8 @@ public abstract class FailedPasswordWipePreferenceControllerBase @Override public void updateState(Preference preference) { final int failedPasswordsBeforeWipe = getMaximumFailedPasswordsBeforeWipe(); - preference.setSummary(mContext.getResources().getQuantityString( - R.plurals.enterprise_privacy_number_failed_password_wipe, - failedPasswordsBeforeWipe, failedPasswordsBeforeWipe)); + preference.setSummary(StringUtil.getIcuPluralsString(mContext, failedPasswordsBeforeWipe, + R.string.enterprise_privacy_number_failed_password_wipe)); } @Override diff --git a/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java b/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java index 71bd3d1f358..90a1a1e8c9b 100644 --- a/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java +++ b/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java @@ -21,6 +21,7 @@ import android.content.Context; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.utils.StringUtil; public class ManageDeviceAdminPreferenceController extends BasePreferenceController { @@ -47,8 +48,8 @@ public class ManageDeviceAdminPreferenceController extends BasePreferenceControl } // TODO: override - return mContext.getResources().getQuantityString(R.plurals.number_of_device_admins, - activeAdmins, activeAdmins); + return StringUtil.getIcuPluralsString(mContext, activeAdmins, + R.string.number_of_device_admins); } @Override diff --git a/src/com/android/settings/localepicker/LocaleListEditor.java b/src/com/android/settings/localepicker/LocaleListEditor.java index 5947a879eac..1d6fb47d76a 100644 --- a/src/com/android/settings/localepicker/LocaleListEditor.java +++ b/src/com/android/settings/localepicker/LocaleListEditor.java @@ -46,6 +46,7 @@ import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexableRaw; +import com.android.settingslib.utils.StringUtil; import java.util.ArrayList; import java.util.List; @@ -218,8 +219,8 @@ public class LocaleListEditor extends RestrictedSettingsFragment { return; } - final String title = getResources().getQuantityString(R.plurals.dlg_remove_locales_title, - checkedCount); + final String title = StringUtil.getIcuPluralsString(getContext(), checkedCount, + R.string.dlg_remove_locales_title); mShowingRemoveDialog = true; final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); diff --git a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java index 90b37978fdd..37bbd08fb18 100644 --- a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java +++ b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java @@ -16,9 +16,12 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.utils.StringUtil; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; public class AppLocationPermissionPreferenceController extends @@ -56,9 +59,11 @@ public class AppLocationPermissionPreferenceController extends if (mNumTotal == -1 || mNumHasLocation == -1) { return mContext.getString(R.string.location_settings_loading_app_permission_stats); } - return mContext.getResources().getQuantityString( - R.plurals.location_app_permission_summary_location_on, mNumHasLocation, - mNumHasLocation, mNumTotal); + Map arguments = new HashMap<>(); + arguments.put("count", mNumHasLocation); + arguments.put("total", mNumTotal); + return StringUtil.getIcuPluralsString(mContext, arguments, + R.string.location_app_permission_summary_location_on); } else { return mContext.getString(R.string.location_app_permission_summary_location_off); } diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java index 7b7cdca37d1..a2ade4740a1 100644 --- a/src/com/android/settings/network/NetworkProviderSettings.java +++ b/src/com/android/settings/network/NetworkProviderSettings.java @@ -85,6 +85,7 @@ import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexable; +import com.android.settingslib.utils.StringUtil; import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.LayoutPreference; @@ -1130,22 +1131,21 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment private String getSavedNetworkSettingsSummaryText( int numSavedNetworks, int numSavedSubscriptions) { - if (getResources() == null) { + if (getContext() == null) { Log.w(TAG, "getSavedNetworkSettingsSummaryText shouldn't run if resource is not ready"); return null; } if (numSavedSubscriptions == 0) { - return getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary, - numSavedNetworks, numSavedNetworks); + return StringUtil.getIcuPluralsString(getContext(), numSavedNetworks, + R.string.wifi_saved_access_points_summary); } else if (numSavedNetworks == 0) { - return getResources().getQuantityString( - R.plurals.wifi_saved_passpoint_access_points_summary, - numSavedSubscriptions, numSavedSubscriptions); + return StringUtil.getIcuPluralsString(getContext(), numSavedSubscriptions, + R.string.wifi_saved_passpoint_access_points_summary); } else { final int numTotalEntries = numSavedNetworks + numSavedSubscriptions; - return getResources().getQuantityString(R.plurals.wifi_saved_all_access_points_summary, - numTotalEntries, numTotalEntries); + return StringUtil.getIcuPluralsString(getContext(), numTotalEntries, + R.string.wifi_saved_all_access_points_summary); } } diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java index 648b64430fe..0c05039deeb 100644 --- a/src/com/android/settings/password/ChooseLockPassword.java +++ b/src/com/android/settings/password/ChooseLockPassword.java @@ -780,46 +780,38 @@ public class ChooseLockPassword extends SettingsActivity { messages.add(getString(R.string.lockpassword_illegal_character)); break; case NOT_ENOUGH_UPPER_CASE: - messages.add(getResources().getQuantityString( - R.plurals.lockpassword_password_requires_uppercase, - error.requirement, error.requirement)); + messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement, + R.string.lockpassword_password_requires_uppercase)); break; case NOT_ENOUGH_LOWER_CASE: - messages.add(getResources().getQuantityString( - R.plurals.lockpassword_password_requires_lowercase, - error.requirement, error.requirement)); + messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement, + R.string.lockpassword_password_requires_lowercase)); break; case NOT_ENOUGH_LETTERS: - messages.add(getResources().getQuantityString( - R.plurals.lockpassword_password_requires_letters, - error.requirement, error.requirement)); + messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement, + R.string.lockpassword_password_requires_letters)); break; case NOT_ENOUGH_DIGITS: - messages.add(getResources().getQuantityString( - R.plurals.lockpassword_password_requires_numeric, - error.requirement, error.requirement)); + messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement, + R.string.lockpassword_password_requires_numeric)); break; case NOT_ENOUGH_SYMBOLS: - messages.add(getResources().getQuantityString( - R.plurals.lockpassword_password_requires_symbols, - error.requirement, error.requirement)); + messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement, + R.string.lockpassword_password_requires_symbols)); break; case NOT_ENOUGH_NON_LETTER: - messages.add(getResources().getQuantityString( - R.plurals.lockpassword_password_requires_nonletter, - error.requirement, error.requirement)); + messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement, + R.string.lockpassword_password_requires_nonletter)); break; case NOT_ENOUGH_NON_DIGITS: - messages.add(getResources().getQuantityString( - R.plurals.lockpassword_password_requires_nonnumerical, - error.requirement, error.requirement)); + messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement, + R.string.lockpassword_password_requires_nonnumerical)); break; case TOO_SHORT: - messages.add(getResources().getQuantityString( + messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement, mIsAlphaMode - ? R.plurals.lockpassword_password_too_short - : R.plurals.lockpassword_pin_too_short, - error.requirement, error.requirement)); + ? R.string.lockpassword_password_too_short + : R.string.lockpassword_pin_too_short)); break; case TOO_SHORT_WHEN_ALL_NUMERIC: messages.add( @@ -827,11 +819,10 @@ public class ChooseLockPassword extends SettingsActivity { R.string.lockpassword_password_too_short_all_numeric)); break; case TOO_LONG: - messages.add(getResources().getQuantityString( - mIsAlphaMode - ? R.plurals.lockpassword_password_too_long - : R.plurals.lockpassword_pin_too_long, - error.requirement + 1, error.requirement + 1)); + messages.add(StringUtil.getIcuPluralsString(getContext(), + error.requirement + 1, mIsAlphaMode + ? R.string.lockpassword_password_too_long + : R.string.lockpassword_pin_too_long)); break; case CONTAINS_SEQUENCE: messages.add(getString(R.string.lockpassword_pin_no_sequential_digits)); diff --git a/src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java b/src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java index a36d3ce467f..a78ccee26e7 100644 --- a/src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java +++ b/src/com/android/settings/privacy/AccessibilityUsagePreferenceController.java @@ -25,6 +25,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; +import com.android.settingslib.utils.StringUtil; import java.util.List; @@ -60,7 +61,7 @@ public class AccessibilityUsagePreferenceController extends BasePreferenceContro @Override public CharSequence getSummary() { - return mContext.getResources().getQuantityString(R.plurals.accessibility_usage_summary, - mEnabledServiceInfos.size(), mEnabledServiceInfos.size()); + return StringUtil.getIcuPluralsString(mContext, mEnabledServiceInfos.size(), + R.string.accessibility_usage_summary); } } diff --git a/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java b/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java index 9cc50f4c816..8943878c290 100644 --- a/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java +++ b/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java @@ -26,6 +26,7 @@ import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settings.security.SecurityFeatureProvider; +import com.android.settingslib.utils.StringUtil; public class ManageTrustAgentsPreferenceController extends BasePreferenceController { @@ -56,9 +57,8 @@ public class ManageTrustAgentsPreferenceController extends BasePreferenceControl preference.setSummary(R.string.disabled_because_no_backup_security); } else if (numberOfTrustAgent > 0) { preference.setEnabled(true); - preference.setSummary(mContext.getResources().getQuantityString( - R.plurals.manage_trust_agents_summary_on, - numberOfTrustAgent, numberOfTrustAgent)); + preference.setSummary(StringUtil.getIcuPluralsString(mContext, numberOfTrustAgent, + R.string.manage_trust_agents_summary_on)); } else { preference.setEnabled(true); preference.setSummary(R.string.manage_trust_agents_summary); diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index fbed5d2eed3..2a166645f18 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -75,6 +75,7 @@ import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexable; +import com.android.settingslib.utils.StringUtil; import com.android.settingslib.wifi.WifiSavedConfigUtils; import com.android.wifitrackerlib.WifiEntry; import com.android.wifitrackerlib.WifiEntry.ConnectCallback; @@ -915,17 +916,19 @@ public class WifiSettings extends RestrictedSettingsFragment private String getSavedNetworkSettingsSummaryText( int numSavedNetworks, int numSavedSubscriptions) { + if (getContext() == null) { + return ""; + } if (numSavedSubscriptions == 0) { - return getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary, - numSavedNetworks, numSavedNetworks); + return StringUtil.getIcuPluralsString(getContext(), numSavedNetworks, + R.string.wifi_saved_access_points_summary); } else if (numSavedNetworks == 0) { - return getResources().getQuantityString( - R.plurals.wifi_saved_passpoint_access_points_summary, - numSavedSubscriptions, numSavedSubscriptions); + return StringUtil.getIcuPluralsString(getContext(), numSavedSubscriptions, + R.string.wifi_saved_passpoint_access_points_summary); } else { final int numTotalEntries = numSavedNetworks + numSavedSubscriptions; - return getResources().getQuantityString(R.plurals.wifi_saved_all_access_points_summary, - numTotalEntries, numTotalEntries); + return StringUtil.getIcuPluralsString(getContext(), numTotalEntries, + R.string.wifi_saved_all_access_points_summary); } } diff --git a/tests/robotests/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerTestBase.java b/tests/robotests/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerTestBase.java index 06e41073716..77f5d133216 100644 --- a/tests/robotests/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerTestBase.java +++ b/tests/robotests/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerTestBase.java @@ -33,6 +33,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.applications.ApplicationFeatureProvider; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -80,6 +81,8 @@ public abstract class AdminGrantedPermissionsPreferenceControllerTestBase { }).when(mFeatureFactory.applicationFeatureProvider) .calculateNumberOfAppsWithAdminGrantedPermissions(eq(mPermissions), eq(async), any()); + when(mContext.getResources().getString(R.string.enterprise_privacy_number_packages_lower_bound)) + .thenReturn("Minimum # apps"); } @Test @@ -92,8 +95,8 @@ public abstract class AdminGrantedPermissionsPreferenceControllerTestBase { assertThat(preference.isVisible()).isFalse(); setNumberOfPackagesWithAdminGrantedPermissions(20, true /* async */); - when(mContext.getResources().getQuantityString( - R.plurals.enterprise_privacy_number_packages_lower_bound, 20, 20)) + when(StringUtil.getIcuPluralsString(mContext, 20, + R.string.enterprise_privacy_number_packages_lower_bound)) .thenReturn("minimum 20 apps"); mController.updateState(preference); assertThat(preference.getSummary()).isEqualTo("minimum 20 apps"); diff --git a/tests/robotests/src/com/android/settings/enterprise/CaCertsPreferenceControllerTestBase.java b/tests/robotests/src/com/android/settings/enterprise/CaCertsPreferenceControllerTestBase.java index e26915b1083..96bfff48cbb 100644 --- a/tests/robotests/src/com/android/settings/enterprise/CaCertsPreferenceControllerTestBase.java +++ b/tests/robotests/src/com/android/settings/enterprise/CaCertsPreferenceControllerTestBase.java @@ -18,6 +18,8 @@ package com.android.settings.enterprise; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -29,6 +31,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -59,8 +62,10 @@ public abstract class CaCertsPreferenceControllerTestBase { public void testUpdateState() { final Preference preference = new Preference(mContext, null, 0, 0); - when(mContext.getResources().getQuantityString(R.plurals.enterprise_privacy_number_ca_certs, - 10, 10)).thenReturn("10 certs"); + when(mContext.getResources().getString(R.string.enterprise_privacy_number_ca_certs)) + .thenReturn("# certs"); + when(StringUtil.getIcuPluralsString(mContext, 10, + R.string.enterprise_privacy_number_ca_certs)).thenReturn("10 certs"); mockGetNumberOfCaCerts(10); mController.updateState(preference); assertThat(preference.getSummary()).isEqualTo("10 certs"); diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceControllerTest.java index c32d2d79256..c823c1d37ca 100644 --- a/tests/robotests/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceControllerTest.java @@ -33,6 +33,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.applications.ApplicationFeatureProvider; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -75,6 +76,8 @@ public class EnterpriseInstalledPackagesPreferenceControllerTest { } }).when(mFeatureFactory.applicationFeatureProvider) .calculateNumberOfPolicyInstalledApps(eq(async), any()); + when(mContext.getResources().getString(R.string.enterprise_privacy_number_packages_lower_bound)) + .thenReturn("Minimum # apps"); } @Test @@ -87,8 +90,8 @@ public class EnterpriseInstalledPackagesPreferenceControllerTest { assertThat(preference.isVisible()).isFalse(); setNumberOfEnterpriseInstalledPackages(20, true /* async */); - when(mContext.getResources().getQuantityString( - R.plurals.enterprise_privacy_number_packages_lower_bound, 20, 20)) + when(StringUtil.getIcuPluralsString(mContext, 20, + R.string.enterprise_privacy_number_packages_lower_bound)) .thenReturn("minimum 20 apps"); mController.updateState(preference); assertThat(preference.getSummary()).isEqualTo("minimum 20 apps"); diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java index 7a2aa5cf962..b1e2c0c6541 100644 --- a/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java @@ -93,7 +93,7 @@ public class EnterpriseSetDefaultAppsListPreferenceControllerTest { when(mContext.getString(R.string.default_browser_title)).thenReturn(BROWSER_TITLE); Resources resources = spy(mContext.getResources()); when(mContext.getResources()).thenReturn(resources); - when(resources.getQuantityString(R.plurals.default_phone_app_title, 2)) + when(resources.getString(R.string.default_phone_app_title)) .thenReturn(PHONE_TITLE); when(mContext.getString(R.string.app_names_concatenation_template_2)) .thenReturn("%1$s, %2$s"); diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceControllerTest.java index 7a38feb97fe..02d1f643a1f 100644 --- a/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceControllerTest.java @@ -39,6 +39,7 @@ import com.android.settings.R; import com.android.settings.applications.EnterpriseDefaultApps; import com.android.settings.applications.UserAppInfo; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -101,8 +102,10 @@ public final class EnterpriseSetDefaultAppsPreferenceControllerTest { setEnterpriseSetDefaultApps(EnterpriseDefaultApps.CALENDAR.getIntents(), 16); setEnterpriseSetDefaultApps(EnterpriseDefaultApps.CONTACTS.getIntents(), 32); setEnterpriseSetDefaultApps(EnterpriseDefaultApps.PHONE.getIntents(), 64); - when(mContext.getResources().getQuantityString(R.plurals.enterprise_privacy_number_packages, - 127, 127)).thenReturn("127 apps"); + when(mContext.getResources().getString(R.string.enterprise_privacy_number_packages)) + .thenReturn("# apps"); + when(StringUtil.getIcuPluralsString(mContext, 127, + R.string.enterprise_privacy_number_packages)).thenReturn("127 apps"); // As setEnterpriseSetDefaultApps uses fake Users, we need to list them via UserManager. configureUsers(64); diff --git a/tests/robotests/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerTestBase.java b/tests/robotests/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerTestBase.java index 03854bffad0..b82919eecef 100644 --- a/tests/robotests/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerTestBase.java +++ b/tests/robotests/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerTestBase.java @@ -29,6 +29,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -68,8 +69,10 @@ public abstract class FailedPasswordWipePreferenceControllerTestBase { final Preference preference = new Preference(mContext, null, 0, 0); setMaximumFailedPasswordsBeforeWipe(10); - when(mContext.getResources().getQuantityString( - R.plurals.enterprise_privacy_number_failed_password_wipe, 10, 10)) + when(mContext.getResources().getString( + R.string.enterprise_privacy_number_failed_password_wipe)).thenReturn("# attempts"); + when(StringUtil.getIcuPluralsString(mContext, 10, + R.string.enterprise_privacy_number_failed_password_wipe)) .thenReturn("10 attempts"); mController.updateState(preference); assertThat(preference.getSummary()).isEqualTo("10 attempts"); diff --git a/tests/robotests/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceControllerTest.java index 492a8639c7c..a2a0de45657 100644 --- a/tests/robotests/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceControllerTest.java @@ -28,6 +28,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -70,7 +71,8 @@ public class ManageDeviceAdminPreferenceControllerTest { when(mFeatureFactory.enterprisePrivacyFeatureProvider .getNumberOfActiveDeviceAdminsForCurrentUserAndManagedProfile()).thenReturn(5); - when(mResources.getQuantityString(R.plurals.number_of_device_admins, 5, 5)) + when(mResources.getString(R.string.number_of_device_admins)).thenReturn("# active apps"); + when(StringUtil.getIcuPluralsString(mContext, 5, R.string.number_of_device_admins)) .thenReturn("5 active apps"); mController.updateState(preference); assertThat(preference.getSummary()).isEqualTo("5 active apps"); diff --git a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java index 4303489682b..df9dc27e216 100644 --- a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java @@ -13,6 +13,7 @@ import androidx.lifecycle.LifecycleOwner; import com.android.settings.R; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -22,6 +23,9 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import java.util.HashMap; +import java.util.Map; + @RunWith(RobolectricTestRunner.class) public class AppLocationPermissionPreferenceControllerTest { @@ -86,8 +90,11 @@ public class AppLocationPermissionPreferenceControllerTest { mController.mNumHasLocation = 1; mController.mNumTotal = 1; - assertThat(mController.getSummary()).isEqualTo(mContext.getResources().getQuantityString( - R.plurals.location_app_permission_summary_location_on, 1, 1, 1)); + Map arguments = new HashMap<>(); + arguments.put("count", 1); + arguments.put("total", 1); + assertThat(mController.getSummary()).isEqualTo(StringUtil.getIcuPluralsString(mContext, + arguments, R.string.location_app_permission_summary_location_on)); } @Test @@ -96,7 +103,10 @@ public class AppLocationPermissionPreferenceControllerTest { mController.mNumHasLocation = 5; mController.mNumTotal = 10; - assertThat(mController.getSummary()).isEqualTo(mContext.getResources().getQuantityString( - R.plurals.location_app_permission_summary_location_on, 5, 5, 10)); + Map arguments = new HashMap<>(); + arguments.put("count", 5); + arguments.put("total", 10); + assertThat(mController.getSummary()).isEqualTo(StringUtil.getIcuPluralsString(mContext, + arguments, R.string.location_app_permission_summary_location_on)); } } diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java index 5573ca3dcb6..cd75bef79b2 100644 --- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java +++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java @@ -75,6 +75,7 @@ import com.android.settings.wifi.ConnectedWifiEntryPreference; import com.android.settings.wifi.LongPressWifiEntryPreference; import com.android.settings.wifi.WifiConfigController2; import com.android.settings.wifi.WifiDialog2; +import com.android.settingslib.utils.StringUtil; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.LayoutPreference; import com.android.wifitrackerlib.WifiEntry; @@ -206,9 +207,8 @@ public class NetworkProviderSettingsTest { assertThat(mNetworkProviderSettings.mSavedNetworksPreference.isVisible()).isTrue(); assertThat(mNetworkProviderSettings.mSavedNetworksPreference.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.wifi_saved_access_points_summary, - NUM_NETWORKS, NUM_NETWORKS)); + StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS, + R.string.wifi_saved_access_points_summary)); } @Test @@ -220,9 +220,8 @@ public class NetworkProviderSettingsTest { assertThat(mNetworkProviderSettings.mSavedNetworksPreference.isVisible()).isTrue(); assertThat(mNetworkProviderSettings.mSavedNetworksPreference.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.wifi_saved_passpoint_access_points_summary, - NUM_NETWORKS, NUM_NETWORKS)); + StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS, + R.string.wifi_saved_passpoint_access_points_summary)); } @Test @@ -234,9 +233,8 @@ public class NetworkProviderSettingsTest { assertThat(mNetworkProviderSettings.mSavedNetworksPreference.isVisible()).isTrue(); assertThat(mNetworkProviderSettings.mSavedNetworksPreference.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.wifi_saved_all_access_points_summary, - NUM_NETWORKS * 2, NUM_NETWORKS * 2)); + StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS * 2, + R.string.wifi_saved_all_access_points_summary)); } @Test diff --git a/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java index dde2f5d17ea..33a62f40a9c 100644 --- a/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java @@ -29,6 +29,7 @@ import com.android.internal.widget.LockPatternUtils; import com.android.settings.R; import com.android.settings.security.trustagent.TrustAgentManager.TrustAgentComponentInfo; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -114,8 +115,8 @@ public class ManageTrustAgentsPreferenceControllerTest { assertThat(mPreference.isEnabled()).isTrue(); assertThat(mPreference.getSummary()) - .isEqualTo(mContext.getResources().getQuantityString( - R.plurals.manage_trust_agents_summary_on, 1, 1)); + .isEqualTo(StringUtil.getIcuPluralsString(mContext, 1, + R.string.manage_trust_agents_summary_on)); } @Test diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java index b7c7270b908..17d8099aa16 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java @@ -56,6 +56,7 @@ import com.android.settings.R; import com.android.settings.datausage.DataUsagePreference; import com.android.settings.testutils.shadow.ShadowDataUsageUtils; import com.android.settings.testutils.shadow.ShadowFragment; +import com.android.settingslib.utils.StringUtil; import com.android.wifitrackerlib.WifiEntry; import com.android.wifitrackerlib.WifiPickerTracker; @@ -130,9 +131,8 @@ public class WifiSettingsTest { assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue(); assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.wifi_saved_access_points_summary, - NUM_NETWORKS, NUM_NETWORKS)); + StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS, + R.string.wifi_saved_access_points_summary)); } @Test @@ -144,9 +144,8 @@ public class WifiSettingsTest { assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue(); assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.wifi_saved_passpoint_access_points_summary, - NUM_NETWORKS, NUM_NETWORKS)); + StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS, + R.string.wifi_saved_passpoint_access_points_summary)); } @Test @@ -158,9 +157,8 @@ public class WifiSettingsTest { assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue(); assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.wifi_saved_all_access_points_summary, - NUM_NETWORKS*2, NUM_NETWORKS*2)); + StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS * 2, + R.string.wifi_saved_all_access_points_summary)); } @Test