package com.mattermost; import android.app.Application; import android.util.Log; import android.support.annotation.NonNull; import android.content.Context; import android.os.Bundle; import com.facebook.react.ReactApplication; 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 { 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(MainApplication.this) ); } @Override public void onCreate() { super.onCreate(); // Create an object of the custom facade impl notificationsLifecycleFacade = new NotificationsLifecycleFacade(); // 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() ); } }