package fr.paug.androidmakers.ui.adapter; import android.support.v4.view.PagerAdapter; import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; import java.util.List; import fr.paug.androidmakers.ui.view.AgendaView; /** * Created by stan on 20/03/2017. */ public class AgendaPagerAdapter extends PagerAdapter { private final AgendaView.AgendaClickListener mAgendaClickListener; private final List<AgendaView.DaySchedule> mAgenda; private final SparseArray<AgendaView> mAgendaViews = new SparseArray<>(); private final AgendaView.AgendaSelector mAgendaSelector; public AgendaPagerAdapter(List<AgendaView.DaySchedule> agenda, AgendaView.AgendaSelector agendaSelector, AgendaView.AgendaClickListener listener) { mAgenda = agenda; mAgendaClickListener = listener; mAgendaSelector = agendaSelector; } public void refreshSessionsSelected() { for (int i = 0; i < mAgendaViews.size(); i++) { AgendaView agendaView = mAgendaViews.get(mAgendaViews.keyAt(i)); agendaView.refreshSessionsSelected(mAgendaSelector); } } @Override public Object instantiateItem(ViewGroup collection, int position) { AgendaView agendaView = new AgendaView(collection.getContext()); agendaView.setAgenda(getItems(position), mAgendaClickListener); agendaView.refreshSessionsSelected(mAgendaSelector); collection.addView(agendaView); mAgendaViews.put(position, agendaView); return agendaView; } @Override public void destroyItem(ViewGroup collection, int position, Object view) { collection.removeView((View) view); mAgendaViews.remove(position); } @Override public int getCount() { return mAgenda.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public CharSequence getPageTitle(int position) { return getItems(position).getTitle(); } private AgendaView.DaySchedule getItems(int position) { return mAgenda.get(position); } }