package com.moonmiles;

import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import com.moonmiles.bridge.apm.APMServicesModule;
import com.moonmiles.bridge.apm.configuration.APMServicesConfigModule;
import com.moonmiles.bridge.apm.service.ad.APMServicesAdModule;
import com.moonmiles.bridge.apm.service.generosity.APMServicesGenerosityModule;
import com.moonmiles.bridge.apm.service.gift.APMServicesGiftModule;
import com.moonmiles.bridge.apm.service.log.APMServicesLogModule;
import com.moonmiles.bridge.apm.service.page.APMServicesPageModule;
import com.moonmiles.bridge.apm.service.partner.APMServicesPartnerModule;
import com.moonmiles.bridge.apm.service.statistic.APMServicesStatisticModule;
import com.moonmiles.bridge.apm.service.store.APMServicesStoreModule;
import com.moonmiles.bridge.apm.service.user.APMServicesUserModule;

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

public class APMReactPackage implements ReactPackage
{
    //@Override
    public List<Class<? extends JavaScriptModule>> createJSModules()
    {
        return Collections.emptyList();
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext)
    {
        return Collections.emptyList();
    }

    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext)
    {
        List<NativeModule> modules = new ArrayList<>();

        modules.add(new APMServicesModule(reactContext));
        modules.add(new APMServicesAdModule(reactContext));
        modules.add(new APMServicesGenerosityModule(reactContext));
        modules.add(new APMServicesGiftModule(reactContext));
        modules.add(new APMServicesLogModule(reactContext));
        modules.add(new APMServicesPageModule(reactContext));
        modules.add(new APMServicesPartnerModule(reactContext));
        modules.add(new APMServicesStatisticModule(reactContext));
        modules.add(new APMServicesStoreModule(reactContext));
        modules.add(new APMServicesUserModule(reactContext));
        modules.add(new APMServicesConfigModule(reactContext));

        return modules;
    }

}
