package io.c0nnector.github.paradise.ui.startup; import android.support.v4.app.FragmentManager; import io.c0nnector.github.paradise.R; import io.c0nnector.github.paradise.util.Val; import io.c0nnector.github.least.Binder; /** * Recyclerview binder for the startup details view. Not really intended for multiple list entries, just one. */ public class StartupDetailsViewBinder extends Binder<StartupDetailsViewHolder, StartupDetailsViewItem> { FragmentManager fragmentManager; public StartupDetailsViewBinder(Class<StartupDetailsViewItem> startupViewItemClass, Class<StartupDetailsViewHolder> cls, int layoutId, FragmentManager fragmentManager) { super(startupViewItemClass, cls, layoutId); this.fragmentManager = fragmentManager; } @Override public void onBindViewHolder(StartupDetailsViewHolder startupViewHolder, StartupDetailsViewItem item, int i) { if (Val.notNull(item.startup)) { startupViewHolder.startupDetailsView.bind(fragmentManager, item.startup); } else if (Val.notNull(item.role)) { startupViewHolder.startupDetailsView.bind(fragmentManager, item.role); } else if (Val.notNull(item.startupId)) { startupViewHolder.startupDetailsView.bind(fragmentManager, item.startupId); } else throw new RuntimeException("No arguments passed to the startup details view"); } public static StartupDetailsViewBinder instance(FragmentManager fragmentManager){ return new StartupDetailsViewBinder(StartupDetailsViewItem.class, StartupDetailsViewHolder.class, R.layout.layout_startup_details, fragmentManager); } }