From fd3fdfdfedd0bf8227ce4e44c0d5e5182fe8f862 Mon Sep 17 00:00:00 2001 From: Insun Kang Date: Tue, 23 Jan 2018 15:01:37 +0900 Subject: Release MediaSession when VideoView2 is detached from window. Test: build Change-Id: I36baae35cc8196e3fa2fc9f9bdda4219ffaf863d --- core/java/android/widget/MediaControlView2.java | 19 +++++++++++++++++++ core/java/android/widget/VideoView2.java | 20 ++++++++++++++++++++ media/java/android/media/update/ViewProvider.java | 2 ++ 3 files changed, 41 insertions(+) diff --git a/core/java/android/widget/MediaControlView2.java b/core/java/android/widget/MediaControlView2.java index 6e85ece291b2..0aa2b64dfc4a 100644 --- a/core/java/android/widget/MediaControlView2.java +++ b/core/java/android/widget/MediaControlView2.java @@ -157,6 +157,15 @@ public class MediaControlView2 extends FrameLayout { mProvider.hideSubtitle_impl(); } + @Override + protected void onAttachedToWindow() { + mProvider.onAttachedToWindow_impl(); + } + @Override + protected void onDetachedFromWindow() { + mProvider.onDetachedFromWindow_impl(); + } + @Override public CharSequence getAccessibilityClassName() { return mProvider.getAccessibilityClassName_impl(); @@ -193,6 +202,16 @@ public class MediaControlView2 extends FrameLayout { } private class SuperProvider implements ViewProvider { + @Override + public void onAttachedToWindow_impl() { + MediaControlView2.super.onAttachedToWindow(); + } + + @Override + public void onDetachedFromWindow_impl() { + MediaControlView2.super.onDetachedFromWindow(); + } + @Override public CharSequence getAccessibilityClassName_impl() { return MediaControlView2.super.getAccessibilityClassName(); diff --git a/core/java/android/widget/VideoView2.java b/core/java/android/widget/VideoView2.java index 955f0532471a..f4a4ea921415 100644 --- a/core/java/android/widget/VideoView2.java +++ b/core/java/android/widget/VideoView2.java @@ -368,6 +368,16 @@ public class VideoView2 extends FrameLayout { void onInfo(int what, int extra); } + @Override + protected void onAttachedToWindow() { + mProvider.onAttachedToWindow_impl(); + } + + @Override + protected void onDetachedFromWindow() { + mProvider.onDetachedFromWindow_impl(); + } + @Override public CharSequence getAccessibilityClassName() { return mProvider.getAccessibilityClassName_impl(); @@ -404,6 +414,16 @@ public class VideoView2 extends FrameLayout { } private class SuperProvider implements ViewProvider { + @Override + public void onAttachedToWindow_impl() { + VideoView2.super.onAttachedToWindow(); + } + + @Override + public void onDetachedFromWindow_impl() { + VideoView2.super.onDetachedFromWindow(); + } + @Override public CharSequence getAccessibilityClassName_impl() { return VideoView2.super.getAccessibilityClassName(); diff --git a/media/java/android/media/update/ViewProvider.java b/media/java/android/media/update/ViewProvider.java index e54240433121..78c5b36f8e86 100644 --- a/media/java/android/media/update/ViewProvider.java +++ b/media/java/android/media/update/ViewProvider.java @@ -37,6 +37,8 @@ import android.view.MotionEvent; // TODO @SystemApi public interface ViewProvider { // TODO Add more (all?) methods from View + void onAttachedToWindow_impl(); + void onDetachedFromWindow_impl(); CharSequence getAccessibilityClassName_impl(); boolean onTouchEvent_impl(MotionEvent ev); boolean onTrackballEvent_impl(MotionEvent ev); -- cgit v1.2.3-59-g8ed1b