This repository has been archived by the owner on Apr 27, 2022. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 31
/
RNAdMobRewardedAdModule.java
79 lines (65 loc) · 2.7 KB
/
RNAdMobRewardedAdModule.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.rnadmob.admob.ads.fullscreen;
import static com.rnadmob.admob.RNAdMobEventModule.REWARDED;
import android.app.Activity;
import androidx.annotation.NonNull;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableMap;
import com.google.android.gms.ads.AdLoadCallback;
import com.google.android.gms.ads.FullScreenContentCallback;
import com.google.android.gms.ads.LoadAdError;
import com.google.android.gms.ads.admanager.AdManagerAdRequest;
import com.google.android.gms.ads.rewarded.RewardedAd;
import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback;
public class RNAdMobRewardedAdModule extends RNAdMobFullScreenAdModule<RewardedAd> {
public static final String AD_TYPE = "Rewarded";
public RNAdMobRewardedAdModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
protected String getAdType() {
return AD_TYPE;
}
@Override
@ReactMethod
public void requestAd(int requestId, String unitId, ReadableMap options, final Promise promise) {
super.requestAd(requestId, unitId, options, promise);
}
@Override
@ReactMethod
protected void presentAd(int requestId, final Promise promise) {
super.presentAd(requestId, promise);
}
@Override
@ReactMethod
protected void destroyAd(int requestId) {
super.destroyAd(requestId);
}
@Override
protected void load(String unitId, AdManagerAdRequest adRequest, AdLoadCallback<RewardedAd> adLoadCallback, FullScreenContentCallback fullScreenContentCallback) {
RewardedAd.load(getReactApplicationContext(), unitId, adRequest,
new RewardedAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull RewardedAd ad) {
ad.setFullScreenContentCallback(fullScreenContentCallback);
adLoadCallback.onAdLoaded(ad);
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
adLoadCallback.onAdFailedToLoad(loadAdError);
}
});
}
@Override
protected void show(RewardedAd ad, int requestId) {
ad.show(currentActivity, rewardItem -> {
WritableMap reward = Arguments.createMap();
reward.putInt("amount", rewardItem.getAmount());
reward.putString("type", rewardItem.getType());
sendEvent(REWARDED, requestId, reward);
});
}
}