diff --git a/android/gradle.properties b/android/gradle.properties index 8bd86f6..08f2b5f 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1 +1,3 @@ org.gradle.jvmargs=-Xmx1536M +android.enableJetifier=true +android.useAndroidX=true diff --git a/android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt b/android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt index 10d1838..72fa5c6 100644 --- a/android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt +++ b/android/src/main/kotlin/net/touchcapture/qr/flutterqr/QRView.kt @@ -42,36 +42,15 @@ class QRView(context: Context, private val registrar: PluginRegistry.Registrar, override fun possibleResultPoints(resultPoints: List) {} } ) + barcodeView.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener { + override fun onViewDetachedFromWindow(p0: View?) { + barcodeView.pause() + } - init() - - activity.application.registerActivityLifecycleCallbacks( - object : Application.ActivityLifecycleCallbacks{ - override fun onActivityPaused(p0: Activity?) { - barcodeView.pause() - } - - override fun onActivityResumed(p0: Activity?) { - init() - } - - override fun onActivityStarted(p0: Activity?) { - } - - override fun onActivityDestroyed(p0: Activity?) { - } - - override fun onActivitySaveInstanceState(p0: Activity?, p1: Bundle?) { - } - - override fun onActivityStopped(p0: Activity?) { - } - - override fun onActivityCreated(p0: Activity?, p1: Bundle?) { - barcodeView.decoderFactory = DefaultDecoderFactory() - } - - }) + override fun onViewAttachedToWindow(p0: View?) { + barcodeView.resume() + } + }) } @@ -84,7 +63,9 @@ class QRView(context: Context, private val registrar: PluginRegistry.Registrar, } override fun getView(): View { - return barcodeView + return barcodeView.apply { + init() + } } override fun dispose() {