Skip to content

Commit 007bbb6

Browse files
aymericStanislav Mayorov
authored andcommitted
ADD METHOD isRewardedVideoAvailable
PROMISE ON METHOD FIX SYNTAX FIX SYNTAX IOS UPDATE EXAMPLE, DOC, AND REMOVE CALLBACK IS #42
1 parent 9c4ec2d commit 007bbb6

6 files changed

Lines changed: 65 additions & 6 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
*.moved-aside
44
*.xcuserstate
55
*.xcscmblueprint
6+
.project
7+
.gradle
8+
.settings
69

710
## Obj-C/Swift specific
811
*.hmap

ExampleApp/App.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export default class App extends Component {
4141
});
4242
}
4343

44-
showRewardedVideo = () => {
44+
showRewardedVideo = async () => {
4545
if (!this.state.hasRewardedVideo) {
4646
console.warn('Rewarded video is not available');
4747
}
@@ -55,7 +55,11 @@ export default class App extends Component {
5555
IronSourceRewardedVideo.addEventListener('ironSourceRewardedVideoClosedByUser', onClose);
5656
IronSourceRewardedVideo.addEventListener('ironSourceRewardedVideoClosedByError', onClose);
5757

58-
IronSourceRewardedVideo.showRewardedVideo();
58+
if (await IronSourceRewardedVideo.isRewardedVideoAvailable()) {
59+
IronSourceRewardedVideo.showRewardedVideo();
60+
} else {
61+
console.warn('No Video available');
62+
}
5963
};
6064

6165

README.md

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,18 @@ IronSourceInterstitials.addEventListener('interstitialDidLoad', () => {
152152
```javascript
153153
import { IronSourceRewardedVideo } from '@wowmaking/react-native-iron-source';
154154

155+
155156
IronSourceRewardedVideo.initializeRewardedVideo();
156-
IronSourceRewardedVideo.showRewardedVideo();
157-
IronSourceRewardedVideo.addEventListener('ironSourceRewardedVideoAdRewarded', res => {
158-
console.warn('Rewarded!', res)
159-
});
157+
IronSourceRewardedVideo.isVideoRewardAvailable().then((available) => {
158+
if (available) {
159+
IronSourceRewardedVideo.showRewardedVideo();
160+
IronSourceRewardedVideo.addEventListener('ironSourceRewardedVideoAdRewarded', res => {
161+
console.warn('Rewarded!', res)
162+
});
163+
} else {
164+
throw new Error('No video available');
165+
}
166+
})
160167
```
161168
### Banner
162169

@@ -269,6 +276,20 @@ Makes currently existing segment active. Once it's active IronSource SDK will us
269276
segment.activate();
270277
```
271278

279+
### IronSourceRewardedVideo.isRewardedVideoAvailable
280+
Check if a reward video is available to be shown.
281+
Return a Promise resolving a boolean.
282+
283+
```javascript
284+
ironSourceRewardedVideo.isRewardedVideoAvailable().then((available) => {
285+
if (available) {
286+
// Video available
287+
} else {
288+
// Video not available
289+
}
290+
});
291+
```
292+
272293
## Events
273294

274295
### Banner events

RNIronSourceRewardedVideo.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,18 @@ const removeAllListeners = () => {
6060
IronSourceRewardedVideoEventEmitter.removeAllListeners('ironSourceRewardedVideoAdRewarded');
6161
};
6262

63+
isRewardedVideoAvailable = async () => {
64+
const timeoutTime = 5000;
65+
setTimeout(() => Promise.reject(new Error(`Timeout isRewardedVideoAvailable: timeout: ${timeoutTime}`))
66+
, timeoutTime);
67+
return RNIronSourceRewardedVideo.isRewardedVideoAvailable();
68+
}
69+
6370
module.exports = {
6471
...RNIronSourceRewardedVideo,
6572
initializeRewardedVideo: () => RNIronSourceRewardedVideo.initializeRewardedVideo(),
6673
showRewardedVideo: (placementName) => RNIronSourceRewardedVideo.showRewardedVideo(placementName),
74+
isRewardedVideoAvailable: () => RNIronSourceRewardedVideo.isRewardedVideoAvailable(),
6775
setDynamicUserId: (userId) => RNIronSourceRewardedVideo.setDynamicUserId(userId),
6876
addEventListener,
6977
removeEventListener,

android/src/main/java/co/squaretwo/ironsource/RNIronSourceRewardedVideoModule.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,18 @@ public void run() {
128128
});
129129
}
130130

131+
@ReactMethod
132+
public void isRewardedVideoAvailable(Promise promise) {
133+
try {
134+
Log.d(TAG, "isRewardedVideo() called!!");
135+
promise.resolve(IronSource.isRewardedVideoAvailable());
136+
}
137+
catch (Exception e) {
138+
Log.d(TAG, "isRewardedVideo error %s", e);
139+
promise.reject("isRewardedVideoAvailable, Error, " + e);
140+
}
141+
}
142+
131143
@ReactMethod
132144
public void setDynamicUserId(String userId) {
133145
IronSource.setDynamicUserId(userId);

ios/RNIronSourceRewardedVideo.m

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,17 @@ - (dispatch_queue_t)methodQueue
6464
}
6565
}
6666

67+
RCT_EXPORT_METHOD(isRewardedVideoAvailable:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
68+
{
69+
@try {
70+
resolve([IronSource hasRewardedVideo]);
71+
}
72+
@catch (NSException *exception) {
73+
NSLog(@"isRewardedVideoAvailable, Error, %@", exception.reason);
74+
reject(@"isRewardedVideoAvailable, Error, %@", exception.reason);
75+
}
76+
}
77+
6778
RCT_EXPORT_METHOD(setDynamicUserId:(NSString*)userId)
6879
{
6980
[IronSource setDynamicUserId:userId];

0 commit comments

Comments
 (0)