From c31748e77f3719b971f274d9f1a522a177f91053 Mon Sep 17 00:00:00 2001 From: Bruno Muniz Azevedo Filho <bruno@elixxir.io> Date: Tue, 19 Jul 2022 23:44:46 -0300 Subject: [PATCH] Fixed bugs found by QA --- Sources/Integration/Client.swift | 2 +- Sources/Integration/Session/Session+UD.swift | 4 +++- .../RequestsFeature/ViewModels/RequestsSentViewModel.swift | 4 +++- .../Controllers/SearchContainerController.swift | 3 +++ .../SearchFeature/Controllers/SearchLeftController.swift | 4 ++++ .../SearchFeature/Controllers/SearchRightController.swift | 7 +------ Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift | 2 ++ .../SearchFeature/ViewModels/SearchRightViewModel.swift | 2 +- 8 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Sources/Integration/Client.swift b/Sources/Integration/Client.swift index 2b488ef9..450c674e 100644 --- a/Sources/Integration/Client.swift +++ b/Sources/Integration/Client.swift @@ -90,7 +90,7 @@ public class Client { public func addJson(_ string: String) { guard let backupManager = backupManager else { - fatalError() + fatalError("Trying to add json parameters to backup but no backup manager created yet") } print("^^^ Set params: \(string) to backup") diff --git a/Sources/Integration/Session/Session+UD.swift b/Sources/Integration/Session/Session+UD.swift index 630d822a..1fd8fc38 100644 --- a/Sources/Integration/Session/Session+UD.swift +++ b/Sources/Integration/Session/Session+UD.swift @@ -69,6 +69,8 @@ extension Session { phone = confirmation.content } - updateFactsOnBackup() + if let _ = client.backupManager { + updateFactsOnBackup() + } } } diff --git a/Sources/RequestsFeature/ViewModels/RequestsSentViewModel.swift b/Sources/RequestsFeature/ViewModels/RequestsSentViewModel.swift index 313a3694..9732c4c9 100644 --- a/Sources/RequestsFeature/ViewModels/RequestsSentViewModel.swift +++ b/Sources/RequestsFeature/ViewModels/RequestsSentViewModel.swift @@ -71,8 +71,10 @@ final class RequestsSentViewModel { item.isResent = true allRequests.append(item) + let name = (contact.nickname ?? contact.username) ?? "" + self.toastController.enqueueToast(model: .init( - title: Localized.Requests.Sent.Toast.resent(contact.nickname ?? contact.username), + title: Localized.Requests.Sent.Toast.resent(name), leftImage: Asset.requestSentToaster.image )) diff --git a/Sources/SearchFeature/Controllers/SearchContainerController.swift b/Sources/SearchFeature/Controllers/SearchContainerController.swift index ea6c89d1..17af9137 100644 --- a/Sources/SearchFeature/Controllers/SearchContainerController.swift +++ b/Sources/SearchFeature/Controllers/SearchContainerController.swift @@ -61,11 +61,14 @@ public final class SearchContainerController: UIViewController { private func setupBindings() { screenView.segmentedControl .actionPublisher + .removeDuplicates() .receive(on: DispatchQueue.main) .sink { [unowned self] in if $0 == .qr { let point = CGPoint(x: screenView.frame.width, y: 0.0) screenView.scrollView.setContentOffset(point, animated: true) + leftController.endEditing() + rightController.viewModel.viewWillAppear() } else { screenView.scrollView.setContentOffset(.zero, animated: true) leftController.viewModel.didSelectItem($0) diff --git a/Sources/SearchFeature/Controllers/SearchLeftController.swift b/Sources/SearchFeature/Controllers/SearchLeftController.swift index 21a4d1fe..d4bb0869 100644 --- a/Sources/SearchFeature/Controllers/SearchLeftController.swift +++ b/Sources/SearchFeature/Controllers/SearchLeftController.swift @@ -35,6 +35,10 @@ final class SearchLeftController: UIViewController { setupBindings() } + func endEditing() { + screenView.inputField.endEditing(true) + } + private func setupTableView() { screenView.tableView.separatorStyle = .none screenView.tableView.tableFooterView = UIView() diff --git a/Sources/SearchFeature/Controllers/SearchRightController.swift b/Sources/SearchFeature/Controllers/SearchRightController.swift index b9d6f47f..35240054 100644 --- a/Sources/SearchFeature/Controllers/SearchRightController.swift +++ b/Sources/SearchFeature/Controllers/SearchRightController.swift @@ -7,9 +7,9 @@ final class SearchRightController: UIViewController { lazy private var screenView = SearchRightView() - private let viewModel = SearchRightViewModel() private var cancellables = Set<AnyCancellable>() private let cameraController = CameraController() + private(set) var viewModel = SearchRightViewModel() override func loadView() { view = screenView @@ -26,11 +26,6 @@ final class SearchRightController: UIViewController { cameraController.previewLayer.frame = screenView.bounds } - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - viewModel.viewDidAppear() - } - override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) viewModel.viewWillDisappear() diff --git a/Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift b/Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift index 1607e4ec..94840637 100644 --- a/Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift +++ b/Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift @@ -41,6 +41,8 @@ final class SearchLeftViewModel { } func didStartSearching() { + guard stateSubject.value.input.isEmpty == false else { return } + hudSubject.send(.on(nil)) let prefix = stateSubject.value.item.written.first!.uppercased() diff --git a/Sources/SearchFeature/ViewModels/SearchRightViewModel.swift b/Sources/SearchFeature/ViewModels/SearchRightViewModel.swift index ae8a8d50..5cfe38db 100644 --- a/Sources/SearchFeature/ViewModels/SearchRightViewModel.swift +++ b/Sources/SearchFeature/ViewModels/SearchRightViewModel.swift @@ -40,7 +40,7 @@ final class SearchRightViewModel { private let cameraSemaphoreSubject = PassthroughSubject<Bool, Never>() private(set) var statusSubject = CurrentValueSubject<ScanningStatus, Never>(.reading) - func viewDidAppear() { + func viewWillAppear() { permissions.requestCamera { [weak self] granted in guard let self = self else { return } -- GitLab