Cleanup plurals format
Change <one> to <1> in string res file Test: Update, existing tests still pass bug: 199230342 Change-Id: Ic3a5259570cb52cd1664638f3b1058c87a631c04
This commit is contained in:
@@ -492,10 +492,10 @@
|
|||||||
<!-- Used in the location settings to control turning on/off the feature entirely [CHAR LIMIT=60] -->
|
<!-- Used in the location settings to control turning on/off the feature entirely [CHAR LIMIT=60] -->
|
||||||
<string name="location_settings_primary_switch_title">Use location</string>
|
<string name="location_settings_primary_switch_title">Use location</string>
|
||||||
<!-- Summary for Location settings when location is on, explaining how many apps have location permission [CHAR LIMIT=NONE]-->
|
<!-- Summary for Location settings when location is on, explaining how many apps have location permission [CHAR LIMIT=NONE]-->
|
||||||
<plurals name="location_settings_summary_location_on">
|
<string name="location_settings_summary_location_on">{count, plural,
|
||||||
<item quantity="one">On - <xliff:g id="count">%1$d</xliff:g> app has access to location</item>
|
=1 {On - # app has access to location}
|
||||||
<item quantity="other">On - <xliff:g id="count">%1$d</xliff:g> apps have access to location</item>
|
other {On - # apps have access to location}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- Location settings, loading the number of apps which have location permission [CHAR LIMIT=30] -->
|
<!-- Location settings, loading the number of apps which have location permission [CHAR LIMIT=30] -->
|
||||||
<string name="location_settings_loading_app_permission_stats">Loading\u2026</string>
|
<string name="location_settings_loading_app_permission_stats">Loading\u2026</string>
|
||||||
<!-- Location settings footer warning text when location is on [CHAR LIMIT=NONE] -->
|
<!-- Location settings footer warning text when location is on [CHAR LIMIT=NONE] -->
|
||||||
@@ -677,10 +677,10 @@
|
|||||||
<!-- Preference to add another fingerprint -->
|
<!-- Preference to add another fingerprint -->
|
||||||
<string name="fingerprint_add_title">Add fingerprint</string>
|
<string name="fingerprint_add_title">Add fingerprint</string>
|
||||||
<!-- Message showing the current number of fingerprints set up. Shown for a menu item that launches fingerprint settings or enrollment. -->
|
<!-- Message showing the current number of fingerprints set up. Shown for a menu item that launches fingerprint settings or enrollment. -->
|
||||||
<plurals name="security_settings_fingerprint_preference_summary">
|
<string name="security_settings_fingerprint_preference_summary">{count, plural,
|
||||||
<item quantity="one">Fingerprint added</item>
|
=1 {Fingerprint added}
|
||||||
<item quantity="other"><xliff:g id="count">%1$d</xliff:g> fingerprints added</item>
|
other {# fingerprints added}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- message shown in summary field when no fingerprints are registered -->
|
<!-- message shown in summary field when no fingerprints are registered -->
|
||||||
<string name="security_settings_fingerprint_preference_summary_none"></string>
|
<string name="security_settings_fingerprint_preference_summary_none"></string>
|
||||||
<!-- Introduction title shown in fingerprint enrollment to introduce the fingerprint feature [CHAR LIMIT=29] -->
|
<!-- Introduction title shown in fingerprint enrollment to introduce the fingerprint feature [CHAR LIMIT=29] -->
|
||||||
@@ -4453,27 +4453,26 @@
|
|||||||
<string name="reduce_bright_colors_persist_preference_title">Keep on after device restarts</string>
|
<string name="reduce_bright_colors_persist_preference_title">Keep on after device restarts</string>
|
||||||
|
|
||||||
<!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
|
<!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="accessibilty_autoclick_preference_subtitle_short_delay">
|
<string name="accessibilty_autoclick_preference_subtitle_short_delay">{count, plural,
|
||||||
<item quantity="one">Short (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
|
=1 {Short ({time} second)}
|
||||||
<item quantity="other">Short (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
|
other {Short ({time} seconds)}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
|
<!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="accessibilty_autoclick_preference_subtitle_medium_delay">
|
<string name="accessibilty_autoclick_preference_subtitle_medium_delay">{count, plural,
|
||||||
<item quantity="one">Medium (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
|
=1 {Medium ({time} second)}
|
||||||
<item quantity="other">Medium (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
|
other {Medium ({time} seconds)}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
|
<!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="accessibilty_autoclick_preference_subtitle_long_delay">
|
<string name="accessibilty_autoclick_preference_subtitle_long_delay">{count, plural,
|
||||||
<item quantity="one">Long (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> second)</item>
|
=1 {Long ({time} second)}
|
||||||
<item quantity="other">Long (<xliff:g id="click_delay_label" example="200">%1$s</xliff:g> seconds)</item>
|
other {Long ({time} seconds)}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Summary for autoclick seekbar settings preference when user selected custom item. [CHAR LIMIT=35] -->
|
<!-- Summary for autoclick seekbar settings preference when user selected custom item. [CHAR LIMIT=35] -->
|
||||||
<plurals name="accessibilty_autoclick_delay_unit_second">
|
<string name="accessibilty_autoclick_delay_unit_second">{count, plural,
|
||||||
<item quantity="one"><xliff:g id="click_delay_label" example="1">%1$s</xliff:g> second</item>
|
=1 {{time} second}
|
||||||
<item quantity="few"><xliff:g id="click_delay_label" example="0.6">%1$s</xliff:g> seconds</item>
|
other {{time} seconds}
|
||||||
<item quantity="other"><xliff:g id="click_delay_label">%1$s</xliff:g> seconds</item>
|
}</string>
|
||||||
</plurals>
|
|
||||||
|
|
||||||
<!-- Title for accessibility menu item to launch a settings activity. [CHAR LIMIT=15] -->
|
<!-- Title for accessibility menu item to launch a settings activity. [CHAR LIMIT=15] -->
|
||||||
<string name="accessibility_menu_item_settings">Settings</string>
|
<string name="accessibility_menu_item_settings">Settings</string>
|
||||||
@@ -4672,16 +4671,16 @@
|
|||||||
<string name="print_settings">Printing</string>
|
<string name="print_settings">Printing</string>
|
||||||
|
|
||||||
<!-- Print setting summary in settings screen [CHAR LIMIT=50] -->
|
<!-- Print setting summary in settings screen [CHAR LIMIT=50] -->
|
||||||
<plurals name="print_settings_summary">
|
<string name="print_settings_summary">{count, plural,
|
||||||
<item quantity="one">1 print service on</item>
|
=1 {1 print service on}
|
||||||
<item quantity="other"><xliff:g id="count">%1$d</xliff:g> print services on</item>
|
other {# print services on}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Print setting summary in settings screenm indicating how many print jobs are active [CHAR LIMIT=None] -->
|
<!-- Print setting summary in settings screenm indicating how many print jobs are active [CHAR LIMIT=None] -->
|
||||||
<plurals name="print_jobs_summary">
|
<string name="print_jobs_summary">{count, plural,
|
||||||
<item quantity="one">1 print job</item>
|
=1 {1 print job}
|
||||||
<item quantity="other"><xliff:g id="count">%1$d</xliff:g> print jobs</item>
|
other {# print jobs}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Title for print service settings screen [CHAR LIMIT=25] -->
|
<!-- Title for print service settings screen [CHAR LIMIT=25] -->
|
||||||
<string name="print_settings_title">Print services</string>
|
<string name="print_settings_title">Print services</string>
|
||||||
@@ -4878,31 +4877,31 @@
|
|||||||
<!-- Footer message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
|
<!-- Footer message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
|
||||||
<string name="battery_tip_dialog_message_footer">Includes high-power background activity</string>
|
<string name="battery_tip_dialog_message_footer">Includes high-power background activity</string>
|
||||||
<!-- Title for restricted app preference, showing how many app need to be restricted [CHAR LIMIT=NONE] -->
|
<!-- Title for restricted app preference, showing how many app need to be restricted [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="battery_tip_restrict_title">
|
<string name="battery_tip_restrict_title">{count, plural,
|
||||||
<item quantity="one">Restrict %1$d app</item>
|
=1 {Restrict # app}
|
||||||
<item quantity="other">Restrict %1$d apps</item>
|
other {Restrict # apps}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- Title for restricted app preference, showing how many app been restricted [CHAR LIMIT=NONE] -->
|
<!-- Title for restricted app preference, showing how many app been restricted [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="battery_tip_restrict_handled_title">
|
<string name="battery_tip_restrict_handled_title">{count, plural,
|
||||||
<item quantity="one">%1$s recently restricted</item>
|
=1 {{label} recently restricted}
|
||||||
<item quantity="other">%2$d apps recently restricted</item>
|
other {# apps recently restricted}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- Summary for restricted app preference, showing the impact of the apps [CHAR LIMIT=NONE] -->
|
<!-- Summary for restricted app preference, showing the impact of the apps [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="battery_tip_restrict_summary">
|
<string name="battery_tip_restrict_summary">{count, plural,
|
||||||
<item quantity="one">%1$s has high background battery usage</item>
|
=1 {{label} has high background battery usage}
|
||||||
<item quantity="other">%2$d apps have high background battery usage</item>
|
other {# apps have high background battery usage}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- Summary for restricted app preference, showing the impact of the apps [CHAR LIMIT=NONE] -->
|
<!-- Summary for restricted app preference, showing the impact of the apps [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="battery_tip_restrict_handled_summary">
|
<string name="battery_tip_restrict_handled_summary">{count, plural,
|
||||||
<item quantity="one">This app can\'t run in the background</item>
|
=1 {This app can\'t run in the background}
|
||||||
<item quantity="other">These apps can\'t run in the background</item>
|
other {These apps can\'t run in the background}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Title for dialog to restrict the app [CHAR LIMIT=NONE] -->
|
<!-- Title for dialog to restrict the app [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="battery_tip_restrict_app_dialog_title">
|
<string name="battery_tip_restrict_app_dialog_title">{count, plural,
|
||||||
<item quantity="one">Restrict app?</item>
|
=1 {Restrict app?}
|
||||||
<item quantity="other">Restrict %1$d apps?</item>
|
other {Restrict # apps?}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- Message for battery tip dialog to show the info to restrict the app [CHAR LIMIT=NONE] -->
|
<!-- Message for battery tip dialog to show the info to restrict the app [CHAR LIMIT=NONE] -->
|
||||||
<string name="battery_tip_restrict_app_dialog_message">To save battery, stop <xliff:g id="app">%1$s</xliff:g> from using battery in the background. This app may not work properly and notifications may be delayed.</string>
|
<string name="battery_tip_restrict_app_dialog_message">To save battery, stop <xliff:g id="app">%1$s</xliff:g> from using battery in the background. This app may not work properly and notifications may be delayed.</string>
|
||||||
<!-- Message for battery tip dialog to show the info to restrict the app, below it app list will be shown as a view [CHAR LIMIT=NONE] -->
|
<!-- Message for battery tip dialog to show the info to restrict the app, below it app list will be shown as a view [CHAR LIMIT=NONE] -->
|
||||||
@@ -4931,10 +4930,10 @@
|
|||||||
<!-- Title for restricted app preference, clicking it will goes to restricted app list [CHAR LIMIT=NONE] -->
|
<!-- Title for restricted app preference, clicking it will goes to restricted app list [CHAR LIMIT=NONE] -->
|
||||||
<string name="restricted_app_title">Restricted apps</string>
|
<string name="restricted_app_title">Restricted apps</string>
|
||||||
<!-- Summary for restricted app preference, clicking it will goes to restricted app list [CHAR LIMIT=NONE] -->
|
<!-- Summary for restricted app preference, clicking it will goes to restricted app list [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="restricted_app_summary">
|
<string name="restricted_app_summary">{count, plural,
|
||||||
<item quantity="one">Limiting battery usage for %1$d app</item>
|
=1 {Limiting battery usage for # app}
|
||||||
<item quantity="other">Limiting battery usage for %1$d apps</item>
|
other {Limiting battery usage for # apps}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Summary for restricted app to show the restriction time [CHAR LIMIT=NONE] -->
|
<!-- Summary for restricted app to show the restriction time [CHAR LIMIT=NONE] -->
|
||||||
<string name="restricted_app_time_summary">Restricted <xliff:g id="time" example="5 days ago">%1$s</xliff:g></string>
|
<string name="restricted_app_time_summary">Restricted <xliff:g id="time" example="5 days ago">%1$s</xliff:g></string>
|
||||||
@@ -4953,10 +4952,10 @@
|
|||||||
<string name="battery_manager_summary_unsupported">Detecting when apps drain battery</string>
|
<string name="battery_manager_summary_unsupported">Detecting when apps drain battery</string>
|
||||||
|
|
||||||
<!-- Summary for battery manager, showing app restricted -->
|
<!-- Summary for battery manager, showing app restricted -->
|
||||||
<plurals name="battery_manager_app_restricted">
|
<string name="battery_manager_app_restricted">{count, plural,
|
||||||
<item quantity="one">%1$d app restricted</item>
|
=1 {# app restricted}
|
||||||
<item quantity="other">%1$d apps restricted</item>
|
other {# apps restricted}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Title to display the battery percentage. [CHAR LIMIT=24] -->
|
<!-- Title to display the battery percentage. [CHAR LIMIT=24] -->
|
||||||
<string name="battery_header_title_alternate"><xliff:g id="number" example="88">^1</xliff:g><small> <font size="20"><xliff:g id="unit" example="%">%</xliff:g></font></small></string>
|
<string name="battery_header_title_alternate"><xliff:g id="number" example="88">^1</xliff:g><small> <font size="20"><xliff:g id="unit" example="%">%</xliff:g></font></small></string>
|
||||||
@@ -5406,10 +5405,10 @@
|
|||||||
<!-- Dialog message for button to remove the credential management app [CHAR LIMIT=NONE] -->
|
<!-- Dialog message for button to remove the credential management app [CHAR LIMIT=NONE] -->
|
||||||
<string name="remove_credential_management_app_dialog_message">This app won\u2019t manage certificates, but it will stay on your device. Any certificates installed by the app will be uninstalled.</string>
|
<string name="remove_credential_management_app_dialog_message">This app won\u2019t manage certificates, but it will stay on your device. Any certificates installed by the app will be uninstalled.</string>
|
||||||
<!-- List item found in the credential management app's authentication policy [CHAR LIMIT=NONE] -->
|
<!-- List item found in the credential management app's authentication policy [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="number_of_urls">
|
<string name="number_of_urls">{count, plural,
|
||||||
<item quantity="one"><xliff:g id="number">%d</xliff:g> URL</item>
|
=1 {# URL}
|
||||||
<item quantity="other"><xliff:g id="number">%d</xliff:g> URLs</item>
|
other {# URLs}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Sound settings screen, setting check box label -->
|
<!-- Sound settings screen, setting check box label -->
|
||||||
<string name="emergency_tone_title">Emergency dialing signal</string>
|
<string name="emergency_tone_title">Emergency dialing signal</string>
|
||||||
@@ -5510,10 +5509,10 @@
|
|||||||
<string name="notification_history_dismiss">Recently dismissed</string>
|
<string name="notification_history_dismiss">Recently dismissed</string>
|
||||||
|
|
||||||
<!-- app summary of notification app list screen [CHAR LIMIT=100] -->
|
<!-- app summary of notification app list screen [CHAR LIMIT=100] -->
|
||||||
<plurals name="notification_history_count">
|
<string name="notification_history_count">{count, plural,
|
||||||
<item quantity="one"><xliff:g id="number">%d</xliff:g> notification</item>
|
=1 {# notification}
|
||||||
<item quantity="other"><xliff:g id="number">%d</xliff:g> notifications</item>
|
other {# notifications}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Category title for phone call's ringtone and vibration settings in the Sound Setting.
|
<!-- Category title for phone call's ringtone and vibration settings in the Sound Setting.
|
||||||
[CHAR LIMIT=40] -->
|
[CHAR LIMIT=40] -->
|
||||||
@@ -5954,10 +5953,10 @@
|
|||||||
<!-- Button to close the SSL CA cert warning dialog box, meaning the user is done reading. [CHAR LIMIT=NONE] -->
|
<!-- Button to close the SSL CA cert warning dialog box, meaning the user is done reading. [CHAR LIMIT=NONE] -->
|
||||||
<string name="done_button">Done</string>
|
<string name="done_button">Done</string>
|
||||||
<!-- Title of Dialog warning users of SSL monitoring. [CHAR LIMIT=NONE] -->
|
<!-- Title of Dialog warning users of SSL monitoring. [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="ssl_ca_cert_dialog_title">
|
<string name="ssl_ca_cert_dialog_title">{count, plural,
|
||||||
<item quantity="one">Trust or remove certificate</item>
|
=1 {Trust or remove certificate}
|
||||||
<item quantity="other">Trust or remove certificates</item>
|
other {Trust or remove certificates}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- Text of message to show to device owner user whose administrator has installed a SSL CA Cert. [CHAR LIMIT=NONE] -->
|
<!-- Text of message to show to device owner user whose administrator has installed a SSL CA Cert. [CHAR LIMIT=NONE] -->
|
||||||
<string name="ssl_ca_cert_info_message_device_owner"> {numberOfCertificates, plural,
|
<string name="ssl_ca_cert_info_message_device_owner"> {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.}
|
=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 @@
|
|||||||
<!-- Text of warning to show to users that have a SSL CA Cert installed. [CHAR LIMIT=NONE] -->
|
<!-- Text of warning to show to users that have a SSL CA Cert installed. [CHAR LIMIT=NONE] -->
|
||||||
<string name="ssl_ca_cert_warning_message">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.</string>
|
<string name="ssl_ca_cert_warning_message">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.</string>
|
||||||
<!-- Label on button that will take the user to the Trusted Credentials settings page. [CHAR LIMIT=NONE]-->
|
<!-- Label on button that will take the user to the Trusted Credentials settings page. [CHAR LIMIT=NONE]-->
|
||||||
<plurals name="ssl_ca_cert_settings_button">
|
<string name="ssl_ca_cert_settings_button">{count, plural,
|
||||||
<item quantity="one">Check certificate</item>
|
=1 {Check certificate}
|
||||||
<item quantity="other">Check certificates</item>
|
other {Check certificates}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- User settings screen title [CHAR LIMIT=40] -->
|
<!-- User settings screen title [CHAR LIMIT=40] -->
|
||||||
<string name="user_settings_title">Multiple users</string>
|
<string name="user_settings_title">Multiple users</string>
|
||||||
@@ -7430,10 +7429,10 @@
|
|||||||
<string name="priority_conversation_count_zero">No priority conversations</string>
|
<string name="priority_conversation_count_zero">No priority conversations</string>
|
||||||
|
|
||||||
<!-- [CHAR LIMIT=100] summary text on link to 'all conversations' page, some conversations are priority -->
|
<!-- [CHAR LIMIT=100] summary text on link to 'all conversations' page, some conversations are priority -->
|
||||||
<plurals name="priority_conversation_count">
|
<string name="priority_conversation_count">{count, plural,
|
||||||
<item quantity="one"><xliff:g id="count" example="1">%d</xliff:g> priority conversation</item>
|
=1 {# priority conversation}
|
||||||
<item quantity="other"><xliff:g id="count" example="10">%d</xliff:g> priority conversations</item>
|
other {# priority conversations}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- [CHAR LIMIT=100] preference category title -->
|
<!-- [CHAR LIMIT=100] preference category title -->
|
||||||
<string name="important_conversations">Priority conversations</string>
|
<string name="important_conversations">Priority conversations</string>
|
||||||
@@ -7526,14 +7525,14 @@
|
|||||||
<string name="notification_app_switch_label">All <xliff:g id="app_name" example="Android Services">%1$s</xliff:g> notifications</string>
|
<string name="notification_app_switch_label">All <xliff:g id="app_name" example="Android Services">%1$s</xliff:g> notifications</string>
|
||||||
|
|
||||||
<!-- app summary of notification app list screen [CHAR LIMIT=100] -->
|
<!-- app summary of notification app list screen [CHAR LIMIT=100] -->
|
||||||
<plurals name="notifications_sent_daily">
|
<string name="notifications_sent_daily">{count, plural,
|
||||||
<item quantity="one">About <xliff:g id="number">%d</xliff:g> notification per day</item>
|
=1 {About # notification per day}
|
||||||
<item quantity="other">About <xliff:g id="number">%,d</xliff:g> notifications per day</item>
|
other {About # notifications per day}
|
||||||
</plurals>
|
}</string>
|
||||||
<plurals name="notifications_sent_weekly">
|
<string name="notifications_sent_weekly">{count, plural,
|
||||||
<item quantity="one">About <xliff:g id="number">%d</xliff:g> notification per week</item>
|
=1 {About # notification per week}
|
||||||
<item quantity="other">About <xliff:g id="number">%,d</xliff:g> notifications per week</item>
|
other {About # notifications per week}
|
||||||
</plurals>
|
}</string>
|
||||||
<!-- app summary of notification app list screen [CHAR LIMIT=100] -->
|
<!-- app summary of notification app list screen [CHAR LIMIT=100] -->
|
||||||
<string name="notifications_sent_never">Never</string>
|
<string name="notifications_sent_never">Never</string>
|
||||||
|
|
||||||
@@ -7730,10 +7729,10 @@
|
|||||||
<string name="interact_across_profiles_number_of_connected_apps_none">No apps connected</string>
|
<string name="interact_across_profiles_number_of_connected_apps_none">No apps connected</string>
|
||||||
|
|
||||||
<!-- Summary of preference to manage connected work and personal apps, informing the user how many apps are connected -->
|
<!-- Summary of preference to manage connected work and personal apps, informing the user how many apps are connected -->
|
||||||
<plurals name="interact_across_profiles_number_of_connected_apps">
|
<string name="interact_across_profiles_number_of_connected_apps">{count, plural,
|
||||||
<item quantity="one"><xliff:g id="count">%d</xliff:g> app connected</item>
|
=1 {# app connected}
|
||||||
<item quantity="other"><xliff:g id="count">%d</xliff:g> apps connected</item>
|
other {# apps connected}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- Banner title. This banner lets a user know that they need to install an app in their
|
<!-- Banner title. This banner lets a user know that they need to install an app in their
|
||||||
work profile in order to connect it to the corresponding personal app.
|
work profile in order to connect it to the corresponding personal app.
|
||||||
@@ -7784,10 +7783,10 @@
|
|||||||
<string name="app_settings_link">Additional settings in the app</string>
|
<string name="app_settings_link">Additional settings in the app</string>
|
||||||
|
|
||||||
<!-- [CHAR LIMIT=NONE] Footer listing a count of deleted channels. -->
|
<!-- [CHAR LIMIT=NONE] Footer listing a count of deleted channels. -->
|
||||||
<plurals name="deleted_channels">
|
<string name="deleted_channels">{count, plural,
|
||||||
<item quantity="one"><xliff:g id="count" example="1">%d</xliff:g> category deleted</item>
|
=1 {# category deleted}
|
||||||
<item quantity="other"><xliff:g id="count" example="10">%d</xliff:g> categories deleted</item>
|
other {# categories deleted}
|
||||||
</plurals>
|
}</string>
|
||||||
|
|
||||||
<!-- [CHAR LIMIT=NONE] App notification settings: Block option title -->
|
<!-- [CHAR LIMIT=NONE] App notification settings: Block option title -->
|
||||||
<string name="app_notification_block_title">Block all</string>
|
<string name="app_notification_block_title">Block all</string>
|
||||||
|
@@ -33,6 +33,7 @@ import android.provider.Settings;
|
|||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@@ -65,16 +66,17 @@ public class MonitoringCertInfoActivity extends Activity implements OnClickListe
|
|||||||
final int numberOfCertificates = getIntent().getIntExtra(
|
final int numberOfCertificates = getIntent().getIntExtra(
|
||||||
Settings.EXTRA_NUMBER_OF_CERTIFICATES, 1);
|
Settings.EXTRA_NUMBER_OF_CERTIFICATES, 1);
|
||||||
final int titleId = RestrictedLockUtils.getProfileOrDeviceOwner(this, user) != null
|
final int titleId = RestrictedLockUtils.getProfileOrDeviceOwner(this, user) != null
|
||||||
? R.plurals.ssl_ca_cert_settings_button // Check certificate
|
? R.string.ssl_ca_cert_settings_button // Check certificate
|
||||||
: R.plurals.ssl_ca_cert_dialog_title; // Trust or remove certificate
|
: R.string.ssl_ca_cert_dialog_title; // Trust or remove certificate
|
||||||
final CharSequence title = getResources().getQuantityText(titleId, numberOfCertificates);
|
final CharSequence title = StringUtil.getIcuPluralsString(this, numberOfCertificates,
|
||||||
|
titleId);
|
||||||
setTitle(title);
|
setTitle(title);
|
||||||
|
|
||||||
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||||
builder.setTitle(title);
|
builder.setTitle(title);
|
||||||
builder.setCancelable(true);
|
builder.setCancelable(true);
|
||||||
builder.setPositiveButton(getResources().getQuantityText(
|
builder.setPositiveButton(StringUtil.getIcuPluralsString(this, numberOfCertificates,
|
||||||
R.plurals.ssl_ca_cert_settings_button, numberOfCertificates) , this);
|
R.string.ssl_ca_cert_settings_button) , this);
|
||||||
builder.setNeutralButton(R.string.cancel, null);
|
builder.setNeutralButton(R.string.cancel, null);
|
||||||
builder.setOnDismissListener(this);
|
builder.setOnDismissListener(this);
|
||||||
|
|
||||||
|
@@ -34,9 +34,9 @@ public class AutoclickPreferenceController extends BasePreferenceController {
|
|||||||
* placeholder for integer delay value.
|
* placeholder for integer delay value.
|
||||||
*/
|
*/
|
||||||
private static final int[] AUTOCLICK_PREFERENCE_SUMMARIES = {
|
private static final int[] AUTOCLICK_PREFERENCE_SUMMARIES = {
|
||||||
R.plurals.accessibilty_autoclick_preference_subtitle_short_delay,
|
R.string.accessibilty_autoclick_preference_subtitle_short_delay,
|
||||||
R.plurals.accessibilty_autoclick_preference_subtitle_medium_delay,
|
R.string.accessibilty_autoclick_preference_subtitle_medium_delay,
|
||||||
R.plurals.accessibilty_autoclick_preference_subtitle_long_delay
|
R.string.accessibilty_autoclick_preference_subtitle_long_delay
|
||||||
};
|
};
|
||||||
|
|
||||||
public AutoclickPreferenceController(Context context, String preferenceKey) {
|
public AutoclickPreferenceController(Context context, String preferenceKey) {
|
||||||
@@ -59,7 +59,7 @@ public class AutoclickPreferenceController extends BasePreferenceController {
|
|||||||
Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY,
|
Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY,
|
||||||
AccessibilityManager.AUTOCLICK_DELAY_DEFAULT);
|
AccessibilityManager.AUTOCLICK_DELAY_DEFAULT);
|
||||||
final int summaryIndex = getAutoclickPreferenceSummaryIndex(delayMillis);
|
final int summaryIndex = getAutoclickPreferenceSummaryIndex(delayMillis);
|
||||||
return AutoclickUtils.getAutoclickDelaySummary(mContext.getResources(),
|
return AutoclickUtils.getAutoclickDelaySummary(mContext,
|
||||||
AUTOCLICK_PREFERENCE_SUMMARIES[summaryIndex], delayMillis);
|
AUTOCLICK_PREFERENCE_SUMMARIES[summaryIndex], delayMillis);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -20,9 +20,16 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
|
|||||||
|
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.PluralsRes;
|
import android.annotation.PluralsRes;
|
||||||
|
import android.annotation.StringRes;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/** Provides utility methods related auto click. */
|
/** Provides utility methods related auto click. */
|
||||||
public final class AutoclickUtils {
|
public final class AutoclickUtils {
|
||||||
@@ -58,20 +65,23 @@ public final class AutoclickUtils {
|
|||||||
/**
|
/**
|
||||||
* Gets string that should be used for provided autoclick delay.
|
* 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
|
* @param id The desired resource identifier, as generated by the aapt
|
||||||
* tool. This integer encodes the package, type, and resource
|
* tool. This integer encodes the package, type, and resource
|
||||||
* entry. The value 0 is an invalid identifier.
|
* entry. The value 0 is an invalid identifier.
|
||||||
* @param delayMillis Delay for whose value summary should be retrieved.
|
* @param delayMillis Delay for whose value summary should be retrieved.
|
||||||
*/
|
*/
|
||||||
public static CharSequence getAutoclickDelaySummary(Resources resources,
|
public static CharSequence getAutoclickDelaySummary(Context context,
|
||||||
@PluralsRes int id, int delayMillis) {
|
@StringRes int id, int delayMillis) {
|
||||||
final int quantity = (delayMillis == 1000) ? Quantity.ONE : Quantity.FEW;
|
final int quantity = (delayMillis == 1000) ? Quantity.ONE : Quantity.FEW;
|
||||||
final float delaySecond = (float) delayMillis / 1000;
|
final float delaySecond = (float) delayMillis / 1000;
|
||||||
// Only show integer when delay time is 1.
|
// Only show integer when delay time is 1.
|
||||||
final String decimalFormat = (delaySecond == 1) ? "%.0f" : "%.1f";
|
final String decimalFormat = (delaySecond == 1) ? "%.0f" : "%.1f";
|
||||||
|
|
||||||
return resources.getQuantityString(id, quantity, String.format(decimalFormat, delaySecond));
|
Map<String, Object> arguments = new HashMap<>();
|
||||||
|
arguments.put("count", quantity);
|
||||||
|
arguments.put("time", String.format(decimalFormat, delaySecond));
|
||||||
|
return StringUtil.getIcuPluralsString(context, arguments, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AutoclickUtils(){}
|
private AutoclickUtils(){}
|
||||||
|
@@ -176,7 +176,7 @@ public class ToggleAutoclickCustomSeekbarController extends BasePreferenceContro
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
private CharSequence delayTimeToString(int delayMillis) {
|
private CharSequence delayTimeToString(int delayMillis) {
|
||||||
return AutoclickUtils.getAutoclickDelaySummary(mContext.getResources(),
|
return AutoclickUtils.getAutoclickDelaySummary(mContext,
|
||||||
R.plurals.accessibilty_autoclick_delay_unit_second, delayMillis);
|
R.string.accessibilty_autoclick_delay_unit_second, delayMillis);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -110,11 +110,11 @@ public class AppStateNotificationBridge extends AppStateBaseBridge {
|
|||||||
context, System.currentTimeMillis() - state.lastSent, true);
|
context, System.currentTimeMillis() - state.lastSent, true);
|
||||||
} else if (sortOrder == R.id.sort_order_frequent_notification) {
|
} else if (sortOrder == R.id.sort_order_frequent_notification) {
|
||||||
if (state.avgSentDaily > 0) {
|
if (state.avgSentDaily > 0) {
|
||||||
return context.getResources().getQuantityString(
|
return StringUtil.getIcuPluralsString(context, state.avgSentDaily,
|
||||||
R.plurals.notifications_sent_daily, state.avgSentDaily, state.avgSentDaily);
|
R.string.notifications_sent_daily);
|
||||||
}
|
}
|
||||||
return context.getResources().getQuantityString(R.plurals.notifications_sent_weekly,
|
return StringUtil.getIcuPluralsString(context, state.avgSentWeekly,
|
||||||
state.avgSentWeekly, state.avgSentWeekly);
|
R.string.notifications_sent_weekly);
|
||||||
} else {
|
} else {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import android.os.UserManager;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -66,9 +67,7 @@ public class InteractAcrossProfilesController extends BasePreferenceController {
|
|||||||
return connectedApps == 0
|
return connectedApps == 0
|
||||||
? mContext.getResources().getString(
|
? mContext.getResources().getString(
|
||||||
R.string.interact_across_profiles_number_of_connected_apps_none)
|
R.string.interact_across_profiles_number_of_connected_apps_none)
|
||||||
: mContext.getResources().getQuantityString(
|
: StringUtil.getIcuPluralsString(mContext, connectedApps,
|
||||||
R.plurals.interact_across_profiles_number_of_connected_apps,
|
R.string.interact_across_profiles_number_of_connected_apps);
|
||||||
connectedApps,
|
|
||||||
connectedApps);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -28,6 +28,7 @@ import com.android.settings.Settings;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.biometrics.ParentalControlsUtils;
|
import com.android.settings.biometrics.ParentalControlsUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utilities for combined biometric details shared between Security Settings and Safety Center.
|
* Utilities for combined biometric details shared between Security Settings and Safety Center.
|
||||||
@@ -102,9 +103,8 @@ public class CombinedBiometricStatusUtils {
|
|||||||
} else if (faceEnrolled) {
|
} else if (faceEnrolled) {
|
||||||
return mContext.getString(R.string.security_settings_face_preference_summary);
|
return mContext.getString(R.string.security_settings_face_preference_summary);
|
||||||
} else if (numFingerprintsEnrolled > 0) {
|
} else if (numFingerprintsEnrolled > 0) {
|
||||||
return mContext.getResources().getQuantityString(
|
return StringUtil.getIcuPluralsString(mContext, numFingerprintsEnrolled,
|
||||||
R.plurals.security_settings_fingerprint_preference_summary,
|
R.string.security_settings_fingerprint_preference_summary);
|
||||||
numFingerprintsEnrolled, numFingerprintsEnrolled);
|
|
||||||
} else {
|
} else {
|
||||||
return mContext.getString(
|
return mContext.getString(
|
||||||
R.string.security_settings_biometric_preference_summary_none_enrolled);
|
R.string.security_settings_biometric_preference_summary_none_enrolled);
|
||||||
|
@@ -28,6 +28,7 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.biometrics.ParentalControlsUtils;
|
import com.android.settings.biometrics.ParentalControlsUtils;
|
||||||
import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
|
import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utilities for fingerprint details shared between Security Settings and Safety Center.
|
* Utilities for fingerprint details shared between Security Settings and Safety Center.
|
||||||
@@ -69,9 +70,8 @@ public class FingerprintStatusUtils {
|
|||||||
public String getSummary() {
|
public String getSummary() {
|
||||||
if (hasEnrolled()) {
|
if (hasEnrolled()) {
|
||||||
final int numEnrolled = mFingerprintManager.getEnrolledFingerprints(mUserId).size();
|
final int numEnrolled = mFingerprintManager.getEnrolledFingerprints(mUserId).size();
|
||||||
return mContext.getResources().getQuantityString(
|
return StringUtil.getIcuPluralsString(mContext, numEnrolled,
|
||||||
R.plurals.security_settings_fingerprint_preference_summary,
|
R.string.security_settings_fingerprint_preference_summary);
|
||||||
numEnrolled, numEnrolled);
|
|
||||||
} else {
|
} else {
|
||||||
return mContext.getString(
|
return mContext.getString(
|
||||||
R.string.security_settings_fingerprint_preference_summary_none);
|
R.string.security_settings_fingerprint_preference_summary_none);
|
||||||
|
@@ -31,6 +31,7 @@ import com.android.settings.core.InstrumentedPreferenceFragment;
|
|||||||
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
||||||
import com.android.settings.fuelgauge.batterytip.BatteryTipUtils;
|
import com.android.settings.fuelgauge.batterytip.BatteryTipUtils;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -75,9 +76,8 @@ public class RestrictAppPreferenceController extends BasePreferenceController {
|
|||||||
final int num = mAppInfos.size();
|
final int num = mAppInfos.size();
|
||||||
// Fragment change RestrictedAppsList after onPause(), UI needs to be updated in onResume()
|
// Fragment change RestrictedAppsList after onPause(), UI needs to be updated in onResume()
|
||||||
preference.setVisible(num > 0);
|
preference.setVisible(num > 0);
|
||||||
preference.setSummary(
|
preference.setSummary(StringUtil.getIcuPluralsString(mContext, num,
|
||||||
mContext.getResources().getQuantityString(R.plurals.restricted_app_summary, num,
|
R.string.restricted_app_summary));
|
||||||
num));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -27,6 +27,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Preference controller to control the battery manager
|
* Preference controller to control the battery manager
|
||||||
@@ -67,8 +68,8 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void updateSummary(Preference preference, int num) {
|
void updateSummary(Preference preference, int num) {
|
||||||
if (num > 0) {
|
if (num > 0) {
|
||||||
preference.setSummary(mContext.getResources().getQuantityString(
|
preference.setSummary(StringUtil.getIcuPluralsString(mContext, num,
|
||||||
R.plurals.battery_manager_app_restricted, num, num));
|
R.string.battery_manager_app_restricted));
|
||||||
} else {
|
} else {
|
||||||
preference.setSummary(
|
preference.setSummary(
|
||||||
mPowerUsageFeatureProvider.isAdaptiveChargingSupported()
|
mPowerUsageFeatureProvider.isAdaptiveChargingSupported()
|
||||||
|
@@ -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.HighUsageTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
|
import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
|
||||||
import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
|
import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -107,8 +108,8 @@ public class BatteryTipDialogFragment extends InstrumentedDialogFragment impleme
|
|||||||
restrictedAppList.get(0).packageName);
|
restrictedAppList.get(0).packageName);
|
||||||
|
|
||||||
final AlertDialog.Builder builder = new AlertDialog.Builder(context)
|
final AlertDialog.Builder builder = new AlertDialog.Builder(context)
|
||||||
.setTitle(context.getResources().getQuantityString(
|
.setTitle(StringUtil.getIcuPluralsString(context, num,
|
||||||
R.plurals.battery_tip_restrict_app_dialog_title, num, num))
|
R.string.battery_tip_restrict_app_dialog_title))
|
||||||
.setPositiveButton(R.string.battery_tip_restrict_app_dialog_ok, this)
|
.setPositiveButton(R.string.battery_tip_restrict_app_dialog_ok, this)
|
||||||
.setNegativeButton(android.R.string.cancel, null);
|
.setNegativeButton(android.R.string.cancel, null);
|
||||||
if (num == 1) {
|
if (num == 1) {
|
||||||
|
@@ -28,9 +28,12 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tip to suggest user to restrict some bad apps
|
* Tip to suggest user to restrict some bad apps
|
||||||
@@ -62,12 +65,15 @@ public class RestrictAppTip extends BatteryTip {
|
|||||||
final int num = mRestrictAppList.size();
|
final int num = mRestrictAppList.size();
|
||||||
final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
|
final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
|
||||||
mRestrictAppList.get(0).packageName) : "";
|
mRestrictAppList.get(0).packageName) : "";
|
||||||
final Resources resources = context.getResources();
|
|
||||||
|
|
||||||
|
Map<String, Object> arguments = new HashMap<>();
|
||||||
|
arguments.put("count", num);
|
||||||
|
arguments.put("label", appLabel);
|
||||||
return mState == StateType.HANDLED
|
return mState == StateType.HANDLED
|
||||||
? resources.getQuantityString(R.plurals.battery_tip_restrict_handled_title, num,
|
? StringUtil.getIcuPluralsString(context, arguments,
|
||||||
appLabel, num)
|
R.string.battery_tip_restrict_handled_title)
|
||||||
: resources.getQuantityString(R.plurals.battery_tip_restrict_title, num, num);
|
: StringUtil.getIcuPluralsString(context, arguments,
|
||||||
|
R.string.battery_tip_restrict_title);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -76,9 +82,12 @@ public class RestrictAppTip extends BatteryTip {
|
|||||||
final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
|
final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
|
||||||
mRestrictAppList.get(0).packageName) : "";
|
mRestrictAppList.get(0).packageName) : "";
|
||||||
final int resId = mState == StateType.HANDLED
|
final int resId = mState == StateType.HANDLED
|
||||||
? R.plurals.battery_tip_restrict_handled_summary
|
? R.string.battery_tip_restrict_handled_summary
|
||||||
: R.plurals.battery_tip_restrict_summary;
|
: R.string.battery_tip_restrict_summary;
|
||||||
return context.getResources().getQuantityString(resId, num, appLabel, num);
|
Map<String, Object> arguments = new HashMap<>();
|
||||||
|
arguments.put("count", num);
|
||||||
|
arguments.put("label", appLabel);
|
||||||
|
return StringUtil.getIcuPluralsString(context, arguments, resId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -21,6 +21,7 @@ import com.android.settings.core.BasePreferenceController;
|
|||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -63,8 +64,8 @@ public class TopLevelLocationPreferenceController extends BasePreferenceControll
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void setLocationAppCount(int numApps) {
|
void setLocationAppCount(int numApps) {
|
||||||
sSummary = mContext.getResources().getQuantityString(
|
sSummary = StringUtil.getIcuPluralsString(mContext, numApps,
|
||||||
R.plurals.location_settings_summary_location_on, numApps, numApps);
|
R.string.location_settings_summary_location_on);
|
||||||
refreshSummary(mPreference);
|
refreshSummary(mPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -20,6 +20,7 @@ import android.content.Context;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
public class ConversationListSummaryPreferenceController extends BasePreferenceController {
|
public class ConversationListSummaryPreferenceController extends BasePreferenceController {
|
||||||
|
|
||||||
@@ -41,9 +42,8 @@ public class ConversationListSummaryPreferenceController extends BasePreferenceC
|
|||||||
if (count == 0) {
|
if (count == 0) {
|
||||||
return mContext.getText(R.string.priority_conversation_count_zero);
|
return mContext.getText(R.string.priority_conversation_count_zero);
|
||||||
}
|
}
|
||||||
return mContext.getResources().getQuantityString(
|
return StringUtil.getIcuPluralsString(mContext, count,
|
||||||
R.plurals.priority_conversation_count,
|
R.string.priority_conversation_count);
|
||||||
count, count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setBackend(NotificationBackend backend) {
|
void setBackend(NotificationBackend backend) {
|
||||||
|
@@ -509,11 +509,11 @@ public class NotificationBackend {
|
|||||||
context, System.currentTimeMillis() - state.lastSent, true);
|
context, System.currentTimeMillis() - state.lastSent, true);
|
||||||
} else {
|
} else {
|
||||||
if (state.avgSentDaily > 0) {
|
if (state.avgSentDaily > 0) {
|
||||||
return context.getResources().getQuantityString(R.plurals.notifications_sent_daily,
|
return StringUtil.getIcuPluralsString(context, state.avgSentDaily,
|
||||||
state.avgSentDaily, state.avgSentDaily);
|
R.string.notifications_sent_daily);
|
||||||
}
|
}
|
||||||
return context.getResources().getQuantityString(R.plurals.notifications_sent_weekly,
|
return StringUtil.getIcuPluralsString(context, state.avgSentWeekly,
|
||||||
state.avgSentWeekly, state.avgSentWeekly);
|
R.string.notifications_sent_weekly);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -23,6 +23,7 @@ import androidx.preference.Preference;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settings.notification.NotificationBackend;
|
import com.android.settings.notification.NotificationBackend;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
public class DeletedChannelsPreferenceController extends NotificationPreferenceController
|
public class DeletedChannelsPreferenceController extends NotificationPreferenceController
|
||||||
implements PreferenceControllerMixin {
|
implements PreferenceControllerMixin {
|
||||||
@@ -59,8 +60,8 @@ public class DeletedChannelsPreferenceController extends NotificationPreferenceC
|
|||||||
public void updateState(Preference preference) {
|
public void updateState(Preference preference) {
|
||||||
if (mAppRow != null) {
|
if (mAppRow != null) {
|
||||||
int deletedChannelCount = mBackend.getDeletedChannelCount(mAppRow.pkg, mAppRow.uid);
|
int deletedChannelCount = mBackend.getDeletedChannelCount(mAppRow.pkg, mAppRow.uid);
|
||||||
preference.setTitle(mContext.getResources().getQuantityString(
|
preference.setTitle(StringUtil.getIcuPluralsString(mContext, deletedChannelCount,
|
||||||
R.plurals.deleted_channels, deletedChannelCount, deletedChannelCount));
|
R.string.deleted_channels));
|
||||||
}
|
}
|
||||||
preference.setSelectable(false);
|
preference.setSelectable(false);
|
||||||
}
|
}
|
||||||
|
@@ -60,6 +60,7 @@ import com.android.internal.widget.NotificationExpandButton;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.notification.NotificationBackend;
|
import com.android.settings.notification.NotificationBackend;
|
||||||
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
|
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
import com.android.settingslib.utils.ThreadUtils;
|
import com.android.settingslib.utils.ThreadUtils;
|
||||||
import com.android.settingslib.widget.MainSwitchBar;
|
import com.android.settingslib.widget.MainSwitchBar;
|
||||||
import com.android.settingslib.widget.OnMainSwitchChangeListener;
|
import com.android.settingslib.widget.OnMainSwitchChangeListener;
|
||||||
@@ -203,16 +204,15 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
|||||||
icon.setImageDrawable(nhp.icon);
|
icon.setImageDrawable(nhp.icon);
|
||||||
|
|
||||||
TextView count = viewForPackage.findViewById(R.id.count);
|
TextView count = viewForPackage.findViewById(R.id.count);
|
||||||
count.setText(getResources().getQuantityString(R.plurals.notification_history_count,
|
count.setText(StringUtil.getIcuPluralsString(this, nhp.notifications.size(),
|
||||||
nhp.notifications.size(), nhp.notifications.size()));
|
R.string.notification_history_count));
|
||||||
|
|
||||||
final NotificationHistoryRecyclerView rv =
|
final NotificationHistoryRecyclerView rv =
|
||||||
viewForPackage.findViewById(R.id.notification_list);
|
viewForPackage.findViewById(R.id.notification_list);
|
||||||
rv.setAdapter(new NotificationHistoryAdapter(mNm, rv,
|
rv.setAdapter(new NotificationHistoryAdapter(mNm, rv,
|
||||||
newCount -> {
|
newCount -> {
|
||||||
count.setText(getResources().getQuantityString(
|
count.setText(StringUtil.getIcuPluralsString(this, newCount,
|
||||||
R.plurals.notification_history_count,
|
R.string.notification_history_count));
|
||||||
newCount, newCount));
|
|
||||||
if (newCount == 0) {
|
if (newCount == 0) {
|
||||||
viewForPackage.setVisibility(View.GONE);
|
viewForPackage.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,7 @@ import com.android.settingslib.RestrictedPreference;
|
|||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -110,17 +111,16 @@ public class PrintSettingPreferenceController extends BasePreferenceController i
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (numActivePrintJobs > 0) {
|
if (numActivePrintJobs > 0) {
|
||||||
return mContext.getResources().getQuantityString(
|
return StringUtil.getIcuPluralsString(mContext, numActivePrintJobs,
|
||||||
R.plurals.print_jobs_summary, numActivePrintJobs, numActivePrintJobs);
|
R.string.print_jobs_summary);
|
||||||
} else {
|
} else {
|
||||||
final List<PrintServiceInfo> services =
|
final List<PrintServiceInfo> services =
|
||||||
mPrintManager.getPrintServices(PrintManager.ENABLED_SERVICES);
|
mPrintManager.getPrintServices(PrintManager.ENABLED_SERVICES);
|
||||||
if (services == null || services.isEmpty()) {
|
if (services == null || services.isEmpty()) {
|
||||||
return mContext.getText(R.string.off);
|
return mContext.getText(R.string.off);
|
||||||
} else {
|
} else {
|
||||||
final int count = services.size();
|
return StringUtil.getIcuPluralsString(mContext, services.size(),
|
||||||
return mContext.getResources().getQuantityString(
|
R.string.print_settings_summary);
|
||||||
R.plurals.print_settings_summary, count, count);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -193,8 +194,8 @@ public class CredentialManagementAppAdapter extends RecyclerView.Adapter<Recycle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getNumberOfUrlsText(Map<Uri, String> urisToAliases) {
|
private String getNumberOfUrlsText(Map<Uri, String> urisToAliases) {
|
||||||
return mContext.getResources().getQuantityString(R.plurals.number_of_urls,
|
return StringUtil.getIcuPluralsString(mContext, urisToAliases.size(),
|
||||||
urisToAliases.size(), urisToAliases.size());
|
R.string.number_of_urls);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -177,12 +177,14 @@ class AppNotificationRepository(
|
|||||||
fun calculateFrequencySummary(sentCount: Int): String {
|
fun calculateFrequencySummary(sentCount: Int): String {
|
||||||
val dailyFrequency = (sentCount.toFloat() / DAYS_TO_CHECK).roundToInt()
|
val dailyFrequency = (sentCount.toFloat() / DAYS_TO_CHECK).roundToInt()
|
||||||
return if (dailyFrequency > 0) {
|
return if (dailyFrequency > 0) {
|
||||||
context.resources.getQuantityString(
|
context.formatString(
|
||||||
R.plurals.notifications_sent_daily, dailyFrequency, dailyFrequency
|
R.string.notifications_sent_daily,
|
||||||
|
"count" to dailyFrequency,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
context.resources.getQuantityString(
|
context.formatString(
|
||||||
R.plurals.notifications_sent_weekly, sentCount, sentCount
|
R.string.notifications_sent_weekly,
|
||||||
|
"count" to sentCount,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -72,8 +72,8 @@ public class AutoclickPreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.getSummary().toString())
|
assertThat(mController.getSummary().toString())
|
||||||
.isEqualTo(AutoclickUtils.getAutoclickDelaySummary(
|
.isEqualTo(AutoclickUtils.getAutoclickDelaySummary(
|
||||||
mContext.getResources(),
|
mContext,
|
||||||
R.plurals.accessibilty_autoclick_preference_subtitle_medium_delay,
|
R.string.accessibilty_autoclick_preference_subtitle_medium_delay,
|
||||||
AUTOCLICK_DELAY_DEFAULT).toString());
|
AUTOCLICK_DELAY_DEFAULT).toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -40,7 +40,7 @@ public final class AutoclickUtilsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void getAutoclickDelaySummary_minDelay_shouldReturnOnSummary() {
|
public void getAutoclickDelaySummary_minDelay_shouldReturnOnSummary() {
|
||||||
final CharSequence summary = AutoclickUtils.getAutoclickDelaySummary(
|
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);
|
MIN_AUTOCLICK_DELAY_MS);
|
||||||
assertThat(summary.toString()).isEqualTo("0.2 seconds");
|
assertThat(summary.toString()).isEqualTo("0.2 seconds");
|
||||||
}
|
}
|
||||||
@@ -48,7 +48,7 @@ public final class AutoclickUtilsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void getAutoclickDelaySummary_maxDelay_shouldReturnOnSummary() {
|
public void getAutoclickDelaySummary_maxDelay_shouldReturnOnSummary() {
|
||||||
final CharSequence summary = AutoclickUtils.getAutoclickDelaySummary(
|
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);
|
MAX_AUTOCLICK_DELAY_MS);
|
||||||
assertThat(summary.toString()).isEqualTo("1 second");
|
assertThat(summary.toString()).isEqualTo("1 second");
|
||||||
}
|
}
|
||||||
|
@@ -46,6 +46,7 @@ import com.android.settings.testutils.FakeFeatureFactory;
|
|||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedPreference;
|
import com.android.settingslib.RestrictedPreference;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
@@ -140,8 +141,8 @@ public class FingerprintStatusPreferenceControllerTest {
|
|||||||
|
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
assertThat(mPreference.getSummary()).isEqualTo(mContext.getResources().getQuantityString(
|
assertThat(mPreference.getSummary()).isEqualTo(StringUtil.getIcuPluralsString(mContext, 1,
|
||||||
R.plurals.security_settings_fingerprint_preference_summary, 1, 1));
|
R.string.security_settings_fingerprint_preference_summary));
|
||||||
assertThat(mPreference.isVisible()).isTrue();
|
assertThat(mPreference.isVisible()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -35,6 +35,7 @@ import com.android.internal.logging.nano.MetricsProto;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
import com.android.settings.fuelgauge.batterytip.AppInfo;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -148,8 +149,8 @@ public class RestrictAppTipTest {
|
|||||||
@Test
|
@Test
|
||||||
public void getSummary_oneAppHandled_showHandledSummary() {
|
public void getSummary_oneAppHandled_showHandledSummary() {
|
||||||
assertThat(mHandledBatteryTip.getSummary(mContext).toString())
|
assertThat(mHandledBatteryTip.getSummary(mContext).toString())
|
||||||
.isEqualTo(mContext.getResources().getQuantityString(
|
.isEqualTo(StringUtil.getIcuPluralsString(mContext, 1,
|
||||||
R.plurals.battery_tip_restrict_handled_summary, 1));
|
R.string.battery_tip_restrict_handled_summary));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -157,8 +158,8 @@ public class RestrictAppTipTest {
|
|||||||
mUsageAppList.add(new AppInfo.Builder().build());
|
mUsageAppList.add(new AppInfo.Builder().build());
|
||||||
mHandledBatteryTip = new RestrictAppTip(BatteryTip.StateType.HANDLED, mUsageAppList);
|
mHandledBatteryTip = new RestrictAppTip(BatteryTip.StateType.HANDLED, mUsageAppList);
|
||||||
assertThat(mHandledBatteryTip.getSummary(mContext))
|
assertThat(mHandledBatteryTip.getSummary(mContext))
|
||||||
.isEqualTo(mContext.getResources().getQuantityString(
|
.isEqualTo(StringUtil.getIcuPluralsString(mContext, 2,
|
||||||
R.plurals.battery_tip_restrict_handled_summary, 2));
|
R.string.battery_tip_restrict_handled_summary));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -22,6 +22,7 @@ import android.content.Context;
|
|||||||
import android.location.LocationManager;
|
import android.location.LocationManager;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
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.
|
// Turn on location again and check if the previous summary text is still cached.
|
||||||
mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
|
mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
|
||||||
assertThat(mController.getSummary()).isEqualTo(
|
assertThat(mController.getSummary()).isEqualTo(
|
||||||
mContext.getResources().getQuantityString(
|
StringUtil.getIcuPluralsString(mContext, locationAppCount,
|
||||||
R.plurals.location_settings_summary_location_on, locationAppCount,
|
R.string.location_settings_summary_location_on));
|
||||||
locationAppCount));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -78,9 +78,8 @@ public class TopLevelLocationPreferenceControllerTest {
|
|||||||
mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
|
mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
|
||||||
mController.setLocationAppCount(locationAppCount);
|
mController.setLocationAppCount(locationAppCount);
|
||||||
assertThat(mController.getSummary()).isEqualTo(
|
assertThat(mController.getSummary()).isEqualTo(
|
||||||
mContext.getResources().getQuantityString(
|
StringUtil.getIcuPluralsString(mContext, locationAppCount,
|
||||||
R.plurals.location_settings_summary_location_on,
|
R.string.location_settings_summary_location_on));
|
||||||
locationAppCount, locationAppCount));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -89,8 +88,7 @@ public class TopLevelLocationPreferenceControllerTest {
|
|||||||
mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
|
mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
|
||||||
mController.setLocationAppCount(locationAppCount);
|
mController.setLocationAppCount(locationAppCount);
|
||||||
assertThat(mController.getSummary()).isEqualTo(
|
assertThat(mController.getSummary()).isEqualTo(
|
||||||
mContext.getResources().getQuantityString(
|
StringUtil.getIcuPluralsString(mContext, locationAppCount,
|
||||||
R.plurals.location_settings_summary_location_on,
|
R.string.location_settings_summary_location_on));
|
||||||
locationAppCount, locationAppCount));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -43,6 +43,7 @@ import androidx.lifecycle.LifecycleOwner;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settingslib.RestrictedPreference;
|
import com.android.settingslib.RestrictedPreference;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -119,8 +120,8 @@ public class PrintSettingsPreferenceControllerTest {
|
|||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
assertThat(mPreference.getSummary())
|
assertThat(mPreference.getSummary())
|
||||||
.isEqualTo(mContext.getResources()
|
.isEqualTo(StringUtil.getIcuPluralsString(mContext, 1,
|
||||||
.getQuantityString(R.plurals.print_jobs_summary, 1, 1));
|
R.string.print_jobs_summary));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -135,8 +136,8 @@ public class PrintSettingsPreferenceControllerTest {
|
|||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
assertThat(mPreference.getSummary())
|
assertThat(mPreference.getSummary())
|
||||||
.isEqualTo(mContext.getResources()
|
.isEqualTo(StringUtil.getIcuPluralsString(mContext, 2,
|
||||||
.getQuantityString(R.plurals.print_settings_summary, 2, 2));
|
R.string.print_settings_summary));
|
||||||
|
|
||||||
// No service
|
// No service
|
||||||
when(mPrintManager.getPrintServices(PrintManager.ENABLED_SERVICES)).thenReturn(null);
|
when(mPrintManager.getPrintServices(PrintManager.ENABLED_SERVICES)).thenReturn(null);
|
||||||
|
@@ -41,6 +41,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
|
|||||||
import com.android.settings.Settings;
|
import com.android.settings.Settings;
|
||||||
import com.android.settings.testutils.ResourcesUtils;
|
import com.android.settings.testutils.ResourcesUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -244,11 +245,10 @@ public class CombinedBiometricStatusUtilsTest {
|
|||||||
public void getSummary_whenNoFaceEnrolled_whenMultipleFingerprints_returnsFingerprints() {
|
public void getSummary_whenNoFaceEnrolled_whenMultipleFingerprints_returnsFingerprints() {
|
||||||
final int enrolledFingerprintsCount = 2;
|
final int enrolledFingerprintsCount = 2;
|
||||||
final int stringResId = ResourcesUtils.getResourcesId(
|
final int stringResId = ResourcesUtils.getResourcesId(
|
||||||
ApplicationProvider.getApplicationContext(), "plurals",
|
ApplicationProvider.getApplicationContext(), "string",
|
||||||
"security_settings_fingerprint_preference_summary");
|
"security_settings_fingerprint_preference_summary");
|
||||||
final String summary = mApplicationContext.getResources().getQuantityString(
|
final String summary = StringUtil.getIcuPluralsString(mApplicationContext,
|
||||||
stringResId, enrolledFingerprintsCount /* quantity */,
|
enrolledFingerprintsCount, stringResId);
|
||||||
enrolledFingerprintsCount /* formatArgs */);
|
|
||||||
|
|
||||||
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||||
when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
|
when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
|
||||||
@@ -261,11 +261,10 @@ public class CombinedBiometricStatusUtilsTest {
|
|||||||
public void getSummary_whenNoFaceEnrolled_whenSingleFingerprints_returnsFingerprints() {
|
public void getSummary_whenNoFaceEnrolled_whenSingleFingerprints_returnsFingerprints() {
|
||||||
final int enrolledFingerprintsCount = 1;
|
final int enrolledFingerprintsCount = 1;
|
||||||
final int stringResId = ResourcesUtils.getResourcesId(
|
final int stringResId = ResourcesUtils.getResourcesId(
|
||||||
ApplicationProvider.getApplicationContext(), "plurals",
|
ApplicationProvider.getApplicationContext(), "string",
|
||||||
"security_settings_fingerprint_preference_summary");
|
"security_settings_fingerprint_preference_summary");
|
||||||
final String summary = mApplicationContext.getResources().getQuantityString(
|
final String summary = StringUtil.getIcuPluralsString(mApplicationContext,
|
||||||
stringResId, enrolledFingerprintsCount /* quantity */,
|
enrolledFingerprintsCount, stringResId);
|
||||||
enrolledFingerprintsCount /* formatArgs */);
|
|
||||||
|
|
||||||
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||||
when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
|
when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
|
||||||
|
@@ -37,6 +37,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
|
|||||||
|
|
||||||
import com.android.settings.testutils.ResourcesUtils;
|
import com.android.settings.testutils.ResourcesUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -165,11 +166,10 @@ public class FingerprintStatusUtilsTest {
|
|||||||
public void getSummary_whenEnrolled_returnsSummary() {
|
public void getSummary_whenEnrolled_returnsSummary() {
|
||||||
final int enrolledFingerprintsCount = 2;
|
final int enrolledFingerprintsCount = 2;
|
||||||
final int stringResId = ResourcesUtils.getResourcesId(
|
final int stringResId = ResourcesUtils.getResourcesId(
|
||||||
ApplicationProvider.getApplicationContext(), "plurals",
|
ApplicationProvider.getApplicationContext(), "string",
|
||||||
"security_settings_fingerprint_preference_summary");
|
"security_settings_fingerprint_preference_summary");
|
||||||
final String summary = mApplicationContext.getResources().getQuantityString(
|
final String summary = StringUtil.getIcuPluralsString(mApplicationContext,
|
||||||
stringResId, enrolledFingerprintsCount /* quantity */,
|
enrolledFingerprintsCount, stringResId);
|
||||||
enrolledFingerprintsCount /* formatArgs */);
|
|
||||||
|
|
||||||
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
|
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
|
||||||
when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(
|
when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(
|
||||||
|
@@ -49,6 +49,7 @@ import com.android.settings.Settings;
|
|||||||
import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal;
|
import com.android.settings.biometrics.face.FaceEnrollIntroductionInternal;
|
||||||
import com.android.settings.biometrics.fingerprint.FingerprintSettings;
|
import com.android.settings.biometrics.fingerprint.FingerprintSettings;
|
||||||
import com.android.settings.testutils.ResourcesUtils;
|
import com.android.settings.testutils.ResourcesUtils;
|
||||||
|
import com.android.settingslib.utils.StringUtil;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -568,13 +569,12 @@ public class BiometricsSafetySourceTest {
|
|||||||
private void assertSafetySourceDisabledDataSetWithPluralSummary(String expectedTitleResName,
|
private void assertSafetySourceDisabledDataSetWithPluralSummary(String expectedTitleResName,
|
||||||
String expectedSummaryResName, int expectedSummaryQuantity) {
|
String expectedSummaryResName, int expectedSummaryQuantity) {
|
||||||
final int stringResId = ResourcesUtils.getResourcesId(
|
final int stringResId = ResourcesUtils.getResourcesId(
|
||||||
ApplicationProvider.getApplicationContext(), "plurals",
|
ApplicationProvider.getApplicationContext(), "string",
|
||||||
expectedSummaryResName);
|
expectedSummaryResName);
|
||||||
assertSafetySourceDisabledDataSet(
|
assertSafetySourceDisabledDataSet(
|
||||||
ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName),
|
ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName),
|
||||||
mApplicationContext.getResources().getQuantityString(stringResId,
|
StringUtil.getIcuPluralsString(mApplicationContext,
|
||||||
expectedSummaryQuantity /* quantity */,
|
expectedSummaryQuantity, stringResId)
|
||||||
expectedSummaryQuantity /* formatArgs */)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -582,13 +582,12 @@ public class BiometricsSafetySourceTest {
|
|||||||
String expectedSummaryResName, int expectedSummaryQuantity,
|
String expectedSummaryResName, int expectedSummaryQuantity,
|
||||||
String expectedSettingsClassName) {
|
String expectedSettingsClassName) {
|
||||||
final int stringResId = ResourcesUtils.getResourcesId(
|
final int stringResId = ResourcesUtils.getResourcesId(
|
||||||
ApplicationProvider.getApplicationContext(), "plurals",
|
ApplicationProvider.getApplicationContext(), "string",
|
||||||
expectedSummaryResName);
|
expectedSummaryResName);
|
||||||
assertSafetySourceEnabledDataSet(
|
assertSafetySourceEnabledDataSet(
|
||||||
ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName),
|
ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName),
|
||||||
mApplicationContext.getResources().getQuantityString(stringResId,
|
StringUtil.getIcuPluralsString(mApplicationContext,
|
||||||
expectedSummaryQuantity /* quantity */,
|
expectedSummaryQuantity, stringResId),
|
||||||
expectedSummaryQuantity /* formatArgs */),
|
|
||||||
expectedSettingsClassName
|
expectedSettingsClassName
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user