From 7515303e8749cf3bf1dd41e483fb895311185b76 Mon Sep 17 00:00:00 2001 From: seven332 Date: Wed, 23 Mar 2016 14:09:15 +0800 Subject: [PATCH] Adjust similar gallery strategy --- .../com/hippo/ehviewer/client/EhUtils.java | 20 +++++++++++++++++++ .../ehviewer/ui/scene/GalleryDetailScene.java | 8 ++++++++ 2 files changed, 28 insertions(+) diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhUtils.java b/app/src/main/java/com/hippo/ehviewer/client/EhUtils.java index d5fbd8df0..994bf7c82 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhUtils.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhUtils.java @@ -18,12 +18,15 @@ package com.hippo.ehviewer.client; import android.content.Context; import android.graphics.Color; +import android.support.annotation.Nullable; import android.text.TextUtils; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.Settings; import com.hippo.ehviewer.client.data.GalleryInfo; +import java.util.regex.Pattern; + public class EhUtils { public static final int NONE = -1; // Use it for homepage @@ -44,6 +47,9 @@ public class EhUtils { public static final int BG_COLOR_MISC = 0xfff06292; public static final int BG_COLOR_UNKNOWN = Color.BLACK; + public static final Pattern PATTERN_TITLE_PREFIX = Pattern.compile("^(?:(?:\\([^\\)]*\\))|(?:\\[[^\\]]*\\])|(?:\\{[^\\}]*\\})|(?:~[^~]*~)|\\s+)*"); + public static final Pattern PATTERN_TITLE_SUFFIX = Pattern.compile("(?:(?:\\([^\\)]*\\))|(?:\\[[^\\]]*\\])|(?:\\{[^\\}]*\\})|(?:~[^~]*~)|\\s+)*$"); + private static final int[] CATEGORY_VALUES = { EhConfig.MISC, EhConfig.DOUJINSHI, @@ -136,4 +142,18 @@ public class EhUtils { return TextUtils.isEmpty(gi.title) ? gi.titleJpn : gi.title; } } + + @Nullable + public static String extractTitle(String title) { + if (null == title) { + return null; + } + title = PATTERN_TITLE_PREFIX.matcher(title).replaceFirst(""); + title = PATTERN_TITLE_SUFFIX.matcher(title).replaceFirst(""); + if (title.isEmpty()) { + return null; + } else { + return title; + } + } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java index c8d8a7774..c119bb6a6 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java @@ -1005,6 +1005,14 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene if (null == gd) { return; } + String keyword = EhUtils.extractTitle(gd.title); + if (null != keyword) { + ListUrlBuilder lub = new ListUrlBuilder(); + lub.setMode(ListUrlBuilder.MODE_NORMAL); + lub.setKeyword(keyword); + GalleryListScene.startScene(this, lub); + return; + } String artist = getArtist(gd.tags); if (null != artist) { ListUrlBuilder lub = new ListUrlBuilder();