package com.automattic.simplenote.utils; import android.graphics.drawable.Drawable; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.automattic.simplenote.R; import java.util.List; /** * Created by Ondrej Ruttkay on 21/03/2016. */ public class ShareButtonAdapter extends RecyclerView.Adapter<ShareButtonAdapter.ViewHolder> { private List<ShareButtonItem> mItems; private ItemListener mListener; public ShareButtonAdapter(List<ShareButtonItem> items, ItemListener listener) { mItems = items; mListener = listener; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(parent.getContext()) .inflate(R.layout.share_button_item, parent, false)); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.setData(mItems.get(position)); } @Override public int getItemCount() { return mItems.size(); } public interface ItemListener { void onItemClick(ShareButtonItem item); } public static class ShareButtonItem { private Drawable mDrawableRes; private CharSequence mTitle; private String mPackageName; private String mActivityName; public ShareButtonItem(Drawable drawable, CharSequence title, String packageName, String activityName) { mDrawableRes = drawable; mTitle = title; mPackageName = packageName; mActivityName = activityName; } public Drawable getDrawable() { return mDrawableRes; } public CharSequence getTitle() { return mTitle; } public String getPackageName() { return mPackageName; } public String getActivityName() { return mActivityName; } } public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { public TextView button; public ShareButtonItem item; public ViewHolder(View itemView) { super(itemView); itemView.setOnClickListener(this); button = (TextView) itemView.findViewById(R.id.share_button); } public void setData(ShareButtonItem item) { this.item = item; button.setCompoundDrawablesWithIntrinsicBounds(null, item.getDrawable(), null, null); button.setText(item.getTitle()); } @Override public void onClick(View v) { if (mListener != null) { mListener.onItemClick(item); } } } }