1e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell/*
2e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * Copyright (C) 2014 The Android Open Source Project
3e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell *
4e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * Licensed under the Apache License, Version 2.0 (the "License");
5e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * you may not use this file except in compliance with the License.
6e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * You may obtain a copy of the License at
7e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell *
8e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell *      http://www.apache.org/licenses/LICENSE-2.0
9e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell *
10e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * Unless required by applicable law or agreed to in writing, software
11e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * distributed under the License is distributed on an "AS IS" BASIS,
12e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * See the License for the specific language governing permissions and
14e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * limitations under the License.
15e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell */
16e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell
17e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell
18e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellpackage com.android.internal.widget;
19e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell
2094283533aba1b8c895728feb40462250a1ebecceDoris Liuimport android.animation.Animator;
21e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.content.Context;
22e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.graphics.drawable.Drawable;
23e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.os.Parcelable;
24e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.util.SparseArray;
25e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.view.Menu;
26e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.view.View;
27e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.view.ViewGroup;
28e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.view.Window;
29e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.widget.AdapterView;
30e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport android.widget.SpinnerAdapter;
31fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyar
32fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyarimport com.android.internal.view.menu.MenuBuilder;
33e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellimport com.android.internal.view.menu.MenuPresenter;
34e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell
35e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell/**
36e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * Common interface for a toolbar that sits as part of the window decor.
37e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * Layouts that control window decor use this as a point of interaction with different
38e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * bar implementations.
39e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell *
40e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell * @hide
41e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell */
42e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powellpublic interface DecorToolbar {
43e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    ViewGroup getViewGroup();
44e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    Context getContext();
45e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean isSplit();
46e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean hasExpandedActionView();
47e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void collapseActionView();
48e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setWindowCallback(Window.Callback cb);
49e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setWindowTitle(CharSequence title);
50e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    CharSequence getTitle();
51e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setTitle(CharSequence title);
52e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    CharSequence getSubtitle();
53e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setSubtitle(CharSequence subtitle);
54e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void initProgress();
55e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void initIndeterminateProgress();
56e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean canSplit();
57e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setSplitView(ViewGroup splitView);
58e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setSplitToolbar(boolean split);
59e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setSplitWhenNarrow(boolean splitWhenNarrow);
60e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean hasIcon();
61e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean hasLogo();
62e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setIcon(int resId);
63e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setIcon(Drawable d);
64e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setLogo(int resId);
65e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setLogo(Drawable d);
66e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean canShowOverflowMenu();
67e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean isOverflowMenuShowing();
68e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean isOverflowMenuShowPending();
69e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean showOverflowMenu();
70e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean hideOverflowMenu();
71e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setMenuPrepared();
72e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setMenu(Menu menu, MenuPresenter.Callback cb);
73e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void dismissPopupMenus();
74e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell
75e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    int getDisplayOptions();
76e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setDisplayOptions(int opts);
77e002c2fb39f9df1db38a7412832882ae622660d4Adam Powell    void setEmbeddedTabView(ScrollingTabContainerView tabView);
78e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean hasEmbeddedTabs();
79e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    boolean isTitleTruncated();
80e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setCollapsible(boolean collapsible);
81e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setHomeButtonEnabled(boolean enable);
82e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    int getNavigationMode();
83e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setNavigationMode(int mode);
84e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setDropdownParams(SpinnerAdapter adapter, AdapterView.OnItemSelectedListener listener);
85e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setDropdownSelectedPosition(int position);
86e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    int getDropdownSelectedPosition();
87e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    int getDropdownItemCount();
88e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setCustomView(View view);
89e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    View getCustomView();
90e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void animateToVisibility(int visibility);
9194283533aba1b8c895728feb40462250a1ebecceDoris Liu    Animator setupAnimatorToVisibility(int visibility, long duration);
92e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setNavigationIcon(Drawable icon);
93e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setNavigationIcon(int resId);
94e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setNavigationContentDescription(CharSequence description);
95e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void setNavigationContentDescription(int resId);
96e91f7c0219d0f47d9c44a4933b571b0a482ec058Yigit Boyar    void setDefaultNavigationContentDescription(int defaultNavigationContentDescription);
9730f5dc935b30a72982cc2ee04c8c2a17ba95e885Yigit Boyar    void setDefaultNavigationIcon(Drawable icon);
98e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void saveHierarchyState(SparseArray<Parcelable> toolbarStates);
99e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell    void restoreHierarchyState(SparseArray<Parcelable> toolbarStates);
100fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyar    void setBackgroundDrawable(Drawable d);
101fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyar    int getHeight();
102fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyar    void setVisibility(int visible);
103fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyar    int getVisibility();
104fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyar    void setMenuCallbacks(MenuPresenter.Callback presenterCallback,
105fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyar            MenuBuilder.Callback menuBuilderCallback);
106fe6d57c366ba78295d3320cb73512f02876eed61Yigit Boyar    Menu getMenu();
107e021e6ed8931a0a8296af182fc9b0c76b64fb0c4Adam Powell}
108