MenuItemWrapperICS.java revision 30837f1095c803f332f4a1c3f0917c8afdd50156
1e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes/*
2e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * Copyright (C) 2012 The Android Open Source Project
3e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes *
4e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
5e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * you may not use this file except in compliance with the License.
6e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * You may obtain a copy of the License at
7e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes *
8e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
9e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes *
10e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * Unless required by applicable law or agreed to in writing, software
11e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
12e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * See the License for the specific language governing permissions and
14e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes * limitations under the License.
15e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes */
16e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
17da10fdd1400ecfd8d7f2e55651dd528d0614dfc5Jeff Brownpackage android.support.v7.internal.view.menu;
18e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
1930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.support.v4.view.ActionProvider;
2030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.support.v4.internal.view.SupportMenuItem;
2130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.view.MenuItem;
2230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.view.SubMenu;
23e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banesimport android.view.View;
24e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
25e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banesclass MenuItemWrapperICS extends MenuItemWrapperHC {
26e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
27e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    MenuItemWrapperICS(android.view.MenuItem object) {
28e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        super(object);
29e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
30e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
31e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    @Override
3230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    public MenuItem setActionProvider(android.view.ActionProvider provider) {
3330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell        mWrappedObject.setActionProvider(provider);
3430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell        return this;
3530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    }
3630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell
3730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    @Override
3830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    public android.view.ActionProvider getActionProvider() {
3930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell        return mWrappedObject.getActionProvider();
4030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    }
4130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell
4230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    @Override
4330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    public SupportMenuItem setSupportActionProvider(ActionProvider actionProvider) {
44e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        mWrappedObject.setActionProvider(new ActionProviderWrapper(actionProvider));
45e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        return this;
46e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
47e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
48e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    @Override
4930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    public ActionProvider getSupportActionProvider() {
50e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        return ((ActionProviderWrapper) mWrappedObject.getActionProvider()).getWrappedObject();
51e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
52e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
53e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    @Override
54e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    public boolean expandActionView() {
55e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        return mWrappedObject.expandActionView();
56e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
57e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
58e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    @Override
59e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    public boolean collapseActionView() {
60e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        return mWrappedObject.collapseActionView();
61e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
62e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
63e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    @Override
64e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    public boolean isActionViewExpanded() {
65e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        return mWrappedObject.isActionViewExpanded();
66e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
67e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
68e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    @Override
69e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    public MenuItem setOnActionExpandListener(MenuItem.OnActionExpandListener listener) {
70e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        mWrappedObject.setOnActionExpandListener(new OnActionExpandListenerWrapper(listener));
71e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        return this;
72e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
73e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
74e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    @Override
7530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell    SupportMenuItem createMenuItemWrapper(MenuItem menuItem) {
76e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        return new MenuItemWrapperICS(menuItem);
77e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
78e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
79e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    @Override
80e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    SubMenu createSubMenuWrapper(android.view.SubMenu subMenu) {
81e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        return new SubMenuWrapperICS(subMenu);
82e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
83e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
84e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    private class OnActionExpandListenerWrapper extends BaseWrapper<MenuItem.OnActionExpandListener>
85e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            implements android.view.MenuItem.OnActionExpandListener {
86e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
87e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        OnActionExpandListenerWrapper(MenuItem.OnActionExpandListener object) {
88e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            super(object);
89e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
90e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
91e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        @Override
92e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        public boolean onMenuItemActionExpand(android.view.MenuItem item) {
93e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            return mWrappedObject.onMenuItemActionExpand(getMenuItemWrapper(item));
94e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
95e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
96e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        @Override
97e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        public boolean onMenuItemActionCollapse(android.view.MenuItem item) {
98e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            return mWrappedObject.onMenuItemActionCollapse(getMenuItemWrapper(item));
99e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
100e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
101e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
102e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    private class ActionProviderWrapper extends android.view.ActionProvider {
103e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
104e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        private final ActionProvider mWrappedObject;
105e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
106e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        public ActionProviderWrapper(ActionProvider object) {
107e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            super(null);
108e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            mWrappedObject = object;
109e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
110e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
111e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        @Override
112e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        public View onCreateActionView() {
113e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            return mWrappedObject.onCreateActionView();
114e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
115e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
116e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        @Override
117e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        public boolean onPerformDefaultAction() {
118e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            return mWrappedObject.onPerformDefaultAction();
119e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
120e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
121e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        @Override
122e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        public boolean hasSubMenu() {
123e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            return mWrappedObject.hasSubMenu();
124e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
125e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
126e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        @Override
127e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        public void onPrepareSubMenu(android.view.SubMenu subMenu) {
128e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            mWrappedObject.onPrepareSubMenu(getSubMenuWrapper(subMenu));
129e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
130e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
131e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        ActionProvider getWrappedObject() {
132e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes            return mWrappedObject;
133e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes        }
134e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes    }
135e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes
136e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes}
137