From b7e5436576be1b84225b9e2e8c7ca32dfb55822c Mon Sep 17 00:00:00 2001 From: Erik Hardesty Date: Sat, 30 Mar 2013 17:58:55 -0500 Subject: [PATCH 1/3] Add mark read on scroll for headlines --- res/values/strings.xml | 2 ++ res/xml/preferences.xml | 4 ++++ src/org/fox/ttrss/HeadlinesFragment.java | 14 ++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/res/values/strings.xml b/res/values/strings.xml index 5e96736a..5d9c7c58 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -186,4 +186,6 @@ Starred Published Unread + Mark read on scroll + Headlines will be marked read when scrolling past them diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 74d284f9..095f52cb 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -92,6 +92,10 @@ android:key="headlines_show_content" android:summary="@string/pref_headlines_show_content_long" android:title="@string/pref_headlines_show_content" /> + 0) { + Article a = m_articles.get(firstVisibleItem - 1); + if (a != null) { + if (a.unread) { + a.unread = false; + m_activity.saveArticleUnread(a); + m_feed.unread--; + m_activity.refresh(false); + } + } + } + } } @Override From 7d7022e0267989d70f551268327052389707fc2a Mon Sep 17 00:00:00 2001 From: Erik Hardesty Date: Mon, 1 Apr 2013 10:36:27 -0500 Subject: [PATCH 2/3] Process read articles in batches Accumulate read articles while scrolling and upload changes to tt-rss only when done scrolling --- src/org/fox/ttrss/HeadlinesFragment.java | 25 +++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index fce000fc..daef6914 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -797,16 +797,13 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, refresh(true); } - if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) { - if (firstVisibleItem > 0) { - Article a = m_articles.get(firstVisibleItem - 1); - if (a != null) { - if (a.unread) { - a.unread = false; - m_activity.saveArticleUnread(a); - m_feed.unread--; - m_activity.refresh(false); - } + if (m_prefs.getBoolean("headlines_mark_read_scroll", false) && firstVisibleItem > 0) { + Article a = m_articles.get(firstVisibleItem - 1); + if (a != null) { + if (a.unread) { + a.unread = false; + m_readArticles.add(a); + m_feed.unread--; } } } @@ -814,7 +811,13 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, @Override public void onScrollStateChanged(AbsListView view, int scrollState) { - // no-op + if (scrollState == SCROLL_STATE_IDLE && m_prefs.getBoolean("headlines_mark_read_scroll", false)) { + if (!m_readArticles.isEmpty()) { + m_activity.toggleArticlesUnread(m_readArticles); + m_activity.refresh(false); + m_readArticles.clear(); + } + } } public Article getActiveArticle() { From f012d88a7e2a4a30b91f6617480dbb5d658454ee Mon Sep 17 00:00:00 2001 From: Dalingrin Date: Wed, 17 Apr 2013 21:35:43 -0500 Subject: [PATCH 3/3] Fix missing declaration --- src/org/fox/ttrss/HeadlinesFragment.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index daef6914..cc5e3638 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -62,6 +62,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, private ArticleListAdapter m_adapter; private ArticleList m_articles = GlobalState.getInstance().m_loadedArticles; private ArticleList m_selectedArticles = new ArticleList(); + private ArticleList m_readArticles = new ArticleList(); private HeadlinesEventListener m_listener; private OnlineActivity m_activity;