package jp.mixi.sample.di.ui.state; import android.content.Context; import jp.mixi.sample.di.R; import jp.mixi.sample.di.ui.helper.OptionsMenuEventDispatcher; import jp.mixi.sample.di.ui.helper.SettingMenuEventDispatcher; import jp.mixi.sample.di.ui.helper.UnknownMenuEventDispatcher; import proton.inject.Proton; public enum MainMenuItem { SETTING(R.id.action_settings, SettingMenuEventDispatcher.class), UNKNOWN(0, UnknownMenuEventDispatcher.class); private final int mId; private final Class<? extends OptionsMenuEventDispatcher> mEventDispatcher; private MainMenuItem(int id, Class<? extends OptionsMenuEventDispatcher> eventDispatcher) { mId = id; mEventDispatcher = eventDispatcher; } public static final MainMenuItem findItemById(int id) { for (MainMenuItem item : values()) { if (item.getId() == id) { return item; } } return MainMenuItem.UNKNOWN; } public int getId() { return mId; } public OptionsMenuEventDispatcher getEventDispatcher(Context context) { return Proton.getInjector(context).getInstance(mEventDispatcher); } }