From 0dccacec2b2a3a5106045b0d27a6b7bf3549b1df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rulong=20Chen=EF=BC=88=E9=99=88=E6=B1=9D=E9=BE=99=EF=BC=89?= Date: Tue, 25 Oct 2022 02:28:48 +0800 Subject: [PATCH] [add_to_app] Fixes type mismatch (#1489) --- .../example/androidView/FlutterViewEngine.kt | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/add_to_app/android_view/android_view/app/src/main/java/dev/flutter/example/androidView/FlutterViewEngine.kt b/add_to_app/android_view/android_view/app/src/main/java/dev/flutter/example/androidView/FlutterViewEngine.kt index afc0db2d5..e0c96a1b2 100644 --- a/add_to_app/android_view/android_view/app/src/main/java/dev/flutter/example/androidView/FlutterViewEngine.kt +++ b/add_to_app/android_view/android_view/app/src/main/java/dev/flutter/example/androidView/FlutterViewEngine.kt @@ -4,11 +4,13 @@ package dev.flutter.example.androidView +import android.app.Activity import android.content.Intent import androidx.activity.ComponentActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.OnLifecycleEvent +import io.flutter.embedding.android.ExclusiveAppComponent import io.flutter.embedding.android.FlutterView import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugin.platform.PlatformPlugin @@ -40,7 +42,7 @@ import io.flutter.plugin.platform.PlatformPlugin * what the appropriate intersection between the [FlutterView], the [FlutterEngine] and your * `Activity` should be for your own application. */ -class FlutterViewEngine(val engine: FlutterEngine) : LifecycleObserver{ +class FlutterViewEngine(val engine: FlutterEngine) : LifecycleObserver, ExclusiveAppComponent{ private var flutterView: FlutterView? = null private var activity: ComponentActivity? = null private var platformPlugin: PlatformPlugin? = null @@ -55,7 +57,7 @@ class FlutterViewEngine(val engine: FlutterEngine) : LifecycleObserver{ flutterView!!.let { flutterView -> platformPlugin = PlatformPlugin(activity, engine.platformChannel) - engine.activityControlSurface.attachToActivity(activity, activity.lifecycle) + engine.activityControlSurface.attachToActivity(this, activity.lifecycle) flutterView.attachToFlutterEngine(engine) activity.lifecycle.addObserver(this) } @@ -217,4 +219,25 @@ class FlutterViewEngine(val engine: FlutterEngine) : LifecycleObserver{ engine.activityControlSurface.onUserLeaveHint(); } } + + /** + * Called when another App Component is about to become attached to the [ ] this App Component + * is currently attached to. + * + * + * This App Component's connections to the [io.flutter.embedding.engine.FlutterEngine] + * are still valid at the moment of this call. + */ + override fun detachFromFlutterEngine() { + // Do nothing here + } + + /** + * Retrieve the App Component behind this exclusive App Component. + * + * @return The app component. + */ + override fun getAppComponent(): Activity { + return activity!!; + } }