package com.novoda.downloadmanager.demo.extended.delete;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.novoda.downloadmanager.demo.R;
import com.novoda.downloadmanager.demo.extended.BeardDownload;
import java.util.List;
import java.util.Locale;
public class DeleteAdapter extends RecyclerView.Adapter<DeleteAdapter.ViewHolder> {
private final List<BeardDownload> beardDownloads;
private final Listener listener;
public DeleteAdapter(List<BeardDownload> beardDownloads, Listener listener) {
this.beardDownloads = beardDownloads;
this.listener = listener;
}
public void updateDownloads(List<BeardDownload> beardDownloads) {
this.beardDownloads.clear();
this.beardDownloads.addAll(beardDownloads);
notifyDataSetChanged();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int position) {
return new ViewHolder(View.inflate(viewGroup.getContext(), R.layout.list_item_download_delete, null));
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
final BeardDownload beardDownload = beardDownloads.get(position);
viewHolder.titleTextView.setText(beardDownload.getTitle());
String text = String.format(Locale.getDefault(), "%1$s : %2$s\nBatch %3$d", beardDownload.getDownloadStatusText(), beardDownload.getFileName(), beardDownload.getBatchId());
viewHolder.locationTextView.setText(text);
if (listener == null) {
viewHolder.deleteButton.setVisibility(View.GONE);
viewHolder.deleteButton.setOnClickListener(null);
} else {
viewHolder.deleteButton.setVisibility(View.VISIBLE);
viewHolder.deleteButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(@NonNull View v) {
listener.onDelete(beardDownload);
}
}
);
}
}
@Override
public int getItemCount() {
return beardDownloads.size();
}
public interface Listener {
void onDelete(BeardDownload beardDownload);
}
static class ViewHolder extends RecyclerView.ViewHolder {
private final TextView titleTextView;
private final TextView locationTextView;
private final Button deleteButton;
public ViewHolder(View itemView) {
super(itemView);
titleTextView = (TextView) itemView.findViewById(R.id.download_title_text);
locationTextView = (TextView) itemView.findViewById(R.id.download_location_text);
deleteButton = (Button) itemView.findViewById(R.id.download_delete_button);
}
}
}