package com.databases.example.app; import android.view.ActionMode; import android.view.Menu; import android.view.MenuItem; import com.databases.example.features.checkbook.accounts.AccountsFragment; import com.databases.example.features.checkbook.transactions.TransactionsFragment; import com.databases.example.features.plans.PlanActionModeInterface; import com.databases.example.features.plans.PlansActivity; import timber.log.Timber; /** * Created by kwelsh on 3/12/17. * Class to handle the ActionMode code */ public class BaseActionMode implements ActionMode.Callback { private BaseActionModeInterface baseActionModeInterface; private PlanActionModeInterface planActionModeInterface; @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { return baseActionModeInterface.onCreateActionMode(mode, menu); } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return baseActionModeInterface.onPrepareActionMode(mode, menu); } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case AccountsFragment.CONTEXT_MENU_VIEW: return baseActionModeInterface.viewClicked(mode, item, baseActionModeInterface.getSelectedIds()); case AccountsFragment.CONTEXT_MENU_EDIT: return baseActionModeInterface.editClicked(mode, item, baseActionModeInterface.getSelectedIds()); case AccountsFragment.CONTEXT_MENU_DELETE: return baseActionModeInterface.deleteClicked(mode, item, baseActionModeInterface.getSelectedIds()); case TransactionsFragment.CONTEXT_MENU_VIEW: return baseActionModeInterface.viewClicked(mode, item, baseActionModeInterface.getSelectedIds()); case TransactionsFragment.CONTEXT_MENU_EDIT: return baseActionModeInterface.editClicked(mode, item, baseActionModeInterface.getSelectedIds()); case TransactionsFragment.CONTEXT_MENU_DELETE: return baseActionModeInterface.deleteClicked(mode, item, baseActionModeInterface.getSelectedIds()); case PlansActivity.ACTION_MODE_VIEW: return baseActionModeInterface.viewClicked(mode, item, baseActionModeInterface.getSelectedIds()); case PlansActivity.ACTION_MODE_EDIT: return baseActionModeInterface.editClicked(mode, item, baseActionModeInterface.getSelectedIds()); case PlansActivity.ACTION_MODE_DELETE: return baseActionModeInterface.deleteClicked(mode, item, baseActionModeInterface.getSelectedIds()); case PlansActivity.ACTION_MODE_TOGGLE: return planActionModeInterface.toggleClicked(mode, item, planActionModeInterface.getSelectedIds()); default: mode.finish(); Timber.e("ERROR. Clicked " + item); return false; } } @Override public void onDestroyActionMode(ActionMode mode) { baseActionModeInterface.onDestroyActionMode(mode); } public void setBaseActionModeInterface(BaseActionModeInterface baseActionModeInterface) { this.baseActionModeInterface = baseActionModeInterface; } public BaseActionModeInterface getBaseActionModeInterface() { return this.baseActionModeInterface; } public PlanActionModeInterface getPlanActionModeInterface() { return planActionModeInterface; } public void setPlanActionModeInterface(PlanActionModeInterface planActionModeInterface) { this.planActionModeInterface = planActionModeInterface; } }