package com.badoo.chateau.example.ui.widgets;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.view.ActionProvider;
import android.view.ContextMenu;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
class InputActionsMenu implements Menu {
private final Context mContext;
private final List<InputActionsMenuItem> mItems = new ArrayList<>();
public InputActionsMenu(@NonNull Context context) {
mContext = context;
}
@Override
public MenuItem add(CharSequence title) {
InputActionsMenuItem item = new InputActionsMenuItem();
item.setTitle(title);
mItems.add(item);
return item;
}
@Override
public MenuItem add(int titleRes) {
InputActionsMenuItem item = new InputActionsMenuItem();
item.setTitle(titleRes);
mItems.add(item);
return item;
}
@Override
public MenuItem add(int groupId, int itemId, int order, CharSequence title) {
InputActionsMenuItem item = new InputActionsMenuItem(itemId);
item.setTitle(title);
mItems.add(item);
return item;
}
@Override
public MenuItem add(int groupId, int itemId, int order, int titleRes) {
InputActionsMenuItem item = new InputActionsMenuItem(itemId);
item.setTitle(titleRes);
mItems.add(item);
return item;
}
@Override
public SubMenu addSubMenu(CharSequence title) {
// Not supported
return null;
}
@Override
public SubMenu addSubMenu(int titleRes) {
// Not supported
return null;
}
@Override
public SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title) {
// Not supported
return null;
}
@Override
public SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes) {
// Not supported
return null;
}
@Override
public int addIntentOptions(int groupId, int itemId, int order, ComponentName caller, Intent[] specifics, Intent intent, int flags, MenuItem[] outSpecificItems) {
// Not supported
return 0;
}
@Override
public void removeItem(int id) {
// Not supported
}
@Override
public void removeGroup(int groupId) {
// Not supported
}
@Override
public void clear() {
// Not supported
}
@Override
public void setGroupCheckable(int group, boolean checkable, boolean exclusive) {
// Not supported
}
@Override
public void setGroupVisible(int group, boolean visible) {
// Not supported
}
@Override
public void setGroupEnabled(int group, boolean enabled) {
// Not supported
}
@Override
public boolean hasVisibleItems() {
return true;
}
@Override
public MenuItem findItem(int id) {
// Not supported
return null;
}
@Override
public int size() {
return mItems.size();
}
@Override
public MenuItem getItem(int index) {
return mItems.get(index);
}
@Override
public void close() {
// Not supported
}
@Override
public boolean performShortcut(int keyCode, KeyEvent event, int flags) {
// Not supported
return false;
}
@Override
public boolean isShortcutKey(int keyCode, KeyEvent event) {
// Not supported
return false;
}
@Override
public boolean performIdentifierAction(int id, int flags) {
// Not supported
return false;
}
@Override
public void setQwertyMode(boolean isQwerty) {
// Not supported
}
class InputActionsMenuItem implements MenuItem {
private int mItemId;
private CharSequence mTitle;
private Drawable mIcon;
public InputActionsMenuItem() {
}
public InputActionsMenuItem(int itemId) {
mItemId = itemId;
}
@Override
public int getItemId() {
return mItemId;
}
@Override
public int getGroupId() {
return 0;
}
@Override
public int getOrder() {
return 0;
}
@Override
public MenuItem setTitle(CharSequence title) {
mTitle = title;
return this;
}
@Override
public MenuItem setTitle(int title) {
mTitle = mContext.getString(title);
return this;
}
@Override
public CharSequence getTitle() {
return mTitle;
}
@Override
public MenuItem setTitleCondensed(CharSequence title) {
// Not Supported
return this;
}
@Override
public CharSequence getTitleCondensed() {
// Not supported
return null;
}
@Override
public MenuItem setIcon(Drawable icon) {
mIcon = icon;
return this;
}
@Override
public MenuItem setIcon(int iconRes) {
//noinspection deprecation
mIcon = mContext.getResources().getDrawable(iconRes);
return this;
}
@Override
public Drawable getIcon() {
return mIcon;
}
@Override
public MenuItem setIntent(Intent intent) {
// Not supported
return this;
}
@Override
public Intent getIntent() {
// Not supported
return null;
}
@Override
public MenuItem setShortcut(char numericChar, char alphaChar) {
// Not supported
return this;
}
@Override
public MenuItem setNumericShortcut(char numericChar) {
// Not supported
return this;
}
@Override
public char getNumericShortcut() {
return 0;
}
@Override
public MenuItem setAlphabeticShortcut(char alphaChar) {
// Not supported
return this;
}
@Override
public char getAlphabeticShortcut() {
// Not supported
return 0;
}
@Override
public MenuItem setCheckable(boolean checkable) {
// Not supported
return this;
}
@Override
public boolean isCheckable() {
// Not supported
return false;
}
@Override
public MenuItem setChecked(boolean checked) {
// Not supported
return this;
}
@Override
public boolean isChecked() {
// Not supported
return false;
}
@Override
public MenuItem setVisible(boolean visible) {
// Not supported
return this;
}
@Override
public boolean isVisible() {
// Not supported
return true;
}
@Override
public MenuItem setEnabled(boolean enabled) {
// Not supported
return this;
}
@Override
public boolean isEnabled() {
// Not supported
return true;
}
@Override
public boolean hasSubMenu() {
return false;
}
@Override
public SubMenu getSubMenu() {
// Not supported
return null;
}
@Override
public MenuItem setOnMenuItemClickListener(OnMenuItemClickListener menuItemClickListener) {
// Not supported
return this;
}
@Override
public ContextMenu.ContextMenuInfo getMenuInfo() {
// Not supported
return null;
}
@Override
public void setShowAsAction(int actionEnum) {
// Not supported
}
@Override
public MenuItem setShowAsActionFlags(int actionEnum) {
// Not supported
return this;
}
@Override
public MenuItem setActionView(View view) {
// Not supported
return this;
}
@Override
public MenuItem setActionView(int resId) {
// Not supported
return this;
}
@Override
public View getActionView() {
// Not supported
return null;
}
@Override
public MenuItem setActionProvider(ActionProvider actionProvider) {
// Not supported
return this;
}
@Override
public ActionProvider getActionProvider() {
// Not supported
return null;
}
@Override
public boolean expandActionView() {
// Not supported
return false;
}
@Override
public boolean collapseActionView() {
// Not supported
return false;
}
@Override
public boolean isActionViewExpanded() {
// Not supported
return false;
}
@Override
public MenuItem setOnActionExpandListener(OnActionExpandListener listener) {
// Not supported
return this;
}
}
}