package com.azerion.bluestack.react.common;

import com.azerion.bluestack.react.interfaces.IContextManager;

import android.app.Activity;
import android.content.Context;
import com.facebook.react.bridge.*;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import javax.annotation.Nonnull;

public class ReactNativeModule extends ReactContextBaseJavaModule implements IContextManager {

    private String moduleName;

    public ReactNativeModule(ReactApplicationContext reactContext, String moduleName) {
        super(reactContext);
        this.moduleName = moduleName;
    }

    public static void rejectPromiseWithCodeAndMessage(Promise promise, String code, String message) {
        WritableMap userInfoMap = Arguments.createMap();
        userInfoMap.putString("code", code);
        userInfoMap.putString("message", message);
        promise.reject(code, message, userInfoMap);
    }

    @Override
    public void initialize() {
        super.initialize();
    }

    public ReactContext getContext() {
        return getReactApplicationContext();
    }

    public Context getApplicationContext() {
        return getReactApplicationContext().getApplicationContext();
    }

    public Activity getActivity() {
        return getCurrentActivity();
    }

    @Nonnull
    @Override
    public String getName() {
        return moduleName;
    }

    @Override
    public Map<String, Object> getConstants() {
        return new HashMap<>();
    }
}
