From 2bab97c8296fc8cef32d125c56617111bce65df5 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Thu, 15 Dec 2022 23:05:41 +0800 Subject: [PATCH] Better way to handle tag translation flag --- .../java/com/hippo/ehviewer/client/EhTagDatabase.java | 9 +-------- .../java/com/hippo/ehviewer/ui/fragment/EhFragment.kt | 3 --- .../java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt | 4 +++- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhTagDatabase.java b/app/src/main/java/com/hippo/ehviewer/client/EhTagDatabase.java index 530a368a3..30799a850 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhTagDatabase.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhTagDatabase.java @@ -24,7 +24,6 @@ import androidx.core.util.Pair; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; -import com.hippo.ehviewer.Settings; import com.hippo.util.ExceptionUtils; import com.hippo.util.HashCodeUtils; import com.hippo.util.IoThreadPoolExecutor; @@ -63,7 +62,6 @@ public class EhTagDatabase { // TODO more lock for different language private static final Lock lock = new ReentrantLock(); private static volatile EhTagDatabase instance; - private static boolean translate; static { NAMESPACE_TO_PREFIX.put("artist", "a:"); @@ -104,7 +102,6 @@ public class EhTagDatabase { } else { tagList = null; } - translate = Settings.getShowTagTranslations(); } @Nullable @@ -112,10 +109,6 @@ public class EhTagDatabase { return instance; } - public static void setTranslate(boolean value) { - translate = value; - } - @Nullable public static String namespaceToPrefix(String namespace) { return NAMESPACE_TO_PREFIX.get(namespace); @@ -298,7 +291,7 @@ public class EhTagDatabase { return null; } - public ArrayList> suggest(String keyword) { + public ArrayList> suggest(String keyword, boolean translate) { ArrayList> searchHints = new ArrayList<>(); for (int i = 0; i < tagList.size(); i++) { var tmp = tagList.get(i); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt index b74b29f4c..5cb4f1584 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.kt @@ -76,9 +76,6 @@ class EhFragment : BasePreferenceFragment() { } else if (Settings.KEY_SHOW_TAG_TRANSLATIONS == key) { if (java.lang.Boolean.TRUE == newValue) { EhTagDatabase.update(requireActivity()) - EhTagDatabase.setTranslate(true) - } else { - EhTagDatabase.setTranslate(false) } } else if (Settings.KEY_BLACK_DARK_THEME == key) { if (requireActivity().resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_YES > 0) { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt index 67d17d027..42723372e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt @@ -18,6 +18,7 @@ import com.google.android.material.search.SearchView import com.google.android.material.shape.MaterialShapeDrawable import com.hippo.app.BaseDialogBuilder import com.hippo.ehviewer.R +import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.widget.SearchDatabase import com.hippo.scene.StageActivity @@ -288,7 +289,8 @@ abstract class SearchBarScene : ToolbarScene() { val s = text.split(" ".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() if (s.isNotEmpty()) { val keyword = s[s.size - 1] - val searchHints = ehTagDatabase.suggest(keyword) + val translate = Settings.getShowTagTranslations() && EhTagDatabase.isTranslatable(context) + val searchHints = ehTagDatabase.suggest(keyword, translate) for (searchHint in searchHints) { suggestions.add(TagSuggestion(searchHint.first, searchHint.second))