UNPKG

react-native-appodeal

Version:

React Native Module created to support Appodeal SDK for iOS and Android platforms

177 lines (176 loc) 5.8 kB
"use strict"; import { NativeModules, NativeEventEmitter, Platform } from "react-native"; const RNAppodeal = NativeModules.RNAppodeal; const dummyHandler = () => { }; const emitter = new NativeEventEmitter(RNAppodeal); const subscriptions = new Map(); const _addEventListener = (event, handler) => { let listener = emitter.addListener(event, handler); subscriptions.set(handler, listener); return { remove: () => _removeEventListener(event, handler) }; }; const _removeEventListener = (event, handler) => { const listener = subscriptions.get(handler); listener.remove(); subscriptions.delete(handler); }; const _removeAllListeners = () => { subscriptions.forEach((listener, key, map) => { listener.remove(); map.delete(key); }); }; const appodeal = { addEventListener: (event, handler) => { _addEventListener(event, handler); }, removeEventListener: (event, handler) => { _removeEventListener(event, handler); }, removeAllListeners: () => { _removeAllListeners(); }, initialize: (appKey, adTypes) => { RNAppodeal.initializeWithAppKey(appKey, adTypes); }, isInitialized: (adTypes) => { return RNAppodeal.isInitialized(adTypes); }, show: (adTypes, placement) => { RNAppodeal.show(adTypes, placement || null); }, isLoaded: (adTypes) => { return RNAppodeal.isLoaded(adTypes); }, canShow: (adTypes, placement) => { return RNAppodeal.canShow(adTypes, placement || null); }, hide: (adTypes) => { RNAppodeal.hide(adTypes); }, cache: (adTypes) => { RNAppodeal.cache(adTypes); }, setAutoCache: (adTypes, value) => { RNAppodeal.setAutoCache(adTypes, value); }, isPrecache: (adTypes) => { return RNAppodeal.isPrecache(adTypes); }, setTabletBanners: (value) => { RNAppodeal.setTabletBanners(value); }, setSmartBanners: (value) => { RNAppodeal.setSmartBanners(value); }, setBannerAnimation: (value) => { RNAppodeal.setBannerAnimation(value); }, consentStatus: () => { return RNAppodeal.consentStatus(); }, revokeConsent: () => { RNAppodeal.revokeConsent(); }, requestConsentInfoUpdate: (appKey) => { return RNAppodeal.requestConsentInfoUpdateWithAppKey(appKey).then((parameters) => parameters.status); }, showConsentFormIfNeeded: () => { return RNAppodeal.showConsentFormIfNeeded().then((parameters) => parameters.status); }, showConsentForm: () => { return RNAppodeal.showConsentForm().then((parameters) => parameters.status); }, setChildDirectedTreatment: (value) => { RNAppodeal.setChildDirectedTreatment(value); }, setTesting: (value) => { RNAppodeal.setTesting(value); }, setLogLevel: (value) => { RNAppodeal.setLogLevel(value); }, setTriggerPrecacheCallbacks: (adTypes, value) => { RNAppodeal.setTriggerPrecacheCallbacks(adTypes, value); }, disableNetwork: (network, adTypes) => { RNAppodeal.disableNetwork(network, adTypes); }, getVersion: () => { return RNAppodeal.getVersion(); }, setUserId: (id) => { RNAppodeal.setUserId(id); }, setExtrasValue: (value, key) => { if (Platform.OS == "ios") { RNAppodeal.setExtrasValue(value, key); } else if (typeof value === "string") { RNAppodeal.setExtrasStringValue(value, key); } else if (typeof value === "number" && Number.isInteger(value)) { RNAppodeal.setExtrasIntegerValue(value, key); } else if (typeof value === "number") { RNAppodeal.setExtrasDoubleValue(value, key); } else if (typeof value === "boolean") { RNAppodeal.setExtrasBooleanValue(value, key); } else if (typeof value === "object") { RNAppodeal.setExtrasMapValue(value, key); } else if (value === null) { RNAppodeal.removeExtrasValue(key); } }, getExtras: () => { return RNAppodeal.getExtras(); }, setCustomStateValue: (value, key) => { if (Platform.OS == "ios") { RNAppodeal.setCustomStateValue(value, key); } else if (typeof value === "string") { RNAppodeal.setCustomStateStringValue(value, key); } else if (typeof value === "number" && Number.isInteger(value)) { RNAppodeal.setCustomStateIntegerValue(value, key); } else if (typeof value === "number") { RNAppodeal.setCustomStateDoubleValue(value, key); } else if (typeof value === "boolean") { RNAppodeal.setCustomStateBooleanValue(value, key); } else if (value === null) { RNAppodeal.removeCustomStateValue(key); } }, getCustomState: () => { return RNAppodeal.getCustomState(); }, getRewardParameters: (placement) => { return RNAppodeal.getRewardParameters(placement); }, predictedEcpm: (adType) => { return RNAppodeal.predictedEcpm(adType); }, trackInAppPurchase: (amount, currency) => { RNAppodeal.trackInAppPurchase(amount, currency); }, validateAndTrackInAppPurchase: (purchase, callback) => { RNAppodeal.validateAndTrackInAppPurchase(purchase, callback || dummyHandler); }, trackEvent: (name, parameters) => { RNAppodeal.trackEvent(name, parameters || null); }, setBidonEndpoint: (endpoint) => { RNAppodeal.setBidonEndpoint(endpoint); }, getBidonEndpoint: () => { return RNAppodeal.getBidonEndpoint(); }, }; export default appodeal;