diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-09-09 16:44:37 -0400 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-09-09 16:44:37 -0400 |
commit | 4697607e926898afac3c81d5c9e46d2a1c05f5bd (patch) | |
tree | 2fe8c0524185d40fde7952d5b743733af6f86833 | |
parent | 98a0b46bed65b6489923be7364bb9894901ae6fc (diff) | |
parent | d3d59c5c06287380d23bd74f0523f8bf67c12f19 (diff) | |
download | AntennaPod-4697607e926898afac3c81d5c9e46d2a1c05f5bd.zip |
Merge pull request #1175 from TomHennen/episode_tablayout
Collapsed "New Episodes" and "All Episodes" in to "Episodes"
14 files changed, 243 insertions, 55 deletions
diff --git a/app/build.gradle b/app/build.gradle index 90d0c108e..9c5d97a59 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,7 @@ dependencies { compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:gridlayout-v7:22.2.1' compile 'com.android.support:cardview-v7:22.2.1' + compile 'com.android.support:design:22.2.1' compile 'org.apache.commons:commons-lang3:3.3.2' compile('org.shredzone.flattr4j:flattr4j-core:2.12') { exclude group: 'org.json', module: 'json' diff --git a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java index 286095210..4988d1020 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java @@ -18,9 +18,8 @@ import de.danoeh.antennapod.activity.OnlineFeedViewActivity; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.PodDBAdapter; -import de.danoeh.antennapod.fragment.AllEpisodesFragment; import de.danoeh.antennapod.fragment.DownloadsFragment; -import de.danoeh.antennapod.fragment.NewEpisodesFragment; +import de.danoeh.antennapod.fragment.EpisodesFragment; import de.danoeh.antennapod.fragment.PlaybackHistoryFragment; import de.danoeh.antennapod.fragment.QueueFragment; import de.danoeh.antennapod.preferences.PreferenceController; @@ -98,17 +97,11 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv solo.waitForView(android.R.id.list); assertEquals(solo.getString(R.string.queue_label), getActionbarTitle()); - // new episodes + // episodes openNavDrawer(); - solo.clickOnText(solo.getString(R.string.new_episodes_label)); + solo.clickOnText(solo.getString(R.string.episodes_label)); solo.waitForView(android.R.id.list); - assertEquals(solo.getString(R.string.new_episodes_label), getActionbarTitle()); - - // all episodes - openNavDrawer(); - solo.clickOnText(solo.getString(R.string.all_episodes_label)); - solo.waitForView(android.R.id.list); - assertEquals(solo.getString(R.string.all_episodes_label), getActionbarTitle()); + assertEquals(solo.getString(R.string.episodes_label), getActionbarTitle()); // downloads openNavDrawer(); @@ -156,18 +149,18 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv openNavDrawer(); solo.clickLongOnText(solo.getString(R.string.queue_label)); solo.waitForDialogToOpen(); - solo.clickOnText(solo.getString(R.string.all_episodes_label)); + solo.clickOnText(solo.getString(R.string.episodes_label)); solo.clickOnText(solo.getString(R.string.playback_history_label)); solo.clickOnText(solo.getString(R.string.confirm_label)); solo.waitForDialogToClose(); List<String> hidden = UserPreferences.getHiddenDrawerItems(); assertEquals(2, hidden.size()); - assertTrue(hidden.contains(AllEpisodesFragment.TAG)); + assertTrue(hidden.contains(EpisodesFragment.TAG)); assertTrue(hidden.contains(PlaybackHistoryFragment.TAG)); } public void testDrawerPreferencesUnhideSomeElements() { - List<String> hidden = Arrays.asList(NewEpisodesFragment.TAG, DownloadsFragment.TAG); + List<String> hidden = Arrays.asList(PlaybackHistoryFragment.TAG, DownloadsFragment.TAG); UserPreferences.setHiddenDrawerItems(getInstrumentation().getTargetContext(), hidden); openNavDrawer(); solo.clickLongOnText(solo.getString(R.string.queue_label)); @@ -179,7 +172,7 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv hidden = UserPreferences.getHiddenDrawerItems(); assertEquals(2, hidden.size()); assertTrue(hidden.contains(QueueFragment.TAG)); - assertTrue(hidden.contains(NewEpisodesFragment.TAG)); + assertTrue(hidden.contains(PlaybackHistoryFragment.TAG)); } public void testDrawerPreferencesHideAllElements() { @@ -195,7 +188,7 @@ public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActiv solo.clickOnText(solo.getString(R.string.confirm_label)); solo.waitForDialogToClose(); List<String> hidden = UserPreferences.getHiddenDrawerItems(); - assertEquals(6, hidden.size()); + assertEquals(titles.length, hidden.size()); for(String tag : MainActivity.NAV_DRAWER_TAGS) { assertTrue(hidden.contains(tag)); } diff --git a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java index 775bc0ecd..8f32f86bb 100644 --- a/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java +++ b/app/src/androidTest/java/de/test/antennapod/ui/PlaybackTest.java @@ -86,8 +86,8 @@ public class PlaybackTest extends ActivityInstrumentationTestCase2<MainActivity> private void startLocalPlayback() { openNavDrawer(); - - solo.clickOnText(solo.getString(R.string.all_episodes_label)); + solo.clickOnText(solo.getString(R.string.episodes_label)); + solo.clickOnText(solo.getString(R.string.all_episodes_short_label)); final List<FeedItem> episodes = DBReader.getRecentlyPublishedEpisodes(context, 10); assertTrue(solo.waitForView(solo.getView(R.id.butSecondaryAction))); diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index e10e8041e..7f3e2399f 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -45,11 +45,10 @@ import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.util.StorageUtils; import de.danoeh.antennapod.fragment.AddFeedFragment; -import de.danoeh.antennapod.fragment.AllEpisodesFragment; import de.danoeh.antennapod.fragment.DownloadsFragment; +import de.danoeh.antennapod.fragment.EpisodesFragment; import de.danoeh.antennapod.fragment.ExternalPlayerFragment; import de.danoeh.antennapod.fragment.ItemlistFragment; -import de.danoeh.antennapod.fragment.NewEpisodesFragment; import de.danoeh.antennapod.fragment.PlaybackHistoryFragment; import de.danoeh.antennapod.fragment.QueueFragment; import de.danoeh.antennapod.menuhandler.NavDrawerActivity; @@ -82,8 +81,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity public static final String[] NAV_DRAWER_TAGS = { QueueFragment.TAG, - NewEpisodesFragment.TAG, - AllEpisodesFragment.TAG, + EpisodesFragment.TAG, DownloadsFragment.TAG, PlaybackHistoryFragment.TAG, AddFeedFragment.TAG @@ -169,10 +167,17 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity transaction.replace(R.id.main_view, mainFragment); } else { String lastFragment = getLastNavFragment(); - if(ArrayUtils.contains(NAV_DRAWER_TAGS, lastFragment)) { + if (ArrayUtils.contains(NAV_DRAWER_TAGS, lastFragment)) { loadFragment(lastFragment, null); } else { - loadFeedFragmentById(Integer.valueOf(lastFragment), null); + try { + loadFeedFragmentById(Integer.valueOf(lastFragment), null); + } catch (NumberFormatException e) { + // it's not a number, this happens if we removed + // a label from the NAV_DRAWER_TAGS + // give them a nice default... + loadFragment(QueueFragment.TAG, null); + } } } externalPlayerFragment = new ExternalPlayerFragment(); @@ -281,11 +286,8 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity case QueueFragment.TAG: fragment = new QueueFragment(); break; - case NewEpisodesFragment.TAG: - fragment = new NewEpisodesFragment(); - break; - case AllEpisodesFragment.TAG: - fragment = new AllEpisodesFragment(); + case EpisodesFragment.TAG: + fragment = new EpisodesFragment(); break; case DownloadsFragment.TAG: fragment = new DownloadsFragment(); @@ -296,6 +298,10 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity case AddFeedFragment.TAG: fragment = new AddFeedFragment(); break; + default: + // default to the queue + fragment = new QueueFragment(); + break; } currentTitle = navAdapter.getLabel(tag); getSupportActionBar().setTitle(currentTitle); @@ -538,7 +544,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity protected void onPostExecute(Void result) { super.onPostExecute(result); if(getSelectedNavListIndex() == position) { - loadFragment(NewEpisodesFragment.TAG, null); + loadFragment(EpisodesFragment.TAG, null); } } }; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java index c3bf8faa5..183c1a44e 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java @@ -33,6 +33,7 @@ import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.fragment.AddFeedFragment; import de.danoeh.antennapod.fragment.AllEpisodesFragment; import de.danoeh.antennapod.fragment.DownloadsFragment; +import de.danoeh.antennapod.fragment.EpisodesFragment; import de.danoeh.antennapod.fragment.NewEpisodesFragment; import de.danoeh.antennapod.fragment.PlaybackHistoryFragment; import de.danoeh.antennapod.fragment.QueueFragment; @@ -94,6 +95,9 @@ public class NavListAdapter extends BaseAdapter case NewEpisodesFragment.TAG: icon = R.attr.ic_new; break; + case EpisodesFragment.TAG: + icon = R.attr.feed; + break; case AllEpisodesFragment.TAG: icon = R.attr.feed; break; @@ -212,7 +216,7 @@ public class NavListAdapter extends BaseAdapter } else { holder.count.setVisibility(View.GONE); } - } else if (tags.get(position).equals(NewEpisodesFragment.TAG)) { + } else if (tags.get(position).equals(EpisodesFragment.TAG)) { int unreadItems = itemAccess.getNumberOfNewItems(); if (unreadItems > 0) { holder.count.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java index b4c4f1822..d55466b10 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -105,7 +105,6 @@ public class AllEpisodesFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setRetainInstance(true); setHasOptionsMenu(true); } @@ -270,16 +269,14 @@ public class AllEpisodesFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return onCreateViewHelper(inflater, container, savedInstanceState, - R.layout.all_episodes_fragment, R.string.all_episodes_label); + R.layout.all_episodes_fragment); } protected View onCreateViewHelper(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState, - int fragmentResource, - int titleString) { + int fragmentResource) { super.onCreateView(inflater, container, savedInstanceState); - ((MainActivity) getActivity()).getSupportActionBar().setTitle(titleString); View root = inflater.inflate(fragmentResource, container, false); 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 1ce379cf8..52a38ccb9 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java @@ -1,7 +1,10 @@ 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; @@ -25,15 +28,24 @@ public class DownloadsFragment extends Fragment { public static final int POS_COMPLETED = 1; public static final int POS_LOG = 2; - private ViewPager pager; + private static final String PREF_LAST_TAB_POSITION = "tab_position"; + + private ViewPager viewPager; + private TabLayout tabLayout; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View root = inflater.inflate(R.layout.pager_fragment, container, false); - pager = (ViewPager) root.findViewById(R.id.pager); + + viewPager = (ViewPager)root.findViewById(R.id.viewpager); DownloadsPagerAdapter pagerAdapter = new DownloadsPagerAdapter(getChildFragmentManager(), getResources()); - pager.setAdapter(pagerAdapter); + viewPager.setAdapter(pagerAdapter); + + // Give the TabLayout the ViewPager + tabLayout = (TabLayout) root.findViewById(R.id.sliding_tabs); + tabLayout.setupWithViewPager(viewPager); + return root; } @@ -42,10 +54,30 @@ public class DownloadsFragment extends Fragment { super.onViewCreated(view, savedInstanceState); if (getArguments() != null) { int tab = getArguments().getInt(ARG_SELECTED_TAB); - pager.setCurrentItem(tab, false); + viewPager.setCurrentItem(tab, false); } } + @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 class DownloadsPagerAdapter extends FragmentPagerAdapter { Resources resources; 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..e234d95ad --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java @@ -0,0 +1,115 @@ +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 TOTAL_COUNT = 2; + + + 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(); + } + 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); + default: + return super.getPageTitle(position); + } + } + } +} diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java index b0ccbfbea..6c2271d79 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java @@ -63,7 +63,7 @@ public class NewEpisodesFragment extends AllEpisodesFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = super.onCreateViewHelper(inflater, container, savedInstanceState, - R.layout.new_episodes_fragment, R.string.new_episodes_label); + R.layout.new_episodes_fragment); listView.setRemoveListener(new DragSortListView.RemoveListener() { @Override diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java index 55d4b940f..aff5069c6 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java @@ -1,7 +1,10 @@ package de.danoeh.antennapod.fragment.gpodnet; +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; @@ -17,16 +20,49 @@ import de.danoeh.antennapod.R; */ public class GpodnetMainFragment extends Fragment { + public static final String TAG = "GpodnetMainFragment"; + + private static final String PREF_LAST_TAB_POSITION = "tab_position"; + private TabLayout tabLayout; + private ViewPager viewPager; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View root = inflater.inflate(R.layout.pager_fragment, container, false); - ViewPager pager = (ViewPager) root.findViewById(R.id.pager); + + viewPager = (ViewPager)root.findViewById(R.id.viewpager); GpodnetPagerAdapter pagerAdapter = new GpodnetPagerAdapter(getChildFragmentManager(), getResources()); - pager.setAdapter(pagerAdapter); + viewPager.setAdapter(pagerAdapter); + + // Give the TabLayout the ViewPager + tabLayout = (TabLayout) root.findViewById(R.id.sliding_tabs); + tabLayout.setupWithViewPager(viewPager); + return root; } + + @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 class GpodnetPagerAdapter extends FragmentPagerAdapter { diff --git a/app/src/main/res/layout/pager_fragment.xml b/app/src/main/res/layout/pager_fragment.xml index ed639a2db..54b711b1c 100644 --- a/app/src/main/res/layout/pager_fragment.xml +++ b/app/src/main/res/layout/pager_fragment.xml @@ -1,18 +1,22 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> - <android.support.v4.view.ViewPager - android:id="@+id/pager" + + <android.support.design.widget.TabLayout + android:id="@+id/sliding_tabs" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="wrap_content" + app:tabGravity="fill" + app:tabMode="fixed" /> - <android.support.v4.view.PagerTabStrip - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="top" /> - </android.support.v4.view.ViewPager> + <android.support.v4.view.ViewPager + android:id="@+id/viewpager" + android:layout_width="match_parent" + android:layout_height="0px" + android:layout_weight="1" /> </LinearLayout>
\ No newline at end of file diff --git a/core/build.gradle b/core/build.gradle index b88780772..4b1ab98a6 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -36,7 +36,7 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:22.2.1' compile 'com.android.support:appcompat-v7:22.2.1' - compile 'com.android.support:support-v4:22.2.1' + compile 'com.android.support:design:22.2.1' compile 'org.apache.commons:commons-lang3:3.3.2' compile ('org.shredzone.flattr4j:flattr4j-core:2.12') { exclude group: 'org.json', module: 'json' diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml index bd4a58922..20eb79f84 100644 --- a/core/src/main/res/values/arrays.xml +++ b/core/src/main/res/values/arrays.xml @@ -120,8 +120,7 @@ <string-array name="nav_drawer_titles"> <item>@string/queue_label</item> - <item>@string/new_episodes_label</item> - <item>@string/all_episodes_label</item> + <item>@string/episodes_label</item> <item>@string/downloads_label</item> <item>@string/playback_history_label</item> <item>@string/add_feed_label</item> diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index a52518e36..7634322ab 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -9,9 +9,10 @@ <string name="feeds_label">Feeds</string> <string name="add_feed_label">Add Podcast</string> <string name="podcasts_label">PODCASTS</string> - <string name="episodes_label">EPISODES</string> + <string name="episodes_label">Episodes</string> <string name="new_episodes_label">New Episodes</string> <string name="all_episodes_label">All Episodes</string> + <string name="all_episodes_short_label">All</string> <string name="new_label">New</string> <string name="waiting_list_label">Waiting List</string> <string name="settings_label">Settings</string> |