浏览代码

feat(android) adds initializer for SoLoader.init

master
tmoldovan8x8 3 年前
父节点
当前提交
3b33ba3f5d
没有帐户链接到提交者的电子邮件

+ 1
- 0
android/sdk/build.gradle 查看文件

@@ -48,6 +48,7 @@ dependencies {
48 48
     implementation 'com.jakewharton.timber:timber:4.7.1'
49 49
     implementation 'com.squareup.duktape:duktape-android:1.3.0'
50 50
     implementation 'com.google.code.gson:gson:2.8.6'
51
+    implementation "androidx.startup:startup-runtime:1.1.0"
51 52
 
52 53
     if (rootProject.ext.libreBuild) {
53 54
         implementation(project(':react-native-device-info')) {

+ 8
- 0
android/sdk/src/main/AndroidManifest.xml 查看文件

@@ -57,6 +57,14 @@
57 57
             android:enabled="false"
58 58
             tools:replace="android:authorities">
59 59
         </provider>
60
+        <provider
61
+            android:name="androidx.startup.InitializationProvider"
62
+            android:authorities="${applicationId}.androidx-startup"
63
+            android:exported="false">
64
+            <meta-data  android:name="org.jitsi.meet.sdk.JitsiInitializer"
65
+                android:value="androidx.startup" />
66
+        </provider>
67
+
60 68
     </application>
61 69
 
62 70
 </manifest>

+ 42
- 0
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiInitializer.java 查看文件

@@ -0,0 +1,42 @@
1
+/*
2
+ * Copyright @ 2021-present 8x8, Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ *     http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+package org.jitsi.meet.sdk;
17
+
18
+import android.content.Context;
19
+
20
+import androidx.annotation.NonNull;
21
+import androidx.startup.Initializer;
22
+
23
+import com.facebook.soloader.SoLoader;
24
+
25
+import java.util.ArrayList;
26
+import java.util.List;
27
+
28
+public class JitsiInitializer implements Initializer<Boolean> {
29
+
30
+    @NonNull
31
+    @Override
32
+    public Boolean create(@NonNull Context context) {
33
+        SoLoader.init(context, /* native exopackage */ false);
34
+        return true;
35
+    }
36
+
37
+    @NonNull
38
+    @Override
39
+    public List<Class<? extends Initializer<?>>> dependencies() {
40
+        return new ArrayList<>();
41
+    }
42
+}

+ 0
- 3
android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java 查看文件

@@ -30,7 +30,6 @@ import com.facebook.react.devsupport.DevInternalSettings;
30 30
 import com.facebook.react.jscexecutor.JSCExecutorFactory;
31 31
 import com.facebook.react.modules.core.DeviceEventManagerModule;
32 32
 import com.facebook.react.uimanager.ViewManager;
33
-import com.facebook.soloader.SoLoader;
34 33
 import com.oney.WebRTCModule.RTCVideoViewManager;
35 34
 import com.oney.WebRTCModule.WebRTCModule;
36 35
 
@@ -174,8 +173,6 @@ class ReactInstanceManagerHolder {
174 173
             return;
175 174
         }
176 175
 
177
-        SoLoader.init(activity.getApplication(), /* native exopackage */ false);
178
-
179 176
         List<ReactPackage> packages
180 177
             = new ArrayList<>(Arrays.asList(
181 178
                 new com.calendarevents.CalendarEventsPackage(),

正在加载...
取消
保存