From 72159c40e66cc04dbf0a420e33934c0739cb5236 Mon Sep 17 00:00:00 2001 From: Andrii Vysotskyi Date: Wed, 25 Sep 2024 15:49:03 +0200 Subject: [PATCH] Revert "Resolve UI module warnings" This reverts commit b3b9587ca81dbe175a98879dde617a2c9f05a506. --- .../Sources/Core/Interactor/BaseInteractor.swift | 1 + .../Sources/Core/Interactor/Interactor.swift | 1 - .../Sources/Core/ViewModel/AnyViewModel.swift | 12 ------------ .../Sources/Core/ViewModel/ViewModel.swift | 4 ---- .../Interactor/CardTokenizationInteractor.swift | 1 - .../View/POCardTokenizationView.swift | 1 - .../ViewModel/DefaultCardTokenizationViewModel.swift | 4 ---- .../CardUpdate/Interactor/CardUpdateInteractor.swift | 1 - .../Modules/CardUpdate/View/POCardUpdateView.swift | 1 - .../ViewModel/AnyCardUpdateViewModel.swift | 4 ---- .../CardUpdate/ViewModel/CardUpdateViewModel.swift | 4 ---- .../ViewModel/DefaultCardUpdateViewModel.swift | 4 ---- .../Interactor/DynamicCheckoutInteractor.swift | 1 - .../DynamicCheckoutInteractorChildProvider.swift | 1 - .../DynamicCheckout/View/PODynamicCheckoutView.swift | 1 - .../ViewModel/DefaultDynamicCheckoutViewModel.swift | 4 ---- .../NativeAlternativePaymentDefaultInteractor.swift | 3 +-- .../NativeAlternativePaymentInteractor.swift | 1 - .../View/PONativeAlternativePaymentView.swift | 1 - .../DefaultNativeAlternativePaymentViewModel.swift | 8 ++++---- 20 files changed, 6 insertions(+), 52 deletions(-) diff --git a/Sources/ProcessOutUI/Sources/Core/Interactor/BaseInteractor.swift b/Sources/ProcessOutUI/Sources/Core/Interactor/BaseInteractor.swift index 03dacbb6c..b9517c273 100644 --- a/Sources/ProcessOutUI/Sources/Core/Interactor/BaseInteractor.swift +++ b/Sources/ProcessOutUI/Sources/Core/Interactor/BaseInteractor.swift @@ -23,6 +23,7 @@ class BaseInteractor: Interactor { var didChange: (() -> Void)? var willChange: ((State) -> Void)? + @MainActor func start() { // Does nothing } diff --git a/Sources/ProcessOutUI/Sources/Core/Interactor/Interactor.swift b/Sources/ProcessOutUI/Sources/Core/Interactor/Interactor.swift index ddaf04a36..edc80e604 100644 --- a/Sources/ProcessOutUI/Sources/Core/Interactor/Interactor.swift +++ b/Sources/ProcessOutUI/Sources/Core/Interactor/Interactor.swift @@ -5,7 +5,6 @@ // Created by Andrii Vysotskyi on 19.10.2023. // -@MainActor protocol Interactor: AnyObject { associatedtype State diff --git a/Sources/ProcessOutUI/Sources/Core/ViewModel/AnyViewModel.swift b/Sources/ProcessOutUI/Sources/Core/ViewModel/AnyViewModel.swift index 60c82facd..5b514ee4f 100644 --- a/Sources/ProcessOutUI/Sources/Core/ViewModel/AnyViewModel.swift +++ b/Sources/ProcessOutUI/Sources/Core/ViewModel/AnyViewModel.swift @@ -27,10 +27,6 @@ final class AnyViewModel: ViewModel { base.start() } - func stop() { - base.stop() - } - var state: State { get { base.state } set { base.state = newValue } @@ -54,10 +50,6 @@ private class ViewModelBox: AnyViewModelBase where T: ViewModel { base.start() } - override func stop() { - base.stop() - } - override var state: T.State { get { base.state } set { base.state = newValue } @@ -72,10 +64,6 @@ private class AnyViewModelBase: ViewModel { fatalError("Not implemented") } - func stop() { - fatalError("Not implemented") - } - var state: State { get { fatalError("Not implemented") } set { fatalError("Not implemented") } diff --git a/Sources/ProcessOutUI/Sources/Core/ViewModel/ViewModel.swift b/Sources/ProcessOutUI/Sources/Core/ViewModel/ViewModel.swift index b890ca334..313177198 100644 --- a/Sources/ProcessOutUI/Sources/Core/ViewModel/ViewModel.swift +++ b/Sources/ProcessOutUI/Sources/Core/ViewModel/ViewModel.swift @@ -7,7 +7,6 @@ import Combine -@MainActor protocol ViewModel: ObservableObject { associatedtype State @@ -17,7 +16,4 @@ protocol ViewModel: ObservableObject { /// Starts view model. func start() - - /// Stops view model. - func stop() } diff --git a/Sources/ProcessOutUI/Sources/Modules/CardTokenization/Interactor/CardTokenizationInteractor.swift b/Sources/ProcessOutUI/Sources/Modules/CardTokenization/Interactor/CardTokenizationInteractor.swift index 00f067366..962367e9b 100644 --- a/Sources/ProcessOutUI/Sources/Modules/CardTokenization/Interactor/CardTokenizationInteractor.swift +++ b/Sources/ProcessOutUI/Sources/Modules/CardTokenization/Interactor/CardTokenizationInteractor.swift @@ -7,7 +7,6 @@ import ProcessOut -@MainActor protocol CardTokenizationInteractor: Interactor { /// Delegate. diff --git a/Sources/ProcessOutUI/Sources/Modules/CardTokenization/View/POCardTokenizationView.swift b/Sources/ProcessOutUI/Sources/Modules/CardTokenization/View/POCardTokenizationView.swift index c06cbf71a..bbb4e5156 100644 --- a/Sources/ProcessOutUI/Sources/Modules/CardTokenization/View/POCardTokenizationView.swift +++ b/Sources/ProcessOutUI/Sources/Modules/CardTokenization/View/POCardTokenizationView.swift @@ -31,7 +31,6 @@ public struct POCardTokenizationView: View { style.backgroundColor.ignoresSafeArea() } .onAppear(perform: viewModel.start) - .onDisappear(perform: viewModel.stop) } // MARK: - Private Properties diff --git a/Sources/ProcessOutUI/Sources/Modules/CardTokenization/ViewModel/DefaultCardTokenizationViewModel.swift b/Sources/ProcessOutUI/Sources/Modules/CardTokenization/ViewModel/DefaultCardTokenizationViewModel.swift index 914133868..e2b7c0593 100644 --- a/Sources/ProcessOutUI/Sources/Modules/CardTokenization/ViewModel/DefaultCardTokenizationViewModel.swift +++ b/Sources/ProcessOutUI/Sources/Modules/CardTokenization/ViewModel/DefaultCardTokenizationViewModel.swift @@ -28,10 +28,6 @@ final class DefaultCardTokenizationViewModel: ViewModel { $state.performWithoutAnimation(interactor.start) } - func stop() { - interactor.cancel() - } - // MARK: - Private Nested Types private typealias InteractorState = CardTokenizationInteractorState diff --git a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/Interactor/CardUpdateInteractor.swift b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/Interactor/CardUpdateInteractor.swift index d386d0012..7c08d3256 100644 --- a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/Interactor/CardUpdateInteractor.swift +++ b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/Interactor/CardUpdateInteractor.swift @@ -7,7 +7,6 @@ import ProcessOut -@MainActor protocol CardUpdateInteractor: Interactor { /// Updates CVC value. diff --git a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/View/POCardUpdateView.swift b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/View/POCardUpdateView.swift index 639f39ca5..3217336a5 100644 --- a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/View/POCardUpdateView.swift +++ b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/View/POCardUpdateView.swift @@ -47,7 +47,6 @@ public struct POCardUpdateView: View { style.backgroundColor.ignoresSafeArea() } .onAppear(perform: viewModel.start) - .onDisappear(perform: viewModel.stop) } // MARK: - Private Properties diff --git a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/AnyCardUpdateViewModel.swift b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/AnyCardUpdateViewModel.swift index ab0082260..bf38b168e 100644 --- a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/AnyCardUpdateViewModel.swift +++ b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/AnyCardUpdateViewModel.swift @@ -42,10 +42,6 @@ final class AnyCardUpdateViewModel: CardUpdateViewModel { base.start() } - func stop() { - base.stop() - } - // MARK: - Private Properties private var cancellable: AnyCancellable? diff --git a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/CardUpdateViewModel.swift b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/CardUpdateViewModel.swift index 6c9bb7691..fbc555582 100644 --- a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/CardUpdateViewModel.swift +++ b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/CardUpdateViewModel.swift @@ -8,7 +8,6 @@ import Combine @_spi(PO) import ProcessOutCoreUI -@MainActor protocol CardUpdateViewModel: ObservableObject { /// Screen title. @@ -25,7 +24,4 @@ protocol CardUpdateViewModel: ObservableObject { /// Starts view model. func start() - - /// Stops view model. - func stop() } diff --git a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/DefaultCardUpdateViewModel.swift b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/DefaultCardUpdateViewModel.swift index a275efcb0..9eb967d09 100644 --- a/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/DefaultCardUpdateViewModel.swift +++ b/Sources/ProcessOutUI/Sources/Modules/CardUpdate/ViewModel/DefaultCardUpdateViewModel.swift @@ -39,10 +39,6 @@ final class DefaultCardUpdateViewModel: CardUpdateViewModel { interactor.start() } - func stop() { - interactor.cancel() - } - // MARK: - Private Nested Types private typealias InteractorState = CardUpdateInteractorState diff --git a/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/Interactor/DynamicCheckoutInteractor.swift b/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/Interactor/DynamicCheckoutInteractor.swift index 7f8044cd9..c55311625 100644 --- a/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/Interactor/DynamicCheckoutInteractor.swift +++ b/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/Interactor/DynamicCheckoutInteractor.swift @@ -5,7 +5,6 @@ // Created by Andrii Vysotskyi on 05.03.2024. // -@MainActor protocol DynamicCheckoutInteractor: Interactor { /// Configuration. diff --git a/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/Utils/ChildProvider/DynamicCheckoutInteractorChildProvider.swift b/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/Utils/ChildProvider/DynamicCheckoutInteractorChildProvider.swift index 16922623e..15a470d1b 100644 --- a/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/Utils/ChildProvider/DynamicCheckoutInteractorChildProvider.swift +++ b/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/Utils/ChildProvider/DynamicCheckoutInteractorChildProvider.swift @@ -9,7 +9,6 @@ /// - NOTE: Your implementation should expect that instances created /// by provider are going to be different every time you call a method. -@MainActor protocol DynamicCheckoutInteractorChildProvider { /// Creates and returns card tokenization interactor. diff --git a/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/View/PODynamicCheckoutView.swift b/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/View/PODynamicCheckoutView.swift index 67e9d25c6..cad2465f6 100644 --- a/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/View/PODynamicCheckoutView.swift +++ b/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/View/PODynamicCheckoutView.swift @@ -48,7 +48,6 @@ public struct PODynamicCheckoutView: View { } .backport.geometryGroup() .onAppear(perform: viewModel.start) - .onDisappear(perform: viewModel.stop) .poConfirmationDialog(item: $viewModel.state.confirmationDialog) } diff --git a/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/ViewModel/DefaultDynamicCheckoutViewModel.swift b/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/ViewModel/DefaultDynamicCheckoutViewModel.swift index 200e50f27..8e4e76121 100644 --- a/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/ViewModel/DefaultDynamicCheckoutViewModel.swift +++ b/Sources/ProcessOutUI/Sources/Modules/DynamicCheckout/ViewModel/DefaultDynamicCheckoutViewModel.swift @@ -28,10 +28,6 @@ final class DefaultDynamicCheckoutViewModel: ViewModel { $state.performWithoutAnimation(interactor.start) } - func stop() { - interactor.cancel() - } - // MARK: - Private Nested Types private enum ButtonId { diff --git a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/NativeAlternativePaymentDefaultInteractor.swift b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/NativeAlternativePaymentDefaultInteractor.swift index c1f0906e7..38af255a2 100644 --- a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/NativeAlternativePaymentDefaultInteractor.swift +++ b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/NativeAlternativePaymentDefaultInteractor.swift @@ -278,8 +278,7 @@ final class NativeAlternativePaymentDefaultInteractor: guard let timeInterval = configuration.paymentConfirmation.showProgressIndicatorAfter else { return } - Task { [weak self] in - try? await Task.sleep(seconds: timeInterval) + Timer.scheduledTimer(withTimeInterval: timeInterval, repeats: false) { [weak self] _ in guard let self, case .awaitingCapture(var awaitingCaptureState) = self.state else { return } diff --git a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/NativeAlternativePaymentInteractor.swift b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/NativeAlternativePaymentInteractor.swift index b4ceb88af..e6d22754d 100644 --- a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/NativeAlternativePaymentInteractor.swift +++ b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/Interactor/NativeAlternativePaymentInteractor.swift @@ -5,7 +5,6 @@ // Created by Andrii Vysotskyi on 29.02.2024. // -@MainActor protocol NativeAlternativePaymentInteractor: Interactor { /// Configuration. diff --git a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/View/PONativeAlternativePaymentView.swift b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/View/PONativeAlternativePaymentView.swift index 0888c61ef..119811f3a 100644 --- a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/View/PONativeAlternativePaymentView.swift +++ b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/View/PONativeAlternativePaymentView.swift @@ -37,7 +37,6 @@ public struct PONativeAlternativePaymentView: View { .animation(.default, value: viewModel.state.isCaptured) } .onAppear(perform: viewModel.start) - .onDisappear(perform: viewModel.stop) .poConfirmationDialog(item: $viewModel.state.confirmationDialog) } diff --git a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/ViewModel/DefaultNativeAlternativePaymentViewModel.swift b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/ViewModel/DefaultNativeAlternativePaymentViewModel.swift index 77cbc6042..8b9cb5bd1 100644 --- a/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/ViewModel/DefaultNativeAlternativePaymentViewModel.swift +++ b/Sources/ProcessOutUI/Sources/Modules/NativeAlternativePayment/ViewModel/DefaultNativeAlternativePaymentViewModel.swift @@ -18,6 +18,10 @@ final class DefaultNativeAlternativePaymentViewModel: ViewModel { observeChanges(interactor: interactor) } + deinit { + interactor.cancel() + } + // MARK: - NativeAlternativePaymentViewModel @AnimatablePublished @@ -27,10 +31,6 @@ final class DefaultNativeAlternativePaymentViewModel: ViewModel { $state.performWithoutAnimation(interactor.start) } - func stop() { - interactor.cancel() - } - // MARK: - Private Nested Types private typealias InteractorState = NativeAlternativePaymentInteractorState