Skip to content

Commit

Permalink
ETPAND-9755: Fix CSAI overlay detection crash (#52)
Browse files Browse the repository at this point in the history
Fix crash caused by react element being destroyed.
  • Loading branch information
armands-malejevs authored Mar 21, 2023
1 parent 4b12e45 commit 9c71e44
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -112,11 +112,13 @@ public List<AdOverlayInfo> getAdOverlayInfos() {
View rootView = getRootView();
if (rootView != null) {
View controlsView = ReactFindViewUtil.findView(rootView, "velocity-controls-package");
overlayViews.add(
new AdOverlayInfo(
controlsView,
AdOverlayInfo.PURPOSE_NOT_VISIBLE,
/* detailedReason= */ "Controls overlay does not impact viewability"));
if (controlsView != null) {
overlayViews.add(
new AdOverlayInfo(
controlsView,
AdOverlayInfo.PURPOSE_NOT_VISIBLE,
/* detailedReason= */ "Controls overlay does not impact viewability"));
}
} else {
Log.w("ExoPlayerView", "Could not determine React Root View!");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,14 +338,7 @@ private void createViews() {
// Add Exoplayer view
addView(exoPlayerView, 0, layoutParams);

imaSettings = ImaSdkFactory.getInstance().createImaSdkSettings();
imaSettings.setLanguage(uiLanguage);
adsLoader = new ImaAdsLoader.Builder(getContext())
.setAdEventListener(this)
.setImaSdkSettings(imaSettings)
.build();
mainHandler = new Handler();

}

private WritableMap getAdInfo() {
Expand Down Expand Up @@ -771,6 +764,17 @@ private void removePassedSegments() {
}

private void initializePlayerCore(ReactExoplayerView self) {

// Init Ads Loader
if (self.isCSAIEnabled) {
imaSettings = ImaSdkFactory.getInstance().createImaSdkSettings();
imaSettings.setLanguage(uiLanguage);
adsLoader = new ImaAdsLoader.Builder(getContext())
.setAdEventListener(this)
.setImaSdkSettings(imaSettings)
.build();
}

ExoTrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory();
self.trackSelector = new DefaultTrackSelector(getContext(), videoTrackSelectionFactory);
self.trackSelector.setParameters(trackSelector.buildUponParameters()
Expand Down Expand Up @@ -1056,6 +1060,12 @@ private MediaSource buildTextSource(String title, Uri uri, String mimeType, Stri
}

private void releasePlayer() {
if (adsLoader != null) {
adsLoader.setPlayer(null);
adsLoader.release();
adsLoader = null;
imaSettings = null;
}
if (player != null) {
updateResumePosition();
player.setPlayWhenReady(false);
Expand All @@ -1065,7 +1075,6 @@ private void releasePlayer() {
player.removeListener(this);
trackSelector = null;
player = null;
adsLoader.setPlayer(null);
exoPlayerView.setPlayer(null);
if (playerControlView != null) {
playerControlView.setPlayer(null);
Expand Down

0 comments on commit 9c71e44

Please sign in to comment.