Updated on 2026-08-14
This commit is contained in:
parent
ecf8e5fc96
commit
7846772be2
7 changed files with 25 additions and 17 deletions
|
|
@ -26,7 +26,9 @@ private fun handleDisclaimerMiddleware(action: Action, appState: AppState) {
|
|||
|
||||
when (action) {
|
||||
is DisclaimerAction.Show -> {
|
||||
store.dispatchNavigationAction { push(AppRoute.Disclaimer) }
|
||||
store.dispatchNavigationAction {
|
||||
push(AppRoute.Disclaimer(isTosAccepted = action.from == DisclaimerSource.Details))
|
||||
}
|
||||
}
|
||||
is DisclaimerAction.AcceptDisclaimer -> {
|
||||
mainScope.launch {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,14 @@ sealed class AppRoute(val path: String) : Route, RouteBundleParams {
|
|||
}
|
||||
|
||||
@Serializable
|
||||
data object Disclaimer : AppRoute(path = "/disclaimer")
|
||||
data class Disclaimer(
|
||||
val isTosAccepted: Boolean,
|
||||
) : AppRoute(path = "/disclaimer${if (isTosAccepted) "/tos_accepted" else ""}") {
|
||||
|
||||
companion object {
|
||||
const val IS_TOS_ACCEPTED_KEY = "isTosAccepted"
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data object OnboardingNote : AppRoute(path = "/onboarding/note")
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ internal class ItemsBuilder @Inject constructor(
|
|||
id = "disclaimer",
|
||||
title = resourceReference(R.string.disclaimer_title),
|
||||
iconRes = R.drawable.ic_text_24,
|
||||
onClick = { router.push(AppRoute.Disclaimer) },
|
||||
onClick = { router.push(AppRoute.Disclaimer(isTosAccepted = true)) },
|
||||
),
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ dependencies {
|
|||
implementation(projects.core.utils)
|
||||
implementation(projects.core.featuretoggles)
|
||||
implementation(projects.core.navigation)
|
||||
implementation(projects.common.routing)
|
||||
|
||||
/** Domain modules */
|
||||
implementation(projects.domain.models)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import androidx.activity.compose.BackHandler
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.tangem.core.navigation.ReduxNavController
|
||||
import com.tangem.common.routing.AppRouter
|
||||
import com.tangem.core.ui.UiDependencies
|
||||
import com.tangem.core.ui.components.SystemBarsEffect
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
|
|
@ -23,7 +23,7 @@ internal class DisclaimerFragment : ComposeFragment() {
|
|||
override lateinit var uiDependencies: UiDependencies
|
||||
|
||||
@Inject
|
||||
lateinit var reduxNavController: ReduxNavController
|
||||
lateinit var appRouter: AppRouter
|
||||
|
||||
private val viewModel by viewModels<DisclaimerViewModel>()
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ internal class DisclaimerFragment : ComposeFragment() {
|
|||
val systemBarsColor = TangemTheme.colors.background.primary
|
||||
BackHandler {
|
||||
if (isTosAccepted) {
|
||||
reduxNavController.popBackStack()
|
||||
appRouter.pop()
|
||||
} else {
|
||||
requireActivity().finish()
|
||||
}
|
||||
|
|
@ -48,7 +48,7 @@ internal class DisclaimerFragment : ComposeFragment() {
|
|||
SystemBarsEffect {
|
||||
setSystemBarsColor(systemBarsColor)
|
||||
}
|
||||
DisclaimerScreen(viewModel.state, reduxNavController::popBackStack)
|
||||
DisclaimerScreen(viewModel.state, appRouter::pop)
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package com.tangem.features.disclaimer.impl.di
|
||||
|
||||
import com.tangem.core.navigation.ReduxNavController
|
||||
import com.tangem.common.routing.AppRouter
|
||||
import com.tangem.features.disclaimer.api.DisclaimerRouter
|
||||
import com.tangem.features.disclaimer.impl.navigation.DefaultDisclaimerRouter
|
||||
import dagger.Module
|
||||
|
|
@ -18,7 +18,7 @@ object DisclaimerRouterModule {
|
|||
|
||||
@Provides
|
||||
@ActivityScoped
|
||||
fun provideDisclaimerRouter(reduxNavController: ReduxNavController): DisclaimerRouter {
|
||||
return DefaultDisclaimerRouter(reduxNavController)
|
||||
fun provideDisclaimerRouter(appRouter: AppRouter): DisclaimerRouter {
|
||||
return DefaultDisclaimerRouter(appRouter)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +1,12 @@
|
|||
package com.tangem.features.disclaimer.impl.navigation
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.tangem.core.navigation.AppScreen
|
||||
import com.tangem.core.navigation.NavigationAction
|
||||
import com.tangem.core.navigation.ReduxNavController
|
||||
import com.tangem.common.routing.AppRoute
|
||||
import com.tangem.common.routing.AppRouter
|
||||
import com.tangem.features.disclaimer.impl.DisclaimerFragment
|
||||
import javax.inject.Inject
|
||||
|
||||
internal class DefaultDisclaimerRouter @Inject constructor(
|
||||
private val reduxNavController: ReduxNavController,
|
||||
internal class DefaultDisclaimerRouter(
|
||||
private val appRouter: AppRouter,
|
||||
) : InnerDisclaimerRouter {
|
||||
|
||||
override fun entryFragment(): Fragment = DisclaimerFragment.create()
|
||||
|
|
@ -18,6 +16,6 @@ internal class DefaultDisclaimerRouter @Inject constructor(
|
|||
}
|
||||
|
||||
override fun openHome() {
|
||||
reduxNavController.navigate(action = NavigationAction.NavigateTo(screen = AppScreen.Home))
|
||||
appRouter.push(AppRoute.Home)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue