blob: 4ad9637cd0ec04f6dccba6e3451ac6baa67365d8 [file] [log] [blame]
package org.robolectric.tester.android.view;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.view.ActionProvider;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import org.robolectric.Robolectric;
public class TestMenuItem implements MenuItem {
private int itemId;
private int groupId;
private CharSequence title;
private boolean enabled = true;
private boolean checked = false;
private boolean checkable = false;
private boolean visible = true;
private boolean expanded = false;
private OnMenuItemClickListener menuItemClickListener;
public Drawable icon;
private Intent intent;
private SubMenu subMenu;
private View actionView;
private OnActionExpandListener actionExpandListener;
private int order;
public TestMenuItem() {
}
public TestMenuItem(int itemId) {
this.itemId = itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public void setGroupId(int groupId) {
this.groupId = groupId;
}
@Override
public int getItemId() {
return itemId;
}
@Override
public int getGroupId() {
return groupId;
}
@Override
public int getOrder() {
return order;
}
public void setOrder(int order) {
this.order = order;
}
@Override
public MenuItem setTitle(CharSequence title) {
this.title = title;
return this;
}
@Override
public MenuItem setTitle(int title) {
return this;
}
@Override
public CharSequence getTitle() {
return title;
}
@Override
public MenuItem setTitleCondensed(CharSequence title) {
return this;
}
@Override
public CharSequence getTitleCondensed() {
return null;
}
@Override
public MenuItem setIcon(Drawable icon) {
this.icon = icon;
return this;
}
@Override
public MenuItem setIcon(int iconRes) {
this.icon = iconRes == 0 ? null : Robolectric.application.getResources().getDrawable(iconRes);
return this;
}
@Override
public Drawable getIcon() {
return this.icon;
}
@Override
public MenuItem setIntent(Intent intent) {
this.intent = intent;
return this;
}
@Override
public Intent getIntent() {
return this.intent;
}
@Override
public MenuItem setShortcut(char numericChar, char alphaChar) {
return this;
}
@Override
public MenuItem setNumericShortcut(char numericChar) {
return this;
}
@Override
public char getNumericShortcut() {
return 0;
}
@Override
public MenuItem setAlphabeticShortcut(char alphaChar) {
return this;
}
@Override
public char getAlphabeticShortcut() {
return 0;
}
@Override
public MenuItem setCheckable(boolean checkable) {
this.checkable = checkable;
return this;
}
@Override
public boolean isCheckable() {
return checkable;
}
@Override
public MenuItem setChecked(boolean checked) {
this.checked = checked;
return this;
}
@Override
public boolean isChecked() {
return checked;
}
@Override
public MenuItem setVisible(boolean visible) {
this.visible = visible;
return this;
}
@Override
public boolean isVisible() {
return visible;
}
@Override
public MenuItem setEnabled(boolean enabled) {
this.enabled = enabled;
return this;
}
@Override
public boolean isEnabled() {
return enabled;
}
@Override
public boolean hasSubMenu() {
return subMenu != null;
}
@Override
public SubMenu getSubMenu() {
return subMenu;
}
public void setSubMenu(SubMenu subMenu) {
this.subMenu = subMenu;
}
@Override
public MenuItem setOnMenuItemClickListener(OnMenuItemClickListener menuItemClickListener) {
this.menuItemClickListener = menuItemClickListener;
return this;
}
@Override
public ContextMenu.ContextMenuInfo getMenuInfo() {
return null;
}
public void click() {
if (enabled && menuItemClickListener != null) {
menuItemClickListener.onMenuItemClick(this);
} else if (enabled && intent != null) {
Robolectric.application.startActivity(intent);
}
}
@Override
public void setShowAsAction(int actionEnum) {
}
@Override
public MenuItem setShowAsActionFlags(int actionEnum) {
return this;
}
@Override
public MenuItem setActionView(View view) {
actionView = view;
return this;
}
@Override
public MenuItem setActionView(int resId) {
return this;
}
@Override
public View getActionView() {
return actionView;
}
@Override
public MenuItem setActionProvider(ActionProvider actionProvider) {
return this;
}
@Override
public ActionProvider getActionProvider() {
return null;
}
@Override
public boolean expandActionView() {
if (actionView != null) {
if (actionExpandListener != null) {
actionExpandListener.onMenuItemActionExpand(this);
}
expanded = true;
return true;
}
return false;
}
@Override
public boolean collapseActionView() {
if (actionView != null) {
if (actionExpandListener != null) {
actionExpandListener.onMenuItemActionCollapse(this);
}
expanded = false;
return true;
}
return false;
}
@Override
public boolean isActionViewExpanded() {
return expanded;
}
@Override
public MenuItem setOnActionExpandListener(OnActionExpandListener listener) {
actionExpandListener = listener;
return this;
}
}