diff --git a/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/core/DocumentAnalyzer.kt b/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/core/DocumentAnalyzer.kt index 74267a317f..c3d9a70d72 100644 --- a/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/core/DocumentAnalyzer.kt +++ b/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/core/DocumentAnalyzer.kt @@ -43,26 +43,26 @@ class DocumentAnalyzer @JvmOverloads internal constructor( filename = null, documentType = null ).mapSuccess { partialDocumentResource -> - Log.d("gini-api", "Partial document created: " + partialDocumentResource.data.id) + Log.d(LOG_TAG, "Partial document created: " + partialDocumentResource.data.id) Log.d( - "gini-api", "Creating composite document for partial document: " + partialDocumentResource.data.id + LOG_TAG, "Creating composite document for partial document: " + partialDocumentResource.data.id ) documentManager.createCompositeDocument(listOf(partialDocumentResource.data)) }.mapSuccess { compositeDocumentResource -> - Log.d("gini-api", "Composite document created: " + compositeDocumentResource.data.id) + Log.d(LOG_TAG, "Composite document created: " + compositeDocumentResource.data.id) giniApiDocument = compositeDocumentResource.data Log.d( - "gini-api", "Getting extractions for composite document: " + compositeDocumentResource.data.id + LOG_TAG, "Getting extractions for composite document: " + compositeDocumentResource.data.id ) documentManager.getAllExtractionsWithPolling(compositeDocumentResource.data) } when (extractionsResource) { is Resource.Success -> { - Log.d("gini-api", "Analysis completed for document: ${giniApiDocument?.id}") + Log.d(LOG_TAG, "Analysis completed for document: ${giniApiDocument?.id}") listener?.onExtractionsReceived(extractionsResource.data.specificExtractions) } is Resource.Error -> { - Log.d("gini-api", "Analysis failed for document ${giniApiDocument?.id}: ${extractionsResource!!.message}") + Log.d(LOG_TAG, "Analysis failed for document ${giniApiDocument?.id}: ${extractionsResource.message}") listener?.onException(Exception(extractionsResource.message, extractionsResource.exception)) } is Resource.Cancelled -> {} @@ -82,4 +82,8 @@ class DocumentAnalyzer @JvmOverloads internal constructor( fun onException(exception: Exception) fun onExtractionsReceived(extractions: Map) } + + companion object { + private const val LOG_TAG = "gini-api" + } } \ No newline at end of file diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt index d00b697190..a022555bf7 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoice.kt @@ -301,51 +301,7 @@ internal class DigitalInvoice( _compoundExtractions = compoundExtractions.mapValues { (name, extraction) -> when (name) { "lineItems" -> { - val cameraExtractions = - extraction.specificExtractionMaps.mapIndexed { index, lineItemExtractions -> - selectableLineItems.find { it.lineItem.id.toInt() == index } - ?.let { sli -> - val extractions = - lineItemExtractions.mapValues { (name, lineItemExtraction) -> - when (name) { - "description" -> copyGiniCaptureSpecificExtraction( - lineItemExtraction, - sli.lineItem.description - ) - - "baseGross" -> copyGiniCaptureSpecificExtraction( - lineItemExtraction, - sli.lineItem.rawGrossPrice - ) - - "quantity" -> copyGiniCaptureSpecificExtraction( - lineItemExtraction, - if (sli.selected) { - sli.lineItem.quantity.toString() - } else { - "0" - } - ) - - else -> lineItemExtraction - } - }.toMutableMap() - sli.reason?.let { returnReason -> - extractions.put( - "returnReason", GiniCaptureSpecificExtraction( - "returnReason", - returnReason.id, - "", - null, - emptyList() - ) - ) - } - extractions - } - }.filterNotNull().toMutableList() - - + val cameraExtractions = transformLineItemExtractions(extraction) val userAddedExtractions = selectableLineItems.filter { it.addedByUser } .map { it.lineItem.asGiniExtractionMap() @@ -364,6 +320,51 @@ internal class DigitalInvoice( } } + private fun transformLineItemExtractions(extraction: GiniCaptureCompoundExtraction): MutableList> { + return extraction.specificExtractionMaps.mapIndexed { index, lineItemExtractions -> + selectableLineItems.find { it.lineItem.id.toInt() == index } + ?.let { sli -> + val extractions = + lineItemExtractions.mapValues { (name, lineItemExtraction) -> + when (name) { + "description" -> copyGiniCaptureSpecificExtraction( + lineItemExtraction, + sli.lineItem.description + ) + + "baseGross" -> copyGiniCaptureSpecificExtraction( + lineItemExtraction, + sli.lineItem.rawGrossPrice + ) + + "quantity" -> copyGiniCaptureSpecificExtraction( + lineItemExtraction, + if (sli.selected) { + sli.lineItem.quantity.toString() + } else { + "0" + } + ) + + else -> lineItemExtraction + } + }.toMutableMap() + sli.reason?.let { returnReason -> + extractions.put( + "returnReason", GiniCaptureSpecificExtraction( + "returnReason", + returnReason.id, + "", + null, + emptyList() + ) + ) + } + extractions + } + }.filterNotNull().toMutableList() + } + fun updateAmountToPayExtractionWithTotalPrice() { val totalPrice = getAmountToPay().toPriceString( selectableLineItems.firstOrNull()?.lineItem?.rawCurrency ?: "EUR" diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoiceScreenPresenter.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoiceScreenPresenter.kt index d2ca508f0c..8913967af7 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoiceScreenPresenter.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/DigitalInvoiceScreenPresenter.kt @@ -267,6 +267,7 @@ internal class DigitalInvoiceScreenPresenter( } override fun stop() { + // No-op } @VisibleForTesting diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/LineItemsAdapter.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/LineItemsAdapter.kt index 5c84c367e6..3c77d08a45 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/LineItemsAdapter.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/LineItemsAdapter.kt @@ -445,6 +445,7 @@ internal sealed class ViewHolder(itemView: View, val viewType: ViewType) : } override fun unbind() { + /* no-op */ } } diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/details/EditTextExtensions.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/details/EditTextExtensions.kt index 1a6fcba979..2cf7027f5d 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/details/EditTextExtensions.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/details/EditTextExtensions.kt @@ -14,9 +14,11 @@ import android.widget.EditText internal fun EditText.doAfterTextChanged(afterTextChanged: (String) -> Unit): TextWatcher = object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { + /* no-op */ } override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { + /* no-op */ } override fun afterTextChanged(editable: Editable?) { diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/details/LineItemDetailsScreenPresenter.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/details/LineItemDetailsScreenPresenter.kt index c86e82d5ac..3e41a4b9b7 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/details/LineItemDetailsScreenPresenter.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/details/LineItemDetailsScreenPresenter.kt @@ -195,6 +195,7 @@ internal class LineItemDetailsScreenPresenter( } override fun stop() { + /* no-op */ } } diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/onboarding/DigitalOnboardingScreenPresenter.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/onboarding/DigitalOnboardingScreenPresenter.kt index 544e3d29da..6ac1888d36 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/onboarding/DigitalOnboardingScreenPresenter.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/onboarding/DigitalOnboardingScreenPresenter.kt @@ -28,8 +28,10 @@ internal class DigitalOnboardingScreenPresenter( } override fun start() { + /* no-op */ } override fun stop() { + /* no-op */ } } \ No newline at end of file diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/view/DigitalInvoiceNavigationBarBottomAdapter.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/view/DigitalInvoiceNavigationBarBottomAdapter.kt index 8a44afe552..00d26f1721 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/view/DigitalInvoiceNavigationBarBottomAdapter.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/digitalinvoice/view/DigitalInvoiceNavigationBarBottomAdapter.kt @@ -48,7 +48,7 @@ interface DigitalInvoiceNavigationBarBottomAdapter : InjectedViewAdapter { * Example value: "3% Skonto discount" */ fun onSkontoPercentageBadgeUpdated(text: String) { - + /* no-op */ } /** @@ -57,7 +57,7 @@ interface DigitalInvoiceNavigationBarBottomAdapter : InjectedViewAdapter { * @param isVisible visibility flag */ fun onSkontoPercentageBadgeVisibilityUpdate(isVisible: Boolean) { - + /* no-op */ } /** @@ -67,7 +67,7 @@ interface DigitalInvoiceNavigationBarBottomAdapter : InjectedViewAdapter { * Example value: `"Save 100.00 EUR"` */ fun onSkontoSavingsAmountUpdated(text: String) { - + /* no-op */ } /** @@ -76,7 +76,7 @@ interface DigitalInvoiceNavigationBarBottomAdapter : InjectedViewAdapter { * @param isVisible visibility flag */ fun onSkontoSavingsAmountVisibilityUpdated(isVisible: Boolean) { - + /* no-op */ } } diff --git a/capture-sdk/sdk/src/main/java/net/gini/android/capture/analysis/AnalysisScreenPresenter.java b/capture-sdk/sdk/src/main/java/net/gini/android/capture/analysis/AnalysisScreenPresenter.java index 881b400651..cf4e9f02ad 100644 --- a/capture-sdk/sdk/src/main/java/net/gini/android/capture/analysis/AnalysisScreenPresenter.java +++ b/capture-sdk/sdk/src/main/java/net/gini/android/capture/analysis/AnalysisScreenPresenter.java @@ -316,6 +316,7 @@ public Void apply(final AnalysisInteractor.ResultHolder resultHolder, } else { proceedWithExtractions(resultHolder); } + break; case NO_NETWORK_SERVICE: break; default: