add favourite workflow list recyclerview adapter
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/dc880ac9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/dc880ac9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/dc880ac9 Branch: refs/heads/master Commit: dc880ac97d4d1f46b09c8514ce8c331b9bec15f1 Parents: 3c7f4c1 Author: Sagar <[email protected]> Authored: Sat Jul 9 23:54:49 2016 +0530 Committer: Sagar <[email protected]> Committed: Sat Jul 9 23:54:49 2016 +0530 ---------------------------------------------------------------------- .../ui/adapter/FavouriteWorkflowsAdapter.java | 117 +++++++++++++++++++ 1 file changed, 117 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/dc880ac9/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java new file mode 100644 index 0000000..93431ba --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java @@ -0,0 +1,117 @@ +package org.apache.taverna.mobile.ui.adapter; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; + +import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.data.model.Workflow; + +import android.content.Context; +import android.net.Uri; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class FavouriteWorkflowsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { + + private static final String TAG = FavouriteWorkflowsAdapter.class.getName(); + + private final List<Workflow> mWorkflowList; + + private final Context context; + + public FavouriteWorkflowsAdapter(List<Workflow> mWorkflowList, Context context) { + this.mWorkflowList = mWorkflowList; + this.context = context; + + } + + public void addWorkflow(Workflow workflow) { + this.mWorkflowList.add(workflow); + this.notifyDataSetChanged(); + + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + RecyclerView.ViewHolder vh; + + View v = LayoutInflater.from(parent.getContext()).inflate( + R.layout.item_recyclerview_favourite_workflow_list, parent, false); + vh = new ViewHolder(v); + + return vh; + } + + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + if (holder instanceof ViewHolder) { + + Workflow workflow = mWorkflowList.get(position); + String date = workflow.getCreatedAt() + .substring(0, workflow.getCreatedAt().indexOf(' ')); + + String title = workflow.getTitle().substring(0, + Math.min(workflow.getTitle().length(), 50)); + + if (workflow.getTitle().length() > 50) { + title = title + " ... "; + } + + ((ViewHolder) holder).tvDate.setText(date); + ((ViewHolder) holder).tvTitle.setText(title); + ((ViewHolder) holder).tvType.setText(workflow.getType().getContent()); + ((ViewHolder) holder).tvUploader.setText(workflow.getUploader().getContent()); + + Uri uri = Uri.parse(workflow.getPreviewUri()); + + Glide.with(context) + .load(uri) + .diskCacheStrategy(DiskCacheStrategy.SOURCE) + .placeholder(R.drawable.placeholder) + .error(R.drawable.placeholder) + .into(((ViewHolder) holder).ivWorkflowImage); + } + } + + @Override + public int getItemCount() { + Log.d(TAG, "getItemCount: " + mWorkflowList.size()); + return mWorkflowList.size(); + } + + + class ViewHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.tvDate) + TextView tvDate; + + @BindView(R.id.tvTitle) + TextView tvTitle; + + @BindView(R.id.tvType) + TextView tvType; + + @BindView(R.id.tvUploader) + TextView tvUploader; + + @BindView(R.id.ivWorkflowImage) + ImageView ivWorkflowImage; + + public ViewHolder(View itemView) { + super(itemView); + ButterKnife.bind(this, itemView); + + } + } + +}
