-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathInterstitialJavaActivity.java
220 lines (171 loc) · 7.14 KB
/
InterstitialJavaActivity.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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
package io.bidmachine.examples;
import android.os.Bundle;
import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.bidmachine.AdContentType;
import io.bidmachine.BidMachine;
import io.bidmachine.examples.base.BaseJavaExampleActivity;
import io.bidmachine.examples.base.Status;
import io.bidmachine.examples.databinding.ActivityInterstitialBinding;
import io.bidmachine.interstitial.InterstitialAd;
import io.bidmachine.interstitial.InterstitialRequest;
import io.bidmachine.interstitial.SimpleInterstitialListener;
import io.bidmachine.utils.BMError;
public class InterstitialJavaActivity extends BaseJavaExampleActivity<ActivityInterstitialBinding> {
@Nullable
private InterstitialAd interstitialAd;
@Nullable
private InterstitialAd videoAd;
@Nullable
private InterstitialAd delayedShowInterstitialAd;
@NonNull
@Override
protected ActivityInterstitialBinding inflate(@NonNull LayoutInflater inflater) {
return ActivityInterstitialBinding.inflate(inflater);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initialise SDK
BidMachine.initialize(this, SOURCE_ID);
// Enable logs
BidMachine.setLoggingEnabled(true);
// Set listeners to perform Ads load
binding.bShowInterstitial.setOnClickListener(v -> showInterstitial());
binding.bShowVideo.setOnClickListener(v -> showVideo());
binding.bLoadInterstitial.setOnClickListener(v -> loadInterstitial());
binding.bShowLoadedInterstitial.setOnClickListener(v -> showLoadedInterstitial());
}
private void showInterstitial() {
setDebugState(Status.Loading);
// Destroy previous loaded InterstitialAd
destroyInterstitialAd();
// Create new InterstitialRequest
InterstitialRequest interstitialRequest = new InterstitialRequest.Builder().build();
// Create new InterstitialAd
interstitialAd = new InterstitialAd(this);
// Set InterstitialAd events listener
interstitialAd.setListener(new SimpleInterstitialListener() {
@Override
public void onAdLoaded(@NonNull InterstitialAd ad) {
setDebugState(Status.Loaded, "Interstitial Ads Loaded");
// Show Interstitial Ad
ad.show();
}
@Override
public void onAdLoadFailed(@NonNull InterstitialAd ad, @NonNull BMError error) {
setDebugState(Status.LoadFail, "Interstitial Ads Load Failed");
// Destroy loaded ad since it not required any more
destroyInterstitialAd();
}
@Override
public void onAdClosed(@NonNull InterstitialAd ad, boolean finished) {
setDebugState(Status.Closed, "Interstitial Ads Closed");
// Destroy loaded ad since it not required any more
destroyInterstitialAd();
}
});
// Load InterstitialAd
interstitialAd.load(interstitialRequest);
}
private void showVideo() {
setDebugState(Status.Loading);
// Destroy previous loaded InterstitialAd for Video
destroyVideoAd();
// Create new InterstitialRequest for Video
InterstitialRequest interstitialRequest = new InterstitialRequest.Builder()
.setAdContentType(AdContentType.Video) // Set required Interstitial content type
.build();
// Create new InterstitialAd for Video
videoAd = new InterstitialAd(this);
// Set InterstitialAd for Video events listener
videoAd.setListener(new SimpleInterstitialListener() {
@Override
public void onAdLoaded(@NonNull InterstitialAd ad) {
setDebugState(Status.Loaded, "Interstitial Ads Loaded");
// Show Interstitial Ad for Video
ad.show();
}
@Override
public void onAdLoadFailed(@NonNull InterstitialAd ad, @NonNull BMError error) {
setDebugState(Status.LoadFail, "Interstitial Ads Load Failed");
// Destroy loaded ad since it not required any more
destroyVideoAd();
}
@Override
public void onAdClosed(@NonNull InterstitialAd ad, boolean finished) {
setDebugState(Status.Closed, "Interstitial Ads Closed");
// Destroy loaded ad since it not required any more
destroyVideoAd();
}
});
// Load InterstitialAd for Video
videoAd.load(interstitialRequest);
}
private void loadInterstitial() {
setDebugState(Status.Loading);
// Destroy previous loaded Interstitial Ads
destroyDelayedShowInterstitial();
// Create new InterstitialRequest
InterstitialRequest interstitialRequest = new InterstitialRequest.Builder().build();
// Create new InterstitialAd
delayedShowInterstitialAd = new InterstitialAd(this);
// Set InterstitialAd events listener
delayedShowInterstitialAd.setListener(new SimpleInterstitialListener() {
@Override
public void onAdLoaded(@NonNull InterstitialAd ad) {
setDebugState(Status.Loaded, "Interstitial Ads Loaded");
}
@Override
public void onAdLoadFailed(@NonNull InterstitialAd ad, @NonNull BMError error) {
setDebugState(Status.LoadFail, "Interstitial Ads Load Failed");
// Destroy loaded ad since it not required any more
destroyDelayedShowInterstitial();
}
@Override
public void onAdClosed(@NonNull InterstitialAd ad, boolean finished) {
setDebugState(Status.Closed, "Interstitial Ads Closed");
// Destroy loaded ad since it not required any more
destroyDelayedShowInterstitial();
}
});
// Load InterstitialAd
delayedShowInterstitialAd.load(interstitialRequest);
}
@Override
protected void onDestroy() {
super.onDestroy();
// Destroy Ads when you finish with it
destroyInterstitialAd();
destroyVideoAd();
destroyDelayedShowInterstitial();
}
private void destroyInterstitialAd() {
if (interstitialAd != null) {
interstitialAd.destroy();
interstitialAd = null;
}
}
private void destroyVideoAd() {
if (videoAd != null) {
videoAd.destroy();
videoAd = null;
}
}
private void destroyDelayedShowInterstitial() {
if (delayedShowInterstitialAd != null) {
delayedShowInterstitialAd.destroy();
delayedShowInterstitialAd = null;
}
}
private void showLoadedInterstitial() {
if (delayedShowInterstitialAd == null) {
toast("Load Interstitial First");
} else if (!delayedShowInterstitialAd.isLoaded()) {
toast("Interstitial not Loaded yet");
} else {
delayedShowInterstitialAd.show();
}
}
}