Files
status-react/android/app/src/main/java/im/status/ethereum/MainApplication.java
T

108 lines
3.8 KiB
Java
Raw Normal View History

2016-11-18 16:49:51 +02:00
package im.status.ethereum;
2019-08-07 15:08:22 +02:00
import androidx.multidex.MultiDexApplication;
2019-08-06 18:16:51 +02:00
import android.util.Log;
2020-05-01 10:20:06 +03:00
import android.content.Context;
import android.webkit.WebView;
2020-05-01 10:20:06 +03:00
import java.lang.reflect.InvocationTargetException;
2019-08-06 18:16:51 +02:00
import com.facebook.react.PackageList;
2019-01-24 14:18:34 +01:00
2017-05-17 16:22:10 +03:00
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
import com.facebook.react.ReactApplication;
2021-08-30 19:51:19 -03:00
import cl.json.RNSharePackage;
import com.facebook.react.ReactNativeHost;
2021-05-24 16:25:05 +02:00
import com.reactnativenavigation.NavigationApplication;
import com.reactnativenavigation.react.NavigationReactNativeHost;
import com.facebook.react.ReactPackage;
2020-05-01 10:20:06 +03:00
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.modules.network.OkHttpClientProvider;
import com.cmcewen.blurview.BlurViewPackage;
import java.util.List;
2019-01-24 14:18:34 +01:00
import im.status.ethereum.keycard.RNStatusKeycardPackage;
import im.status.ethereum.module.StatusPackage;
2020-09-25 15:35:10 +03:00
import im.status.ethereum.pushnotifications.PushNotificationPackage;
import im.status.ethereum.StatusOkHttpClientFactory;
2022-06-28 22:57:14 +05:30
import com.facebook.react.bridge.JSIModulePackage;
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
2021-05-24 16:25:05 +02:00
public class MainApplication extends NavigationApplication {
2021-05-24 16:25:05 +02:00
private final ReactNativeHost mReactNativeHost = new NavigationReactNativeHost(this) {
2017-05-17 16:22:10 +03:00
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
2019-01-24 14:18:34 +01:00
StatusPackage statusPackage = new StatusPackage(RootUtil.isDeviceRooted());
2020-09-25 15:35:10 +03:00
2019-08-06 18:16:51 +02:00
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(statusPackage);
packages.add(new ReactNativeDialogsPackage());
packages.add(new RNStatusKeycardPackage());
2020-09-25 15:35:10 +03:00
packages.add(new PushNotificationPackage());
packages.add(new BlurViewPackage());
2019-08-06 18:16:51 +02:00
return packages;
2017-05-17 16:22:10 +03:00
}
@Override
protected String getJSMainModuleName() {
2019-09-07 14:57:22 +02:00
return "index";
}
2022-06-28 22:57:14 +05:30
@Override
protected JSIModulePackage getJSIModulePackage() {
return new ReanimatedJSIModulePackage();
}
2017-05-17 16:22:10 +03:00
};
@Override
2017-05-17 16:22:10 +03:00
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
OkHttpClientProvider.setOkHttpClientFactory(new StatusOkHttpClientFactory());
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG_WEBVIEW == "1");
2020-05-01 10:20:06 +03:00
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
/**
* 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("im.status.ethereum.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();
}
}
}
}