184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler/*
284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * Copyright (C) 2015 The Android Open Source Project
384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler *
484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * Licensed under the Apache License, Version 2.0 (the "License");
584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * you may not use this file except in compliance with the License.
684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * You may obtain a copy of the License at
784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler *
884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler *      http://www.apache.org/licenses/LICENSE-2.0
984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler *
1084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * Unless required by applicable law or agreed to in writing, software
1184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * distributed under the License is distributed on an "AS IS" BASIS,
1284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * See the License for the specific language governing permissions and
1484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * limitations under the License.
1584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler */
1684765eaea7da18d0576db557959129e9d0db8e8cTony Mantlerpackage android.support.v4.content.res;
1784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
1884765eaea7da18d0576db557959129e9d0db8e8cTony Mantlerimport android.content.res.TypedArray;
1984765eaea7da18d0576db557959129e9d0db8e8cTony Mantlerimport android.graphics.drawable.Drawable;
2084765eaea7da18d0576db557959129e9d0db8e8cTony Mantlerimport android.support.annotation.AnyRes;
2184765eaea7da18d0576db557959129e9d0db8e8cTony Mantlerimport android.support.annotation.StyleableRes;
2284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
2384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler/**
2484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * Compat methods for accessing TypedArray values.
2584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler *
2684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler * @hide
2784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler */
2884765eaea7da18d0576db557959129e9d0db8e8cTony Mantlerpublic class TypedArrayUtils {
2984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    public static boolean getBoolean(TypedArray a, @StyleableRes int index,
3084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            @StyleableRes int fallbackIndex, boolean defaultValue) {
3184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        boolean val = a.getBoolean(fallbackIndex, defaultValue);
3284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        return a.getBoolean(index, val);
3384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    }
3484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
3584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    public static Drawable getDrawable(TypedArray a, @StyleableRes int index,
3684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            @StyleableRes int fallbackIndex) {
3784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        Drawable val = a.getDrawable(index);
3884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        if (val == null) {
3984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            val = a.getDrawable(fallbackIndex);
4084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        }
4184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        return val;
4284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    }
4384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
4484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    public static int getInt(TypedArray a, @StyleableRes int index,
4584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            @StyleableRes int fallbackIndex, int defaultValue) {
4684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        int val = a.getInt(fallbackIndex, defaultValue);
4784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        return a.getInt(index, val);
4884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    }
4984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
5084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    public static @AnyRes int getResourceId(TypedArray a, @StyleableRes int index,
5184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            @StyleableRes int fallbackIndex, @AnyRes int defaultValue) {
5284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        int val = a.getResourceId(fallbackIndex, defaultValue);
5384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        return a.getResourceId(index, val);
5484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    }
5584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
5684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    public static String getString(TypedArray a, @StyleableRes int index,
5784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            @StyleableRes int fallbackIndex) {
5884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        String val = a.getString(index);
5984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        if (val == null) {
6084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            val = a.getString(fallbackIndex);
6184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        }
6284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        return val;
6384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    }
6484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
6584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    public static CharSequence[] getTextArray(TypedArray a, @StyleableRes int index,
6684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            @StyleableRes int fallbackIndex) {
67876e6b4c4ca725548ad25452c2362e253dc12f97Tony Mantler        CharSequence[] val = a.getTextArray(index);
6884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        if (val == null) {
6984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler            val = a.getTextArray(fallbackIndex);
7084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        }
7184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        return val;
7284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler    }
7384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler}
74