1012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes/*
2012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * Copyright (C) 2014 The Android Open Source Project
3012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes *
4012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
5012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * you may not use this file except in compliance with the License.
6012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * You may obtain a copy of the License at
7012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes *
8012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
9012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes *
10012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * Unless required by applicable law or agreed to in writing, software
11012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
12012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * See the License for the specific language governing permissions and
14012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * limitations under the License.
15012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes */
16012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes
17012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banespackage android.support.v7.internal.widget;
18012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes
19012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banesimport android.content.Context;
20012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banesimport android.util.AttributeSet;
21012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banesimport android.widget.AutoCompleteTextView;
22012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banesimport android.widget.MultiAutoCompleteTextView;
23012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes
24012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes/**
25012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * An tint aware {@link android.widget.MultiAutoCompleteTextView}.
26012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes *
27012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes * @hide
28012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes */
29012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banespublic class TintMultiAutoCompleteTextView extends MultiAutoCompleteTextView {
30012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes
31012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes    private static final int[] TINT_ATTRS = {
32012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes            android.R.attr.background,
33012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes            android.R.attr.popupBackground
34012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes    };
35012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes
36f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes    private final TintManager mTintManager;
37f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes
38012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes    public TintMultiAutoCompleteTextView(Context context) {
39012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes        this(context, null);
40012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes    }
41012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes
42012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes    public TintMultiAutoCompleteTextView(Context context, AttributeSet attrs) {
43012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes        this(context, attrs, android.R.attr.autoCompleteTextViewStyle);
44012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes    }
45012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes
46012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes    public TintMultiAutoCompleteTextView(Context context, AttributeSet attrs, int defStyleAttr) {
47012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes        super(context, attrs, defStyleAttr);
48012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes
49012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes        TintTypedArray a = TintTypedArray.obtainStyledAttributes(context, attrs, TINT_ATTRS,
50012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes                defStyleAttr, 0);
51012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes        setBackgroundDrawable(a.getDrawable(0));
52012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes        if (a.hasValue(1)) {
53012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes            setDropDownBackgroundDrawable(a.getDrawable(1));
54012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes        }
55012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes        a.recycle();
56f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes
57f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes        mTintManager = a.getTintManager();
58012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes    }
59f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes
60f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes    @Override
61f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes    public void setDropDownBackgroundResource(int id) {
62f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes        setDropDownBackgroundDrawable(mTintManager.getDrawable(id));
63f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes    }
64f0befbfd05c33c4dc6667a051f9b69a47dfe4aa7Chris Banes
65012047c60d03e61498955b7fa3e9cb9b409fbad8Chris Banes}
66