From 5d746b07f0d7851da66300f2a8236b2e3715b5b9 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 6 Jun 2017 18:24:33 +0300 Subject: [PATCH] article pager: support no-append refresh, use top changed snackbar similar to headlines fragment when applicable --- .../main/java/org/fox/ttrss/ArticlePager.java | 31 ++++++++++++------- .../java/org/fox/ttrss/HeadlinesFragment.java | 2 +- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java index 3771be67..d80a6c18 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java @@ -176,19 +176,11 @@ public class ArticlePager extends Fragment { } @SuppressWarnings({ "serial" }) - protected void refresh(boolean append) { + protected void refresh(final boolean append) { - // viewpager doesn't like it when there's no data to display so we can't really allow not-appending here - // luckily this fragment doesn't call for not-appending updates - // TODO: maybe later implement some placeholder fragment to show if there's no data - - /* if (!append) { + if (!append) { m_lazyLoadDisabled = false; - - // this won't ever work - m_articles.clear(); - m_adapter.notifyDataSetChanged(); - } */ + } m_refreshInProgress = true; @@ -202,6 +194,13 @@ public class ArticlePager extends Fragment { protected void onPostExecute(JsonElement result) { if (isDetached() || !isAdded()) return; + if (!append) { + ViewPager pager = (ViewPager) getView().findViewById(R.id.article_pager); + pager.setCurrentItem(0); + + m_articles.clear(); + } + super.onPostExecute(result); m_refreshInProgress = false; @@ -213,7 +212,15 @@ public class ArticlePager extends Fragment { } if (m_firstIdChanged && !(m_activity instanceof DetailActivity && !m_activity.isPortrait())) { - m_activity.toast(R.string.headlines_row_top_changed); + //m_activity.toast(R.string.headlines_row_top_changed); + + Snackbar.make(getView(), R.string.headlines_row_top_changed, Snackbar.LENGTH_LONG) + .setAction(R.string.reload, new View.OnClickListener() { + @Override + public void onClick(View v) { + refresh(false); + } + }).show(); } if (m_amountLoaded < HeadlinesFragment.HEADLINES_REQUEST_SIZE) { diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java index c9bad8c9..057fa6a7 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java @@ -622,7 +622,7 @@ public class HeadlinesFragment extends Fragment { //Log.d(TAG, "first id changed, disabling lazy load"); - if (!(m_activity instanceof DetailActivity)) { + if (m_activity.isSmallScreen() || !m_activity.isPortrait()) { Snackbar.make(getView(), R.string.headlines_row_top_changed, Snackbar.LENGTH_LONG) .setAction(R.string.reload, new OnClickListener() {