summaryrefslogtreecommitdiff
path: root/org.fox.ttrss/src/main
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-09-15 14:36:57 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-09-15 14:36:57 +0300
commitbab4c9e13c57a07579bdb1f0d91a2eb880f2970f (patch)
tree282c8417a121f05f38ca410481343d40abe4cfda /org.fox.ttrss/src/main
parent72177b9a499bfce5cf98d51604412f32862a73ca (diff)
while in detail activity, trigger lazy load on active article change
Diffstat (limited to 'org.fox.ttrss/src/main')
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java20
1 files changed, 19 insertions, 1 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 72d0163a..0b291e4a 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
@@ -410,7 +410,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
if (dy > 0 && !m_isLazyLoading && !model.isLoading() && model.isLazyLoadEnabled() &&
lastVisibleItem >= Application.getArticles().size() - 5) {
- Log.d(TAG, "attempting to lazy load more articles...");
+ Log.d(TAG, "attempting to lazy load more articles (onScrolled)...");
m_isLazyLoading = true;
@@ -441,6 +441,24 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
Log.d(TAG, "observed active article=" + activeArticle);
if (activeArticle != null) {
+
+ // we can't be sure scrollToArticle() below actually does anything in DetailView because our fragment might be invisible in some layouts
+ // so we also trigger lazy load on active article change
+ if (m_activity instanceof DetailActivity) {
+ int position = Application.getArticles().indexOf(activeArticle);
+
+ if (!m_isLazyLoading && !model.isLoading() && model.isLazyLoadEnabled() &&
+ position >= Application.getArticles().size() - 5) {
+
+ Log.d(TAG, "attempting to lazy load more articles (observed active article change)...");
+
+ m_isLazyLoading = true;
+
+ // this has to be dispatched delayed, consequent adapter updates are forbidden in scroll handler
+ new Handler().postDelayed(() -> refresh(true), 250);
+ }
+ }
+
scrollToArticle(activeArticle);
}
});