diff options
3 files changed, 22 insertions, 33 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 eba87ab9..91c31ef3 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 @@ -28,7 +28,6 @@ public class ArticlePager extends androidx.fragment.app.Fragment { private int m_articleId; private OnlineActivity m_activity; private Feed m_feed; - private int m_firstId = 0; private ViewPager2 m_pager; private static class PagerAdapter extends FragmentStateAdapter { @@ -74,7 +73,6 @@ public class ArticlePager extends androidx.fragment.app.Fragment { out.putInt("m_articleId", m_articleId); out.putParcelable("m_feed", m_feed); - out.putInt("m_firstId", m_firstId); } @Override @@ -84,7 +82,6 @@ public class ArticlePager extends androidx.fragment.app.Fragment { if (savedInstanceState != null) { m_articleId = savedInstanceState.getInt("m_articleId"); m_feed = savedInstanceState.getParcelable("m_feed"); - m_firstId = savedInstanceState.getInt("m_firstId"); } setRetainInstance(true); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java index f0716443..780fd723 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java @@ -270,10 +270,8 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList } @Override - public void onArticleSelected(final Article article, boolean open) { - - if (article == null) return; - + public void onArticleSelected(Article article, boolean open) { + if (article.unread) { article.unread = false; saveArticleUnread(article); @@ -281,18 +279,14 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList if (!getSupportActionBar().isShowing()) getSupportActionBar().show(); - if (open) { - - new Handler().postDelayed(() -> { - ArticlePager ap = (ArticlePager) DetailActivity.this.getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE); - - if (ap != null) { - ap.setActiveArticleId(article.id); - } - }, 250); + ArticlePager ap = (ArticlePager) DetailActivity.this.getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE); + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES); + if (open) { + if (ap != null) { + ap.setActiveArticleId(article.id); + } } else { - HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES); if (hf != null) { hf.setActiveArticleId(article.id); } 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 52fe39c9..92131da5 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 @@ -96,7 +96,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements @Override public void onLoadFinished(@NonNull Loader<ArticleList> loader, ArticleList data) { - Log.d(TAG, "onLoadFinished loader=" + loader); + Log.d(TAG, "onLoadFinished loader=" + loader + " size=" + (data != null ? data.size() : "N/A (null)")); HeadlinesLoader headlinesLoader = (HeadlinesLoader) loader; @@ -162,8 +162,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements private int m_activeArticleId; private String m_searchQuery = ""; private HeadlinesLoader m_loader; - private int m_firstId = 0; - //private boolean m_lazyLoadDisabled = false; private SharedPreferences m_prefs; @@ -315,7 +313,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements m_feed = savedInstanceState.getParcelable("m_feed"); m_activeArticleId = savedInstanceState.getInt("m_activeArticleId"); m_searchQuery = savedInstanceState.getString("m_searchQuery"); - m_firstId = savedInstanceState.getInt("m_firstId"); m_compactLayoutMode = savedInstanceState.getBoolean("m_compactLayoutMode"); } @@ -331,7 +328,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements out.putParcelable("m_feed", m_feed); out.putInt("m_activeArticleId", m_activeArticleId); out.putString("m_searchQuery", m_searchQuery); - out.putInt("m_firstId", m_firstId); out.putBoolean("m_compactLayoutMode", m_compactLayoutMode); } @@ -441,22 +437,24 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); - if (newState == RecyclerView.SCROLL_STATE_IDLE && m_prefs.getBoolean("headlines_mark_read_scroll", false)) { - if (!m_readArticles.isEmpty()) { - m_activity.toggleArticlesUnread(m_readArticles); + if (newState == RecyclerView.SCROLL_STATE_IDLE) { + if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) { + if (!m_readArticles.isEmpty()) { + m_activity.toggleArticlesUnread(m_readArticles); - for (Article a : m_readArticles) { - a.unread = false; + for (Article a : m_readArticles) { + a.unread = false; - m_adapter.notifyItemChanged(Application.getArticles().getPositionById(a.id)); - } + m_adapter.notifyItemChanged(Application.getArticles().getPositionById(a.id)); + } - if (m_feed != null) - m_feed.unread -= m_readArticles.size(); + if (m_feed != null) + m_feed.unread -= m_readArticles.size(); - m_readArticles.clear(); + m_readArticles.clear(); - new Handler().postDelayed(() -> m_activity.refresh(false), 100); + new Handler().postDelayed(() -> m_activity.refresh(false), 100); + } } int lastVisibleItem = m_layoutManager.findLastVisibleItemPosition(); |