package com.mattermost.rnbeta; import android.app.Application; import android.support.annotation.NonNull; import android.content.Context; import android.os.Bundle; import com.facebook.react.ReactApplication; import com.inprogress.reactnativeyoutube.ReactNativeYouTube; import io.sentry.RNSentryPackage; import com.masteratul.exceptionhandler.ReactNativeExceptionHandlerPackage; import com.RNFetchBlob.RNFetchBlobPackage; import com.gantix.JailMonkey.JailMonkeyPackage; import io.tradle.react.LocalAuthPackage; import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.shell.MainReactPackage; import com.facebook.soloader.SoLoader; import com.imagepicker.ImagePickerPackage; import com.gnet.bottomsheet.RNBottomSheetPackage; import com.learnium.RNDeviceInfo.RNDeviceInfo; import com.psykar.cookiemanager.CookieManagerPackage; import com.oblador.vectoricons.VectorIconsPackage; import com.horcrux.svg.SvgPackage; import com.BV.LinearGradient.LinearGradientPackage; import com.github.yamill.orientation.OrientationPackage; import com.reactnativenavigation.NavigationApplication; import com.wix.reactnativenotifications.RNNotificationsPackage; import com.wix.reactnativenotifications.core.notification.INotificationsApplication; import com.wix.reactnativenotifications.core.notification.IPushNotification; import com.wix.reactnativenotifications.core.AppLaunchHelper; import com.wix.reactnativenotifications.core.AppLifecycleFacade; import com.wix.reactnativenotifications.core.JsIOHelper; import java.util.Arrays; import java.util.List; public class MainApplication extends NavigationApplication implements INotificationsApplication { public NotificationsLifecycleFacade notificationsLifecycleFacade; @Override public boolean isDebug() { return BuildConfig.DEBUG; } @NonNull @Override public List createAdditionalReactPackages() { // Add the packages you require here. // No need to add RnnPackage and MainReactPackage return Arrays.asList( new ImagePickerPackage(), new RNBottomSheetPackage(), new RNDeviceInfo(), new CookieManagerPackage(), new VectorIconsPackage(), new SvgPackage(), new LinearGradientPackage(), new OrientationPackage(), new RNNotificationsPackage(this), new LocalAuthPackage(), new JailMonkeyPackage(), new RNFetchBlobPackage(), new MattermostPackage(this), new RNSentryPackage(this), new ReactNativeExceptionHandlerPackage(), new ReactNativeYouTube() ); } @Override public void onCreate() { super.onCreate(); instance = this; // Create an object of the custom facade impl notificationsLifecycleFacade = NotificationsLifecycleFacade.getInstance(); // Attach it to react-native-navigation setActivityCallbacks(notificationsLifecycleFacade); SoLoader.init(this, /* native exopackage */ false); } @Override public IPushNotification getPushNotification(Context context, Bundle bundle, AppLifecycleFacade defaultFacade, AppLaunchHelper defaultAppLaunchHelper) { return new CustomPushNotification( context, bundle, notificationsLifecycleFacade, // Instead of defaultFacade!!! defaultAppLaunchHelper, new JsIOHelper() ); } }