From 9f89dee9b8d00d903d98c589bbaaff788d57d309 Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Tue, 8 Oct 2024 15:11:02 -0700 Subject: [PATCH 1/2] ++ --- .../video_player/video_player_android/CHANGELOG.md | 7 +++++++ .../io/flutter/plugins/videoplayer/VideoPlayer.java | 4 ++++ .../flutter/plugins/videoplayer/VideoPlayerTest.java | 12 ++++++++++++ .../video_player/video_player_android/pubspec.yaml | 2 +- 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/video_player/video_player_android/CHANGELOG.md b/packages/video_player/video_player_android/CHANGELOG.md index 51babe13a6f5..67cab5afea0f 100644 --- a/packages/video_player/video_player_android/CHANGELOG.md +++ b/packages/video_player/video_player_android/CHANGELOG.md @@ -1,3 +1,10 @@ +## 2.7.11 + +* Fixes a [bug](https://github.com/flutter/flutter/issues/156158) where a + harmless but annoying warning in the form of a native stack trace would be + printed when a previously disposed video player received a trim memory event + (i.e. by backgrounding). + ## 2.7.10 * Fixes a [bug](https://github.com/flutter/flutter/issues/156158) where diff --git a/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java b/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java index 12f7c9264f31..4dfd8b19be1d 100644 --- a/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java +++ b/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java @@ -162,5 +162,9 @@ long getPosition() { void dispose() { exoPlayer.release(); surfaceProducer.release(); + + // TODO(matanlurey): Remove when embedder no longer calls-back once released. + // https://github.com/flutter/flutter/issues/156434. + surfaceProducer.setCallback(null); } } diff --git a/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java b/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java index b741ab2f269c..2e89447d1fd0 100644 --- a/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java +++ b/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java @@ -5,6 +5,8 @@ package io.flutter.plugins.videoplayer; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; @@ -200,6 +202,16 @@ public void onSurfaceProducerDestroyedAndRecreatedReleasesAndThenRecreatesAndRes videoPlayer.dispose(); } + @Test + public void onDisposeSurfaceProducerCallbackIsDisconnected() { + // Regression test for https://github.com/flutter/flutter/issues/156158. + VideoPlayer videoPlayer = createVideoPlayer(); + verify(mockProducer).setCallback(any()); + + videoPlayer.dispose(); + verify(mockProducer).setCallback(null); + } + @Test public void onInitializedCalledWhenVideoPlayerInitiallyCreated() { VideoPlayer videoPlayer = createVideoPlayer(); diff --git a/packages/video_player/video_player_android/pubspec.yaml b/packages/video_player/video_player_android/pubspec.yaml index 26367b06fc3d..f4dc04177fa1 100644 --- a/packages/video_player/video_player_android/pubspec.yaml +++ b/packages/video_player/video_player_android/pubspec.yaml @@ -2,7 +2,7 @@ name: video_player_android description: Android implementation of the video_player plugin. repository: https://github.com/flutter/packages/tree/main/packages/video_player/video_player_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22 -version: 2.7.10 +version: 2.7.11 environment: sdk: ^3.5.0 From a20c74733e22b897b2ba564256dcc558c5602bf0 Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Tue, 8 Oct 2024 15:11:50 -0700 Subject: [PATCH 2/2] ++ --- .../java/io/flutter/plugins/videoplayer/VideoPlayerTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java b/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java index 2e89447d1fd0..600e0c79c4b5 100644 --- a/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java +++ b/packages/video_player/video_player_android/android/src/test/java/io/flutter/plugins/videoplayer/VideoPlayerTest.java @@ -5,8 +5,6 @@ package io.flutter.plugins.videoplayer; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*;