diff --git a/app/src/main/java/com/github/catvod/spider/Init.java b/app/src/main/java/com/github/catvod/spider/Init.java index 5c5891e..1133b8a 100644 --- a/app/src/main/java/com/github/catvod/spider/Init.java +++ b/app/src/main/java/com/github/catvod/spider/Init.java @@ -48,27 +48,23 @@ public class Init { get().handler.post(() -> Toast.makeText(context(), msg, Toast.LENGTH_LONG).show()); } - public static Activity getActivity() { - try { - Class activityThreadClass = Class.forName("android.app.ActivityThread"); - Object activityThread = activityThreadClass.getMethod("currentActivityThread").invoke(null); - 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"); - pausedField.setAccessible(true); - if (!pausedField.getBoolean(activityRecord)) { - Field activityField = activityRecordClass.getDeclaredField("activity"); - activityField.setAccessible(true); - Activity activity = (Activity) activityField.get(activityRecord); - SpiderDebug.log(activity.getComponentName().getClassName()); - return activity; - } + public static Activity getActivity() throws Exception { + Class activityThreadClass = Class.forName("android.app.ActivityThread"); + Object activityThread = activityThreadClass.getMethod("currentActivityThread").invoke(null); + 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"); + pausedField.setAccessible(true); + if (!pausedField.getBoolean(activityRecord)) { + Field activityField = activityRecordClass.getDeclaredField("activity"); + activityField.setAccessible(true); + Activity activity = (Activity) activityField.get(activityRecord); + SpiderDebug.log(activity.getComponentName().getClassName()); + return activity; } - } catch (Exception e) { - e.printStackTrace(); } return null; } diff --git a/app/src/main/java/com/github/catvod/utils/Misc.java b/app/src/main/java/com/github/catvod/utils/Misc.java index 9af5ffe..4e46be2 100644 --- a/app/src/main/java/com/github/catvod/utils/Misc.java +++ b/app/src/main/java/com/github/catvod/utils/Misc.java @@ -163,13 +163,19 @@ public class Misc { } public static void addView(View view, ViewGroup.LayoutParams params) { - ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content); - group.addView(view, params); + try { + ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content); + group.addView(view, params); + } catch (Exception ignored) { + } } public static void removeView(View view) { - ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content); - group.removeView(view); + try { + ViewGroup group = Init.getActivity().getWindow().getDecorView().findViewById(android.R.id.content); + group.removeView(view); + } catch (Exception ignored) { + } } public static void loadWebView(String url, WebViewClient client) { diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index d8dfe1c..f983961 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index e1f244b..357b69b 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -906b337d4b4baef13292d004e5fd8f9b +487834a2d0d9aa7614beeba237cce0c2