Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Request camera access.

  2. Configure a new instance of GiniCapture.

  3. Launch CameraActivity.

  4. Handle the extraction results.

  5. Send the final transfer summary values to Gini by calling GiniCapture.sendTransferSummary()method which will be used to improve the future extraction accuracy

  6. Clean up the SDK by calling GiniCapture.cleanup() while also providing the required extraction feedback to improve future extraction accuracy. which will release the resources used by SDK.

Follow these recommendations:

Note
  • Provide values for all necessary fields, including those that were not extracted.

  • Provide the final data approved by the user (and not the initially extracted only).

  • Do cleanup only after TAN verification.

...

Code Block
languagekotlin
void launchGiniCapture() {
    // Make sure camera permission has been already granted at this point.

    // Instantiate the networking implementations.
    GiniCaptureNetworkService networkService = ...

    // Configure GiniCapture and create a new singleton instance.
    GiniCapture.newInstance()
            .setGiniCaptureNetworkService(networkService)
            ...
            .build();

    // Launch the CameraActivity and wait for the result.
    Intent intent = new Intent(this, CameraActivity.class);
    startActivityForResult(intent, GINI_CAPTURE_REQUEST);
}

@Override
protected void onActivityResult(final int requestCode, final int resultCode,
        final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == GINI_CAPTURE_REQUEST) {
        switch (resultCode) {
            case Activity.RESULT_CANCELED:
                GiniCapture.cleanupsendTransferSummary(this"", "", "", "", "", Amount.EMPTY);
                         "", "","", Amount.EMPTYGiniCapture.cleanup(this);
                break;

            case Activity.RESULT_OK:
                // Retrieve the extractions
                Bundle extractionsBundle = data.getBundleExtra(
                        CameraActivity.EXTRA_OUT_EXTRACTIONS);

                // Retrieve the extractions from the extractionsBundle
                Map<String, GiniCaptureSpecificExtraction> extractions = new HashMap<>();
                for (String extractionLabel : extractionsBundle.keySet()) {
                    GiniCaptureSpecificExtraction extraction = extractionsBundle.getParcelable(extractionLabel);
                    extractions.put(extractionLabel, extraction);
                }
                handleExtractions(extractions);

                break;

            case CameraActivity.RESULT_ERROR:
                // Something went wrong, retrieve and handle the error
                final GiniCaptureError error = data.getParcelableExtra(
                        CameraActivity.EXTRA_OUT_ERROR);
                if (error != null) {
                    handleError(error);
                }
                GiniCapture.cleanupsendTransferSummary(this"", "", "", "", "", Amount.EMPTY);
                     "", "","", Amount.EMPTYGiniCapture.cleanup(this);
                break;

            case CameraActivity.RESULT_ENTER_MANUALLY:
                handleEnterManually();
                GiniCapture.cleanupsendTransferSummary(this"", "", "", "", "", Amount.EMPTY);
                     "", "","", Amount.EMPTYGiniCapture.cleanup(this);
                break;
        }
    }
}

void stopGiniCaptureSDK() {
    // After the user has seen and potentially corrected the extractions, send the final
 // cleanup the SDK// while passing in the final extractiontransfer summary values to    //Gini which will be used as feedback to improve the future extraction accuracy:
    GiniCapture.cleanup((Context) this,sendTransferSummary(
            paymentRecipient,
            paymentReference,
            paymentPurpose,
            iban,
            bic,
            amount
            )
            
    // cleanup the capture SDK after sending the transfer summary
    GiniCapture.cleanup(this)
}