Updated on 2026-08-14
This commit is contained in:
parent
f9f2ac60d0
commit
c76d1de3cf
15 changed files with 211 additions and 84 deletions
|
|
@ -4,6 +4,7 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.tangem.core.analytics.models.AnalyticsParam
|
||||
import com.tangem.core.decompose.context.AppComponentContext
|
||||
import com.tangem.core.decompose.factory.ComponentFactory
|
||||
import com.tangem.core.decompose.model.getOrCreateModel
|
||||
|
|
@ -21,7 +22,7 @@ internal class ScanFailsComponent @AssistedInject constructor(
|
|||
|
||||
private val model: ScanFailsModel = getOrCreateModel(params)
|
||||
|
||||
override suspend fun show(source: ScanFailsRequester.Source): ScanFailsRequester.Result {
|
||||
override suspend fun show(source: AnalyticsParam.ScreensSources): ScanFailsRequester.Result {
|
||||
model.show(source)
|
||||
return model.waitResult()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,14 +30,13 @@ internal class ScanFailsModel @Inject constructor(
|
|||
val uiState: StateFlow<ScanFailsUM>
|
||||
field = MutableStateFlow(ScanFailsUM(onDismiss = ::dismiss))
|
||||
|
||||
fun show(source: ScanFailsRequester.Source) {
|
||||
val analyticsSource = source.toAnalyticsSource()
|
||||
fun show(source: AnalyticsParam.ScreensSources) {
|
||||
result.value = null
|
||||
uiState.update {
|
||||
ScanFailsUM(
|
||||
isShown = true,
|
||||
onHowToScan = { onHowToScan(analyticsSource) },
|
||||
onRequestSupport = { onRequestSupport(analyticsSource) },
|
||||
onHowToScan = { onHowToScan(source) },
|
||||
onRequestSupport = { onRequestSupport(source) },
|
||||
onDismiss = ::dismiss,
|
||||
)
|
||||
}
|
||||
|
|
@ -70,11 +69,4 @@ internal class ScanFailsModel @Inject constructor(
|
|||
sendFeedbackEmailUseCase(type = FeedbackEmailType.ScanningProblem)
|
||||
}
|
||||
}
|
||||
|
||||
private fun ScanFailsRequester.Source.toAnalyticsSource(): AnalyticsParam.ScreensSources = when (this) {
|
||||
ScanFailsRequester.Source.MAIN -> AnalyticsParam.ScreensSources.Main
|
||||
ScanFailsRequester.Source.SIGN_IN -> AnalyticsParam.ScreensSources.SignIn
|
||||
ScanFailsRequester.Source.SETTINGS -> AnalyticsParam.ScreensSources.Settings
|
||||
ScanFailsRequester.Source.INTRO -> AnalyticsParam.ScreensSources.Intro
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.tangem.tap.features.scanfails
|
||||
|
||||
import com.tangem.core.analytics.models.AnalyticsParam
|
||||
import com.tangem.domain.card.ScanFailsRequester
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.filterNotNull
|
||||
|
|
@ -13,7 +14,7 @@ class ScanFailsRequesterProxy @Inject constructor() : ScanFailsRequester {
|
|||
|
||||
val componentRequester = MutableStateFlow<ScanFailsRequester?>(null)
|
||||
|
||||
override suspend fun show(source: ScanFailsRequester.Source): ScanFailsRequester.Result {
|
||||
override suspend fun show(source: AnalyticsParam.ScreensSources): ScanFailsRequester.Result {
|
||||
return withTimeout(timeMillis = 1000) {
|
||||
componentRequester.filterNotNull().first()
|
||||
}.show(source)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package com.tangem.tap.features.scanfails.di
|
|||
|
||||
import com.tangem.core.decompose.factory.ComponentFactory
|
||||
import com.tangem.core.decompose.model.Model
|
||||
import com.tangem.domain.card.ScanFailsCounter
|
||||
import com.tangem.domain.card.ScanFailsRequester
|
||||
import com.tangem.tap.domain.scanCard.DefaultScanFailsCounter
|
||||
import com.tangem.tap.features.scanfails.ScanFailsComponent
|
||||
import com.tangem.tap.features.scanfails.ScanFailsModel
|
||||
import com.tangem.tap.features.scanfails.ScanFailsRequesterProxy
|
||||
|
|
@ -29,4 +31,8 @@ internal interface ScanFailsModule {
|
|||
@Binds
|
||||
@Singleton
|
||||
fun bindRequester(impl: ScanFailsRequesterProxy): ScanFailsRequester
|
||||
|
||||
@Binds
|
||||
@Singleton
|
||||
fun bindScanFailsCounter(impl: DefaultScanFailsCounter): ScanFailsCounter
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue