Merge "Cleanup LocaleList docs given API review" into nyc-dev

This commit is contained in:
Clara Bayarri
2016-04-27 15:32:57 +00:00
committed by Android (Google) Code Review
4 changed files with 55 additions and 33 deletions

View File

@@ -40380,9 +40380,7 @@ package android.util {
} }
public final class LocaleList implements android.os.Parcelable { public final class LocaleList implements android.os.Parcelable {
ctor public LocaleList(); ctor public LocaleList(java.util.Locale...);
ctor public LocaleList(java.util.Locale);
ctor public LocaleList(java.util.Locale[]);
method public int describeContents(); method public int describeContents();
method public static android.util.LocaleList forLanguageTags(java.lang.String); method public static android.util.LocaleList forLanguageTags(java.lang.String);
method public java.util.Locale get(int); method public java.util.Locale get(int);

View File

@@ -43370,9 +43370,7 @@ package android.util {
} }
public final class LocaleList implements android.os.Parcelable { public final class LocaleList implements android.os.Parcelable {
ctor public LocaleList(); ctor public LocaleList(java.util.Locale...);
ctor public LocaleList(java.util.Locale);
ctor public LocaleList(java.util.Locale[]);
method public int describeContents(); method public int describeContents();
method public static android.util.LocaleList forLanguageTags(java.lang.String); method public static android.util.LocaleList forLanguageTags(java.lang.String);
method public java.util.Locale get(int); method public java.util.Locale get(int);

View File

@@ -40458,9 +40458,7 @@ package android.util {
} }
public final class LocaleList implements android.os.Parcelable { public final class LocaleList implements android.os.Parcelable {
ctor public LocaleList(); ctor public LocaleList(java.util.Locale...);
ctor public LocaleList(java.util.Locale);
ctor public LocaleList(java.util.Locale[]);
method public int describeContents(); method public int describeContents();
method public static android.util.LocaleList forLanguageTags(java.lang.String); method public static android.util.LocaleList forLanguageTags(java.lang.String);
method public java.util.Locale get(int); method public java.util.Locale get(int);

View File

@@ -32,8 +32,8 @@ import java.util.HashSet;
import java.util.Locale; import java.util.Locale;
/** /**
* LocaleList is an immutable list of Locales, typically used to keep an * LocaleList is an immutable list of Locales, typically used to keep an ordered list of user
* ordered user preferences for locales. * preferences for locales.
*/ */
public final class LocaleList implements Parcelable { public final class LocaleList implements Parcelable {
private final Locale[] mList; private final Locale[] mList;
@@ -46,19 +46,42 @@ public final class LocaleList implements Parcelable {
private static final Locale[] sEmptyList = new Locale[0]; private static final Locale[] sEmptyList = new Locale[0];
private static final LocaleList sEmptyLocaleList = new LocaleList(); private static final LocaleList sEmptyLocaleList = new LocaleList();
public Locale get(int location) { /**
return (0 <= location && location < mList.length) ? mList[location] : null; * Retrieves the {@link Locale} at the specified index.
*
* @param index The position to retrieve.
* @return The {@link Locale} in the given index.
*/
public Locale get(int index) {
return (0 <= index && index < mList.length) ? mList[index] : null;
} }
/**
* Returns whether the {@link LocaleList} contains no {@link Locale} items.
*
* @return {@code true} if this {@link LocaleList} has no {@link Locale} items, {@code false}
* otherwise.
*/
public boolean isEmpty() { public boolean isEmpty() {
return mList.length == 0; return mList.length == 0;
} }
/**
* Returns the number of {@link Locale} items in this {@link LocaleList}.
*/
@IntRange(from=0) @IntRange(from=0)
public int size() { public int size() {
return mList.length; return mList.length;
} }
/**
* Searches this {@link LocaleList} for the specified {@link Locale} and returns the index of
* the first occurrence.
*
* @param locale The {@link Locale} to search for.
* @return The index of the first occurrence of the {@link Locale} or {@code -1} if the item
* wasn't found.
*/
@IntRange(from=-1) @IntRange(from=-1)
public int indexOf(Locale locale) { public int indexOf(Locale locale) {
for (int i = 0; i < mList.length; i++) { for (int i = 0; i < mList.length; i++) {
@@ -118,6 +141,9 @@ public final class LocaleList implements Parcelable {
dest.writeString(mStringRepresentation); dest.writeString(mStringRepresentation);
} }
/**
* Retrieves a String representation of the language tags in this list.
*/
@NonNull @NonNull
public String toLanguageTags() { public String toLanguageTags() {
return mStringRepresentation; return mStringRepresentation;
@@ -126,6 +152,8 @@ public final class LocaleList implements Parcelable {
/** /**
* It is almost always better to call {@link #getEmptyLocaleList()} instead which returns * It is almost always better to call {@link #getEmptyLocaleList()} instead which returns
* a pre-constructed empty locale list. * a pre-constructed empty locale list.
*
* @hide
*/ */
public LocaleList() { public LocaleList() {
mList = sEmptyList; mList = sEmptyList;
@@ -133,25 +161,15 @@ public final class LocaleList implements Parcelable {
} }
/** /**
* Creates a new {@link LocaleList}.
*
* <p>For empty lists of {@link Locale} items it is better to use {@link #getEmptyLocaleList()},
* which returns a pre-constructed empty list.</p>
*
* @throws NullPointerException if any of the input locales is <code>null</code>. * @throws NullPointerException if any of the input locales is <code>null</code>.
* @throws IllegalArgumentException if any of the input locales repeat. * @throws IllegalArgumentException if any of the input locales repeat.
*/ */
public LocaleList(@Nullable Locale locale) { public LocaleList(@Nullable Locale... list) {
if (locale == null) {
mList = sEmptyList;
mStringRepresentation = "";
} else {
mList = new Locale[1];
mList[0] = (Locale) locale.clone();
mStringRepresentation = locale.toLanguageTag();
}
}
/**
* @throws NullPointerException if any of the input locales is <code>null</code>.
* @throws IllegalArgumentException if any of the input locales repeat.
*/
public LocaleList(@Nullable Locale[] list) {
if (list == null || list.length == 0) { if (list == null || list.length == 0) {
mList = sEmptyList; mList = sEmptyList;
mStringRepresentation = ""; mStringRepresentation = "";
@@ -242,11 +260,20 @@ public final class LocaleList implements Parcelable {
} }
}; };
/**
* Retrieve an empty instance of {@link LocaleList}.
*/
@NonNull @NonNull
public static LocaleList getEmptyLocaleList() { public static LocaleList getEmptyLocaleList() {
return sEmptyLocaleList; return sEmptyLocaleList;
} }
/**
* Generates a new LocaleList with the given language tags.
*
* @param list The language tags to be included as a single {@link String} separated by commas.
* @return A new instance with the {@link Locale} items identified by the given tags.
*/
@NonNull @NonNull
public static LocaleList forLanguageTags(@Nullable String list) { public static LocaleList forLanguageTags(@Nullable String list) {
if (list == null || list.equals("")) { if (list == null || list.equals("")) {
@@ -374,7 +401,8 @@ public final class LocaleList implements Parcelable {
* Returns the first match in the locale list given an unordered array of supported locales * Returns the first match in the locale list given an unordered array of supported locales
* in BCP 47 format. * in BCP 47 format.
* *
* If the locale list is empty, null would be returned. * @return The first {@link Locale} from this list that appears in the given array, or
* {@code null} if the {@link LocaleList} is empty.
*/ */
@Nullable @Nullable
public Locale getFirstMatch(String[] supportedLocales) { public Locale getFirstMatch(String[] supportedLocales) {
@@ -445,9 +473,9 @@ public final class LocaleList implements Parcelable {
* preferred locales, having concluded that the primary preference is not supported but a * preferred locales, having concluded that the primary preference is not supported but a
* secondary preference is. * secondary preference is.
* *
* Note that the default LocaleList would change if Locale.setDefault() is called. This method * <p>Note that the default LocaleList would change if Locale.setDefault() is called. This
* takes that into account by always checking the output of Locale.getDefault() and * method takes that into account by always checking the output of Locale.getDefault() and
* recalculating the default LocaleList if needed. * recalculating the default LocaleList if needed.</p>
*/ */
@NonNull @Size(min=1) @NonNull @Size(min=1)
public static LocaleList getDefault() { public static LocaleList getDefault() {