From f07db694372fde5d6e67e2040e6646443859cc6e Mon Sep 17 00:00:00 2001 From: Mark Aron Szulyovszky Date: Thu, 28 Dec 2017 11:25:25 +0100 Subject: [PATCH 1/3] Fix: make sure we only invoke requestPromise once --- .../sbugert/rnadmob/RNAdMobInterstitialAdModule.java | 11 +++++++++-- .../sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java | 10 ++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java b/android/src/main/java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java index 79efff12e..ef40027b4 100644 --- a/android/src/main/java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java +++ b/android/src/main/java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java @@ -81,7 +81,10 @@ public void onAdFailedToLoad(int errorCode) { WritableMap error = Arguments.createMap(); event.putString("message", errorMessage); sendEvent(EVENT_AD_FAILED_TO_LOAD, event); - mRequestAdPromise.reject(errorString, errorMessage); + if (mRequestAdPromise != null) { + mRequestAdPromise.reject(errorString, errorMessage); + mRequestAdPromise = null; + } } @Override public void onAdLeftApplication() { @@ -90,7 +93,10 @@ public void onAdLeftApplication() { @Override public void onAdLoaded() { sendEvent(EVENT_AD_LOADED, null); - mRequestAdPromise.resolve(null); + if (mRequestAdPromise != null) { + mRequestAdPromise.resolve(null); + mRequestAdPromise = null; + } } @Override public void onAdOpened() { @@ -126,6 +132,7 @@ public void run () { if (mInterstitialAd.isLoaded() || mInterstitialAd.isLoading()) { promise.reject("E_AD_ALREADY_LOADED", "Ad is already loaded."); } else { + mRequestAdPromise = promise; AdRequest.Builder adRequestBuilder = new AdRequest.Builder(); if (testDevices != null) { diff --git a/android/src/main/java/com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java b/android/src/main/java/com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java index 6cdfbd192..549c5a851 100644 --- a/android/src/main/java/com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java +++ b/android/src/main/java/com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java @@ -62,7 +62,10 @@ public void onRewarded(RewardItem rewardItem) { @Override public void onRewardedVideoAdLoaded() { sendEvent(EVENT_AD_LOADED, null); - mRequestAdPromise.resolve(null); + if (mRequestAdPromise != null) { + mRequestAdPromise.resolve(null); + mRequestAdPromise = null; + } } @Override @@ -111,7 +114,10 @@ public void onRewardedVideoAdFailedToLoad(int errorCode) { WritableMap error = Arguments.createMap(); event.putString("message", errorMessage); sendEvent(EVENT_AD_FAILED_TO_LOAD, event); - mRequestAdPromise.reject(errorString, errorMessage); + if (mRequestAdPromise != null) { + mRequestAdPromise.reject(errorString, errorMessage); + mRequestAdPromise = null; + } } private void sendEvent(String eventName, @Nullable WritableMap params) { From 23f9ff62590779b40b4e538e9120e577da156d3d Mon Sep 17 00:00:00 2001 From: Mark Aron Szulyovszky Date: Fri, 29 Dec 2017 21:44:30 +0100 Subject: [PATCH 2/3] Fix: check if mRewardedVideoAd is not null before calling .isLoaded() --- .../com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java b/android/src/main/java/com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java index 549c5a851..2b9520373 100644 --- a/android/src/main/java/com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java +++ b/android/src/main/java/com/sbugert/rnadmob/RNAdMobRewardedVideoAdModule.java @@ -170,7 +170,7 @@ public void showAd(final Promise promise) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { - if (mRewardedVideoAd.isLoaded()) { + if (mRewardedVideoAd != null && mRewardedVideoAd.isLoaded()) { mRewardedVideoAd.show(); promise.resolve(null); } else { @@ -185,7 +185,11 @@ public void isReady(final Callback callback) { new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { - callback.invoke(mRewardedVideoAd.isLoaded()); + if (mRewardedVideoAd != null) { + callback.invoke(mRewardedVideoAd.isLoaded()); + } else { + callback.invoke(false); + } } }); } From 2709405b0192d419486ff5c38bc3c0c6edc2c873 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Mon, 16 Sep 2019 00:39:04 +0200 Subject: [PATCH 3/3] remove newline --- .../java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java | 1 - 1 file changed, 1 deletion(-) diff --git a/android/src/main/java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java b/android/src/main/java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java index ef40027b4..9c936e530 100644 --- a/android/src/main/java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java +++ b/android/src/main/java/com/sbugert/rnadmob/RNAdMobInterstitialAdModule.java @@ -132,7 +132,6 @@ public void run () { if (mInterstitialAd.isLoaded() || mInterstitialAd.isLoading()) { promise.reject("E_AD_ALREADY_LOADED", "Ad is already loaded."); } else { - mRequestAdPromise = promise; AdRequest.Builder adRequestBuilder = new AdRequest.Builder(); if (testDevices != null) {