package cgeo.geocaching.connector.gc; import cgeo.geocaching.CacheListActivity; import cgeo.geocaching.R; import cgeo.geocaching.models.PocketQuery; import cgeo.geocaching.ui.recyclerview.AbstractRecyclerViewAdapter; import cgeo.geocaching.ui.recyclerview.AbstractRecyclerViewHolder; import cgeo.geocaching.utils.Formatter; import android.support.annotation.NonNull; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import java.util.List; import butterknife.BindView; class PocketQueryListAdapter extends AbstractRecyclerViewAdapter<PocketQueryListAdapter.ViewHolder> { @NonNull private final List<PocketQuery> queries; protected static final class ViewHolder extends AbstractRecyclerViewHolder { @BindView(R.id.label) TextView label; @BindView(R.id.download) Button download; @BindView(R.id.cachelist) Button cachelist; @BindView(R.id.info) TextView info; ViewHolder(final View view) { super(view); } } PocketQueryListAdapter(@NonNull final List<PocketQuery> queries) { this.queries = queries; } @Override public int getItemCount() { return queries.size(); } @Override public ViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) { final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.pocketquery_item, parent, false); final ViewHolder viewHolder = new ViewHolder(view); viewHolder.cachelist.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View view) { CacheListActivity.startActivityPocket(view.getContext(), queries.get(viewHolder.getItemPosition())); } }); viewHolder.download.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View v) { CacheListActivity.startActivityPocketDownload(view.getContext(), queries.get(viewHolder.getItemPosition())); } }); return viewHolder; } @Override public void onBindViewHolder(final ViewHolder holder, final int position) { super.onBindViewHolder(holder, position); final PocketQuery pocketQuery = queries.get(position); holder.download.setVisibility(pocketQuery.isDownloadable() ? View.VISIBLE : View.GONE); holder.label.setText(pocketQuery.getName()); holder.info.setText(Formatter.formatPocketQueryInfo(pocketQuery)); } }