diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-05-14 07:54:48 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-05-14 07:54:48 +0300 |
| commit | 6f42b0904207789ba3e7cc9b51e82bc8b1d7f1d7 (patch) | |
| tree | 7475a5f69f768e75ed1bd36a933451cc3f1f4668 | |
| parent | c60baf17c56607917a35aea4d012a84e93b6cfbd (diff) | |
move lazyload to onScrolled() but lock it on fragment side
| -rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java | 25 |
1 files changed, 17 insertions, 8 deletions
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 c18fd9d5..bd80b112 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 @@ -89,6 +89,7 @@ import jp.wasabeef.glide.transformations.CropCircleTransformation; public class HeadlinesFragment extends androidx.fragment.app.Fragment implements LoaderManager.LoaderCallbacks<ArticleList> { private ArticleList m_articles = new ArticleList(); + private boolean m_isLazyLoading; @NonNull @Override @@ -147,6 +148,8 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements if (m_swipeLayout != null) m_swipeLayout.setRefreshing(false); + + m_isLazyLoading = false; } @Override @@ -473,12 +476,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements new Handler().postDelayed(() -> m_activity.refresh(false), 100); } } - - int lastVisibleItem = m_layoutManager.findLastVisibleItemPosition(); - - if (lastVisibleItem >= Application.getArticles().size() - 5) { - new Handler().postDelayed(() -> refresh(true), 0); - } } } @@ -508,8 +505,12 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements } } - /* if (lastVisibleItem >= Application.getArticles().size() - 5) - new Handler().postDelayed(() -> refresh(true), 1000); */ + if (!m_isLazyLoading && lastVisibleItem >= Application.getArticles().size() - 5) { + m_isLazyLoading = true; + + // this has to be dispatched delayed, consequent adapter updates are forbidden in scroll handler + new Handler().postDelayed(() -> refresh(true), 0); + } } }); @@ -528,6 +529,14 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements syncToSharedArticles(); + // we only set this in detail activity + if (m_activeArticleId > 0) { + Article activeArticle = Application.getArticles().getById(m_activeArticleId); + + if (activeArticle != null) + scrollToArticle(activeArticle); + } + m_activity.invalidateOptionsMenu(); } |