From 0835b34e971bfb2599e460604d982b74095b9534 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 23 Mar 2022 18:14:45 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/tap/features/home/HomeFragment.kt | 6 +++- .../tap/features/home/redux/HomeAction.kt | 2 +- .../tap/features/home/redux/HomeMiddleware.kt | 11 +++++-- .../wallet/redux/OnboardingWalletAction.kt | 4 +-- .../redux/OnboardingWalletMiddleware.kt | 30 ++----------------- .../wallet/redux/OnboardingWalletReducer.kt | 8 ----- .../wallet/redux/OnboardingWalletState.kt | 1 - .../wallet/ui/OnboardingWalletFragment.kt | 26 ++-------------- .../res/layout/fragment_onboarding_wallet.xml | 1 - app/src/main/res/menu/shop.xml | 8 ----- 10 files changed, 21 insertions(+), 76 deletions(-) delete mode 100644 app/src/main/res/menu/shop.xml 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 b577781a18..e9d11624a9 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 @@ -1,6 +1,8 @@ package com.tangem.tap.features.home +import android.content.Context import android.os.Bundle +import android.telephony.TelephonyManager import android.view.View import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf @@ -28,13 +30,15 @@ class HomeFragment : Fragment(R.layout.fragment_home), StoreSubscriber(R.id.cv_stories)?.setContent { AppCompatTheme { StoriesScreen( homeState, onScanButtonClick = { store.dispatch(HomeAction.ReadCard) }, - onShopButtonClick = { store.dispatch(HomeAction.GoToShop) } + onShopButtonClick = { store.dispatch(HomeAction.GoToShop(countryCodeValue)) } ) } } 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 d14d4cf71b..79055cf993 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 @@ -6,7 +6,7 @@ import org.rekotlin.Action sealed class HomeAction : Action { // from ui object ReadCard : HomeAction() - object GoToShop : HomeAction() + data class GoToShop(val region: String) : HomeAction() // internal data class ShouldScanCardOnResume(val shouldScanCard: Boolean) : HomeAction() diff --git a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt index 89c34cbf42..eb0f261f8b 100644 --- a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt @@ -4,6 +4,7 @@ import com.tangem.tap.common.analytics.AnalyticsEvent import com.tangem.tap.common.analytics.AnalyticsParam import com.tangem.tap.common.analytics.GetCardSourceParams import com.tangem.tap.common.entities.IndeterminateProgressButton +import com.tangem.tap.common.extensions.dispatchOpenUrl import com.tangem.tap.common.extensions.onCardScanned import com.tangem.tap.common.extensions.withMainContext import com.tangem.tap.common.post @@ -14,6 +15,7 @@ import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.FragmentShareTransition import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.domain.DELAY_SDK_DIALOG_CLOSE +import com.tangem.tap.features.home.redux.HomeMiddleware.Companion.BUY_WALLET_URL import com.tangem.tap.features.onboarding.OnboardingHelper import com.tangem.tap.features.onboarding.products.twins.redux.TwinCardsAction import com.tangem.tap.features.onboarding.products.twins.redux.TwinCardsStep @@ -29,6 +31,7 @@ class HomeMiddleware { val handler = homeMiddleware const val CARD_SHOP_URI = "http://cards.tangem.com/" + const val BUY_WALLET_URL = "https://mv.tangem.com/" } } @@ -49,7 +52,11 @@ private val homeMiddleware: Middleware = { dispatch, state -> } is HomeAction.ReadCard -> handleReadCard() is HomeAction.GoToShop -> { - store.dispatch(NavigationAction.NavigateTo(AppScreen.Shop)) + if (action.region == "ru") { + store.dispatchOpenUrl(BUY_WALLET_URL) + } else { + store.dispatch(NavigationAction.NavigateTo(AppScreen.Shop)) + } store.state.globalState.analyticsHandlers?.triggerEvent( event = AnalyticsEvent.GET_CARD, params = mapOf(AnalyticsParam.SOURCE.param to GetCardSourceParams.WELCOME.param) @@ -66,7 +73,7 @@ private fun handleReadCard() { store.dispatch(NavigationAction.NavigateTo(AppScreen.Disclaimer)) } else { changeButtonState(ButtonState.PROGRESS) - store.dispatch(GlobalAction.ScanCard( onSuccess = { scanResponse -> + store.dispatch(GlobalAction.ScanCard(onSuccess = { scanResponse -> store.state.globalState.tapWalletManager.updateConfigManager(scanResponse) store.dispatch(TwinCardsAction.IfTwinsPrepareState(scanResponse)) 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 57ede6fd8a..4795e9ffa8 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 @@ -21,7 +21,6 @@ sealed class OnboardingWalletAction : Action { sealed class BackupAction : Action { object DetermineBackupStep : BackupAction() - data class IntroduceBackup(val buyCardsUrl: String? = null) : BackupAction() object StartBackup : BackupAction() object DismissBackup : BackupAction() @@ -42,7 +41,6 @@ sealed class BackupAction : Action { data class Success(val cardId: CardId, val artwork: Bitmap) } - object GoToShop : BackupAction() object FinishAddingBackupCards : BackupAction() object ShowAccessCodeInfoScreen : BackupAction() @@ -58,7 +56,7 @@ sealed class BackupAction : Action { data class WriteBackupCard(val cardNumber: Int) : BackupAction() object PrepareToWritePrimaryCard : BackupAction() - object WritePrimaryCard: BackupAction() + object WritePrimaryCard : BackupAction() object FinishBackup : BackupAction() object DiscardBackup : BackupAction() 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 9abbebd018..4004c0f96b 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 @@ -4,9 +4,6 @@ import com.tangem.common.CompletionResult import com.tangem.common.card.Card import com.tangem.operations.backup.BackupService import com.tangem.tap.* -import com.tangem.tap.common.analytics.AnalyticsEvent -import com.tangem.tap.common.analytics.AnalyticsParam -import com.tangem.tap.common.analytics.GetCardSourceParams import com.tangem.tap.common.extensions.dispatchOnMain import com.tangem.tap.common.extensions.withMainContext import com.tangem.tap.common.redux.AppState @@ -17,7 +14,6 @@ import com.tangem.tap.domain.extensions.hasWallets import com.tangem.tap.domain.tasks.product.ScanResponse import com.tangem.tap.features.demo.DemoHelper import com.tangem.tap.features.home.redux.HomeAction -import com.tangem.tap.features.onboarding.products.wallet.redux.OnboardingWalletMiddleware.Companion.BUY_WALLET_URL import com.tangem.tap.features.wallet.redux.Artwork import kotlinx.coroutines.launch import org.rekotlin.Action @@ -26,8 +22,6 @@ import org.rekotlin.Middleware class OnboardingWalletMiddleware { companion object { val handler = onboardingWalletMiddleware - - const val BUY_WALLET_URL = "https://wallet.tangem.com/" } } @@ -116,21 +110,8 @@ private fun handleWalletAction(action: Action) { OnboardingWalletAction.ProceedBackup -> { val newAction = when (val backupState = backupService.currentState) { BackupService.State.FinalizingPrimaryCard -> BackupAction.PrepareToWritePrimaryCard - is BackupService.State.FinalizingBackupCard -> - BackupAction.PrepareToWriteBackupCard(backupState.index) - else -> { - val url = if (card?.issuer?.name?.lowercase()?.contains("tangem") == true) { - BUY_WALLET_URL - } else { - null - } - if (walletState.backupState.backupStep == BackupStep.InitBackup || - walletState.backupState.backupStep == BackupStep.Finished) { - BackupAction.IntroduceBackup(url) - } else { - null - } - } + is BackupService.State.FinalizingBackupCard -> BackupAction.PrepareToWriteBackupCard(backupState.index) + else -> null } newAction?.let { store.dispatch(it) } } @@ -221,13 +202,6 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) } } } - is BackupAction.GoToShop -> { - store.dispatch(NavigationAction.NavigateTo(AppScreen.Shop)) - store.state.globalState.analyticsHandlers?.triggerEvent( - event = AnalyticsEvent.GET_CARD, - params = mapOf(AnalyticsParam.SOURCE.param to GetCardSourceParams.ONBOARDING.param) - ) - } is BackupAction.FinishAddingBackupCards -> { if (backupService.addedBackupCardsCount == 1) { store.dispatchOnMain(GlobalAction.ShowDialog(BackupDialog.AddMoreBackupCards)) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt index f46c1bf0ff..50ce9878e1 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt @@ -39,14 +39,7 @@ class BackupReducer { ): BackupState { return when (action) { - is BackupAction.IntroduceBackup -> BackupState( - backupStep = BackupStep.InitBackup, - canSkipBackup = state.canSkipBackup, - buyAdditionalCardsUrl = action.buyCardsUrl - ) - BackupAction.StartAddingPrimaryCard -> state.copy(backupStep = BackupStep.ScanOriginCard) - BackupAction.StartAddingBackupCards -> { state.copy(backupStep = BackupStep.AddBackupCards) } @@ -122,7 +115,6 @@ class BackupReducer { BackupAction.DismissBackup -> state is BackupAction.LoadBackupCardArtwork -> state is BackupAction.CheckAccessCode -> state - BackupAction.GoToShop -> state BackupAction.DetermineBackupStep -> state BackupAction.CheckForUnfinishedBackup -> state BackupAction.DiscardBackup -> state diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt index 7aaa0fe88f..591573b35b 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt @@ -52,7 +52,6 @@ data class BackupState( val backupStep: BackupStep = BackupStep.InitBackup, val maxBackupCards: Int = 2, val canSkipBackup: Boolean = true, - val buyAdditionalCardsUrl: String? = null ) enum class AccessCodeError { 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 056eb28b12..b9691488c5 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 @@ -2,7 +2,9 @@ package com.tangem.tap.features.onboarding.products.wallet.ui import android.os.Bundle import android.util.TypedValue -import android.view.* +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment @@ -387,28 +389,6 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), } } - override fun onOptionsItemSelected(item: MenuItem): Boolean { - return when (item.itemId) { - R.id.shop_menu -> { - store.dispatch(BackupAction.GoToShop) - true - } - else -> super.onOptionsItemSelected(item) - } - } - - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - inflater.inflate(R.menu.shop, menu) - - val backupState = store.state.onboardingWalletState.backupState - val backupStep = backupState.backupStep - - val shopMenuShouldBeVisible = - (backupStep == BackupStep.ScanOriginCard || backupStep == BackupStep.AddBackupCards) && - backupState.buyAdditionalCardsUrl != null - menu.getItem(0).isVisible = shopMenuShouldBeVisible - } - override fun handleOnBackPressed() { store.dispatch(OnboardingWalletAction.OnBackPressed) } diff --git a/app/src/main/res/layout/fragment_onboarding_wallet.xml b/app/src/main/res/layout/fragment_onboarding_wallet.xml index 904ab50059..903a3c218b 100644 --- a/app/src/main/res/layout/fragment_onboarding_wallet.xml +++ b/app/src/main/res/layout/fragment_onboarding_wallet.xml @@ -23,7 +23,6 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - app:menu="@menu/shop" app:navigationIcon="@drawable/ic_baseline_arrow_back_24" app:title="@string/onboarding_getting_started" /> diff --git a/app/src/main/res/menu/shop.xml b/app/src/main/res/menu/shop.xml deleted file mode 100644 index 092327411a..0000000000 --- a/app/src/main/res/menu/shop.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - \ No newline at end of file