From 016ec23fbdf5fced871d77ba5cbf0e9200f77bb8 Mon Sep 17 00:00:00 2001 From: seven332 Date: Mon, 21 Jan 2019 20:17:27 +0800 Subject: [PATCH] Fix rating if the gallery has been rated by the user --- .../com/hippo/ehviewer/client/EhEngine.java | 17 ++++++++++++++++- .../hippo/ehviewer/client/data/GalleryInfo.java | 2 ++ .../client/parser/GalleryListParser.java | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.java b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.java index 680899475..64d3133ee 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.java @@ -209,7 +209,22 @@ public class EhEngine { } } - if (list.size() > 0 && (TextUtils.isEmpty(list.get(0).uploader) || Settings.getShowJpnTitle() || Settings.getShowGalleryPages() || sEhFilter.needCallApi())) { + boolean anyRated = false; + for (GalleryInfo info : list) { + if (info.rated) { + anyRated = true; + break; + } + } + + boolean needFillByApi = list.size() > 0 + && (TextUtils.isEmpty(list.get(0).uploader) + || anyRated + || Settings.getShowJpnTitle() + || Settings.getShowGalleryPages() + || sEhFilter.needCallApi()); + + if (needFillByApi) { // Fill by api fillGalleryListByApi(task, okHttpClient, list); diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/GalleryInfo.java b/app/src/main/java/com/hippo/ehviewer/client/data/GalleryInfo.java index 5cb8041f3..6437b95ec 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/data/GalleryInfo.java +++ b/app/src/main/java/com/hippo/ehviewer/client/data/GalleryInfo.java @@ -121,6 +121,8 @@ public class GalleryInfo implements Parcelable { */ public String simpleLanguage; + public boolean rated; + public final void generateSLang() { if (simpleTags != null) { generateSLangFromTags(); diff --git a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListParser.java b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListParser.java index d65853c7f..6a05d6d8c 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListParser.java +++ b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListParser.java @@ -162,6 +162,8 @@ public class GalleryListParser { Element it4r = JsoupUtils.getElementByClass(e, "it4r"); if (null != it4r) { gi.rating = NumberUtils.parseFloatSafely(parseRating(it4r.attr("style")), -1.0f); + // TODO The gallery may be rated even if it has one of these classes + gi.rated = it4r.hasClass("irr") || it4r.hasClass("irg") || it4r.hasClass("irb"); } else { Log.w(TAG, "Can't parse gallery info rating"); gi.rating = -1.0f;