[admob] Support 11.0 VideoController methods

This commit is contained in:
Elliot Hesp
2017-06-20 12:19:26 +01:00
parent 02be8a0d84
commit 54bf957cb3
9 changed files with 160 additions and 18 deletions

View File

@@ -208,9 +208,6 @@ public class RNFirebaseAdMobBanner extends SimpleViewManager<ReactViewGroup> {
payload.putBoolean(RNFirebaseAdMobNativeExpress.Events.EVENT_AD_VIDEO_CONTENT.toString(), false);
payload.putInt("width", width);
payload.putInt("height", height);
payload.putInt("left", left);
payload.putInt("top", top);
sendEvent(Events.EVENT_AD_LOADED.toString(), payload);
}

View File

@@ -34,6 +34,10 @@ public class RNFirebaseAdMobNativeExpress extends SimpleViewManager<ReactViewGro
EVENT_AD_CLOSED("onAdClosed"),
EVENT_AD_LEFT_APPLICATION("onAdLeftApplication"),
EVENT_AD_VIDEO_END("onVideoEnd"),
EVENT_AD_VIDEO_MUTE("onVideoMute"),
EVENT_AD_VIDEO_PAUSE("onVideoPause"),
EVENT_AD_VIDEO_PLAY("onVideoPlay"),
EVENT_AD_VIDEO_START("onVideoStart"),
EVENT_AD_VIDEO_CONTENT("hasVideoContent");
private final String event;
@@ -213,23 +217,35 @@ public class RNFirebaseAdMobNativeExpress extends SimpleViewManager<ReactViewGro
adView.layout(left, top, left + width, top + height);
VideoController vc = adView.getVideoController();
WritableMap payload = Arguments.createMap();
final WritableMap payload = Arguments.createMap();
payload.putBoolean(Events.EVENT_AD_VIDEO_CONTENT.toString(), vc.hasVideoContent());
payload.putInt("width", width);
payload.putInt("height", height);
payload.putInt("left", left);
payload.putInt("top", top);
sendEvent(Events.EVENT_AD_LOADED.toString(), payload);
if (vc.hasVideoContent()) {
vc.setVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks() {
public void onVideoEnd() {
sendEvent(Events.EVENT_AD_VIDEO_END.toString(), null);
}
public void onVideoMute(boolean isMuted) {
WritableMap videoMutePayload = Arguments.createMap();
videoMutePayload.putBoolean("isMuted", isMuted);
sendEvent(Events.EVENT_AD_VIDEO_MUTE.toString(), videoMutePayload);
}
public void onVideoPause() {
sendEvent(Events.EVENT_AD_VIDEO_PAUSE.toString(), null);
}
public void onVideoPlay() {
sendEvent(Events.EVENT_AD_VIDEO_PLAY.toString(), null);
}
public void onVideoStart() {
sendEvent(Events.EVENT_AD_VIDEO_START.toString(), null);
}
});
}
sendEvent(Events.EVENT_AD_LOADED.toString(), payload);
}
@Override