about summary refs log tree commit diff
path: root/android/app/src/main/java/xyz/blueskyweb/pubsq/newarchitecture/modules
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2022-06-15 21:49:03 -0500
committerPaul Frazee <pfrazee@gmail.com>2022-06-15 21:49:03 -0500
commit2c73703d7d59bdd9a3e4b10c41e5099b8f92db1c (patch)
treed43a6d3fde9af33d1a00b8ca436cd79f4d53e6cd /android/app/src/main/java/xyz/blueskyweb/pubsq/newarchitecture/modules
parent07b92a2180ca6600f09e03a85c8ca7a06d24cbfc (diff)
downloadvoidsky-2c73703d7d59bdd9a3e4b10c41e5099b8f92db1c.tar.zst
Rename bundle-id to xyz.blueskyweb.pubsq in android
Diffstat (limited to 'android/app/src/main/java/xyz/blueskyweb/pubsq/newarchitecture/modules')
-rw-r--r--android/app/src/main/java/xyz/blueskyweb/pubsq/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/android/app/src/main/java/xyz/blueskyweb/pubsq/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/android/app/src/main/java/xyz/blueskyweb/pubsq/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java
new file mode 100644
index 000000000..2387471cc
--- /dev/null
+++ b/android/app/src/main/java/xyz/blueskyweb/pubsq/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java
@@ -0,0 +1,48 @@
+package xyz.blueskyweb.pubsq.newarchitecture.modules;
+
+import com.facebook.jni.HybridData;
+import com.facebook.react.ReactPackage;
+import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.soloader.SoLoader;
+import java.util.List;
+
+/**
+ * Class responsible to load the TurboModules. This class has native methods and needs a
+ * corresponding C++ implementation/header file to work correctly (already placed inside the jni/
+ * folder for you).
+ *
+ * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
+ * `newArchEnabled` property). Is ignored otherwise.
+ */
+public class MainApplicationTurboModuleManagerDelegate
+    extends ReactPackageTurboModuleManagerDelegate {
+
+  private static volatile boolean sIsSoLibraryLoaded;
+
+  protected MainApplicationTurboModuleManagerDelegate(
+      ReactApplicationContext reactApplicationContext, List<ReactPackage> packages) {
+    super(reactApplicationContext, packages);
+  }
+
+  protected native HybridData initHybrid();
+
+  native boolean canCreateTurboModule(String moduleName);
+
+  public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {
+    protected MainApplicationTurboModuleManagerDelegate build(
+        ReactApplicationContext context, List<ReactPackage> packages) {
+      return new MainApplicationTurboModuleManagerDelegate(context, packages);
+    }
+  }
+
+  @Override
+  protected synchronized void maybeLoadOtherSoLibraries() {
+    if (!sIsSoLibraryLoaded) {
+      // If you change the name of your application .so file in the Android.mk file,
+      // make sure you update the name here as well.
+      SoLoader.loadLibrary("app_appmodules");
+      sIsSoLibraryLoaded = true;
+    }
+  }
+}