package com.alorma.github.ui.adapter.users;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.alorma.github.R;
import com.alorma.github.ui.adapter.base.RecyclerArrayAdapter;
import com.alorma.github.ui.view.UserAvatarView;
import core.User;
public class UsersAdapterSpinner extends RecyclerArrayAdapter<User, UsersAdapterSpinner.Holder> {
public UsersAdapterSpinner(LayoutInflater inflater) {
super(inflater);
}
@Override
protected void onBindViewHolder(Holder holder, User user) {
holder.fill(user);
}
@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
return new Holder(getInflater().inflate(R.layout.item_profile, parent, false));
}
public class Holder extends RecyclerView.ViewHolder {
@BindView(R.id.profileIcon) UserAvatarView authorAvatar;
@BindView(R.id.name) TextView authorLogin;
@BindView(R.id.email) TextView authorEmail;
public Holder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
itemView.setOnClickListener(view -> {
if (getCallback() != null) {
getCallback().onItemSelected(getItem(getAdapterPosition()));
}
});
}
public void fill(User user) {
if (authorAvatar != null) {
this.authorAvatar.setVisibility(View.VISIBLE);
authorAvatar.setUser(user);
}
if (authorLogin != null) {
this.authorLogin.setVisibility(View.VISIBLE);
if (!TextUtils.isEmpty(user.getLogin())) {
authorLogin.setText(user.getLogin());
}
}
if (authorEmail != null) {
this.authorEmail.setVisibility(View.VISIBLE);
if (!TextUtils.isEmpty(user.getLogin())) {
authorEmail.setText(user.getEmail());
}
}
}
public void clear() {
if (authorLogin != null) {
authorLogin.setText("");
this.authorLogin.setVisibility(View.INVISIBLE);
}
if (authorEmail != null) {
authorEmail.setText("");
this.authorEmail.setVisibility(View.INVISIBLE);
}
if (authorAvatar != null) {
authorAvatar.setImageDrawable(null);
this.authorAvatar.setVisibility(View.INVISIBLE);
}
}
}
}