feat: add onAdError event listener (#3381)
* feat: add onAdError event listener * feat: remove onAdError event listener and use already existing * feat: add ERROR event to docs
This commit is contained in:
committed by
GitHub
parent
4d9334b477
commit
596c02d2b3
@@ -54,6 +54,10 @@ public class ImaAdsLoader implements AdsLoader {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setAdErrorListener(Object ignoredReactExoplayerView) {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ImaAdsLoader build() {
|
||||
return null;
|
||||
}
|
||||
|
@@ -12,6 +12,7 @@ import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
||||
import com.google.ads.interactivemedia.v3.api.AdError;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
@@ -434,6 +435,19 @@ public class VideoEventEmitter {
|
||||
receiveEvent(EVENT_ON_RECEIVE_AD_EVENT, map);
|
||||
}
|
||||
|
||||
public void receiveAdErrorEvent(AdError error) {
|
||||
WritableMap map = Arguments.createMap();
|
||||
map.putString("event", "ERROR");
|
||||
|
||||
WritableMap dataMap = Arguments.createMap();
|
||||
dataMap.putString("message", error.getMessage());
|
||||
dataMap.putString("code", String.valueOf(error.getErrorCode()));
|
||||
dataMap.putString("type", String.valueOf(error.getErrorType()));
|
||||
map.putMap("data", dataMap);
|
||||
|
||||
receiveEvent(EVENT_ON_RECEIVE_AD_EVENT, map);
|
||||
}
|
||||
|
||||
private void receiveEvent(@VideoEvents String type, WritableMap event) {
|
||||
eventEmitter.receiveEvent(viewId, type, event);
|
||||
}
|
||||
|
@@ -108,6 +108,7 @@ import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.UiThreadUtil;
|
||||
import com.facebook.react.uimanager.ThemedReactContext;
|
||||
import com.google.ads.interactivemedia.v3.api.AdEvent;
|
||||
import com.google.ads.interactivemedia.v3.api.AdErrorEvent;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import java.net.CookieHandler;
|
||||
@@ -132,7 +133,8 @@ public class ReactExoplayerView extends FrameLayout implements
|
||||
BandwidthMeter.EventListener,
|
||||
BecomingNoisyListener,
|
||||
DrmSessionEventListener,
|
||||
AdEvent.AdEventListener {
|
||||
AdEvent.AdEventListener,
|
||||
AdErrorEvent.AdErrorListener {
|
||||
|
||||
public static final double DEFAULT_MAX_HEAP_ALLOCATION_PERCENT = 1;
|
||||
public static final double DEFAULT_MIN_BACK_BUFFER_MEMORY_RESERVE = 0;
|
||||
@@ -621,8 +623,10 @@ public class ReactExoplayerView extends FrameLayout implements
|
||||
.setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF);
|
||||
|
||||
// Create an AdsLoader.
|
||||
adsLoader = new ImaAdsLoader.Builder(themedReactContext)
|
||||
adsLoader = new ImaAdsLoader
|
||||
.Builder(themedReactContext)
|
||||
.setAdEventListener(this)
|
||||
.setAdErrorListener(this)
|
||||
.build();
|
||||
|
||||
DefaultMediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(mediaDataSourceFactory);
|
||||
@@ -2103,4 +2107,9 @@ public class ReactExoplayerView extends FrameLayout implements
|
||||
eventEmitter.receiveAdEvent(adEvent.getType().name());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdError(AdErrorEvent adErrorEvent) {
|
||||
eventEmitter.receiveAdErrorEvent(adErrorEvent.getError());
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,10 @@
|
||||
package com.google.ads.interactivemedia.v3.api;
|
||||
|
||||
import androidx.annotation.InspectableProperty;
|
||||
|
||||
public abstract class AdError {
|
||||
public abstract InspectableProperty getErrorCode();
|
||||
public abstract InspectableProperty getErrorCodeNumber();
|
||||
public abstract InspectableProperty getErrorType();
|
||||
public abstract String getMessage();
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
package com.google.ads.interactivemedia.v3.api;
|
||||
|
||||
public abstract class AdErrorEvent {
|
||||
public abstract AdError getError();
|
||||
|
||||
public interface AdErrorListener {
|
||||
public void onAdError(AdErrorEvent adErrorEvent);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user