From 3a5f925e9ee292a3867e55c5e17da7decea63dad Mon Sep 17 00:00:00 2001 From: emmyrlim Date: Sun, 14 Jan 2024 13:41:32 -0800 Subject: [PATCH 1/2] Fixing android unattach bug --- .../src/main/java/com/transparentvideo/AlphaMovieView.java | 7 ++----- .../com/transparentvideo/TransparentVideoViewManager.java | 7 +++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/android/src/main/java/com/transparentvideo/AlphaMovieView.java b/android/src/main/java/com/transparentvideo/AlphaMovieView.java index 4804146..1d17f2b 100644 --- a/android/src/main/java/com/transparentvideo/AlphaMovieView.java +++ b/android/src/main/java/com/transparentvideo/AlphaMovieView.java @@ -427,12 +427,9 @@ public void onPause() { pause(); } - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); + protected void cleanup() { release(); - handler.removeCallbacks(timeDetector); - TransparentVideoViewManager.destroyView((LinearLayout)this.getParent()); + handler.removeCallbacks(timeDetector); } private void prepareAsync(final MediaPlayer.OnPreparedListener onPreparedListener) { diff --git a/android/src/main/java/com/transparentvideo/TransparentVideoViewManager.java b/android/src/main/java/com/transparentvideo/TransparentVideoViewManager.java index 2f32623..e824f1d 100644 --- a/android/src/main/java/com/transparentvideo/TransparentVideoViewManager.java +++ b/android/src/main/java/com/transparentvideo/TransparentVideoViewManager.java @@ -47,8 +47,11 @@ public LinearLayout createViewInstance(ThemedReactContext reactContext) { return view; } - public static void destroyView(LinearLayout view) { - sInstances.remove(view); + @Override + public void onDropViewInstance(@NonNull LinearLayout view) { + super.onDropViewInstance(view); + AlphaMovieView alphaMovieView = (AlphaMovieView)view.getChildAt(0); + alphaMovieView.cleanup(); } @ReactProp(name = "src") From a2f78f5818986189ed274cd82a5ed6607cca1b09 Mon Sep 17 00:00:00 2001 From: emmyrlim Date: Sun, 14 Jan 2024 14:13:50 -0800 Subject: [PATCH 2/2] remove sInstances --- .../java/com/transparentvideo/TransparentVideoViewManager.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/android/src/main/java/com/transparentvideo/TransparentVideoViewManager.java b/android/src/main/java/com/transparentvideo/TransparentVideoViewManager.java index e824f1d..1f5717a 100644 --- a/android/src/main/java/com/transparentvideo/TransparentVideoViewManager.java +++ b/android/src/main/java/com/transparentvideo/TransparentVideoViewManager.java @@ -22,8 +22,6 @@ public class TransparentVideoViewManager extends SimpleViewManager { - private static List sInstances = new ArrayList<>(); - public static final String REACT_CLASS = "TransparentVideoView"; private static final String TAG = "TransparentVideoViewManager"; @@ -43,7 +41,6 @@ public String getName() { @NonNull public LinearLayout createViewInstance(ThemedReactContext reactContext) { LinearLayout view = new LinearLayout(this.reactContext); - sInstances.add(view); return view; }