package cw.kop.autobackground.images;
import android.app.Activity;
import android.graphics.PorterDuff;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.dropbox.client2.DropboxAPI.Entry;
import java.util.ArrayList;
import java.util.List;
import cw.kop.autobackground.R;
import cw.kop.autobackground.settings.AppSettings;
/**
* Created by TheKeeperOfPie on 4/11/2015.
*/
public class AdapterDropbox extends RecyclerView.Adapter<AdapterDropbox.ViewHolder> {
private List<Entry> entries;
private Entry topDir;
private Entry mainDir;
private boolean finished;
private int colorFilterInt;
private FolderCallback folderCallback;
public AdapterDropbox(Activity activity, FolderCallback folderCallback) {
this.folderCallback = folderCallback;
this.colorFilterInt = AppSettings.getColorFilterInt(activity);
}
public void setDirs(Entry topDir, Entry mainDir) {
this.topDir = topDir;
this.mainDir = mainDir;
this.entries = mainDir.contents == null ? new ArrayList<Entry>() : mainDir.contents;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.file_row, parent, false));
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Entry entry = entries.get(position);
if (entry.isDir) {
holder.fileImage.setImageResource(R.drawable.ic_folder_white_24dp);
}
else {
holder.fileImage.setImageResource(R.drawable.ic_insert_drive_file_white_24dp);
}
holder.fileTitle.setText(entry.fileName());
holder.fileSummary.setText(entry.isDir ? "" : entry.size);
}
@Override
public int getItemCount() {
return entries.size();
}
public Entry getMainDir() {
return mainDir;
}
public void setDir(Entry dir) {
entries = dir.contents == null ? new ArrayList<Entry>() : dir.contents;
mainDir = dir;
notifyDataSetChanged();
}
public void setFinished(boolean finished) {
this.finished = finished;
}
public Boolean backDirectory() {
return finished || topDir.path.equals(mainDir.path);
}
public Entry getItem(int positionInList) {
return entries.get(positionInList);
}
protected class ViewHolder extends RecyclerView.ViewHolder {
protected final TextView fileTitle;
protected final TextView fileSummary;
protected final ImageView fileImage;
public ViewHolder(View itemView) {
super(itemView);
fileTitle = (TextView) itemView.findViewById(R.id.file_title);
fileSummary = (TextView) itemView.findViewById(R.id.file_summary);
fileImage = (ImageView) itemView.findViewById(R.id.file_image);
fileImage.setColorFilter(colorFilterInt, PorterDuff.Mode.MULTIPLY);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
folderCallback.onItemClick(getPosition());
}
});
}
}
}