1d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu/* 2d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * Copyright (C) 2015 The Android Open Source Project 3d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * 4d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * in compliance with the License. You may obtain a copy of the License at 6d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * 7d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * http://www.apache.org/licenses/LICENSE-2.0 8d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * 9d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * Unless required by applicable law or agreed to in writing, software distributed under the License 10d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * or implied. See the License for the specific language governing permissions and limitations under 12d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu * the License. 13d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu */ 14d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu 15d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhupackage android.support.graphics.drawable; 16d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu 17d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhuimport android.content.res.TypedArray; 18d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhuimport org.xmlpull.v1.XmlPullParser; 19d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu 20d6b323993b900899f3c4204e14b27e168dcf2954Chris Banesclass TypedArrayUtils { 21d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu private static final String NAMESPACE = "http://schemas.android.com/apk/res/android"; 22d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu 23d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu public static boolean hasAttribute(XmlPullParser parser, String attrName) { 24d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return parser.getAttributeValue(NAMESPACE, attrName) != null; 25d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 26d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu 27d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu public static float getNamedFloat(TypedArray a, XmlPullParser parser, String attrName, 28d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu int resId, float defaultValue) { 29d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu final boolean hasAttr = hasAttribute(parser, attrName); 30d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu if (!hasAttr) { 31d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return defaultValue; 32d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } else { 33d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return a.getFloat(resId, defaultValue); 34d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 35d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 36d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu 37d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu public static boolean getNamedBoolean(TypedArray a, XmlPullParser parser, String attrName, 382c3c8bff4c669316cdc2db24b72d9ac3f9b33725Teng-Hui Zhu int resId, boolean defaultValue) { 39d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu final boolean hasAttr = hasAttribute(parser, attrName); 40d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu if (!hasAttr) { 41d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return defaultValue; 42d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } else { 43d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return a.getBoolean(resId, defaultValue); 44d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 45d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 46d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu 47d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu public static int getNamedInt(TypedArray a, XmlPullParser parser, String attrName, 482c3c8bff4c669316cdc2db24b72d9ac3f9b33725Teng-Hui Zhu int resId, int defaultValue) { 49d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu final boolean hasAttr = hasAttribute(parser, attrName); 50d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu if (!hasAttr) { 51d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return defaultValue; 52d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } else { 53d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return a.getInt(resId, defaultValue); 54d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 55d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 56d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu 57d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu public static int getNamedColor(TypedArray a, XmlPullParser parser, String attrName, 582c3c8bff4c669316cdc2db24b72d9ac3f9b33725Teng-Hui Zhu int resId, int defaultValue) { 59d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu final boolean hasAttr = hasAttribute(parser, attrName); 60d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu if (!hasAttr) { 61d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return defaultValue; 62d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } else { 63d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu return a.getColor(resId, defaultValue); 64d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 65d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu } 66d85f3e0b931d3e127242a375e0d00c4696bba912Teng-Hui Zhu} 67