// Use the androidx's Activity Result API to register a handler for the capture result.
val captureLauncher = registerForActivityResult(CaptureFlowContract()) { result: CaptureResult ->
when (result) {
is CaptureResult.Success -> {
handleExtractions(result.specificExtractions)
}
is CaptureResult.Error -> {
when (result.value) {
is ResultError.Capture -> {
val captureError: GiniCaptureError = (result.value as ResultError.Capture).giniCaptureError
handleCaptureError(captureError)
}
is ResultError.FileImport -> {
// See the File Import section on the Capture Features page for more details.
val fileImportError = result.value as ResultError.FileImport
handleFileImportError(fileImportError)
}
}
GiniBank.releaseCapture(
this, "",
"", "", "", "", Amount.EMPTY
)
}
CaptureResult.Empty -> {
handleNoExtractions()
GiniBank.releaseCapture(
this, "",
"", "", "", "", Amount.EMPTY
)
}
CaptureResult.Cancel -> {
handleCancellation()
GiniBank.releaseCapture(
this, "",
"", "", "", "", Amount.EMPTY
)
}
CaptureResult.EnterManually -> {
handleEnterManually()
GiniBank.releaseCapture(
this, "",
"", "", "", "", Amount.EMPTY
)
}
}
}
fun launchGiniCapture() {
// Make sure camera permission has been already granted at this point.
// Check that the device fulfills the requirements.
val report = GiniCaptureRequirements.checkRequirements((Context) this)
if (!report.isFulfilled()) {
handleUnfulfilledRequirements(report)
return
}
// Instantiate the networking implementation.
val networkService: GiniCaptureNetworkService = ...
// Configure the capture feature.
GiniBank.setCaptureConfiguration(
CaptureConfiguration(
networkService = networkService,
...
)
)
// Launch and wait for the result.
GiniBank.startCaptureFlow(captureLauncher)
}
void stopGiniBankSDK() {
// After the user has seen and potentially corrected the extractions
// cleanup the SDK while passing in the final extraction values
// which will be used as feedback to improve the future extraction accuracy:
GiniBank.releaseCapture(this,
paymentRecipient,
paymentReference,
paymentPurpose,
iban,
bic,
amount
)
} |