Updated on 2026-08-14
This commit is contained in:
parent
9be9f8f3e7
commit
865d4a1ed5
4 changed files with 26 additions and 5 deletions
|
|
@ -44,6 +44,7 @@ import com.tangem.domain.onboarding.repository.OnboardingRepository
|
||||||
import com.tangem.domain.settings.NeverRequestPermissionUseCase
|
import com.tangem.domain.settings.NeverRequestPermissionUseCase
|
||||||
import com.tangem.domain.settings.NeverToInitiallyAskPermissionUseCase
|
import com.tangem.domain.settings.NeverToInitiallyAskPermissionUseCase
|
||||||
import com.tangem.domain.settings.ShouldInitiallyAskPermissionUseCase
|
import com.tangem.domain.settings.ShouldInitiallyAskPermissionUseCase
|
||||||
|
import com.tangem.feature.referral.domain.ShouldShowMobileWalletPromoUseCase
|
||||||
import com.tangem.features.hotwallet.HotAccessCodeRequestComponent
|
import com.tangem.features.hotwallet.HotAccessCodeRequestComponent
|
||||||
import com.tangem.features.hotwallet.accesscoderequest.proxy.HotWalletPasswordRequesterProxy
|
import com.tangem.features.hotwallet.accesscoderequest.proxy.HotWalletPasswordRequesterProxy
|
||||||
import com.tangem.features.onboarding.v2.common.analytics.OnboardingEvent
|
import com.tangem.features.onboarding.v2.common.analytics.OnboardingEvent
|
||||||
|
|
@ -70,7 +71,7 @@ import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@Suppress("LongParameterList")
|
@Suppress("LongParameterList", "LargeClass")
|
||||||
internal class DefaultRoutingComponent @AssistedInject constructor(
|
internal class DefaultRoutingComponent @AssistedInject constructor(
|
||||||
@Assisted context: AppComponentContext,
|
@Assisted context: AppComponentContext,
|
||||||
@Assisted val initialStack: List<AppRoute>?,
|
@Assisted val initialStack: List<AppRoute>?,
|
||||||
|
|
@ -99,6 +100,7 @@ internal class DefaultRoutingComponent @AssistedInject constructor(
|
||||||
private val shouldInitiallyAskPermissionUseCase: ShouldInitiallyAskPermissionUseCase,
|
private val shouldInitiallyAskPermissionUseCase: ShouldInitiallyAskPermissionUseCase,
|
||||||
private val neverRequestPermissionUseCase: NeverRequestPermissionUseCase,
|
private val neverRequestPermissionUseCase: NeverRequestPermissionUseCase,
|
||||||
private val featureTogglesManager: FeatureTogglesManager,
|
private val featureTogglesManager: FeatureTogglesManager,
|
||||||
|
private val shouldShowMobileWalletPromoUseCase: ShouldShowMobileWalletPromoUseCase,
|
||||||
) : RoutingComponent,
|
) : RoutingComponent,
|
||||||
AppComponentContext by context,
|
AppComponentContext by context,
|
||||||
SnackbarHandler {
|
SnackbarHandler {
|
||||||
|
|
@ -229,18 +231,32 @@ internal class DefaultRoutingComponent @AssistedInject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val isHideStoriesForReferralEnabled = featureTogglesManager.isFeatureEnabled(
|
||||||
|
FeatureToggles.TWI_1512_HIDE_STORIES_FOR_REFERRAL_ENABLED,
|
||||||
|
)
|
||||||
|
// Referral users skip the Home stories screen and land directly on the
|
||||||
|
// mobile wallet creation flow.
|
||||||
|
val afterEmptyRoute: AppRoute = if (isHideStoriesForReferralEnabled && shouldShowMobileWalletPromoUseCase()) {
|
||||||
|
AppRoute.CreateWalletStart(mode = AppRoute.CreateWalletStart.Mode.HotWallet)
|
||||||
|
} else {
|
||||||
|
AppRoute.Home(launchMode = launchMode)
|
||||||
|
}
|
||||||
|
|
||||||
val shouldAskPushPermission = shouldInitiallyAskPermissionUseCase(PUSH_PERMISSION).getOrNull()
|
val shouldAskPushPermission = shouldInitiallyAskPermissionUseCase(PUSH_PERMISSION).getOrNull()
|
||||||
?: return AppRoute.Home(launchMode = launchMode)
|
?: return afterEmptyRoute
|
||||||
return if (shouldAskPushPermission) {
|
return if (shouldAskPushPermission) {
|
||||||
notificationsRepository.setShouldShowNotifications(
|
notificationsRepository.setShouldShowNotifications(
|
||||||
key = NotificationId.EnablePushesReminderNotification.key,
|
key = NotificationId.EnablePushesReminderNotification.key,
|
||||||
value = false,
|
value = false,
|
||||||
)
|
)
|
||||||
AppRoute.PushNotification(AppRoute.PushNotification.Source.Stories)
|
AppRoute.PushNotification(
|
||||||
|
source = AppRoute.PushNotification.Source.Stories,
|
||||||
|
nextRoute = afterEmptyRoute,
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
neverToInitiallyAskPermissionUseCase(PUSH_PERMISSION)
|
neverToInitiallyAskPermissionUseCase(PUSH_PERMISSION)
|
||||||
neverRequestPermissionUseCase(PUSH_PERMISSION)
|
neverRequestPermissionUseCase(PUSH_PERMISSION)
|
||||||
AppRoute.Home(launchMode = launchMode)
|
afterEmptyRoute
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -448,7 +448,7 @@ internal class ChildFactory @Inject constructor(
|
||||||
params = PushNotificationsParams(
|
params = PushNotificationsParams(
|
||||||
modelCallbacks = PushNotificationsModelCallbacksStub(),
|
modelCallbacks = PushNotificationsModelCallbacksStub(),
|
||||||
source = route.source,
|
source = route.source,
|
||||||
nextRoute = AppRoute.Home(),
|
nextRoute = route.nextRoute ?: AppRoute.Home(),
|
||||||
),
|
),
|
||||||
componentFactory = pushNotificationsComponentFactory,
|
componentFactory = pushNotificationsComponentFactory,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -243,6 +243,7 @@ sealed class AppRoute(val path: String) : Route {
|
||||||
@Serializable
|
@Serializable
|
||||||
data class PushNotification(
|
data class PushNotification(
|
||||||
val source: Source,
|
val source: Source,
|
||||||
|
val nextRoute: AppRoute? = null,
|
||||||
) : AppRoute(path = "/push_notification") {
|
) : AppRoute(path = "/push_notification") {
|
||||||
enum class Source {
|
enum class Source {
|
||||||
Stories,
|
Stories,
|
||||||
|
|
|
||||||
|
|
@ -102,5 +102,9 @@
|
||||||
{
|
{
|
||||||
"name": "AND_15154_YIELD_PROMO_ENABLED",
|
"name": "AND_15154_YIELD_PROMO_ENABLED",
|
||||||
"version": "undefined"
|
"version": "undefined"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TWI_1512_HIDE_STORIES_FOR_REFERRAL_ENABLED",
|
||||||
|
"version": "5.39"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue