Clean code
This commit is contained in:
parent
78e08fbc03
commit
2eba323da2
|
|
@ -10,6 +10,7 @@ import android.os.Handler;
|
|||
import android.os.Looper;
|
||||
|
||||
import com.github.catvod.crawler.SpiderDebug;
|
||||
import com.github.catvod.utils.Notify;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Map;
|
||||
|
|
@ -59,10 +60,9 @@ public class Init {
|
|||
|
||||
public static void checkPermission() {
|
||||
try {
|
||||
Activity activity = Init.getActivity();
|
||||
if (activity == null || Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return;
|
||||
if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) return;
|
||||
activity.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 9999);
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return;
|
||||
if (context().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) return;
|
||||
Notify.show("請允許儲存權限");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
@ -74,16 +74,14 @@ public class Init {
|
|||
Field activitiesField = activityThreadClass.getDeclaredField("mActivities");
|
||||
activitiesField.setAccessible(true);
|
||||
Map<?, ?> activities = (Map<?, ?>) activitiesField.get(activityThread);
|
||||
for (Object activityRecord : activities.values()) {
|
||||
Class<?> activityRecordClass = activityRecord.getClass();
|
||||
Field pausedField = activityRecordClass.getDeclaredField("paused");
|
||||
for (Object o : activities.values()) {
|
||||
Class<?> clz = o.getClass();
|
||||
Field pausedField = clz.getDeclaredField("paused");
|
||||
pausedField.setAccessible(true);
|
||||
if (!pausedField.getBoolean(activityRecord)) {
|
||||
Field activityField = activityRecordClass.getDeclaredField("activity");
|
||||
if (!pausedField.getBoolean(o)) {
|
||||
Field activityField = clz.getDeclaredField("activity");
|
||||
activityField.setAccessible(true);
|
||||
Activity activity = (Activity) activityField.get(activityRecord);
|
||||
SpiderDebug.log(activity.getComponentName().getClassName());
|
||||
return activity;
|
||||
return (Activity) activityField.get(o);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.github.catvod.net.OkHttp;
|
|||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Map;
|
||||
|
||||
public class Proxy {
|
||||
|
|
@ -15,7 +16,7 @@ public class Proxy {
|
|||
public static Object[] proxy(Map<String, String> params) throws Exception {
|
||||
switch (params.get("do")) {
|
||||
case "ck":
|
||||
return new Object[]{200, "text/plain; charset=utf-8", new ByteArrayInputStream("ok".getBytes("UTF-8"))};
|
||||
return new Object[]{200, "text/plain; charset=utf-8", new ByteArrayInputStream("ok".getBytes(StandardCharsets.UTF_8))};
|
||||
case "bili":
|
||||
return Bili.proxy(params);
|
||||
case "webdav":
|
||||
|
|
@ -29,12 +30,22 @@ public class Proxy {
|
|||
|
||||
public static void init() {
|
||||
try {
|
||||
method = Class.forName("com.github.catvod.Proxy").getMethod("getUrl", boolean.class);
|
||||
Class<?> clz = Class.forName("com.github.catvod.Proxy");
|
||||
port = (int) clz.getMethod("getPort").invoke(null);
|
||||
method = clz.getMethod("getUrl", boolean.class);
|
||||
} catch (Throwable e) {
|
||||
findPort();
|
||||
}
|
||||
}
|
||||
|
||||
public static int getPort() {
|
||||
return port;
|
||||
}
|
||||
|
||||
public static String getUrl() {
|
||||
return getUrl(true);
|
||||
}
|
||||
|
||||
public static String getUrl(boolean local) {
|
||||
try {
|
||||
return (String) method.invoke(null, local);
|
||||
|
|
@ -43,10 +54,6 @@ public class Proxy {
|
|||
}
|
||||
}
|
||||
|
||||
public static String getUrl() {
|
||||
return getUrl(true);
|
||||
}
|
||||
|
||||
private static void findPort() {
|
||||
if (port > 0) return;
|
||||
for (int p = 8964; p < 9999; p++) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import java.io.FileInputStream;
|
|||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
|
@ -63,7 +64,7 @@ public class Path {
|
|||
byte[] data = new byte[is.available()];
|
||||
is.read(data);
|
||||
is.close();
|
||||
return new String(data, "UTF-8");
|
||||
return new String(data, StandardCharsets.UTF_8);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
|
|
|
|||
|
|
@ -4,18 +4,12 @@ import android.content.ClipData;
|
|||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.webkit.ValueCallback;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
|
||||
import com.github.catvod.spider.Init;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class Util {
|
||||
|
|
@ -59,19 +53,9 @@ public class Util {
|
|||
|
||||
public static String getSize(double size) {
|
||||
if (size <= 0) return "";
|
||||
if (size > 1024 * 1024 * 1024 * 1024.0) {
|
||||
size /= (1024 * 1024 * 1024 * 1024.0);
|
||||
return String.format(Locale.getDefault(), "%.2f%s", size, "TB");
|
||||
} else if (size > 1024 * 1024 * 1024.0) {
|
||||
size /= (1024 * 1024 * 1024.0);
|
||||
return String.format(Locale.getDefault(), "%.2f%s", size, "GB");
|
||||
} else if (size > 1024 * 1024.0) {
|
||||
size /= (1024 * 1024.0);
|
||||
return String.format(Locale.getDefault(), "%.2f%s", size, "MB");
|
||||
} else {
|
||||
size /= 1024.0;
|
||||
return String.format(Locale.getDefault(), "%.2f%s", size, "KB");
|
||||
}
|
||||
String[] units = new String[]{"bytes", "KB", "MB", "GB", "TB"};
|
||||
int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
|
||||
return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + " " + units[digitGroups];
|
||||
}
|
||||
|
||||
public static String fixUrl(String base, String src) {
|
||||
|
|
@ -118,46 +102,4 @@ public class Util {
|
|||
manager.setPrimaryClip(ClipData.newPlainText("fongmi", text));
|
||||
Notify.show("已複製 " + text);
|
||||
}
|
||||
|
||||
public static void loadUrl(WebView webView, String script) {
|
||||
loadUrl(webView, script, null);
|
||||
}
|
||||
|
||||
public static void loadUrl(WebView webView, String script, ValueCallback<String> callback) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
webView.evaluateJavascript(script, callback);
|
||||
} else {
|
||||
webView.loadUrl("javascript:" + script);
|
||||
}
|
||||
}
|
||||
|
||||
public static void addView(View view, ViewGroup.LayoutParams params) {
|
||||
try {
|
||||
ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content);
|
||||
group.addView(view, params);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void removeView(View view) {
|
||||
try {
|
||||
ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content);
|
||||
group.removeView(view);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void loadWebView(String url, WebViewClient client) {
|
||||
Init.run(() -> {
|
||||
WebView webView = new WebView(Init.context());
|
||||
webView.getSettings().setDatabaseEnabled(true);
|
||||
webView.getSettings().setDomStorageEnabled(true);
|
||||
webView.getSettings().setJavaScriptEnabled(true);
|
||||
addView(webView, new ViewGroup.LayoutParams(0, 0));
|
||||
webView.setWebViewClient(client);
|
||||
webView.loadUrl(url);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
7d41e83085218476c2cd4fc00da14ad8
|
||||
278348cbde9d2e7604de1cc53c37712d
|
||||
|
|
|
|||
Loading…
Reference in New Issue