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.56k stars 2.93k forks source link

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

Open bensek opened 3 months ago

bensek commented 3 months 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 3 months 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 3 months ago

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

bensek commented 3 months 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 3 months 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 2 months ago

This is the issue for the request @mebjas

Al-Taie commented 3 weeks ago

why this library is not an open source?!

nazymberdaly commented 2 weeks ago

How can I switch to Manual Scanning mode?

Additionally, I would like to disable the auto-rotation feature. I reviewed the documentation, but I couldn't find an option for this. Could you consider adding this feature in future development?

mebjas commented 2 weeks ago

Additionally, I would like to disable the auto-rotation feature. I reviewed the documentation, but I couldn't find an option for this. Could you consider adding this feature in future development?

Currently this is not supported as an API. We'll add this to our feature request backlog!