From 1637a3a10a1a18b0148ff7b2103c317049421557 Mon Sep 17 00:00:00 2001 From: xinghailu Date: Tue, 27 Dec 2022 12:12:11 +0800 Subject: [PATCH] Cleanup plurals format Change to <1> in string res file Test: Update, existing tests still pass bug: 199230342 Change-Id: Ic3a5259570cb52cd1664638f3b1058c87a631c04 --- res/values/strings.xml | 193 +++++++++--------- .../settings/MonitoringCertInfoActivity.java | 12 +- .../AutoclickPreferenceController.java | 8 +- .../accessibility/AutoclickUtils.java | 18 +- ...oggleAutoclickCustomSeekbarController.java | 4 +- .../AppStateNotificationBridge.java | 8 +- .../InteractAcrossProfilesController.java | 7 +- .../CombinedBiometricStatusUtils.java | 6 +- .../fingerprint/FingerprintStatusUtils.java | 6 +- .../RestrictAppPreferenceController.java | 6 +- .../BatteryManagerPreferenceController.java | 5 +- .../batterytip/BatteryTipDialogFragment.java | 5 +- .../batterytip/tips/RestrictAppTip.java | 23 ++- .../TopLevelLocationPreferenceController.java | 5 +- ...sationListSummaryPreferenceController.java | 6 +- .../notification/NotificationBackend.java | 8 +- .../DeletedChannelsPreferenceController.java | 5 +- .../history/NotificationHistoryActivity.java | 10 +- .../PrintSettingPreferenceController.java | 10 +- .../CredentialManagementAppAdapter.java | 5 +- .../notification/AppNotificationRepository.kt | 10 +- .../AutoclickPreferenceControllerTest.java | 4 +- .../accessibility/AutoclickUtilsTest.java | 4 +- ...erprintStatusPreferenceControllerTest.java | 5 +- .../batterytip/tips/RestrictAppTipTest.java | 9 +- ...LevelLocationPreferenceControllerTest.java | 16 +- ...PrintSettingsPreferenceControllerTest.java | 9 +- .../CombinedBiometricStatusUtilsTest.java | 15 +- .../FingerprintStatusUtilsTest.java | 8 +- .../BiometricsSafetySourceTest.java | 15 +- 30 files changed, 235 insertions(+), 210 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 0c8ca314a79..c073718d73b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -492,10 +492,10 @@ Use location - - On - %1$d app has access to location - On - %1$d apps have access to location - + {count, plural, + =1 {On - # app has access to location} + other {On - # apps have access to location} + } Loading\u2026 @@ -677,10 +677,10 @@ Add fingerprint - - Fingerprint added - %1$d fingerprints added - + {count, plural, + =1 {Fingerprint added} + other {# fingerprints added} + } @@ -4453,27 +4453,26 @@ Keep on after device restarts - - Short (%1$s second) - Short (%1$s seconds) - + {count, plural, + =1 {Short ({time} second)} + other {Short ({time} seconds)} + } - - Medium (%1$s second) - Medium (%1$s seconds) - + {count, plural, + =1 {Medium ({time} second)} + other {Medium ({time} seconds)} + } - - Long (%1$s second) - Long (%1$s seconds) - + {count, plural, + =1 {Long ({time} second)} + other {Long ({time} seconds)} + } - - %1$s second - %1$s seconds - %1$s seconds - + {count, plural, + =1 {{time} second} + other {{time} seconds} + } Settings @@ -4672,16 +4671,16 @@ Printing - - 1 print service on - %1$d print services on - + {count, plural, + =1 {1 print service on} + other {# print services on} + } - - 1 print job - %1$d print jobs - + {count, plural, + =1 {1 print job} + other {# print jobs} + } Print services @@ -4878,31 +4877,31 @@ Includes high-power background activity - - Restrict %1$d app - Restrict %1$d apps - + {count, plural, + =1 {Restrict # app} + other {Restrict # apps} + } - - %1$s recently restricted - %2$d apps recently restricted - + {count, plural, + =1 {{label} recently restricted} + other {# apps recently restricted} + } - - %1$s has high background battery usage - %2$d apps have high background battery usage - + {count, plural, + =1 {{label} has high background battery usage} + other {# apps have high background battery usage} + } - - This app can\'t run in the background - These apps can\'t run in the background - + {count, plural, + =1 {This app can\'t run in the background} + other {These apps can\'t run in the background} + } - - Restrict app? - Restrict %1$d apps? - + {count, plural, + =1 {Restrict app?} + other {Restrict # apps?} + } To save battery, stop %1$s from using battery in the background. This app may not work properly and notifications may be delayed. @@ -4931,10 +4930,10 @@ Restricted apps - - Limiting battery usage for %1$d app - Limiting battery usage for %1$d apps - + {count, plural, + =1 {Limiting battery usage for # app} + other {Limiting battery usage for # apps} + } Restricted %1$s @@ -4953,10 +4952,10 @@ Detecting when apps drain battery - - %1$d app restricted - %1$d apps restricted - + {count, plural, + =1 {# app restricted} + other {# apps restricted} + } ^1 % @@ -5406,10 +5405,10 @@ This app won\u2019t manage certificates, but it will stay on your device. Any certificates installed by the app will be uninstalled. - - %d URL - %d URLs - + {count, plural, + =1 {# URL} + other {# URLs} + } Emergency dialing signal @@ -5510,10 +5509,10 @@ Recently dismissed - - %d notification - %d notifications - + {count, plural, + =1 {# notification} + other {# notifications} + } @@ -5954,10 +5953,10 @@ Done - - Trust or remove certificate - Trust or remove certificates - + {count, plural, + =1 {Trust or remove certificate} + other {Trust or remove certificates} + } {numberOfCertificates, plural, =1 {{orgName} has installed a certificate authority on your device, which may allow them to monitor your device network activity, including emails, apps, and secure websites.\n\nFor more information about this certificate, contact your admin.} @@ -5971,10 +5970,10 @@ A third party is capable of monitoring your network activity, including emails, apps, and secure websites.\n\nA trusted credential installed on your device is making this possible. - - Check certificate - Check certificates - + {count, plural, + =1 {Check certificate} + other {Check certificates} + } Multiple users @@ -7430,10 +7429,10 @@ No priority conversations - - %d priority conversation - %d priority conversations - + {count, plural, + =1 {# priority conversation} + other {# priority conversations} + } Priority conversations @@ -7526,14 +7525,14 @@ All %1$s notifications - - About %d notification per day - About %,d notifications per day - - - About %d notification per week - About %,d notifications per week - + {count, plural, + =1 {About # notification per day} + other {About # notifications per day} + } + {count, plural, + =1 {About # notification per week} + other {About # notifications per week} + } Never @@ -7730,10 +7729,10 @@ No apps connected - - %d app connected - %d apps connected - + {count, plural, + =1 {# app connected} + other {# apps connected} + } - - %d category deleted - %d categories deleted - + {count, plural, + =1 {# category deleted} + other {# categories deleted} + } Block all diff --git a/src/com/android/settings/MonitoringCertInfoActivity.java b/src/com/android/settings/MonitoringCertInfoActivity.java index 5c15eb3a73b..4225d724fd8 100644 --- a/src/com/android/settings/MonitoringCertInfoActivity.java +++ b/src/com/android/settings/MonitoringCertInfoActivity.java @@ -33,6 +33,7 @@ import android.provider.Settings; import androidx.appcompat.app.AlertDialog; import com.android.settingslib.RestrictedLockUtils; +import com.android.settingslib.utils.StringUtil; import java.util.HashMap; import java.util.Locale; @@ -65,16 +66,17 @@ public class MonitoringCertInfoActivity extends Activity implements OnClickListe final int numberOfCertificates = getIntent().getIntExtra( Settings.EXTRA_NUMBER_OF_CERTIFICATES, 1); final int titleId = RestrictedLockUtils.getProfileOrDeviceOwner(this, user) != null - ? R.plurals.ssl_ca_cert_settings_button // Check certificate - : R.plurals.ssl_ca_cert_dialog_title; // Trust or remove certificate - final CharSequence title = getResources().getQuantityText(titleId, numberOfCertificates); + ? R.string.ssl_ca_cert_settings_button // Check certificate + : R.string.ssl_ca_cert_dialog_title; // Trust or remove certificate + final CharSequence title = StringUtil.getIcuPluralsString(this, numberOfCertificates, + titleId); setTitle(title); final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(title); builder.setCancelable(true); - builder.setPositiveButton(getResources().getQuantityText( - R.plurals.ssl_ca_cert_settings_button, numberOfCertificates) , this); + builder.setPositiveButton(StringUtil.getIcuPluralsString(this, numberOfCertificates, + R.string.ssl_ca_cert_settings_button) , this); builder.setNeutralButton(R.string.cancel, null); builder.setOnDismissListener(this); diff --git a/src/com/android/settings/accessibility/AutoclickPreferenceController.java b/src/com/android/settings/accessibility/AutoclickPreferenceController.java index b118718b34f..741035207a5 100644 --- a/src/com/android/settings/accessibility/AutoclickPreferenceController.java +++ b/src/com/android/settings/accessibility/AutoclickPreferenceController.java @@ -34,9 +34,9 @@ public class AutoclickPreferenceController extends BasePreferenceController { * placeholder for integer delay value. */ private static final int[] AUTOCLICK_PREFERENCE_SUMMARIES = { - R.plurals.accessibilty_autoclick_preference_subtitle_short_delay, - R.plurals.accessibilty_autoclick_preference_subtitle_medium_delay, - R.plurals.accessibilty_autoclick_preference_subtitle_long_delay + R.string.accessibilty_autoclick_preference_subtitle_short_delay, + R.string.accessibilty_autoclick_preference_subtitle_medium_delay, + R.string.accessibilty_autoclick_preference_subtitle_long_delay }; public AutoclickPreferenceController(Context context, String preferenceKey) { @@ -59,7 +59,7 @@ public class AutoclickPreferenceController extends BasePreferenceController { Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY, AccessibilityManager.AUTOCLICK_DELAY_DEFAULT); final int summaryIndex = getAutoclickPreferenceSummaryIndex(delayMillis); - return AutoclickUtils.getAutoclickDelaySummary(mContext.getResources(), + return AutoclickUtils.getAutoclickDelaySummary(mContext, AUTOCLICK_PREFERENCE_SUMMARIES[summaryIndex], delayMillis); } diff --git a/src/com/android/settings/accessibility/AutoclickUtils.java b/src/com/android/settings/accessibility/AutoclickUtils.java index cd7d662118f..89f2ceb57f9 100644 --- a/src/com/android/settings/accessibility/AutoclickUtils.java +++ b/src/com/android/settings/accessibility/AutoclickUtils.java @@ -20,9 +20,16 @@ import static java.lang.annotation.RetentionPolicy.SOURCE; import android.annotation.IntDef; import android.annotation.PluralsRes; +import android.annotation.StringRes; +import android.content.Context; import android.content.res.Resources; +import com.android.settings.R; +import com.android.settingslib.utils.StringUtil; + import java.lang.annotation.Retention; +import java.util.HashMap; +import java.util.Map; /** Provides utility methods related auto click. */ public final class AutoclickUtils { @@ -58,20 +65,23 @@ public final class AutoclickUtils { /** * Gets string that should be used for provided autoclick delay. * - * @param resources Resources from which string should be retrieved. + * @param context context from which string should be retrieved. * @param id The desired resource identifier, as generated by the aapt * tool. This integer encodes the package, type, and resource * entry. The value 0 is an invalid identifier. * @param delayMillis Delay for whose value summary should be retrieved. */ - public static CharSequence getAutoclickDelaySummary(Resources resources, - @PluralsRes int id, int delayMillis) { + public static CharSequence getAutoclickDelaySummary(Context context, + @StringRes int id, int delayMillis) { final int quantity = (delayMillis == 1000) ? Quantity.ONE : Quantity.FEW; final float delaySecond = (float) delayMillis / 1000; // Only show integer when delay time is 1. final String decimalFormat = (delaySecond == 1) ? "%.0f" : "%.1f"; - return resources.getQuantityString(id, quantity, String.format(decimalFormat, delaySecond)); + Map arguments = new HashMap<>(); + arguments.put("count", quantity); + arguments.put("time", String.format(decimalFormat, delaySecond)); + return StringUtil.getIcuPluralsString(context, arguments, id); } private AutoclickUtils(){} diff --git a/src/com/android/settings/accessibility/ToggleAutoclickCustomSeekbarController.java b/src/com/android/settings/accessibility/ToggleAutoclickCustomSeekbarController.java index 372c6f54303..6a04863fd4b 100644 --- a/src/com/android/settings/accessibility/ToggleAutoclickCustomSeekbarController.java +++ b/src/com/android/settings/accessibility/ToggleAutoclickCustomSeekbarController.java @@ -176,7 +176,7 @@ public class ToggleAutoclickCustomSeekbarController extends BasePreferenceContro } } private CharSequence delayTimeToString(int delayMillis) { - return AutoclickUtils.getAutoclickDelaySummary(mContext.getResources(), - R.plurals.accessibilty_autoclick_delay_unit_second, delayMillis); + return AutoclickUtils.getAutoclickDelaySummary(mContext, + R.string.accessibilty_autoclick_delay_unit_second, delayMillis); } } diff --git a/src/com/android/settings/applications/AppStateNotificationBridge.java b/src/com/android/settings/applications/AppStateNotificationBridge.java index 964eae42d4c..f0e447e17b4 100644 --- a/src/com/android/settings/applications/AppStateNotificationBridge.java +++ b/src/com/android/settings/applications/AppStateNotificationBridge.java @@ -110,11 +110,11 @@ public class AppStateNotificationBridge extends AppStateBaseBridge { context, System.currentTimeMillis() - state.lastSent, true); } else if (sortOrder == R.id.sort_order_frequent_notification) { if (state.avgSentDaily > 0) { - return context.getResources().getQuantityString( - R.plurals.notifications_sent_daily, state.avgSentDaily, state.avgSentDaily); + return StringUtil.getIcuPluralsString(context, state.avgSentDaily, + R.string.notifications_sent_daily); } - return context.getResources().getQuantityString(R.plurals.notifications_sent_weekly, - state.avgSentWeekly, state.avgSentWeekly); + return StringUtil.getIcuPluralsString(context, state.avgSentWeekly, + R.string.notifications_sent_weekly); } else { return ""; } diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesController.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesController.java index bc8542e551a..4d49a225ccc 100644 --- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesController.java +++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesController.java @@ -25,6 +25,7 @@ import android.os.UserManager; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; +import com.android.settingslib.utils.StringUtil; import java.util.List; @@ -66,9 +67,7 @@ public class InteractAcrossProfilesController extends BasePreferenceController { return connectedApps == 0 ? mContext.getResources().getString( R.string.interact_across_profiles_number_of_connected_apps_none) - : mContext.getResources().getQuantityString( - R.plurals.interact_across_profiles_number_of_connected_apps, - connectedApps, - connectedApps); + : StringUtil.getIcuPluralsString(mContext, connectedApps, + R.string.interact_across_profiles_number_of_connected_apps); } } diff --git a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java index f5ad76b2d9d..1ca4278d0b0 100644 --- a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java +++ b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java @@ -28,6 +28,7 @@ import com.android.settings.Settings; import com.android.settings.Utils; import com.android.settings.biometrics.ParentalControlsUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; +import com.android.settingslib.utils.StringUtil; /** * Utilities for combined biometric details shared between Security Settings and Safety Center. @@ -102,9 +103,8 @@ public class CombinedBiometricStatusUtils { } else if (faceEnrolled) { return mContext.getString(R.string.security_settings_face_preference_summary); } else if (numFingerprintsEnrolled > 0) { - return mContext.getResources().getQuantityString( - R.plurals.security_settings_fingerprint_preference_summary, - numFingerprintsEnrolled, numFingerprintsEnrolled); + return StringUtil.getIcuPluralsString(mContext, numFingerprintsEnrolled, + R.string.security_settings_fingerprint_preference_summary); } else { return mContext.getString( R.string.security_settings_biometric_preference_summary_none_enrolled); diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java index 32b83004c74..b82e8b615f6 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java @@ -28,6 +28,7 @@ import com.android.settings.Utils; import com.android.settings.biometrics.ParentalControlsUtils; import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; +import com.android.settingslib.utils.StringUtil; /** * Utilities for fingerprint details shared between Security Settings and Safety Center. @@ -69,9 +70,8 @@ public class FingerprintStatusUtils { public String getSummary() { if (hasEnrolled()) { final int numEnrolled = mFingerprintManager.getEnrolledFingerprints(mUserId).size(); - return mContext.getResources().getQuantityString( - R.plurals.security_settings_fingerprint_preference_summary, - numEnrolled, numEnrolled); + return StringUtil.getIcuPluralsString(mContext, numEnrolled, + R.string.security_settings_fingerprint_preference_summary); } else { return mContext.getString( R.string.security_settings_fingerprint_preference_summary_none); diff --git a/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java b/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java index b85db40d954..d43a488ad01 100644 --- a/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java +++ b/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java @@ -31,6 +31,7 @@ import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settings.fuelgauge.batterytip.BatteryTipUtils; import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.utils.StringUtil; import java.util.List; @@ -75,9 +76,8 @@ public class RestrictAppPreferenceController extends BasePreferenceController { final int num = mAppInfos.size(); // Fragment change RestrictedAppsList after onPause(), UI needs to be updated in onResume() preference.setVisible(num > 0); - preference.setSummary( - mContext.getResources().getQuantityString(R.plurals.restricted_app_summary, num, - num)); + preference.setSummary(StringUtil.getIcuPluralsString(mContext, num, + R.string.restricted_app_summary)); } @Override diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java index d508603c772..8b3ff63de15 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java @@ -27,6 +27,7 @@ import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.utils.StringUtil; /** * Preference controller to control the battery manager @@ -67,8 +68,8 @@ public class BatteryManagerPreferenceController extends BasePreferenceController @VisibleForTesting void updateSummary(Preference preference, int num) { if (num > 0) { - preference.setSummary(mContext.getResources().getQuantityString( - R.plurals.battery_manager_app_restricted, num, num)); + preference.setSummary(StringUtil.getIcuPluralsString(mContext, num, + R.string.battery_manager_app_restricted)); } else { preference.setSummary( mPowerUsageFeatureProvider.isAdaptiveChargingSupported() diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java index 5fd3905649f..3989e892818 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java @@ -42,6 +42,7 @@ import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.fuelgauge.batterytip.tips.HighUsageTip; import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip; import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip; +import com.android.settingslib.utils.StringUtil; import java.util.List; @@ -107,8 +108,8 @@ public class BatteryTipDialogFragment extends InstrumentedDialogFragment impleme restrictedAppList.get(0).packageName); final AlertDialog.Builder builder = new AlertDialog.Builder(context) - .setTitle(context.getResources().getQuantityString( - R.plurals.battery_tip_restrict_app_dialog_title, num, num)) + .setTitle(StringUtil.getIcuPluralsString(context, num, + R.string.battery_tip_restrict_app_dialog_title)) .setPositiveButton(R.string.battery_tip_restrict_app_dialog_ok, this) .setNegativeButton(android.R.string.cancel, null); if (num == 1) { diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java index c5f1171a8c7..6fb1c9a891f 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java @@ -28,9 +28,12 @@ import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.utils.StringUtil; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Tip to suggest user to restrict some bad apps @@ -62,12 +65,15 @@ public class RestrictAppTip extends BatteryTip { final int num = mRestrictAppList.size(); final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context, mRestrictAppList.get(0).packageName) : ""; - final Resources resources = context.getResources(); + Map arguments = new HashMap<>(); + arguments.put("count", num); + arguments.put("label", appLabel); return mState == StateType.HANDLED - ? resources.getQuantityString(R.plurals.battery_tip_restrict_handled_title, num, - appLabel, num) - : resources.getQuantityString(R.plurals.battery_tip_restrict_title, num, num); + ? StringUtil.getIcuPluralsString(context, arguments, + R.string.battery_tip_restrict_handled_title) + : StringUtil.getIcuPluralsString(context, arguments, + R.string.battery_tip_restrict_title); } @Override @@ -76,9 +82,12 @@ public class RestrictAppTip extends BatteryTip { final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context, mRestrictAppList.get(0).packageName) : ""; final int resId = mState == StateType.HANDLED - ? R.plurals.battery_tip_restrict_handled_summary - : R.plurals.battery_tip_restrict_summary; - return context.getResources().getQuantityString(resId, num, appLabel, num); + ? R.string.battery_tip_restrict_handled_summary + : R.string.battery_tip_restrict_summary; + Map arguments = new HashMap<>(); + arguments.put("count", num); + arguments.put("label", appLabel); + return StringUtil.getIcuPluralsString(context, arguments, resId); } @Override diff --git a/src/com/android/settings/location/TopLevelLocationPreferenceController.java b/src/com/android/settings/location/TopLevelLocationPreferenceController.java index 91100b7628d..464344e9ee4 100644 --- a/src/com/android/settings/location/TopLevelLocationPreferenceController.java +++ b/src/com/android/settings/location/TopLevelLocationPreferenceController.java @@ -21,6 +21,7 @@ import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; +import com.android.settingslib.utils.StringUtil; import java.util.Arrays; import java.util.List; @@ -63,8 +64,8 @@ public class TopLevelLocationPreferenceController extends BasePreferenceControll @VisibleForTesting void setLocationAppCount(int numApps) { - sSummary = mContext.getResources().getQuantityString( - R.plurals.location_settings_summary_location_on, numApps, numApps); + sSummary = StringUtil.getIcuPluralsString(mContext, numApps, + R.string.location_settings_summary_location_on); refreshSummary(mPreference); } diff --git a/src/com/android/settings/notification/ConversationListSummaryPreferenceController.java b/src/com/android/settings/notification/ConversationListSummaryPreferenceController.java index 5d7ea205d0e..176d7489ffd 100644 --- a/src/com/android/settings/notification/ConversationListSummaryPreferenceController.java +++ b/src/com/android/settings/notification/ConversationListSummaryPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; +import com.android.settingslib.utils.StringUtil; public class ConversationListSummaryPreferenceController extends BasePreferenceController { @@ -41,9 +42,8 @@ public class ConversationListSummaryPreferenceController extends BasePreferenceC if (count == 0) { return mContext.getText(R.string.priority_conversation_count_zero); } - return mContext.getResources().getQuantityString( - R.plurals.priority_conversation_count, - count, count); + return StringUtil.getIcuPluralsString(mContext, count, + R.string.priority_conversation_count); } void setBackend(NotificationBackend backend) { diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java index aa7d547a92c..c63a294ba74 100644 --- a/src/com/android/settings/notification/NotificationBackend.java +++ b/src/com/android/settings/notification/NotificationBackend.java @@ -509,11 +509,11 @@ public class NotificationBackend { context, System.currentTimeMillis() - state.lastSent, true); } else { if (state.avgSentDaily > 0) { - return context.getResources().getQuantityString(R.plurals.notifications_sent_daily, - state.avgSentDaily, state.avgSentDaily); + return StringUtil.getIcuPluralsString(context, state.avgSentDaily, + R.string.notifications_sent_daily); } - return context.getResources().getQuantityString(R.plurals.notifications_sent_weekly, - state.avgSentWeekly, state.avgSentWeekly); + return StringUtil.getIcuPluralsString(context, state.avgSentWeekly, + R.string.notifications_sent_weekly); } } diff --git a/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java b/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java index 77a692f1488..6a1d4cb1247 100644 --- a/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java +++ b/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java @@ -23,6 +23,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.notification.NotificationBackend; +import com.android.settingslib.utils.StringUtil; public class DeletedChannelsPreferenceController extends NotificationPreferenceController implements PreferenceControllerMixin { @@ -59,8 +60,8 @@ public class DeletedChannelsPreferenceController extends NotificationPreferenceC public void updateState(Preference preference) { if (mAppRow != null) { int deletedChannelCount = mBackend.getDeletedChannelCount(mAppRow.pkg, mAppRow.uid); - preference.setTitle(mContext.getResources().getQuantityString( - R.plurals.deleted_channels, deletedChannelCount, deletedChannelCount)); + preference.setTitle(StringUtil.getIcuPluralsString(mContext, deletedChannelCount, + R.string.deleted_channels)); } preference.setSelectable(false); } diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java index 1f83cc72896..021ba6fead8 100644 --- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java +++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java @@ -60,6 +60,7 @@ import com.android.internal.widget.NotificationExpandButton; import com.android.settings.R; import com.android.settings.notification.NotificationBackend; import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity; +import com.android.settingslib.utils.StringUtil; import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.widget.MainSwitchBar; import com.android.settingslib.widget.OnMainSwitchChangeListener; @@ -203,16 +204,15 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity { icon.setImageDrawable(nhp.icon); TextView count = viewForPackage.findViewById(R.id.count); - count.setText(getResources().getQuantityString(R.plurals.notification_history_count, - nhp.notifications.size(), nhp.notifications.size())); + count.setText(StringUtil.getIcuPluralsString(this, nhp.notifications.size(), + R.string.notification_history_count)); final NotificationHistoryRecyclerView rv = viewForPackage.findViewById(R.id.notification_list); rv.setAdapter(new NotificationHistoryAdapter(mNm, rv, newCount -> { - count.setText(getResources().getQuantityString( - R.plurals.notification_history_count, - newCount, newCount)); + count.setText(StringUtil.getIcuPluralsString(this, newCount, + R.string.notification_history_count)); if (newCount == 0) { viewForPackage.setVisibility(View.GONE); } diff --git a/src/com/android/settings/print/PrintSettingPreferenceController.java b/src/com/android/settings/print/PrintSettingPreferenceController.java index d4ae3116a0c..2a75e486447 100644 --- a/src/com/android/settings/print/PrintSettingPreferenceController.java +++ b/src/com/android/settings/print/PrintSettingPreferenceController.java @@ -34,6 +34,7 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; +import com.android.settingslib.utils.StringUtil; import java.util.List; @@ -110,17 +111,16 @@ public class PrintSettingPreferenceController extends BasePreferenceController i } if (numActivePrintJobs > 0) { - return mContext.getResources().getQuantityString( - R.plurals.print_jobs_summary, numActivePrintJobs, numActivePrintJobs); + return StringUtil.getIcuPluralsString(mContext, numActivePrintJobs, + R.string.print_jobs_summary); } else { final List services = mPrintManager.getPrintServices(PrintManager.ENABLED_SERVICES); if (services == null || services.isEmpty()) { return mContext.getText(R.string.off); } else { - final int count = services.size(); - return mContext.getResources().getQuantityString( - R.plurals.print_settings_summary, count, count); + return StringUtil.getIcuPluralsString(mContext, services.size(), + R.string.print_settings_summary); } } } diff --git a/src/com/android/settings/security/CredentialManagementAppAdapter.java b/src/com/android/settings/security/CredentialManagementAppAdapter.java index 3f4eb2a4a2c..567cffda156 100644 --- a/src/com/android/settings/security/CredentialManagementAppAdapter.java +++ b/src/com/android/settings/security/CredentialManagementAppAdapter.java @@ -34,6 +34,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.android.settings.R; +import com.android.settingslib.utils.StringUtil; import java.util.ArrayList; import java.util.List; @@ -193,8 +194,8 @@ public class CredentialManagementAppAdapter extends RecyclerView.Adapter urisToAliases) { - return mContext.getResources().getQuantityString(R.plurals.number_of_urls, - urisToAliases.size(), urisToAliases.size()); + return StringUtil.getIcuPluralsString(mContext, urisToAliases.size(), + R.string.number_of_urls); } } diff --git a/src/com/android/settings/spa/notification/AppNotificationRepository.kt b/src/com/android/settings/spa/notification/AppNotificationRepository.kt index fe8babb56e7..8dc4f20e591 100644 --- a/src/com/android/settings/spa/notification/AppNotificationRepository.kt +++ b/src/com/android/settings/spa/notification/AppNotificationRepository.kt @@ -177,12 +177,14 @@ class AppNotificationRepository( fun calculateFrequencySummary(sentCount: Int): String { val dailyFrequency = (sentCount.toFloat() / DAYS_TO_CHECK).roundToInt() return if (dailyFrequency > 0) { - context.resources.getQuantityString( - R.plurals.notifications_sent_daily, dailyFrequency, dailyFrequency + context.formatString( + R.string.notifications_sent_daily, + "count" to dailyFrequency, ) } else { - context.resources.getQuantityString( - R.plurals.notifications_sent_weekly, sentCount, sentCount + context.formatString( + R.string.notifications_sent_weekly, + "count" to sentCount, ) } } diff --git a/tests/robotests/src/com/android/settings/accessibility/AutoclickPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AutoclickPreferenceControllerTest.java index fd6bedc36d4..106b617a166 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AutoclickPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AutoclickPreferenceControllerTest.java @@ -72,8 +72,8 @@ public class AutoclickPreferenceControllerTest { assertThat(mController.getSummary().toString()) .isEqualTo(AutoclickUtils.getAutoclickDelaySummary( - mContext.getResources(), - R.plurals.accessibilty_autoclick_preference_subtitle_medium_delay, + mContext, + R.string.accessibilty_autoclick_preference_subtitle_medium_delay, AUTOCLICK_DELAY_DEFAULT).toString()); } } diff --git a/tests/robotests/src/com/android/settings/accessibility/AutoclickUtilsTest.java b/tests/robotests/src/com/android/settings/accessibility/AutoclickUtilsTest.java index 46b1e2b1b7b..a87c03f7e42 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AutoclickUtilsTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AutoclickUtilsTest.java @@ -40,7 +40,7 @@ public final class AutoclickUtilsTest { @Test public void getAutoclickDelaySummary_minDelay_shouldReturnOnSummary() { final CharSequence summary = AutoclickUtils.getAutoclickDelaySummary( - mContext.getResources(), R.plurals.accessibilty_autoclick_delay_unit_second, + mContext, R.string.accessibilty_autoclick_delay_unit_second, MIN_AUTOCLICK_DELAY_MS); assertThat(summary.toString()).isEqualTo("0.2 seconds"); } @@ -48,7 +48,7 @@ public final class AutoclickUtilsTest { @Test public void getAutoclickDelaySummary_maxDelay_shouldReturnOnSummary() { final CharSequence summary = AutoclickUtils.getAutoclickDelaySummary( - mContext.getResources(), R.plurals.accessibilty_autoclick_delay_unit_second, + mContext, R.string.accessibilty_autoclick_delay_unit_second, MAX_AUTOCLICK_DELAY_MS); assertThat(summary.toString()).isEqualTo("1 second"); } diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java index c0e27b61264..a9cac87cebc 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java @@ -46,6 +46,7 @@ import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Ignore; @@ -140,8 +141,8 @@ public class FingerprintStatusPreferenceControllerTest { mController.updateState(mPreference); - assertThat(mPreference.getSummary()).isEqualTo(mContext.getResources().getQuantityString( - R.plurals.security_settings_fingerprint_preference_summary, 1, 1)); + assertThat(mPreference.getSummary()).isEqualTo(StringUtil.getIcuPluralsString(mContext, 1, + R.string.security_settings_fingerprint_preference_summary)); assertThat(mPreference.isVisible()).isTrue(); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java index f02eec2cb9e..bb700776532 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java @@ -35,6 +35,7 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.utils.StringUtil; import org.junit.After; import org.junit.Before; @@ -148,8 +149,8 @@ public class RestrictAppTipTest { @Test public void getSummary_oneAppHandled_showHandledSummary() { assertThat(mHandledBatteryTip.getSummary(mContext).toString()) - .isEqualTo(mContext.getResources().getQuantityString( - R.plurals.battery_tip_restrict_handled_summary, 1)); + .isEqualTo(StringUtil.getIcuPluralsString(mContext, 1, + R.string.battery_tip_restrict_handled_summary)); } @Test @@ -157,8 +158,8 @@ public class RestrictAppTipTest { mUsageAppList.add(new AppInfo.Builder().build()); mHandledBatteryTip = new RestrictAppTip(BatteryTip.StateType.HANDLED, mUsageAppList); assertThat(mHandledBatteryTip.getSummary(mContext)) - .isEqualTo(mContext.getResources().getQuantityString( - R.plurals.battery_tip_restrict_handled_summary, 2)); + .isEqualTo(StringUtil.getIcuPluralsString(mContext, 2, + R.string.battery_tip_restrict_handled_summary)); } @Test diff --git a/tests/robotests/src/com/android/settings/location/TopLevelLocationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/TopLevelLocationPreferenceControllerTest.java index db809f380a0..0801586dc7a 100644 --- a/tests/robotests/src/com/android/settings/location/TopLevelLocationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/location/TopLevelLocationPreferenceControllerTest.java @@ -22,6 +22,7 @@ import android.content.Context; import android.location.LocationManager; import com.android.settings.R; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -67,9 +68,8 @@ public class TopLevelLocationPreferenceControllerTest { // Turn on location again and check if the previous summary text is still cached. mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle()); assertThat(mController.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.location_settings_summary_location_on, locationAppCount, - locationAppCount)); + StringUtil.getIcuPluralsString(mContext, locationAppCount, + R.string.location_settings_summary_location_on)); } @Test @@ -78,9 +78,8 @@ public class TopLevelLocationPreferenceControllerTest { mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle()); mController.setLocationAppCount(locationAppCount); assertThat(mController.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.location_settings_summary_location_on, - locationAppCount, locationAppCount)); + StringUtil.getIcuPluralsString(mContext, locationAppCount, + R.string.location_settings_summary_location_on)); } @Test @@ -89,8 +88,7 @@ public class TopLevelLocationPreferenceControllerTest { mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle()); mController.setLocationAppCount(locationAppCount); assertThat(mController.getSummary()).isEqualTo( - mContext.getResources().getQuantityString( - R.plurals.location_settings_summary_location_on, - locationAppCount, locationAppCount)); + StringUtil.getIcuPluralsString(mContext, locationAppCount, + R.string.location_settings_summary_location_on)); } } \ No newline at end of file diff --git a/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java index c782d9b23f9..9cecf4cbc2b 100644 --- a/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java @@ -43,6 +43,7 @@ import androidx.lifecycle.LifecycleOwner; import com.android.settings.R; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -119,8 +120,8 @@ public class PrintSettingsPreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getSummary()) - .isEqualTo(mContext.getResources() - .getQuantityString(R.plurals.print_jobs_summary, 1, 1)); + .isEqualTo(StringUtil.getIcuPluralsString(mContext, 1, + R.string.print_jobs_summary)); } @Test @@ -135,8 +136,8 @@ public class PrintSettingsPreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getSummary()) - .isEqualTo(mContext.getResources() - .getQuantityString(R.plurals.print_settings_summary, 2, 2)); + .isEqualTo(StringUtil.getIcuPluralsString(mContext, 2, + R.string.print_settings_summary)); // No service when(mPrintManager.getPrintServices(PrintManager.ENABLED_SERVICES)).thenReturn(null); diff --git a/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java index 10f11101ddf..706aedad074 100644 --- a/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java +++ b/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java @@ -41,6 +41,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.Settings; import com.android.settings.testutils.ResourcesUtils; import com.android.settingslib.RestrictedLockUtils; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -244,11 +245,10 @@ public class CombinedBiometricStatusUtilsTest { public void getSummary_whenNoFaceEnrolled_whenMultipleFingerprints_returnsFingerprints() { final int enrolledFingerprintsCount = 2; final int stringResId = ResourcesUtils.getResourcesId( - ApplicationProvider.getApplicationContext(), "plurals", + ApplicationProvider.getApplicationContext(), "string", "security_settings_fingerprint_preference_summary"); - final String summary = mApplicationContext.getResources().getQuantityString( - stringResId, enrolledFingerprintsCount /* quantity */, - enrolledFingerprintsCount /* formatArgs */); + final String summary = StringUtil.getIcuPluralsString(mApplicationContext, + enrolledFingerprintsCount, stringResId); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); when(mFingerprintManager.getEnrolledFingerprints(anyInt())) @@ -261,11 +261,10 @@ public class CombinedBiometricStatusUtilsTest { public void getSummary_whenNoFaceEnrolled_whenSingleFingerprints_returnsFingerprints() { final int enrolledFingerprintsCount = 1; final int stringResId = ResourcesUtils.getResourcesId( - ApplicationProvider.getApplicationContext(), "plurals", + ApplicationProvider.getApplicationContext(), "string", "security_settings_fingerprint_preference_summary"); - final String summary = mApplicationContext.getResources().getQuantityString( - stringResId, enrolledFingerprintsCount /* quantity */, - enrolledFingerprintsCount /* formatArgs */); + final String summary = StringUtil.getIcuPluralsString(mApplicationContext, + enrolledFingerprintsCount, stringResId); when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); when(mFingerprintManager.getEnrolledFingerprints(anyInt())) diff --git a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java index 69e5e2f485b..450adc60bb8 100644 --- a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java +++ b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java @@ -37,6 +37,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.testutils.ResourcesUtils; import com.android.settingslib.RestrictedLockUtils; +import com.android.settingslib.utils.StringUtil; import org.junit.Before; import org.junit.Test; @@ -165,11 +166,10 @@ public class FingerprintStatusUtilsTest { public void getSummary_whenEnrolled_returnsSummary() { final int enrolledFingerprintsCount = 2; final int stringResId = ResourcesUtils.getResourcesId( - ApplicationProvider.getApplicationContext(), "plurals", + ApplicationProvider.getApplicationContext(), "string", "security_settings_fingerprint_preference_summary"); - final String summary = mApplicationContext.getResources().getQuantityString( - stringResId, enrolledFingerprintsCount /* quantity */, - enrolledFingerprintsCount /* formatArgs */); + final String summary = StringUtil.getIcuPluralsString(mApplicationContext, + enrolledFingerprintsCount, stringResId); when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn( diff --git a/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java index 07c1571f987..9e22e8d0b35 100644 --- a/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java +++ b/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java @@ -49,6 +49,7 @@ import com.android.settings.Settings; import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal; import com.android.settings.biometrics.fingerprint.FingerprintSettings; import com.android.settings.testutils.ResourcesUtils; +import com.android.settingslib.utils.StringUtil; import org.junit.After; import org.junit.Before; @@ -568,13 +569,12 @@ public class BiometricsSafetySourceTest { private void assertSafetySourceDisabledDataSetWithPluralSummary(String expectedTitleResName, String expectedSummaryResName, int expectedSummaryQuantity) { final int stringResId = ResourcesUtils.getResourcesId( - ApplicationProvider.getApplicationContext(), "plurals", + ApplicationProvider.getApplicationContext(), "string", expectedSummaryResName); assertSafetySourceDisabledDataSet( ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName), - mApplicationContext.getResources().getQuantityString(stringResId, - expectedSummaryQuantity /* quantity */, - expectedSummaryQuantity /* formatArgs */) + StringUtil.getIcuPluralsString(mApplicationContext, + expectedSummaryQuantity, stringResId) ); } @@ -582,13 +582,12 @@ public class BiometricsSafetySourceTest { String expectedSummaryResName, int expectedSummaryQuantity, String expectedSettingsClassName) { final int stringResId = ResourcesUtils.getResourcesId( - ApplicationProvider.getApplicationContext(), "plurals", + ApplicationProvider.getApplicationContext(), "string", expectedSummaryResName); assertSafetySourceEnabledDataSet( ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName), - mApplicationContext.getResources().getQuantityString(stringResId, - expectedSummaryQuantity /* quantity */, - expectedSummaryQuantity /* formatArgs */), + StringUtil.getIcuPluralsString(mApplicationContext, + expectedSummaryQuantity, stringResId), expectedSettingsClassName ); }