From 68eb7eb8df0aca4128bfc9be230c21e843bac514 Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 26 May 2021 12:34:36 +0100 Subject: [PATCH] Fix StyledPlayerView detachment Issue: #8985 #minor-release PiperOrigin-RevId: 375913914 --- RELEASENOTES.md | 4 ++++ .../com/google/android/exoplayer2/ui/StyledPlayerView.java | 1 + 2 files changed, 5 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index d6557f7694..a692eaf774 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -19,6 +19,10 @@ * Keep subtitle language features embedded (e.g. rubies & tate-chu-yoko) in `Cue.text` even when `SubtitleView#setApplyEmbeddedStyles()` is false. +* UI + * Fix `NullPointerException` in `StyledPlayerView` that could occur after + calling `StyledPlayerView.setPlayer(null)` + ([#8985](https://github.com/google/ExoPlayer/issues/8985)). ### 2.14.0 (2021-05-13) diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java index 3f0872b7a4..e626a1c54f 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java @@ -570,6 +570,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider { } @Nullable Player oldPlayer = this.player; if (oldPlayer != null) { + oldPlayer.removeListener(componentListener); if (surfaceView instanceof TextureView) { oldPlayer.clearVideoTextureView((TextureView) surfaceView); } else if (surfaceView instanceof SurfaceView) {