summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java
diff options
context:
space:
mode:
authorRaghul Jagannathan <raghul@redmart.com>2016-01-27 20:16:24 +0800
committerRaghul Jagannathan <raghul@redmart.com>2016-01-27 20:16:24 +0800
commit5cc6f12acb0213dbca37e02c019ee27c28f4a0bb (patch)
tree432b483c14db8ec143407f3a4fba4072bb0dce9c /app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java
parentb4a363cecebdb15d885ab98cc48f5cc88142cfa1 (diff)
parentc1819864fe4e46945c42584a571cabc96c338644 (diff)
downloadAntennaPod-5cc6f12acb0213dbca37e02c019ee27c28f4a0bb.zip
Merge: Updated subscriptionview and synced develop
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java120
1 files changed, 120 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java
new file mode 100644
index 000000000..f23981935
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java
@@ -0,0 +1,120 @@
+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;
+import android.view.ViewGroup;
+
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.MainActivity;
+
+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 POS_FAV_EPISODES = 2;
+ public static final int TOTAL_COUNT = 3;
+
+
+ private TabLayout tabLayout;
+ private ViewPager viewPager;
+
+ //Mandatory Constructor
+ public EpisodesFragment() {
+ }
+
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setRetainInstance(true);
+ }
+
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ super.onCreateView(inflater, container, savedInstanceState);
+ setHasOptionsMenu(true);
+ ((MainActivity) getActivity()).getSupportActionBar().setTitle(R.string.episodes_label);
+
+ View rootView = inflater.inflate(R.layout.pager_fragment, container, false);
+ viewPager = (ViewPager)rootView.findViewById(R.id.viewpager);
+ viewPager.setAdapter(new EpisodesPagerAdapter(getChildFragmentManager(), getResources()));
+
+ // Give the TabLayout the ViewPager
+ tabLayout = (TabLayout) rootView.findViewById(R.id.sliding_tabs);
+ tabLayout.setupWithViewPager(viewPager);
+
+ return rootView;
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ // save our tab selection
+ SharedPreferences prefs = getActivity().getSharedPreferences(TAG, Context.MODE_PRIVATE);
+ SharedPreferences.Editor editor = prefs.edit();
+ editor.putInt(PREF_LAST_TAB_POSITION, tabLayout.getSelectedTabPosition());
+ editor.apply();
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+
+ // restore our last position
+ SharedPreferences prefs = getActivity().getSharedPreferences(TAG, Context.MODE_PRIVATE);
+ int lastPosition = prefs.getInt(PREF_LAST_TAB_POSITION, 0);
+ 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();
+ case POS_FAV_EPISODES:
+ return new FavoriteEpisodesFragment();
+ }
+ 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_short_label);
+ case POS_NEW_EPISODES:
+ return resources.getString(R.string.new_label);
+ case POS_FAV_EPISODES:
+ return resources.getString(R.string.favorite_episodes_label);
+ default:
+ return super.getPageTitle(position);
+ }
+ }
+ }
+}