Use selectName for better parsing performance

This commit is contained in:
Shinokuni 2020-01-03 14:40:23 +01:00
parent 0b68bf6c51
commit 90ef573b6e

@ -26,13 +26,13 @@ class FreshRSSFeedAdapter {
val feed = Feed() val feed = Feed()
while (reader.hasNext()) { while (reader.hasNext()) {
with(feed) { with(feed) {
when (reader.nextName()) { when (reader.selectName(NAMES)) {
"title" -> name = reader.nextString() 0 -> name = reader.nextString()
"url" -> url = reader.nextString() 1 -> url = reader.nextString()
"htmlUrl" -> siteUrl = reader.nextString() 2 -> siteUrl = reader.nextString()
"iconUrl" -> iconUrl = reader.nextString() 3 -> iconUrl = reader.nextString()
"id" -> remoteId = reader.nextString() 4 -> remoteId = reader.nextString()
"categories" -> remoteFolderId = getCategoryId(reader) 5 -> remoteFolderId = getCategoryId(reader)
else -> reader.skipValue() else -> reader.skipValue()
} }
} }
@ -70,4 +70,8 @@ class FreshRSSFeedAdapter {
reader.endArray() reader.endArray()
return id return id
} }
companion object {
val NAMES: JsonReader.Options = JsonReader.Options.of("title", "url", "htmlUrl", "iconUrl", "id", "categories")
}
} }