diff --git a/RNIronSourceOfferwall.js b/RNIronSourceOfferwall.js index 2fc1d687..474133fc 100644 --- a/RNIronSourceOfferwall.js +++ b/RNIronSourceOfferwall.js @@ -52,6 +52,7 @@ module.exports = { ...RNIronSourceOfferwall, initializeOfferwall: () => {}, // Deprecated. Here for backwards compatibility with 2.8.0 showOfferwall: () => RNIronSourceOfferwall.showOfferwall(), + setOWCustomParams: (field, paramValue) => RNIronSourceOfferwall.setOWCustomParams(field, paramValue), addEventListener, removeEventListener, removeAllListeners diff --git a/android/src/main/java/co/squaretwo/ironsource/RNIronSourceOfferwallModule.java b/android/src/main/java/co/squaretwo/ironsource/RNIronSourceOfferwallModule.java index f7c6c3de..00b0249d 100644 --- a/android/src/main/java/co/squaretwo/ironsource/RNIronSourceOfferwallModule.java +++ b/android/src/main/java/co/squaretwo/ironsource/RNIronSourceOfferwallModule.java @@ -3,6 +3,8 @@ import android.os.Handler; import android.os.Looper; import android.util.Log; +import java.util.HashMap; +import java.util.Map; import androidx.annotation.Nullable; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.WritableMap; @@ -103,6 +105,8 @@ public void onGetOfferwallCreditsFailed(IronSourceError error) { */ @Override public void onOfferwallClosed() { + Log.d(TAG, "onOfferwallClosed() called!"); + sendEvent("ironSourceOfferwallClosedByUser", null); } }); } @@ -130,6 +134,13 @@ public void run() { }); } + @ReactMethod + public void setOWCustomParams(String field, String paramValue) { + Map owParams = new HashMap(); + owParams.put(field, paramValue); + SupersonicConfig.getConfigObj().setOfferwallCustomParams(owParams); + } + private void sendEvent(String eventName, @Nullable WritableMap params) { getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName, params); } diff --git a/ios/RNIronSourceOfferWall.m b/ios/RNIronSourceOfferWall.m index aa93641a..006e1d86 100644 --- a/ios/RNIronSourceOfferWall.m +++ b/ios/RNIronSourceOfferWall.m @@ -51,7 +51,7 @@ -(void)safeInitializeOfferwall if ([IronSource hasOfferwall]) { NSLog(@"showOfferwall - offerwall available"); [self sendEventWithName:kIronSourceOfferwallAvailable body:nil]; - + dispatch_async(dispatch_get_main_queue(), ^{ [IronSource showOfferwallWithViewController:RCTPresentedViewController()]; }); @@ -61,6 +61,13 @@ -(void)safeInitializeOfferwall } } +RCT_EXPORT_METHOD(setOWCustomParams:(NSString *)field paramValue:(NSString *)paramValue) +{ + NSMutableDictionary * owDic = [[NSMutableDictionary alloc] init]; + owDic[field] = paramValue; + [ISConfigurations configurations].offerwallCustomParameters = owDic; +} + #pragma mark delegate events