package com.xg.navigation;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.bridge.ReactContext;
import com.xg.navigation.delegates.BaseDelegate;

import java.util.Collections;
import java.util.List;

public abstract class NavigationApplication extends Application implements ReactApplication {

    protected ReactContext mReactContext;
    public static NavigationApplication instance;

    private final ReactInstanceManager.ReactInstanceEventListener mReactInstanceEventListener =
            new ReactInstanceManager.ReactInstanceEventListener() {
                @Override
                public void onReactContextInitialized(ReactContext context) {
                    mReactContext = context;
                }
            };

    public ReactContext getReactContext() {
        return mReactContext;
    }

    private void registerReactInstanceEventListener() {
        getReactNativeHost().getReactInstanceManager().addReactInstanceEventListener(mReactInstanceEventListener);
    }

    public List<BaseDelegate> getDynamicPage() {
        return Collections.emptyList();
    }

    @Override
    public void onCreate() {
        super.onCreate();

        instance = this;

        registerReactInstanceEventListener();
    }

    public abstract boolean isDebug();
}
