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