AppCompatSeekBarHelper.java revision 10e2dbc1ad1c01d2824d921a8b0f070859d6f146
110e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes/*
210e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * Copyright (C) 2015 The Android Open Source Project
310e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes *
410e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
510e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * you may not use this file except in compliance with the License.
610e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * You may obtain a copy of the License at
710e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes *
810e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
910e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes *
1010e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * Unless required by applicable law or agreed to in writing, software
1110e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
1210e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1310e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * See the License for the specific language governing permissions and
1410e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes * limitations under the License.
1510e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes */
1610e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes
1710e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banespackage android.support.v7.widget;
1810e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes
1910e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banesimport android.graphics.drawable.Drawable;
2010e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banesimport android.support.v7.internal.widget.TintManager;
2110e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banesimport android.support.v7.internal.widget.TintTypedArray;
2210e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banesimport android.util.AttributeSet;
2310e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banesimport android.widget.SeekBar;
2410e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes
2510e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banesclass AppCompatSeekBarHelper extends AppCompatProgressBarHelper {
2610e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes
2710e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes    private static final int[] TINT_ATTRS = {
2810e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes            android.R.attr.thumb
2910e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes    };
3010e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes
3110e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes    private final SeekBar mView;
3210e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes
3310e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes    AppCompatSeekBarHelper(SeekBar view, TintManager tintManager) {
3410e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes        super(view, tintManager);
3510e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes        mView = view;
3610e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes    }
3710e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes
3810e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes    void loadFromAttributes(AttributeSet attrs, int defStyleAttr) {
3910e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes        super.loadFromAttributes(attrs, defStyleAttr);
4010e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes
4110e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes        TintTypedArray a = TintTypedArray.obtainStyledAttributes(mView.getContext(), attrs,
4210e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes                TINT_ATTRS, defStyleAttr, 0);
4310e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes        Drawable drawable = a.getDrawableIfKnown(0);
4410e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes        if (drawable != null) {
4510e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes            mView.setThumb(drawable);
4610e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes        }
4710e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes        a.recycle();
4810e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes    }
4910e2dbc1ad1c01d2824d921a8b0f070859d6f146Chris Banes}
50