RNNotificationsPackage.java 3.39 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

    @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);

yogevbd's avatar
yogevbd committed
66 67 68 69 70 71 72 73
        Intent intent = activity.getIntent();
        if (intent != null) {
            Bundle notificationData = intent.getExtras();
            if (notificationData != null) {
                final IPushNotification pushNotification = PushNotification.get(mApplication.getApplicationContext(), notificationData);
                if (pushNotification != null) {
                    pushNotification.onOpened();
                }
yogevbd's avatar
yogevbd committed
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
            }
        }
    }

    @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
101
}