1415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes/*
2415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * Copyright (C) 2014 The Android Open Source Project
3415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *
4415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
5415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * you may not use this file except in compliance with the License.
6415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * You may obtain a copy of the License at
7415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *
8415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
9415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *
10415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * Unless required by applicable law or agreed to in writing, software
11415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
12415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * See the License for the specific language governing permissions and
14415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * limitations under the License.
15415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes */
16415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
17415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banespackage android.support.v7.internal.widget;
18415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
19415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banesimport android.content.Context;
20415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banesimport android.util.AttributeSet;
21415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banesimport android.widget.CheckBox;
22415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
23415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes/**
24415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * An tint aware {@link android.widget.CheckBox}.
25415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *
26415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * @hide
27415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes */
28415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banespublic class TintCheckBox extends CheckBox {
29415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
30415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    private static final int[] TINT_ATTRS = {
31415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes            android.R.attr.button
32415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    };
33415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
34415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    private final TintManager mTintManager;
35415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
36415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    public TintCheckBox(Context context) {
37415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        this(context, null);
38415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    }
39415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
40415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    public TintCheckBox(Context context, AttributeSet attrs) {
41415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        this(context, attrs, android.R.attr.checkboxStyle);
42415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    }
43415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
44415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    public TintCheckBox(Context context, AttributeSet attrs, int defStyleAttr) {
45415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        super(context, attrs, defStyleAttr);
46415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
47415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        TintTypedArray a = TintTypedArray.obtainStyledAttributes(context, attrs, TINT_ATTRS,
48415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes                defStyleAttr, 0);
49415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        setButtonDrawable(a.getDrawable(0));
50415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        a.recycle();
51415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
52415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        mTintManager = a.getTintManager();
53415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    }
54415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
55415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    @Override
56415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    public void setButtonDrawable(int resid) {
57415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        setButtonDrawable(mTintManager.getDrawable(resid));
58415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    }
59415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes}
60