Cleanup some plurals in Settings

Change <one> to <1> in string res file, and update related java files.
Test: Update, existing test still pass.
bug: 199230342

Change-Id: Idd0ba3c6adc060da21574d98f8ed765fae00cef8
This commit is contained in:
xinghailu
2022-12-21 20:57:43 +08:00
parent b603ff7b19
commit 897fd74731
31 changed files with 281 additions and 260 deletions

View File

@@ -57,6 +57,7 @@ import androidx.preference.SwitchPreference;
import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.network.SubscriptionUtil;
import com.android.settingslib.utils.StringUtil;
import java.util.ArrayList;
import java.util.List;
@@ -674,9 +675,8 @@ public class IccLockSettings extends SettingsPreferenceFragment
} else if (attemptsRemaining == 1) {
displayMessage = mRes.getString(R.string.wrong_pin_code_one, attemptsRemaining);
} else if (attemptsRemaining > 1) {
displayMessage = mRes
.getQuantityString(R.plurals.wrong_pin_code, attemptsRemaining,
attemptsRemaining);
displayMessage = StringUtil.getIcuPluralsString(getPrefContext(), attemptsRemaining,
R.string.wrong_pin_code);
} else {
displayMessage = mRes.getString(R.string.pin_failed);
}

View File

@@ -58,6 +58,7 @@ import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState.Callbacks;
import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.applications.StorageStatsSource.AppStorageStats;
import com.android.settingslib.utils.StringUtil;
import com.android.settingslib.widget.ActionButtonsPreference;
import com.android.settingslib.widget.LayoutPreference;
@@ -438,9 +439,8 @@ public class AppStorageSettings extends AppInfoWithHeader
int numberResources = entry.getValue().value;
Preference pref = new Preference(getPrefContext());
pref.setTitle(entry.getKey());
pref.setSummary(getPrefContext().getResources()
.getQuantityString(R.plurals.uri_permissions_text, numberResources,
numberResources));
pref.setSummary(StringUtil.getIcuPluralsString(mUri.getContext(), numberResources,
R.string.uri_permissions_text));
pref.setSelectable(false);
pref.setLayoutResource(R.layout.horizontal_preference);
pref.setOrder(order);

View File

@@ -142,9 +142,8 @@ public class AppsPreferenceController extends BasePreferenceController implement
@Override
protected void onCountComplete(int num) {
if (!mRecentApps.isEmpty()) {
mSeeAllPref.setTitle(
mContext.getResources().getQuantityString(R.plurals.see_all_apps_title,
num, num));
mSeeAllPref.setTitle(StringUtil.getIcuPluralsString(mContext, num,
R.string.see_all_apps_title));
} else {
mAllAppsInfoPref.setSummary(mContext.getString(R.string.apps_summary, num));
}

View File

@@ -55,6 +55,7 @@ import com.android.internal.os.IResultReceiver;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.utils.StringUtil;
import com.android.settingslib.widget.AppPreference;
import java.lang.ref.WeakReference;
@@ -153,9 +154,8 @@ public class PasswordsPreferenceController extends BasePreferenceController
passwordCount.observe(
mLifecycleOwner, count -> {
// TODO(b/169455298): Validate the result.
final CharSequence summary =
mContext.getResources().getQuantityString(
R.plurals.autofill_passwords_count, count, count);
final CharSequence summary = StringUtil.getIcuPluralsString(mContext, count,
R.string.autofill_passwords_count);
pref.setSummary(summary);
});
// TODO(b/169455298): Limit the number of concurrent queries.

View File

@@ -47,6 +47,7 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import com.android.settingslib.utils.StringUtil;
import com.google.android.setupcompat.util.WizardManagerHelper;
public class BuildNumberPreferenceController extends BasePreferenceController implements
@@ -181,9 +182,8 @@ public class BuildNumberPreferenceController extends BasePreferenceController im
mDevHitToast.cancel();
}
mDevHitToast = Toast.makeText(mContext,
mContext.getResources().getQuantityString(
R.plurals.show_dev_countdown, mDevHitCountdown,
mDevHitCountdown),
StringUtil.getIcuPluralsString(mContext, mDevHitCountdown,
R.string.show_dev_countdown),
Toast.LENGTH_SHORT);
mDevHitToast.show();
}

View File

