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
);
}