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