aboutsummaryrefslogtreecommitdiffstats
path: root/android/app/src/main/java/com/10lesson/MainApplication.java
diff options
context:
space:
mode:
authorMaksymilian Jopek <maks@jopek.eu>2021-12-09 23:15:33 +0100
committerMaksymilian Jopek <maks@jopek.eu>2021-12-09 23:15:33 +0100
commit67b6f338cfe4da739d39dc6764d11efa00105d81 (patch)
tree441ff30a8fb783e400ea7c9e600c889e12392eca /android/app/src/main/java/com/10lesson/MainApplication.java
downloadremarques-67b6f338cfe4da739d39dc6764d11efa00105d81.tar.gz
remarques-67b6f338cfe4da739d39dc6764d11efa00105d81.tar.zst
remarques-67b6f338cfe4da739d39dc6764d11efa00105d81.zip
Created a new Expo app
Diffstat (limited to 'android/app/src/main/java/com/10lesson/MainApplication.java')
-rw-r--r--android/app/src/main/java/com/10lesson/MainApplication.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/android/app/src/main/java/com/10lesson/MainApplication.java b/android/app/src/main/java/com/10lesson/MainApplication.java
new file mode 100644
index 0000000..f69f5d9
--- /dev/null
+++ b/android/app/src/main/java/com/10lesson/MainApplication.java
@@ -0,0 +1,103 @@
+package com.10lesson;
+
+import android.app.Application;
+import android.content.Context;
+import android.content.res.Configuration;
+import androidx.annotation.NonNull;
+
+import com.facebook.react.PackageList;
+import com.facebook.react.ReactApplication;
+import com.facebook.react.ReactInstanceManager;
+import com.facebook.react.ReactNativeHost;
+import com.facebook.react.ReactPackage;
+import com.facebook.soloader.SoLoader;
+
+import expo.modules.ApplicationLifecycleDispatcher;
+import expo.modules.ReactNativeHostWrapper;
+
+import com.facebook.react.bridge.JSIModulePackage;
+import com.swmansion.reanimated.ReanimatedJSIModulePackage;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+
+public class MainApplication extends Application implements ReactApplication {
+ private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(
+ this,
+ new ReactNativeHost(this) {
+ @Override
+ public boolean getUseDeveloperSupport() {
+ return BuildConfig.DEBUG;
+ }
+
+ @Override
+ protected List<ReactPackage> getPackages() {
+ @SuppressWarnings("UnnecessaryLocalVariable")
+ List<ReactPackage> packages = new PackageList(this).getPackages();
+ // Packages that cannot be autolinked yet can be added manually here, for example:
+ // packages.add(new MyReactNativePackage());
+ return packages;
+ }
+
+ @Override
+ protected String getJSMainModuleName() {
+ return "index";
+ }
+
+ @Override
+ protected JSIModulePackage getJSIModulePackage() {
+ return new ReanimatedJSIModulePackage();
+ }
+ });
+
+ @Override
+ public ReactNativeHost getReactNativeHost() {
+ return mReactNativeHost;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ SoLoader.init(this, /* native exopackage */ false);
+
+ initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
+ ApplicationLifecycleDispatcher.onApplicationCreate(this);
+ }
+
+ @Override
+ public void onConfigurationChanged(@NonNull Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);
+ }
+
+ /**
+ * Loads Flipper in React Native templates. Call this in the onCreate method with something like
+ * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
+ *
+ * @param context
+ * @param reactInstanceManager
+ */
+ private static void initializeFlipper(
+ Context context, ReactInstanceManager reactInstanceManager) {
+ if (BuildConfig.DEBUG) {
+ try {
+ /*
+ We use reflection here to pick up the class that initializes Flipper,
+ since Flipper library is not available in release mode
+ */
+ Class<?> aClass = Class.forName("com.10lesson.ReactNativeFlipper");
+ aClass
+ .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
+ .invoke(null, context, reactInstanceManager);
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}