From 6ae33e1c5d5b90aef86a7f4bc437acd74f008137 Mon Sep 17 00:00:00 2001 From: Tom Hennen Date: Sun, 6 Sep 2015 09:03:09 -0400 Subject: normalized how we were using tab layouts between different fragments. --- .../antennapod/fragment/EpisodesFragment.java | 51 ++++++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java index 645cd1038..15a78d7e5 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java @@ -2,9 +2,12 @@ package de.danoeh.antennapod.fragment; import android.content.Context; import android.content.SharedPreferences; +import android.content.res.Resources; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; @@ -12,12 +15,17 @@ import android.view.ViewGroup; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; -import de.danoeh.antennapod.adapter.EpisodesPagerAdapter; public class EpisodesFragment extends Fragment { public static final String TAG = "EpisodesFragment"; private static final String PREF_LAST_TAB_POSITION = "tab_position"; + + public static final int POS_NEW_EPISODES = 0; + public static final int POS_ALL_EPISODES = 1; + public static final int TOTAL_COUNT = 2; + + private TabLayout tabLayout; private ViewPager viewPager; @@ -36,9 +44,9 @@ public class EpisodesFragment extends Fragment { setHasOptionsMenu(true); ((MainActivity) getActivity()).getSupportActionBar().setTitle(R.string.episodes_label); - View rootView = inflater.inflate(R.layout.episodes_fragment, container, false); + View rootView = inflater.inflate(R.layout.pager_fragment, container, false); viewPager = (ViewPager)rootView.findViewById(R.id.viewpager); - viewPager.setAdapter(new EpisodesPagerAdapter(getChildFragmentManager(), getActivity())); + viewPager.setAdapter(new EpisodesPagerAdapter(getChildFragmentManager(), getResources())); // Give the TabLayout the ViewPager tabLayout = (TabLayout) rootView.findViewById(R.id.sliding_tabs); @@ -67,4 +75,41 @@ public class EpisodesFragment extends Fragment { viewPager.setCurrentItem(lastPosition); } + public static class EpisodesPagerAdapter extends FragmentPagerAdapter { + + private final Resources resources; + + public EpisodesPagerAdapter(FragmentManager fm, Resources resources) { + super(fm); + this.resources = resources; + } + + @Override + public Fragment getItem(int position) { + switch (position) { + case POS_ALL_EPISODES: + return new AllEpisodesFragment(); + case POS_NEW_EPISODES: + return new NewEpisodesFragment(); + } + return null; + } + + @Override + public int getCount() { + return TOTAL_COUNT; + } + + @Override + public CharSequence getPageTitle(int position) { + switch (position) { + case POS_ALL_EPISODES: + return resources.getString(R.string.all_episodes_label); + case POS_NEW_EPISODES: + return resources.getString(R.string.new_episodes_label); + default: + return super.getPageTitle(position); + } + } + } } -- cgit v1.2.3