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