package com.xabber.android.ui.adapter.accountoptions; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.xabber.android.R; public class AccountOptionsAdapter extends RecyclerView.Adapter<AccountOptionViewHolder> implements AccountOptionClickListener { private final AccountOption[] options; private final Listener listener; public interface Listener { void onAccountOptionClick(AccountOption option); } public AccountOptionsAdapter(AccountOption[] options, Listener listener) { this.options = options; this.listener = listener; } @Override public AccountOptionViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_account_option, parent, false); return new AccountOptionViewHolder(itemView, this); } @Override public void onBindViewHolder(AccountOptionViewHolder holder, int position) { AccountOption accountOption = options[position]; holder.icon.setImageResource(accountOption.getIconId()); holder.title.setText(accountOption.getTitleId()); holder.description.setText(accountOption.getDescription()); if (position == 0) { holder.separator.setVisibility(View.GONE); } else { holder.separator.setVisibility(View.VISIBLE); } } @Override public int getItemCount() { return options.length; } @Override public void onAccountOptionClick(int adapterPosition) { listener.onAccountOptionClick(options[adapterPosition]); } }