Skip to content

Commit 76272a8

Browse files
Avoid FlutterVlcPlayerFactory new instances onAttachedToActivity (#214)
* Avoid FlutterVlcPlayerFactory new instances onAttachedToActivity * Avoid FlutterVlcPlayerFactory instances in registerWith
1 parent cc0c17e commit 76272a8

File tree

1 file changed

+33
-29
lines changed

1 file changed

+33
-29
lines changed

flutter_vlc_player/android/src/main/java/software/solid/fluttervlcplayer/FlutterVlcPlayerPlugin.java

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,21 @@ public FlutterVlcPlayerPlugin() {
2222

2323
@SuppressWarnings("deprecation")
2424
public static void registerWith(io.flutter.plugin.common.PluginRegistry.Registrar registrar) {
25-
flutterVlcPlayerFactory =
26-
new FlutterVlcPlayerFactory(
27-
registrar.messenger(),
28-
registrar.textures(),
29-
registrar::lookupKeyForAsset,
30-
registrar::lookupKeyForAsset
31-
);
32-
registrar
33-
.platformViewRegistry()
34-
.registerViewFactory(
35-
VIEW_TYPE,
36-
flutterVlcPlayerFactory
37-
);
25+
if (flutterVlcPlayerFactory == null) {
26+
flutterVlcPlayerFactory =
27+
new FlutterVlcPlayerFactory(
28+
registrar.messenger(),
29+
registrar.textures(),
30+
registrar::lookupKeyForAsset,
31+
registrar::lookupKeyForAsset
32+
);
33+
registrar
34+
.platformViewRegistry()
35+
.registerViewFactory(
36+
VIEW_TYPE,
37+
flutterVlcPlayerFactory
38+
);
39+
}
3840
registrar.addViewDestroyListener(view -> {
3941
stopListening();
4042
return false;
@@ -56,22 +58,24 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
5658
@RequiresApi(api = Build.VERSION_CODES.N)
5759
@Override
5860
public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {
59-
final FlutterInjector injector = FlutterInjector.instance();
60-
//
61-
flutterVlcPlayerFactory =
62-
new FlutterVlcPlayerFactory(
63-
flutterPluginBinding.getBinaryMessenger(),
64-
flutterPluginBinding.getTextureRegistry(),
65-
injector.flutterLoader()::getLookupKeyForAsset,
66-
injector.flutterLoader()::getLookupKeyForAsset
67-
);
68-
flutterPluginBinding
69-
.getPlatformViewRegistry()
70-
.registerViewFactory(
71-
VIEW_TYPE,
72-
flutterVlcPlayerFactory
73-
);
74-
//
61+
if (flutterVlcPlayerFactory == null) {
62+
final FlutterInjector injector = FlutterInjector.instance();
63+
//
64+
flutterVlcPlayerFactory =
65+
new FlutterVlcPlayerFactory(
66+
flutterPluginBinding.getBinaryMessenger(),
67+
flutterPluginBinding.getTextureRegistry(),
68+
injector.flutterLoader()::getLookupKeyForAsset,
69+
injector.flutterLoader()::getLookupKeyForAsset
70+
);
71+
flutterPluginBinding
72+
.getPlatformViewRegistry()
73+
.registerViewFactory(
74+
VIEW_TYPE,
75+
flutterVlcPlayerFactory
76+
);
77+
//
78+
}
7579
startListening();
7680
}
7781

0 commit comments

Comments
 (0)