Navaron Bracke

inline function type; fix unsafe access of listener

@@ -20,7 +20,7 @@ class MethodCallHandlerImpl( @@ -20,7 +20,7 @@ class MethodCallHandlerImpl(
20 private val barcodeHandler: BarcodeHandler, 20 private val barcodeHandler: BarcodeHandler,
21 binaryMessenger: BinaryMessenger, 21 binaryMessenger: BinaryMessenger,
22 private val permissions: MobileScannerPermissions, 22 private val permissions: MobileScannerPermissions,
23 - private val permissionsRegistry: MobileScannerPermissions.PermissionsRegistry, 23 + private val addPermissionListener: (RequestPermissionsResultListener) -> Unit,
24 textureRegistry: TextureRegistry): MethodChannel.MethodCallHandler { 24 textureRegistry: TextureRegistry): MethodChannel.MethodCallHandler {
25 25
26 private val analyzerCallback: AnalyzerCallback = { barcodes: List<Map<String, Any?>>?-> 26 private val analyzerCallback: AnalyzerCallback = { barcodes: List<Map<String, Any?>>?->
@@ -98,7 +98,7 @@ class MethodCallHandlerImpl( @@ -98,7 +98,7 @@ class MethodCallHandlerImpl(
98 "state" -> result.success(permissions.hasCameraPermission(activity)) 98 "state" -> result.success(permissions.hasCameraPermission(activity))
99 "request" -> permissions.requestPermission( 99 "request" -> permissions.requestPermission(
100 activity, 100 activity,
101 - permissionsRegistry, 101 + addPermissionListener,
102 object: MobileScannerPermissions.ResultCallback { 102 object: MobileScannerPermissions.ResultCallback {
103 override fun onResult(errorCode: String?, errorDescription: String?) { 103 override fun onResult(errorCode: String?, errorDescription: String?) {
104 if(errorCode == null) { 104 if(errorCode == null) {
@@ -24,11 +24,6 @@ class MobileScannerPermissions { @@ -24,11 +24,6 @@ class MobileScannerPermissions {
24 const val REQUEST_CODE = 0x0786 24 const val REQUEST_CODE = 0x0786
25 } 25 }
26 26
27 - interface PermissionsRegistry {  
28 - @SuppressWarnings("deprecation")  
29 - fun addListener(handler: RequestPermissionsResultListener)  
30 - }  
31 -  
32 interface ResultCallback { 27 interface ResultCallback {
33 fun onResult(errorCode: String?, errorDescription: String?) 28 fun onResult(errorCode: String?, errorDescription: String?)
34 } 29 }
@@ -55,7 +50,7 @@ class MobileScannerPermissions { @@ -55,7 +50,7 @@ class MobileScannerPermissions {
55 } 50 }
56 51
57 fun requestPermission(activity: Activity, 52 fun requestPermission(activity: Activity,
58 - permissionsRegistry: PermissionsRegistry, 53 + addPermissionListener: (RequestPermissionsResultListener) -> Unit,
59 callback: ResultCallback) { 54 callback: ResultCallback) {
60 if (ongoing) { 55 if (ongoing) {
61 callback.onResult( 56 callback.onResult(
@@ -79,7 +74,7 @@ class MobileScannerPermissions { @@ -79,7 +74,7 @@ class MobileScannerPermissions {
79 } 74 }
80 } 75 }
81 ) 76 )
82 - permissionsRegistry.addListener(listener) 77 + listener?.let { listener -> addPermissionListener(listener) }
83 } 78 }
84 79
85 ongoing = true 80 ongoing = true