@@ -30,13 +30,16 @@ namespace flutter {
3030
3131AndroidSurfaceFactoryImpl::AndroidSurfaceFactoryImpl (
3232 std::shared_ptr<AndroidContext> context,
33- std::shared_ptr<PlatformViewAndroidJNI> jni_facade,
34- std::weak_ptr<AndroidExternalViewEmbedder> external_view_embedder)
35- : android_context_(context), jni_facade_(jni_facade),
36- external_view_embedder_ (external_view_embedder) {}
33+ std::shared_ptr<PlatformViewAndroidJNI> jni_facade)
34+ : android_context_(context), jni_facade_(jni_facade) {}
3735
3836AndroidSurfaceFactoryImpl::~AndroidSurfaceFactoryImpl () = default ;
3937
38+ void AndroidSurfaceFactoryImpl::SetExternalViewEmbedder (
39+ std::shared_ptr<AndroidExternalViewEmbedder> external_view_embedder) {
40+ external_view_embedder_ = external_view_embedder;
41+ }
42+
4043std::unique_ptr<AndroidSurface> AndroidSurfaceFactoryImpl::CreateSurface () {
4144 std::shared_ptr<AndroidExternalViewEmbedder> external_view_embedder =
4245 external_view_embedder_.lock ();
@@ -84,12 +87,11 @@ PlatformViewAndroid::PlatformViewAndroid(
8487 FML_CHECK (android_context && android_context->IsValid ())
8588 << " Could not create an Android context." ;
8689
87- external_view_embedder_ =
88- std::make_shared<AndroidExternalViewEmbedder>(android_context, jni_facade,
89- surface_factory_);
9090 surface_factory_ =
91- std::make_shared<AndroidSurfaceFactoryImpl>(android_context, jni_facade,
92- external_view_embedder_);
91+ std::make_shared<AndroidSurfaceFactoryImpl>(android_context, jni_facade);
92+ external_view_embedder_ = std::make_shared<AndroidExternalViewEmbedder>(
93+ android_context, jni_facade, surface_factory_);
94+ surface_factory_->SetExternalViewEmbedder (external_view_embedder_);
9395
9496 android_surface_ = surface_factory_->CreateSurface ();
9597 FML_CHECK (android_surface_ && android_surface_->IsValid ())
0 commit comments