package com.actionbarsherlock.internal.view.menu; import android.content.ComponentName; import android.content.Intent; import android.view.KeyEvent; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.SubMenu; public class MenuBackWrapper implements android.view.Menu { private static final MenuItem[] array(android.view.MenuItem[] source) { MenuItem[] result = new MenuItem[source.length]; for (int i = 0; i < source.length; i++) { android.view.MenuItem s = source[i]; if (s instanceof MenuItemBackWrapper) { result[i] = ((MenuItemBackWrapper) s).unwrap(); } else { result[i] = new MenuItemWrapper(s); } } return result; } protected static android.view.MenuItem item(MenuItem item) { if (item instanceof ContextMenuItemWrapper) { return ((ContextMenuItemWrapper) item).unwrap(); } else { return new MenuItemBackWrapper(item); } } protected static android.view.SubMenu submenu(SubMenu menu) { if (menu instanceof SubMenuWrapper) { return (android.view.SubMenu) ((SubMenuWrapper) menu).unwrap(); } else { return new SubMenuBackWrapper(menu); } } private final Menu menu; public MenuBackWrapper(Menu menu) { this.menu = menu; } @Override public android.view.MenuItem add(CharSequence arg0) { return new MenuItemBackWrapper(menu.add(arg0)); } @Override public android.view.MenuItem add(int arg0) { return new MenuItemBackWrapper(menu.add(arg0)); } @Override public android.view.MenuItem add(int arg0, int arg1, int arg2, CharSequence arg3) { return new MenuItemBackWrapper(menu.add(arg0, arg1, arg2, arg3)); } @Override public android.view.MenuItem add(int arg0, int arg1, int arg2, int arg3) { return new MenuItemBackWrapper(menu.add(arg0, arg1, arg2, arg3)); } @Override public int addIntentOptions(int arg0, int arg1, int arg2, ComponentName arg3, Intent[] arg4, Intent arg5, int arg6, android.view.MenuItem[] arg7) { return menu.addIntentOptions(arg0, arg1, arg2, arg3, arg4, arg5, arg6, array(arg7)); } @Override public android.view.SubMenu addSubMenu(CharSequence arg0) { return submenu(menu.addSubMenu(arg0)); } @Override public android.view.SubMenu addSubMenu(int arg0) { return submenu(menu.addSubMenu(arg0)); } @Override public android.view.SubMenu addSubMenu(int arg0, int arg1, int arg2, CharSequence arg3) { return submenu(menu.addSubMenu(arg0, arg1, arg2, arg3)); } @Override public android.view.SubMenu addSubMenu(int arg0, int arg1, int arg2, int arg3) { return submenu(menu.addSubMenu(arg0, arg1, arg2, arg3)); } @Override public void clear() { menu.clear(); } @Override public void close() { menu.close(); } @Override public android.view.MenuItem findItem(int arg0) { return item(menu.findItem(arg0)); } @Override public android.view.MenuItem getItem(int arg0) { return item(menu.getItem(arg0)); } @Override public boolean hasVisibleItems() { return menu.hasVisibleItems(); } @Override public boolean isShortcutKey(int arg0, KeyEvent arg1) { return menu.isShortcutKey(arg0, arg1); } @Override public boolean performIdentifierAction(int arg0, int arg1) { return menu.performIdentifierAction(arg0, arg1); } @Override public boolean performShortcut(int arg0, KeyEvent arg1, int arg2) { return menu.performShortcut(arg0, arg1, arg2); } @Override public void removeGroup(int arg0) { menu.removeGroup(arg0); } @Override public void removeItem(int arg0) { menu.removeItem(arg0); } @Override public void setGroupCheckable(int arg0, boolean arg1, boolean arg2) { menu.setGroupCheckable(arg0, arg1, arg2); } @Override public void setGroupEnabled(int arg0, boolean arg1) { menu.setGroupEnabled(arg0, arg1); } @Override public void setGroupVisible(int arg0, boolean arg1) { menu.setGroupVisible(arg0, arg1); } @Override public void setQwertyMode(boolean arg0) { menu.setQwertyMode(arg0); } @Override public int size() { return menu.size(); } public Menu unwrap() { return menu; } }