1
1
package com.jhoogstraat.fast_barcode_scanner
2
2
3
3
import android.Manifest
4
+ import android.app.Activity
4
5
import android.content.pm.PackageManager
5
6
import android.util.Log
6
7
import android.view.Surface
7
8
import androidx.camera.core.*
8
9
import androidx.camera.lifecycle.ProcessCameraProvider
10
+ import androidx.core.app.ActivityCompat
9
11
import androidx.core.content.ContextCompat
10
12
import androidx.core.util.Consumer
13
+ import androidx.lifecycle.LifecycleOwner
11
14
import com.google.android.gms.tasks.OnFailureListener
12
15
import com.google.android.gms.tasks.OnSuccessListener
13
16
import com.google.mlkit.vision.barcode.Barcode
14
17
import com.google.mlkit.vision.barcode.BarcodeScannerOptions
15
- import io.flutter.embedding.android.FlutterActivity
16
18
17
19
import io.flutter.plugin.common.MethodChannel.Result
18
20
import io.flutter.plugin.common.PluginRegistry.RequestPermissionsResultListener
@@ -25,7 +27,7 @@ data class CameraConfig(val formats: IntArray, val mode: DetectionMode, val reso
25
27
26
28
class BarcodeReader (private val flutterTextureEntry : TextureRegistry .SurfaceTextureEntry , private val listener : (List <Barcode >) -> Unit ) : RequestPermissionsResultListener {
27
29
/* Android Lifecycle */
28
- private var activity: FlutterActivity ? = null
30
+ private var activity: Activity ? = null
29
31
30
32
/* Camera */
31
33
private lateinit var camera: Camera
@@ -42,7 +44,7 @@ class BarcodeReader(private val flutterTextureEntry: TextureRegistry.SurfaceText
42
44
private var isInitialized = false
43
45
private var pauseDetection = false
44
46
45
- fun attachToActivity (activity : FlutterActivity ) {
47
+ fun attachToActivity (activity : Activity ) {
46
48
this .activity = activity
47
49
}
48
50
@@ -74,7 +76,11 @@ class BarcodeReader(private val flutterTextureEntry: TextureRegistry.SurfaceText
74
76
if (allPermissionsGranted()) {
75
77
initCamera()
76
78
} else {
77
- activity?.requestPermissions(REQUIRED_PERMISSIONS , REQUEST_CODE_PERMISSIONS )
79
+ ActivityCompat .requestPermissions(
80
+ activity!! ,
81
+ REQUIRED_PERMISSIONS ,
82
+ REQUEST_CODE_PERMISSIONS
83
+ )
78
84
}
79
85
80
86
result.success(hashMapOf(" textureId" to flutterTextureEntry.id(), " surfaceOrientation" to 0 , " surfaceHeight" to 1280 , " surfaceWidth" to 720 ))
@@ -192,7 +198,7 @@ class BarcodeReader(private val flutterTextureEntry: TextureRegistry.SurfaceText
192
198
preview.setSurfaceProvider(cameraExecutor, cameraSurfaceProvider)
193
199
194
200
// Bind camera to Lifecycle
195
- camera = cameraProvider.bindToLifecycle(activity!! , cameraSelector, preview, imageAnalyzer)
201
+ camera = cameraProvider.bindToLifecycle(activity!! as LifecycleOwner , cameraSelector, preview, imageAnalyzer)
196
202
197
203
// Make sure detections are allowed
198
204
pauseDetection = false
0 commit comments