@@ -24,6 +24,7 @@ import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.utils.StringUtil;
public abstract class AdminGrantedPermissionsPreferenceControllerBase
extends AbstractPreferenceController implements PreferenceControllerMixin {
@@ -51,9 +52,8 @@ public abstract class AdminGrantedPermissionsPreferenceControllerBase
if (num == 0) {
mHasApps = false;
} else {
preference.setSummary(mContext.getResources().getQuantityString(
R.plurals.enterprise_privacy_number_packages_lower_bound,
num, num));
preference.setSummary(StringUtil.getIcuPluralsString(mContext, num,
R.string.enterprise_privacy_number_packages_lower_bound));
mHasApps = true;
}
preference.setVisible(mHasApps);

View File

@@ -22,6 +22,7 @@ import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.utils.StringUtil;
public abstract class CaCertsPreferenceControllerBase
extends AbstractPreferenceController implements PreferenceControllerMixin {
@@ -36,9 +37,8 @@ public abstract class CaCertsPreferenceControllerBase
@Override
public void updateState(Preference preference) {
final int certs = getNumberOfCaCerts();
preference.setSummary(mContext.getResources().getQuantityString(
R.plurals.enterprise_privacy_number_ca_certs, certs, certs));
preference.setSummary(StringUtil.getIcuPluralsString(mContext, getNumberOfCaCerts(),
R.string.enterprise_privacy_number_ca_certs));
}
@Override

View File

@@ -22,6 +22,7 @@ import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.utils.StringUtil;
public class EnterpriseInstalledPackagesPreferenceController
extends AbstractPreferenceController implements PreferenceControllerMixin {
@@ -47,9 +48,8 @@ public class EnterpriseInstalledPackagesPreferenceController
available = false;
} else {
available = true;
preference.setSummary(mContext.getResources().getQuantityString(
R.plurals.enterprise_privacy_number_packages_lower_bound, num,
num));
preference.setSummary(StringUtil.getIcuPluralsString(mContext, num,
R.string.enterprise_privacy_number_packages_lower_bound));
}
preference.setVisible(available);

View File

@@ -40,6 +40,7 @@ import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.users.UserFeatureProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.utils.StringUtil;
import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
@@ -192,16 +193,16 @@ public class EnterpriseSetDefaultAppsListPreferenceController extends
case CONTACTS:
return context.getString(R.string.default_contacts_app_title);
case PHONE:
return context.getResources()
.getQuantityString(R.plurals.default_phone_app_title, appCount);
return StringUtil.getIcuPluralsString(context, appCount,
R.string.default_phone_app_title);
case MAP:
return context.getString(R.string.default_map_app_title);
case EMAIL:
return context.getResources()
.getQuantityString(R.plurals.default_email_app_title, appCount);
return StringUtil.getIcuPluralsString(context, appCount,
R.string.default_email_app_title);
case CAMERA:
return context.getResources()
.getQuantityString(R.plurals.default_camera_app_title, appCount);
return StringUtil.getIcuPluralsString(context, appCount,
R.string.default_camera_app_title);
default:
throw new IllegalStateException("Unknown type of default " + typeOfDefault);
}

View File

@@ -26,6 +26,7 @@ import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.users.UserFeatureProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.utils.StringUtil;
public class EnterpriseSetDefaultAppsPreferenceController
extends AbstractPreferenceController implements PreferenceControllerMixin {
@@ -44,8 +45,8 @@ public class EnterpriseSetDefaultAppsPreferenceController
@Override
public void updateState(Preference preference) {
final int num = getNumberOfEnterpriseSetDefaultApps();
preference.setSummary(mContext.getResources().getQuantityString(
R.plurals.enterprise_privacy_number_packages, num, num));
preference.setSummary(StringUtil.getIcuPluralsString(mContext, num,
R.string.enterprise_privacy_number_packages));
}
@Override

View File

@@ -22,6 +22,7 @@ import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.utils.StringUtil;
public abstract class FailedPasswordWipePreferenceControllerBase
extends AbstractPreferenceController implements PreferenceControllerMixin {
@@ -39,9 +40,8 @@ public abstract class FailedPasswordWipePreferenceControllerBase
@Override
public void updateState(Preference preference) {
final int failedPasswordsBeforeWipe = getMaximumFailedPasswordsBeforeWipe();
preference.setSummary(mContext.getResources().getQuantityString(
R.plurals.enterprise_privacy_number_failed_password_wipe,
failedPasswordsBeforeWipe, failedPasswordsBeforeWipe));
preference.setSummary(StringUtil.getIcuPluralsString(mContext, failedPasswordsBeforeWipe,
R.string.enterprise_privacy_number_failed_password_wipe));
}
@Override

View File

@@ -21,6 +21,7 @@ import android.content.Context;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.utils.StringUtil;
public class ManageDeviceAdminPreferenceController extends BasePreferenceController {
@@ -47,8 +48,8 @@ public class ManageDeviceAdminPreferenceController extends BasePreferenceControl
}
// TODO: override
return mContext.getResources().getQuantityString(R.plurals.number_of_device_admins,
activeAdmins, activeAdmins);
return StringUtil.getIcuPluralsString(mContext, activeAdmins,
R.string.number_of_device_admins);
}
@Override

View File

@@ -46,6 +46,7 @@ import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.search.SearchIndexableRaw;
import com.android.settingslib.utils.StringUtil;
import java.util.ArrayList;
import java.util.List;
@@ -218,8 +219,8 @@ public class LocaleListEditor extends RestrictedSettingsFragment {
return;
}
final String title = getResources().getQuantityString(R.plurals.dlg_remove_locales_title,
checkedCount);
final String title = StringUtil.getIcuPluralsString(getContext(), checkedCount,
R.string.dlg_remove_locales_title);
mShowingRemoveDialog = true;
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

View File

@@ -16,9 +16,12 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.utils.StringUtil;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
public class AppLocationPermissionPreferenceController extends
@@ -56,9 +59,11 @@ public class AppLocationPermissionPreferenceController extends
if (mNumTotal == -1 || mNumHasLocation == -1) {
return mContext.getString(R.string.location_settings_loading_app_permission_stats);
}
return mContext.getResources().getQuantityString(
R.plurals.location_app_permission_summary_location_on, mNumHasLocation,
mNumHasLocation, mNumTotal);
Map<String, Object> arguments = new HashMap<>();
arguments.put("count", mNumHasLocation);
arguments.put("total", mNumTotal);
return StringUtil.getIcuPluralsString(mContext, arguments,
R.string.location_app_permission_summary_location_on);
} else {
return mContext.getString(R.string.location_app_permission_summary_location_off);
}

View File

@@ -85,6 +85,7 @@ import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.search.Indexable;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.utils.StringUtil;
import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.widget.FooterPreference;
import com.android.settingslib.widget.LayoutPreference;
@@ -1130,22 +1131,21 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
private String getSavedNetworkSettingsSummaryText(
int numSavedNetworks, int numSavedSubscriptions) {
if (getResources() == null) {
if (getContext() == null) {
Log.w(TAG, "getSavedNetworkSettingsSummaryText shouldn't run if resource is not ready");
return null;
}
if (numSavedSubscriptions == 0) {
return getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary,
numSavedNetworks, numSavedNetworks);
return StringUtil.getIcuPluralsString(getContext(), numSavedNetworks,
R.string.wifi_saved_access_points_summary);
} else if (numSavedNetworks == 0) {
return getResources().getQuantityString(
R.plurals.wifi_saved_passpoint_access_points_summary,
numSavedSubscriptions, numSavedSubscriptions);
return StringUtil.getIcuPluralsString(getContext(), numSavedSubscriptions,
R.string.wifi_saved_passpoint_access_points_summary);
} else {
final int numTotalEntries = numSavedNetworks + numSavedSubscriptions;
return getResources().getQuantityString(R.plurals.wifi_saved_all_access_points_summary,
numTotalEntries, numTotalEntries);
return StringUtil.getIcuPluralsString(getContext(), numTotalEntries,
R.string.wifi_saved_all_access_points_summary);
}
}

View File

@@ -780,46 +780,38 @@ public class ChooseLockPassword extends SettingsActivity {
messages.add(getString(R.string.lockpassword_illegal_character));
break;
case NOT_ENOUGH_UPPER_CASE:
messages.add(getResources().getQuantityString(
R.plurals.lockpassword_password_requires_uppercase,
error.requirement, error.requirement));
messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement,
R.string.lockpassword_password_requires_uppercase));
break;
case NOT_ENOUGH_LOWER_CASE:
messages.add(getResources().getQuantityString(
R.plurals.lockpassword_password_requires_lowercase,
error.requirement, error.requirement));
messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement,
R.string.lockpassword_password_requires_lowercase));
break;
case NOT_ENOUGH_LETTERS:
messages.add(getResources().getQuantityString(
R.plurals.lockpassword_password_requires_letters,
error.requirement, error.requirement));
messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement,
R.string.lockpassword_password_requires_letters));
break;
case NOT_ENOUGH_DIGITS:
messages.add(getResources().getQuantityString(
R.plurals.lockpassword_password_requires_numeric,
error.requirement, error.requirement));
messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement,
R.string.lockpassword_password_requires_numeric));
break;
case NOT_ENOUGH_SYMBOLS:
messages.add(getResources().getQuantityString(
R.plurals.lockpassword_password_requires_symbols,
error.requirement, error.requirement));
messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement,
R.string.lockpassword_password_requires_symbols));
break;
case NOT_ENOUGH_NON_LETTER:
messages.add(getResources().getQuantityString(
R.plurals.lockpassword_password_requires_nonletter,
error.requirement, error.requirement));
messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement,
R.string.lockpassword_password_requires_nonletter));
break;
case NOT_ENOUGH_NON_DIGITS:
messages.add(getResources().getQuantityString(
R.plurals.lockpassword_password_requires_nonnumerical,
error.requirement, error.requirement));
messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement,
R.string.lockpassword_password_requires_nonnumerical));
break;
case TOO_SHORT:
messages.add(getResources().getQuantityString(
messages.add(StringUtil.getIcuPluralsString(getContext(), error.requirement,
mIsAlphaMode
? R.plurals.lockpassword_password_too_short
: R.plurals.lockpassword_pin_too_short,
error.requirement, error.requirement));
? R.string.lockpassword_password_too_short
: R.string.lockpassword_pin_too_short));
break;
case TOO_SHORT_WHEN_ALL_NUMERIC:
messages.add(
@@ -827,11 +819,10 @@ public class ChooseLockPassword extends SettingsActivity {
R.string.lockpassword_password_too_short_all_numeric));
break;
case TOO_LONG:
messages.add(getResources().getQuantityString(
mIsAlphaMode
? R.plurals.lockpassword_password_too_long
: R.plurals.lockpassword_pin_too_long,
error.requirement + 1, error.requirement + 1));
messages.add(StringUtil.getIcuPluralsString(getContext(),
error.requirement + 1, mIsAlphaMode
? R.string.lockpassword_password_too_long
: R.string.lockpassword_pin_too_long));
break;
case CONTAINS_SEQUENCE:
messages.add(getString(R.string.lockpassword_pin_no_sequential_digits));

