package com.hannesdorfmann.mosby3.sample.mail.profile; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import com.hannesdorfmann.mosby3.sample.mail.model.contact.Person; import com.hannesdorfmann.mosby3.sample.mail.model.contact.ProfileScreen; import com.hannesdorfmann.mosby3.sample.mail.profile.about.AboutFragmentBuilder; import com.hannesdorfmann.mosby3.sample.mail.profile.mails.ProfileMailsFragmentBuilder; import java.util.List; /** * @author Hannes Dorfmann */ public class ProfileScreensAdapter extends FragmentPagerAdapter { private List<ProfileScreen> screens; private Person person; public ProfileScreensAdapter(FragmentManager fm, Person person) { super(fm); this.person = person; } public List<ProfileScreen> getScreens() { return screens; } public void setScreens(List<ProfileScreen> screens) { this.screens = screens; } @Override public Fragment getItem(int position) { ProfileScreen screen = screens.get(position); if (screen.getType() == ProfileScreen.TYPE_MAILS) { return new ProfileMailsFragmentBuilder(person).build(); } if (screen.getType() == ProfileScreen.TYPE_ABOUT) { return new AboutFragmentBuilder(person).build(); } throw new RuntimeException("Unknown Profile Screen (no fragment associated with this type"); } @Override public int getCount() { return screens == null ? 0 : screens.size(); } @Override public CharSequence getPageTitle(int position) { return screens.get(position).getName(); } }