package com.fastaccess.ui.adapter.viewholder; import android.graphics.Color; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.AppCompatImageView; import android.view.View; import android.view.ViewGroup; import com.fastaccess.R; import com.fastaccess.data.dao.LabelModel; import com.fastaccess.helper.ViewHelper; import com.fastaccess.ui.adapter.LabelsAdapter; import com.fastaccess.ui.widgets.FontTextView; import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter; import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; import butterknife.BindView; /** * Created by Kosh on 22 Feb 2017, 7:36 PM */ public class LabelsViewHolder extends BaseViewHolder<LabelModel> { @BindView(R.id.colorImage) AppCompatImageView colorImage; @BindView(R.id.name) FontTextView name; private LabelsAdapter.OnSelectLabel onSelectLabel; @Override public void onClick(View v) { if (onSelectLabel != null) { int position = getAdapterPosition(); onSelectLabel.onToggleSelection(position, !onSelectLabel.isLabelSelected(position)); } else { super.onClick(v); } } private LabelsViewHolder(@NonNull View itemView, LabelsAdapter.OnSelectLabel onSelectLabel, @NonNull BaseRecyclerAdapter adapter) { super(itemView, adapter); this.onSelectLabel = onSelectLabel; } public static LabelsViewHolder newInstance(@NonNull ViewGroup parent, @Nullable LabelsAdapter.OnSelectLabel onSelectLabel, @NonNull BaseRecyclerAdapter adapter) { return new LabelsViewHolder(getView(parent, R.layout.label_row_item), onSelectLabel, adapter); } @Override public void bind(@NonNull LabelModel labelModel) { name.setText(labelModel.getName()); if (labelModel.getColor() != null) { int color = Color.parseColor(labelModel.getColor().startsWith("#") ? labelModel.getColor() : "#" + labelModel.getColor()); colorImage.setBackgroundColor(color); if (onSelectLabel != null) { if (onSelectLabel.isLabelSelected(getAdapterPosition())) { name.setTextColor(ViewHelper.generateTextColor(color)); } else { name.setTextColor(ViewHelper.getPrimaryTextColor(itemView.getContext())); } itemView.setBackgroundColor(onSelectLabel.isLabelSelected(getAdapterPosition()) ? color : 0); } } else { colorImage.setBackgroundColor(0); } } }