diff --git a/app/src/main/java/com/hippo/ehviewer/network/EhHttpClient.java b/app/src/main/java/com/hippo/ehviewer/network/EhHttpClient.java
index b70d51d01..e1cbfda91 100644
--- a/app/src/main/java/com/hippo/ehviewer/network/EhHttpClient.java
+++ b/app/src/main/java/com/hippo/ehviewer/network/EhHttpClient.java
@@ -63,6 +63,11 @@ public class EhHttpClient extends HttpClient {
mEhConfig.setDirty();
}
+ public void setPreviewSize(String previewSize) {
+ mEhConfig.previewSize = previewSize;
+ mEhConfig.setDirty();
+ }
+
private String getDomain(URL uri) {
String host = uri.getHost();
int length = host.length();
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/preference/EHSettingsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/preference/EHSettingsScene.java
index ff519d822..ea0cd1a0d 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/preference/EHSettingsScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/preference/EHSettingsScene.java
@@ -19,8 +19,10 @@ package com.hippo.ehviewer.ui.scene.preference;
import android.content.res.Resources;
import com.hippo.ehviewer.Constants;
+import com.hippo.ehviewer.EhApplication;
import com.hippo.ehviewer.R;
-import com.hippo.ehviewer.client.EhUrl;
+import com.hippo.ehviewer.client.EhConfig;
+import com.hippo.ehviewer.util.Settings;
import com.hippo.scene.SimpleCurtain;
import com.hippo.scene.preference.ListPreference;
import com.hippo.scene.preference.Preference;
@@ -29,22 +31,8 @@ import com.hippo.scene.preference.PreferenceScene;
import com.hippo.scene.preference.PreferenceSet;
import com.hippo.util.Messenger;
-public final class EHSettingsScene extends PreferenceScene implements Preference.OnClickListener {
-
- private static final String KEY_EH_SOURCE = "eh_source";
- private static final int DEFAULT_EH_SOURCE = EhUrl.SOURCE_G;
-
- private static final String KEY_EH_API = "eh_api";
- private static final int DEFAULT_EH_API = EhUrl.SOURCE_G;
-
- private static final String KEY_DEFAULT_CATEGORIES = "default_categories";
- private static final int DEFAULT_DEFAULT_CATEGORIES = 0;
-
- private static final String KEY_EXCLUDED_NAMESPACES = "excluded_namespaces";
- private static final int DEFAULT_EXCLUDED_NAMESPACES = 0;
-
- private static final String KEY_EXCLUDED_LANGUAGES = "excluded_languages";
- private static final String DEFAULT_EXCLUDED_LANGUAGES = "";
+public final class EHSettingsScene extends PreferenceScene implements Preference.OnClickListener,
+ Preference.OnValueChangeListener {
@Override
protected void onCreate(boolean rebirth) {
@@ -64,27 +52,36 @@ public final class EHSettingsScene extends PreferenceScene implements Preference
private PreferenceSet[] getPreferenceSet() {
Resources resources = getStageActivity().getResources();
- ValueChangeListener valueChangeListener = new ValueChangeListener();
-
- ListPreference sourcePreference = new ListPreference(this, KEY_EH_SOURCE,
+ // Source
+ ListPreference sourcePreference = new ListPreference(this, Settings.KEY_EH_SOURCE,
resources.getString(R.string.settings_eh_source_title), null);
sourcePreference.setKeys(resources.getStringArray(R.array.settings_eh_source_entries));
sourcePreference.setValues(resources.getIntArray(R.array.settings_eh_source_entry_values));
- sourcePreference.setDefaultValue(DEFAULT_EH_SOURCE);
- sourcePreference.setOnValueChangeListener(valueChangeListener);
-
+ sourcePreference.setDefaultValue(Settings.DEFAULT_EH_SOURCE);
+ sourcePreference.setOnValueChangeListener(this);
+ // Excluded language
Preference languagePreference = new Preference(
- KEY_EXCLUDED_LANGUAGES,
- resources.getString(R.string.excluded_languages), null);
+ Settings.KEY_EXCLUDED_LANGUAGES,
+ resources.getString(R.string.settings_excluded_languages_title),
+ resources.getString(R.string.settings_excluded_languages_summary));
languagePreference.setOnClickListener(this);
+ // Preview size
+ ListPreference previewSizePreference = new ListPreference(this, Settings.KEY_PREVIEW_SIZE,
+ resources.getString(R.string.settings_preview_size_title), null);
+ previewSizePreference.setKeys(resources.getStringArray(R.array.settings_preview_size_entries));
+ previewSizePreference.setValues(resources.getIntArray(R.array.settings_preview_size_values));
+ previewSizePreference.setDefaultValue(Settings.DEFAULT_PREVIEW_SIZE);
+ previewSizePreference.setOnValueChangeListener(this);
+
PreferenceSet preferenceSet = new PreferenceSet();
preferenceSet.setPreferenceCategory(new PreferenceCategory(resources.getString(R.string.settings_eh)));
preferenceSet.setPreferenceList(new Preference[] {
sourcePreference,
- languagePreference
+ languagePreference,
+ previewSizePreference
});
return new PreferenceSet[] {
@@ -95,7 +92,7 @@ public final class EHSettingsScene extends PreferenceScene implements Preference
@Override
public boolean onClick(Preference preference) {
String key = preference.getKey();
- if (KEY_EXCLUDED_LANGUAGES.equals(key)) {
+ if (Settings.KEY_EXCLUDED_LANGUAGES.equals(key)) {
startScene(ExcludedLanguagesScene.class, null, new SimpleCurtain(SimpleCurtain.DIRECTION_BOTTOM));
return true;
} else {
@@ -103,18 +100,20 @@ public final class EHSettingsScene extends PreferenceScene implements Preference
}
}
- private static class ValueChangeListener implements Preference.OnValueChangeListener {
-
- @Override
- public boolean OnValueChange(Preference preference, Object newValue) {
- String key = preference.getKey();
- switch (key) {
- case KEY_EH_SOURCE:
- Messenger.getInstance().notify(Constants.MESSENGER_ID_EH_SOURCE, newValue);
- return true;
- default:
- return true;
- }
+ @Override
+ public boolean OnValueChange(Preference preference, Object newValue) {
+ String key = preference.getKey();
+ switch (key) {
+ case Settings.KEY_EH_SOURCE:
+ Messenger.getInstance().notify(Constants.MESSENGER_ID_EH_SOURCE, newValue);
+ return true;
+ case Settings.KEY_PREVIEW_SIZE:
+ int value = (Integer) newValue;
+ EhApplication.getEhHttpClient(getStageActivity()).setPreviewSize(
+ value == 0? EhConfig.PREVIEW_SIZE_NORMAL : EhConfig.PREVIEW_SIZE_LARGE);
+ return true;
+ default:
+ return true;
}
}
}
diff --git a/app/src/main/java/com/hippo/ehviewer/util/Settings.java b/app/src/main/java/com/hippo/ehviewer/util/Settings.java
index 75c2ae696..034bd1512 100644
--- a/app/src/main/java/com/hippo/ehviewer/util/Settings.java
+++ b/app/src/main/java/com/hippo/ehviewer/util/Settings.java
@@ -73,8 +73,10 @@ public final class Settings {
}
/****** EH ******/
- private static final String KEY_EH_SOURCE = "eh_source";
- private static final int DEFAULT_EH_SOURCE = EhUrl.SOURCE_G;
+ public static final String KEY_EH_SOURCE = "eh_source";
+ public static final int DEFAULT_EH_SOURCE = EhUrl.SOURCE_G;
+ public static final String KEY_EH_API = "eh_api";
+ public static final int DEFAULT_EH_API = EhUrl.SOURCE_G;
private static final String KEY_SIGN_IN = "sign_in";
private static final boolean DEFAULT_SIGN_IN = false;
private static final String KEY_DISPLAY_NAME = "display_name";
@@ -149,12 +151,15 @@ public final class Settings {
}
/****** EhConfig ******/
- private static final String KEY_EXCLUDED_LANGUAGES = "excluded_languages";
- private static final String DEFAULT_EXCLUDED_LANGUAGES = "";
-
+ public static final String KEY_EXCLUDED_LANGUAGES = "excluded_languages";
+ public static final String DEFAULT_EXCLUDED_LANGUAGES = "";
+ public static final String KEY_PREVIEW_SIZE = "preview_size";
+ public static final int DEFAULT_PREVIEW_SIZE = 0;
public static EhConfig generateEhConfig() {
EhConfig config = new EhConfig();
+ config.previewSize = getPreviewSize() == 0 ?
+ EhConfig.PREVIEW_SIZE_NORMAL : EhConfig.PREVIEW_SIZE_LARGE;
config.excludedLanguages = getExcludedLanguages();
return config;
}
@@ -167,6 +172,14 @@ public final class Settings {
return getString(KEY_EXCLUDED_LANGUAGES, DEFAULT_EXCLUDED_LANGUAGES);
}
+ public static void putPreviewSize(int value) {
+ putInt(KEY_PREVIEW_SIZE, value);
+ }
+
+ public static int getPreviewSize() {
+ return getInt(KEY_PREVIEW_SIZE, DEFAULT_PREVIEW_SIZE);
+ }
+
/****** Advance ******/
private static final String KEY_SHOW_APPLICATION_STATS = "show_application_stats";
private static final boolean DEFAULT_SHOW_APPLICATION_STATS = BuildConfig.DEBUG;
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 0ed6fa36e..38e5ff07a 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -97,11 +97,44 @@
显示
EH 源
+ 排除语言
+ 在列表与搜索中隐藏指定语言画廊
+ 预览图大小
+ 一般
+ 较大
高级
显示应用状态
在屏幕右上角显示设备状态
+
+ 排除语言
+ 全选
+ 全取消
+ 反选
+ 语言
+ 原作
+ 翻译
+ 改写
+
+ 日语
+ 英语
+ 汉语
+ 荷兰语
+ 法语
+ 德语
+ 匈牙利语
+ 意大利语
+ 韩语
+ 波兰语
+ 葡萄牙语
+ 俄语
+ 西班牙语
+ 泰语
+ 越南语
+ N/A
+ 其他
+
“啥?”
“我把熊猫给丢了……”
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 66aaee58e..3675d61ea 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -34,4 +34,14 @@
- 2
+
+ - @string/settings_preview_size_normal
+ - @string/settings_preview_size_large
+
+
+
+ - 0
+ - 1
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 57f6b471b..6d56612a6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -140,6 +140,11 @@
g.e-hentai.org
exhentai.org
lofi.e-hentai.org
+ Excluded languages
+ Hide galleries in certain languages from the gallery list and searches
+ Preview size
+ Normal
+ Large
Advance
Show application stats