package me.devsaki.hentoid.listener;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import me.devsaki.hentoid.database.domains.Content;
import me.devsaki.hentoid.util.FileHelper;
import me.devsaki.hentoid.util.LogHelper;
/**
* Created by avluis on 05/07/2016.
* Item OnClick and OnLongClick Listener with support for item selection
*/
public class ItemClickListener implements OnClickListener, OnLongClickListener {
private static final String TAG = LogHelper.makeLogTag(ItemClickListener.class);
private final Context context;
private final Content content;
private final ItemSelectListener listener;
private final int position;
private int selectedItemCount;
private boolean selected;
protected ItemClickListener(Context cxt, Content content, int pos, ItemSelectListener listener) {
this.context = cxt;
this.content = content;
this.position = pos;
this.selectedItemCount = 0;
this.listener = listener;
}
protected void setSelected(boolean selected, int selectedItemCount) {
this.selected = selected;
this.selectedItemCount = selectedItemCount;
}
private void updateSelector() {
if (selected) {
listener.onItemSelected(selectedItemCount);
} else {
listener.onItemClear(selectedItemCount);
}
}
@Override
public void onClick(View v) {
if (!selected) {
FileHelper.openContent(context, content);
}
}
@Override
public boolean onLongClick(View v) {
updateSelector();
LogHelper.d(TAG, "Position: " + position + ": " + content.getTitle() +
" has been" + (selected ? " selected." : " unselected."));
return true;
}
public interface ItemSelectListener {
void onItemSelected(int selectedCount);
void onItemClear(int itemCount);
}
}