googlesamples / mlkit

A collection of sample apps to demonstrate how to use Google's ML Kit APIs on Android and iOS
Apache License 2.0
3.5k stars 2.92k forks source link

[Bug report] GmsDocumentScannerOptions.CAPTURE_MODE_MANUAL does not work for the document scanner #846

Open bensek opened 1 month ago

bensek commented 1 month ago

I want when I launch the document scanner to go directly into the Manual Mode and if possible hide the Auto Capture button. I tried setting the mode to CAPTURE_MODE_MANUAL, but it is not working.

Below is my code to reproduce the bug

    fun startScanner(activity: Activity?, pageLimit: Int = 10) {
        if (activity == null) {
            Timber.i("Unable to launch scanner: activity is null.")
            return
        }

        val options = buildScannerOptions(pageLimit)
        val scanner = GmsDocumentScanning.getClient(options)

        scanner.getStartScanIntent(activity)
            .addOnSuccessListener { intent ->
                val request = IntentSenderRequest.Builder(intent).build()
                launcher.launch(request)
            }
            .addOnFailureListener { exception ->
                showToast(activity, exception.localizedMessage)
            }
    }

    private fun buildScannerOptions(pageLimit: Int): GmsDocumentScannerOptions {
        return GmsDocumentScannerOptions.Builder()
            .setGalleryImportAllowed(true)
            .setResultFormats(
                GmsDocumentScannerOptions.RESULT_FORMAT_PDF,
                GmsDocumentScannerOptions.RESULT_FORMAT_JPEG
            )
            .setPageLimit(pageLimit)
            .setScannerMode(GmsDocumentScannerOptions.CAPTURE_MODE_MANUAL)
            .build()
    }

Expected behavior The Auto Capture button should be hidden or at least not the default mode but the manual mode.

SDK Info:

Smartphone:

Development Environment: Android Studio Jellyfish

ai-plays commented 1 month ago

CAPTURE_MODE_MANUAL is not a valid input for setScannerMode.

For scanner mode, valid input are documented here: GmsDocumentScannerOptions.SCANNER_MODE_FULL, GmsDocumentScannerOptions.SCANNER_MODE_BASE_WITH_FILTER, GmsDocumentScannerOptions.SCANNER_MODE_BASE

ai-plays commented 1 month ago

For the request of disabling Auto-capture, I will pass it to our team.

bensek commented 1 month ago

Is it also possible to disable the auto cropping when I take a photo in manual mode? We would like to have a use case that does not require document scanning, but can still take pictures and use the gallery and use the MLkIt filters. @mebjas

mebjas commented 1 month ago

Thanks for the request. Currently there is no client API to configure this. Manual vs Auto only control automatic capture. Please file another FR for this and we'd triage it separately based on priority of other items team is working on.

bensek commented 3 weeks ago

This is the issue for the request @mebjas