package com.code44.finance.adapters; import android.content.Context; import android.support.v7.widget.CardView; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import com.code44.finance.R; import com.code44.finance.graphs.pie.PieChartData; import com.code44.finance.ui.reports.categories.CategoriesReportView; public class ReportsAdapter extends RecyclerView.Adapter<ReportsAdapter.ViewHolder> { private final Context context; private PieChartData pieChartData; public ReportsAdapter(final Context context) { this.context = context; } @Override public ViewHolder onCreateViewHolder(final ViewGroup parent, final int position) { final CardView cardView = new CardView(context); cardView.setRadius(context.getResources().getDimension(R.dimen.card_radius)); final int padding = context.getResources().getDimensionPixelSize(R.dimen.space_normal); cardView.setPadding(padding, padding, padding, padding); switch (position) { case 0: case 1: // cardView.addView(new CategoriesReportView(context)); break; default: throw new IllegalArgumentException("Position " + position + " is not supported."); } return new ViewHolder(cardView); } @Override public void onBindViewHolder(final ViewHolder holder, final int position) { final CategoriesReportView categoriesReportView = (CategoriesReportView) ((CardView) holder.itemView).getChildAt(0); categoriesReportView.setPieChartData(pieChartData); categoriesReportView.setTotalExpense(pieChartData == null ? 0 : pieChartData.getTotalValue()); } @Override public int getItemCount() { return 2; } public void setCategoriesReportData(PieChartData pieChartData) { this.pieChartData = pieChartData; notifyItemChanged(0); } static final class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(final View itemView) { super(itemView); } } }