From e9bb78ebfc11b75f3616ea7b6dc1b3b822e04d32 Mon Sep 17 00:00:00 2001 From: seven332 Date: Wed, 25 Jun 2014 16:19:45 +0800 Subject: [PATCH] =?UTF-8?q?preview=20num=20per=20row=20=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=A2=AB=E7=A6=81=E7=94=A8=EF=BC=8C=E9=99=90=E5=88=B6=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- res/values-zh-rCN/strings.xml | 2 +- res/values/strings.xml | 2 +- .../hippo/ehviewer/ehclient/DetailParser.java | 7 ++++--- src/com/hippo/ehviewer/ehclient/ListParser.java | 6 +++--- src/com/hippo/ehviewer/ui/SettingsActivity.java | 16 ++++++++++++++-- src/com/hippo/ehviewer/util/Config.java | 4 +++- src/com/hippo/ehviewer/util/Util.java | 13 ++++++++++++- 7 files changed, 38 insertions(+), 12 deletions(-) diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 49a9f10e0..31b02c83f 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -191,7 +191,7 @@ 预览图模式 正常预览图 大预览图 - 每行预览图数量(大预览图模式) + 每行预览图数量 数据 缓存 diff --git a/res/values/strings.xml b/res/values/strings.xml index 7cd577de9..38f4d358c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -192,7 +192,7 @@ Preview mode Normal Large - Preview number per row(large preview mode) + Preview number per row Data Cache diff --git a/src/com/hippo/ehviewer/ehclient/DetailParser.java b/src/com/hippo/ehviewer/ehclient/DetailParser.java index 57af82a4f..569a72929 100644 --- a/src/com/hippo/ehviewer/ehclient/DetailParser.java +++ b/src/com/hippo/ehviewer/ehclient/DetailParser.java @@ -30,6 +30,7 @@ import com.hippo.ehviewer.data.LargePreviewList; import com.hippo.ehviewer.data.NormalPreviewList; import com.hippo.ehviewer.data.PreviewList; import com.hippo.ehviewer.util.Log; +import com.hippo.ehviewer.util.Util; public class DetailParser { @@ -117,9 +118,9 @@ public class DetailParser { if (m.find()) { re |= DETAIL; - thumb = m.group(1); - title = m.group(2); - title_jpn = m.group(3); + thumb = Util.htmlUnsescape(m.group(1)); + title = Util.htmlUnsescape(m.group(2)); + title_jpn = Util.htmlUnsescape(m.group(3)); category = EhClient.getType(m.group(4)); uploader = m.group(5); posted = m.group(6); diff --git a/src/com/hippo/ehviewer/ehclient/ListParser.java b/src/com/hippo/ehviewer/ehclient/ListParser.java index 12b869e16..a0749e370 100644 --- a/src/com/hippo/ehviewer/ehclient/ListParser.java +++ b/src/com/hippo/ehviewer/ehclient/ListParser.java @@ -71,11 +71,11 @@ public class ListParser { gi.category = EhClient.getType(m.group(1)); gi.posted = m.group(2); if (m.group(3) == null) { - gi.thumb = "http://" - + m.group(5).replace('~', '/'); + gi.thumb = Util.htmlUnsescape("http://" + + m.group(5).replace('~', '/')); gi.title = Util.htmlUnsescape(m.group(6)); } else { - gi.thumb = m.group(3); + gi.thumb = Util.htmlUnsescape(m.group(3)); gi.title = Util.htmlUnsescape(m.group(4)); } diff --git a/src/com/hippo/ehviewer/ui/SettingsActivity.java b/src/com/hippo/ehviewer/ui/SettingsActivity.java index cdc56280e..383375d6c 100644 --- a/src/com/hippo/ehviewer/ui/SettingsActivity.java +++ b/src/com/hippo/ehviewer/ui/SettingsActivity.java @@ -315,6 +315,14 @@ public class SettingsActivity extends AbstractPreferenceActivity { private AutoListPreference mPreviewMode; private EditTextPreference mPreviewPerRow; + + private void setPPREnabled(String previewMode) { + if (previewMode.equals(Config.PREVIEW_MODE_LARGE)) + mPreviewPerRow.setEnabled(true); + else + mPreviewPerRow.setEnabled(false); + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -326,24 +334,28 @@ public class SettingsActivity extends AbstractPreferenceActivity { mPreviewPerRow.setOnPreferenceChangeListener(this); mPreviewPerRow.setSummary(mPreviewPerRow.getText()); + setPPREnabled(mPreviewMode.getValue()); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { final String key = preference.getKey(); if (KEY_PREVIEW_MODE.equals(key)) { - EhInfo.getInstance(mActivity).setPreviewMode((String)newValue); + String newPreviewMode = (String)newValue; + EhInfo.getInstance(mActivity).setPreviewMode(newPreviewMode); + setPPREnabled(newPreviewMode); + } else if (KEY_PREVIEW_PER_ROW.equals(key)) { try { int value = Integer.parseInt((String)newValue); if (value <= 0) throw new Exception(); + mPreviewPerRow.setSummary((String)newValue); } catch (Exception e) { new SuperToast(mActivity, R.string.invalid_input, SuperToast.ERROR).show(); return false; } - mPreviewPerRow.setSummary((String)newValue); } return true; } diff --git a/src/com/hippo/ehviewer/util/Config.java b/src/com/hippo/ehviewer/util/Config.java index d9aa9819a..bb12ab046 100644 --- a/src/com/hippo/ehviewer/util/Config.java +++ b/src/com/hippo/ehviewer/util/Config.java @@ -329,7 +329,9 @@ public class Config { // m for normal, l for large private static final String KEY_PREVIEW_MODE = "preview_mode"; - private static final String DEFAULT_PREVIEW_MODE = "l"; + public static final String PREVIEW_MODE_NORMAL = "m"; + public static final String PREVIEW_MODE_LARGE = "l"; + private static final String DEFAULT_PREVIEW_MODE = PREVIEW_MODE_LARGE; /** * reclass 0x1 diff --git a/src/com/hippo/ehviewer/util/Util.java b/src/com/hippo/ehviewer/util/Util.java index 01efe3229..1890fd273 100644 --- a/src/com/hippo/ehviewer/util/Util.java +++ b/src/com/hippo/ehviewer/util/Util.java @@ -269,6 +269,11 @@ public class Util { } } + /** + * Mostly title and url need it + * @param str + * @return + */ public static String htmlUnsescape(String str) { return str.replace("&", "&") .replace("<", "<") @@ -277,7 +282,13 @@ public class Util { .replace("'", "'"); } + /** + * Make file name valid by removing invalid character and set max length + * @param name + * @return + */ public static String rightFileName(String name) { - return name.replaceAll("[\\\\|/|:|*|?|\"|<|>|\\|]", ""); + name = name.replaceAll("[\\\\|/|:|*|?|\"|<|>|\\|]", ""); + return name.length() > 255 ? name.substring(0, 255) : name; } }