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