diff --git a/Package.swift b/Package.swift index eb6b71d06d8ca515abdd0d7040f3a7426c5a2fa4..dfb1ab44f978f8bbcdd0ba43a8971960e7960c54 100644 --- a/Package.swift +++ b/Package.swift @@ -168,6 +168,7 @@ let package = Package( dependencies: [ .target(name: "Shared"), .target(name: "AppResources"), + .target(name: "HUDFeature"), .product(name: "SnapKit", package: "SnapKit"), .product(name: "Logging", package: "swift-log"), .product(name: "XXModels", package: "client-ios-db"), diff --git a/Sources/AppCore/AppDependencies.swift b/Sources/AppCore/AppDependencies.swift index 9c4c392e6b47067a5ca46d226e6ce3ecf623e59e..e2cbb47285f84c977a6a2f6929a3f2f1f3a8483a 100644 --- a/Sources/AppCore/AppDependencies.swift +++ b/Sources/AppCore/AppDependencies.swift @@ -8,7 +8,6 @@ public struct AppDependencies { public var networkMonitor: NetworkMonitor public var toastManager: ToastManager public var backupHandler: BackupCallbackHandler - public var hudManager: HUDManager public var dbManager: DBManager public var groupRequest: GroupRequestHandler public var groupMessageHandler: GroupMessageHandler @@ -53,7 +52,6 @@ extension AppDependencies { backupHandler: .live( messenger: messenger ), - hudManager: .live(), dbManager: dbManager, groupRequest: .live( messenger: messenger, @@ -107,7 +105,6 @@ extension AppDependencies { networkMonitor: .unimplemented, toastManager: .unimplemented, backupHandler: .unimplemented, - hudManager: .unimplemented, dbManager: .unimplemented, groupRequest: .unimplemented, groupMessageHandler: .unimplemented, diff --git a/Sources/AppCore/HUDManager/HUDHide.swift b/Sources/AppCore/HUDManager/HUDHide.swift deleted file mode 100644 index fe96ef1faacb7a9c59d58b96407a1de8573bc77d..0000000000000000000000000000000000000000 --- a/Sources/AppCore/HUDManager/HUDHide.swift +++ /dev/null @@ -1,19 +0,0 @@ -import XCTestDynamicOverlay - -public struct HUDHide { - init(run: @escaping () -> Void) { - self.run = run - } - - public var run: () -> Void - - public func callAsFunction() -> Void { - run() - } -} - -extension HUDHide { - public static let unimplemented = HUDHide( - run: XCTUnimplemented("\(Self.self)") - ) -} diff --git a/Sources/AppCore/HUDManager/HUDManager.swift b/Sources/AppCore/HUDManager/HUDManager.swift deleted file mode 100644 index 2c402e3b6b55677fbb3066ddb32777fd20d8224b..0000000000000000000000000000000000000000 --- a/Sources/AppCore/HUDManager/HUDManager.swift +++ /dev/null @@ -1,49 +0,0 @@ -import Combine -import Foundation -import XCTestDynamicOverlay - -public struct HUDManager { - public var show: HUDShow - public var hide: HUDHide - public var observe: HUDObserve -} - -extension HUDManager { - public static func live() -> HUDManager { - class Context { - var timer: Timer? - let modelSubject = PassthroughSubject<HUDModel?, Never>() - } - - let context = Context() - - return .init( - show: .init { - guard let model = $0 else { - context.modelSubject.send(.init(hasDotAnimation: true)) - return - } - if model.isAutoDismissable { - DispatchQueue.main.asyncAfter(deadline: .now() + 2) { - context.modelSubject.send(nil) - } - } - context.modelSubject.send(model) - }, - hide: .init { - context.modelSubject.send(nil) - }, - observe: .init { - context.modelSubject.eraseToAnyPublisher() - } - ) - } -} - -extension HUDManager { - public static let unimplemented = HUDManager( - show: .unimplemented, - hide: .unimplemented, - observe: .unimplemented - ) -} diff --git a/Sources/AppCore/HUDManager/HUDObserve.swift b/Sources/AppCore/HUDManager/HUDObserve.swift deleted file mode 100644 index c4257fdfc52b9d49bd199747a033cb51ccd18904..0000000000000000000000000000000000000000 --- a/Sources/AppCore/HUDManager/HUDObserve.swift +++ /dev/null @@ -1,16 +0,0 @@ -import Combine -import XCTestDynamicOverlay - -public struct HUDObserve { - public var run: () -> AnyPublisher<HUDModel?, Never> - - public func callAsFunction() -> AnyPublisher<HUDModel?, Never> { - run() - } -} - -extension HUDObserve { - public static let unimplemented = HUDObserve( - run: XCTUnimplemented("\(Self.self)") - ) -} diff --git a/Sources/AppCore/HUDManager/HUDShow.swift b/Sources/AppCore/HUDManager/HUDShow.swift deleted file mode 100644 index 81038e4e2799a5681c0de3aa92ad0816ff77646b..0000000000000000000000000000000000000000 --- a/Sources/AppCore/HUDManager/HUDShow.swift +++ /dev/null @@ -1,19 +0,0 @@ -import XCTestDynamicOverlay - -public struct HUDShow { - init(run: @escaping (HUDModel?) -> Void) { - self.run = run - } - - public var run: (HUDModel?) -> Void - - public func callAsFunction(_ model: HUDModel? = nil) -> Void { - run(model) - } -} - -extension HUDShow { - public static let unimplemented = HUDShow( - run: XCTUnimplemented("\(Self.self)") - ) -} diff --git a/Sources/AppCore/RootViewController.swift b/Sources/AppCore/RootViewController.swift index fbeebe5ef3971d9add68f6c1b09dc585380dab43..b462d098a5af876ef0a030634d83d7d888e44e96 100644 --- a/Sources/AppCore/RootViewController.swift +++ b/Sources/AppCore/RootViewController.swift @@ -1,40 +1,41 @@ -import UIKit import Combine import Dependencies +import HUDFeature +import UIKit public final class RootViewController: UIViewController { @Dependency(\.app.statusBar) var statusBar - @Dependency(\.app.hudManager) var hudManager @Dependency(\.app.toastManager) var toastManager - - var hud: HUDView? + var cancellables = Set<AnyCancellable>() public let navController: UINavigationController - + let hudPresenter = HUDPresenter() + var toastTimer: Timer? let toastTopPadding: CGFloat = 10 var topToastConstraint: NSLayoutConstraint? - + public init(_ content: UINavigationController) { self.navController = content super.init(nibName: nil, bundle: nil) + hudPresenter.parentController = self } - + required init?(coder: NSCoder) { nil } - + public override var preferredStatusBarStyle: UIStatusBarStyle { statusBar.get() } - + public override func viewDidLoad() { super.viewDidLoad() - + addChild(navController) view.addSubview(navController.view) navController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight] navController.view.frame = view.bounds navController.didMove(toParent: self) - + statusBar .observe() .receive(on: DispatchQueue.main) @@ -43,7 +44,7 @@ public final class RootViewController: UIViewController { self?.setNeedsStatusBarAppearanceUpdate() } }.store(in: &cancellables) - + toastManager .observe() .receive(on: DispatchQueue.main) @@ -52,59 +53,41 @@ public final class RootViewController: UIViewController { add(toastView: toastView) present(toastView: toastView) }.store(in: &cancellables) - - hudManager - .observe() - .receive(on: DispatchQueue.main) - .sink { [unowned self] model in - guard let model else { - guard let hud else { return } - UIView.animate(withDuration: 0.2) { - hud.alpha = 0.0 - } completion: { _ in - hud.removeFromSuperview() - self.hud = nil - } - return - } - add(hudView: HUDView().setup(model: model)) - view.endEditing(true) - }.store(in: &cancellables) } } extension RootViewController { @objc private func didPanToast(_ sender: UIPanGestureRecognizer) { guard let toastView = sender.view else { return } - + switch sender.state { case .began, .changed: toastTimer?.invalidate() let padding = toastTopPadding + min(0, sender.translation(in: view).y) topToastConstraint?.constant = padding - + case .cancelled, .ended, .failed: let halfFrameHeight = -0.5 * toastView.frame.height let verticalTranslation = sender.translation(in: toastView).y let didSwipeAboveHalf = verticalTranslation < halfFrameHeight - + if didSwipeAboveHalf { dismiss(toastView: toastView) } else { present(toastView: toastView) } - + case .possible: break @unknown default: break } } - + private func dismiss(toastView: UIView) { toastView.isUserInteractionEnabled = false topToastConstraint?.constant = -(toastView.frame.height + view.safeAreaLayoutGuide.layoutFrame.minY) - + topToastConstraint = nil UIView.animate(withDuration: 0.25) { self.view.setNeedsLayout() @@ -115,35 +98,35 @@ extension RootViewController { self.toastManager.dismiss() } } - + private func add(toastView: UIView) { let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(didPanToast(_:))) toastView.addGestureRecognizer(gestureRecognizer) - + toastView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(toastView) - + NSLayoutConstraint.activate([ toastView.heightAnchor.constraint(equalToConstant: 78), toastView.leftAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leftAnchor, constant: 20), toastView.rightAnchor.constraint(equalTo: view.safeAreaLayoutGuide.rightAnchor, constant: -20) ]) - + topToastConstraint = toastView.topAnchor.constraint( equalTo: view.safeAreaLayoutGuide.topAnchor, constant: -(toastView.frame.height + view.safeAreaLayoutGuide.layoutFrame.height) ) - + topToastConstraint?.isActive = true - + view.setNeedsLayout() view.layoutIfNeeded() } - + private func present(toastView: UIView) { toastView.isUserInteractionEnabled = false topToastConstraint?.constant = toastTopPadding - + UIView.animate( withDuration: 0.5, delay: 0, @@ -155,7 +138,7 @@ extension RootViewController { self.view.layoutIfNeeded() } completion: { _ in toastView.isUserInteractionEnabled = true - + self.toastTimer?.invalidate() self.toastTimer = Timer.scheduledTimer(withTimeInterval: 5, repeats: false) { [weak self] _ in guard let self else { return } @@ -164,32 +147,3 @@ extension RootViewController { } } } - -extension RootViewController { - private func add(hudView: HUDView) { - if let hud { - hud.removeFromSuperview() - self.hud = nil - } - - hudView.alpha = 0.0 - hudView.translatesAutoresizingMaskIntoConstraints = false - view.addSubview(hudView) - - NSLayoutConstraint.activate([ - hudView.topAnchor.constraint(equalTo: view.topAnchor), - hudView.leftAnchor.constraint(equalTo: view.leftAnchor), - hudView.rightAnchor.constraint(equalTo: view.rightAnchor), - hudView.bottomAnchor.constraint(equalTo: view.bottomAnchor) - ]) - - view.setNeedsLayout() - view.layoutIfNeeded() - - UIView.animate(withDuration: 0.2) { - hudView.alpha = 1.0 - } - - hud = hudView - } -} diff --git a/Sources/AppCore/UI/HUDView.swift b/Sources/AppCore/UI/HUDView.swift deleted file mode 100644 index 926e36420b97b084cfa35255c981885cbf240eb4..0000000000000000000000000000000000000000 --- a/Sources/AppCore/UI/HUDView.swift +++ /dev/null @@ -1,81 +0,0 @@ -import UIKit -import Shared -import Combine -import SnapKit -import AppResources - -final class HUDView: UIView { - let titleLabel = UILabel() - let contentLabel = UILabel() - let stackView = UIStackView() - let backgroundView = UIView() - let actionButton = CapsuleButton() - let animationView = DotAnimation() - var cancellables = Set<AnyCancellable>() - - init() { - super.init(frame: .zero) - stackView.spacing = 20 - stackView.axis = .vertical - - titleLabel.numberOfLines = 0 - titleLabel.textAlignment = .center - titleLabel.textColor = Asset.neutralWhite.color - titleLabel.font = Fonts.Mulish.bold.font(size: 30.0) - - contentLabel.numberOfLines = 0 - contentLabel.textAlignment = .center - contentLabel.textColor = Asset.neutralWhite.color - contentLabel.font = Fonts.Mulish.regular.font(size: 15.0) - - animationView.setColor(Asset.neutralWhite.color) - backgroundColor = Asset.neutralDark.color.withAlphaComponent(0.9) - - addSubview(backgroundView) - backgroundView.addSubview(stackView) - - backgroundView.snp.makeConstraints { - $0.centerY.equalToSuperview() - $0.left.equalToSuperview().offset(30) - $0.right.equalToSuperview().offset(-30) - } - - stackView.snp.makeConstraints { - $0.top.equalToSuperview().offset(15) - $0.left.equalToSuperview().offset(15) - $0.right.equalToSuperview().offset(-15) - $0.bottom.equalToSuperview().offset(-20) - } - } - - required init?(coder: NSCoder) { nil } - - func setup(model: HUDModel) -> Self { - if let title = model.title { - titleLabel.text = title - stackView.addArrangedSubview(titleLabel) - } - if let content = model.content { - contentLabel.text = content - stackView.addArrangedSubview(contentLabel) - } - if model.hasDotAnimation { - animationView.snp.makeConstraints { - $0.height.equalTo(20) - } - stackView.addArrangedSubview(animationView) - } - if let actionTitle = model.actionTitle { - actionButton.set( - style: .seeThroughWhite, - title: actionTitle - ) - actionButton - .publisher(for: .touchUpInside) - .sink { model.onTapClosure?() } - .store(in: &cancellables) - stackView.addArrangedSubview(actionButton) - } - return self - } -} diff --git a/Sources/BackupFeature/ViewModels/BackupConfigViewModel.swift b/Sources/BackupFeature/ViewModels/BackupConfigViewModel.swift index 20ecc78451a20f26d467f8455dacb950b4acf7d9..024dc2bf0e6cc2c03ad4d18c6e5e92a8fd7219aa 100644 --- a/Sources/BackupFeature/ViewModels/BackupConfigViewModel.swift +++ b/Sources/BackupFeature/ViewModels/BackupConfigViewModel.swift @@ -34,7 +34,7 @@ extension BackupConfigViewModel { class Context { @Dependency(\.navigator) var navigator @Dependency(\.backupService) var service - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager } let context = Context() diff --git a/Sources/BackupFeature/ViewModels/BackupSFTPViewModel.swift b/Sources/BackupFeature/ViewModels/BackupSFTPViewModel.swift index f4c0b87cae090a84fbd133c663b0f12dac6395a1..11d753b84c2c6f612f0eee46eda7d93603859542 100644 --- a/Sources/BackupFeature/ViewModels/BackupSFTPViewModel.swift +++ b/Sources/BackupFeature/ViewModels/BackupSFTPViewModel.swift @@ -18,7 +18,7 @@ struct SFTPViewState { } final class BackupSFTPViewModel { - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager var statePublisher: AnyPublisher<SFTPViewState, Never> { stateSubject.eraseToAnyPublisher() diff --git a/Sources/ChatFeature/ViewModels/GroupChatViewModel.swift b/Sources/ChatFeature/ViewModels/GroupChatViewModel.swift index e083c9c4abe8c76603091b542bf5e78e8dc00cb5..b7f66eb6134edfbd74d6b5cbed1033ba3ba1ab80 100644 --- a/Sources/ChatFeature/ViewModels/GroupChatViewModel.swift +++ b/Sources/ChatFeature/ViewModels/GroupChatViewModel.swift @@ -23,7 +23,7 @@ final class GroupChatViewModel { @Dependency(\.sendReport) var sendReport @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @Dependency(\.app.toastManager) var toastManager @Dependency(\.reportingStatus) var reportingStatus diff --git a/Sources/ChatFeature/ViewModels/SingleChatViewModel.swift b/Sources/ChatFeature/ViewModels/SingleChatViewModel.swift index 92b93761bcf599f72275369d966ee39e05ef22f7..73db2666bcecbe0a683bd25b8b8dce236c1c8299 100644 --- a/Sources/ChatFeature/ViewModels/SingleChatViewModel.swift +++ b/Sources/ChatFeature/ViewModels/SingleChatViewModel.swift @@ -33,7 +33,7 @@ final class SingleChatViewModel: NSObject { @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.sendImage) var sendImage @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @Dependency(\.app.sendMessage) var sendMessage @Dependency(\.app.toastManager) var toastManager @Dependency(\.app.networkMonitor) var networkMonitor diff --git a/Sources/ChatListFeature/ViewModel/ChatListViewModel.swift b/Sources/ChatListFeature/ViewModel/ChatListViewModel.swift index 8fea8877f547bfdf7d205e95412cf2b783f9762d..957516d21618b52682899f76e29db6b41e97ea51 100644 --- a/Sources/ChatListFeature/ViewModel/ChatListViewModel.swift +++ b/Sources/ChatListFeature/ViewModel/ChatListViewModel.swift @@ -27,7 +27,7 @@ typealias SearchSnapshot = NSDiffableDataSourceSnapshot<SearchSection, SearchIte final class ChatListViewModel { @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @Dependency(\.reportingStatus) var reportingStatus // TO REFACTOR: diff --git a/Sources/ContactFeature/ViewModels/ContactViewModel.swift b/Sources/ContactFeature/ViewModels/ContactViewModel.swift index 99b3440b1dce4842647e76f4b8ee12b40a583d65..4191f76810ddac9ca55dbae9b3900e2c1d6b4618 100644 --- a/Sources/ContactFeature/ViewModels/ContactViewModel.swift +++ b/Sources/ContactFeature/ViewModels/ContactViewModel.swift @@ -21,7 +21,7 @@ struct ContactViewState: Equatable { final class ContactViewModel { @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @KeyObject(.username, defaultValue: nil) var username: String? @KeyObject(.sharingEmail, defaultValue: false) var sharingEmail: Bool diff --git a/Sources/CreateGroupFeature/CreateGroupViewModel.swift b/Sources/CreateGroupFeature/CreateGroupViewModel.swift index 25ef6090123ff307f2f6555d56bade868c5f5ce8..ba9df21c40bce6abd61bebba56fa9b2e10962efe 100644 --- a/Sources/CreateGroupFeature/CreateGroupViewModel.swift +++ b/Sources/CreateGroupFeature/CreateGroupViewModel.swift @@ -19,7 +19,7 @@ struct CreateGroupViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager var statePublisher: AnyPublisher<ViewState, Never> { stateSubject.eraseToAnyPublisher() diff --git a/Sources/LaunchFeature/LaunchViewModel.swift b/Sources/LaunchFeature/LaunchViewModel.swift index 732d2e2dd3bd4155d0b10376f17ac8e20af75c2b..95aedf5d7ee986ee2800f50f13aba0fb8c539549 100644 --- a/Sources/LaunchFeature/LaunchViewModel.swift +++ b/Sources/LaunchFeature/LaunchViewModel.swift @@ -53,7 +53,7 @@ final class LaunchViewModel { @Dependency(\.app.messenger) var messenger @Dependency(\.app.dbManager) var dbManager @Dependency(\.updateErrors) var updateErrors - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @Dependency(\.checkVersion) var checkVersion @Dependency(\.dummyTraffic) var dummyTraffic @Dependency(\.app.toastManager) var toastManager diff --git a/Sources/OnboardingFeature/ViewModels/OnboardingCodeViewModel.swift b/Sources/OnboardingFeature/ViewModels/OnboardingCodeViewModel.swift index de57405fcb07c431f33e639f7a7b7b4a3b4dfa15..570edad96cbccdc21520d50846c3edb16e467656 100644 --- a/Sources/OnboardingFeature/ViewModels/OnboardingCodeViewModel.swift +++ b/Sources/OnboardingFeature/ViewModels/OnboardingCodeViewModel.swift @@ -23,7 +23,7 @@ final class OnboardingCodeViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @KeyObject(.email, defaultValue: nil) var email: String? @KeyObject(.phone, defaultValue: nil) var phone: String? diff --git a/Sources/OnboardingFeature/ViewModels/OnboardingEmailViewModel.swift b/Sources/OnboardingFeature/ViewModels/OnboardingEmailViewModel.swift index 01e5e6281f1e033dfd29814e9e62809e351c2e42..0af88c771abde62acfec00e6b1f7220e6bbff82c 100644 --- a/Sources/OnboardingFeature/ViewModels/OnboardingEmailViewModel.swift +++ b/Sources/OnboardingFeature/ViewModels/OnboardingEmailViewModel.swift @@ -17,7 +17,7 @@ final class OnboardingEmailViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager var statePublisher: AnyPublisher<ViewState, Never> { stateSubject.eraseToAnyPublisher() diff --git a/Sources/OnboardingFeature/ViewModels/OnboardingPhoneViewModel.swift b/Sources/OnboardingFeature/ViewModels/OnboardingPhoneViewModel.swift index c60f176063e7ad63f7069e7cc7f7d341ca8f048b..5fa427fbab976ea59e1c7c56abb3ecc28dd673d3 100644 --- a/Sources/OnboardingFeature/ViewModels/OnboardingPhoneViewModel.swift +++ b/Sources/OnboardingFeature/ViewModels/OnboardingPhoneViewModel.swift @@ -20,7 +20,7 @@ final class OnboardingPhoneViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager var statePublisher: AnyPublisher<ViewState, Never> { stateSubject.eraseToAnyPublisher() diff --git a/Sources/OnboardingFeature/ViewModels/OnboardingUsernameViewModel.swift b/Sources/OnboardingFeature/ViewModels/OnboardingUsernameViewModel.swift index 21ff5adbede032d0cd47efded7f9220e007ba0ba..ad29990efdbb9cc1d02f8373d54a83e8ca05a02f 100644 --- a/Sources/OnboardingFeature/ViewModels/OnboardingUsernameViewModel.swift +++ b/Sources/OnboardingFeature/ViewModels/OnboardingUsernameViewModel.swift @@ -19,7 +19,7 @@ final class OnboardingUsernameViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @KeyObject(.username, defaultValue: "") var username: String diff --git a/Sources/ProfileFeature/ViewModels/ProfileCodeViewModel.swift b/Sources/ProfileFeature/ViewModels/ProfileCodeViewModel.swift index 5dc1176a6943c69a78f3a3e04000a783fcb0f586..804dfa78043ca097082f6c6a6b0fc45a1ff38911 100644 --- a/Sources/ProfileFeature/ViewModels/ProfileCodeViewModel.swift +++ b/Sources/ProfileFeature/ViewModels/ProfileCodeViewModel.swift @@ -22,7 +22,7 @@ final class ProfileCodeViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @KeyObject(.email, defaultValue: nil) var email: String? @KeyObject(.phone, defaultValue: nil) var phone: String? diff --git a/Sources/ProfileFeature/ViewModels/ProfileEmailViewModel.swift b/Sources/ProfileFeature/ViewModels/ProfileEmailViewModel.swift index 2fc959aea69cb0f53bc8c1452a07273b58d29664..01d93e61791c15671cec5272088bbe21628b304a 100644 --- a/Sources/ProfileFeature/ViewModels/ProfileEmailViewModel.swift +++ b/Sources/ProfileFeature/ViewModels/ProfileEmailViewModel.swift @@ -17,7 +17,7 @@ final class ProfileEmailViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager var statePublisher: AnyPublisher<ViewState, Never> { stateSubject.eraseToAnyPublisher() diff --git a/Sources/ProfileFeature/ViewModels/ProfilePhoneViewModel.swift b/Sources/ProfileFeature/ViewModels/ProfilePhoneViewModel.swift index 901053939fb2a01fa1173d879c6fe36b28ac368b..02c0d7546244200437ca8f016a51a1506bee6ebd 100644 --- a/Sources/ProfileFeature/ViewModels/ProfilePhoneViewModel.swift +++ b/Sources/ProfileFeature/ViewModels/ProfilePhoneViewModel.swift @@ -20,7 +20,7 @@ final class ProfilePhoneViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager var statePublisher: AnyPublisher<ViewState, Never> { stateSubject.eraseToAnyPublisher() diff --git a/Sources/ProfileFeature/ViewModels/ProfileViewModel.swift b/Sources/ProfileFeature/ViewModels/ProfileViewModel.swift index 4d7eb1b323d8d55716affe0b59803a35fea933e7..4d8e382e75e0524549f6c4528cd451b1b92ec34a 100644 --- a/Sources/ProfileFeature/ViewModels/ProfileViewModel.swift +++ b/Sources/ProfileFeature/ViewModels/ProfileViewModel.swift @@ -34,7 +34,7 @@ final class ProfileViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.permissions) var permissions @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @Dependency(\.backupService) var backupService var name: String { username! } diff --git a/Sources/RequestsFeature/ViewModels/RequestsFailedViewModel.swift b/Sources/RequestsFeature/ViewModels/RequestsFailedViewModel.swift index 809e53b500a86030f932609c7fcf998be5b057f5..e46c794bc3ad38bcc4c053deaf84480e93ef66e1 100644 --- a/Sources/RequestsFeature/ViewModels/RequestsFailedViewModel.swift +++ b/Sources/RequestsFeature/ViewModels/RequestsFailedViewModel.swift @@ -12,7 +12,7 @@ import XXMessengerClient final class RequestsFailedViewModel { @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @KeyObject(.username, defaultValue: nil) var username: String? @KeyObject(.sharingEmail, defaultValue: false) var sharingEmail: Bool diff --git a/Sources/RequestsFeature/ViewModels/RequestsReceivedViewModel.swift b/Sources/RequestsFeature/ViewModels/RequestsReceivedViewModel.swift index 46d4fe29bc99ebb71207264a27663a1f16de7731..14c4644b6a6c7d83267e84360ee468527e05391b 100644 --- a/Sources/RequestsFeature/ViewModels/RequestsReceivedViewModel.swift +++ b/Sources/RequestsFeature/ViewModels/RequestsReceivedViewModel.swift @@ -22,7 +22,7 @@ struct RequestReceived: Hashable, Equatable { final class RequestsReceivedViewModel { @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @Dependency(\.reportingStatus) var reportingStatus @KeyObject(.isShowingHiddenRequests, defaultValue: false) var isShowingHiddenRequests: Bool diff --git a/Sources/RequestsFeature/ViewModels/RequestsSentViewModel.swift b/Sources/RequestsFeature/ViewModels/RequestsSentViewModel.swift index 6293a25bd8795b5d5b5fe56954216c09db468b73..2fbbacb26eaefdc0940cece7a2dbcb6c08cea47f 100644 --- a/Sources/RequestsFeature/ViewModels/RequestsSentViewModel.swift +++ b/Sources/RequestsFeature/ViewModels/RequestsSentViewModel.swift @@ -20,7 +20,7 @@ struct RequestSent: Hashable, Equatable { final class RequestsSentViewModel { @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @Dependency(\.app.toastManager) var toastManager @Dependency(\.reportingStatus) var reportingStatus diff --git a/Sources/RestoreFeature/ViewModels/RestoreListViewModel.swift b/Sources/RestoreFeature/ViewModels/RestoreListViewModel.swift index 323b07949159aba1fc1bc2bca224d3e8ed050177..01efa75fe48a58570d486af5bf059049f0dc5cfe 100644 --- a/Sources/RestoreFeature/ViewModels/RestoreListViewModel.swift +++ b/Sources/RestoreFeature/ViewModels/RestoreListViewModel.swift @@ -12,7 +12,7 @@ public struct RestorationDetails { } final class RestoreListViewModel { - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager var sftpPublisher: AnyPublisher<Void, Never> { sftpSubject.eraseToAnyPublisher() diff --git a/Sources/RestoreFeature/ViewModels/RestoreSFTPViewModel.swift b/Sources/RestoreFeature/ViewModels/RestoreSFTPViewModel.swift index 3af77801cb933e381fc9867030b67cde74508af0..ac84e998e928741ab760b2f5fb7a9152ed246067 100644 --- a/Sources/RestoreFeature/ViewModels/RestoreSFTPViewModel.swift +++ b/Sources/RestoreFeature/ViewModels/RestoreSFTPViewModel.swift @@ -16,7 +16,7 @@ struct SFTPViewState { } final class RestoreSFTPViewModel { - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager var statePublisher: AnyPublisher<SFTPViewState, Never> { stateSubject.eraseToAnyPublisher() diff --git a/Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift b/Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift index e4249b8bff0fa6271a0f7aabf17270e4f0150969..37ff07fa9a4f96f3addeb7980c974e9765fc0295 100644 --- a/Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift +++ b/Sources/SearchFeature/ViewModels/SearchLeftViewModel.swift @@ -26,7 +26,7 @@ struct SearchLeftViewState { final class SearchLeftViewModel { @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @Dependency(\.app.toastManager) var toastManager @Dependency(\.reportingStatus) var reportingStatus @Dependency(\.app.networkMonitor) var networkMonitor diff --git a/Sources/SettingsFeature/ViewModels/SettingsDeleteViewModel.swift b/Sources/SettingsFeature/ViewModels/SettingsDeleteViewModel.swift index e2a1912aa5cd68fc032ac2e54de0a1bc571ede70..19d28b25d72b6d5d2ad12999b95cb64c755f417e 100644 --- a/Sources/SettingsFeature/ViewModels/SettingsDeleteViewModel.swift +++ b/Sources/SettingsFeature/ViewModels/SettingsDeleteViewModel.swift @@ -18,7 +18,7 @@ final class SettingsDeleteViewModel { @Dependency(\.app.bgQueue) var bgQueue @Dependency(\.app.dbManager) var dbManager @Dependency(\.app.messenger) var messenger - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @KeyObject(.username, defaultValue: nil) var username: String? var statePublisher: AnyPublisher<ViewState, Never> { diff --git a/Sources/SettingsFeature/ViewModels/SettingsMainViewModel.swift b/Sources/SettingsFeature/ViewModels/SettingsMainViewModel.swift index 4fd4323dd0086207e7be26d2acd82bc117779a8b..2ac1b45d88ed84ae9abe25c91ceb730904fe4a50 100644 --- a/Sources/SettingsFeature/ViewModels/SettingsMainViewModel.swift +++ b/Sources/SettingsFeature/ViewModels/SettingsMainViewModel.swift @@ -22,7 +22,7 @@ final class SettingsMainViewModel { @Dependency(\.permissions) var permissions @Dependency(\.app.messenger) var messenger @Dependency(\.dummyTraffic) var dummyTraffic - @Dependency(\.app.hudManager) var hudManager + @Dependency(\.hudManager) var hudManager @KeyObject(.biometrics, defaultValue: false) var biometrics @KeyObject(.hideAppList, defaultValue: false) var hideAppList