From 192d3ca5dceb8559a56fdcbdee7b070616910fac Mon Sep 17 00:00:00 2001 From: Shinokuni Date: Mon, 6 Jan 2020 11:28:03 +0100 Subject: [PATCH] Get read state from new items --- .../services/freshrss/FreshRSSAPI.java | 2 +- .../freshrss/adapters/FreshRSSItemsAdapter.kt | 22 ++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSAPI.java b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSAPI.java index e97e6cc1..1206dbde 100644 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSAPI.java +++ b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSAPI.java @@ -110,7 +110,7 @@ public class FreshRSSAPI extends API { if (syncType == SyncType.INITIAL_SYNC) { return getItems(GOOGLE_READ, MAX_ITEMS, null); } else { - return getItems(GOOGLE_READ, MAX_ITEMS, syncData.getLastModified()); + return getItems(null, MAX_ITEMS, syncData.getLastModified()); } }) .flatMap(freshRSSItems -> { diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/adapters/FreshRSSItemsAdapter.kt b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/adapters/FreshRSSItemsAdapter.kt index 7963c619..dea23744 100644 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/adapters/FreshRSSItemsAdapter.kt +++ b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/adapters/FreshRSSItemsAdapter.kt @@ -2,6 +2,7 @@ package com.readrops.readropslibrary.services.freshrss.adapters import android.util.TimingLogger import com.readrops.readropsdb.entities.Item +import com.readrops.readropslibrary.services.freshrss.FreshRSSAPI.GOOGLE_READ import com.squareup.moshi.JsonAdapter import com.squareup.moshi.JsonReader import com.squareup.moshi.JsonWriter @@ -47,8 +48,9 @@ class FreshRSSItemsAdapter : JsonAdapter>() { 2 -> title = reader.nextString() 3 -> content = getContent(reader) 4 -> link = getLink(reader) - 5 -> feedRemoteId = getRemoteFeedId(reader) - 6 -> author = reader.nextString() + 5 -> isRead = getReadState(reader) + 6 -> feedRemoteId = getRemoteFeedId(reader) + 7 -> author = reader.nextString() else -> reader.skipValue() } } @@ -95,6 +97,20 @@ class FreshRSSItemsAdapter : JsonAdapter>() { return href } + private fun getReadState(reader: JsonReader): Boolean { + var isRead = false + reader.beginArray() + + while (reader.hasNext()) { + when (reader.nextString()) { + GOOGLE_READ -> isRead = true + } + } + + reader.endArray() + return isRead + } + private fun getRemoteFeedId(reader: JsonReader): String? { var remoteFeedId: String? = null reader.beginObject() @@ -111,7 +127,7 @@ class FreshRSSItemsAdapter : JsonAdapter>() { } companion object { - val NAMES: JsonReader.Options = JsonReader.Options.of("id", "published", "title", "summary", "alternate", "origin", "author") + val NAMES: JsonReader.Options = JsonReader.Options.of("id", "published", "title", "summary", "alternate", "categories", "origin", "author") val TAG = FreshRSSItemsAdapter::class.java.simpleName }