From 49e4eca4dba721390043140e816c23cb8846d5a6 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 14 May 2025 15:38:41 +0300 Subject: trigger lazy load after a short delay, set some model methods to private --- org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java | 8 ++++---- org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesModel.java | 8 +++++--- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'org.fox.ttrss/src/main/java') 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 e75d4ba4..ab9e9f96 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 @@ -436,15 +436,15 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { HeadlinesModel model = Application.getInstance().getHeadlinesModel(); - if (dy > 0 && !m_isLazyLoading && model.lazyLoadEnabled() && + if (dy > 0 && !m_isLazyLoading && !model.isLoading() && model.lazyLoadEnabled() && lastVisibleItem >= Application.getArticles().size() - 5) { - m_isLazyLoading = true; - Log.d(TAG, "attempting to lazy load more articles..."); + m_isLazyLoading = true; + // this has to be dispatched delayed, consequent adapter updates are forbidden in scroll handler - new Handler().postDelayed(() -> refresh(true), 0); + new Handler().postDelayed(() -> refresh(true), 250); } } }); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesModel.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesModel.java index 08adb73b..cc8a9d3d 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesModel.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesModel.java @@ -64,7 +64,6 @@ public class HeadlinesModel extends AndroidViewModel implements ApiCommon.ApiCal public LiveData getLiveData() { return m_articles; - } public ArticleList getArticles() { @@ -98,13 +97,13 @@ public class HeadlinesModel extends AndroidViewModel implements ApiCommon.ApiCal } } - public void forceLoad() { + private void forceLoad() { Log.d(TAG, "forceLoad"); m_articles.postValue(loadInBackground()); } - public ArticleList loadInBackground() { + private ArticleList loadInBackground() { Log.d(TAG, this + " loadInBackground append=" + m_append + " offset=" + m_offset); ArticleList articlesWork = new ArticleList(); @@ -314,4 +313,7 @@ public class HeadlinesModel extends AndroidViewModel implements ApiCommon.ApiCal return m_lastErrorMessage; } + public boolean isLoading() { + return m_loadingInProgress; + } } -- cgit v1.2.3-54-g00ecf