package com.fastaccess.ui.adapter.viewholder;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.View;
import android.view.ViewGroup;
import com.fastaccess.R;
import com.fastaccess.data.dao.model.User;
import com.fastaccess.helper.ViewHelper;
import com.fastaccess.ui.adapter.AssigneesAdapter;
import com.fastaccess.ui.widgets.AvatarLayout;
import com.fastaccess.ui.widgets.FontTextView;
import com.fastaccess.ui.widgets.recyclerview.BaseRecyclerAdapter;
import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder;
import butterknife.BindColor;
import butterknife.BindView;
/**
* Created by Kosh on 11 Nov 2016, 2:08 PM
*/
public class AssigneesViewHolder extends BaseViewHolder<User> {
@BindView(R.id.avatarLayout) AvatarLayout avatar;
@BindView(R.id.title) FontTextView title;
@BindView(R.id.date) FontTextView date;
@BindColor(R.color.light_gray) int lightGray;
private final AssigneesAdapter.OnSelectAssignee onSelectAssignee;
@Override public void onClick(View v) {
if (onSelectAssignee != null) {
int position = getAdapterPosition();
onSelectAssignee.onToggleSelection(position, !onSelectAssignee.isAssigneeSelected(position));
} else {
super.onClick(v);
}
}
private AssigneesViewHolder(@NonNull View itemView, @Nullable AssigneesAdapter.OnSelectAssignee onSelectAssignee,
@NonNull BaseRecyclerAdapter adapter) {
super(itemView, adapter);
this.onSelectAssignee = onSelectAssignee;
}
public static AssigneesViewHolder newInstance(@NonNull ViewGroup viewGroup, @Nullable AssigneesAdapter.OnSelectAssignee onSelectAssignee,
@NonNull BaseRecyclerAdapter adapter) {
return new AssigneesViewHolder(getView(viewGroup, R.layout.feeds_row_item), onSelectAssignee, adapter);
}
@Override public void bind(@NonNull User user) {
avatar.setUrl(user.getAvatarUrl(), user.getLogin(), user.isOrganizationType());
title.setText(user.getLogin());
date.setVisibility(View.GONE);
if (onSelectAssignee != null) {
itemView.setBackgroundColor(onSelectAssignee.isAssigneeSelected(getAdapterPosition())
? lightGray : ViewHelper.getWindowBackground(itemView.getContext()));
}
}
}