MenuItemWrapperICS.java revision d713f4f0643a5f6409b431f643f1ad25dba6c22f
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 19d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banesimport android.support.v4.internal.view.SupportMenuItem; 20d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banesimport android.support.v4.view.ActionProvider; 2130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.view.MenuItem; 22d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banesimport android.view.View; 23e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 24e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banesclass MenuItemWrapperICS extends MenuItemWrapperHC { 25e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes MenuItemWrapperICS(android.view.MenuItem object) { 26e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes super(object); 27e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 28e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 29e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 3030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public MenuItem setActionProvider(android.view.ActionProvider provider) { 3130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell mWrappedObject.setActionProvider(provider); 3230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell return this; 3330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 3430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 3530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell @Override 3630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public android.view.ActionProvider getActionProvider() { 3730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell return mWrappedObject.getActionProvider(); 3830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 3930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 4030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell @Override 41e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean expandActionView() { 42e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.expandActionView(); 43e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 44e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 45e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 46e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean collapseActionView() { 47e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.collapseActionView(); 48e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 49e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 50e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 51e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean isActionViewExpanded() { 52e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.isActionViewExpanded(); 53e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 54e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 55e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 56e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public MenuItem setOnActionExpandListener(MenuItem.OnActionExpandListener listener) { 576e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mWrappedObject.setOnActionExpandListener(listener != null ? 586e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown new OnActionExpandListenerWrapper(listener) : null); 59e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return this; 60e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 61e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 62d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes @Override 63d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public SupportMenuItem setSupportActionProvider(ActionProvider actionProvider) { 64d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes mWrappedObject.setActionProvider(actionProvider != null ? 65d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes createActionProviderWrapper(actionProvider) : null); 66d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return this; 67d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 68d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 69d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes @Override 70d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public ActionProvider getSupportActionProvider() { 71d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes ActionProviderWrapper providerWrapper = 72d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes (ActionProviderWrapper)mWrappedObject.getActionProvider(); 73d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return providerWrapper.mInner; 74d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 75d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 76d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes ActionProviderWrapper createActionProviderWrapper(ActionProvider provider) { 77d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return new ActionProviderWrapper(provider); 78d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 79d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 80e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes private class OnActionExpandListenerWrapper extends BaseWrapper<MenuItem.OnActionExpandListener> 81e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes implements android.view.MenuItem.OnActionExpandListener { 82e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 83e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes OnActionExpandListenerWrapper(MenuItem.OnActionExpandListener object) { 84e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes super(object); 85e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 86e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 87e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 88e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean onMenuItemActionExpand(android.view.MenuItem item) { 89e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.onMenuItemActionExpand(getMenuItemWrapper(item)); 90e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 91e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 92e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 93e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean onMenuItemActionCollapse(android.view.MenuItem item) { 94e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.onMenuItemActionCollapse(getMenuItemWrapper(item)); 95e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 96e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 97d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 98d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes class ActionProviderWrapper extends android.view.ActionProvider { 99d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes final ActionProvider mInner; 100d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 101d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public ActionProviderWrapper(ActionProvider inner) { 102d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes super(inner.getContext()); 103d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes mInner = inner; 104d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 105d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 106d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes @Override 107d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public View onCreateActionView() { 108d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return mInner.onCreateActionView(); 109d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 110d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 111d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes @Override 112d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public boolean onPerformDefaultAction() { 113d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return mInner.onPerformDefaultAction(); 114d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 115d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 116d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes @Override 117d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public boolean hasSubMenu() { 118d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return mInner.hasSubMenu(); 119d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 120d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 121d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes @Override 122d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public void onPrepareSubMenu(android.view.SubMenu subMenu) { 123d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes mInner.onPrepareSubMenu(getSubMenuWrapper(subMenu)); 124d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 125d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 126e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes} 127