package com.mikepenz.fastadapter_extensions.items; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.net.Uri; import android.support.annotation.DrawableRes; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.mikepenz.fastadapter.commons.utils.FastAdapterUIUtils; import com.mikepenz.fastadapter.items.AbstractItem; import com.mikepenz.library_extensions.R; import com.mikepenz.materialize.holder.ImageHolder; import com.mikepenz.materialize.holder.StringHolder; import java.util.List; /** * Created by fabianterhorst on 30.03.16. */ public class ThreeLineItem extends AbstractItem<ThreeLineItem, ThreeLineItem.ViewHolder> { private StringHolder mName, mDescription; private ImageHolder mAvatar, mIcon; public ThreeLineItem withName(String name) { this.mName = new StringHolder(name); return this; } public ThreeLineItem withDescription(String description) { this.mDescription = new StringHolder(description); return this; } public ThreeLineItem withAvatar(Drawable avatar) { this.mAvatar = new ImageHolder(avatar); return this; } public ThreeLineItem withAvatar(@DrawableRes int avatarRes) { this.mAvatar = new ImageHolder(avatarRes); return this; } public ThreeLineItem withAvatar(Uri uri) { this.mAvatar = new ImageHolder(uri); return this; } public ThreeLineItem withAvatar(Bitmap bitmap) { this.mAvatar = new ImageHolder(bitmap); return this; } public ThreeLineItem withAvatar(String url) { this.mAvatar = new ImageHolder(Uri.parse(url)); return this; } public ThreeLineItem withIcon(Drawable icon) { this.mIcon = new ImageHolder(icon); return this; } public ThreeLineItem withIcon(@DrawableRes int iconRes) { this.mIcon = new ImageHolder(iconRes); return this; } public ThreeLineItem withIcon(Uri uri) { this.mIcon = new ImageHolder(uri); return this; } public ThreeLineItem withIcon(Bitmap bitmap) { this.mIcon = new ImageHolder(bitmap); return this; } public StringHolder getName() { return mName; } public StringHolder getDescription() { return mDescription; } public ImageHolder getAvatar() { return mAvatar; } public ImageHolder getIcon() { return mIcon; } @Override public int getType() { return R.id.three_line_item_id; } @Override public int getLayoutRes() { return R.layout.three_line_item; } @Override public void bindView(ViewHolder holder, List<Object> payloads) { super.bindView(holder, payloads); if (isEnabled()) { holder.itemView.setBackgroundResource(FastAdapterUIUtils.getSelectableBackground(holder.itemView.getContext())); } mName.applyTo(holder.name); mDescription.applyTo(holder.description); ImageHolder.applyToOrSetInvisible(mAvatar, holder.avatar); ImageHolder.applyToOrSetInvisible(mIcon, holder.icon); } @Override public void unbindView(ViewHolder holder) { holder.name.setText(null); holder.description.setText(null); holder.avatar.setImageDrawable(null); holder.avatar.setVisibility(View.VISIBLE); holder.icon.setImageDrawable(null); holder.icon.setVisibility(View.VISIBLE); } @Override public ViewHolder getViewHolder(View v) { return new ViewHolder(v); } protected static class ViewHolder extends RecyclerView.ViewHolder { protected TextView name, description; protected ImageView avatar, icon; public ViewHolder(View view) { super(view); name = (TextView) view.findViewById(R.id.name); description = (TextView) view.findViewById(R.id.description); avatar = (ImageView) view.findViewById(R.id.avatar); icon = (ImageView) view.findViewById(R.id.icon); } } }