Navaron Bracke

inline function type; fix unsafe access of listener

... ... @@ -20,7 +20,7 @@ class MethodCallHandlerImpl(
private val barcodeHandler: BarcodeHandler,
binaryMessenger: BinaryMessenger,
private val permissions: MobileScannerPermissions,
private val permissionsRegistry: MobileScannerPermissions.PermissionsRegistry,
private val addPermissionListener: (RequestPermissionsResultListener) -> Unit,
textureRegistry: TextureRegistry): MethodChannel.MethodCallHandler {
private val analyzerCallback: AnalyzerCallback = { barcodes: List<Map<String, Any?>>?->
... ... @@ -98,7 +98,7 @@ class MethodCallHandlerImpl(
"state" -> result.success(permissions.hasCameraPermission(activity))
"request" -> permissions.requestPermission(
activity,
permissionsRegistry,
addPermissionListener,
object: MobileScannerPermissions.ResultCallback {
override fun onResult(errorCode: String?, errorDescription: String?) {
if(errorCode == null) {
... ...
... ... @@ -24,11 +24,6 @@ class MobileScannerPermissions {
const val REQUEST_CODE = 0x0786
}
interface PermissionsRegistry {
@SuppressWarnings("deprecation")
fun addListener(handler: RequestPermissionsResultListener)
}
interface ResultCallback {
fun onResult(errorCode: String?, errorDescription: String?)
}
... ... @@ -55,7 +50,7 @@ class MobileScannerPermissions {
}
fun requestPermission(activity: Activity,
permissionsRegistry: PermissionsRegistry,
addPermissionListener: (RequestPermissionsResultListener) -> Unit,
callback: ResultCallback) {
if (ongoing) {
callback.onResult(
... ... @@ -79,7 +74,7 @@ class MobileScannerPermissions {
}
}
)
permissionsRegistry.addListener(listener)
listener?.let { listener -> addPermissionListener(listener) }
}
ongoing = true
... ...