From 645363059b5a400f92f9f800b150124b9414c42f Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Wed, 6 Jun 2018 05:22:55 -0700 Subject: [PATCH] Fix leak in the demo app ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=199448766 --- .../exoplayer2/demo/PlayerActivity.java | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 091e483155..565f7e300a 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -136,6 +136,7 @@ public class PlayerActivity extends Activity private DataSource.Factory mediaDataSourceFactory; private SimpleExoPlayer player; + private FrameworkMediaDrm mediaDrm; private MediaSource mediaSource; private DefaultTrackSelector trackSelector; private DefaultTrackSelector.Parameters trackSelectorParameters; @@ -487,8 +488,9 @@ public class PlayerActivity extends Activity keyRequestPropertiesArray[i + 1]); } } - return new DefaultDrmSessionManager<>( - uuid, FrameworkMediaDrm.newInstance(uuid), drmCallback, null, multiSession); + releaseMediaDrm(); + mediaDrm = FrameworkMediaDrm.newInstance(uuid); + return new DefaultDrmSessionManager<>(uuid, mediaDrm, drmCallback, null, multiSession); } private void releasePlayer() { @@ -502,6 +504,23 @@ public class PlayerActivity extends Activity mediaSource = 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() { @@ -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 private void updateButtonVisibilities() {