From fa8c2af47a257997eb2d7925d8e954e77aa1cfd7 Mon Sep 17 00:00:00 2001 From: Guillermo Jeremy De La Cruz Onton Date: Thu, 25 Mar 2021 00:28:12 -0500 Subject: [PATCH 1/2] Avoid FlutterVlcPlayerFactory new instances onAttachedToActivity --- .../FlutterVlcPlayerPlugin.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java b/flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java index 2cc001a9..e8738da9 100644 --- a/flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java +++ b/flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java @@ -56,22 +56,24 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { @RequiresApi(api = Build.VERSION_CODES.N) @Override public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { - final FlutterInjector injector = FlutterInjector.instance(); - // - flutterVlcPlayerFactory = - new FlutterVlcPlayerFactory( - flutterPluginBinding.getBinaryMessenger(), - flutterPluginBinding.getTextureRegistry(), - injector.flutterLoader()::getLookupKeyForAsset, - injector.flutterLoader()::getLookupKeyForAsset - ); - flutterPluginBinding - .getPlatformViewRegistry() - .registerViewFactory( - VIEW_TYPE, - flutterVlcPlayerFactory - ); - // + if(flutterVlcPlayerFactory == null) { + final FlutterInjector injector = FlutterInjector.instance(); + // + flutterVlcPlayerFactory = + new FlutterVlcPlayerFactory( + flutterPluginBinding.getBinaryMessenger(), + flutterPluginBinding.getTextureRegistry(), + injector.flutterLoader()::getLookupKeyForAsset, + injector.flutterLoader()::getLookupKeyForAsset + ); + flutterPluginBinding + .getPlatformViewRegistry() + .registerViewFactory( + VIEW_TYPE, + flutterVlcPlayerFactory + ); + // + } startListening(); } From 4b431c1ca464638801702d897a9fc64a4654d144 Mon Sep 17 00:00:00 2001 From: Guillermo Jeremy De La Cruz Onton Date: Thu, 25 Mar 2021 19:22:43 -0500 Subject: [PATCH 2/2] Avoid FlutterVlcPlayerFactory instances in registerWith --- .../FlutterVlcPlayerPlugin.java | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java b/flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java index e8738da9..e2f7e944 100644 --- a/flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java +++ b/flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java @@ -22,19 +22,21 @@ public FlutterVlcPlayerPlugin() { @SuppressWarnings("deprecation") public static void registerWith(io.flutter.plugin.common.PluginRegistry.Registrar registrar) { - flutterVlcPlayerFactory = - new FlutterVlcPlayerFactory( - registrar.messenger(), - registrar.textures(), - registrar::lookupKeyForAsset, - registrar::lookupKeyForAsset - ); - registrar - .platformViewRegistry() - .registerViewFactory( - VIEW_TYPE, - flutterVlcPlayerFactory - ); + if (flutterVlcPlayerFactory == null) { + flutterVlcPlayerFactory = + new FlutterVlcPlayerFactory( + registrar.messenger(), + registrar.textures(), + registrar::lookupKeyForAsset, + registrar::lookupKeyForAsset + ); + registrar + .platformViewRegistry() + .registerViewFactory( + VIEW_TYPE, + flutterVlcPlayerFactory + ); + } registrar.addViewDestroyListener(view -> { stopListening(); return false; @@ -56,7 +58,7 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { @RequiresApi(api = Build.VERSION_CODES.N) @Override public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { - if(flutterVlcPlayerFactory == null) { + if (flutterVlcPlayerFactory == null) { final FlutterInjector injector = FlutterInjector.instance(); // flutterVlcPlayerFactory =