Skip to content

[Bug report] [Android] Kotlin Delegation is not working with MlKitAnalyzer #902

Open
@AlexTrotsenko

Description

@AlexTrotsenko

Describe the bug
When Kotlin delegation is used as following:

class BarcodeScanningAnalyzer internal constructor(
    mlKitAnalyzer: MlKitAnalyzer, val executor: Executor, barcodeScanner: BarcodeScanner
) : ImageAnalysis.Analyzer by mlKitAnalyzer, LifecycleObserver by barcodeScanner {
}

and later scanning started via:

cameraController.setImageAnalysisAnalyzer(analyzer.executor, analyzer)

No scanning is happening (consumer is never called back).

However when I change the delegation to the direct inheritance of the MlKitAnalyzer - then scanning works as expected:

class BarcodeScanningAnalyzer internal constructor(
    barcodeScanner: BarcodeScanner, val executor: Executor, consumer: Consumer<Result>
) : MlKitAnalyzer(
    listOf<BarcodeScanner>(barcodeScanner),
    /* provides ability drawing easily a overlay/box around the QR Code in real time */
    COORDINATE_SYSTEM_VIEW_REFERENCED,
    executor,
    consumer
), LifecycleObserver by barcodeScanner

SDK Info:

  • SDK Name & Version: com.google.mlkit:barcode-scanning:17.0.2

Smartphone:

  • Device/Simulator: Pixel 9 Pro
  • Device/Simulator OS: Android 15

Development Environment:
IDE: Android Studio Meerkat | 2024.3.1 Canary 4

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions