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 19e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banesimport android.content.ComponentName; 20e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banesimport android.content.Intent; 2130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.support.v4.internal.view.SupportMenu; 2230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.support.v4.internal.view.SupportMenuItem; 23e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banesimport android.view.KeyEvent; 2430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.view.MenuItem; 2530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.view.SubMenu; 26e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 2789208232f3b5d1451408d787872504a190bc7ee0Chris Banesclass MenuWrapperICS extends BaseMenuWrapper<android.view.Menu> implements SupportMenu { 28e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 2989208232f3b5d1451408d787872504a190bc7ee0Chris Banes MenuWrapperICS(android.view.Menu object) { 30e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes super(object); 31e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 32e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 33e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 34e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public MenuItem add(CharSequence title) { 35e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getMenuItemWrapper(mWrappedObject.add(title)); 36e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 37e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 38e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 39e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public MenuItem add(int titleRes) { 40e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getMenuItemWrapper(mWrappedObject.add(titleRes)); 41e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 42e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 43e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 44e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public MenuItem add(int groupId, int itemId, int order, CharSequence title) { 45e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getMenuItemWrapper(mWrappedObject.add(groupId, itemId, order, title)); 46e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 47e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 48e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 49e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public MenuItem add(int groupId, int itemId, int order, int titleRes) { 50e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getMenuItemWrapper(mWrappedObject.add(groupId, itemId, order, titleRes)); 51e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 52e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 53e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 54e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public SubMenu addSubMenu(CharSequence title) { 55e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getSubMenuWrapper(mWrappedObject.addSubMenu(title)); 56e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 57e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 58e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 59e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public SubMenu addSubMenu(int titleRes) { 60e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getSubMenuWrapper(mWrappedObject.addSubMenu(titleRes)); 61e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 62e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 63e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 64e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title) { 65e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getSubMenuWrapper(mWrappedObject.addSubMenu(groupId, itemId, order, title)); 66e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 67e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 68e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 69e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes) { 70e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getSubMenuWrapper( 71e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.addSubMenu(groupId, itemId, order, titleRes)); 72e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 73e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 74e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 75e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public int addIntentOptions(int groupId, int itemId, int order, ComponentName caller, 76e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes Intent[] specifics, Intent intent, int flags, MenuItem[] outSpecificItems) { 77e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes android.view.MenuItem[] items = null; 78e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes if (outSpecificItems != null) { 79e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes items = new android.view.MenuItem[outSpecificItems.length]; 80e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 81e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 82e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes int result = mWrappedObject 83e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes .addIntentOptions(groupId, itemId, order, caller, specifics, intent, flags, items); 84e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 85e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes if (items != null) { 86e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes for (int i = 0, z = items.length; i < z; i++) { 87e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes outSpecificItems[i] = getMenuItemWrapper(items[i]); 88e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 89e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 90e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 91e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return result; 92e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 93e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 94e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 95e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public void removeItem(int id) { 96e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes internalRemoveItem(id); 97e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.removeItem(id); 98e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 99e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 100e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 101e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public void removeGroup(int groupId) { 102e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes internalRemoveGroup(groupId); 103e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.removeGroup(groupId); 104e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 105e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 106e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 107e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public void clear() { 108e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes internalClear(); 109e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.clear(); 110e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 111e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 112e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 113e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public void setGroupCheckable(int group, boolean checkable, boolean exclusive) { 114e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.setGroupCheckable(group, checkable, exclusive); 115e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 116e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 117e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 118e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public void setGroupVisible(int group, boolean visible) { 119e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.setGroupVisible(group, visible); 120e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 121e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 122e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 123e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public void setGroupEnabled(int group, boolean enabled) { 124e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.setGroupEnabled(group, enabled); 125e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 126e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 127e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 128e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean hasVisibleItems() { 129e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.hasVisibleItems(); 130e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 131e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 132e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 133e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public MenuItem findItem(int id) { 134e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getMenuItemWrapper(mWrappedObject.findItem(id)); 135e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 136e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 137e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 138e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public int size() { 139e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.size(); 140e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 141e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 142e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 143e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public MenuItem getItem(int index) { 144e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return getMenuItemWrapper(mWrappedObject.getItem(index)); 145e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 146e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 147e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 148e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public void close() { 149e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.close(); 150e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 151e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 152e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 153e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean performShortcut(int keyCode, KeyEvent event, int flags) { 154e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.performShortcut(keyCode, event, flags); 155e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 156e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 157e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 158e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean isShortcutKey(int keyCode, KeyEvent event) { 159e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.isShortcutKey(keyCode, event); 160e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 161e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 162e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 163e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public boolean performIdentifierAction(int id, int flags) { 164e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes return mWrappedObject.performIdentifierAction(id, flags); 165e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 166e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes 167e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes @Override 168e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes public void setQwertyMode(boolean isQwerty) { 169e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes mWrappedObject.setQwertyMode(isQwerty); 170e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes } 171e73e46ef5b69ecdf18aa1947e0a1b3e4ec5d1ee7Chris Banes} 172