Fix leak in the demo app

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=199448766
This commit is contained in:
aquilescanta 2018-06-06 05:22:55 -07:00 committed by Oliver Woodman
parent 050ee4a0a3
commit 645363059b

View File

@ -136,6 +136,7 @@ public class PlayerActivity extends Activity
private DataSource.Factory mediaDataSourceFactory; private DataSource.Factory mediaDataSourceFactory;
private SimpleExoPlayer player; private SimpleExoPlayer player;
private FrameworkMediaDrm mediaDrm;
private MediaSource mediaSource; private MediaSource mediaSource;
private DefaultTrackSelector trackSelector; private DefaultTrackSelector trackSelector;
private DefaultTrackSelector.Parameters trackSelectorParameters; private DefaultTrackSelector.Parameters trackSelectorParameters;
@ -487,8 +488,9 @@ public class PlayerActivity extends Activity
keyRequestPropertiesArray[i + 1]); keyRequestPropertiesArray[i + 1]);
} }
} }
return new DefaultDrmSessionManager<>( releaseMediaDrm();
uuid, FrameworkMediaDrm.newInstance(uuid), drmCallback, null, multiSession); mediaDrm = FrameworkMediaDrm.newInstance(uuid);
return new DefaultDrmSessionManager<>(uuid, mediaDrm, drmCallback, null, multiSession);
} }
private void releasePlayer() { private void releasePlayer() {
@ -502,6 +504,23 @@ public class PlayerActivity extends Activity
mediaSource = null; mediaSource = null;
trackSelector = null; trackSelector = null;
} }
releaseMediaDrm();
}
private void releaseMediaDrm() {
if (mediaDrm != null) {
mediaDrm.release();
mediaDrm = null;
}
}
private void releaseAdsLoader() {
if (adsLoader != null) {
adsLoader.release();
adsLoader = null;
loadedAdTagUri = null;
playerView.getOverlayFrameLayout().removeAllViews();
}
} }
private void updateTrackSelectorParameters() { private void updateTrackSelectorParameters() {
@ -576,15 +595,6 @@ public class PlayerActivity extends Activity
} }
} }
private void releaseAdsLoader() {
if (adsLoader != null) {
adsLoader.release();
adsLoader = null;
loadedAdTagUri = null;
playerView.getOverlayFrameLayout().removeAllViews();
}
}
// User controls // User controls
private void updateButtonVisibilities() { private void updateButtonVisibilities() {