View File

@@ -25,6 +25,7 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.utils.StringUtil;
import java.util.List;
@@ -60,7 +61,7 @@ public class AccessibilityUsagePreferenceController extends BasePreferenceContro
@Override
public CharSequence getSummary() {
return mContext.getResources().getQuantityString(R.plurals.accessibility_usage_summary,
mEnabledServiceInfos.size(), mEnabledServiceInfos.size());
return StringUtil.getIcuPluralsString(mContext, mEnabledServiceInfos.size(),
R.string.accessibility_usage_summary);
}
}

View File

@@ -26,6 +26,7 @@ import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.security.SecurityFeatureProvider;
import com.android.settingslib.utils.StringUtil;
public class ManageTrustAgentsPreferenceController extends BasePreferenceController {
@@ -56,9 +57,8 @@ public class ManageTrustAgentsPreferenceController extends BasePreferenceControl
preference.setSummary(R.string.disabled_because_no_backup_security);
} else if (numberOfTrustAgent > 0) {
preference.setEnabled(true);
preference.setSummary(mContext.getResources().getQuantityString(
R.plurals.manage_trust_agents_summary_on,
numberOfTrustAgent, numberOfTrustAgent));
preference.setSummary(StringUtil.getIcuPluralsString(mContext, numberOfTrustAgent,
R.string.manage_trust_agents_summary_on));
} else {
preference.setEnabled(true);
preference.setSummary(R.string.manage_trust_agents_summary);

View File

@@ -75,6 +75,7 @@ import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.search.Indexable;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.utils.StringUtil;
import com.android.settingslib.wifi.WifiSavedConfigUtils;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
@@ -915,17 +916,19 @@ public class WifiSettings extends RestrictedSettingsFragment
private String getSavedNetworkSettingsSummaryText(
int numSavedNetworks, int numSavedSubscriptions) {
if (getContext() == null) {
return "";
}
if (numSavedSubscriptions == 0) {
return getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary,
numSavedNetworks, numSavedNetworks);
return StringUtil.getIcuPluralsString(getContext(), numSavedNetworks,
R.string.wifi_saved_access_points_summary);
} else if (numSavedNetworks == 0) {
return getResources().getQuantityString(
R.plurals.wifi_saved_passpoint_access_points_summary,
numSavedSubscriptions, numSavedSubscriptions);
return StringUtil.getIcuPluralsString(getContext(), numSavedSubscriptions,
R.string.wifi_saved_passpoint_access_points_summary);
} else {
final int numTotalEntries = numSavedNetworks + numSavedSubscriptions;
return getResources().getQuantityString(R.plurals.wifi_saved_all_access_points_summary,
numTotalEntries, numTotalEntries);
return StringUtil.getIcuPluralsString(getContext(), numTotalEntries,
R.string.wifi_saved_all_access_points_summary);
}
}