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 ca59f08..ae23f01 100644 --- a/android/src/main/kotlin/net/touchcapture/qr/flutterqr/FlutterQrPlugin.kt +++ b/android/src/main/kotlin/net/touchcapture/qr/flutterqr/FlutterQrPlugin.kt @@ -1,6 +1,7 @@ package net.touchcapture.qr.flutterqr import android.Manifest +import android.app.Activity import android.content.pm.PackageManager import android.os.Build import androidx.annotation.NonNull @@ -29,22 +30,24 @@ class FlutterQrPlugin : FlutterPlugin, MethodCallHandler, ActivityAware { } private fun onAttachedToV1(registrar: PluginRegistry.Registrar) { - Shared.activity = registrar.activity() registrar.addRequestPermissionsResultListener(CameraRequestPermissionsListener()) checkAndRequestPermission(null) - onAttachedToEngines(registrar.platformViewRegistry(), registrar.messenger()) + onAttachedToEngines(registrar.platformViewRegistry(), registrar.messenger(), registrar.activity()) } /** Plugin registration embedding v2 */ override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { - onAttachedToEngines(flutterPluginBinding.platformViewRegistry, flutterPluginBinding.binaryMessenger) + onAttachedToEngines(flutterPluginBinding.platformViewRegistry, flutterPluginBinding.binaryMessenger, Shared.activity) } override fun onDetachedFromEngine(binding: FlutterPlugin.FlutterPluginBinding) { } /** Plugin start for both embedding v1 & v2 */ - private fun onAttachedToEngines(platformViewRegistry: PlatformViewRegistry, messenger: BinaryMessenger) { + private fun onAttachedToEngines(platformViewRegistry: PlatformViewRegistry, messenger: BinaryMessenger, activity: Activity?) { + if (activity != null) { + Shared.activity = activity + } platformViewRegistry .registerViewFactory( "net.touchcapture.qr.flutterqr/qrview", QRViewFactory(messenger))