From 51cf112fff3ccf8299ba65831389ee922b5714e2 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 19 Oct 2023 21:19:11 +0800 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/tap/features/home/HomeFragment.kt | 25 ++++++------------- .../tap/features/home/redux/HomeAction.kt | 9 +++---- .../wallet/redux/OnboardingWalletAction.kt | 2 +- .../redux/OnboardingWalletMiddleware.kt | 2 +- .../wallet/ui/OnboardingWalletFragment.kt | 2 +- .../tap/features/wallet/redux/WalletAction.kt | 10 +------- .../redux/middlewares/WalletMiddleware.kt | 2 +- .../tap/features/wallet/ui/WalletFragment.kt | 4 +-- 8 files changed, 18 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt b/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt index e52b6d674b..22f5ad49d0 100644 --- a/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/home/HomeFragment.kt @@ -21,12 +21,12 @@ import com.tangem.core.ui.components.SystemBarsEffect import com.tangem.core.ui.res.TangemTheme import com.tangem.domain.tokens.TokensAction import com.tangem.tap.common.analytics.events.IntroductionProcess +import com.tangem.tap.common.redux.AppState import com.tangem.tap.features.home.compose.StoriesScreen import com.tangem.tap.features.home.redux.HomeAction import com.tangem.tap.features.home.redux.HomeState import com.tangem.tap.store import dagger.hilt.android.AndroidEntryPoint -import kotlinx.coroutines.launch import org.rekotlin.StoreSubscriber @AndroidEntryPoint @@ -51,14 +51,9 @@ class HomeFragment : Fragment(), StoreSubscriber { return ComposeView(inflater.context).apply { setContent { TangemTheme { - BackHandler { - requireActivity().finish() - } + BackHandler(onBack = requireActivity()::finish) SystemBarsEffect { - setSystemBarsColor( - color = Color.Transparent, - darkIcons = false, - ) + setSystemBarsColor(color = Color.Transparent, darkIcons = false) } ScreenContent() } @@ -70,10 +65,10 @@ class HomeFragment : Fragment(), StoreSubscriber { super.onStart() activity?.window?.let { WindowCompat.setDecorFitsSystemWindows(it, false) } - store.subscribe(this) { state -> - state.skipRepeats { oldState, newState -> - oldState.homeState == newState.homeState - }.select { it.homeState } + store.subscribe(subscriber = this) { state -> + state + .skipRepeats { oldState, newState -> oldState.homeState == newState.homeState } + .select(AppState::homeState) } } @@ -101,11 +96,7 @@ class HomeFragment : Fragment(), StoreSubscriber { onLearn2earnClick = {}, // learn2earnViewModel.uiState.storyScreenState.onClick, onScanButtonClick = { Analytics.send(IntroductionProcess.ButtonScanCard()) - lifecycleScope.launch { - store.dispatch( - HomeAction.ReadCard(scope = this), - ) - } + store.dispatch(action = HomeAction.ReadCard(scope = requireActivity().lifecycleScope)) }, onShopButtonClick = { Analytics.send(IntroductionProcess.ButtonBuyCards()) diff --git a/app/src/main/java/com/tangem/tap/features/home/redux/HomeAction.kt b/app/src/main/java/com/tangem/tap/features/home/redux/HomeAction.kt index c15ba54403..5623bd46a0 100644 --- a/app/src/main/java/com/tangem/tap/features/home/redux/HomeAction.kt +++ b/app/src/main/java/com/tangem/tap/features/home/redux/HomeAction.kt @@ -1,10 +1,10 @@ package com.tangem.tap.features.home.redux +import androidx.lifecycle.LifecycleCoroutineScope import com.tangem.core.analytics.models.AnalyticsEvent import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.events.Basic import com.tangem.tap.common.entities.IndeterminateProgressButton -import kotlinx.coroutines.CoroutineScope import org.rekotlin.Action sealed class HomeAction : Action { @@ -17,13 +17,12 @@ sealed class HomeAction : Action { /** * Action for scanning card * - * @property analyticsEvent analytics event - * @property lifecycleCoroutineScope lifecycle scope. It will be canceled when lifecycle-aware component is - * destroyed. + * @property analyticsEvent analytics event + * @property scope lifecycle scope. It will be canceled when lifecycle-aware component is destroyed */ data class ReadCard( val analyticsEvent: AnalyticsEvent? = Basic.CardWasScanned(AnalyticsParam.ScannedFrom.Introduction), - val scope: CoroutineScope, + val scope: LifecycleCoroutineScope, ) : HomeAction() data class ScanInProgress(val scanInProgress: Boolean) : HomeAction() diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt index 9446f718c1..67210a4dc4 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt @@ -18,7 +18,7 @@ sealed class OnboardingWalletAction : Action { ) : OnboardingWalletAction() object Done : OnboardingWalletAction() - data class FinishOnboarding(val lifecycleCoroutineScope: LifecycleCoroutineScope) : OnboardingWalletAction() + data class FinishOnboarding(val scope: LifecycleCoroutineScope) : OnboardingWalletAction() object ResumeBackup : OnboardingWalletAction() diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index b825a98b28..2770bea965 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -152,7 +152,7 @@ private fun handleWalletAction(action: Action) { if (scanResponse == null) { store.dispatch(NavigationAction.PopBackTo()) - store.dispatch(HomeAction.ReadCard(scope = action.lifecycleCoroutineScope)) + store.dispatch(HomeAction.ReadCard(scope = action.scope)) } else { val backupState = store.state.onboardingWalletState.backupState val updatedScanResponse = updateScanResponseAfterBackup(scanResponse, backupState) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index aa714f2c28..78838403b4 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -427,7 +427,7 @@ class OnboardingWalletFragment : layoutButtonsCommon.btnWalletAlternativeAction.hide() layoutButtonsCommon.btnWalletMainAction.setOnClickListener { showConfetti(false) - store.dispatch(OnboardingWalletAction.FinishOnboarding(lifecycleCoroutineScope = lifecycleScope)) + store.dispatch(OnboardingWalletAction.FinishOnboarding(scope = requireActivity().lifecycleScope)) } animator.showSuccess { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt index adca4f96f4..1e8ad23e91 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt @@ -113,7 +113,7 @@ sealed class WalletAction : Action { data class ExploreAddress(val exploreUrl: String, val context: Context) : WalletAction() object CreateWallet : WalletAction() - data class ChangeWallet(val lifecycleScope: LifecycleCoroutineScope) : WalletAction() + data class ChangeWallet(val scope: LifecycleCoroutineScope) : WalletAction() object ShowSaveWalletIfNeeded : WalletAction() sealed class TradeCryptoAction : WalletAction() { @@ -121,14 +121,6 @@ sealed class WalletAction : Action { data class Buy(val checkUserLocation: Boolean = true) : TradeCryptoAction() - data class FinishSelling(val transactionId: String) : TradeCryptoAction() - data class SendCrypto( - val currencyId: String, - val amount: String, - val destinationAddress: String, - val transactionId: String, - ) : TradeCryptoAction() - object Swap : TradeCryptoAction() } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt index 889dab19e8..39fec7fbb8 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt @@ -227,7 +227,7 @@ class WalletMiddleware { showSaveWalletIfNeeded() } is WalletAction.ChangeWallet -> { - changeWallet(walletState, action.lifecycleScope) + changeWallet(walletState, action.scope) } is WalletAction.UserWalletChanged -> Unit is WalletAction.WalletStoresChanged -> { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt index e5c632d8eb..a02a218d62 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt @@ -133,9 +133,7 @@ class WalletFragment : Fragment(R.layout.fragment_wallet), SafeStoreSubscriber