Loading core/java/com/android/internal/app/LocaleHelper.java +5 −3 Original line number Diff line number Diff line Loading @@ -180,14 +180,16 @@ public class LocaleHelper { */ public static final class LocaleInfoComparator implements Comparator<LocaleStore.LocaleInfo> { private final Collator mCollator; private final boolean mCountryMode; /** * Constructor. * * @param sortLocale the locale to be used for sorting. */ public LocaleInfoComparator(Locale sortLocale) { public LocaleInfoComparator(Locale sortLocale, boolean countryMode) { mCollator = Collator.getInstance(sortLocale); mCountryMode = countryMode; } /** Loading @@ -202,9 +204,9 @@ public class LocaleHelper { public int compare(LocaleStore.LocaleInfo lhs, LocaleStore.LocaleInfo rhs) { // We don't care about the various suggestion types, just "suggested" (!= 0) // and "all others" (== 0) if (lhs.isSuggested() == rhs.isSuggested()) { if (mCountryMode || (lhs.isSuggested() == rhs.isSuggested())) { // They are in the same "bucket" (suggested / others), so we compare the text return mCollator.compare(lhs.getLabel(), rhs.getLabel()); return mCollator.compare(lhs.getLabel(mCountryMode), rhs.getLabel(mCountryMode)); } else { // One locale is suggested and one is not, so we put them in different "buckets" return lhs.isSuggested() ? -1 : 1; Loading core/java/com/android/internal/app/LocalePickerWithRegion.java +12 −27 Original line number Diff line number Diff line Loading @@ -50,7 +50,6 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O private Set<LocaleStore.LocaleInfo> mLocaleList; private LocaleStore.LocaleInfo mParentLocale; private boolean mTranslatedOnly = false; private boolean mCountryMode = false; /** * Other classes can register to be notified when a locale was selected. Loading @@ -70,15 +69,14 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O boolean translatedOnly) { LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); boolean shouldShowTheList = localePicker.setListener(context, listener, parent, true /* country mode */, translatedOnly); translatedOnly); return shouldShowTheList ? localePicker : null; } public static LocalePickerWithRegion createLanguagePicker(Context context, LocaleSelectedListener listener, boolean translatedOnly) { LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); localePicker.setListener(context, listener, null, false /* language mode */, translatedOnly); localePicker.setListener(context, listener, /* parent */ null, translatedOnly); return localePicker; } Loading @@ -96,14 +94,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O * "pretending" it was selected, and return false.</p> */ private boolean setListener(Context context, LocaleSelectedListener listener, LocaleStore.LocaleInfo parent, boolean countryMode, boolean translatedOnly) { if (countryMode && (parent == null || parent.getLocale() == null)) { // The list of countries is determined as all the countries where the parent language // is used. throw new IllegalArgumentException("The country selection list needs a parent."); } this.mCountryMode = countryMode; LocaleStore.LocaleInfo parent, boolean translatedOnly) { this.mParentLocale = parent; this.mListener = listener; this.mTranslatedOnly = translatedOnly; Loading @@ -116,7 +107,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O Collections.addAll(langTagsToIgnore, langTags); } if (countryMode) { if (parent != null) { mLocaleList = LocaleStore.getLevelLocales(context, langTagsToIgnore, parent, translatedOnly); if (mLocaleList.size() <= 1) { Loading @@ -138,13 +129,11 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O super.onCreate(savedInstanceState); setHasOptionsMenu(true); final Locale sortingLocale = (mCountryMode && mParentLocale != null) ? mParentLocale.getLocale() : Locale.getDefault(); mAdapter = new SuggestedLocaleAdapter(mLocaleList, mCountryMode); final boolean countryMode = mParentLocale != null; final Locale sortingLocale = countryMode ? mParentLocale.getLocale() : Locale.getDefault(); mAdapter = new SuggestedLocaleAdapter(mLocaleList, countryMode); final LocaleHelper.LocaleInfoComparator comp = new LocaleHelper.LocaleInfoComparator(sortingLocale); new LocaleHelper.LocaleInfoComparator(sortingLocale, countryMode); mAdapter.sort(comp); setListAdapter(mAdapter); } Loading @@ -164,12 +153,8 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O public void onResume() { super.onResume(); if (mCountryMode) { if (mParentLocale == null) { this.getActivity().setTitle(R.string.country_selection_title); } else { if (mParentLocale != null) { this.getActivity().setTitle(mParentLocale.getFullNameNative()); } } else { this.getActivity().setTitle(R.string.language_selection_title); } Loading @@ -182,7 +167,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O final LocaleStore.LocaleInfo locale = (LocaleStore.LocaleInfo) getListAdapter().getItem(position); if (mCountryMode || locale.getParent() != null) { if (locale.getParent() != null) { if (mListener != null) { mListener.onLocaleSelected(locale); } Loading @@ -205,7 +190,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { if (!mCountryMode) { if (mParentLocale == null) { inflater.inflate(R.menu.language_selection_list, menu); MenuItem mSearchMenuItem = menu.findItem(R.id.locale_search_menu); Loading core/java/com/android/internal/app/LocaleStore.java +5 −7 Original line number Diff line number Diff line Loading @@ -145,11 +145,11 @@ public class LocaleStore { return mLangScriptKey; } String getLabel() { if (getParent() == null || this.isSuggestionOfType(SUGGESTION_TYPE_SIM)) { return getFullNameNative(); } else { String getLabel(boolean countryMode) { if (countryMode) { return getFullCountryNameNative(); } else { return getFullNameNative(); } } Loading Loading @@ -311,10 +311,8 @@ public class LocaleStore { if (level == 2) { if (parent != null) { // region selection if (parentId.equals(li.getParent().toLanguageTag())) { if (!li.isSuggestionOfType(LocaleInfo.SUGGESTION_TYPE_SIM)) { result.add(li); } } } else { // language selection if (li.isSuggestionOfType(LocaleInfo.SUGGESTION_TYPE_SIM)) { result.add(li); Loading core/java/com/android/internal/app/SuggestedLocaleAdapter.java +4 −1 Original line number Diff line number Diff line Loading @@ -156,7 +156,7 @@ public class SuggestedLocaleAdapter extends BaseAdapter implements Filterable { TextView text = (TextView) convertView.findViewById(R.id.locale); LocaleStore.LocaleInfo item = (LocaleStore.LocaleInfo) getItem(position); text.setText(item.getLabel()); text.setText(item.getLabel(mCountryMode)); text.setTextLocale(item.getLocale()); if (mCountryMode) { int layoutDir = TextUtils.getLayoutDirectionFromLocale(item.getParent()); Loading @@ -171,6 +171,9 @@ public class SuggestedLocaleAdapter extends BaseAdapter implements Filterable { } private boolean showHeaders() { if (mCountryMode) { // never show suggestions in country mode return false; } return mSuggestionCount != 0 && mSuggestionCount != mLocaleOptions.size(); } Loading Loading
core/java/com/android/internal/app/LocaleHelper.java +5 −3 Original line number Diff line number Diff line Loading @@ -180,14 +180,16 @@ public class LocaleHelper { */ public static final class LocaleInfoComparator implements Comparator<LocaleStore.LocaleInfo> { private final Collator mCollator; private final boolean mCountryMode; /** * Constructor. * * @param sortLocale the locale to be used for sorting. */ public LocaleInfoComparator(Locale sortLocale) { public LocaleInfoComparator(Locale sortLocale, boolean countryMode) { mCollator = Collator.getInstance(sortLocale); mCountryMode = countryMode; } /** Loading @@ -202,9 +204,9 @@ public class LocaleHelper { public int compare(LocaleStore.LocaleInfo lhs, LocaleStore.LocaleInfo rhs) { // We don't care about the various suggestion types, just "suggested" (!= 0) // and "all others" (== 0) if (lhs.isSuggested() == rhs.isSuggested()) { if (mCountryMode || (lhs.isSuggested() == rhs.isSuggested())) { // They are in the same "bucket" (suggested / others), so we compare the text return mCollator.compare(lhs.getLabel(), rhs.getLabel()); return mCollator.compare(lhs.getLabel(mCountryMode), rhs.getLabel(mCountryMode)); } else { // One locale is suggested and one is not, so we put them in different "buckets" return lhs.isSuggested() ? -1 : 1; Loading
core/java/com/android/internal/app/LocalePickerWithRegion.java +12 −27 Original line number Diff line number Diff line Loading @@ -50,7 +50,6 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O private Set<LocaleStore.LocaleInfo> mLocaleList; private LocaleStore.LocaleInfo mParentLocale; private boolean mTranslatedOnly = false; private boolean mCountryMode = false; /** * Other classes can register to be notified when a locale was selected. Loading @@ -70,15 +69,14 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O boolean translatedOnly) { LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); boolean shouldShowTheList = localePicker.setListener(context, listener, parent, true /* country mode */, translatedOnly); translatedOnly); return shouldShowTheList ? localePicker : null; } public static LocalePickerWithRegion createLanguagePicker(Context context, LocaleSelectedListener listener, boolean translatedOnly) { LocalePickerWithRegion localePicker = new LocalePickerWithRegion(); localePicker.setListener(context, listener, null, false /* language mode */, translatedOnly); localePicker.setListener(context, listener, /* parent */ null, translatedOnly); return localePicker; } Loading @@ -96,14 +94,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O * "pretending" it was selected, and return false.</p> */ private boolean setListener(Context context, LocaleSelectedListener listener, LocaleStore.LocaleInfo parent, boolean countryMode, boolean translatedOnly) { if (countryMode && (parent == null || parent.getLocale() == null)) { // The list of countries is determined as all the countries where the parent language // is used. throw new IllegalArgumentException("The country selection list needs a parent."); } this.mCountryMode = countryMode; LocaleStore.LocaleInfo parent, boolean translatedOnly) { this.mParentLocale = parent; this.mListener = listener; this.mTranslatedOnly = translatedOnly; Loading @@ -116,7 +107,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O Collections.addAll(langTagsToIgnore, langTags); } if (countryMode) { if (parent != null) { mLocaleList = LocaleStore.getLevelLocales(context, langTagsToIgnore, parent, translatedOnly); if (mLocaleList.size() <= 1) { Loading @@ -138,13 +129,11 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O super.onCreate(savedInstanceState); setHasOptionsMenu(true); final Locale sortingLocale = (mCountryMode && mParentLocale != null) ? mParentLocale.getLocale() : Locale.getDefault(); mAdapter = new SuggestedLocaleAdapter(mLocaleList, mCountryMode); final boolean countryMode = mParentLocale != null; final Locale sortingLocale = countryMode ? mParentLocale.getLocale() : Locale.getDefault(); mAdapter = new SuggestedLocaleAdapter(mLocaleList, countryMode); final LocaleHelper.LocaleInfoComparator comp = new LocaleHelper.LocaleInfoComparator(sortingLocale); new LocaleHelper.LocaleInfoComparator(sortingLocale, countryMode); mAdapter.sort(comp); setListAdapter(mAdapter); } Loading @@ -164,12 +153,8 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O public void onResume() { super.onResume(); if (mCountryMode) { if (mParentLocale == null) { this.getActivity().setTitle(R.string.country_selection_title); } else { if (mParentLocale != null) { this.getActivity().setTitle(mParentLocale.getFullNameNative()); } } else { this.getActivity().setTitle(R.string.language_selection_title); } Loading @@ -182,7 +167,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O final LocaleStore.LocaleInfo locale = (LocaleStore.LocaleInfo) getListAdapter().getItem(position); if (mCountryMode || locale.getParent() != null) { if (locale.getParent() != null) { if (mListener != null) { mListener.onLocaleSelected(locale); } Loading @@ -205,7 +190,7 @@ public class LocalePickerWithRegion extends ListFragment implements SearchView.O @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { if (!mCountryMode) { if (mParentLocale == null) { inflater.inflate(R.menu.language_selection_list, menu); MenuItem mSearchMenuItem = menu.findItem(R.id.locale_search_menu); Loading
core/java/com/android/internal/app/LocaleStore.java +5 −7 Original line number Diff line number Diff line Loading @@ -145,11 +145,11 @@ public class LocaleStore { return mLangScriptKey; } String getLabel() { if (getParent() == null || this.isSuggestionOfType(SUGGESTION_TYPE_SIM)) { return getFullNameNative(); } else { String getLabel(boolean countryMode) { if (countryMode) { return getFullCountryNameNative(); } else { return getFullNameNative(); } } Loading Loading @@ -311,10 +311,8 @@ public class LocaleStore { if (level == 2) { if (parent != null) { // region selection if (parentId.equals(li.getParent().toLanguageTag())) { if (!li.isSuggestionOfType(LocaleInfo.SUGGESTION_TYPE_SIM)) { result.add(li); } } } else { // language selection if (li.isSuggestionOfType(LocaleInfo.SUGGESTION_TYPE_SIM)) { result.add(li); Loading
core/java/com/android/internal/app/SuggestedLocaleAdapter.java +4 −1 Original line number Diff line number Diff line Loading @@ -156,7 +156,7 @@ public class SuggestedLocaleAdapter extends BaseAdapter implements Filterable { TextView text = (TextView) convertView.findViewById(R.id.locale); LocaleStore.LocaleInfo item = (LocaleStore.LocaleInfo) getItem(position); text.setText(item.getLabel()); text.setText(item.getLabel(mCountryMode)); text.setTextLocale(item.getLocale()); if (mCountryMode) { int layoutDir = TextUtils.getLayoutDirectionFromLocale(item.getParent()); Loading @@ -171,6 +171,9 @@ public class SuggestedLocaleAdapter extends BaseAdapter implements Filterable { } private boolean showHeaders() { if (mCountryMode) { // never show suggestions in country mode return false; } return mSuggestionCount != 0 && mSuggestionCount != mLocaleOptions.size(); } Loading