From e0519a8b44770fa174205377d35565f0371ccf73 Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Thu, 10 Dec 2020 23:28:15 +0100 Subject: [PATCH] Upgraded to Flutter Embedding V2. --- .../qr/flutterqr/FlutterQrPlugin.kt | 31 ++++++++++++++----- .../android/app/src/main/AndroidManifest.xml | 19 +++++++----- .../qr/flutterqrexample/MainActivity.kt | 9 +----- .../app/src/main/res/values/styles.xml | 4 +++ 4 files changed, 41 insertions(+), 22 deletions(-) diff --git a/android/src/main/kotlin/net/touchcapture/qr/flutterqr/FlutterQrPlugin.kt b/android/src/main/kotlin/net/touchcapture/qr/flutterqr/FlutterQrPlugin.kt index 9336335..4fce11d 100644 --- a/android/src/main/kotlin/net/touchcapture/qr/flutterqr/FlutterQrPlugin.kt +++ b/android/src/main/kotlin/net/touchcapture/qr/flutterqr/FlutterQrPlugin.kt @@ -1,24 +1,41 @@ package net.touchcapture.qr.flutterqr +import androidx.annotation.NonNull +import io.flutter.embedding.engine.plugins.FlutterPlugin import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodChannel.MethodCallHandler import io.flutter.plugin.common.MethodChannel.Result import io.flutter.plugin.common.PluginRegistry.Registrar -class FlutterQrPlugin : MethodCallHandler { + +class FlutterQrPlugin : FlutterPlugin, MethodCallHandler { + + /** Plugin registration embedding v1 */ companion object { @JvmStatic fun registerWith(registrar: Registrar) { - registrar - .platformViewRegistry() - .registerViewFactory( - "net.touchcapture.qr.flutterqr/qrview", QRViewFactory(registrar)) + FlutterQrPlugin().onAttachedToEngine(registrar) } } + /** Plugin registration embedding v2 */ + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + onAttachedToEngine(flutterPluginBinding) + } + + override fun onDetachedFromEngine(binding: FlutterPlugin.FlutterPluginBinding) { + } + + private fun onAttachedToEngine(registrar: Registrar) { + registrar + .platformViewRegistry() + .registerViewFactory( + "net.touchcapture.qr.flutterqr/qrview", QRViewFactory(registrar)) + } + override fun onMethodCall(call: MethodCall, result: Result) { - when { - call.method == "getPlatformVersion" -> result.success("Android ${android.os.Build.VERSION.RELEASE}") + when (call.method) { + "getPlatformVersion" -> result.success("Android ${android.os.Build.VERSION.RELEASE}") else -> result.notImplemented() } } diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 8a40bfb..3407805 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -13,7 +13,6 @@ additional functionality it is fine to subclass or reimplement FlutterApplication and put your custom class here. --> - + + + android:name="io.flutter.embedding.android.SplashScreenDrawable" + android:resource="@drawable/launch_background" /> + + + diff --git a/example/android/app/src/main/kotlin/net/touchcapture/qr/flutterqrexample/MainActivity.kt b/example/android/app/src/main/kotlin/net/touchcapture/qr/flutterqrexample/MainActivity.kt index fcdee63..3a276af 100644 --- a/example/android/app/src/main/kotlin/net/touchcapture/qr/flutterqrexample/MainActivity.kt +++ b/example/android/app/src/main/kotlin/net/touchcapture/qr/flutterqrexample/MainActivity.kt @@ -1,13 +1,6 @@ package net.touchcapture.qr.flutterqrexample -import android.os.Bundle - -import io.flutter.app.FlutterActivity -import io.flutter.plugins.GeneratedPluginRegistrant +import io.flutter.embedding.android.FlutterActivity class MainActivity: FlutterActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - GeneratedPluginRegistrant.registerWith(this) - } } diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml index 00fa441..cd32859 100644 --- a/example/android/app/src/main/res/values/styles.xml +++ b/example/android/app/src/main/res/values/styles.xml @@ -5,4 +5,8 @@ Flutter draws its first frame --> @drawable/launch_background + +