package org.holoeverywhere.demo.fragments.lists;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v7.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import org.holoeverywhere.demo.R;
import org.holoeverywhere.widget.ArrayAdapter;
import org.holoeverywhere.widget.ListView;
import org.holoeverywhere.widget.ListView.MultiChoiceModeListener;
public class ListsChoiceModeModalFragment extends ListsBaseFragment implements
MultiChoiceModeListener {
private ActionMode mLastActionMode;
private ListView mList;
@Override
protected CharSequence getTitle() {
return "Lists: Choice mode: Modal";
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem menuItem) {
mLastActionMode = mode;
switch (menuItem.getItemId()) {
case R.id.inverse:
final int count = mList.getCount();
for (int i = 0; i < count; i++) {
mList.setItemChecked(i, !mList.isItemChecked(i));
}
break;
default:
return false;
}
return true;
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mLastActionMode = mode;
mode.setTitle(R.string.library_name);
updateSubtitle(mode);
getMenuInflater().inflate(R.menu.lists_choice_mode_modal, menu);
return true;
}
@Override
public void onDestroy() {
if (mLastActionMode != null) {
mLastActionMode.finish();
mLastActionMode = null;
}
super.onDestroy();
}
@Override
public void onDestroyActionMode(ActionMode mode) {
mLastActionMode = null;
}
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
updateSubtitle(mLastActionMode = mode);
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
mLastActionMode = mode;
return true;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mList = getListView();
mList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
mList.setMultiChoiceModeListener(this);
setListAdapter(ArrayAdapter.createFromResource(getActivity(), R.array.some_words,
R.layout.simple_list_item_multiple_choice));
}
@SuppressLint("NewApi")
private void updateSubtitle(ActionMode mode) {
mode.setSubtitle("Checked: " + mList.getCheckedItemCount());
}
}