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/adapter/EpisodesPagerAdapter.java | 60 ---------------------- .../antennapod/fragment/DownloadsFragment.java | 1 - .../antennapod/fragment/EpisodesFragment.java | 51 ++++++++++++++++-- app/src/main/res/layout/episodes_fragment.xml | 20 -------- 4 files changed, 48 insertions(+), 84 deletions(-) delete mode 100644 app/src/main/java/de/danoeh/antennapod/adapter/EpisodesPagerAdapter.java delete mode 100644 app/src/main/res/layout/episodes_fragment.xml diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodesPagerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodesPagerAdapter.java deleted file mode 100644 index 736b91e22..000000000 --- a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodesPagerAdapter.java +++ /dev/null @@ -1,60 +0,0 @@ -package de.danoeh.antennapod.adapter; - -import android.content.Context; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentPagerAdapter; - -import de.danoeh.antennapod.R; -import de.danoeh.antennapod.activity.MainActivity; -import de.danoeh.antennapod.fragment.AllEpisodesFragment; -import de.danoeh.antennapod.fragment.NewEpisodesFragment; - -public class EpisodesPagerAdapter extends FragmentPagerAdapter { - - private final Context context; - - // this determines the order the tabs appear in - private String tabTags[] = new String[] {NewEpisodesFragment.TAG, AllEpisodesFragment.TAG}; - private String tabTitles[] = new String[tabTags.length]; - - public EpisodesPagerAdapter(FragmentManager fm, Context context) { - super(fm); - this.context = context; - tabTitles = new String[tabTags.length]; - for (int i = 0; i < tabTags.length; i++) { - String title = null; - switch (tabTags[i]) { - case AllEpisodesFragment.TAG: - title = context.getResources().getString(R.string.all_episodes_label); - break; - case NewEpisodesFragment.TAG: - title = context.getResources().getString(R.string.new_episodes_label); - break; - } - tabTitles[i] = title; - } - } - - @Override - public Fragment getItem(int position) { - String tag = tabTags[position]; - switch (tag) { - case AllEpisodesFragment.TAG: - return new AllEpisodesFragment(); - case NewEpisodesFragment.TAG: - return new NewEpisodesFragment(); - } - return null; - } - - @Override - public int getCount() { - return tabTags.length; - } - - @Override - public CharSequence getPageTitle(int position) { - return tabTitles[position]; - } -} diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java index 549e925d5..f56cb1ff6 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java @@ -12,7 +12,6 @@ import android.view.View; import android.view.ViewGroup; import de.danoeh.antennapod.R; -import de.danoeh.antennapod.adapter.EpisodesPagerAdapter; /** * Shows the CompletedDownloadsFragment and the RunningDownloadsFragment 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); + } + } + } } diff --git a/app/src/main/res/layout/episodes_fragment.xml b/app/src/main/res/layout/episodes_fragment.xml deleted file mode 100644 index e0028a262..000000000 --- a/app/src/main/res/layout/episodes_fragment.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file -- cgit v1.2.3