Updated on 2026-08-14
This commit is contained in:
parent
f5666f3bd8
commit
ad0dbbff1d
25 changed files with 241 additions and 5 deletions
|
|
@ -81,6 +81,8 @@ dependencies {
|
||||||
implementation(projects.features.tokendetails.api)
|
implementation(projects.features.tokendetails.api)
|
||||||
implementation(projects.features.tokendetails.impl)
|
implementation(projects.features.tokendetails.impl)
|
||||||
implementation(projects.features.send.api)
|
implementation(projects.features.send.api)
|
||||||
|
implementation(projects.features.manageTokens.api)
|
||||||
|
implementation(projects.features.manageTokens.impl)
|
||||||
|
|
||||||
/** AndroidX libraries */
|
/** AndroidX libraries */
|
||||||
implementation(deps.androidx.core.ktx)
|
implementation(deps.androidx.core.ktx)
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import com.tangem.domain.apptheme.model.AppThemeMode
|
||||||
import com.tangem.domain.card.ScanCardUseCase
|
import com.tangem.domain.card.ScanCardUseCase
|
||||||
import com.tangem.domain.card.repository.CardSdkConfigRepository
|
import com.tangem.domain.card.repository.CardSdkConfigRepository
|
||||||
import com.tangem.domain.wallets.legacy.UserWalletsListManager
|
import com.tangem.domain.wallets.legacy.UserWalletsListManager
|
||||||
|
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||||
import com.tangem.features.tester.api.TesterRouter
|
import com.tangem.features.tester.api.TesterRouter
|
||||||
import com.tangem.features.tokendetails.navigation.TokenDetailsRouter
|
import com.tangem.features.tokendetails.navigation.TokenDetailsRouter
|
||||||
import com.tangem.features.wallet.navigation.WalletRouter
|
import com.tangem.features.wallet.navigation.WalletRouter
|
||||||
|
|
@ -108,6 +109,9 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var tokenDetailsRouter: TokenDetailsRouter
|
lateinit var tokenDetailsRouter: TokenDetailsRouter
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var manageTokensRouter: ManageTokensRouter
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var walletConnectInteractor: WalletConnectInteractor
|
lateinit var walletConnectInteractor: WalletConnectInteractor
|
||||||
|
|
||||||
|
|
@ -155,6 +159,7 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac
|
||||||
walletRouter = walletRouter,
|
walletRouter = walletRouter,
|
||||||
walletConnectInteractor = walletConnectInteractor,
|
walletConnectInteractor = walletConnectInteractor,
|
||||||
tokenDetailsRouter = tokenDetailsRouter,
|
tokenDetailsRouter = tokenDetailsRouter,
|
||||||
|
manageTokensRouter = manageTokensRouter,
|
||||||
cardSdkConfigRepository = cardSdkConfigRepository,
|
cardSdkConfigRepository = cardSdkConfigRepository,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ import com.tangem.domain.walletmanager.WalletManagersFacade
|
||||||
import com.tangem.domain.wallets.legacy.UserWalletsListManager
|
import com.tangem.domain.wallets.legacy.UserWalletsListManager
|
||||||
import com.tangem.domain.wallets.legacy.WalletManagersRepository
|
import com.tangem.domain.wallets.legacy.WalletManagersRepository
|
||||||
import com.tangem.domain.wallets.repository.WalletsRepository
|
import com.tangem.domain.wallets.repository.WalletsRepository
|
||||||
|
import com.tangem.features.managetokens.featuretoggles.ManageTokensFeatureToggles
|
||||||
import com.tangem.features.tokendetails.featuretoggles.TokenDetailsFeatureToggles
|
import com.tangem.features.tokendetails.featuretoggles.TokenDetailsFeatureToggles
|
||||||
import com.tangem.features.wallet.featuretoggles.WalletFeatureToggles
|
import com.tangem.features.wallet.featuretoggles.WalletFeatureToggles
|
||||||
import com.tangem.tap.common.analytics.AnalyticsFactory
|
import com.tangem.tap.common.analytics.AnalyticsFactory
|
||||||
|
|
@ -173,6 +174,9 @@ internal class TapApplication : Application(), ImageLoaderFactory {
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var tokenDetailsFeatureToggles: TokenDetailsFeatureToggles
|
lateinit var tokenDetailsFeatureToggles: TokenDetailsFeatureToggles
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var manageTokensFeatureToggles: ManageTokensFeatureToggles
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var scanCardProcessor: ScanCardProcessor
|
lateinit var scanCardProcessor: ScanCardProcessor
|
||||||
|
|
||||||
|
|
@ -291,6 +295,7 @@ internal class TapApplication : Application(), ImageLoaderFactory {
|
||||||
walletConnectRepository = walletConnect2Repository,
|
walletConnectRepository = walletConnect2Repository,
|
||||||
walletConnectSessionsRepository = walletConnectSessionsRepository,
|
walletConnectSessionsRepository = walletConnectSessionsRepository,
|
||||||
tokenDetailsFeatureToggles = tokenDetailsFeatureToggles,
|
tokenDetailsFeatureToggles = tokenDetailsFeatureToggles,
|
||||||
|
manageTokensFeatureToggles = manageTokensFeatureToggles,
|
||||||
scanCardProcessor = scanCardProcessor,
|
scanCardProcessor = scanCardProcessor,
|
||||||
appCurrencyRepository = appCurrencyRepository,
|
appCurrencyRepository = appCurrencyRepository,
|
||||||
walletManagersFacade = walletManagersFacade,
|
walletManagersFacade = walletManagersFacade,
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,18 @@ private fun fragmentFactory(screen: AppScreen): Fragment {
|
||||||
AppScreen.ResetToFactory -> ResetCardFragment()
|
AppScreen.ResetToFactory -> ResetCardFragment()
|
||||||
AppScreen.AccessCodeRecovery -> AccessCodeRecoveryFragment()
|
AppScreen.AccessCodeRecovery -> AccessCodeRecoveryFragment()
|
||||||
AppScreen.Disclaimer -> DisclaimerFragment()
|
AppScreen.Disclaimer -> DisclaimerFragment()
|
||||||
AppScreen.AddTokens -> TokensListFragment()
|
AppScreen.ManageTokens -> {
|
||||||
|
val featureToggles = store.state.daggerGraphState.get(
|
||||||
|
getDependency = DaggerGraphState::manageTokensFeatureToggles,
|
||||||
|
)
|
||||||
|
if (featureToggles.isRedesignedScreenEnabled) {
|
||||||
|
store.state.daggerGraphState
|
||||||
|
.get(getDependency = DaggerGraphState::manageTokensRouter)
|
||||||
|
.getEntryFragment()
|
||||||
|
} else {
|
||||||
|
TokensListFragment()
|
||||||
|
}
|
||||||
|
}
|
||||||
AppScreen.AddCustomToken -> AddCustomTokenFragment()
|
AppScreen.AddCustomToken -> AddCustomTokenFragment()
|
||||||
AppScreen.WalletDetails -> {
|
AppScreen.WalletDetails -> {
|
||||||
val featureToggles = store.state.daggerGraphState.get(
|
val featureToggles = store.state.daggerGraphState.get(
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ class HomeFragment : Fragment(), StoreSubscriber<HomeState> {
|
||||||
},
|
},
|
||||||
onSearchTokensClick = {
|
onSearchTokensClick = {
|
||||||
Analytics.send(IntroductionProcess.ButtonTokensList())
|
Analytics.send(IntroductionProcess.ButtonTokensList())
|
||||||
store.dispatch(NavigationAction.NavigateTo(AppScreen.AddTokens))
|
store.dispatch(NavigationAction.NavigateTo(AppScreen.ManageTokens))
|
||||||
store.dispatch(TokensAction.SetArgs.ReadAccess)
|
store.dispatch(TokensAction.SetArgs.ReadAccess)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ class MultiWalletView : WalletView() {
|
||||||
Analytics.send(Portfolio.ButtonManageTokens())
|
Analytics.send(Portfolio.ButtonManageTokens())
|
||||||
|
|
||||||
store.dispatch(action = TokensAction.SetArgs.ManageAccess)
|
store.dispatch(action = TokensAction.SetArgs.ManageAccess)
|
||||||
store.dispatch(action = NavigationAction.NavigateTo(screen = AppScreen.AddTokens))
|
store.dispatch(action = NavigationAction.NavigateTo(screen = AppScreen.ManageTokens))
|
||||||
}
|
}
|
||||||
handleErrorStates(state = state, binding = binding, fragment = fragment)
|
handleErrorStates(state = state, binding = binding, fragment = fragment)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.tangem.tap.proxy.redux
|
||||||
|
|
||||||
import com.tangem.domain.card.ScanCardUseCase
|
import com.tangem.domain.card.ScanCardUseCase
|
||||||
import com.tangem.domain.card.repository.CardSdkConfigRepository
|
import com.tangem.domain.card.repository.CardSdkConfigRepository
|
||||||
|
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||||
import com.tangem.features.tester.api.TesterRouter
|
import com.tangem.features.tester.api.TesterRouter
|
||||||
import com.tangem.features.tokendetails.navigation.TokenDetailsRouter
|
import com.tangem.features.tokendetails.navigation.TokenDetailsRouter
|
||||||
import com.tangem.features.wallet.navigation.WalletRouter
|
import com.tangem.features.wallet.navigation.WalletRouter
|
||||||
|
|
@ -16,6 +17,7 @@ sealed interface DaggerGraphAction : Action {
|
||||||
val walletRouter: WalletRouter,
|
val walletRouter: WalletRouter,
|
||||||
val walletConnectInteractor: WalletConnectInteractor,
|
val walletConnectInteractor: WalletConnectInteractor,
|
||||||
val tokenDetailsRouter: TokenDetailsRouter,
|
val tokenDetailsRouter: TokenDetailsRouter,
|
||||||
|
val manageTokensRouter: ManageTokensRouter,
|
||||||
val cardSdkConfigRepository: CardSdkConfigRepository,
|
val cardSdkConfigRepository: CardSdkConfigRepository,
|
||||||
) : DaggerGraphAction
|
) : DaggerGraphAction
|
||||||
}
|
}
|
||||||
|
|
@ -18,6 +18,7 @@ object DaggerGraphReducer {
|
||||||
walletRouter = action.walletRouter,
|
walletRouter = action.walletRouter,
|
||||||
walletConnectInteractor = action.walletConnectInteractor,
|
walletConnectInteractor = action.walletConnectInteractor,
|
||||||
tokenDetailsRouter = action.tokenDetailsRouter,
|
tokenDetailsRouter = action.tokenDetailsRouter,
|
||||||
|
manageTokensRouter = action.manageTokensRouter,
|
||||||
cardSdkConfigRepository = action.cardSdkConfigRepository,
|
cardSdkConfigRepository = action.cardSdkConfigRepository,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ import com.tangem.domain.card.repository.CardSdkConfigRepository
|
||||||
import com.tangem.domain.tokens.repository.CurrenciesRepository
|
import com.tangem.domain.tokens.repository.CurrenciesRepository
|
||||||
import com.tangem.domain.walletmanager.WalletManagersFacade
|
import com.tangem.domain.walletmanager.WalletManagersFacade
|
||||||
import com.tangem.domain.wallets.repository.WalletsRepository
|
import com.tangem.domain.wallets.repository.WalletsRepository
|
||||||
|
import com.tangem.features.managetokens.featuretoggles.ManageTokensFeatureToggles
|
||||||
|
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||||
import com.tangem.features.tester.api.TesterRouter
|
import com.tangem.features.tester.api.TesterRouter
|
||||||
import com.tangem.features.tokendetails.featuretoggles.TokenDetailsFeatureToggles
|
import com.tangem.features.tokendetails.featuretoggles.TokenDetailsFeatureToggles
|
||||||
import com.tangem.features.tokendetails.navigation.TokenDetailsRouter
|
import com.tangem.features.tokendetails.navigation.TokenDetailsRouter
|
||||||
|
|
@ -37,6 +39,8 @@ data class DaggerGraphState(
|
||||||
val walletConnectInteractor: WalletConnectInteractor? = null,
|
val walletConnectInteractor: WalletConnectInteractor? = null,
|
||||||
val tokenDetailsFeatureToggles: TokenDetailsFeatureToggles? = null,
|
val tokenDetailsFeatureToggles: TokenDetailsFeatureToggles? = null,
|
||||||
val tokenDetailsRouter: TokenDetailsRouter? = null,
|
val tokenDetailsRouter: TokenDetailsRouter? = null,
|
||||||
|
val manageTokensFeatureToggles: ManageTokensFeatureToggles? = null,
|
||||||
|
val manageTokensRouter: ManageTokensRouter? = null,
|
||||||
val scanCardProcessor: ScanCardProcessor? = null,
|
val scanCardProcessor: ScanCardProcessor? = null,
|
||||||
val cardSdkConfigRepository: CardSdkConfigRepository? = null,
|
val cardSdkConfigRepository: CardSdkConfigRepository? = null,
|
||||||
val appCurrencyRepository: AppCurrencyRepository? = null,
|
val appCurrencyRepository: AppCurrencyRepository? = null,
|
||||||
|
|
|
||||||
|
|
@ -30,5 +30,9 @@
|
||||||
{
|
{
|
||||||
"name": "DARK_THEME_ENABLED",
|
"name": "DARK_THEME_ENABLED",
|
||||||
"version": "undefined"
|
"version": "undefined"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "REDESIGNED_MANAGE_TOKENS_SCREEN_ENABLED",
|
||||||
|
"version": "undefined"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ enum class AppScreen(val isDialogFragment: Boolean = false) {
|
||||||
AppSettings,
|
AppSettings,
|
||||||
ResetToFactory,
|
ResetToFactory,
|
||||||
AccessCodeRecovery,
|
AccessCodeRecovery,
|
||||||
AddTokens,
|
ManageTokens,
|
||||||
AddCustomToken,
|
AddCustomToken,
|
||||||
WalletConnectSessions,
|
WalletConnectSessions,
|
||||||
QrScan,
|
QrScan,
|
||||||
|
|
|
||||||
1
features/manage-tokens/.gitignore
vendored
Normal file
1
features/manage-tokens/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/build
|
||||||
1
features/manage-tokens/api/.gitignore
vendored
Normal file
1
features/manage-tokens/api/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/build
|
||||||
14
features/manage-tokens/api/build.gradle.kts
Normal file
14
features/manage-tokens/api/build.gradle.kts
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
plugins {
|
||||||
|
alias(deps.plugins.android.library)
|
||||||
|
alias(deps.plugins.kotlin.android)
|
||||||
|
id("configuration")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "com.tangem.features.managetokens.api"
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
/** AndroidX */
|
||||||
|
implementation(deps.androidx.fragment.ktx)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package com.tangem.features.managetokens.featuretoggles
|
||||||
|
|
||||||
|
interface ManageTokensFeatureToggles {
|
||||||
|
val isRedesignedScreenEnabled: Boolean
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
package com.tangem.features.managetokens.navigation
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
|
||||||
|
interface ManageTokensRouter {
|
||||||
|
fun getEntryFragment(): Fragment
|
||||||
|
}
|
||||||
1
features/manage-tokens/impl/.gitignore
vendored
Normal file
1
features/manage-tokens/impl/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/build
|
||||||
68
features/manage-tokens/impl/build.gradle.kts
Normal file
68
features/manage-tokens/impl/build.gradle.kts
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
plugins {
|
||||||
|
alias(deps.plugins.android.library)
|
||||||
|
alias(deps.plugins.kotlin.android)
|
||||||
|
alias(deps.plugins.kotlin.kapt)
|
||||||
|
alias(deps.plugins.hilt.android)
|
||||||
|
id("configuration")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "com.tangem.features.managetokens.impl"
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
/** AndroidX */
|
||||||
|
implementation(deps.androidx.activity.compose)
|
||||||
|
implementation(deps.material)
|
||||||
|
|
||||||
|
/** Compose */
|
||||||
|
implementation(deps.compose.accompanist.systemUiController)
|
||||||
|
implementation(deps.compose.coil)
|
||||||
|
implementation(deps.compose.constraintLayout)
|
||||||
|
implementation(deps.compose.foundation)
|
||||||
|
implementation(deps.compose.material)
|
||||||
|
implementation(deps.compose.material3)
|
||||||
|
implementation(deps.compose.navigation)
|
||||||
|
implementation(deps.compose.navigation.hilt)
|
||||||
|
implementation(deps.compose.paging)
|
||||||
|
implementation(deps.compose.reorderable)
|
||||||
|
implementation(deps.compose.shimmer)
|
||||||
|
implementation(deps.compose.ui)
|
||||||
|
implementation(deps.compose.ui.tooling)
|
||||||
|
|
||||||
|
/** Other libraries */
|
||||||
|
implementation(deps.arrow.core)
|
||||||
|
implementation(deps.jodatime)
|
||||||
|
implementation(deps.kotlin.immutable.collections)
|
||||||
|
implementation(deps.tangem.card.core)
|
||||||
|
implementation(deps.tangem.blockchain)
|
||||||
|
|
||||||
|
/** DI */
|
||||||
|
implementation(deps.hilt.android)
|
||||||
|
kapt(deps.hilt.kapt)
|
||||||
|
|
||||||
|
/** Core modules */
|
||||||
|
implementation(projects.core.featuretoggles)
|
||||||
|
implementation(projects.core.navigation)
|
||||||
|
implementation(projects.core.ui)
|
||||||
|
implementation(projects.core.utils)
|
||||||
|
|
||||||
|
/** Domain modules */
|
||||||
|
implementation(projects.common)
|
||||||
|
implementation(projects.domain.card)
|
||||||
|
implementation(projects.domain.demo)
|
||||||
|
implementation(projects.domain.legacy)
|
||||||
|
implementation(projects.domain.models)
|
||||||
|
implementation(projects.domain.settings)
|
||||||
|
implementation(projects.domain.tokens)
|
||||||
|
implementation(projects.domain.tokens.models)
|
||||||
|
implementation(projects.domain.txhistory)
|
||||||
|
implementation(projects.domain.txhistory.models)
|
||||||
|
implementation(projects.domain.wallets)
|
||||||
|
implementation(projects.domain.wallets.models)
|
||||||
|
implementation(projects.domain.appCurrency)
|
||||||
|
implementation(projects.domain.appCurrency.models)
|
||||||
|
|
||||||
|
/** Feature Apis */
|
||||||
|
implementation(projects.features.manageTokens.api)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.tangem.managetokens
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import com.tangem.core.ui.components.SystemBarsEffect
|
||||||
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
|
import com.tangem.core.ui.screen.ComposeFragment
|
||||||
|
import com.tangem.core.ui.theme.AppThemeModeHolder
|
||||||
|
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||||
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@AndroidEntryPoint
|
||||||
|
internal class ManageTokensFragment : ComposeFragment() {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
override lateinit var appThemeModeHolder: AppThemeModeHolder
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var manageTokensRouter: ManageTokensRouter
|
||||||
|
|
||||||
|
// private val internalManageTokensRouter: InnerManageTokensRouter
|
||||||
|
// get() = requireNotNull(manageTokensRouter as? InnerManageTokensRouter) {
|
||||||
|
// "internalManageTokensRouter should be instance of InnerManageTokensRouter"
|
||||||
|
// }
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
override fun ScreenContent(modifier: Modifier) {
|
||||||
|
// val viewModel = hiltViewModel<ManageTokensViewModel>()
|
||||||
|
// viewModel.router = [REDACTED_EMAIL]
|
||||||
|
//
|
||||||
|
// LocalLifecycleOwner.current.lifecycle.addObserver(viewModel)
|
||||||
|
|
||||||
|
val systemBarsColor = TangemTheme.colors.background.secondary
|
||||||
|
SystemBarsEffect {
|
||||||
|
setSystemBarsColor(systemBarsColor)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ManageTokensScreen(state = viewModel.uiState)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.tangem.managetokens.di
|
||||||
|
|
||||||
|
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
||||||
|
import com.tangem.features.managetokens.featuretoggles.ManageTokensFeatureToggles
|
||||||
|
import com.tangem.managetokens.featuretoggles.DefaultManageTokensFeatureToggles
|
||||||
|
import dagger.Module
|
||||||
|
import dagger.Provides
|
||||||
|
import dagger.hilt.InstallIn
|
||||||
|
import dagger.hilt.components.SingletonComponent
|
||||||
|
import javax.inject.Singleton
|
||||||
|
|
||||||
|
@Module
|
||||||
|
@InstallIn(SingletonComponent::class)
|
||||||
|
internal object ManageTokensFeatureTogglesModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun provideWalletFeatureToggles(featureTogglesManager: FeatureTogglesManager): ManageTokensFeatureToggles {
|
||||||
|
return DefaultManageTokensFeatureToggles(featureTogglesManager = featureTogglesManager)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.tangem.managetokens.di
|
||||||
|
|
||||||
|
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||||
|
import com.tangem.managetokens.presentation.router.DefaultManageTokensRouter
|
||||||
|
import dagger.Module
|
||||||
|
import dagger.Provides
|
||||||
|
import dagger.hilt.InstallIn
|
||||||
|
import dagger.hilt.android.components.ActivityComponent
|
||||||
|
import dagger.hilt.android.scopes.ActivityScoped
|
||||||
|
|
||||||
|
@Module
|
||||||
|
@InstallIn(ActivityComponent::class)
|
||||||
|
internal object ManageTokensRouterModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@ActivityScoped
|
||||||
|
fun provideManageTokensRouter(): ManageTokensRouter {
|
||||||
|
return DefaultManageTokensRouter()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.tangem.managetokens.featuretoggles
|
||||||
|
|
||||||
|
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
||||||
|
import com.tangem.features.managetokens.featuretoggles.ManageTokensFeatureToggles
|
||||||
|
|
||||||
|
internal class DefaultManageTokensFeatureToggles(
|
||||||
|
private val featureTogglesManager: FeatureTogglesManager,
|
||||||
|
) : ManageTokensFeatureToggles {
|
||||||
|
override val isRedesignedScreenEnabled: Boolean
|
||||||
|
get() = featureTogglesManager.isFeatureEnabled(name = "REDESIGNED_MANAGE_TOKENS_SCREEN_ENABLED")
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.tangem.managetokens.presentation.router
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import com.tangem.features.managetokens.navigation.ManageTokensRouter
|
||||||
|
import com.tangem.managetokens.ManageTokensFragment
|
||||||
|
|
||||||
|
internal class DefaultManageTokensRouter : ManageTokensRouter {
|
||||||
|
override fun getEntryFragment(): Fragment = ManageTokensFragment()
|
||||||
|
}
|
||||||
|
|
@ -135,7 +135,7 @@ internal class DefaultWalletRouter(private val reduxNavController: ReduxNavContr
|
||||||
override fun isWalletLastScreen(): Boolean = reduxNavController.getBackStack().lastOrNull() == AppScreen.Wallet
|
override fun isWalletLastScreen(): Boolean = reduxNavController.getBackStack().lastOrNull() == AppScreen.Wallet
|
||||||
|
|
||||||
override fun openManageTokensScreen() {
|
override fun openManageTokensScreen() {
|
||||||
reduxNavController.navigate(action = NavigationAction.NavigateTo(AppScreen.AddTokens))
|
reduxNavController.navigate(action = NavigationAction.NavigateTo(AppScreen.ManageTokens))
|
||||||
}
|
}
|
||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,9 @@ include(":features:learn2earn:api")
|
||||||
include(":features:learn2earn:impl")
|
include(":features:learn2earn:impl")
|
||||||
|
|
||||||
include(":features:send:api")
|
include(":features:send:api")
|
||||||
|
|
||||||
|
include(":features:manage-tokens:api")
|
||||||
|
include(":features:manage-tokens:impl")
|
||||||
// endregion Feature modules
|
// endregion Feature modules
|
||||||
|
|
||||||
// region Domain modules
|
// region Domain modules
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue