1c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesipackage com.xtremelabs.robolectric.tester.android.view; 2c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 3c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport android.content.ComponentName; 4c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport android.content.Context; 5c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport android.content.Intent; 6c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport android.view.KeyEvent; 7c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport android.view.Menu; 8c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport android.view.MenuItem; 9c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport android.view.SubMenu; 10c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 11c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport java.util.ArrayList; 12c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesiimport java.util.List; 13c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 14c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesipublic class TestMenu implements Menu { 15c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi private List<MenuItem> menuItems = new ArrayList<MenuItem>(); 16c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi private Context context; 17c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 18c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi public TestMenu() { 19c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi this(null); 20c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 21c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 22c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi public TestMenu(Context context) { 23c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi this.context = context; 24c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 25c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 26d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 27d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public MenuItem add(CharSequence title) { 28c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return add(0, 0, 0, title); 29c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 30c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 31d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 32d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public MenuItem add(int titleRes) { 33c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return add(0, 0, 0, titleRes); 34c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 35c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 36d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 37d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public MenuItem add(int groupId, int itemId, int order, CharSequence title) { 38c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi TestMenuItem menuItem = new TestMenuItem(); 39c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi menuItems.add(menuItem); 40c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi menuItem.setItemId(itemId); 41c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi menuItem.setTitle(title); 42c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return menuItem; 43c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 44c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 45d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 46d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public MenuItem add(int groupId, int itemId, int order, int titleRes) { 47c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return add(groupId, itemId, order, context.getResources().getString(titleRes)); 48c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 49c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 50d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 51d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public SubMenu addSubMenu(CharSequence title) { 52d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz TestSubMenu tsm = new TestSubMenu(); 53d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz TestMenuItem menuItem = new TestMenuItem(); 54d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItems.add(menuItem); 55d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setTitle(title); 56d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setSubMenu(tsm); 57d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz return tsm; 58c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 59c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 60d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 61d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public SubMenu addSubMenu(int titleRes) { 62d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz TestSubMenu tsm = new TestSubMenu(); 63d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz TestMenuItem menuItem = new TestMenuItem(); 64d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItems.add(menuItem); 65d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setTitle(titleRes); 66d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setSubMenu(tsm); 67d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz return tsm; 68c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 69c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 70d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 71d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title) { 72d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz TestSubMenu tsm = new TestSubMenu(); 73d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz TestMenuItem menuItem = new TestMenuItem(); 74d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItems.add(menuItem); 75d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setItemId(itemId); 76d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setTitle(title); 77d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setSubMenu(tsm); 78d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz return tsm; 79c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 80c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 81d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 82d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes) { 83d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz TestSubMenu tsm = new TestSubMenu(); 84d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz TestMenuItem menuItem = new TestMenuItem(); 85d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItems.add(menuItem); 86d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setItemId(itemId); 87d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setTitle(titleRes); 88d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz menuItem.setSubMenu(tsm); 89d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz return tsm; 90c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 91c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 92c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi @Override 93d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public int addIntentOptions(int groupId, int itemId, int order, ComponentName caller, Intent[] specifics, 94d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz Intent intent, int flags, MenuItem[] outSpecificItems) { 95c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return 0; 96c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 97c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 98d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 99d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public void removeItem(int id) { 100c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi MenuItem menuItem = findItem(id); 101c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi menuItems.remove(menuItem); 102c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 103c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 104d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 105d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public void removeGroup(int groupId) { 106c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 107c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 108d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 109d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public void clear() { 110c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi menuItems.clear(); 111c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 112c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 113d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 114d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public void setGroupCheckable(int group, boolean checkable, boolean exclusive) { 115c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 116c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 117d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 118d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public void setGroupVisible(int group, boolean visible) { 119c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 120c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 121d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 122d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public void setGroupEnabled(int group, boolean enabled) { 123c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 124c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 125d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 126d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public boolean hasVisibleItems() { 127c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return false; 128c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 129c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 130d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 131d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public MenuItem findItem(int id) { 132c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi for (MenuItem item : menuItems) { 133c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi if (item.getItemId() == id) { 134c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return item; 135c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 136c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 137c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return null; 138c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 139c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 140d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 141d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public int size() { 142c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return menuItems.size(); 143c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 144c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 145d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 146d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public MenuItem getItem(int index) { 147c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return menuItems.get(index); 148c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 149c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 150d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 151d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public void close() { 152c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 153c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 154d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 155d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public boolean performShortcut(int keyCode, KeyEvent event, int flags) { 156c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return false; 157c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 158c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 159d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 160d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public boolean isShortcutKey(int keyCode, KeyEvent event) { 161c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return false; 162c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 163c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 164d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 165d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public boolean performIdentifierAction(int id, int flags) { 166c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return false; 167c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 168c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 169d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz @Override 170d6cd04adb85895b340ce9b6df33b749b22099c43Joe Moore and Tyler Schultz public void setQwertyMode(boolean isQwerty) { 171c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 172c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi 173c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi public TestMenuItem findMenuItem(CharSequence title) { 174c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi for (int i = 0; i < size(); i++) { 175c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi TestMenuItem menuItem = (TestMenuItem) getItem(i); 176c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi if (menuItem.getTitle().equals(title)) { 177c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return menuItem; 178c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 179c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 180c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi return null; 181c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi } 182c96593a610cbcaf9a480a3054a26bde205963ae9Michael Portuesi} 183