summaryrefslogtreecommitdiff
path: root/org.fox.ttrss/src
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttrss/src')
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleModel.java6
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java23
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java81
3 files changed, 57 insertions, 53 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 2b596828..b1f99208 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
@@ -70,6 +70,12 @@ public class ArticleModel extends AndroidViewModel implements ApiCommon.ApiCalle
return m_articles;
}
+ public void updateById(@NonNull Article article) {
+ int position = m_articles.getValue().getPositionById(article.id);
+
+ if (position != -1)
+ update(position, article);
+ }
public void update(int position, Article article) {
m_articles.getValue().set(position, article);
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 197a48bd..3d923494 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
@@ -134,11 +134,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
}
public void initialize(Feed feed) {
-
- // clear loaded headlines before switching feed
- if (m_feed == null || feed.id != m_feed.id || feed.is_cat != m_feed.is_cat)
- Application.getArticlesModel().update(new ArticleList());
-
m_feed = feed;
}
@@ -219,10 +214,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
articleClone.unread = false;
tmp.add(articleClone);
- int position = articles.getPositionById(articleClone.id);
-
- if (position != -1)
- Application.getArticlesModel().update(position, articleClone);
+ Application.getArticlesModel().updateById(articleClone);
}
}
@@ -438,10 +430,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
articleClone.unread = false;
- int position = Application.getArticles().getPositionById(a.id);
-
- if (position != -1)
- Application.getArticlesModel().update(position, articleClone);
+ Application.getArticlesModel().updateById(articleClone);
}
m_readArticles.clear();
@@ -602,8 +591,10 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
if (m_activity instanceof DetailActivity && !append)
return;
- if (!append)
+ if (!append) {
m_activeArticleId = -1;
+ Application.getArticlesModel().update(new ArticleList());
+ }
model.setSearchQuery(getSearchQuery());
model.startLoading(append, m_feed, m_activity.getResizeWidth());
@@ -664,10 +655,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
attachmentsView = v.findViewById(R.id.attachments);
linkHost = v.findViewById(R.id.link_host);
}
-
- public void clearAnimation() {
- view.clearAnimation();
- }
}
private static class FlavorProgressTarget<Z> extends ProgressTarget<String, Z> {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
index b0979d5b..566aee2d 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
@@ -570,8 +570,6 @@ public class OnlineActivity extends CommonActivity {
if (selectedArticle != null) {
setArticleScore(selectedArticle);
-
- hf.notifyItemChanged(Application.getArticles().indexOf(selectedArticle));
}
}
return true;
@@ -580,11 +578,13 @@ public class OnlineActivity extends CommonActivity {
Article selectedArticle = Application.getArticles().getById(ap.getSelectedArticleId());
if (selectedArticle != null) {
- selectedArticle.marked = !selectedArticle.marked;
+ Article articleClone = new Article(selectedArticle);
+
+ articleClone.marked = !articleClone.marked;
saveArticleMarked(selectedArticle);
- hf.notifyItemChanged(Application.getArticles().indexOf(selectedArticle));
+ Application.getArticlesModel().updateById(articleClone);
}
}
return true;
@@ -593,11 +593,13 @@ public class OnlineActivity extends CommonActivity {
Article selectedArticle = Application.getArticles().getById(ap.getSelectedArticleId());
if (selectedArticle != null) {
- selectedArticle.unread = !selectedArticle.unread;
+ Article articleClone = new Article(selectedArticle);
+
+ articleClone.unread = !articleClone.unread;
saveArticleUnread(selectedArticle);
- hf.notifyItemChanged(Application.getArticles().indexOf(selectedArticle));
+ Application.getArticlesModel().updateById(articleClone);
}
}
return true;
@@ -607,9 +609,11 @@ public class OnlineActivity extends CommonActivity {
if (!selected.isEmpty()) {
for (Article a : selected) {
- a.unread = !a.unread;
+ Article articleClone = new Article(a);
- hf.notifyItemChanged(Application.getArticles().indexOf(a));
+ articleClone.unread = !articleClone.unread;
+
+ Application.getArticlesModel().updateById(articleClone);
}
toggleArticlesUnread(selected);
@@ -623,9 +627,11 @@ public class OnlineActivity extends CommonActivity {
if (!selected.isEmpty()) {
for (Article a : selected) {
- a.marked = !a.marked;
+ Article articleClone = new Article(a);
+
+ articleClone.marked = !articleClone.marked;
- hf.notifyItemChanged(Application.getArticles().indexOf(a));
+ Application.getArticlesModel().updateById(articleClone);
}
toggleArticlesMarked(selected);
@@ -639,9 +645,11 @@ public class OnlineActivity extends CommonActivity {
if (!selected.isEmpty()) {
for (Article a : selected) {
- a.published = !a.published;
+ Article articleClone = new Article(a);
+
+ articleClone.published = !articleClone.published;
- hf.notifyItemChanged(Application.getArticles().indexOf(a));
+ Application.getArticlesModel().updateById(articleClone);
}
toggleArticlesPublished(selected);
@@ -654,10 +662,12 @@ public class OnlineActivity extends CommonActivity {
Article selectedArticle = Application.getArticles().getById(ap.getSelectedArticleId());
if (selectedArticle != null) {
- selectedArticle.published = !selectedArticle.published;
- saveArticlePublished(selectedArticle);
+ Article articleClone = new Article(selectedArticle);
- hf.notifyItemChanged(Application.getArticles().indexOf(selectedArticle));
+ articleClone.published = !articleClone.published;
+ saveArticlePublished(articleClone);
+
+ Application.getArticlesModel().updateById(articleClone);
}
}
return true;
@@ -707,15 +717,14 @@ public class OnlineActivity extends CommonActivity {
if (a.id == selectedArticleId)
break;
- if (a.unread) {
- a.unread = false;
- tmp.add(a);
+ Article articleClone = new Article(a);
+
+ if (articleClone.unread) {
+ articleClone.unread = false;
- if (hf != null) {
- int position = Application.getArticles().indexOf(a);
+ tmp.add(articleClone);
- hf.notifyItemChanged(position);
- }
+ Application.getArticlesModel().updateById(articleClone);
}
}
@@ -739,16 +748,6 @@ public class OnlineActivity extends CommonActivity {
String note = topicEdit.getText().toString().trim();
saveArticleNote(article, note);
-
- int position = Application.getArticles().getPositionById(article.id);
-
- if (position != -1) {
- HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
- if (hf != null) hf.notifyItemChanged(position);
-
- ArticlePager ap = (ArticlePager) getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE);
- if (ap != null) ap.notifyItemChanged(position);
- }
});
builder.setNegativeButton(R.string.dialog_cancel, (dialog, which) -> {
@@ -952,7 +951,11 @@ public class OnlineActivity extends CommonActivity {
public void saveArticleNote(final Article article, final String note) {
ApiRequest req = new ApiRequest(getApplicationContext()) {
protected void onPostExecute(JsonElement result) {
- article.note = note;
+ Article articleClone = new Article(article);
+
+ articleClone.note = note;
+
+ Application.getArticlesModel().updateById(articleClone);
}
};
@@ -983,9 +986,17 @@ public class OnlineActivity extends CommonActivity {
(dialog, which) -> {
try {
-article.score = Integer.parseInt(edit.getText().toString());
+ Article articleClone = new Article(article);
+
+ articleClone.score = Integer.parseInt(edit.getText().toString());
+
+ saveArticleScore(articleClone);
+
+ int position = Application.getArticles().getPositionById(articleClone.id);
+
+ if (position != -1)
+ Application.getArticlesModel().update(position, articleClone);
- saveArticleScore(article);
} catch (NumberFormatException e) {
toast(R.string.score_invalid);
e.printStackTrace();