From b5c26f8dcf4563df56142b15047c78cc304bdd77 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 18 May 2025 17:54:41 +0300 Subject: fix several more unread-related observable triggers --- .../main/java/org/fox/ttrss/DetailActivity.java | 12 +++++--- .../main/java/org/fox/ttrss/MasterActivity.java | 33 ++++++++++------------ 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java index 9b07de38..59ff4e66 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java @@ -93,7 +93,7 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList Article articleClone = new Article(article); articleClone.unread = !articleClone.unread; - saveArticleUnread(article); + saveArticleUnread(articleClone); Application.getArticlesModel().updateById(articleClone); } @@ -272,9 +272,13 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList @Override public void onArticleSelected(Article article, boolean open) { - if (article.unread) { - article.unread = false; - saveArticleUnread(article); + Article articleClone = new Article(article); + + if (articleClone.unread) { + articleClone.unread = false; + saveArticleUnread(articleClone); + + Application.getArticlesModel().updateById(articleClone); } if (!getSupportActionBar().isShowing()) getSupportActionBar().show(); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java index f2ef3aa0..19cfbe0c 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java @@ -417,26 +417,28 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList } public void onArticleSelected(Article article, boolean open) { + Article articleClone = new Article(article); + + if (articleClone.unread) { + articleClone.unread = false; + saveArticleUnread(articleClone); + + Application.getArticlesModel().updateById(articleClone); + } + if (open) { - boolean alwaysOpenUri = m_prefs.getBoolean("always_open_uri", false); - if (alwaysOpenUri) { - if (article.unread) { - article.unread = false; - saveArticleUnread(article); - } + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES); - HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES); + if (m_prefs.getBoolean("always_open_uri", false)) { - if (hf != null) { + if (hf != null) { hf.setActiveArticleId(article.id); } openUri(Uri.parse(article.link)); - } - else { - HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES); + } else if (hf != null) { - Intent intent = new Intent(MasterActivity.this, DetailActivity.class); + Intent intent = new Intent(MasterActivity.this, DetailActivity.class); intent.putExtra("feed", hf.getFeed()); intent.putExtra("searchQuery", hf.getSearchQuery()); intent.putExtra("openedArticleId", article.id); @@ -446,12 +448,7 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList } } else { invalidateOptionsMenu(); - - if (article.unread) { - article.unread = false; - saveArticleUnread(article); - } - } + } } @Override -- cgit v1.2.3-54-g00ecf