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..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,12 +41,14 @@ public String getName() { @NonNull public LinearLayout createViewInstance(ThemedReactContext reactContext) { LinearLayout view = new LinearLayout(this.reactContext); - sInstances.add(view); 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")