Add set preview size
This commit is contained in:
1 parent
22af14e83b
commit
24faddf5b0
6 files changed
+109
-44
No files matched your search
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user