12add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette/*
22add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * Copyright (C) 2015 The Android Open Source Project
32add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette *
42add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * Licensed under the Apache License, Version 2.0 (the "License");
52add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * you may not use this file except in compliance with the License.
62add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * You may obtain a copy of the License at
72add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette *
82add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette *      http://www.apache.org/licenses/LICENSE-2.0
92add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette *
102add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * Unless required by applicable law or agreed to in writing, software
112add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * distributed under the License is distributed on an "AS IS" BASIS,
122add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * See the License for the specific language governing permissions and
142add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * limitations under the License.
152add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette */
162add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette
172add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverettepackage android.widget;
182add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette
192add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viveretteimport android.annotation.Nullable;
202add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viveretteimport android.content.res.Resources;
212add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viveretteimport android.content.res.Resources.Theme;
222add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viveretteimport android.view.View;
232add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viveretteimport android.view.ViewGroup;
242add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette
252add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette/**
262add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * An extension of SpinnerAdapter that is capable of inflating drop-down views
272add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * against a different theme than normal views.
282add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * <p>
292add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * Classes that implement this interface should use the theme provided to
302add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * {@link #setDropDownViewTheme(Theme)} when creating views in
312add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette * {@link SpinnerAdapter#getDropDownView(int, View, ViewGroup)}.
322add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette */
332add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverettepublic interface ThemedSpinnerAdapter extends SpinnerAdapter {
342add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette    /**
352add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     * Sets the {@link Resources.Theme} against which drop-down views are
362add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     * inflated.
372add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     *
382add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     * @param theme the context against which to inflate drop-down views, or
392add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     *              {@code null} to use the default theme
402add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     * @see SpinnerAdapter#getDropDownView(int, View, ViewGroup)
412add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     */
422add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette    void setDropDownViewTheme(@Nullable Resources.Theme theme);
432add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette
442add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette    /**
452add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     * Returns the value previously set by a call to
462add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     * {@link #setDropDownViewTheme(Theme)}.
472add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     *
482add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     * @return the {@link Resources.Theme} against which drop-down views are
492add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     *         inflated, or {@code null} if one has not been explicitly set
502add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette     */
512add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette    @Nullable
522add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette    Resources.Theme getDropDownViewTheme();
532add9bcf8c33c59f300551bdb0671bbff0b55794Alan Viverette}
54