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