Updated on 2026-08-14
This commit is contained in:
parent
5421e5eb69
commit
165bf516e6
256 changed files with 1098 additions and 1035 deletions
|
|
@ -252,8 +252,8 @@ dependencies {
|
||||||
implementation(projects.features.tokendetails.impl)
|
implementation(projects.features.tokendetails.impl)
|
||||||
implementation(projects.features.manageTokens.api)
|
implementation(projects.features.manageTokens.api)
|
||||||
implementation(projects.features.manageTokens.impl)
|
implementation(projects.features.manageTokens.impl)
|
||||||
implementation(projects.features.sendV2.api)
|
implementation(projects.features.send.api)
|
||||||
implementation(projects.features.sendV2.impl)
|
implementation(projects.features.send.impl)
|
||||||
implementation(projects.features.qrScanning.api)
|
implementation(projects.features.qrScanning.api)
|
||||||
implementation(projects.features.qrScanning.impl)
|
implementation(projects.features.qrScanning.impl)
|
||||||
implementation(projects.features.staking.api)
|
implementation(projects.features.staking.api)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import com.tangem.core.ui.test.BaseButtonTestTags
|
||||||
import com.tangem.core.ui.test.FooterTestTags
|
import com.tangem.core.ui.test.FooterTestTags
|
||||||
import com.tangem.core.ui.test.SendAddressScreenTestTags
|
import com.tangem.core.ui.test.SendAddressScreenTestTags
|
||||||
import com.tangem.core.ui.test.TopAppBarTestTags
|
import com.tangem.core.ui.test.TopAppBarTestTags
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.impl.R
|
||||||
import io.github.kakaocup.compose.node.element.ComposeScreen
|
import io.github.kakaocup.compose.node.element.ComposeScreen
|
||||||
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
||||||
import io.github.kakaocup.compose.node.element.KNode
|
import io.github.kakaocup.compose.node.element.KNode
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import io.github.kakaocup.compose.node.element.ComposeScreen
|
||||||
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
||||||
import io.github.kakaocup.compose.node.element.KNode
|
import io.github.kakaocup.compose.node.element.KNode
|
||||||
import io.github.kakaocup.kakao.common.utilities.getResourceString
|
import io.github.kakaocup.kakao.common.utilities.getResourceString
|
||||||
import com.tangem.features.send.v2.impl.R as SendR
|
import com.tangem.features.send.impl.R as SendR
|
||||||
import androidx.compose.ui.test.hasText as withText
|
import androidx.compose.ui.test.hasText as withText
|
||||||
|
|
||||||
class SendPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) :
|
class SendPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) :
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,9 @@ import com.tangem.features.onramp.component.*
|
||||||
import com.tangem.features.pushnotifications.api.PushNotificationsComponent
|
import com.tangem.features.pushnotifications.api.PushNotificationsComponent
|
||||||
import com.tangem.features.pushnotifications.api.PushNotificationsModelCallbacksStub
|
import com.tangem.features.pushnotifications.api.PushNotificationsModelCallbacksStub
|
||||||
import com.tangem.features.pushnotifications.api.PushNotificationsParams
|
import com.tangem.features.pushnotifications.api.PushNotificationsParams
|
||||||
import com.tangem.features.send.v2.api.NFTSendComponent
|
import com.tangem.features.send.api.NFTSendComponent
|
||||||
import com.tangem.features.send.v2.api.SendComponent
|
import com.tangem.features.send.api.SendComponent
|
||||||
import com.tangem.features.send.v2.api.SendEntryPointComponent
|
import com.tangem.features.send.api.SendEntryPointComponent
|
||||||
import com.tangem.features.staking.api.StakingComponent
|
import com.tangem.features.staking.api.StakingComponent
|
||||||
import com.tangem.features.swap.SwapComponent
|
import com.tangem.features.swap.SwapComponent
|
||||||
import com.tangem.features.tangempay.components.TangemPayHotWalletOnboardingComponent
|
import com.tangem.features.tangempay.components.TangemPayHotWalletOnboardingComponent
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import com.tangem.features.onramp.deeplink.BuyDeepLinkHandler
|
||||||
import com.tangem.features.onramp.deeplink.OnrampDeepLinkHandler
|
import com.tangem.features.onramp.deeplink.OnrampDeepLinkHandler
|
||||||
import com.tangem.features.onramp.deeplink.SellDeepLinkHandler
|
import com.tangem.features.onramp.deeplink.SellDeepLinkHandler
|
||||||
import com.tangem.features.onramp.deeplink.SwapDeepLinkHandler
|
import com.tangem.features.onramp.deeplink.SwapDeepLinkHandler
|
||||||
import com.tangem.features.send.v2.api.deeplink.SellRedirectDeepLinkHandler
|
import com.tangem.features.send.api.deeplink.SellRedirectDeepLinkHandler
|
||||||
import com.tangem.features.staking.api.deeplink.StakingDeepLinkHandler
|
import com.tangem.features.staking.api.deeplink.StakingDeepLinkHandler
|
||||||
import com.tangem.features.survey.deeplink.SurveyDeepLinkHandler
|
import com.tangem.features.survey.deeplink.SurveyDeepLinkHandler
|
||||||
import com.tangem.features.tangempay.deeplink.OnboardVisaDeepLinkHandler
|
import com.tangem.features.tangempay.deeplink.OnboardVisaDeepLinkHandler
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import com.tangem.features.onramp.deeplink.BuyDeepLinkHandler
|
||||||
import com.tangem.features.onramp.deeplink.OnrampDeepLinkHandler
|
import com.tangem.features.onramp.deeplink.OnrampDeepLinkHandler
|
||||||
import com.tangem.features.onramp.deeplink.SellDeepLinkHandler
|
import com.tangem.features.onramp.deeplink.SellDeepLinkHandler
|
||||||
import com.tangem.features.onramp.deeplink.SwapDeepLinkHandler
|
import com.tangem.features.onramp.deeplink.SwapDeepLinkHandler
|
||||||
import com.tangem.features.send.v2.api.deeplink.SellRedirectDeepLinkHandler
|
import com.tangem.features.send.api.deeplink.SellRedirectDeepLinkHandler
|
||||||
import com.tangem.features.staking.api.deeplink.StakingDeepLinkHandler
|
import com.tangem.features.staking.api.deeplink.StakingDeepLinkHandler
|
||||||
import com.tangem.features.tangempay.deeplink.OnboardVisaDeepLinkHandler
|
import com.tangem.features.tangempay.deeplink.OnboardVisaDeepLinkHandler
|
||||||
import com.tangem.features.tangempay.deeplink.TangemPayMainDeepLinkHandler
|
import com.tangem.features.tangempay.deeplink.TangemPayMainDeepLinkHandler
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ dependencies {
|
||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
// region Project - Features API
|
// region Project - Features API
|
||||||
implementation(projects.features.sendV2.api)
|
implementation(projects.features.send.api)
|
||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
// region Tangem SDKs
|
// region Tangem SDKs
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ dependencies {
|
||||||
implementation(projects.domain.demo)
|
implementation(projects.domain.demo)
|
||||||
|
|
||||||
/** Api */
|
/** Api */
|
||||||
implementation(projects.features.sendV2.api)
|
implementation(projects.features.send.api)
|
||||||
|
|
||||||
/** DI */
|
/** DI */
|
||||||
implementation(deps.hilt.android)
|
implementation(deps.hilt.android)
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ dependencies {
|
||||||
|
|
||||||
/** Feature */
|
/** Feature */
|
||||||
implementation(projects.features.approval.api)
|
implementation(projects.features.approval.api)
|
||||||
implementation(projects.features.sendV2.api)
|
implementation(projects.features.send.api)
|
||||||
|
|
||||||
/** Core */
|
/** Core */
|
||||||
implementation(projects.core.configToggles)
|
implementation(projects.core.configToggles)
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,10 @@ import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.features.approval.api.GiveApprovalComponent
|
import com.tangem.features.approval.api.GiveApprovalComponent
|
||||||
import com.tangem.features.approval.impl.model.GiveApprovalModel
|
import com.tangem.features.approval.impl.model.GiveApprovalModel
|
||||||
import com.tangem.features.approval.impl.ui.GiveApprovalContent
|
import com.tangem.features.approval.impl.ui.GiveApprovalContent
|
||||||
import com.tangem.features.send.v2.api.FeeSelectorBlockComponent
|
import com.tangem.features.send.api.FeeSelectorBlockComponent
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.api.params.FeeSelectorParams
|
import com.tangem.features.send.api.params.FeeSelectorParams
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
|
|
|
||||||
|
|
@ -33,10 +33,10 @@ import com.tangem.domain.transaction.usecase.gasless.GetFeeForGaslessUseCase
|
||||||
import com.tangem.domain.transaction.usecase.gasless.GetFeeForTokenUseCase
|
import com.tangem.domain.transaction.usecase.gasless.GetFeeForTokenUseCase
|
||||||
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
||||||
import com.tangem.features.approval.api.GiveApprovalComponent
|
import com.tangem.features.approval.api.GiveApprovalComponent
|
||||||
import com.tangem.features.send.v2.api.callbacks.FeeSelectorModelCallback
|
import com.tangem.features.send.api.callbacks.FeeSelectorModelCallback
|
||||||
import com.tangem.features.send.v2.api.entity.FeeItem
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
|
||||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||||
import com.tangem.utils.logging.TangemLogger
|
import com.tangem.utils.logging.TangemLogger
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ import com.tangem.core.ui.extensions.*
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.core.ui.res.TangemThemePreview
|
import com.tangem.core.ui.res.TangemThemePreview
|
||||||
import com.tangem.features.approval.impl.model.GiveApprovalUM
|
import com.tangem.features.approval.impl.model.GiveApprovalUM
|
||||||
import com.tangem.features.send.v2.api.FeeSelectorBlockComponent
|
import com.tangem.features.send.api.FeeSelectorBlockComponent
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@ package com.tangem.features.approval.impl.ui
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import com.tangem.features.send.v2.api.FeeSelectorBlockComponent
|
import com.tangem.features.send.api.FeeSelectorBlockComponent
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
|
|
||||||
internal class PreviewFeeSelectorBlockComponent : FeeSelectorBlockComponent {
|
internal class PreviewFeeSelectorBlockComponent : FeeSelectorBlockComponent {
|
||||||
override fun updateState(feeSelectorUM: FeeSelectorUM) {
|
override fun updateState(feeSelectorUM: FeeSelectorUM) {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ import com.tangem.domain.transaction.usecase.gasless.GetFeeForGaslessUseCase
|
||||||
import com.tangem.domain.transaction.usecase.gasless.GetFeeForTokenUseCase
|
import com.tangem.domain.transaction.usecase.gasless.GetFeeForTokenUseCase
|
||||||
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
||||||
import com.tangem.features.approval.api.GiveApprovalComponent
|
import com.tangem.features.approval.api.GiveApprovalComponent
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
|
||||||
import com.tangem.utils.coroutines.TestingCoroutineDispatcherProvider
|
import com.tangem.utils.coroutines.TestingCoroutineDispatcherProvider
|
||||||
import io.mockk.coEvery
|
import io.mockk.coEvery
|
||||||
import io.mockk.coVerify
|
import io.mockk.coVerify
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ dependencies {
|
||||||
/* Project - API */
|
/* Project - API */
|
||||||
api(projects.features.feed.api)
|
api(projects.features.feed.api)
|
||||||
api(projects.features.onramp.api)
|
api(projects.features.onramp.api)
|
||||||
api(projects.features.sendV2.api)
|
api(projects.features.send.api)
|
||||||
api(projects.features.tokenRecieve.api)
|
api(projects.features.tokenRecieve.api)
|
||||||
api(projects.features.wallet.api)
|
api(projects.features.wallet.api)
|
||||||
api(projects.features.account.api)
|
api(projects.features.account.api)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ dependencies {
|
||||||
/* Project - API */
|
/* Project - API */
|
||||||
api(projects.features.markets.api)
|
api(projects.features.markets.api)
|
||||||
api(projects.features.onramp.api)
|
api(projects.features.onramp.api)
|
||||||
api(projects.features.sendV2.api)
|
api(projects.features.send.api)
|
||||||
api(projects.features.tokenRecieve.api)
|
api(projects.features.tokenRecieve.api)
|
||||||
api(projects.features.wallet.api)
|
api(projects.features.wallet.api)
|
||||||
api(projects.features.account.api)
|
api(projects.features.account.api)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
package com.tangem.features.send.v2.api
|
|
||||||
|
|
||||||
interface SendFeatureToggles
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
package com.tangem.features.send.v2.api.callbacks
|
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
|
||||||
|
|
||||||
interface FeeSelectorModelCallback {
|
|
||||||
fun onFeeResult(feeSelectorUM: FeeSelectorUM)
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.notifications
|
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.SendNotificationsComponent.Params.NotificationData
|
|
||||||
|
|
||||||
interface SendNotificationsUpdateTrigger {
|
|
||||||
/** Trigger return callback with check result */
|
|
||||||
suspend fun callbackHasError(hasError: Boolean)
|
|
||||||
|
|
||||||
/** Trigger fee check reload */
|
|
||||||
suspend fun triggerUpdate(data: NotificationData)
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component
|
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
|
||||||
import com.tangem.features.send.v2.api.params.FeeSelectorParams
|
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorIntents
|
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
|
||||||
|
|
||||||
internal class FeeSelectorComponentParams(
|
|
||||||
val parentParams: FeeSelectorParams.FeeSelectorDetailsParams,
|
|
||||||
val state: MutableStateFlow<FeeSelectorUM>,
|
|
||||||
val intents: FeeSelectorIntents,
|
|
||||||
)
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
package com.tangem.features.send.v2.sendnft.ui.state
|
|
||||||
|
|
||||||
import com.tangem.common.ui.navigationButtons.NavigationUM
|
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
|
||||||
import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM
|
|
||||||
import com.tangem.features.send.v2.common.ui.state.ConfirmUM
|
|
||||||
|
|
||||||
internal data class NFTSendUM(
|
|
||||||
val destinationUM: DestinationUM,
|
|
||||||
val feeSelectorUM: FeeSelectorUM,
|
|
||||||
val confirmUM: ConfirmUM,
|
|
||||||
val navigationUM: NavigationUM,
|
|
||||||
)
|
|
||||||
|
|
@ -5,7 +5,7 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.tangem.features.send.v2.api"
|
namespace = "com.tangem.features.send.api"
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
/** Core */
|
/** Core */
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
package com.tangem.features.send.v2.api
|
package com.tangem.features.send.api
|
||||||
|
|
||||||
import com.tangem.core.decompose.context.AppComponentContext
|
import com.tangem.core.decompose.context.AppComponentContext
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.api.params.FeeSelectorParams
|
import com.tangem.features.send.api.params.FeeSelectorParams
|
||||||
|
|
||||||
interface FeeSelectorBlockComponent : ComposableContentComponent {
|
interface FeeSelectorBlockComponent : ComposableContentComponent {
|
||||||
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.tangem.features.send.v2.api
|
package com.tangem.features.send.api
|
||||||
|
|
||||||
import com.tangem.core.decompose.context.AppComponentContext
|
import com.tangem.core.decompose.context.AppComponentContext
|
||||||
import com.tangem.core.ui.decompose.ComposableBottomSheetComponent
|
import com.tangem.core.ui.decompose.ComposableBottomSheetComponent
|
||||||
import com.tangem.features.send.v2.api.params.FeeSelectorParams
|
import com.tangem.features.send.api.params.FeeSelectorParams
|
||||||
|
|
||||||
interface FeeSelectorComponent : ComposableBottomSheetComponent {
|
interface FeeSelectorComponent : ComposableBottomSheetComponent {
|
||||||
interface Factory {
|
interface Factory {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api
|
package com.tangem.features.send.api
|
||||||
|
|
||||||
import com.tangem.core.decompose.factory.ComponentFactory
|
import com.tangem.core.decompose.factory.ComponentFactory
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api
|
package com.tangem.features.send.api
|
||||||
|
|
||||||
import com.tangem.core.decompose.factory.ComponentFactory
|
import com.tangem.core.decompose.factory.ComponentFactory
|
||||||
import com.tangem.core.ui.decompose.ComposableDialogComponent
|
import com.tangem.core.ui.decompose.ComposableDialogComponent
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api
|
package com.tangem.features.send.api
|
||||||
|
|
||||||
import com.tangem.core.decompose.factory.ComponentFactory
|
import com.tangem.core.decompose.factory.ComponentFactory
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api
|
package com.tangem.features.send.api
|
||||||
|
|
||||||
import com.tangem.core.decompose.factory.ComponentFactory
|
import com.tangem.core.decompose.factory.ComponentFactory
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
package com.tangem.features.send.api
|
||||||
|
|
||||||
|
interface SendFeatureToggles
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api
|
package com.tangem.features.send.api
|
||||||
|
|
||||||
import androidx.compose.foundation.lazy.LazyListScope
|
import androidx.compose.foundation.lazy.LazyListScope
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.analytics
|
package com.tangem.features.send.api.analytics
|
||||||
|
|
||||||
import com.tangem.core.analytics.models.AnalyticsEvent
|
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
package com.tangem.features.send.api.callbacks
|
||||||
|
|
||||||
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
|
|
||||||
|
interface FeeSelectorModelCallback {
|
||||||
|
fun onFeeResult(feeSelectorUM: FeeSelectorUM)
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.deeplink
|
package com.tangem.features.send.api.deeplink
|
||||||
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.entity
|
package com.tangem.features.send.api.entity
|
||||||
|
|
||||||
import androidx.compose.foundation.text.KeyboardActions
|
import androidx.compose.foundation.text.KeyboardActions
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.entity
|
package com.tangem.features.send.api.entity
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import com.tangem.blockchain.common.Amount
|
import com.tangem.blockchain.common.Amount
|
||||||
|
|
@ -12,8 +12,7 @@ import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.domain.transaction.error.GetFeeError
|
import com.tangem.domain.transaction.error.GetFeeError
|
||||||
import com.tangem.domain.transaction.models.TransactionFeeExtended
|
import com.tangem.domain.transaction.models.TransactionFeeExtended
|
||||||
import com.tangem.features.send.v2.api.R
|
import com.tangem.features.send.api.R
|
||||||
import com.tangem.features.send.v2.api.entity.FeeItem.*
|
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
import java.math.BigInteger
|
import java.math.BigInteger
|
||||||
|
|
@ -46,12 +45,12 @@ sealed class FeeSelectorUM {
|
||||||
fun toAnalyticType(): AnalyticsParam.FeeType = when (fees) {
|
fun toAnalyticType(): AnalyticsParam.FeeType = when (fees) {
|
||||||
is TransactionFee.Single -> AnalyticsParam.FeeType.Fixed
|
is TransactionFee.Single -> AnalyticsParam.FeeType.Fixed
|
||||||
is TransactionFee.Choosable -> when (selectedFeeItem) {
|
is TransactionFee.Choosable -> when (selectedFeeItem) {
|
||||||
is Suggested,
|
is FeeItem.Suggested,
|
||||||
is Custom,
|
is FeeItem.Custom,
|
||||||
-> AnalyticsParam.FeeType.Custom
|
-> AnalyticsParam.FeeType.Custom
|
||||||
is Fast -> AnalyticsParam.FeeType.Max
|
is FeeItem.Fast -> AnalyticsParam.FeeType.Max
|
||||||
is Market, is FeeItem.Loading -> AnalyticsParam.FeeType.Normal
|
is FeeItem.Market, is FeeItem.Loading -> AnalyticsParam.FeeType.Normal
|
||||||
is Slow -> AnalyticsParam.FeeType.Min
|
is FeeItem.Slow -> AnalyticsParam.FeeType.Min
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.entity
|
package com.tangem.features.send.api.entity
|
||||||
|
|
||||||
sealed class PredefinedValues {
|
sealed class PredefinedValues {
|
||||||
data object Empty : PredefinedValues()
|
data object Empty : PredefinedValues()
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.entry
|
package com.tangem.features.send.api.entry
|
||||||
|
|
||||||
import com.tangem.core.decompose.navigation.Route
|
import com.tangem.core.decompose.navigation.Route
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.params
|
package com.tangem.features.send.api.params
|
||||||
|
|
||||||
import arrow.core.Either
|
import arrow.core.Either
|
||||||
import com.tangem.blockchain.common.transaction.Fee
|
import com.tangem.blockchain.common.transaction.Fee
|
||||||
|
|
@ -8,9 +8,9 @@ import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.domain.models.wallet.UserWalletId
|
import com.tangem.domain.models.wallet.UserWalletId
|
||||||
import com.tangem.domain.transaction.error.GetFeeError
|
import com.tangem.domain.transaction.error.GetFeeError
|
||||||
import com.tangem.domain.transaction.models.TransactionFeeExtended
|
import com.tangem.domain.transaction.models.TransactionFeeExtended
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents
|
||||||
import com.tangem.features.send.v2.api.callbacks.FeeSelectorModelCallback
|
import com.tangem.features.send.api.callbacks.FeeSelectorModelCallback
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
|
|
||||||
sealed class FeeSelectorParams {
|
sealed class FeeSelectorParams {
|
||||||
abstract val state: FeeSelectorUM
|
abstract val state: FeeSelectorUM
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.amount.analytics
|
package com.tangem.features.send.api.subcomponents.amount.analytics
|
||||||
|
|
||||||
import com.tangem.core.analytics.models.AnalyticsEvent
|
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.SOURCE
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.SOURCE
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TYPE
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.TYPE
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents
|
||||||
|
|
||||||
sealed class CommonSendAmountAnalyticEvents(
|
sealed class CommonSendAmountAnalyticEvents(
|
||||||
category: String,
|
category: String,
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.destination
|
package com.tangem.features.send.api.subcomponents.destination
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Common route for destination
|
* Common route for destination
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.destination
|
package com.tangem.features.send.api.subcomponents.destination
|
||||||
|
|
||||||
import com.tangem.core.decompose.context.AppComponentContext
|
import com.tangem.core.decompose.context.AppComponentContext
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM
|
import com.tangem.features.send.api.subcomponents.destination.entity.DestinationUM
|
||||||
|
|
||||||
interface SendDestinationBlockComponent : ComposableContentComponent {
|
interface SendDestinationBlockComponent : ComposableContentComponent {
|
||||||
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.destination
|
package com.tangem.features.send.api.subcomponents.destination
|
||||||
|
|
||||||
import com.tangem.common.ui.navigationButtons.NavigationModelCallback
|
import com.tangem.common.ui.navigationButtons.NavigationModelCallback
|
||||||
import com.tangem.core.decompose.factory.ComponentFactory
|
import com.tangem.core.decompose.factory.ComponentFactory
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM
|
import com.tangem.features.send.api.subcomponents.destination.entity.DestinationUM
|
||||||
|
|
||||||
interface SendDestinationComponent : ComposableContentComponent {
|
interface SendDestinationComponent : ComposableContentComponent {
|
||||||
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.destination
|
package com.tangem.features.send.api.subcomponents.destination
|
||||||
|
|
||||||
import com.tangem.core.ui.extensions.TextReference
|
import com.tangem.core.ui.extensions.TextReference
|
||||||
import com.tangem.domain.models.currency.CryptoCurrency
|
import com.tangem.domain.models.currency.CryptoCurrency
|
||||||
import com.tangem.domain.models.wallet.UserWalletId
|
import com.tangem.domain.models.wallet.UserWalletId
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents
|
||||||
import com.tangem.features.send.v2.api.entity.PredefinedValues
|
import com.tangem.features.send.api.entity.PredefinedValues
|
||||||
import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM
|
import com.tangem.features.send.api.subcomponents.destination.entity.DestinationUM
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.destination.entity
|
package com.tangem.features.send.api.subcomponents.destination.entity
|
||||||
|
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
|
|
@ -11,8 +11,8 @@ import com.tangem.domain.models.wallet.UserWalletId
|
||||||
@Immutable
|
@Immutable
|
||||||
data class DestinationRecipientListUM(
|
data class DestinationRecipientListUM(
|
||||||
val id: String,
|
val id: String,
|
||||||
val title: TextReference = TextReference.Companion.EMPTY,
|
val title: TextReference = TextReference.EMPTY,
|
||||||
val subtitle: TextReference = TextReference.Companion.EMPTY,
|
val subtitle: TextReference = TextReference.EMPTY,
|
||||||
val accountTitleUM: AccountTitleUM.Account? = null,
|
val accountTitleUM: AccountTitleUM.Account? = null,
|
||||||
val timestamp: TextReference? = null,
|
val timestamp: TextReference? = null,
|
||||||
val subtitleEndOffset: Int = 0,
|
val subtitleEndOffset: Int = 0,
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.destination.entity
|
package com.tangem.features.send.api.subcomponents.destination.entity
|
||||||
|
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.destination.entity
|
package com.tangem.features.send.api.subcomponents.destination.entity
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.feeSelector
|
package com.tangem.features.send.api.subcomponents.feeSelector
|
||||||
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.feeSelector
|
package com.tangem.features.send.api.subcomponents.feeSelector
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.entity.FeeSelectorData
|
import com.tangem.features.send.api.subcomponents.feeSelector.entity.FeeSelectorData
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
interface FeeSelectorReloadTrigger {
|
interface FeeSelectorReloadTrigger {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.feeSelector.analytics
|
package com.tangem.features.send.api.subcomponents.feeSelector.analytics
|
||||||
|
|
||||||
import com.tangem.core.analytics.models.AnalyticsEvent
|
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam
|
import com.tangem.core.analytics.models.AnalyticsParam
|
||||||
|
|
@ -7,7 +7,7 @@ import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TOKEN
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TYPE
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TYPE
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.SOURCE
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.SOURCE
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents.CommonSendSource
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents
|
||||||
|
|
||||||
sealed class CommonSendFeeAnalyticEvents(
|
sealed class CommonSendFeeAnalyticEvents(
|
||||||
category: String,
|
category: String,
|
||||||
|
|
@ -21,7 +21,7 @@ sealed class CommonSendFeeAnalyticEvents(
|
||||||
data class SelectedFee(
|
data class SelectedFee(
|
||||||
override val categoryName: String,
|
override val categoryName: String,
|
||||||
val feeType: AnalyticsParam.FeeType,
|
val feeType: AnalyticsParam.FeeType,
|
||||||
val source: CommonSendSource,
|
val source: CommonSendAnalyticEvents.CommonSendSource,
|
||||||
val feeToken: String,
|
val feeToken: String,
|
||||||
val blockchain: String,
|
val blockchain: String,
|
||||||
) : CommonSendFeeAnalyticEvents(
|
) : CommonSendFeeAnalyticEvents(
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.feeSelector.entity
|
package com.tangem.features.send.api.subcomponents.feeSelector.entity
|
||||||
|
|
||||||
data class FeeSelectorData(
|
data class FeeSelectorData(
|
||||||
val isRemoveSuggestedFee: Boolean = false,
|
val isRemoveSuggestedFee: Boolean = false,
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.feeSelector.utils
|
package com.tangem.features.send.api.subcomponents.feeSelector.utils
|
||||||
|
|
||||||
import com.tangem.blockchain.common.transaction.TransactionFee
|
import com.tangem.blockchain.common.transaction.TransactionFee
|
||||||
import com.tangem.core.ui.utils.parseBigDecimal
|
import com.tangem.core.ui.utils.parseBigDecimal
|
||||||
import com.tangem.core.ui.utils.parseToBigDecimal
|
import com.tangem.core.ui.utils.parseToBigDecimal
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.features.send.v2.api.entity.FeeItem
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.utils.extensions.isZero
|
import com.tangem.utils.extensions.isZero
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
import java.math.RoundingMode
|
import java.math.RoundingMode
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.notifications
|
package com.tangem.features.send.api.subcomponents.notifications
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.SendNotificationsComponent.Params.NotificationData
|
import com.tangem.features.send.api.SendNotificationsComponent
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
interface SendNotificationsUpdateListener {
|
interface SendNotificationsUpdateListener {
|
||||||
/** Flow triggers notifications update */
|
/** Flow triggers notifications update */
|
||||||
val updateTriggerFlow: Flow<NotificationData>
|
val updateTriggerFlow: Flow<SendNotificationsComponent.Params.NotificationData>
|
||||||
|
|
||||||
/** Flow returns whether there is error notifications */
|
/** Flow returns whether there is error notifications */
|
||||||
val hasErrorFlow: Flow<Boolean>
|
val hasErrorFlow: Flow<Boolean>
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.tangem.features.send.api.subcomponents.notifications
|
||||||
|
|
||||||
|
import com.tangem.features.send.api.SendNotificationsComponent
|
||||||
|
|
||||||
|
interface SendNotificationsUpdateTrigger {
|
||||||
|
/** Trigger return callback with check result */
|
||||||
|
suspend fun callbackHasError(hasError: Boolean)
|
||||||
|
|
||||||
|
/** Trigger fee check reload */
|
||||||
|
suspend fun triggerUpdate(data: SendNotificationsComponent.Params.NotificationData)
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.api.utils
|
package com.tangem.features.send.api.utils
|
||||||
|
|
||||||
import com.tangem.blockchain.common.Amount
|
import com.tangem.blockchain.common.Amount
|
||||||
import com.tangem.blockchain.common.transaction.Fee
|
import com.tangem.blockchain.common.transaction.Fee
|
||||||
|
|
@ -8,7 +8,7 @@ import com.tangem.core.ui.format.bigdecimal.fee
|
||||||
import com.tangem.core.ui.format.bigdecimal.fiat
|
import com.tangem.core.ui.format.bigdecimal.fiat
|
||||||
import com.tangem.core.ui.format.bigdecimal.format
|
import com.tangem.core.ui.format.bigdecimal.format
|
||||||
import com.tangem.domain.appcurrency.model.AppCurrency
|
import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.features.send.v2.api.R
|
import com.tangem.features.send.api.R
|
||||||
import com.tangem.utils.StringsSigns.COMA_SIGN
|
import com.tangem.utils.StringsSigns.COMA_SIGN
|
||||||
|
|
||||||
fun getTronTokenFeeSendingText(fee: Fee.Tron, fiatFee: String, fiatSending: TextReference): TextReference {
|
fun getTronTokenFeeSendingText(fee: Fee.Tron, fiatFee: String, fiatSending: TextReference): TextReference {
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
package com.tangem.features.send.v2.api.subcomponents.feeSelector.utils
|
package com.tangem.features.send.api.subcomponents.feeSelector.utils
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
|
import com.tangem.features.send.api.subcomponents.feeSelector.utils.FeeCalculationUtils
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
|
|
@ -8,11 +8,11 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.tangem.features.send.v2.impl"
|
namespace = "com.tangem.features.send.impl"
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
/** Api */
|
/** Api */
|
||||||
implementation(projects.features.sendV2.api)
|
implementation(projects.features.send.api)
|
||||||
implementation(projects.features.txhistory.api)
|
implementation(projects.features.txhistory.api)
|
||||||
implementation(projects.features.nft.api)
|
implementation(projects.features.nft.api)
|
||||||
implementation(projects.features.swapV2.api)
|
implementation(projects.features.swapV2.api)
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.tangem.features.send.v2
|
package com.tangem.features.send
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.SendFeatureToggles
|
import com.tangem.features.send.api.SendFeatureToggles
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal class DefaultSendFeatureToggles @Inject constructor() : SendFeatureToggles
|
internal class DefaultSendFeatureToggles @Inject constructor() : SendFeatureToggles
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.tangem.features.send.v2.common
|
package com.tangem.features.send.common
|
||||||
|
|
||||||
import com.tangem.core.decompose.navigation.Route
|
import com.tangem.core.decompose.navigation.Route
|
||||||
import com.tangem.features.send.v2.api.subcomponents.destination.DestinationRoute
|
import com.tangem.features.send.api.subcomponents.destination.DestinationRoute
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
internal sealed class CommonSendRoute : Route {
|
internal sealed class CommonSendRoute : Route {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.common
|
package com.tangem.features.send.common
|
||||||
|
|
||||||
import com.tangem.utils.coroutines.AppCoroutineScope
|
import com.tangem.utils.coroutines.AppCoroutineScope
|
||||||
import com.tangem.domain.models.currency.CryptoCurrency
|
import com.tangem.domain.models.currency.CryptoCurrency
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.common
|
package com.tangem.features.send.common
|
||||||
|
|
||||||
import com.tangem.common.ui.alerts.TransactionErrorDialogFactory
|
import com.tangem.common.ui.alerts.TransactionErrorDialogFactory
|
||||||
import com.tangem.core.decompose.di.ModelScoped
|
import com.tangem.core.decompose.di.ModelScoped
|
||||||
|
|
@ -7,7 +7,7 @@ import com.tangem.core.ui.extensions.resourceReference
|
||||||
import com.tangem.core.ui.message.DialogMessage
|
import com.tangem.core.ui.message.DialogMessage
|
||||||
import com.tangem.core.ui.message.EventMessageAction
|
import com.tangem.core.ui.message.EventMessageAction
|
||||||
import com.tangem.domain.transaction.error.SendTransactionError
|
import com.tangem.domain.transaction.error.SendTransactionError
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.impl.R
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ModelScoped
|
@ModelScoped
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.common.ui
|
package com.tangem.features.send.common.ui
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
|
|
@ -15,8 +15,8 @@ import com.tangem.core.ui.format.bigdecimal.crypto
|
||||||
import com.tangem.core.ui.format.bigdecimal.fee
|
import com.tangem.core.ui.format.bigdecimal.fee
|
||||||
import com.tangem.core.ui.format.bigdecimal.format
|
import com.tangem.core.ui.format.bigdecimal.format
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.impl.R
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun FeeBlockSuccess(feeSelectorUM: FeeSelectorUM) {
|
fun FeeBlockSuccess(feeSelectorUM: FeeSelectorUM) {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.common.ui
|
package com.tangem.features.send.common.ui
|
||||||
|
|
||||||
import androidx.compose.animation.*
|
import androidx.compose.animation.*
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
|
|
@ -21,8 +21,8 @@ import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.core.ui.extensions.TextReference
|
import com.tangem.core.ui.extensions.TextReference
|
||||||
import com.tangem.core.ui.extensions.resolveReference
|
import com.tangem.core.ui.extensions.resolveReference
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.features.send.v2.common.CommonSendRoute
|
import com.tangem.features.send.common.CommonSendRoute
|
||||||
import com.tangem.features.send.v2.common.ui.state.ConfirmUM
|
import com.tangem.features.send.common.ui.state.ConfirmUM
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun SendContent(
|
internal fun SendContent(
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.common.ui
|
package com.tangem.features.send.common.ui
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
|
|
@ -14,7 +14,7 @@ import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||||
import com.tangem.core.ui.res.TangemTheme
|
import com.tangem.core.ui.res.TangemTheme
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.impl.R
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
|
|
||||||
private const val TAP_HELP_KEY = "TAP_HELP_KEY"
|
private const val TAP_HELP_KEY = "TAP_HELP_KEY"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.common.ui.state
|
package com.tangem.features.send.common.ui.state
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import com.tangem.common.ui.notifications.NotificationUM
|
import com.tangem.common.ui.notifications.NotificationUM
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package com.tangem.features.send.v2.common.utils
|
package com.tangem.features.send.common.utils
|
||||||
|
|
||||||
import com.arkivanov.decompose.router.stack.ChildStack
|
import com.arkivanov.decompose.router.stack.ChildStack
|
||||||
import com.arkivanov.decompose.value.Value
|
import com.arkivanov.decompose.value.Value
|
||||||
import com.tangem.core.decompose.navigation.Router
|
import com.tangem.core.decompose.navigation.Router
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.send.v2.common.CommonSendRoute
|
import com.tangem.features.send.common.CommonSendRoute
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Workaround to try fix duplicate route crash
|
* Workaround to try fix duplicate route crash
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.deeplink
|
package com.tangem.features.send.deeplink
|
||||||
|
|
||||||
import arrow.core.Option
|
import arrow.core.Option
|
||||||
import arrow.core.getOrElse
|
import arrow.core.getOrElse
|
||||||
|
|
@ -12,7 +12,7 @@ import com.tangem.domain.account.supplier.SingleAccountListSupplier
|
||||||
import com.tangem.domain.models.currency.CryptoCurrency
|
import com.tangem.domain.models.currency.CryptoCurrency
|
||||||
import com.tangem.domain.models.wallet.UserWalletId
|
import com.tangem.domain.models.wallet.UserWalletId
|
||||||
import com.tangem.domain.wallets.usecase.GetSelectedWalletSyncUseCase
|
import com.tangem.domain.wallets.usecase.GetSelectedWalletSyncUseCase
|
||||||
import com.tangem.features.send.v2.api.deeplink.SellRedirectDeepLinkHandler
|
import com.tangem.features.send.api.deeplink.SellRedirectDeepLinkHandler
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.tangem.features.send.v2.deeplink.di
|
package com.tangem.features.send.deeplink.di
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.deeplink.SellRedirectDeepLinkHandler
|
import com.tangem.features.send.api.deeplink.SellRedirectDeepLinkHandler
|
||||||
import com.tangem.features.send.v2.deeplink.DefaultSellRedirectDeepLinkHandler
|
import com.tangem.features.send.deeplink.DefaultSellRedirectDeepLinkHandler
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package com.tangem.features.send.v2.di
|
package com.tangem.features.send.di
|
||||||
|
|
||||||
import com.tangem.core.decompose.di.ModelComponent
|
import com.tangem.core.decompose.di.ModelComponent
|
||||||
import com.tangem.core.decompose.model.Model
|
import com.tangem.core.decompose.model.Model
|
||||||
import com.tangem.features.send.v2.subcomponents.amount.model.SendAmountModel
|
import com.tangem.features.send.subcomponents.amount.model.SendAmountModel
|
||||||
import com.tangem.features.send.v2.subcomponents.destination.model.SendDestinationModel
|
import com.tangem.features.send.subcomponents.destination.model.SendDestinationModel
|
||||||
import com.tangem.features.send.v2.subcomponents.notifications.model.NotificationsModel
|
import com.tangem.features.send.subcomponents.notifications.model.NotificationsModel
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
package com.tangem.features.send.v2.di
|
package com.tangem.features.send.di
|
||||||
|
|
||||||
import com.tangem.features.send.v2.DefaultSendFeatureToggles
|
import com.tangem.features.send.DefaultSendFeatureToggles
|
||||||
import com.tangem.features.send.v2.api.*
|
import com.tangem.features.send.api.NFTSendComponent
|
||||||
import com.tangem.features.send.v2.entrypoint.DefaultSendEntryPointComponent
|
import com.tangem.features.send.api.SendComponent
|
||||||
import com.tangem.features.send.v2.send.DefaultSendComponent
|
import com.tangem.features.send.api.SendEntryPointComponent
|
||||||
import com.tangem.features.send.v2.sendnft.DefaultNFTSendComponent
|
import com.tangem.features.send.api.SendFeatureToggles
|
||||||
import com.tangem.features.send.v2.subcomponents.notifications.DefaultSendNotificationsComponent
|
import com.tangem.features.send.api.SendNotificationsComponent
|
||||||
|
import com.tangem.features.send.entrypoint.DefaultSendEntryPointComponent
|
||||||
|
import com.tangem.features.send.send.DefaultSendComponent
|
||||||
|
import com.tangem.features.send.sendnft.DefaultNFTSendComponent
|
||||||
|
import com.tangem.features.send.subcomponents.notifications.DefaultSendNotificationsComponent
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.entrypoint
|
package com.tangem.features.send.entrypoint
|
||||||
|
|
||||||
import androidx.compose.foundation.gestures.Orientation
|
import androidx.compose.foundation.gestures.Orientation
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
|
@ -24,11 +24,11 @@ import com.tangem.core.decompose.model.getOrCreateModel
|
||||||
import com.tangem.core.decompose.navigation.inner.InnerRouter
|
import com.tangem.core.decompose.navigation.inner.InnerRouter
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.managetokens.component.ChooseManagedTokensComponent
|
import com.tangem.features.managetokens.component.ChooseManagedTokensComponent
|
||||||
import com.tangem.features.send.v2.api.SendComponent
|
import com.tangem.features.send.api.SendComponent
|
||||||
import com.tangem.features.send.v2.api.SendEntryPointComponent
|
import com.tangem.features.send.api.SendEntryPointComponent
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents
|
||||||
import com.tangem.features.send.v2.api.entry.SendEntryRoute
|
import com.tangem.features.send.api.entry.SendEntryRoute
|
||||||
import com.tangem.features.send.v2.entrypoint.model.SendEntryPointModel
|
import com.tangem.features.send.entrypoint.model.SendEntryPointModel
|
||||||
import com.tangem.features.swap.v2.api.SendWithSwapComponent
|
import com.tangem.features.swap.v2.api.SendWithSwapComponent
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.tangem.features.send.v2.entrypoint.di
|
package com.tangem.features.send.entrypoint.di
|
||||||
|
|
||||||
import com.tangem.core.decompose.di.ModelComponent
|
import com.tangem.core.decompose.di.ModelComponent
|
||||||
import com.tangem.core.decompose.model.Model
|
import com.tangem.core.decompose.model.Model
|
||||||
import com.tangem.features.send.v2.entrypoint.model.SendEntryPointModel
|
import com.tangem.features.send.entrypoint.model.SendEntryPointModel
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.entrypoint.model
|
package com.tangem.features.send.entrypoint.model
|
||||||
|
|
||||||
import com.tangem.common.ui.notifications.NotificationId
|
import com.tangem.common.ui.notifications.NotificationId
|
||||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||||
|
|
@ -7,10 +7,10 @@ import com.tangem.core.decompose.model.Model
|
||||||
import com.tangem.core.decompose.navigation.Router
|
import com.tangem.core.decompose.navigation.Router
|
||||||
import com.tangem.domain.notifications.ShouldShowNotificationUseCase
|
import com.tangem.domain.notifications.ShouldShowNotificationUseCase
|
||||||
import com.tangem.features.managetokens.component.ChooseManagedTokensComponent
|
import com.tangem.features.managetokens.component.ChooseManagedTokensComponent
|
||||||
import com.tangem.features.send.v2.api.SendComponent
|
import com.tangem.features.send.api.SendComponent
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents
|
||||||
import com.tangem.features.send.v2.api.entry.SendEntryRoute
|
import com.tangem.features.send.api.entry.SendEntryRoute
|
||||||
import com.tangem.features.send.v2.subcomponents.amount.SendAmountUpdateTrigger
|
import com.tangem.features.send.subcomponents.amount.SendAmountUpdateTrigger
|
||||||
import com.tangem.features.swap.v2.api.SendWithSwapComponent
|
import com.tangem.features.swap.v2.api.SendWithSwapComponent
|
||||||
import com.tangem.features.swap.v2.api.subcomponents.SwapAmountUpdateTrigger
|
import com.tangem.features.swap.v2.api.subcomponents.SwapAmountUpdateTrigger
|
||||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector
|
package com.tangem.features.send.feeselector
|
||||||
|
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
|
@ -12,12 +12,12 @@ import com.tangem.core.decompose.context.AppComponentContext
|
||||||
import com.tangem.core.decompose.context.childByContext
|
import com.tangem.core.decompose.context.childByContext
|
||||||
import com.tangem.core.decompose.model.getOrCreateModel
|
import com.tangem.core.decompose.model.getOrCreateModel
|
||||||
import com.tangem.core.ui.extensions.conditional
|
import com.tangem.core.ui.extensions.conditional
|
||||||
import com.tangem.features.send.v2.api.FeeSelectorBlockComponent
|
import com.tangem.features.send.api.FeeSelectorBlockComponent
|
||||||
import com.tangem.features.send.v2.api.FeeSelectorComponent
|
import com.tangem.features.send.api.FeeSelectorComponent
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.api.params.FeeSelectorParams
|
import com.tangem.features.send.api.params.FeeSelectorParams
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorBlockModel
|
import com.tangem.features.send.feeselector.model.FeeSelectorBlockModel
|
||||||
import com.tangem.features.send.v2.feeselector.ui.FeeSelectorBlockContent
|
import com.tangem.features.send.feeselector.ui.FeeSelectorBlockContent
|
||||||
import com.tangem.utils.extensions.isSingleItem
|
import com.tangem.utils.extensions.isSingleItem
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector
|
package com.tangem.features.send.feeselector
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
|
@ -12,15 +12,15 @@ import com.tangem.core.decompose.context.childByContext
|
||||||
import com.tangem.core.decompose.model.getOrCreateModel
|
import com.tangem.core.decompose.model.getOrCreateModel
|
||||||
import com.tangem.core.decompose.navigation.inner.InnerRouter
|
import com.tangem.core.decompose.navigation.inner.InnerRouter
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.send.v2.api.FeeSelectorComponent
|
import com.tangem.features.send.api.FeeSelectorComponent
|
||||||
import com.tangem.features.send.v2.api.params.FeeSelectorParams
|
import com.tangem.features.send.api.params.FeeSelectorParams
|
||||||
import com.tangem.features.send.v2.feeselector.component.FeeSelectorComponentParams
|
import com.tangem.features.send.feeselector.component.FeeSelectorComponentParams
|
||||||
import com.tangem.features.send.v2.feeselector.component.extended.FeeExtendedSelectorComponent
|
import com.tangem.features.send.feeselector.component.extended.FeeExtendedSelectorComponent
|
||||||
import com.tangem.features.send.v2.feeselector.component.speed.FeeSpeedSelectorComponent
|
import com.tangem.features.send.feeselector.component.speed.FeeSpeedSelectorComponent
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.FeeTokenSelectorComponent
|
import com.tangem.features.send.feeselector.component.token.FeeTokenSelectorComponent
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorModel
|
import com.tangem.features.send.feeselector.model.FeeSelectorModel
|
||||||
import com.tangem.features.send.v2.feeselector.route.FeeSelectorRoute
|
import com.tangem.features.send.feeselector.route.FeeSelectorRoute
|
||||||
import com.tangem.features.send.v2.feeselector.ui.FeeSelectorModalBottomSheet
|
import com.tangem.features.send.feeselector.ui.FeeSelectorModalBottomSheet
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package com.tangem.features.send.v2.feeselector
|
package com.tangem.features.send.feeselector
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadListener
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorCheckReloadListener
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadTrigger
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorCheckReloadTrigger
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorReloadListener
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorReloadListener
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.entity.FeeSelectorData
|
import com.tangem.features.send.api.subcomponents.feeSelector.entity.FeeSelectorData
|
||||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import kotlinx.coroutines.flow.SharedFlow
|
import kotlinx.coroutines.flow.SharedFlow
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.tangem.features.send.feeselector.component
|
||||||
|
|
||||||
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
|
import com.tangem.features.send.api.params.FeeSelectorParams
|
||||||
|
import com.tangem.features.send.feeselector.model.FeeSelectorIntents
|
||||||
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
|
|
||||||
|
internal class FeeSelectorComponentParams(
|
||||||
|
val parentParams: FeeSelectorParams.FeeSelectorDetailsParams,
|
||||||
|
val state: MutableStateFlow<FeeSelectorUM>,
|
||||||
|
val intents: FeeSelectorIntents,
|
||||||
|
)
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.extended
|
package com.tangem.features.send.feeselector.component.extended
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
|
@ -7,9 +7,9 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.tangem.core.decompose.context.AppComponentContext
|
import com.tangem.core.decompose.context.AppComponentContext
|
||||||
import com.tangem.core.decompose.model.getOrCreateModel
|
import com.tangem.core.decompose.model.getOrCreateModel
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.send.v2.feeselector.component.FeeSelectorComponentParams
|
import com.tangem.features.send.feeselector.component.FeeSelectorComponentParams
|
||||||
import com.tangem.features.send.v2.feeselector.component.extended.model.FeeExtendedSelectorModel
|
import com.tangem.features.send.feeselector.component.extended.model.FeeExtendedSelectorModel
|
||||||
import com.tangem.features.send.v2.feeselector.component.extended.ui.FeeExtendedSelectorContent
|
import com.tangem.features.send.feeselector.component.extended.ui.FeeExtendedSelectorContent
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.extended.entity
|
package com.tangem.features.send.feeselector.component.extended.entity
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import com.tangem.core.ui.components.token.state.TokenItemState
|
import com.tangem.core.ui.components.token.state.TokenItemState
|
||||||
import com.tangem.features.send.v2.api.entity.FeeItem
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class FeeExtendedSelectorUM(
|
data class FeeExtendedSelectorUM(
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.extended.model
|
package com.tangem.features.send.feeselector.component.extended.model
|
||||||
|
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import arrow.core.getOrElse
|
import arrow.core.getOrElse
|
||||||
|
|
@ -8,10 +8,10 @@ import com.tangem.core.decompose.model.ParamsContainer
|
||||||
import com.tangem.core.decompose.navigation.Router
|
import com.tangem.core.decompose.navigation.Router
|
||||||
import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase
|
import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase
|
||||||
import com.tangem.domain.appcurrency.model.AppCurrency
|
import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.feeselector.component.FeeSelectorComponentParams
|
import com.tangem.features.send.feeselector.component.FeeSelectorComponentParams
|
||||||
import com.tangem.features.send.v2.feeselector.component.extended.entity.FeeExtendedSelectorUM
|
import com.tangem.features.send.feeselector.component.extended.entity.FeeExtendedSelectorUM
|
||||||
import com.tangem.features.send.v2.feeselector.route.FeeSelectorRoute
|
import com.tangem.features.send.feeselector.route.FeeSelectorRoute
|
||||||
import com.tangem.utils.Provider
|
import com.tangem.utils.Provider
|
||||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.extended.model
|
package com.tangem.features.send.feeselector.component.extended.model
|
||||||
|
|
||||||
import com.tangem.common.ui.tokens.TokenItemStateConverter
|
import com.tangem.common.ui.tokens.TokenItemStateConverter
|
||||||
import com.tangem.core.ui.components.icons.IconTint
|
import com.tangem.core.ui.components.icons.IconTint
|
||||||
|
|
@ -9,7 +9,7 @@ import com.tangem.core.ui.format.bigdecimal.fiat
|
||||||
import com.tangem.core.ui.format.bigdecimal.format
|
import com.tangem.core.ui.format.bigdecimal.format
|
||||||
import com.tangem.domain.appcurrency.model.AppCurrency
|
import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.impl.R
|
||||||
import com.tangem.utils.Provider
|
import com.tangem.utils.Provider
|
||||||
import com.tangem.utils.converter.Converter
|
import com.tangem.utils.converter.Converter
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.extended.ui
|
package com.tangem.features.send.feeselector.component.extended.ui
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
|
|
@ -33,9 +33,13 @@ import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrency
|
import com.tangem.domain.models.currency.CryptoCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.domain.models.network.Network
|
import com.tangem.domain.models.network.Network
|
||||||
import com.tangem.features.send.v2.api.entity.*
|
import com.tangem.features.send.api.entity.FeeExtraInfo
|
||||||
import com.tangem.features.send.v2.feeselector.component.extended.entity.FeeExtendedSelectorUM
|
import com.tangem.features.send.api.entity.FeeFiatRateUM
|
||||||
import com.tangem.features.send.v2.feeselector.component.speed.ui.RegularFeeItemContent
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
|
import com.tangem.features.send.api.entity.FeeNonce
|
||||||
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
|
import com.tangem.features.send.feeselector.component.extended.entity.FeeExtendedSelectorUM
|
||||||
|
import com.tangem.features.send.feeselector.component.speed.ui.RegularFeeItemContent
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.speed
|
package com.tangem.features.send.feeselector.component.speed
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
|
@ -7,10 +7,10 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.tangem.core.decompose.context.AppComponentContext
|
import com.tangem.core.decompose.context.AppComponentContext
|
||||||
import com.tangem.core.decompose.model.getOrCreateModel
|
import com.tangem.core.decompose.model.getOrCreateModel
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.feeselector.component.FeeSelectorComponentParams
|
import com.tangem.features.send.feeselector.component.FeeSelectorComponentParams
|
||||||
import com.tangem.features.send.v2.feeselector.component.speed.model.FeeSpeedSelectorModel
|
import com.tangem.features.send.feeselector.component.speed.model.FeeSpeedSelectorModel
|
||||||
import com.tangem.features.send.v2.feeselector.component.speed.ui.FeeSpeedSelectorContent
|
import com.tangem.features.send.feeselector.component.speed.ui.FeeSpeedSelectorContent
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.speed
|
package com.tangem.features.send.feeselector.component.speed
|
||||||
|
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorIntents
|
import com.tangem.features.send.feeselector.model.FeeSelectorIntents
|
||||||
import com.tangem.features.send.v2.feeselector.model.StubFeeSelectorIntents
|
import com.tangem.features.send.feeselector.model.StubFeeSelectorIntents
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
internal interface FeeSpeedSelectorIntents : FeeSelectorIntents {
|
internal interface FeeSpeedSelectorIntents : FeeSelectorIntents {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.speed.model
|
package com.tangem.features.send.feeselector.component.speed.model
|
||||||
|
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import com.tangem.common.TangemBlogUrlBuilder
|
import com.tangem.common.TangemBlogUrlBuilder
|
||||||
|
|
@ -6,10 +6,10 @@ import com.tangem.core.decompose.di.ModelScoped
|
||||||
import com.tangem.core.decompose.model.Model
|
import com.tangem.core.decompose.model.Model
|
||||||
import com.tangem.core.decompose.model.ParamsContainer
|
import com.tangem.core.decompose.model.ParamsContainer
|
||||||
import com.tangem.core.navigation.url.UrlOpener
|
import com.tangem.core.navigation.url.UrlOpener
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.feeselector.component.FeeSelectorComponentParams
|
import com.tangem.features.send.feeselector.component.FeeSelectorComponentParams
|
||||||
import com.tangem.features.send.v2.feeselector.component.speed.FeeSpeedSelectorIntents
|
import com.tangem.features.send.feeselector.component.speed.FeeSpeedSelectorIntents
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorIntents
|
import com.tangem.features.send.feeselector.model.FeeSelectorIntents
|
||||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.speed.ui
|
package com.tangem.features.send.feeselector.component.speed.ui
|
||||||
|
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
|
|
@ -54,10 +54,15 @@ import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrency
|
import com.tangem.domain.models.currency.CryptoCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.domain.models.network.Network
|
import com.tangem.domain.models.network.Network
|
||||||
import com.tangem.features.send.v2.api.entity.*
|
import com.tangem.features.send.api.entity.CustomFeeFieldUM
|
||||||
import com.tangem.features.send.v2.feeselector.component.speed.FeeSpeedSelectorIntents
|
import com.tangem.features.send.api.entity.FeeExtraInfo
|
||||||
import com.tangem.features.send.v2.feeselector.component.speed.StubFeeSpeedSelectorIntents
|
import com.tangem.features.send.api.entity.FeeFiatRateUM
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
|
import com.tangem.features.send.api.entity.FeeNonce
|
||||||
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
|
import com.tangem.features.send.feeselector.component.speed.FeeSpeedSelectorIntents
|
||||||
|
import com.tangem.features.send.feeselector.component.speed.StubFeeSpeedSelectorIntents
|
||||||
|
import com.tangem.features.send.impl.R
|
||||||
import com.tangem.utils.StringsSigns
|
import com.tangem.utils.StringsSigns
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.token
|
package com.tangem.features.send.feeselector.component.token
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
|
@ -7,9 +7,9 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.tangem.core.decompose.context.AppComponentContext
|
import com.tangem.core.decompose.context.AppComponentContext
|
||||||
import com.tangem.core.decompose.model.getOrCreateModel
|
import com.tangem.core.decompose.model.getOrCreateModel
|
||||||
import com.tangem.core.ui.decompose.ComposableContentComponent
|
import com.tangem.core.ui.decompose.ComposableContentComponent
|
||||||
import com.tangem.features.send.v2.feeselector.component.FeeSelectorComponentParams
|
import com.tangem.features.send.feeselector.component.FeeSelectorComponentParams
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.model.FeeTokenSelectorModel
|
import com.tangem.features.send.feeselector.component.token.model.FeeTokenSelectorModel
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.ui.FeeTokenSelectorContent
|
import com.tangem.features.send.feeselector.component.token.ui.FeeTokenSelectorContent
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.token
|
package com.tangem.features.send.feeselector.component.token
|
||||||
|
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorIntents
|
import com.tangem.features.send.feeselector.model.FeeSelectorIntents
|
||||||
import com.tangem.features.send.v2.feeselector.model.StubFeeSelectorIntents
|
import com.tangem.features.send.feeselector.model.StubFeeSelectorIntents
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
internal interface FeeTokenSelectorIntents : FeeSelectorIntents {
|
internal interface FeeTokenSelectorIntents : FeeSelectorIntents {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.token.entity
|
package com.tangem.features.send.feeselector.component.token.entity
|
||||||
|
|
||||||
import com.tangem.core.ui.components.token.state.TokenItemState
|
import com.tangem.core.ui.components.token.state.TokenItemState
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.token.entity
|
package com.tangem.features.send.feeselector.component.token.entity
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
|
||||||
internal data class FeeTokenSelectorUM(
|
internal data class FeeTokenSelectorUM(
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.token.model
|
package com.tangem.features.send.feeselector.component.token.model
|
||||||
|
|
||||||
import com.tangem.common.ui.tokens.TokenItemStateConverter
|
import com.tangem.common.ui.tokens.TokenItemStateConverter
|
||||||
import com.tangem.core.ui.components.token.state.TokenItemState
|
import com.tangem.core.ui.components.token.state.TokenItemState
|
||||||
|
|
@ -8,8 +8,8 @@ import com.tangem.core.ui.format.bigdecimal.fiat
|
||||||
import com.tangem.core.ui.format.bigdecimal.format
|
import com.tangem.core.ui.format.bigdecimal.format
|
||||||
import com.tangem.domain.appcurrency.model.AppCurrency
|
import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.entity.FeeTokenItemState
|
import com.tangem.features.send.feeselector.component.token.entity.FeeTokenItemState
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.impl.R
|
||||||
import com.tangem.utils.Provider
|
import com.tangem.utils.Provider
|
||||||
import com.tangem.utils.converter.Converter
|
import com.tangem.utils.converter.Converter
|
||||||
import com.tangem.utils.extensions.isZero
|
import com.tangem.utils.extensions.isZero
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.token.model
|
package com.tangem.features.send.feeselector.component.token.model
|
||||||
|
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import arrow.core.getOrElse
|
import arrow.core.getOrElse
|
||||||
|
|
@ -10,12 +10,12 @@ import com.tangem.core.navigation.url.UrlOpener
|
||||||
import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase
|
import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase
|
||||||
import com.tangem.domain.appcurrency.model.AppCurrency
|
import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.feeselector.component.FeeSelectorComponentParams
|
import com.tangem.features.send.feeselector.component.FeeSelectorComponentParams
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.FeeTokenSelectorIntents
|
import com.tangem.features.send.feeselector.component.token.FeeTokenSelectorIntents
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.entity.FeeTokenItemState
|
import com.tangem.features.send.feeselector.component.token.entity.FeeTokenItemState
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.entity.FeeTokenSelectorUM
|
import com.tangem.features.send.feeselector.component.token.entity.FeeTokenSelectorUM
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorIntents
|
import com.tangem.features.send.feeselector.model.FeeSelectorIntents
|
||||||
import com.tangem.utils.Provider
|
import com.tangem.utils.Provider
|
||||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.component.token.ui
|
package com.tangem.features.send.feeselector.component.token.ui
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
|
@ -36,12 +36,16 @@ import com.tangem.domain.appcurrency.model.AppCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrency
|
import com.tangem.domain.models.currency.CryptoCurrency
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.domain.models.network.Network
|
import com.tangem.domain.models.network.Network
|
||||||
import com.tangem.features.send.v2.api.entity.*
|
import com.tangem.features.send.api.entity.FeeExtraInfo
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.FeeTokenSelectorIntents
|
import com.tangem.features.send.api.entity.FeeFiatRateUM
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.StubFeeTokenSelectorIntents
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.entity.FeeTokenItemState
|
import com.tangem.features.send.api.entity.FeeNonce
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.entity.FeeTokenSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.feeselector.component.token.FeeTokenSelectorIntents
|
||||||
|
import com.tangem.features.send.feeselector.component.token.StubFeeTokenSelectorIntents
|
||||||
|
import com.tangem.features.send.feeselector.component.token.entity.FeeTokenItemState
|
||||||
|
import com.tangem.features.send.feeselector.component.token.entity.FeeTokenSelectorUM
|
||||||
|
import com.tangem.features.send.impl.R
|
||||||
import com.tangem.utils.StringsSigns
|
import com.tangem.utils.StringsSigns
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package com.tangem.features.send.v2.feeselector.di
|
package com.tangem.features.send.feeselector.di
|
||||||
|
|
||||||
import com.tangem.features.send.v2.api.FeeSelectorBlockComponent
|
import com.tangem.features.send.api.FeeSelectorBlockComponent
|
||||||
import com.tangem.features.send.v2.api.FeeSelectorComponent
|
import com.tangem.features.send.api.FeeSelectorComponent
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadListener
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorCheckReloadListener
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadTrigger
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorCheckReloadTrigger
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorReloadListener
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorReloadListener
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorReloadTrigger
|
||||||
import com.tangem.features.send.v2.feeselector.DefaultFeeSelectorBlockComponent
|
import com.tangem.features.send.feeselector.DefaultFeeSelectorBlockComponent
|
||||||
import com.tangem.features.send.v2.feeselector.DefaultFeeSelectorComponent
|
import com.tangem.features.send.feeselector.DefaultFeeSelectorComponent
|
||||||
import com.tangem.features.send.v2.feeselector.DefaultFeeSelectorReloadTrigger
|
import com.tangem.features.send.feeselector.DefaultFeeSelectorReloadTrigger
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
package com.tangem.features.send.v2.feeselector.di
|
package com.tangem.features.send.feeselector.di
|
||||||
|
|
||||||
import com.tangem.core.decompose.di.ModelComponent
|
import com.tangem.core.decompose.di.ModelComponent
|
||||||
import com.tangem.core.decompose.model.Model
|
import com.tangem.core.decompose.model.Model
|
||||||
import com.tangem.features.send.v2.feeselector.component.extended.model.FeeExtendedSelectorModel
|
import com.tangem.features.send.feeselector.component.extended.model.FeeExtendedSelectorModel
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorBlockModel
|
import com.tangem.features.send.feeselector.component.speed.model.FeeSpeedSelectorModel
|
||||||
import com.tangem.features.send.v2.feeselector.component.speed.model.FeeSpeedSelectorModel
|
import com.tangem.features.send.feeselector.component.token.model.FeeTokenSelectorModel
|
||||||
import com.tangem.features.send.v2.feeselector.component.token.model.FeeTokenSelectorModel
|
import com.tangem.features.send.feeselector.model.FeeSelectorBlockModel
|
||||||
import com.tangem.features.send.v2.feeselector.model.FeeSelectorModel
|
import com.tangem.features.send.feeselector.model.FeeSelectorModel
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.model
|
package com.tangem.features.send.feeselector.model
|
||||||
|
|
||||||
import com.tangem.blockchain.common.transaction.TransactionFee
|
import com.tangem.blockchain.common.transaction.TransactionFee
|
||||||
import com.tangem.core.decompose.di.ModelScoped
|
import com.tangem.core.decompose.di.ModelScoped
|
||||||
|
|
@ -7,10 +7,10 @@ import com.tangem.core.ui.extensions.resourceReference
|
||||||
import com.tangem.core.ui.extensions.wrappedList
|
import com.tangem.core.ui.extensions.wrappedList
|
||||||
import com.tangem.core.ui.message.DialogMessage
|
import com.tangem.core.ui.message.DialogMessage
|
||||||
import com.tangem.core.ui.message.EventMessageAction
|
import com.tangem.core.ui.message.EventMessageAction
|
||||||
import com.tangem.features.send.v2.api.entity.FeeItem
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.utils.FeeCalculationUtils
|
import com.tangem.features.send.api.subcomponents.feeSelector.utils.FeeCalculationUtils
|
||||||
import com.tangem.features.send.v2.impl.R
|
import com.tangem.features.send.impl.R
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.model
|
package com.tangem.features.send.feeselector.model
|
||||||
|
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import com.arkivanov.decompose.router.slot.SlotNavigation
|
import com.arkivanov.decompose.router.slot.SlotNavigation
|
||||||
|
|
@ -11,11 +11,11 @@ import com.tangem.core.decompose.model.Model
|
||||||
import com.tangem.core.decompose.model.ParamsContainer
|
import com.tangem.core.decompose.model.ParamsContainer
|
||||||
import com.tangem.core.navigation.url.UrlOpener
|
import com.tangem.core.navigation.url.UrlOpener
|
||||||
import com.tangem.domain.settings.NeverShowTapHelpUseCase
|
import com.tangem.domain.settings.NeverShowTapHelpUseCase
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents.SendScreenSource
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents.SendScreenSource
|
||||||
import com.tangem.features.send.v2.api.callbacks.FeeSelectorModelCallback
|
import com.tangem.features.send.api.callbacks.FeeSelectorModelCallback
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.api.params.FeeSelectorParams
|
import com.tangem.features.send.api.params.FeeSelectorParams
|
||||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.tangem.features.send.v2.feeselector.model
|
package com.tangem.features.send.feeselector.model
|
||||||
|
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
import com.tangem.domain.models.currency.CryptoCurrencyStatus
|
||||||
import com.tangem.features.send.v2.api.entity.FeeItem
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
internal interface FeeSelectorIntents {
|
internal interface FeeSelectorIntents {
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.tangem.features.send.v2.feeselector.model
|
package com.tangem.features.send.feeselector.model
|
||||||
|
|
||||||
import arrow.core.Either
|
import arrow.core.Either
|
||||||
import arrow.core.flatMap
|
import arrow.core.flatMap
|
||||||
|
|
@ -20,17 +20,24 @@ import com.tangem.domain.transaction.usecase.IsFeeApproximateUseCase
|
||||||
import com.tangem.domain.transaction.usecase.gasless.GetAvailableFeeTokensUseCase
|
import com.tangem.domain.transaction.usecase.gasless.GetAvailableFeeTokensUseCase
|
||||||
import com.tangem.domain.transaction.usecase.gasless.IsGaslessFeeSupportedForNetwork
|
import com.tangem.domain.transaction.usecase.gasless.IsGaslessFeeSupportedForNetwork
|
||||||
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
||||||
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents.NonceInserted
|
import com.tangem.features.send.api.analytics.CommonSendAnalyticEvents.NonceInserted
|
||||||
import com.tangem.features.send.v2.api.entity.FeeItem
|
import com.tangem.features.send.api.entity.FeeItem
|
||||||
import com.tangem.features.send.v2.api.entity.FeeNonce
|
import com.tangem.features.send.api.entity.FeeNonce
|
||||||
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
|
import com.tangem.features.send.api.entity.FeeSelectorUM
|
||||||
import com.tangem.features.send.v2.api.params.FeeSelectorParams
|
import com.tangem.features.send.api.params.FeeSelectorParams
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadListener
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorCheckReloadListener
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorCheckReloadTrigger
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorCheckReloadTrigger
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.FeeSelectorReloadListener
|
import com.tangem.features.send.api.subcomponents.feeSelector.FeeSelectorReloadListener
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.analytics.CommonSendFeeAnalyticEvents
|
import com.tangem.features.send.api.subcomponents.feeSelector.analytics.CommonSendFeeAnalyticEvents
|
||||||
import com.tangem.features.send.v2.api.subcomponents.feeSelector.analytics.CommonSendFeeAnalyticEvents.GasPriceInserter
|
import com.tangem.features.send.api.subcomponents.feeSelector.analytics.CommonSendFeeAnalyticEvents.GasPriceInserter
|
||||||
import com.tangem.features.send.v2.feeselector.model.transformers.*
|
import com.tangem.features.send.feeselector.model.transformers.FeeItemSelectedTransformer
|
||||||
|
import com.tangem.features.send.feeselector.model.transformers.FeeSelectorCustomValueChangedTransformer
|
||||||
|
import com.tangem.features.send.feeselector.model.transformers.FeeSelectorErrorTransformer
|
||||||
|
import com.tangem.features.send.feeselector.model.transformers.FeeSelectorLoadedTransformer
|
||||||
|
import com.tangem.features.send.feeselector.model.transformers.FeeSelectorLoadingTransformer
|
||||||
|
import com.tangem.features.send.feeselector.model.transformers.FeeSelectorNonceChangeTransformer
|
||||||
|
import com.tangem.features.send.feeselector.model.transformers.FeeSelectorRemoveSuggestedTransformer
|
||||||
|
import com.tangem.features.send.feeselector.model.transformers.FeeSelectorTokenSelectedTransformer
|
||||||
import com.tangem.utils.coroutines.JobHolder
|
import com.tangem.utils.coroutines.JobHolder
|
||||||
import com.tangem.utils.coroutines.saveIn
|
import com.tangem.utils.coroutines.saveIn
|
||||||
import com.tangem.utils.transformer.update
|
import com.tangem.utils.transformer.update
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue