package com.basic.security.widget.hlistview.v11;
|
|
import android.annotation.TargetApi;
|
import android.os.Build;
|
import android.view.ActionMode;
|
import android.view.Menu;
|
import android.view.MenuItem;
|
|
import com.basic.security.widget.hlistview.AbsHListView;
|
|
public class MultiChoiceModeWrapper implements MultiChoiceModeListener {
|
private MultiChoiceModeListener mWrapped;
|
private AbsHListView mView;
|
|
public MultiChoiceModeWrapper(AbsHListView view) {
|
mView = view;
|
}
|
|
public void setWrapped(MultiChoiceModeListener wrapped) {
|
mWrapped = wrapped;
|
}
|
|
public boolean hasWrappedCallback() {
|
return mWrapped != null;
|
}
|
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
if (mWrapped.onCreateActionMode(mode, menu)) {
|
mView.setLongClickable(false);
|
return true;
|
}
|
return false;
|
}
|
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
|
return mWrapped.onPrepareActionMode(mode, menu);
|
}
|
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
return mWrapped.onActionItemClicked(mode, item);
|
}
|
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
public void onDestroyActionMode(ActionMode mode) {
|
mWrapped.onDestroyActionMode(mode);
|
mView.mChoiceActionMode = null;
|
// Ending selection mode means deselecting everything.
|
mView.clearChoices();
|
mView.mDataChanged = true;
|
mView.rememberSyncState();
|
mView.requestLayout();
|
mView.setLongClickable(true);
|
}
|
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
|
mWrapped.onItemCheckedStateChanged(mode, position, id, checked);
|
// If there are no items selected we no longer need the selection mode.
|
if (mView.getCheckedItemCount() == 0) {
|
mode.finish();
|
}
|
}
|
}
|