diff --git a/app/build.gradle b/app/build.gradle index 7f564591..ad4305d9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -73,6 +73,8 @@ dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.android.support:support-annotations:28.0.0' + implementation 'com.android.support:design:28.0.0' + implementation 'com.android.support:support-v4:28.0.0' implementation 'com.getbase:floatingactionbutton:1.10.1' implementation 'com.nispok:snackbar:2.11.0' implementation 'com.github.aegnor:rencode-java:cb628e824e' diff --git a/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsActivity.java b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsActivity.java index 88b180c7..8925d937 100644 --- a/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsActivity.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsActivity.java @@ -21,6 +21,12 @@ import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.support.annotation.Nullable; +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.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.text.TextUtils; @@ -61,12 +67,56 @@ public class RssfeedsActivity extends AppCompatActivity { protected List loaders; // Contained feeds and items fragments - @FragmentById(R.id.rssfeeds_fragment) protected RssfeedsFragment fragmentFeeds; @FragmentById(R.id.rssitems_fragment) protected RssitemsFragment fragmentItems; @ViewById protected Toolbar rssfeedsToolbar; + @ViewById(R.id.rssfeeds_tabs) + protected TabLayout tabLayout; + @ViewById(R.id.rssfeeds_pager) + protected ViewPager viewPager; + + protected static final int RSS_FEEDS_LOCAL = 0; + protected static final int RSS_FEEDS_REMOTE = 1; + + class PagerAdapter extends FragmentPagerAdapter { + public PagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + Fragment fragment = null; + + if (position == RSS_FEEDS_LOCAL) { + fragment = fragmentFeeds; + } + else if (position == RSS_FEEDS_REMOTE) { + fragment = null; + } + + return fragment; + } + + @Override + public int getCount() { + return 2; + } + + @Nullable + @Override + public CharSequence getPageTitle(int position) { + switch (position) { + case RSS_FEEDS_LOCAL: + return getString(R.string.navigation_rss_tabs_local); + case RSS_FEEDS_REMOTE: + return getString(R.string.navigation_rss_tabs_remote); + } + + return super.getPageTitle(position); + } + } @Override public void onCreate(Bundle savedInstanceState) { @@ -82,6 +132,14 @@ public class RssfeedsActivity extends AppCompatActivity { setSupportActionBar(rssfeedsToolbar); getSupportActionBar().setTitle(NavigationHelper.buildCondensedFontString(getString(R.string.rss_feeds))); getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + fragmentFeeds = RssfeedsFragment_.builder().build(); + fragmentItems = RssitemsFragment_.builder().build(); + + PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager()); + viewPager.setAdapter(pagerAdapter); + tabLayout.setupWithViewPager(viewPager); + viewPager.setCurrentItem(0); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) @@ -90,12 +148,6 @@ public class RssfeedsActivity extends AppCompatActivity { TorrentsActivity_.intent(this).flags(Intent.FLAG_ACTIVITY_CLEAR_TOP).start(); } - @Override - protected void onResume() { - super.onResume(); - refreshFeeds(); - } - /** * Reload the RSS feed settings and start loading all the feeds. To be called from contained fragments. */ diff --git a/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsFragment.java b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsFragment.java index df227b4b..d7025ec7 100644 --- a/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsFragment.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssfeedsFragment.java @@ -16,7 +16,7 @@ */ package org.transdroid.core.gui.rss; -import android.app.Fragment; +import android.support.v4.app.Fragment; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -77,6 +77,12 @@ public class RssfeedsFragment extends Fragment { MainSettingsActivity_.intent(getActivity()).start(); } + @Override + public void onResume() { + super.onResume(); + this.refreshScreen(); + } + @OptionsItem(R.id.action_refresh) protected void refreshScreen() { ((RssfeedsActivity) getActivity()).refreshFeeds(); diff --git a/app/src/main/java/org/transdroid/core/gui/rss/RssitemsFragment.java b/app/src/main/java/org/transdroid/core/gui/rss/RssitemsFragment.java index 869baf68..31c5d7f1 100644 --- a/app/src/main/java/org/transdroid/core/gui/rss/RssitemsFragment.java +++ b/app/src/main/java/org/transdroid/core/gui/rss/RssitemsFragment.java @@ -17,13 +17,13 @@ package org.transdroid.core.gui.rss; import android.app.AlertDialog; -import android.app.Fragment; import android.app.SearchManager; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.view.ActionMode; diff --git a/app/src/main/res/layout/activity_rssfeeds.xml b/app/src/main/res/layout/activity_rssfeeds.xml index 6fb3f0e4..0d4fe9dd 100644 --- a/app/src/main/res/layout/activity_rssfeeds.xml +++ b/app/src/main/res/layout/activity_rssfeeds.xml @@ -32,12 +32,26 @@ style="@style/DefaultToolbarShadow" android:layout_below="@id/rssfeeds_toolbar" /> - + android:layout_marginTop="-2dp"> + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7eb5dc56..694d8e8d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -99,7 +99,9 @@ Invert selection Add torrent to… http://… - + RSS feeds + Remote feeds + STATUS: %1$s Waiting to check… Verifying local data…