diff --git a/app/build.gradle b/app/build.gradle
index 3a9a6e126..1b6430824 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -92,7 +92,7 @@ dependencies {
implementation project(':chaquo')
implementation project(':quickjs')
implementation 'androidx.appcompat:appcompat:1.7.1'
- implementation 'androidx.core:core-splashscreen:1.0.1'
+ implementation 'androidx.core:core-splashscreen:1.2.0'
implementation 'androidx.media:media:1.7.1'
implementation 'androidx.palette:palette:1.0.0'
implementation 'androidx.room:room-runtime:2.8.3'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9f6564368..000ba7586 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,9 +58,13 @@
+ android:name="androidx.startup.InitializationProvider"
+ android:authorities="${applicationId}.androidx-startup"
+ android:exported="false">
+
+
{
+
+ @NonNull
+ @Override
+ public Void create(@NonNull Context context) {
+ CaocConfig.Builder.create().trackActivities(true).backgroundMode(CaocConfig.BACKGROUND_MODE_SILENT).errorActivity(CrashActivity.class).apply();
+ Logger.addLogAdapter(new AndroidLogAdapter(PrettyFormatStrategy.newBuilder().methodCount(0).showThreadInfo(false).tag("TV").build()));
+ EventBus.builder().addIndex(new EventIndex()).installDefaultEventBus();
+ OkHttp.dns().setDoh(Doh.objectFrom(Setting.getDoh()));
+ return null;
+ }
+
+ @NonNull
+ @Override
+ public List>> dependencies() {
+ return Collections.emptyList();
+ }
+}
diff --git a/app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java b/app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java
index 2bb6314ef..e96a327b2 100644
--- a/app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java
+++ b/app/src/main/java/com/fongmi/android/tv/api/loader/PyLoader.java
@@ -31,7 +31,7 @@ public class PyLoader {
public Spider getSpider(String key, String api, String ext) {
try {
if (spiders.containsKey(key)) return spiders.get(key);
- Spider spider = loader.spider(App.get(), api);
+ Spider spider = loader.spider(api);
spider.init(App.get(), ext);
spiders.put(key, spider);
return spider;
diff --git a/catvod/build.gradle b/catvod/build.gradle
index da719fcd7..b61d2886a 100644
--- a/catvod/build.gradle
+++ b/catvod/build.gradle
@@ -21,6 +21,7 @@ android {
dependencies {
api 'androidx.annotation:annotation:1.9.1'
api 'androidx.preference:preference:1.2.1'
+ api 'androidx.startup:startup-runtime:1.2.0'
api 'com.github.thegrizzlylabs:sardine-android:0.9'
api 'com.google.code.gson:gson:' + gsonVersion
api 'com.google.zxing:core:3.5.3'
diff --git a/catvod/src/main/AndroidManifest.xml b/catvod/src/main/AndroidManifest.xml
index 568741e54..35b57b823 100644
--- a/catvod/src/main/AndroidManifest.xml
+++ b/catvod/src/main/AndroidManifest.xml
@@ -1,2 +1,13 @@
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/catvod/src/main/java/com/github/catvod/Startup.java b/catvod/src/main/java/com/github/catvod/Startup.java
new file mode 100644
index 000000000..85fb1b52f
--- /dev/null
+++ b/catvod/src/main/java/com/github/catvod/Startup.java
@@ -0,0 +1,25 @@
+package com.github.catvod;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.startup.Initializer;
+
+import java.util.Collections;
+import java.util.List;
+
+public class Startup implements Initializer {
+
+ @NonNull
+ @Override
+ public Void create(@NonNull Context context) {
+ Init.set(context);
+ return null;
+ }
+
+ @NonNull
+ @Override
+ public List>> dependencies() {
+ return Collections.emptyList();
+ }
+}
diff --git a/chaquo/src/main/AndroidManifest.xml b/chaquo/src/main/AndroidManifest.xml
index 568741e54..7cdc2a9b4 100644
--- a/chaquo/src/main/AndroidManifest.xml
+++ b/chaquo/src/main/AndroidManifest.xml
@@ -1,2 +1,13 @@
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/chaquo/src/main/java/com/fongmi/chaquo/Loader.java b/chaquo/src/main/java/com/fongmi/chaquo/Loader.java
index d3c461c8a..78974e989 100644
--- a/chaquo/src/main/java/com/fongmi/chaquo/Loader.java
+++ b/chaquo/src/main/java/com/fongmi/chaquo/Loader.java
@@ -1,27 +1,21 @@
package com.fongmi.chaquo;
-import android.content.Context;
-
import androidx.annotation.Keep;
import com.chaquo.python.PyObject;
import com.chaquo.python.Python;
-import com.chaquo.python.android.AndroidPlatform;
import com.github.catvod.utils.Path;
public class Loader {
- private PyObject app;
+ private final PyObject app;
- @Keep
- private void init(Context context) {
- if (!Python.isStarted()) Python.start(new AndroidPlatform(context));
- app = Python.getInstance().getModule("app");
+ public Loader() {
+ this.app = Python.getInstance().getModule("app");
}
@Keep
- public Spider spider(Context context, String api) {
- if (app == null) init(context);
+ public Spider spider(String api) {
PyObject obj = app.callAttr("spider", Path.py().getAbsolutePath(), api);
return new Spider(app, obj, api);
}
diff --git a/chaquo/src/main/java/com/fongmi/chaquo/Startup.java b/chaquo/src/main/java/com/fongmi/chaquo/Startup.java
new file mode 100644
index 000000000..9fd6907ab
--- /dev/null
+++ b/chaquo/src/main/java/com/fongmi/chaquo/Startup.java
@@ -0,0 +1,28 @@
+package com.fongmi.chaquo;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.startup.Initializer;
+
+import com.chaquo.python.Python;
+import com.chaquo.python.android.AndroidPlatform;
+
+import java.util.Collections;
+import java.util.List;
+
+public class Startup implements Initializer {
+
+ @NonNull
+ @Override
+ public Void create(@NonNull Context context) {
+ Python.start(new AndroidPlatform(context));
+ return null;
+ }
+
+ @NonNull
+ @Override
+ public List>> dependencies() {
+ return Collections.emptyList();
+ }
+}
diff --git a/quickjs/src/main/AndroidManifest.xml b/quickjs/src/main/AndroidManifest.xml
index 568741e54..b20a76a01 100644
--- a/quickjs/src/main/AndroidManifest.xml
+++ b/quickjs/src/main/AndroidManifest.xml
@@ -1,2 +1,13 @@
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/quickjs/src/main/java/com/fongmi/quickjs/Provider.java b/quickjs/src/main/java/com/fongmi/quickjs/Provider.java
deleted file mode 100644
index cd04c8080..000000000
--- a/quickjs/src/main/java/com/fongmi/quickjs/Provider.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.fongmi.quickjs;
-
-import android.content.ContentProvider;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.net.Uri;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.whl.quickjs.android.QuickJSLoader;
-
-public class Provider extends ContentProvider {
-
- static {
- try {
- QuickJSLoader.init();
- } catch (Throwable ignored) {
- }
- }
-
- @Override
- public boolean onCreate() {
- return true;
- }
-
- @Nullable
- @Override
- public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
- return null;
- }
-
- @Nullable
- @Override
- public String getType(@NonNull Uri uri) {
- return null;
- }
-
- @Nullable
- @Override
- public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
- return null;
- }
-
- @Override
- public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
- return 0;
- }
-
- @Override
- public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
- return 0;
- }
-}
diff --git a/quickjs/src/main/java/com/fongmi/quickjs/Startup.java b/quickjs/src/main/java/com/fongmi/quickjs/Startup.java
new file mode 100644
index 000000000..84f374b4c
--- /dev/null
+++ b/quickjs/src/main/java/com/fongmi/quickjs/Startup.java
@@ -0,0 +1,27 @@
+package com.fongmi.quickjs;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.startup.Initializer;
+
+import com.whl.quickjs.android.QuickJSLoader;
+
+import java.util.Collections;
+import java.util.List;
+
+public class Startup implements Initializer {
+
+ @NonNull
+ @Override
+ public Void create(@NonNull Context context) {
+ QuickJSLoader.init();
+ return null;
+ }
+
+ @NonNull
+ @Override
+ public List>> dependencies() {
+ return Collections.emptyList();
+ }
+}