package com.alorma.github.ui.fragment.releases; import android.support.v7.widget.RecyclerView; import android.text.format.Formatter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import butterknife.BindView; import butterknife.ButterKnife; import com.alorma.github.R; import com.alorma.github.ui.adapter.base.RecyclerArrayAdapter; import core.repositories.releases.Asset; public class ReleaseAssetsAdapter extends RecyclerArrayAdapter<Asset, ReleaseAssetsAdapter.Holder> { private OnReleaseAssetClicked onReleaseAssetClicked; public ReleaseAssetsAdapter(LayoutInflater inflater) { super(inflater); } @Override protected void onBindViewHolder(Holder holder, Asset releaseAsset) { holder.releaseAssetName.setText(releaseAsset.getName()); if (releaseAsset.getSize() != null && releaseAsset.getSize() > 0) { String size = Formatter.formatShortFileSize(holder.releaseAssetSize.getContext(), releaseAsset.getSize()); holder.releaseAssetSize.setText(size); holder.releaseAssetSize.setVisibility(View.VISIBLE); } else { holder.releaseAssetSize.setVisibility(View.GONE); } } @Override public Holder onCreateViewHolder(ViewGroup parent, int viewType) { return new Holder(getInflater().inflate(R.layout.row_repo_release_asset, parent, false)); } public void setOnReleaseAssetClicked(OnReleaseAssetClicked onReleaseAssetClicked) { this.onReleaseAssetClicked = onReleaseAssetClicked; } public class Holder extends RecyclerView.ViewHolder { @BindView(R.id.releaseAssetName) TextView releaseAssetName; @BindView(R.id.releaseAssetSize) TextView releaseAssetSize; public Holder(View itemView) { super(itemView); ButterKnife.bind(this, itemView); itemView.setOnClickListener(v -> { if (onReleaseAssetClicked != null) { onReleaseAssetClicked.onReleaseAssetCLicked(getItem(getAdapterPosition())); } }); } } public interface OnReleaseAssetClicked { void onReleaseAssetCLicked(Asset asset); } }