diff --git a/.idea/misc.xml b/.idea/misc.xml index 3852fb5..31c8593 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 38c1acd..1ebc617 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "ml.puredark.hviewer" minSdkVersion 17 targetSdkVersion 22 - versionCode 1 - versionName "0.1.0" + versionCode 2 + versionName "0.1.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fd5dcc3..dfd1b6e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -39,7 +39,8 @@ android:screenOrientation="portrait" /> + android:screenOrientation="portrait" + android:windowSoftInputMode="adjustPan"/> + android:screenOrientation="portrait" + android:windowSoftInputMode="adjustPan"/> diff --git a/app/src/main/java/ml/puredark/hviewer/activities/AddSiteActivity.java b/app/src/main/java/ml/puredark/hviewer/activities/AddSiteActivity.java index 0ad0dbf..d58d1f1 100644 --- a/app/src/main/java/ml/puredark/hviewer/activities/AddSiteActivity.java +++ b/app/src/main/java/ml/puredark/hviewer/activities/AddSiteActivity.java @@ -127,6 +127,12 @@ void submit() { showSnackBar("规则缺少必要参数,请检查"); return; } + List sites = siteHolder.getSites(); + int sid = 1; + for(Site site : sites){ + sid = Math.max(sid, site.sid + 1); + } + newSite.sid = sid; HViewerApplication.temp = newSite; siteHolder.addSite(newSite); @@ -159,9 +165,6 @@ public void onFailure(HViewerHttpClient.HttpError error) { private Site parseSite(String json) { try { Site site = new Gson().fromJson(json, Site.class); - List sites = siteHolder.getSites(); - int sid = (sites.size() > 0) ? sites.get(sites.size() - 1).sid + 1 : 1; - site.sid = sid; if (site.indexRule == null || site.galleryRule == null) showSnackBar("输入的规则缺少信息"); return site; diff --git a/app/src/main/java/ml/puredark/hviewer/helpers/HProxy.java b/app/src/main/java/ml/puredark/hviewer/helpers/HProxy.java index 02baca8..a6ab8e7 100644 --- a/app/src/main/java/ml/puredark/hviewer/helpers/HProxy.java +++ b/app/src/main/java/ml/puredark/hviewer/helpers/HProxy.java @@ -5,8 +5,8 @@ import ml.puredark.hviewer.utils.SharedPreferencesUtil; public class HProxy { - private static final String PROXY_DEFAULT_SERVER = "https://h-viewer-proxy.herokuapp.com"; -// private static final String PROXY_DEFAULT_SERVER = ""; +// private static final String PROXY_DEFAULT_SERVER = "https://h-viewer-proxy.herokuapp.com"; + private static final String PROXY_DEFAULT_SERVER = null; private String mTarget; private String mProxyUrl; @@ -21,6 +21,8 @@ public HProxy(String target) { } this.mProxyUrl = getProxyServer() + target.substring(hostEndPos); + if(!mProxyUrl.startsWith("http")) + mProxyUrl = mTarget; } public static boolean isEnabled() { diff --git a/app/src/main/java/ml/puredark/hviewer/helpers/HViewerHttpClient.java b/app/src/main/java/ml/puredark/hviewer/helpers/HViewerHttpClient.java index f6f368f..561dc2c 100644 --- a/app/src/main/java/ml/puredark/hviewer/helpers/HViewerHttpClient.java +++ b/app/src/main/java/ml/puredark/hviewer/helpers/HViewerHttpClient.java @@ -51,6 +51,10 @@ public static void post(String url, String paramsString, List cookies, f } public static void get(String url, List cookies, final OnResponseListener callback) { + if(url==null||!url.startsWith("http")) { + callback.onFailure(new HttpError(HttpError.ERROR_WRONG_URL)); + return; + } if (HViewerApplication.isNetworkAvailable()) { HRequestBuilder builder = new HRequestBuilder(); if(cookies!=null){ @@ -66,7 +70,7 @@ public static void get(String url, List cookies, final OnResponseListene mClient.newCall(request).enqueue(new HCallback() { @Override void onFailure(IOException e) { - callback.onFailure(new HttpError(1009)); + callback.onFailure(new HttpError(HttpError.ERROR_NETWORK)); } @Override @@ -75,11 +79,15 @@ void onResponse(String body) { } }); } else { - callback.onFailure(new HttpError(1009)); + callback.onFailure(new HttpError(HttpError.ERROR_NETWORK)); } } public static void post(String url, RequestBody body, List cookies, final OnResponseListener callback) { + if(url==null||!url.startsWith("http")) { + callback.onFailure(new HttpError(HttpError.ERROR_WRONG_URL)); + return; + } if (HViewerApplication.isNetworkAvailable()) { HRequestBuilder builder = new HRequestBuilder(); if(cookies!=null){ @@ -96,7 +104,7 @@ public static void post(String url, RequestBody body, List cookies, fina mClient.newCall(request).enqueue(new HCallback() { @Override void onFailure(IOException e) { - callback.onFailure(new HttpError(1009)); + callback.onFailure(new HttpError(HttpError.ERROR_NETWORK)); } @Override @@ -105,7 +113,7 @@ void onResponse(String body) { } }); } else { - callback.onFailure(new HttpError(1009)); + callback.onFailure(new HttpError(HttpError.ERROR_NETWORK)); } } @@ -149,6 +157,7 @@ public static class HttpError { // Error code constants public static final int ERROR_UNKNOWN = 1000; //未知错误 public static final int ERROR_NETWORK = 1009; //网络错误 + public static final int ERROR_WRONG_URL = 1011; //URL格式错误 private int errorCode; private String errorString = ""; @@ -162,6 +171,9 @@ public HttpError(int errorCode) { case ERROR_NETWORK: errorString = "网络错误,请重试"; break; + case ERROR_WRONG_URL: + errorString = "URL格式错误"; + break; default: errorString = "未定义的错误码"; break; diff --git a/app/src/main/java/ml/puredark/hviewer/helpers/SitePropViewHolder.java b/app/src/main/java/ml/puredark/hviewer/helpers/SitePropViewHolder.java index b67390e..c312ab2 100644 --- a/app/src/main/java/ml/puredark/hviewer/helpers/SitePropViewHolder.java +++ b/app/src/main/java/ml/puredark/hviewer/helpers/SitePropViewHolder.java @@ -178,19 +178,24 @@ public SitePropViewHolder(View view) { public String joinSelector(Selector selector) { String select = (selector.selector != null) ? "$(\"" + selector.selector + "\")" : ""; - String function = (selector.fun != null) ? "." + selector.fun : ""; - String parameter = (selector.param != null) ? "(\"" + selector.param + "\")" : ""; + String function = (selector.fun != null && !"".equals(selector.fun)) ? "." + selector.fun : ""; + String parameter = (selector.param != null && !"".equals(selector.param)) ? "(\"" + selector.param + "\")" + : ("".equals(function)) ? "" : "()"; String join = select + function + parameter; return join; } public Selector splitSelector(Selector selector) { - Pattern pattern = Pattern.compile("\\$\\(\"(.*?)\"\\).?(\\w*)?\\(?\"?(\\w*)\"?\\)?", DOTALL); + Pattern pattern = Pattern.compile("\\$\\(\"(.*?)\"\\).?(\\w*)?\\(?\"?([a-zA-z_-]*)\"?\\)?", DOTALL); Matcher matcher = pattern.matcher(selector.selector); if (matcher.find() && matcher.groupCount() >= 3) { selector.selector = matcher.group(1); selector.fun = matcher.group(2); selector.param = matcher.group(3); + if ("".equals(selector.fun)) + selector.fun = null; + if ("".equals(selector.param)) + selector.param = null; } return selector; } diff --git a/app/src/main/res/layout/view_site_details.xml b/app/src/main/res/layout/view_site_details.xml index 0b7556c..e5737db 100644 --- a/app/src/main/res/layout/view_site_details.xml +++ b/app/src/main/res/layout/view_site_details.xml @@ -543,16 +543,18 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/half_padding" + android:visibility="gone" android:textColor="@color/colorPrimaryDark" android:textSize="14sp" - android:text="ITEM"/> + android:text="特征码(可选)"/> + android:text="标题(可选)"/> + android:text="上传者(可选)"/> + android:text="封面(可选)"/> + android:text="分类(可选)"/> + android:text="发布时间(可选)"/> + android:text="评分(可选)"/> + android:text="标签(可选)"/> + android:text="ITEM"/>