101f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu/*
201f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * Copyright (C) 2017 The Android Open Source Project
301f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu *
401f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * Licensed under the Apache License, Version 2.0 (the "License");
501f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * you may not use this file except in compliance with the License.
601f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * You may obtain a copy of the License at
701f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu *
801f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu *      http://www.apache.org/licenses/LICENSE-2.0
901f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu *
1001f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * Unless required by applicable law or agreed to in writing, software
1101f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * distributed under the License is distributed on an "AS IS" BASIS,
1201f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1301f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * See the License for the specific language governing permissions and
1401f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * limitations under the License.
1501f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu */
1601f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
1701f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanupackage android.support.v4.os;
1801f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
1901f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanuimport static android.support.annotation.RestrictTo.Scope.LIBRARY_GROUP;
2001f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
2101f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanuimport android.support.annotation.IntRange;
2201f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanuimport android.support.annotation.NonNull;
2301f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanuimport android.support.annotation.Nullable;
2401f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanuimport android.support.annotation.RestrictTo;
2501f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
2601f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanuimport java.util.Locale;
2701f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
2801f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu/**
2901f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * Interface describing backwards-compatible LocaleList APIs.
3001f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu *
3101f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu * @hide Internal use only
3201f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu */
3301f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu@RestrictTo(LIBRARY_GROUP)
3401f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanuinterface LocaleListInterface {
3501f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    void setLocaleList(@NonNull Locale... list);
3601f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
3701f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    Object getLocaleList();
3801f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
3901f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    Locale get(int index);
4001f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
4101f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    boolean isEmpty();
4201f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
4301f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    @IntRange(from = 0)
4401f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    int size();
4501f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
4601f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    @IntRange(from = -1)
4701f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    int indexOf(Locale locale);
4801f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
49ad1b0e82100ee31e70040d77bfa4d847b2bf0864Aurimas Liutikas    @Override
50ad1b0e82100ee31e70040d77bfa4d847b2bf0864Aurimas Liutikas    boolean equals(Object other);
5101f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
52ad1b0e82100ee31e70040d77bfa4d847b2bf0864Aurimas Liutikas    @Override
5301f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    int hashCode();
5401f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
55ad1b0e82100ee31e70040d77bfa4d847b2bf0864Aurimas Liutikas    @Override
5601f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    String toString();
5701f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
5801f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    String toLanguageTags();
5901f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu
6001f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    @Nullable
6101f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu    Locale getFirstMatch(String[] supportedLocales);
6201f7e32cdf00e64181661c34a3190b70ad4c79afAndrei Stingaceanu}
63