diff --git a/app/src/main/java/com/hippo/ehviewer/data/GalleryDetail.java b/app/src/main/java/com/hippo/ehviewer/data/GalleryDetail.java index 0080ca325..e7e7b7d1d 100644 --- a/app/src/main/java/com/hippo/ehviewer/data/GalleryDetail.java +++ b/app/src/main/java/com/hippo/ehviewer/data/GalleryDetail.java @@ -39,6 +39,8 @@ public class GalleryDetail extends GalleryInfo */ public LinkedHashMap> tags; + public boolean isFavorite; + // For Preview public int previewSum; public int previewPerPage; diff --git a/app/src/main/java/com/hippo/ehviewer/ehclient/DetailParser.java b/app/src/main/java/com/hippo/ehviewer/ehclient/DetailParser.java index 561d9ddfd..ae83773a6 100644 --- a/app/src/main/java/com/hippo/ehviewer/ehclient/DetailParser.java +++ b/app/src/main/java/com/hippo/ehviewer/ehclient/DetailParser.java @@ -63,6 +63,7 @@ public class DetailParser { public String language; public int people; public float rating; + public boolean isFavorite; public String firstPage; public int previewPerPage; public int previewSum; @@ -135,12 +136,12 @@ public class DetailParser { + "

([^<>]+)

" // title + "

([^<>]*)

" // title_jpn might be empty string + "" - + ".+" + + ".+?" + "]*onclick=\"return popUp\\('([^']+)'[^)]+\\)\">Torrent Download \\( (\\d+) \\)" - + ".+" + + ".+?" + "
]+><[^<>]*alt=\"([\\w|\\-]+)\"[^<>]*>
" // category + "
]+>([^<>]+)" // uploader - + ".+" + + ".+?" + "]*>Posted:]*>([\\w|\\-|\\s|:]+)" // posted //+ "]*>Images:]*>([\\d]+) @ ([\\w|\\.|\\s]+)" // pages and size //+ "]*>Resized:]*>([^<>]+)" // resized @@ -150,11 +151,13 @@ public class DetailParser { + "]*>File Size:]*>([^<>]+)(?:]*>([^<>]+))?" // File size and resize + "]*>Length:]*>([\\d|,]+) pages" // pages + "]*>Favorited:<[^<>]*>([^<>]+)" // Favorite times ([\d|,]+) times or Never - + ".+" + + ".+?" + "([\\d|,]+)" // people + "" + "]*>([^<>]+)" // rating - + ".+" + + ".+?" + + "]*>(.+?)" + + ".+?" + "
]*>(?:]*>)?]*href=\"([^<>\"]+)\"[^<>]*>"); // get firstPage m = p.matcher(body); if (m.find()) { @@ -184,7 +187,9 @@ public class DetailParser { else rating = Float.NaN; - firstPage = m.group(18); + isFavorite = "Favorite Gallery".equals(m.group(18)); + + firstPage = m.group(19); } } // Get tag diff --git a/app/src/main/java/com/hippo/ehviewer/ehclient/EhClient.java b/app/src/main/java/com/hippo/ehviewer/ehclient/EhClient.java index ccc3d91e0..340a62c39 100644 --- a/app/src/main/java/com/hippo/ehviewer/ehclient/EhClient.java +++ b/app/src/main/java/com/hippo/ehviewer/ehclient/EhClient.java @@ -719,6 +719,7 @@ public class EhClient { md.firstPage = parser.firstPage; md.previewPerPage = parser.previewPerPage; md.previewSum = parser.previewSum; + md.isFavorite = parser.isFavorite; md.tags = parser.tags; md.previewLists = new PreviewList[md.previewSum]; diff --git a/app/src/main/java/com/hippo/ehviewer/ui/GalleryDetailActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/GalleryDetailActivity.java index 677995a3c..1cf2cd24e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/GalleryDetailActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/GalleryDetailActivity.java @@ -84,13 +84,14 @@ import com.hippo.ehviewer.drawable.OvalDrawable; import com.hippo.ehviewer.effect.ripple.RippleSalon; import com.hippo.ehviewer.ehclient.DetailUrlParser; import com.hippo.ehviewer.ehclient.EhClient; +import com.hippo.ehviewer.miscellaneous.ActivityHelper; import com.hippo.ehviewer.miscellaneous.Downloader; import com.hippo.ehviewer.service.DownloadService; import com.hippo.ehviewer.util.AppConfig; -import com.hippo.ehviewer.miscellaneous.ActivityHelper; import com.hippo.ehviewer.util.Config; import com.hippo.ehviewer.util.Constants; import com.hippo.ehviewer.util.Favorite; +import com.hippo.ehviewer.util.Log; import com.hippo.ehviewer.util.Ui; import com.hippo.ehviewer.util.ViewUtils; import com.hippo.ehviewer.widget.AutoWrapLayout; @@ -665,6 +666,9 @@ public class GalleryDetailActivity extends AbsTranslucentActivity if (mGalleryInfo instanceof GalleryDetail) { GalleryDetail galleryDetail = (GalleryDetail)mGalleryInfo; + // TODO handle favorite + Log.d("TAG", "favorite " + galleryDetail.isFavorite); + if (galleryDetail.torrents.length > 0) { mTorrent.setVisibility(View.VISIBLE); } diff --git a/app/src/main/res/drawable-hdpi/ic_favorite_outline.png b/app/src/main/res/drawable-hdpi/ic_favorite_outline.png new file mode 100644 index 000000000..f544ca723 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_favorite_outline.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_favorite_outline.png b/app/src/main/res/drawable-mdpi/ic_favorite_outline.png new file mode 100644 index 000000000..f3a7918dd Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_favorite_outline.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_favorite_outline.png b/app/src/main/res/drawable-xhdpi/ic_favorite_outline.png new file mode 100644 index 000000000..026c01420 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_favorite_outline.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_favorite_outline.png b/app/src/main/res/drawable-xxhdpi/ic_favorite_outline.png new file mode 100644 index 000000000..1a261d29e Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_favorite_outline.png differ