package com.huhx0015.gw2at.view.adapters; import android.databinding.DataBindingUtil; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.ViewGroup; import com.huhx0015.gw2at.R; import com.huhx0015.gw2at.databinding.AdapterQuaggansBinding; import com.huhx0015.gw2at.model.responses.QuaggansResponse; import com.huhx0015.gw2at.viewmodels.adapters.QuaggansAdapterViewModel; import java.util.List; /** * Created by Michael Yoon Huh on 2/1/2017. */ public class QuaggansAdapter extends RecyclerView.Adapter<QuaggansAdapter.QuaggansViewHolder> { /** CLASS VARIABLES ________________________________________________________________________ **/ // LIST VARIABLES private List<QuaggansResponse> mQuaggansList; // LOGGING VARIABLES private static final String LOG_TAG = QuaggansAdapter.class.getSimpleName(); /** CONSTRUCTOR METHODS ____________________________________________________________________ **/ public QuaggansAdapter(List<QuaggansResponse> list) { this.mQuaggansList = list; } /** RECYCLER VIEW METHODS __________________________________________________________________ **/ @Override public QuaggansAdapter.QuaggansViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { AdapterQuaggansBinding binding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.adapter_quaggans, parent, false); return new QuaggansAdapter.QuaggansViewHolder(binding); } @Override public void onBindViewHolder(QuaggansAdapter.QuaggansViewHolder holder, int position) { String quaggansName = mQuaggansList.get(position).getId(); String quaggansImageUrl = mQuaggansList.get(position).getUrl(); holder.bindView(quaggansName, quaggansImageUrl); } @Override public void onViewRecycled(QuaggansViewHolder holder) { holder.mBinding.getViewModel().removeOnPropertyChangedCallback(null); holder.mBinding.setViewModel(null); holder.mBinding.executePendingBindings(); super.onViewRecycled(holder); } @Override public long getItemId(int position) { return position; } @Override public int getItemCount() { if (mQuaggansList != null) { return mQuaggansList.size(); } else { return 0; } } /** SUBCLASSES _____________________________________________________________________________ **/ class QuaggansViewHolder extends RecyclerView.ViewHolder { private AdapterQuaggansBinding mBinding; QuaggansViewHolder(AdapterQuaggansBinding binding) { super(binding.getRoot()); this.mBinding = binding; } private void bindView(String name, String imageUrl) { final QuaggansAdapterViewModel viewModel = new QuaggansAdapterViewModel(name, imageUrl); mBinding.setViewModel(viewModel); } } }