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