summaryrefslogtreecommitdiff
path: root/org.fox.ttrss/src/main/java/org/fox
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-09-15 14:51:15 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-09-15 14:51:15 +0300
commit02ba1c3b93adf3aeacae95527ce7b390306d4846 (patch)
treed9a264016852f4d1c2a7218d4d2fa5057a965d65 /org.fox.ttrss/src/main/java/org/fox
parentbab4c9e13c57a07579bdb1f0d91a2eb880f2970f (diff)
stop storing Article as parcelable (store id instead), remove Parcelable implementation from Article class
Diffstat (limited to 'org.fox.ttrss/src/main/java/org/fox')
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java6
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleModel.java7
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java84
3 files changed, 12 insertions, 85 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
index 40d3b6a5..ff6fa9a6 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
@@ -83,7 +83,9 @@ public class ArticleFragment extends androidx.fragment.app.Fragment {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
- m_article = savedInstanceState.getParcelable("m_article");
+ int articleId = savedInstanceState.getInt("m_articleId");
+
+ m_article = Application.getArticlesModel().getById(articleId);
}
}
@@ -389,6 +391,6 @@ public class ArticleFragment extends androidx.fragment.app.Fragment {
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
- out.putParcelable("m_article", m_article);
+ out.putInt("m_articleId", m_article.id);
}
}
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 9f4d8e1f..309b01fa 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
@@ -431,4 +431,11 @@ public class ArticleModel extends AndroidViewModel implements ApiCommon.ApiCalle
}).collect(Collectors.toList());
}
+ // returns null if not found
+ public Article getById(final int id) {
+ return m_articles.getValue().stream().filter(a -> a.id == id)
+ .findFirst()
+ .orElse(null);
+ }
+
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java
index 2c1966ad..cdffffe2 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java
@@ -1,8 +1,5 @@
package org.fox.ttrss.types;
-import android.os.Parcel;
-import android.os.Parcelable;
-
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
@@ -16,7 +13,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
// TODO: serialize Labels
-public class Article implements Parcelable {
+public class Article {
public static final int TYPE_AMR_FOOTER = -2;
public static final int FLAVOR_KIND_ALBUM = 1;
@@ -73,10 +70,6 @@ public class Article implements Parcelable {
transient public String youtubeVid;
transient public List<Element> mediaList = new ArrayList<>();
- public Article(Parcel in) {
- readFromParcel(in);
- }
-
public Article() {
}
@@ -237,81 +230,6 @@ public class Article implements Parcelable {
mediaList = new ArrayList<>(clone.mediaList);
}
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel out, int flags) {
- out.writeInt(id);
- out.writeInt(unread ? 1 : 0);
- out.writeInt(marked ? 1 : 0);
- out.writeInt(published ? 1 : 0);
- out.writeInt(score);
- out.writeInt(updated);
- out.writeInt(is_updated ? 1 : 0);
- out.writeString(title);
- out.writeString(link);
- out.writeInt(feed_id);
- out.writeStringList(tags);
- out.writeString(content);
- out.writeString(excerpt);
- out.writeList(attachments);
- out.writeString(feed_title);
- out.writeInt(comments_count);
- out.writeString(comments_link);
- out.writeInt(always_display_attachments ? 1 : 0);
- out.writeString(author);
- out.writeString(note);
- out.writeInt(selected ? 1 : 0);
- out.writeString(site_url);
- }
-
- public void readFromParcel(Parcel in) {
- id = in.readInt();
- unread = in.readInt() == 1;
- marked = in.readInt() == 1;
- published = in.readInt() == 1;
- score = in.readInt();
- updated = in.readInt();
- is_updated = in.readInt() == 1;
- title = in.readString();
- link = in.readString();
- feed_id = in.readInt();
-
- if (tags == null) tags = new ArrayList<>();
- in.readStringList(tags);
-
- content = in.readString();
- excerpt = in.readString();
-
- attachments = new ArrayList<>();
- in.readList(attachments, Attachment.class.getClassLoader());
-
- feed_title = in.readString();
-
- comments_count = in.readInt();
- comments_link = in.readString();
- always_display_attachments = in.readInt() == 1;
- author = in.readString();
- note = in.readString();
- selected = in.readInt() == 1;
- site_url = in.readString();
- }
-
- @SuppressWarnings("rawtypes")
- public static final Parcelable.Creator CREATOR =
- new Parcelable.Creator() {
- public Article createFromParcel(Parcel in) {
- return new Article(in);
- }
-
- public Article[] newArray(int size) {
- return new Article[size];
- }
- };
-
/**
* set fields which might be missing during JSON deserialization to sane values
*/