package com.simplecity.amp_library.ui.adapters;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.simplecity.amp_library.model.BaseFileObject;
import com.simplecity.amp_library.ui.modelviews.BreadcrumbsView;
import com.simplecity.amp_library.ui.modelviews.FolderView;
import com.simplecity.amp_library.ui.views.BreadcrumbItem;
public class FolderAdapter extends ItemAdapter {
public interface Listener {
void onItemClick(View v, int position, BaseFileObject fileObject);
void onOverflowClick(View v, int position, BaseFileObject fileObject);
void onBreadcrumbItemClick(BreadcrumbItem item);
void onCheckedChange(FolderView folderView, boolean isChecked);
}
private Listener listener;
public void setListener(Listener listener) {
this.listener = listener;
}
public BaseFileObject getFileObject(int position) {
return (BaseFileObject) items.get(position).getItem();
}
@Override
protected void attachListeners(RecyclerView.ViewHolder viewHolder) {
super.attachListeners(viewHolder);
if (viewHolder instanceof BreadcrumbsView.ViewHolder) {
((BreadcrumbsView.ViewHolder) viewHolder).breadcrumbView.addBreadcrumbListener(item -> {
if (viewHolder.getAdapterPosition() != -1 && listener != null) {
listener.onBreadcrumbItemClick(item);
}
});
} else if (viewHolder instanceof FolderView.ViewHolder) {
((FolderView.ViewHolder) viewHolder).itemView.setOnClickListener(v -> {
if (viewHolder.getAdapterPosition() != -1 && listener != null) {
listener.onItemClick(v, viewHolder.getAdapterPosition(), getFileObject(viewHolder.getAdapterPosition()));
}
});
((FolderView.ViewHolder) viewHolder).overflow.setOnClickListener(v -> {
if (viewHolder.getAdapterPosition() != -1 && listener != null) {
listener.onOverflowClick(v, viewHolder.getAdapterPosition(), getFileObject(viewHolder.getAdapterPosition()));
}
});
((FolderView.ViewHolder) viewHolder).checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (viewHolder.getAdapterPosition() != -1 && listener != null) {
listener.onCheckedChange((FolderView) items.get(viewHolder.getAdapterPosition()), isChecked);
}
});
}
}
}