diff --git a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrFragment.kt b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrFragment.kt index 064e38e44b..3652e4534a 100644 --- a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrFragment.kt +++ b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrFragment.kt @@ -30,11 +30,11 @@ import com.simprints.core.tools.extensions.permissionFromResult import com.simprints.feature.externalcredential.R import com.simprints.feature.externalcredential.databinding.FragmentExternalCredentialScanOcrBinding import com.simprints.feature.externalcredential.screens.controller.ExternalCredentialViewModel -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessment import com.simprints.feature.externalcredential.screens.scanocr.model.OcrConfig import com.simprints.feature.externalcredential.screens.scanocr.usecase.GetBoundsRelativeToParentUseCase import com.simprints.feature.externalcredential.screens.search.model.ScannedCredentialResult import com.simprints.infra.camera.CameraFrameProvider +import com.simprints.infra.camera.lighting.LightingConditionsAssessment import com.simprints.infra.logging.LoggingConstants.CrashReportTag.MULTI_FACTOR_ID import com.simprints.infra.logging.Simber import com.simprints.infra.uibase.navigation.navigateSafely diff --git a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrViewModel.kt b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrViewModel.kt index e1f3b7f701..6fafb67dad 100644 --- a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrViewModel.kt +++ b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrViewModel.kt @@ -10,17 +10,17 @@ import com.simprints.core.livedata.LiveDataEventWithContent import com.simprints.core.livedata.send import com.simprints.core.tools.time.TimeHelper import com.simprints.core.tools.time.Timestamp -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessment -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessmentConfig import com.simprints.feature.externalcredential.screens.scanocr.model.OcrConfig import com.simprints.feature.externalcredential.screens.scanocr.model.OcrDocumentType import com.simprints.feature.externalcredential.screens.scanocr.model.ScannedMfidDocument import com.simprints.feature.externalcredential.screens.scanocr.usecase.BuildScannedCredentialResultUseCase import com.simprints.feature.externalcredential.screens.scanocr.usecase.GetLightingConditionsAssessmentConfigUseCase -import com.simprints.feature.externalcredential.screens.scanocr.usecase.GetLightingConditionsAssessmentUseCase import com.simprints.feature.externalcredential.screens.scanocr.usecase.ScanMfidDocumentUseCase import com.simprints.feature.externalcredential.screens.search.model.ScannedCredentialResult import com.simprints.infra.camera.Frame +import com.simprints.infra.camera.lighting.GetLightingConditionsAssessmentUseCase +import com.simprints.infra.camera.lighting.LightingConditionsAssessment +import com.simprints.infra.camera.lighting.LightingConditionsAssessmentConfig import com.simprints.infra.camera.postprocess.FrameCropToTargetUseCase import com.simprints.infra.config.store.ConfigRepository import com.simprints.infra.config.store.models.experimental diff --git a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/model/LightingConditionsAssessment.kt b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/model/LightingConditionsAssessment.kt deleted file mode 100644 index 1ea81dcac7..0000000000 --- a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/model/LightingConditionsAssessment.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.simprints.feature.externalcredential.screens.scanocr.model - -import com.simprints.infra.uibase.annotations.ExcludedFromGeneratedTestCoverageReports - -@ExcludedFromGeneratedTestCoverageReports("Enum") -internal enum class LightingConditionsAssessment { - NORMAL, - TOO_DIM, - TOO_BRIGHT, -} diff --git a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentConfigUseCase.kt b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentConfigUseCase.kt index cc46117480..5c3435a340 100644 --- a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentConfigUseCase.kt +++ b/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentConfigUseCase.kt @@ -1,6 +1,6 @@ package com.simprints.feature.externalcredential.screens.scanocr.usecase -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessmentConfig +import com.simprints.infra.camera.lighting.LightingConditionsAssessmentConfig import com.simprints.infra.config.store.ConfigRepository import com.simprints.infra.config.store.models.ExperimentalProjectConfiguration import com.simprints.infra.config.store.models.experimental diff --git a/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrViewModelTest.kt b/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrViewModelTest.kt index 1532bbff89..c6f87a7da3 100644 --- a/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrViewModelTest.kt +++ b/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/ExternalCredentialScanOcrViewModelTest.kt @@ -6,15 +6,15 @@ import com.google.common.truth.Truth.* import com.jraska.livedata.test import com.simprints.core.tools.time.TimeHelper import com.simprints.core.tools.time.Timestamp -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessment import com.simprints.feature.externalcredential.screens.scanocr.model.OcrDocumentType import com.simprints.feature.externalcredential.screens.scanocr.model.ScannedMfidDocument import com.simprints.feature.externalcredential.screens.scanocr.usecase.BuildScannedCredentialResultUseCase import com.simprints.feature.externalcredential.screens.scanocr.usecase.GetLightingConditionsAssessmentConfigUseCase -import com.simprints.feature.externalcredential.screens.scanocr.usecase.GetLightingConditionsAssessmentUseCase import com.simprints.feature.externalcredential.screens.scanocr.usecase.ScanMfidDocumentUseCase import com.simprints.feature.externalcredential.screens.search.model.ScannedCredentialResult import com.simprints.infra.camera.Frame +import com.simprints.infra.camera.lighting.GetLightingConditionsAssessmentUseCase +import com.simprints.infra.camera.lighting.LightingConditionsAssessment import com.simprints.infra.camera.postprocess.FrameCropToTargetUseCase import com.simprints.infra.config.store.ConfigRepository import com.simprints.infra.config.store.models.ExperimentalProjectConfiguration.Companion.MFID_LIGHTING_CONDITIONS_ASSESSMENT_ENABLED diff --git a/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentConfigUseCaseTest.kt b/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentConfigUseCaseTest.kt index 76bd3f9edb..1d058cda29 100644 --- a/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentConfigUseCaseTest.kt +++ b/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentConfigUseCaseTest.kt @@ -1,7 +1,7 @@ package com.simprints.feature.externalcredential.screens.scanocr.usecase import com.google.common.truth.Truth.assertThat -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessmentConfig +import com.simprints.infra.camera.lighting.LightingConditionsAssessmentConfig import com.simprints.infra.config.store.ConfigRepository import com.simprints.infra.config.store.models.ExperimentalProjectConfiguration.Companion.MFID_LIGHTING_CONDITIONS_ASSESSMENT_ENABLED import com.simprints.infra.config.store.models.ExperimentalProjectConfiguration.Companion.MFID_LIGHTING_CONDITIONS_ASSESSMENT_GLARE_BRIGHTNESS diff --git a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentUseCase.kt b/infra/camera/src/main/java/com/simprints/infra/camera/lighting/GetLightingConditionsAssessmentUseCase.kt similarity index 96% rename from feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentUseCase.kt rename to infra/camera/src/main/java/com/simprints/infra/camera/lighting/GetLightingConditionsAssessmentUseCase.kt index 79e9351cf0..26822c2220 100644 --- a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentUseCase.kt +++ b/infra/camera/src/main/java/com/simprints/infra/camera/lighting/GetLightingConditionsAssessmentUseCase.kt @@ -1,13 +1,11 @@ -package com.simprints.feature.externalcredential.screens.scanocr.usecase +package com.simprints.infra.camera.lighting import android.graphics.Bitmap -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessment -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessmentConfig import javax.inject.Inject import kotlin.math.ceil import kotlin.math.roundToInt -internal class GetLightingConditionsAssessmentUseCase @Inject constructor() { +class GetLightingConditionsAssessmentUseCase @Inject constructor() { /** * Detects normal, too dim or too bright lighting in a bitmap of an image of a card that approximately fits the image. * diff --git a/infra/camera/src/main/java/com/simprints/infra/camera/lighting/LightingConditionsAssessment.kt b/infra/camera/src/main/java/com/simprints/infra/camera/lighting/LightingConditionsAssessment.kt new file mode 100644 index 0000000000..224703b8c0 --- /dev/null +++ b/infra/camera/src/main/java/com/simprints/infra/camera/lighting/LightingConditionsAssessment.kt @@ -0,0 +1,10 @@ +package com.simprints.infra.camera.lighting + +import com.simprints.core.ExcludedFromGeneratedTestCoverageReports + +@ExcludedFromGeneratedTestCoverageReports("Enum") +enum class LightingConditionsAssessment { + NORMAL, + TOO_DIM, + TOO_BRIGHT, +} diff --git a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/model/LightingConditionsAssessmentConfig.kt b/infra/camera/src/main/java/com/simprints/infra/camera/lighting/LightingConditionsAssessmentConfig.kt similarity index 76% rename from feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/model/LightingConditionsAssessmentConfig.kt rename to infra/camera/src/main/java/com/simprints/infra/camera/lighting/LightingConditionsAssessmentConfig.kt index b425cfd0ed..e64cc7e851 100644 --- a/feature/external-credential/src/main/java/com/simprints/feature/externalcredential/screens/scanocr/model/LightingConditionsAssessmentConfig.kt +++ b/infra/camera/src/main/java/com/simprints/infra/camera/lighting/LightingConditionsAssessmentConfig.kt @@ -1,9 +1,9 @@ -package com.simprints.feature.externalcredential.screens.scanocr.model +package com.simprints.infra.camera.lighting import com.simprints.core.ExcludedFromGeneratedTestCoverageReports @ExcludedFromGeneratedTestCoverageReports("Data struct") -internal data class LightingConditionsAssessmentConfig( +data class LightingConditionsAssessmentConfig( val isEnabled: Boolean, val borderWidthPercent: Int, val lowContrastThresholdPercent: Int, diff --git a/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentUseCaseTest.kt b/infra/camera/src/test/java/com/simprints/infra/camera/lighting/GetLightingConditionsAssessmentUseCaseTest.kt similarity index 97% rename from feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentUseCaseTest.kt rename to infra/camera/src/test/java/com/simprints/infra/camera/lighting/GetLightingConditionsAssessmentUseCaseTest.kt index 78d59abea7..c75183d6ce 100644 --- a/feature/external-credential/src/test/java/com/simprints/feature/externalcredential/screens/scanocr/usecase/GetLightingConditionsAssessmentUseCaseTest.kt +++ b/infra/camera/src/test/java/com/simprints/infra/camera/lighting/GetLightingConditionsAssessmentUseCaseTest.kt @@ -1,11 +1,9 @@ -package com.simprints.feature.externalcredential.screens.scanocr.usecase +package com.simprints.infra.camera.lighting import android.graphics.Bitmap import android.graphics.Color import androidx.test.ext.junit.runners.AndroidJUnit4 import com.google.common.truth.Truth.assertThat -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessment -import com.simprints.feature.externalcredential.screens.scanocr.model.LightingConditionsAssessmentConfig import io.mockk.every import io.mockk.mockk import org.junit.Before