diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-05-17 11:39:49 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-05-17 11:39:49 +0300 |
| commit | 69c0752daaaa2615bee3bd51913e65e85f40dad4 (patch) | |
| tree | 237d794ebb57367b69a13afd38456feddef76968 /org.fox.ttrss/src | |
| parent | 4715cc93f9e4b0dde090288aac6fa7abf834636c (diff) | |
switch to observable values to display swipe indicator
Diffstat (limited to 'org.fox.ttrss/src')
3 files changed, 14 insertions, 16 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleModel.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleModel.java index 2a6b4b3e..2b596828 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleModel.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleModel.java @@ -212,23 +212,21 @@ public class ArticleModel extends AndroidViewModel implements ApiCommon.ApiCalle } m_offset += m_amountLoaded; - m_isLoading.postValue(false); Log.d(TAG, this + " loaded headlines=" + m_amountLoaded + " resultingLocalSize=" + articlesWork.size()); } } catch (Exception e) { e.printStackTrace(); } + } m_mainHandler.post(() -> { m_articles.setValue(articlesWork); m_lastUpdate.setValue(System.currentTimeMillis()); + m_isLoading.postValue(false); }); }); - - m_isLoading.postValue(false); - } private int getSkip(boolean append, ArticleList articles) { diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java index 6fe2144a..07bffaef 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java @@ -300,7 +300,7 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL }); model.getFeeds().observe(getActivity(), feeds -> { - Log.d(TAG, "observed feeds=" + feeds); + Log.d(TAG, "observed feeds size=" + feeds.size()); if (isAdded()) { onFeedsLoaded(feeds); 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 dba0ac47..8c24a14a 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 @@ -475,8 +475,17 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { ArticleModel model = Application.getArticlesModel(); + model.getIsLoading().observe(getActivity(), isLoading -> { + Log.d(TAG, "observed headlines isLoading=" + isLoading); + + if (m_swipeLayout != null) + m_swipeLayout.setRefreshing(isLoading); + }); + // this gets notified on loading % model.getLoadingProgress().observe(getActivity(), progress -> { + Log.d(TAG, "observed headlines loading progress=" + progress); + m_listener.onHeadlinesLoadingProgress(progress); }); @@ -485,7 +494,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { if (lastUpdate > 0) { ArticleList tmp = new ArticleList(model.getArticles().getValue()); - Log.d(TAG, "observed last update=" + lastUpdate + " article count=" + tmp.size()); + Log.d(TAG, "observed headlines last update=" + lastUpdate + " article count=" + tmp.size()); if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) tmp.add(new Article(Article.TYPE_AMR_FOOTER)); @@ -496,9 +505,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { if (!appended) m_list.scrollToPosition(0); - if (m_swipeLayout != null) - m_swipeLayout.setRefreshing(false); - m_isLazyLoading = false; m_listener.onHeadlinesLoaded(appended); @@ -511,9 +517,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { if (model.getLastError() != null && model.getLastError() != ApiCommon.ApiError.SUCCESS) { - if (m_swipeLayout != null) - m_swipeLayout.setRefreshing(false); - m_isLazyLoading = false; if (model.getLastError() == ApiCommon.ApiError.LOGIN_FAILED) { @@ -534,7 +537,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { // loaded articles might get modified for all sorts of reasons model.getArticles().observe(getActivity(), articles -> { - Log.d(TAG, "observed article list size=" + articles.size()); + Log.d(TAG, "observed headlines article list size=" + articles.size()); ArticleList tmp = new ArticleList(articles); @@ -584,9 +587,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { if (!append) m_activeArticleId = -1; - if (m_swipeLayout != null) - m_swipeLayout.setRefreshing(true); - model.setSearchQuery(getSearchQuery()); model.startLoading(append, m_feed, m_activity.getResizeWidth()); } |