From 0ad86592b9003c295b9144a735aa0fc605008d10 Mon Sep 17 00:00:00 2001 From: Alexander Osokin Date: Sat, 24 Aug 2024 15:39:42 +0100 Subject: [PATCH 1/4] IOS-7652 Load images during onboarding --- .../BaseModels/OnboardingViewModel.swift | 37 ++++++------ .../Note/SingleCardOnboardingView.swift | 2 +- .../Twins/TwinsOnboardingViewModel.swift | 2 +- .../Wallet/WalletOnboardingView.swift | 6 +- .../Wallet/WalletOnboardingViewModel.swift | 59 ++++++++++++++++--- 5 files changed, 74 insertions(+), 32 deletions(-) diff --git a/Tangem/Modules/Onboarding/BaseModels/OnboardingViewModel.swift b/Tangem/Modules/Onboarding/BaseModels/OnboardingViewModel.swift index 68bb0075ac..4a42ac3b09 100644 --- a/Tangem/Modules/Onboarding/BaseModels/OnboardingViewModel.swift +++ b/Tangem/Modules/Onboarding/BaseModels/OnboardingViewModel.swift @@ -28,9 +28,10 @@ class OnboardingViewModel @Published var supplementCardSettings: AnimatedViewSettings = .zero @Published var isNavBarVisible: Bool = false @Published var alert: AlertBinder? - @Published var cardImage: Image? + @Published var mainImage: Image? @Published var customOnboardingImage: Image? @Published var secondImage: Image? + @Published var thirdImage: Image? private var confettiFired: Bool = false var bag: Set = [] @@ -184,12 +185,7 @@ class OnboardingViewModel isFromMain = input.isStandalone isNavBarVisible = input.isStandalone - let loadImageInput = input.cardInput.imageLoadInput - loadImage( - supportsOnlineImage: loadImageInput.supportsOnlineImage, - cardId: loadImageInput.cardId, - cardPublicKey: loadImageInput.cardPublicKey - ) + loadMainImage(imageLoadInput: input.cardInput.imageLoadInput) bindAnalytics() } @@ -212,20 +208,11 @@ class OnboardingViewModel userWalletRepository.add(userWalletModel) } - func loadImage(supportsOnlineImage: Bool, cardId: String?, cardPublicKey: Data?) { - guard let cardId = cardId, let cardPublicKey = cardPublicKey else { - return - } - + func loadImage(supportsOnlineImage: Bool, cardId: String, cardPublicKey: Data) -> AnyPublisher { CardImageProvider(supportsOnlineImage: supportsOnlineImage) .loadImage(cardId: cardId, cardPublicKey: cardPublicKey) .map { $0.image } - .sink { [weak self] image in - withAnimation { - self?.cardImage = image - } - } - .store(in: &bag) + .eraseToAnyPublisher() } func setupContainer(with size: CGSize) { @@ -327,6 +314,20 @@ class OnboardingViewModel Analytics.log(.onboardingEnableBiometric, params: [.state: Analytics.ParameterValue.toggleState(for: agreed)]) } + private func loadMainImage(imageLoadInput: OnboardingInput.ImageLoadInput) { + loadImage( + supportsOnlineImage: imageLoadInput.supportsOnlineImage, + cardId: imageLoadInput.cardId, + cardPublicKey: imageLoadInput.cardPublicKey + ) + .sink { [weak self] image in + withAnimation { + self?.mainImage = image + } + } + .store(in: &bag) + } + private func bindAnalytics() { $currentStepIndex .removeDuplicates() diff --git a/Tangem/Modules/Onboarding/Note/SingleCardOnboardingView.swift b/Tangem/Modules/Onboarding/Note/SingleCardOnboardingView.swift index 606a1dc06a..d893381896 100644 --- a/Tangem/Modules/Onboarding/Note/SingleCardOnboardingView.swift +++ b/Tangem/Modules/Onboarding/Note/SingleCardOnboardingView.swift @@ -106,7 +106,7 @@ struct SingleCardOnboardingView: View { AnimatedView(settings: viewModel.$mainCardSettings) { OnboardingCardView( placeholderCardType: .dark, - cardImage: viewModel.cardImage, + cardImage: viewModel.mainImage, cardScanned: viewModel.isInitialAnimPlayed && viewModel.isCardScanned ) } diff --git a/Tangem/Modules/Onboarding/Twins/TwinsOnboardingViewModel.swift b/Tangem/Modules/Onboarding/Twins/TwinsOnboardingViewModel.swift index c01ba08e2c..588b299c9c 100644 --- a/Tangem/Modules/Onboarding/Twins/TwinsOnboardingViewModel.swift +++ b/Tangem/Modules/Onboarding/Twins/TwinsOnboardingViewModel.swift @@ -377,7 +377,7 @@ class TwinsOnboardingViewModel: OnboardingTopupViewModel= 2 || currentStep == .backupIntro) && viewModel.canDisplayCardImage ) } @@ -138,7 +138,7 @@ struct WalletOnboardingView: View { AnimatedView(settings: viewModel.$supplementCardSettings) { OnboardingCardView( placeholderCardType: secondCardPlaceholder, - cardImage: viewModel.secondImage ?? viewModel.cardImage, + cardImage: viewModel.secondImage, cardScanned: (viewModel.backupCardsAddedCount >= 1 || currentStep == .backupIntro) && viewModel.canDisplayCardImage ) } @@ -147,7 +147,7 @@ struct WalletOnboardingView: View { ZStack(alignment: .topTrailing) { OnboardingCardView( placeholderCardType: .dark, - cardImage: viewModel.customOnboardingImage ?? viewModel.cardImage, + cardImage: viewModel.customOnboardingImage ?? viewModel.mainImage, cardScanned: viewModel.isInitialAnimPlayed ) Text(Localization.commonOriginCard) diff --git a/Tangem/Modules/Onboarding/Wallet/WalletOnboardingViewModel.swift b/Tangem/Modules/Onboarding/Wallet/WalletOnboardingViewModel.swift index 2c102790fd..9bf4cf54de 100644 --- a/Tangem/Modules/Onboarding/Wallet/WalletOnboardingViewModel.swift +++ b/Tangem/Modules/Onboarding/Wallet/WalletOnboardingViewModel.swift @@ -333,15 +333,10 @@ class WalletOnboardingViewModel: OnboardingViewModel Date: Sat, 24 Aug 2024 15:46:55 +0100 Subject: [PATCH 2/4] IOS-7652 remove unused --- .../Onboarding/Wallet/WalletOnboardingViewModel.swift | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Tangem/Modules/Onboarding/Wallet/WalletOnboardingViewModel.swift b/Tangem/Modules/Onboarding/Wallet/WalletOnboardingViewModel.swift index 9bf4cf54de..9f03dac1f3 100644 --- a/Tangem/Modules/Onboarding/Wallet/WalletOnboardingViewModel.swift +++ b/Tangem/Modules/Onboarding/Wallet/WalletOnboardingViewModel.swift @@ -329,14 +329,6 @@ class WalletOnboardingViewModel: OnboardingViewModel Date: Tue, 27 Aug 2024 10:41:14 +0100 Subject: [PATCH 3/4] IOS-7652 Bump SDK --- Podfile | 2 +- Podfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Podfile b/Podfile index c59733c8ce..a4a938c6e6 100644 --- a/Podfile +++ b/Podfile @@ -24,7 +24,7 @@ use_frameworks! inhibit_all_warnings! def tangem_sdk_pod - pod 'TangemSdk', :git => 'https://github.com/Tangem/tangem-sdk-ios.git', :tag => 'develop-302' + pod 'TangemSdk', :git => 'https://github.com/Tangem/tangem-sdk-ios.git', :tag => 'develop-303' #pod 'TangemSdk', :path => '../tangem-sdk-ios' end diff --git a/Podfile.lock b/Podfile.lock index 5a8888b25c..e9281e0595 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -233,7 +233,7 @@ DEPENDENCIES: - Moya - Solana.Swift (from `https://github.com/tangem/Solana.Swift`, tag `1.2.0-tangem10`) - SwiftyJSON (from `https://github.com/tangem/SwiftyJSON.git`, tag `5.0.1-tangem1`) - - TangemSdk (from `https://github.com/Tangem/tangem-sdk-ios.git`, tag `develop-302`) + - TangemSdk (from `https://github.com/Tangem/tangem-sdk-ios.git`, tag `develop-303`) - WalletConnectSwiftV2 (from `https://github.com/WalletConnect/WalletConnectSwiftV2`, tag `1.18.7`) SPEC REPOS: @@ -287,7 +287,7 @@ EXTERNAL SOURCES: :tag: 5.0.1-tangem1 TangemSdk: :git: https://github.com/Tangem/tangem-sdk-ios.git - :tag: develop-302 + :tag: develop-303 WalletConnectSwiftV2: :git: https://github.com/WalletConnect/WalletConnectSwiftV2 :tag: 1.18.7 @@ -310,7 +310,7 @@ CHECKOUT OPTIONS: :tag: 5.0.1-tangem1 TangemSdk: :git: https://github.com/Tangem/tangem-sdk-ios.git - :tag: develop-302 + :tag: develop-303 WalletConnectSwiftV2: :git: https://github.com/WalletConnect/WalletConnectSwiftV2 :tag: 1.18.7 @@ -354,6 +354,6 @@ SPEC CHECKSUMS: TangemSdk: 4a188873f9dbed6340cca9ad6a010240af6df432 WalletConnectSwiftV2: 5ea47db4d86e39fc749b66a05a661af9e87b277d -PODFILE CHECKSUM: aa3b33282d7020122e76b86367cae4019d95693a +PODFILE CHECKSUM: 4600ef4e4fb45b7cc40f443ffdb4feedd6c6cc0f COCOAPODS: 1.15.2 From 104204e821c798c02caaa817b16a2b934c717ebd Mon Sep 17 00:00:00 2001 From: Alexander Osokin Date: Tue, 27 Aug 2024 11:36:37 +0100 Subject: [PATCH 4/4] IOS-7652 Bump SDK --- Podfile | 2 +- Podfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Podfile b/Podfile index 2ee42d6e6f..9b53a26f06 100644 --- a/Podfile +++ b/Podfile @@ -24,7 +24,7 @@ use_frameworks! inhibit_all_warnings! def tangem_sdk_pod - pod 'TangemSdk', :git => 'https://github.com/Tangem/tangem-sdk-ios.git', :tag => 'develop-303' + pod 'TangemSdk', :git => 'https://github.com/Tangem/tangem-sdk-ios.git', :tag => 'develop-305' #pod 'TangemSdk', :path => '../tangem-sdk-ios' end diff --git a/Podfile.lock b/Podfile.lock index 4b058d2824..2fdde65d5a 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -233,7 +233,7 @@ DEPENDENCIES: - Moya - Solana.Swift (from `https://github.com/tangem/Solana.Swift`, tag `1.2.0-tangem11`) - SwiftyJSON (from `https://github.com/tangem/SwiftyJSON.git`, tag `5.0.1-tangem1`) - - TangemSdk (from `https://github.com/Tangem/tangem-sdk-ios.git`, tag `develop-303`) + - TangemSdk (from `https://github.com/Tangem/tangem-sdk-ios.git`, tag `develop-305`) - WalletConnectSwiftV2 (from `https://github.com/WalletConnect/WalletConnectSwiftV2`, tag `1.18.7`) SPEC REPOS: @@ -287,7 +287,7 @@ EXTERNAL SOURCES: :tag: 5.0.1-tangem1 TangemSdk: :git: https://github.com/Tangem/tangem-sdk-ios.git - :tag: develop-303 + :tag: develop-305 WalletConnectSwiftV2: :git: https://github.com/WalletConnect/WalletConnectSwiftV2 :tag: 1.18.7 @@ -310,7 +310,7 @@ CHECKOUT OPTIONS: :tag: 5.0.1-tangem1 TangemSdk: :git: https://github.com/Tangem/tangem-sdk-ios.git - :tag: develop-303 + :tag: develop-305 WalletConnectSwiftV2: :git: https://github.com/WalletConnect/WalletConnectSwiftV2 :tag: 1.18.7 @@ -354,6 +354,6 @@ SPEC CHECKSUMS: TangemSdk: 4a188873f9dbed6340cca9ad6a010240af6df432 WalletConnectSwiftV2: 5ea47db4d86e39fc749b66a05a661af9e87b277d -PODFILE CHECKSUM: ddca04bf50c4bb13125dd871fcbd72d21e63e9d9 +PODFILE CHECKSUM: 12f86daf305325609ee75b5b41a4192a4d4e5026 COCOAPODS: 1.15.2