BaseMenuPresenter.java revision da10fdd1400ecfd8d7f2e55651dd528d0614dfc5
1bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell/* 2bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Copyright (C) 2011 The Android Open Source Project 3bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 4bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Licensed under the Apache License, Version 2.0 (the "License"); 5bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * you may not use this file except in compliance with the License. 6bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * You may obtain a copy of the License at 7bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 8bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * http://www.apache.org/licenses/LICENSE-2.0 9bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 10bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Unless required by applicable law or agreed to in writing, software 11bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * distributed under the License is distributed on an "AS IS" BASIS, 12bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * See the License for the specific language governing permissions and 14bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * limitations under the License. 15bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 16bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 17da10fdd1400ecfd8d7f2e55651dd528d0614dfc5Jeff Brownpackage android.support.v7.internal.view.menu; 18bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 19bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.content.Context; 20bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.view.LayoutInflater; 21bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.view.View; 22bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.view.ViewGroup; 23bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 24bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport java.util.ArrayList; 25bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 26bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell/** 2720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Base class for MenuPresenters that have a consistent container view and item views. Behaves 2820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * similarly to an AdapterView in that existing item views will be reused if possible when items 2920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * change. 30bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 31bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellpublic abstract class BaseMenuPresenter implements MenuPresenter { 3220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 33ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani protected Context mSystemContext; 34ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani protected Context mContext; 35ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani protected MenuBuilder mMenu; 36ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani protected LayoutInflater mSystemInflater; 37ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani protected LayoutInflater mInflater; 38ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani private Callback mCallback; 39ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 40ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani private int mMenuLayoutRes; 41ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani private int mItemLayoutRes; 42ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 43ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani protected MenuView mMenuView; 44ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 45ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani private int mId; 46ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 47ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani /** 48ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * Construct a new BaseMenuPresenter. 49ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * 50ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param context Context for generating system-supplied views 51ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param menuLayoutRes Layout resource ID for the menu container view 52ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param itemLayoutRes Layout resource ID for a single item view 53ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani */ 54ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public BaseMenuPresenter(Context context, int menuLayoutRes, int itemLayoutRes) { 55ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mSystemContext = context; 56ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mSystemInflater = LayoutInflater.from(context); 57ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mMenuLayoutRes = menuLayoutRes; 58ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mItemLayoutRes = itemLayoutRes; 59ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 60ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 61ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani @Override 62ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public void initForMenu(Context context, MenuBuilder menu) { 63ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mContext = context; 64ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mInflater = LayoutInflater.from(mContext); 65ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mMenu = menu; 66ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 67ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 68ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public MenuView getMenuView(ViewGroup root) { 69ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (mMenuView == null) { 70ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mMenuView = (MenuView) mSystemInflater.inflate(mMenuLayoutRes, root, false); 71ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mMenuView.initialize(mMenu); 72ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani updateMenuView(true); 73bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell } 74ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 75ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return mMenuView; 76ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 77ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 78ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani /** 79ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * Reuses item views when it can 80ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani */ 81ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public void updateMenuView(boolean cleared) { 82ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani final ViewGroup parent = (ViewGroup) mMenuView; 8320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (parent == null) { 8420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns return; 8520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 86ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 87ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani int childIndex = 0; 88ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (mMenu != null) { 89ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mMenu.flagActionItems(); 90ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani ArrayList<MenuItemImpl> visibleItems = mMenu.getVisibleItems(); 91ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani final int itemCount = visibleItems.size(); 92ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani for (int i = 0; i < itemCount; i++) { 93ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani MenuItemImpl item = visibleItems.get(i); 94ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (shouldIncludeItem(childIndex, item)) { 95ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani final View convertView = parent.getChildAt(childIndex); 96ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani final MenuItemImpl oldItem = convertView instanceof MenuView.ItemView ? 9720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns ((MenuView.ItemView) convertView).getItemData() : null; 98ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani final View itemView = getItemView(item, convertView, parent); 99ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (item != oldItem) { 100ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani // Don't let old states linger with new data. 101ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani itemView.setPressed(false); 102ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani // itemView.jumpDrawablesToCurrentState(); 103ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani // Animation API: Not available on API < 11 104ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 105ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (itemView != convertView) { 106ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani addItemView(itemView, childIndex); 107ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 108ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani childIndex++; 109ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 110ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 111ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 112ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 113ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani // Remove leftover views. 114ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani while (childIndex < parent.getChildCount()) { 115ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (!filterLeftoverView(parent, childIndex)) { 116ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani childIndex++; 117ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 118ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 119ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 120ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 121ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani /** 122ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * Add an item view at the given index. 123ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * 124ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param itemView View to add 125ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param childIndex Index within the parent to insert at 126ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani */ 127ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani protected void addItemView(View itemView, int childIndex) { 128ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani final ViewGroup currentParent = (ViewGroup) itemView.getParent(); 129ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (currentParent != null) { 130ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani currentParent.removeView(itemView); 131ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 132ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani ((ViewGroup) mMenuView).addView(itemView, childIndex); 133ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 134ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 135ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani /** 136ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * Filter the child view at index and remove it if appropriate. 137ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * 138ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param parent Parent to filter from 139ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param childIndex Index to filter 140ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @return true if the child view at index was removed 141ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani */ 142ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani protected boolean filterLeftoverView(ViewGroup parent, int childIndex) { 143ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani parent.removeViewAt(childIndex); 144ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return true; 145ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 146ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 147ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public void setCallback(Callback cb) { 148ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mCallback = cb; 149ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 150ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 151ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani /** 152ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * Create a new item view that can be re-bound to other item data later. 153ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * 154ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @return The new item view 155ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani */ 156ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public MenuView.ItemView createItemView(ViewGroup parent) { 157ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return (MenuView.ItemView) mSystemInflater.inflate(mItemLayoutRes, parent, false); 158ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 159ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 160ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani /** 16120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Prepare an item view for use. See AdapterView for the basic idea at work here. This may 16220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * require creating a new item view, but well-behaved implementations will re-use the view 16320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * passed as convertView if present. The returned view will be populated with data from the item 16420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * parameter. 165ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * 166ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param item Item to present 167ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param convertView Existing view to reuse 168ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param parent Intended parent view - use for inflation. 169ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @return View that presents the requested menu item 170ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani */ 171ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public View getItemView(MenuItemImpl item, View convertView, ViewGroup parent) { 172ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani MenuView.ItemView itemView; 173ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (convertView instanceof MenuView.ItemView) { 174ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani itemView = (MenuView.ItemView) convertView; 175ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } else { 176ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani itemView = createItemView(parent); 177ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 178ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani bindItemView(item, itemView); 179ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return (View) itemView; 180ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 181ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 182ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani /** 183ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * Bind item data to an existing item view. 184ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * 185ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param item Item to bind 186ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param itemView View to populate with item data 187ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani */ 188ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public abstract void bindItemView(MenuItemImpl item, MenuView.ItemView itemView); 189ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 190ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani /** 191ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * Filter item by child index and item data. 192ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * 193ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param childIndex Indended presentation index of this item 194ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @param item Item to present 195ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani * @return true if this item should be included in this menu presentation; false otherwise 196ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani */ 197ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public boolean shouldIncludeItem(int childIndex, MenuItemImpl item) { 198ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return true; 199ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 200ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 201ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { 202ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (mCallback != null) { 203ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mCallback.onCloseMenu(menu, allMenusAreClosing); 204ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 205ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 206ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 207ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public boolean onSubMenuSelected(SubMenuBuilder menu) { 208ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani if (mCallback != null) { 209ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return mCallback.onOpenSubMenu(menu); 210ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 211ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return false; 212ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 213ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 214ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public boolean flagActionItems() { 215ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return false; 216ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 217ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 218ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item) { 219ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return false; 220ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 221ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 222ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public boolean collapseItemActionView(MenuBuilder menu, MenuItemImpl item) { 223ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return false; 224ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 225ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 226ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public int getId() { 227ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani return mId; 228ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 229ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani 230ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani public void setId(int id) { 231ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani mId = id; 232ced50ab7536cd3d3573f03310fc899f10c414d37Anirudh Dewani } 233bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell} 234