diff --git a/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/ui/ConfigurationActivity.kt b/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/ui/ConfigurationActivity.kt index fccbdaeb0..0dfb56c77 100644 --- a/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/ui/ConfigurationActivity.kt +++ b/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/ui/ConfigurationActivity.kt @@ -388,7 +388,8 @@ class ConfigurationActivity : AppCompatActivity() { } // 41 enable skonto screens custom bottom navigation bar - binding.layoutBottomNavigationToggles.switchSkontoHelpCustomBottomNavbar.setOnCheckedChangeListener { _, isChecked -> + binding.layoutBottomNavigationToggles.switchSkontoHelpCustomBottomNavbar + .setOnCheckedChangeListener { _, isChecked -> configurationViewModel.setConfiguration( configurationViewModel.configurationFlow.value.copy( isSkontoHelpCustomNavBarEnabled = isChecked diff --git a/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/ui/adapters/CustomSkontoHelpNavigationBarBottomAdapter.kt b/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/ui/adapters/CustomSkontoHelpNavigationBarBottomAdapter.kt index b54d7e201..6861f795e 100644 --- a/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/ui/adapters/CustomSkontoHelpNavigationBarBottomAdapter.kt +++ b/bank-sdk/example-app/src/main/java/net/gini/android/bank/sdk/exampleapp/ui/adapters/CustomSkontoHelpNavigationBarBottomAdapter.kt @@ -15,7 +15,8 @@ class CustomSkontoHelpNavigationBarBottomAdapter: } override fun onCreateView(container: ViewGroup): View { - val binding = CustomSkontoHelpNavigationBarBottomBinding.inflate(LayoutInflater.from(container.context), container, false) + val binding = CustomSkontoHelpNavigationBarBottomBinding + .inflate(LayoutInflater.from(container.context), container, false) viewBinding = binding return viewBinding!!.root @@ -24,4 +25,4 @@ class CustomSkontoHelpNavigationBarBottomAdapter: override fun onDestroy() { viewBinding = null } -} \ No newline at end of file +} diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/extractions/skonto/SkontoInvoiceHighlightsExtractor.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/extractions/skonto/SkontoInvoiceHighlightsExtractor.kt index eaae15f14..979470d34 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/extractions/skonto/SkontoInvoiceHighlightsExtractor.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/extractions/skonto/SkontoInvoiceHighlightsExtractor.kt @@ -20,6 +20,7 @@ internal class SkontoInvoiceHighlightsExtractor { val skontoPaymentMethod = skontoDiscountData.extractDataByKeys("skontoPaymentMethod") val skontoAmountToPay = extractAmountToPayOrError(skontoDiscountData) val skontoRemainingDays = extractRemainingDaysOrError(skontoDiscountData) + val skontoDuePeriod = extractSkontoDuePeriod(skontoDiscountData) val skontoDueDate = extractDueDateOrError(skontoDiscountData) @@ -35,6 +36,7 @@ internal class SkontoInvoiceHighlightsExtractor { skontoDueDate = skontoDueDate.box, skontoAmountToPay = skontoAmountToPay.box, skontoAmountDiscounted = skontoAmountDiscounted?.box, + skontoDuePeriod = skontoDuePeriod?.box ) } } @@ -75,4 +77,12 @@ internal class SkontoInvoiceHighlightsExtractor { "skontoDueDateCalculated" ) ?: throw NoSuchElementException("Skonto data for `DueDate` is missing") + private fun extractSkontoDuePeriod( + skontoDiscountMap: Map + ): GiniCaptureSpecificExtraction? = + skontoDiscountMap.extractDataByKeys( + "skontoDuePeriod", + "skontoDuePeriodCalculated" + ) + } diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/invoice/image/SkontoPageImageProcessor.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/invoice/image/SkontoPageImageProcessor.kt index eab0dee1a..4a5f05c37 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/invoice/image/SkontoPageImageProcessor.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/invoice/image/SkontoPageImageProcessor.kt @@ -7,11 +7,17 @@ import android.graphics.RectF import net.gini.android.bank.sdk.capture.skonto.model.SkontoInvoiceHighlightBoxes import net.gini.android.capture.internal.network.model.DocumentLayout import net.gini.android.capture.network.model.GiniCaptureBox +import org.slf4j.Logger +import org.slf4j.LoggerFactory import kotlin.coroutines.resume import kotlin.coroutines.suspendCoroutine class SkontoPageImageProcessor { + companion object { + var LOG: Logger = LoggerFactory.getLogger(SkontoPageImageProcessor::class.java) + } + suspend fun processImage( image: Bitmap, skontoPageLayout: DocumentLayout.Page, @@ -36,7 +42,11 @@ class SkontoPageImageProcessor { this.color = color } - canvas.drawHighlightRect(scaledRectList.unionAll(), paint) + if (scaledRectList.isNotEmpty()) { + canvas.drawHighlightRect(scaledRectList.unionAll(), paint) + } else { + LOG.error("No boxes to highlight detected") + } continuation.resume(finalBitmap) } diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/model/SkontoInvoiceHighlightBoxes.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/model/SkontoInvoiceHighlightBoxes.kt index 69b463105..1f91aab7c 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/model/SkontoInvoiceHighlightBoxes.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/model/SkontoInvoiceHighlightBoxes.kt @@ -12,6 +12,7 @@ data class SkontoInvoiceHighlightBoxes( val skontoAmountDiscounted: GiniCaptureBox?, val skontoRemainingDays: GiniCaptureBox?, val skontoDueDate: GiniCaptureBox?, + val skontoDuePeriod: GiniCaptureBox?, ) : Parcelable { fun getExistBoxes() = listOfNotNull( @@ -21,5 +22,6 @@ data class SkontoInvoiceHighlightBoxes( skontoAmountDiscounted, skontoRemainingDays, skontoDueDate, + skontoDuePeriod ) }