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"/>