diff options
| author | Maksymilian Jopek <maks@jopek.eu> | 2021-12-09 23:15:33 +0100 |
|---|---|---|
| committer | Maksymilian Jopek <maks@jopek.eu> | 2021-12-09 23:15:33 +0100 |
| commit | 67b6f338cfe4da739d39dc6764d11efa00105d81 (patch) | |
| tree | 441ff30a8fb783e400ea7c9e600c889e12392eca /android/app/src/main/java/com/10lesson/MainApplication.java | |
| download | remarques-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.java | 103 |
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(); + } + } + } +} |
