package com.ushahidi.android.app.helpers; import android.annotation.SuppressLint; import android.view.ActionMode; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import com.ushahidi.android.app.R; import com.ushahidi.android.app.ui.tablet.ListMapFragment; @SuppressLint("NewApi") public class ActionModeHelper implements ActionMode.Callback, AdapterView.OnItemLongClickListener { private ListMapFragment listMapFragment; private ActionMode activeMode; private ListView modeView; private int lastPosition = -1; public ActionModeHelper(ListMapFragment listMapFragment, ListView listView) { this.listMapFragment = listMapFragment; this.modeView = listView; } @Override public boolean onItemLongClick(AdapterView<?> view, View row, int position, long id) { lastPosition = position; modeView.clearChoices(); modeView.setItemChecked(lastPosition, true); if (activeMode == null) { if (listMapFragment != null) { activeMode = listMapFragment.getActivity().startActionMode(this); } } return (true); } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { if (listMapFragment != null) { MenuInflater inflater = listMapFragment.getActivity().getMenuInflater(); inflater.inflate(R.menu.list_map_context, menu); listMapFragment.getActivity().setTitle(R.string.map); } return (true); } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return (false); } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { boolean result = false; if( listMapFragment !=null) result = listMapFragment.performAction(item, lastPosition); /* * if (item.getItemId() == R.id.remove) { activeMode.finish(); } */ return (result); } @Override public void onDestroyActionMode(ActionMode mode) { activeMode = null; modeView.clearChoices(); } }