Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ internal class ExternalCredentialScanOcrFragment : Fragment(R.layout.fragment_ex
super.onViewCreated(view, savedInstanceState)
applySystemBarInsets(view)
Simber.i("ExternalCredentialScanOcrFragment started", tag = MULTI_FACTOR_ID)
initObservers()
}

override fun onResume() {
Expand Down Expand Up @@ -147,7 +146,7 @@ internal class ExternalCredentialScanOcrFragment : Fragment(R.layout.fragment_ex
}

private fun initializeFragment() {
renderInitialState()
initObservers()
initCamera(onComplete = {
if (viewModel.isOcrActive) {
startOcr()
Expand All @@ -156,7 +155,7 @@ internal class ExternalCredentialScanOcrFragment : Fragment(R.layout.fragment_ex
}

private fun initObservers() {
viewModel.stateLiveData.observe(viewLifecycleOwner) { state ->
viewModel.scanOcrStateLiveData.observe(viewLifecycleOwner) { state ->
when (state) {
is ScanOcrState.ScanningInProgress -> {
renderProgress(state)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import com.simprints.feature.externalcredential.screens.scanocr.usecase.Normaliz
import com.simprints.feature.externalcredential.screens.scanocr.usecase.ZoomOntoCredentialUseCase
import com.simprints.feature.externalcredential.screens.search.model.ScannedCredential
import com.simprints.infra.authstore.AuthStore
import com.simprints.infra.config.store.models.ExperimentalProjectConfiguration
import com.simprints.infra.config.store.models.TokenKeyType
import com.simprints.infra.config.store.models.experimental
import com.simprints.infra.config.store.tokenization.TokenizationProcessor
Expand Down Expand Up @@ -64,13 +63,13 @@ internal class ExternalCredentialScanOcrViewModel @AssistedInject constructor(
private set
val isOcrActive: Boolean
get() = detectedBlocks.isNotEmpty()
private var state: ScanOcrState = ScanOcrState.EMPTY
private var ocrState: ScanOcrState = ScanOcrState.EMPTY
set(value) {
field = value
_stateLiveData.postValue(value)
_scanOcrStateLiveData.postValue(value)
}
private val _stateLiveData = MutableLiveData<ScanOcrState>()
val stateLiveData: LiveData<ScanOcrState> = _stateLiveData
private val _scanOcrStateLiveData = MutableLiveData(ocrState)
val scanOcrStateLiveData: LiveData<ScanOcrState> = _scanOcrStateLiveData
val finishOcrEvent: LiveData<LiveDataEventWithContent<ScannedCredential>>
get() = _finishOcrEvent
private val _finishOcrEvent = MutableLiveData<LiveDataEventWithContent<ScannedCredential>>()
Expand All @@ -91,7 +90,7 @@ internal class ExternalCredentialScanOcrViewModel @AssistedInject constructor(
}

private fun updateState(state: (ScanOcrState) -> ScanOcrState) {
this.state = state(this.state)
this.ocrState = state(this.ocrState)
}

fun getDocumentTypeRes(): Int = when (ocrDocumentType) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import kotlin.concurrent.timer

internal class ExternalCredentialScanOcrViewModelTest {
@get:Rule
Expand Down Expand Up @@ -104,7 +103,7 @@ internal class ExternalCredentialScanOcrViewModelTest {

@Test
fun `ocrStarted updates state to ScanningInProgress`() {
val observer = viewModel.stateLiveData.test()
val observer = viewModel.scanOcrStateLiveData.test()
viewModel.ocrStarted()

val state = observer.value() as ScanOcrState.ScanningInProgress
Expand All @@ -122,7 +121,7 @@ internal class ExternalCredentialScanOcrViewModelTest {
coEvery { cropDocumentFromPreviewUseCase(mockNormalizedBitmap, any()) } returns mockCroppedBitmap
coEvery { getCredentialCoordinatesUseCase(mockCroppedBitmap, documentType) } returns mockDetectedBlock

val observer = viewModel.stateLiveData.test()
val observer = viewModel.scanOcrStateLiveData.test()
viewModel.ocrOnFrameStarted()
viewModel.runOcrOnFrame(bitmap, cropConfig)

Expand Down Expand Up @@ -158,7 +157,7 @@ internal class ExternalCredentialScanOcrViewModelTest {
coEvery { credentialImageRepository.saveCredentialScan(mockBitmap, any()) } returns zoomedImagePath

val finishObserver = viewModel.finishOcrEvent.test()
val stateObserver = viewModel.stateLiveData.test()
val stateObserver = viewModel.scanOcrStateLiveData.test()

viewModel.ocrStarted() // Initialises capture timing
viewModel.processOcrResultsAndFinish()
Expand Down