Replace zen setting plurals with MessageFormat
For better translations. See go/android-i18n-plurals. Test: manual Test: make RunSettingsRoboTests7 Fixes: 156651436 Change-Id: Ic82140b81bf49f071291d2824fa45d310de238ae
This commit is contained in:
@@ -26,7 +26,7 @@ import android.app.AutomaticZenRule;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.icu.text.ListFormatter;
|
||||
import android.icu.text.MessageFormat;
|
||||
import android.net.Uri;
|
||||
import android.provider.ContactsContract;
|
||||
import android.provider.Settings;
|
||||
@@ -41,7 +41,9 @@ import com.android.settings.R;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
public class ZenModeBackend {
|
||||
@@ -468,37 +470,30 @@ public class ZenModeBackend {
|
||||
String getStarredContactsSummary(Context context) {
|
||||
List<String> starredContacts = getStarredContacts();
|
||||
int numStarredContacts = starredContacts.size();
|
||||
|
||||
List<String> displayContacts = new ArrayList<>();
|
||||
|
||||
if (numStarredContacts == 0) {
|
||||
displayContacts.add(context.getString(R.string.zen_mode_starred_contacts_summary_none));
|
||||
} else {
|
||||
for (int i = 0; i < 2 && i < numStarredContacts; i++) {
|
||||
displayContacts.add(starredContacts.get(i));
|
||||
}
|
||||
|
||||
if (numStarredContacts == 3) {
|
||||
displayContacts.add(starredContacts.get(2));
|
||||
} else if (numStarredContacts > 2) {
|
||||
displayContacts.add(context.getResources().getQuantityString(
|
||||
R.plurals.zen_mode_starred_contacts_summary_additional_contacts,
|
||||
numStarredContacts - 2, numStarredContacts - 2));
|
||||
MessageFormat msgFormat = new MessageFormat(
|
||||
mContext.getString(R.string.zen_mode_starred_contacts_summary_contacts),
|
||||
Locale.getDefault());
|
||||
Map<String, Object> args = new HashMap<>();
|
||||
args.put("count", numStarredContacts);
|
||||
if (numStarredContacts >= 1) {
|
||||
args.put("contact_1", starredContacts.get(0));
|
||||
if (numStarredContacts >= 2) {
|
||||
args.put("contact_2", starredContacts.get(1));
|
||||
if (numStarredContacts == 3) {
|
||||
args.put("contact_3", starredContacts.get(2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// values in displayContacts must not be null
|
||||
return ListFormatter.getInstance().format(displayContacts);
|
||||
return msgFormat.format(args);
|
||||
}
|
||||
|
||||
String getContactsNumberSummary(Context context) {
|
||||
final int numContacts = queryAllContactsData().getCount();
|
||||
if (numContacts == 0) {
|
||||
return context.getResources().getString(
|
||||
R.string.zen_mode_contacts_count_none);
|
||||
}
|
||||
return context.getResources().getQuantityString(R.plurals.zen_mode_contacts_count,
|
||||
numContacts, numContacts);
|
||||
MessageFormat msgFormat = new MessageFormat(
|
||||
mContext.getString(R.string.zen_mode_contacts_count),
|
||||
Locale.getDefault());
|
||||
Map<String, Object> args = new HashMap<>();
|
||||
args.put("count", queryAllContactsData().getCount());
|
||||
return msgFormat.format(args);
|
||||
}
|
||||
|
||||
private Cursor queryStarredContactsData() {
|
||||
|
||||
Reference in New Issue
Block a user