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