RNNotificationsPackage.java 3.29 KB
Newer Older
Amit Davidi's avatar
Amit Davidi committed
1 2
package com.wix.reactnativenotifications;

yogevbd's avatar
yogevbd committed
3
import android.app.Activity;
4
import android.app.Application;
yogevbd's avatar
yogevbd committed
5 6 7
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
8

Amit Davidi's avatar
Amit Davidi committed
9
import com.facebook.react.ReactPackage;
yogevbd's avatar
yogevbd committed
10
import com.facebook.react.bridge.ActivityEventListener;
Amit Davidi's avatar
Amit Davidi committed
11 12 13
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
yogevbd's avatar
yogevbd committed
14 15 16 17 18 19 20
import com.google.firebase.FirebaseApp;
import com.wix.reactnativenotifications.core.AppLifecycleFacade;
import com.wix.reactnativenotifications.core.AppLifecycleFacadeHolder;
import com.wix.reactnativenotifications.core.notification.IPushNotification;
import com.wix.reactnativenotifications.core.notification.PushNotification;
import com.wix.reactnativenotifications.core.notificationdrawer.IPushNotificationsDrawer;
import com.wix.reactnativenotifications.core.notificationdrawer.PushNotificationsDrawer;
Amit Davidi's avatar
Amit Davidi committed
21 22 23 24

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
yogevbd's avatar
yogevbd committed
25
import java.util.Map;
Amit Davidi's avatar
Amit Davidi committed
26

yogevbd's avatar
yogevbd committed
27 28 29
import static com.wix.reactnativenotifications.Defs.LOGTAG;

public class RNNotificationsPackage implements ReactPackage, AppLifecycleFacade.AppVisibilityListener, Application.ActivityLifecycleCallbacks {
Amit Davidi's avatar
Amit Davidi committed
30

31
    private final Application mApplication;
32 33 34

    public RNNotificationsPackage(Application application) {
        mApplication = application;
yogevbd's avatar
yogevbd committed
35 36 37 38
        FirebaseApp.initializeApp(application.getApplicationContext());

        AppLifecycleFacadeHolder.get().addVisibilityListener(this);
        application.registerActivityLifecycleCallbacks(this);
39 40
    }

Amit Davidi's avatar
Amit Davidi committed
41 42
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
43
        return Arrays.<NativeModule>asList(new RNNotificationsModule(mApplication, reactContext));
Amit Davidi's avatar
Amit Davidi committed
44 45 46 47 48 49
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }
yogevbd's avatar
yogevbd committed
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

    @Override
    public void onAppVisible() {
        final IPushNotificationsDrawer notificationsDrawer = PushNotificationsDrawer.get(mApplication.getApplicationContext());
        notificationsDrawer.onAppVisible();
    }

    @Override
    public void onAppNotVisible() {
    }

    @Override
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
        final IPushNotificationsDrawer notificationsDrawer = PushNotificationsDrawer.get(mApplication.getApplicationContext());
        notificationsDrawer.onNewActivity(activity);

        Bundle notificationData = activity.getIntent().getExtras();
        if (notificationData != null) {
            final IPushNotification pushNotification = PushNotification.get(mApplication.getApplicationContext(), notificationData);
            if (pushNotification != null) {
                pushNotification.onOpened();
            }
        }
    }

    @Override
    public void onActivityStarted(Activity activity) {
    }

    @Override
    public void onActivityResumed(Activity activity) {
    }

    @Override
    public void onActivityPaused(Activity activity) {
    }

    @Override
    public void onActivityStopped(Activity activity) {
    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
    }

    @Override
    public void onActivityDestroyed(Activity activity) {
    }
Amit Davidi's avatar
Amit Davidi committed
98
}