diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-05-14 16:23:46 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-05-14 16:23:46 +0300 |
| commit | 6b50f1e92dda8807dd071a61550cdc7f45425cd1 (patch) | |
| tree | 9cd16b0d531c353dc107f4669f30c66edf212f6d | |
| parent | 4c1f2b9ab213f21084583b38aa4106faf2b940ab (diff) | |
prevent articles being toggled back to unread on auto catchup
| -rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java | 20 |
1 files changed, 11 insertions, 9 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 0400cd26..67afe85d 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 @@ -392,16 +392,17 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { if (newState == RecyclerView.SCROLL_STATE_IDLE) { if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) { if (!m_readArticles.isEmpty()) { - m_activity.toggleArticlesUnread(m_readArticles); + + m_activity.setArticlesUnread(m_readArticles, Article.UPDATE_SET_FALSE); for (Article a : m_readArticles) { a.unread = false; - m_adapter.notifyItemChanged(Application.getArticles().getPositionById(a.id)); - } + int position = Application.getArticles().getPositionById(a.id); - if (m_feed != null) - m_feed.unread -= m_readArticles.size(); + if (position != -1) + m_adapter.notifyItemChanged(position); + } m_readArticles.clear(); @@ -421,20 +422,21 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { // Log.d(TAG, "onScrolled: FVI=" + firstVisibleItem + " LVI=" + lastVisibleItem); if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) { + Log.d(TAG, "collecting articles to mark as read on scroll..."); for (int i = 0; i < firstVisibleItem; i++) { try { Article article = Application.getArticles().get(i); - if (article.unread && !m_readArticles.contains(article)) { - Log.d(TAG, "adding to mark read=" + article.title); - + if (article.unread && !m_readArticles.contains(article)) m_readArticles.add(article); - } + } catch (IndexOutOfBoundsException e) { e.printStackTrace(); } } + + Log.d(TAG, "pending to auto mark as read count=" + m_readArticles.size()); } HeadlinesModel model = Application.getInstance().getHeadlinesModel(); |