From 00bb1cca905b343857683440e36297fa28fee843 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 28 Apr 2024 19:40:31 +0300 Subject: [PATCH 01/39] Add new router --- Package.swift | 4 +- .../OversizeKit/LauncherKit/Launcher.swift | 29 ++-- .../OversizeKit/RouterKit/AlertRouter.swift | 23 +++ Sources/OversizeKit/RouterKit/HUDRouter.swift | 20 +++ .../RouterKit/Protocols/Alertable.swift | 24 +++ .../RouterKit/Protocols/Routable.swift | 16 ++ .../RouterKit/Protocols/Tabable.swift | 14 ++ Sources/OversizeKit/RouterKit/Router.swift | 101 +++++++++++ Sources/OversizeKit/RouterKit/TabRouter.swift | 18 ++ .../Views/About/About/AboutView.swift | 38 +---- .../Views/About/FeedbackView.swift | 24 +-- .../Views/About/OurResorsesView.swift | 7 +- .../SettingsKit/Views/About/SupportView.swift | 35 ++-- .../Apperance/AppearanceSettingView.swift | 161 +++++++----------- ...tongView.swift => BorderSettingView.swift} | 2 +- .../Views/Apperance/RadiusSettingView.swift | 8 +- .../NotificationsSettingsView.swift | 11 +- .../SettingsKit/Views/Screens.swift | 67 ++++++++ .../Security/PINCode/SetPINCodeView.swift | 29 ++-- .../Views/Security/SecuritySettingsView.swift | 21 +-- .../SettingsKit/Views/SettingsView.swift | 159 +++++------------ .../SoundsAndVibrationsSettingsView.swift | 15 +- .../Views/iCloud/iCloudSettingsView.swift | 11 +- .../StateKit/LoadingViewState.swift | 14 ++ .../StoreKit/StoreScreen/StoreView.swift | 34 ++-- .../SystemKit/SystemServices.swift | 13 +- .../OversizePhotoKit/PhotoOptionsView.swift | 2 +- 27 files changed, 504 insertions(+), 396 deletions(-) create mode 100644 Sources/OversizeKit/RouterKit/AlertRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/HUDRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/Protocols/Alertable.swift create mode 100644 Sources/OversizeKit/RouterKit/Protocols/Routable.swift create mode 100644 Sources/OversizeKit/RouterKit/Protocols/Tabable.swift create mode 100644 Sources/OversizeKit/RouterKit/Router.swift create mode 100644 Sources/OversizeKit/RouterKit/TabRouter.swift rename Sources/OversizeKit/SettingsKit/Views/Apperance/{BorderSettongView.swift => BorderSettingView.swift} (99%) create mode 100644 Sources/OversizeKit/SettingsKit/Views/Screens.swift create mode 100644 Sources/OversizeKit/StateKit/LoadingViewState.swift diff --git a/Package.swift b/Package.swift index 5cdcfc2..05c89df 100644 --- a/Package.swift +++ b/Package.swift @@ -35,7 +35,7 @@ let isProductionDependencies = ProcessInfo.processInfo.environment["RELEASE_DEPE let package = Package( name: "OversizeKit", platforms: [ - .iOS(.v15), + .iOS(.v16), .macOS(.v13), .tvOS(.v15), .watchOS(.v9), @@ -66,7 +66,7 @@ let package = Package( .product(name: "OversizeModels", package: "OversizeModels"), .product(name: "OversizeNetwork", package: "OversizeNetwork"), .product(name: "Factory", package: "Factory"), - .product(name: "CachedAsyncImage", package: "swiftui-cached-async-image") + .product(name: "CachedAsyncImage", package: "swiftui-cached-async-image"), ] ), .target( diff --git a/Sources/OversizeKit/LauncherKit/Launcher.swift b/Sources/OversizeKit/LauncherKit/Launcher.swift index 3b87866..4576ace 100644 --- a/Sources/OversizeKit/LauncherKit/Launcher.swift +++ b/Sources/OversizeKit/LauncherKit/Launcher.swift @@ -49,30 +49,27 @@ public struct Launcher: View { } .onChange(of: scenePhase, perform: { value in switch value { - case .active, .inactive: - break case .background: viewModel.authState = .locked viewModel.pinCodeField = "" - @unknown default: - log("unknown") + default: + break } }) } + @ViewBuilder var contentView: some View { - Group { - if viewModel.isShowSplashScreen { - SplashScreen() - } else if viewModel.isShowLockscreen { - lockscreenView - } else { - content - .onAppear { - viewModel.reviewService.launchEvent() - viewModel.launcherSheetsChek() - } - } + if viewModel.isShowSplashScreen { + SplashScreen() + } else if viewModel.isShowLockscreen { + lockscreenView + } else { + content + .onAppear { + viewModel.reviewService.launchEvent() + viewModel.launcherSheetsChek() + } } } diff --git a/Sources/OversizeKit/RouterKit/AlertRouter.swift b/Sources/OversizeKit/RouterKit/AlertRouter.swift new file mode 100644 index 0000000..8b36b5a --- /dev/null +++ b/Sources/OversizeKit/RouterKit/AlertRouter.swift @@ -0,0 +1,23 @@ +// +// Copyright © 2024 Alexander Romanov +// AlertRouter.swift, created on 11.04.2024 +// + +import Foundation + +public class AlertRouter: ObservableObject { + // Alert + @Published public var alert: RootAlert? = nil + + public init() {} +} + +public extension AlertRouter { + func present(_ alert: RootAlert) { + self.alert = alert + } + + func dismiss() { + alert = nil + } +} diff --git a/Sources/OversizeKit/RouterKit/HUDRouter.swift b/Sources/OversizeKit/RouterKit/HUDRouter.swift new file mode 100644 index 0000000..935f304 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/HUDRouter.swift @@ -0,0 +1,20 @@ +// +// Copyright © 2024 Alexander Romanov +// HUDRouter.swift, created on 14.04.2024 +// + +import Foundation + +public class HUDRouter: ObservableObject { + @Published public var isShowHud: Bool = false + @Published public var hudText: String = "" + + public init() {} +} + +public extension HUDRouter { + func present(_ text: String) { + hudText = text + isShowHud = true + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift new file mode 100644 index 0000000..0c7a2a9 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift @@ -0,0 +1,24 @@ +// +// Copyright © 2024 Alexander Romanov +// Alertable.swift, created on 14.04.2024 +// + +import Foundation + +public protocol Alertable: Equatable, Hashable, Identifiable {} + +public extension Alertable { + var id: Self { self } + + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } + + static func == (lhs: Self, rhs: Self) -> Bool { + if lhs.id == rhs.id { + true + } else { + false + } + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift new file mode 100644 index 0000000..92a5f43 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift @@ -0,0 +1,16 @@ +// +// Copyright © 2024 Alexander Romanov +// Routable.swift, created on 14.04.2024 +// + +import SwiftUI + +public protocol Routable: Equatable, Hashable, Identifiable {} + +public extension Routable { + var id: Self { self } + + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift b/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift new file mode 100644 index 0000000..1116b72 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift @@ -0,0 +1,14 @@ +// +// Copyright © 2024 Alexander Romanov +// Tabable.swift, created on 14.04.2024 +// + +import Foundation + +public protocol Tabable: CaseIterable, Equatable, Identifiable {} + +public extension Tabable { + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} diff --git a/Sources/OversizeKit/RouterKit/Router.swift b/Sources/OversizeKit/RouterKit/Router.swift new file mode 100644 index 0000000..4690af0 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Router.swift @@ -0,0 +1,101 @@ +// +// Copyright © 2024 Alexander Romanov +// Router.swift, created on 13.04.2024 +// + +import SwiftUI + +@available(iOS 16.0, *) +public final class Router: ObservableObject { + // Path + @Published public var path = NavigationPath() + @Published public var sheetPath = NavigationPath() + @Published public var fullScreenCoverPath = NavigationPath() + + // Sheets + @Published public var sheet: Destination? + @Published public var fullScreenCover: Destination? + @Published public var sheetDetents: Set = [] + @Published public var dragIndicator: Visibility = .hidden + @Published public var dismissDisabled: Bool = false + + public init() {} +} + +@available(iOS 16.0, *) +public extension Router { + func move(_ screen: Destination) { + path.append(screen) + } + + func backToRoot() { + path.removeLast(path.count) + } + + func back(_ count: Int = 1) { + let pathCount = path.count - count + if pathCount > -1 { + path.removeLast(count) + } + } +} + +// MARK: - Sheets + +@available(iOS 16.0, *) +public extension Router { + func present(_ sheet: Destination, fullScreen: Bool = false) { + if fullScreen { + if fullScreenCover != nil { + fullScreenCover = nil + } + fullScreenCover = sheet + } else { + restSheet() + self.sheet = sheet + } + } + + func present(_ sheet: Destination, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) { + restSheet() + sheetDetents = detents + dragIndicator = indicator + self.dismissDisabled = dismissDisabled + self.sheet = sheet + } + + func dismiss() { + sheet = nil + fullScreenCover = nil + } + + func dismissSheet() { + sheet = nil + } + + func dismissFullScreenCover() { + fullScreenCover = nil + } + + func dismissDisabled(_ isDismissDisabled: Bool = true) { + dismissDisabled = isDismissDisabled + } + + private func restSheet() { + if sheet != nil { + sheet = nil + } + if fullScreenCover != nil { + fullScreenCover = nil + } + if dragIndicator != .hidden { + dragIndicator = .hidden + } + if dismissDisabled { + dismissDisabled = false + } + if sheetDetents.isEmpty == false { + sheetDetents = [] + } + } +} diff --git a/Sources/OversizeKit/RouterKit/TabRouter.swift b/Sources/OversizeKit/RouterKit/TabRouter.swift new file mode 100644 index 0000000..4527046 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/TabRouter.swift @@ -0,0 +1,18 @@ +// +// Copyright © 2024 Alexander Romanov +// TabRouter.swift, created on 13.04.2024 +// + +import Foundation + +public class TabRouter: ObservableObject { + @Published public var tab: Tab + + public init(tab: Tab) { + self.tab = tab + } + + public func changeTab(_ tab: Tab) { + self.tab = tab + } +} diff --git a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift index eaf732b..d3d62bd 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift @@ -17,9 +17,7 @@ import SwiftUI import MessageUI public struct AboutView: View { - @Environment(\.verticalSizeClass) private var verticalSizeClass - @Environment(\.isPortrait) var isPortrait - @Environment(\.presentationMode) var presentationMode + @Environment(\.settingsNavigate) var settingsNavigate @Environment(\.screenSize) var screenSize @Environment(\.iconStyle) var iconStyle: IconStyle @@ -34,9 +32,6 @@ import SwiftUI @State var isSharePresented = false @State private var isShowMail = false - @State var isShowPrivacy = false - @State var isShowTerms = false - @State private var isPresentStoreProduct: Bool = false var isLargeScreen: Bool { @@ -69,23 +64,13 @@ import SwiftUI public var body: some View { #if os(iOS) - PageView(L10n.Settings.about, onOffsetChanged: { offset = $0 }) { + Page(L10n.Settings.about) { list .surfaceContentRowMargins() .task { await viewModel.fetchApps() } } - .leadingBar { - /* - if !isPortrait, verticalSizeClass == .regular { - EmptyView() - } else { - BarButton(.back) - } - */ - BarButton(.back) - } .backgroundSecondary() #else @@ -282,27 +267,20 @@ import SwiftUI SectionView { VStack(spacing: .zero) { - NavigationLink(destination: OurResorsesView()) { - Row("Our open resources") - .rowArrow() + Row("Our open resources") { + settingsNavigate(.move(.ourResorses)) } - .buttonStyle(.row) + .rowArrow() if let privacyUrl = Info.url.appPrivacyPolicyUrl { Row(L10n.Store.privacyPolicy) { - isShowPrivacy.toggle() - } - .sheet(isPresented: $isShowPrivacy) { - WebView(url: privacyUrl) + settingsNavigate(.present(.webView(url: privacyUrl))) } } if let termsOfUde = Info.url.appTermsOfUseUrl { Row(L10n.Store.termsOfUse) { - isShowTerms.toggle() - } - .sheet(isPresented: $isShowTerms) { - WebView(url: termsOfUde) + settingsNavigate(.present(.webView(url: termsOfUde))) } } } @@ -491,7 +469,7 @@ import SwiftUI let appName = Info.app.name, let appBuild = Info.app.build { - Text("© 2023 \(developerName). \(appName) \(appVersion) (\(appBuild))") + Text("© 2024 \(developerName). \(appName) \(appVersion) (\(appBuild))") .footnote() .foregroundColor(.onBackgroundDisabled) } else { diff --git a/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift b/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift index 976faa1..dfc01ac 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift @@ -14,12 +14,12 @@ import OversizeUI import SwiftUI public struct FeedbackView: View { + @Environment(\.settingsNavigate) var settingsNavigate @Environment(\.iconStyle) var iconStyle: IconStyle - @State private var isShowMail = false public init() {} public var body: some View { - PageView("Feedback") { + Page("Feedback") { VStack(spacing: .large) { help @@ -27,10 +27,16 @@ public struct FeedbackView: View { .padding(.bottom, .medium) } } - .trailingBar { - BarButton(.close) - } .backgroundSecondary() + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button { + settingsNavigate(.dismiss) + } label: { + Image.Base.close.icon() + } + } + } } private var hero: some View { @@ -63,15 +69,10 @@ public struct FeedbackView: View { let subject = "Feedback" Row(L10n.Settings.feedbakAuthor) { - isShowMail.toggle() + settingsNavigate(.present(.sendMail(to: mail, subject: subject, content: contentPreText))) } leading: { mailIcon.icon() } - - .buttonStyle(.row) - .sheet(isPresented: $isShowMail) { - MailView(to: mail, subject: subject, content: contentPreText) - } } else { // Send author if let sendMailUrl = Info.url.developerSendMail { @@ -96,6 +97,7 @@ public struct FeedbackView: View { } } } + .sectionContentCompactRowMargins() } var heartIcon: Image { diff --git a/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift b/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift index 745cb19..ee5cae7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift @@ -15,17 +15,14 @@ import SwiftUI public struct OurResorsesView: View { @Environment(\.iconStyle) var iconStyle: IconStyle - @State private var isShowMail = false public init() {} public var body: some View { - PageView("Our open resources") { + Page("Our open resources") { links .surfaceContentRowMargins() } - .leadingBar { - BarButton(.back) - } + .backgroundSecondary() } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift b/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift index cc4c5c4..42fe265 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift @@ -14,12 +14,12 @@ import OversizeUI import SwiftUI public struct SupportView: View { + @Environment(\.settingsNavigate) var settingsNavigate @Environment(\.iconStyle) var iconStyle: IconStyle - @State private var isShowMail = false public init() {} public var body: some View { - PageView(L10n.Settings.supportSection) { + Page(L10n.Settings.supportSection) { VStack(spacing: .large) { help @@ -27,10 +27,16 @@ public struct SupportView: View { .padding(.bottom, .medium) } } - .trailingBar { - BarButton(.close) - } .backgroundSecondary() + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button { + settingsNavigate(.dismissSheet) + } label: { + Image.Base.close.icon() + } + } + } } private var hero: some View { @@ -54,15 +60,10 @@ public struct SupportView: View { let subject = "Support" Row("Contact Us") { - isShowMail.toggle() + settingsNavigate(.present(.sendMail(to: mail, subject: subject, content: contentPreText))) } leading: { mailIcon.icon() } - - .buttonStyle(.row) - .sheet(isPresented: $isShowMail) { - MailView(to: mail, subject: subject, content: contentPreText) - } } else { // Send author if let sendMailUrl = Info.url.developerSendMail { @@ -87,6 +88,7 @@ public struct SupportView: View { } } } + .sectionContentCompactRowMargins() } var heartIcon: Image { @@ -121,15 +123,4 @@ public struct SupportView: View { return Image.Brands.Telegram.twoTone } } - -// var chatIcon: Image { -// switch iconStyle { -// case .line: -// return Icon.Line.Communication.chatDots -// case .solid: -// return Icon.Solid.Communication.chatDots -// case .duotone: -// return Icon.Duotone.Communication.chatDots -// } -// } } diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift index 2423055..a4520a7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift @@ -9,35 +9,10 @@ import OversizeServices import OversizeUI import SwiftUI -#if os(iOS) - public class AppIconSettings: ObservableObject { - public var iconNames: [String?] = [nil] - @Published public var currentIndex = 0 - - public init() { - getAlternateIconNames() - - if let currentIcon = UIApplication.shared.alternateIconName { - currentIndex = iconNames.firstIndex(of: currentIcon) ?? 0 - } - } - - private func getAlternateIconNames() { - if let iconCount = FeatureFlags.app.alternateAppIcons, iconCount != 0 { - for index in 1 ... iconCount { - iconNames.append("AlternateAppIcon\(index)") - } - } - } - } -#endif - #if os(iOS) public struct AppearanceSettingView: View { - @Environment(\.verticalSizeClass) private var verticalSizeClass - @Environment(\.presentationMode) var presentationMode + @Environment(\.settingsNavigate) var settingsNavigate @Environment(\.theme) private var theme: ThemeSettings - @Environment(\.isPortrait) var isPortrait @Environment(\.iconStyle) var iconStyle: IconStyle @Environment(\.isPremium) var isPremium: Bool @@ -45,37 +20,18 @@ import SwiftUI @StateObject var iconSettings = AppIconSettings() #endif - // swiftlint:disable trailing_comma - - @State var offset = CGPoint(x: 0, y: 0) - @State var pageDestenation: Destenation? - @State var isShowPremium: Bool = .init(false) private let columns = [ GridItem(.adaptive(minimum: 78)), ] - enum Destenation { - case font - case border - case radius - } public init() {} + public var body: some View { #if os(iOS) - PageView(L10n.Settings.apperance) { + Page(L10n.Settings.apperance) { iOSSettings .surfaceContentRowMargins() } - .leadingBar { - /* - if !isPortrait, verticalSizeClass == .regular { - EmptyView() - } else { - BarButton(.back) - } - */ - BarButton(.back) - } .backgroundSecondary() #else @@ -85,7 +41,7 @@ import SwiftUI #if os(iOS) private var iOSSettings: some View { - VStack(alignment: .center, spacing: 0) { + LazyVStack(alignment: .leading, spacing: 0) { apperance accentColor @@ -176,7 +132,7 @@ import SwiftUI ) .onTapGesture { if index != 0, isPremium == false { - isShowPremium.toggle() + settingsNavigate(.present(.premium)) } else { let defaultIconIndex = iconSettings.iconNames .firstIndex(of: UIApplication.shared.alternateIconName) ?? 0 @@ -198,69 +154,45 @@ import SwiftUI } .padding() } - .sheet(isPresented: $isShowPremium, content: { - StoreView() - .closable() - }) } #endif private var advanded: some View { SectionView("Advanced settings") { - ZStack { - NavigationLink(destination: FontSettingView(), - tag: .font, - selection: $pageDestenation) { EmptyView() } - - NavigationLink(destination: BorderSettingView(), - tag: .border, - selection: $pageDestenation) { EmptyView() } - - NavigationLink(destination: RadiusSettingView(), - tag: .radius, - selection: $pageDestenation) { EmptyView() } - - VStack(spacing: .zero) { - Row("Fonts") { - pageDestenation = .font - } leading: { - textIcon.icon() - } - .rowArrow() - .premium() - .onPremiumTap() - - Switch(isOn: theme.$borderApp) { - Row("Borders") { - pageDestenation = .border - } leading: { - borderIcon.icon() - } - .premium() - } - .onPremiumTap() -// Row("Borders", leadingType: .image(borderIcon), trallingType: .toggleWithArrowButton(isOn: theme.$borderApp, action: { -// pageDestenation = .border -// })) { -// pageDestenation = .border -// } - - .onChange(of: theme.borderApp) { value in - theme.borderSurface = value - theme.borderButtons = value - theme.borderControls = value - theme.borderTextFields = value - } + VStack(spacing: .zero) { + Row("Fonts") { + settingsNavigate(.move(.font)) + } leading: { + textIcon.icon() + } + .rowArrow() + .premium() + .onPremiumTap() - Row("Radius") { - pageDestenation = .radius + Switch(isOn: theme.$borderApp) { + Row("Borders") { + settingsNavigate(.move(.border)) } leading: { - radiusIcon.icon() + borderIcon.icon() } - .rowArrow() .premium() - .onPremiumTap() } + .onPremiumTap() + .onChange(of: theme.borderApp) { value in + theme.borderSurface = value + theme.borderButtons = value + theme.borderControls = value + theme.borderTextFields = value + } + + Row("Radius") { + settingsNavigate(.move(.radius)) + } leading: { + radiusIcon.icon() + } + .rowArrow() + .premium() + .onPremiumTap() } } } @@ -298,7 +230,32 @@ import SwiftUI } } } +#endif + +#if os(iOS) + public class AppIconSettings: ObservableObject { + public var iconNames: [String?] = [nil] + @Published public var currentIndex = 0 + public init() { + getAlternateIconNames() + + if let currentIcon = UIApplication.shared.alternateIconName { + currentIndex = iconNames.firstIndex(of: currentIcon) ?? 0 + } + } + + private func getAlternateIconNames() { + if let iconCount = FeatureFlags.app.alternateAppIcons, iconCount != 0 { + for index in 1 ... iconCount { + iconNames.append("AlternateAppIcon\(index)") + } + } + } + } +#endif + +#if os(iOS) struct SettingsThemeView_Previews: PreviewProvider { static var previews: some View { AppearanceSettingView() diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettongView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift similarity index 99% rename from Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettongView.swift rename to Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift index 5092940..70cba4f 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettongView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift @@ -1,6 +1,6 @@ // // Copyright © 2022 Alexander Romanov -// BorderSettongView.swift +// BorderSettingView.swift // import OversizeUI diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift index c42d83a..277773a 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift @@ -6,7 +6,7 @@ import OversizeUI import SwiftUI -struct RadiusSettingView: View { +public struct RadiusSettingView: View { @Environment(\.theme) private var theme: ThemeSettings public init() {} @@ -53,12 +53,6 @@ struct RadiusSettingView: View { Spacer() } -// .navigationBar("Radius", style: .fixed($offset)) { -// BarButton(.back) -// } trailingBar: {} bottomBar: {} -// .background(Color.backgroundSecondary.ignoresSafeArea(.all)) -// .preferredColorScheme(theme.appearance.colorScheme) -// .animation(.easeIn(duration: 0.2)) } } diff --git a/Sources/OversizeKit/SettingsKit/Views/Notifications/NotificationsSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/Notifications/NotificationsSettingsView.swift index 6129783..17b4298 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Notifications/NotificationsSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Notifications/NotificationsSettingsView.swift @@ -11,20 +11,15 @@ import SwiftUI // swiftlint:disable line_length #if os(iOS) public struct NotificationsSettingsView: View { - @Environment(\.presentationMode) var presentationMode - @Environment(\.verticalSizeClass) private var verticalSizeClass - @Environment(\.isPortrait) var isPortrait @StateObject var settingsService = SettingsService() - @State var offset = CGPoint(x: 0, y: 0) + + public init() {} public var body: some View { - PageView(L10n.Settings.notifications) { + Page(L10n.Settings.notifications) { soundsAndVibrations .surfaceContentRowMargins() } - .leadingBar { - BarButton(.back) - } .backgroundSecondary() } } diff --git a/Sources/OversizeKit/SettingsKit/Views/Screens.swift b/Sources/OversizeKit/SettingsKit/Views/Screens.swift new file mode 100644 index 0000000..062818f --- /dev/null +++ b/Sources/OversizeKit/SettingsKit/Views/Screens.swift @@ -0,0 +1,67 @@ +// +// Copyright © 2024 Alexander Romanov +// File.swift, created on 15.04.2024 +// + +import OversizeModels +import OversizeNetwork +import SwiftUI + +public enum SettingsScreen: Routable { + case premium + case premiumFeature(feature: PlistConfiguration.Store.StoreFeature) + case soundAndVibration + case appearance + case sync + case about + case feedback + case ourResorses + case support + case border + case font + case radius + case notifications + case setPINCode + case updatePINCode + case security + case offer(event: Components.Schemas.SpecialOffer) + case webView(url: URL) + case sendMail(to: String, subject: String, content: String) +} + +public struct SettingsNavigateAction { + public typealias Action = (SettingsNavigationType) -> Void + public let action: Action + public func callAsFunction(_ navigationType: SettingsNavigationType) { + action(navigationType) + } +} + +public enum SettingsNavigationType { + case move(SettingsScreen) + case backToRoot + case back(Int = 1) + case present(_ sheet: SettingsScreen, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) + case dismiss + case dismissSheet + case dismissFullScreenCover + case dismissDisabled(_ isDismissDisabled: Bool = true) + case presentHUD(_ text: String) +} + +public struct SettingsNavigateEnvironmentKey: EnvironmentKey { + public static var defaultValue: SettingsNavigateAction = .init(action: { _ in }) +} + +public extension EnvironmentValues { + var settingsNavigate: SettingsNavigateAction { + get { self[SettingsNavigateEnvironmentKey.self] } + set { self[SettingsNavigateEnvironmentKey.self] = newValue } + } +} + +public extension View { + func onSettingsNavigate(_ action: @escaping SettingsNavigateAction.Action) -> some View { + environment(\.settingsNavigate, SettingsNavigateAction(action: action)) + } +} diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift index 8bfb6a8..c9b137b 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift @@ -8,8 +8,9 @@ import OversizeUI import SwiftUI public struct SetPINCodeView: View { + @Environment(\.settingsNavigate) var settingsNavigate + @EnvironmentObject private var hudRouter: HUDRouter @ObservedObject var viewModel: SetPINCodeViewModel - @EnvironmentObject private var hud: HUDDeprecated @Environment(\.dismiss) var dismiss public init(action: PINCodeAction) { @@ -17,20 +18,16 @@ public struct SetPINCodeView: View { } public var body: some View { - ZStack(alignment: .leading) { - stateView(state: viewModel.state) - - VStack(alignment: .leading) { - Button { - dismiss() - } label: { - IconDeprecated(.xMini, color: .onSurfaceHighEmphasis) + stateView(state: viewModel.state) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button { + settingsNavigate(.dismiss) + } label: { + Image.Base.close.icon() + } } - .buttonStyle(.secondary) - - Spacer() - }.padding(20) - } + } } @ViewBuilder @@ -69,9 +66,9 @@ public struct SetPINCodeView: View { dismiss() switch viewModel.action { case .set: - hud.show(title: L10n.Security.createPINCode, icon: .check) + hudRouter.present(L10n.Security.createPINCode) case .update: - hud.show(title: L10n.Security.pinChanged, icon: .check) + hudRouter.present(L10n.Security.pinChanged) } case false: diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift index bc89bab..ce73bb1 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift @@ -13,24 +13,16 @@ import SwiftUI #if os(iOS) public struct SecuritySettingsView: View { @Injected(\.biometricService) var biometricService - @Environment(\.verticalSizeClass) private var verticalSizeClass - @Environment(\.isPortrait) var isPortrait - @Environment(\.presentationMode) var presentationMode + @Environment(\.settingsNavigate) var settingsNavigate @StateObject var settingsService = SettingsService() - @State var offset = CGPoint(x: 0, y: 0) - @State var isSetPINCodeSheet: PINCodeAction? - public init() {} public var body: some View { - PageView(L10n.Security.title) { + Page(L10n.Security.title) { iOSSettings .surfaceContentRowMargins() } - .leadingBar { - BarButton(.back) - } .backgroundSecondary() } } @@ -40,7 +32,7 @@ import SwiftUI VStack(alignment: .center, spacing: 0) { faceID - additionally + // additionally } } } @@ -74,21 +66,18 @@ import SwiftUI if settingsService.isSetedPinCode() { settingsService.pinCodeEnabend = $0 } else { - isSetPINCodeSheet = .set + settingsNavigate(.present(.setPINCode)) } }) ) { Row(L10n.Security.pinCode) { Image.Security.lock.icon() } - }.sheet(item: $isSetPINCodeSheet) { sheet in - SetPINCodeView(action: sheet) - .systemServices() } if settingsService.isSetedPinCode() { Row(L10n.Security.changePINCode) { - isSetPINCodeSheet = .update + settingsNavigate(.present(.updatePINCode)) } .rowArrow() } diff --git a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift index 0a8d144..93841a8 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift @@ -12,83 +12,34 @@ import SwiftUI // swiftlint:disable line_length #if os(iOS) public struct SettingsView: View { - @Environment(\.horizontalSizeClass) private var horizontalSizeClass - @Environment(\.verticalSizeClass) private var verticalSizeClass - @Environment(\.presentationMode) var presentationMode + @Environment(\.settingsNavigate) var settingsNavigate @Environment(\.iconStyle) var iconStyle: IconStyle @Environment(\.theme) var theme: ThemeSettings @StateObject var settingsService = SettingsService() - @EnvironmentObject var hudState: HUDDeprecated let appSection: AppSection let headSection: HeadSection - @State private var isPortrait = false - @State private var isShowSupport = false - @State private var isShowFeedback = false - - var isShowArrow: Bool { - #if os(iOS) - if !isPortrait, verticalSizeClass == .regular { - return false - } else { - return true - } - #else - return true - - #endif - } - - public init(@ViewBuilder appSection: () -> AppSection, - @ViewBuilder headSection: () -> HeadSection) - { + public init( + @ViewBuilder appSection: () -> AppSection, + @ViewBuilder headSection: () -> HeadSection + ) { self.appSection = appSection() self.headSection = headSection() } public var body: some View { #if os(iOS) - Group { - if !isPortrait, verticalSizeClass == .regular { - Group { - PageView(L10n.Settings.title) { - iOSSettings - }.backgroundSecondary() - AppearanceSettingView() - } - .navigationable() - .navigationViewStyle(DoubleColumnNavigationViewStyle()) - } else { - Group { - PageView(L10n.Settings.title) { - iOSSettings - } - .backgroundSecondary() - } - .navigationable() - .navigationViewStyle(StackNavigationViewStyle()) - } - } - .onReceive(NotificationCenter.default.publisher(for: UIDevice.orientationDidChangeNotification)) { _ in - setOrientation() - } - .onAppear { - setOrientation() - } - .portraitMode(isPortrait) + Page(L10n.Settings.title) { + iOSSettings + }.backgroundSecondary() #else macSettings #endif } - - func setOrientation() { - guard let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene else { return } - isPortrait = scene.interfaceOrientation.isPortrait - } } #endif @@ -129,25 +80,21 @@ import SwiftUI SectionView("General") { VStack(spacing: .zero) { if FeatureFlags.app.apperance.valueOrFalse { - NavigationLink(destination: AppearanceSettingView() - ) { - Row(L10n.Settings.apperance) { - apperanceSettingsIcon.icon() - } - .rowArrow(isShowArrow) + Row(L10n.Settings.apperance) { + settingsNavigate(.move(.appearance)) + } leading: { + apperanceSettingsIcon.icon() } - .buttonStyle(.row) + .rowArrow() } if FeatureFlags.app.сloudKit.valueOrFalse || FeatureFlags.app.healthKit.valueOrFalse { - NavigationLink(destination: iCloudSettingsView() - ) { - Row(L10n.Title.synchronization) { - cloudKitIcon.icon() - } - .rowArrow(isShowArrow) + Row(L10n.Title.synchronization) { + settingsNavigate(.move(.sync)) + } leading: { + cloudKitIcon.icon() } - .buttonStyle(.row) + .rowArrow() } if FeatureFlags.secure.faceID.valueOrFalse @@ -158,36 +105,30 @@ import SwiftUI || FeatureFlags.secure.bruteForceSecure.valueOrFalse || FeatureFlags.secure.photoBreaker.valueOrFalse { - NavigationLink(destination: SecuritySettingsView() - ) { - Row(L10n.Security.title) { - securityIcon.icon() - } - .rowArrow(isShowArrow) + Row(L10n.Security.title) { + settingsNavigate(.move(.security)) + } leading: { + securityIcon.icon() } - .buttonStyle(.row) + .rowArrow() } if FeatureFlags.app.sounds.valueOrFalse || FeatureFlags.app.vibration.valueOrFalse { - NavigationLink(destination: SoundsAndVibrationsSettingsView() - ) { - Row(soundsAndVibrationTitle) { - FeatureFlags.app.sounds.valueOrFalse ? soundIcon.icon() : vibrationIcon.icon() - } - .rowArrow(isShowArrow) + Row(soundsAndVibrationTitle) { + settingsNavigate(.move(.soundAndVibration)) + } leading: { + FeatureFlags.app.sounds.valueOrFalse ? soundIcon.icon() : vibrationIcon.icon() } - .buttonStyle(.row) + .rowArrow() } if FeatureFlags.app.notifications.valueOrFalse { - NavigationLink(destination: NotificationsSettingsView() - ) { - Row(L10n.Settings.notifications) { - notificationsIcon.icon() - } - .rowArrow(isShowArrow) + Row(L10n.Settings.notifications) { + settingsNavigate(.move(.notifications)) + } leading: { + notificationsIcon.icon() } - .buttonStyle(.row) + .rowArrow() } appSection @@ -266,34 +207,20 @@ import SwiftUI SectionView(L10n.Settings.supportSection) { VStack(alignment: .leading) { Row("Get help") { - isShowSupport.toggle() + settingsNavigate(.present(.support, detents: [.medium])) } leading: { helpIcon.icon() } - .rowArrow(isShowArrow) + .rowArrow() .buttonStyle(.row) - .sheet(isPresented: $isShowSupport) { - SupportView() - .presentationDetents([.medium]) - .presentationContentInteraction(.resizes) - .presentationCompactAdaptation(.sheet) - .scrollDisabled(true) - } Row("Send feedback") { - isShowFeedback.toggle() + settingsNavigate(.present(.feedback, detents: [.medium])) } leading: { chatIcon.icon() } - .rowArrow(isShowArrow) + .rowArrow() .buttonStyle(.row) - .sheet(isPresented: $isShowFeedback) { - FeedbackView() - .presentationDetents([.height(560)]) - .presentationContentInteraction(.resizes) - .presentationCompactAdaptation(.sheet) - .scrollDisabled(true) - } } } } @@ -367,14 +294,14 @@ import SwiftUI private var about: some View { SectionView { VStack(spacing: .zero) { - NavigationLink(destination: AboutView()) { - Row(L10n.Settings.about) { - infoIcon.icon() - } - .rowArrow(isShowArrow) + Row(L10n.Settings.about) { + settingsNavigate(.move(.about)) + } leading: { + infoIcon.icon() } - .buttonStyle(.row) + .rowArrow() } + .buttonStyle(.row) } } diff --git a/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift index ed0f81c..b6d4b2d 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift @@ -12,25 +12,16 @@ import SwiftUI // swiftlint:disable line_length #if os(iOS) public struct SoundsAndVibrationsSettingsView: View { - @Environment(\.verticalSizeClass) private var verticalSizeClass @Environment(\.iconStyle) var iconStyle: IconStyle - @Environment(\.isPortrait) var isPortrait - @Environment(\.presentationMode) var presentationMode - @State var offset = CGPoint(x: 0, y: 0) @StateObject var settingsService = SettingsService() + public init() {} + public var body: some View { - PageView(title) { + Page(title) { iOSSettings .surfaceContentRowMargins() } - .leadingBar { - if !isPortrait, verticalSizeClass == .regular { - EmptyView() - } else { - BarButton(.back) - } - } .backgroundSecondary() } diff --git a/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift index 59eab6b..c8d9912 100644 --- a/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift @@ -11,20 +11,15 @@ import SwiftUI // swiftlint:disable line_length type_name #if os(iOS) public struct iCloudSettingsView: View { // Synchronization - @Environment(\.presentationMode) var presentationMode - @Environment(\.verticalSizeClass) private var verticalSizeClass - @Environment(\.isPortrait) var isPortrait @StateObject var settingsService = SettingsService() - @State var offset = CGPoint(x: 0, y: 0) + + public init() {} public var body: some View { - PageView(L10n.Title.synchronization) { + Page(L10n.Title.synchronization) { iOSSettings .surfaceContentRowMargins() } - .leadingBar { - BarButton(.back) - } .backgroundSecondary() } } diff --git a/Sources/OversizeKit/StateKit/LoadingViewState.swift b/Sources/OversizeKit/StateKit/LoadingViewState.swift new file mode 100644 index 0000000..07b19d2 --- /dev/null +++ b/Sources/OversizeKit/StateKit/LoadingViewState.swift @@ -0,0 +1,14 @@ +// +// Copyright © 2024 Alexander Romanov +// LoadingViewState.swift, created on 25.04.2024 +// + +import Foundation +import OversizeModels + +public enum LoadingViewState { + case loading + case result(Result) + case empty(String) + case error(AppError) +} diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift index b7a9d9f..42f78c7 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift @@ -26,7 +26,7 @@ import SwiftUI } public var body: some View { - PageView { + Page { Group { switch viewModel.state { case .initial, .loading: @@ -39,22 +39,22 @@ import SwiftUI } .paddingContent(.horizontal) } - .backgroundLinerGradient(LinearGradient(colors: [.backgroundPrimary, .backgroundSecondary], startPoint: .top, endPoint: .center)) - .titleLabel { - PremiumLabel(image: Resource.Store.zap, text: Info.store.subscriptionsName, size: .medium) - } - .leadingBar { - if !isPortrait, verticalSizeClass == .regular, isClosable { - EmptyView() - } else { - BarButton(.back) - } - } - .trailingBar { - if isClosable { - BarButton(.close) - } - } +// .backgroundLinerGradient(LinearGradient(colors: [.backgroundPrimary, .backgroundSecondary], startPoint: .top, endPoint: .center)) +// .titleLabel { +// PremiumLabel(image: Resource.Store.zap, text: Info.store.subscriptionsName, size: .medium) +// } +// .leadingBar { +// if !isPortrait, verticalSizeClass == .regular, isClosable { +// EmptyView() +// } else { +// BarButton(.back) +// } +// } +// .trailingBar { +// if isClosable { +// BarButton(.close) +// } +// } .bottomToolbar(style: .none) { if !viewModel.isPremium { StorePaymentButtonBar() diff --git a/Sources/OversizeKit/SystemKit/SystemServices.swift b/Sources/OversizeKit/SystemKit/SystemServices.swift index 733abbf..07602e9 100644 --- a/Sources/OversizeKit/SystemKit/SystemServices.swift +++ b/Sources/OversizeKit/SystemKit/SystemServices.swift @@ -20,7 +20,6 @@ public struct SystemServicesModifier: ViewModifier { @Environment(\.theme) var theme: ThemeSettings @AppStorage("AppState.PremiumState") var isPremium: Bool = false - @StateObject var hudState = HUDDeprecated() @State var blurRadius: CGFloat = 0 @State var oppacity: CGFloat = 1 @@ -34,6 +33,8 @@ public struct SystemServicesModifier: ViewModifier { } public init() {} + + @State private var screnSize: ScreenSize = .init(width: 375, height: 667) public func body(content: Content) -> some View { GeometryReader { geometry in @@ -62,6 +63,10 @@ public struct SystemServicesModifier: ViewModifier { break } }) + .onAppear { + let updatedScreenSize = ScreenSize(geometry: geometry) + screnSize = updatedScreenSize + } .blur(radius: blurRadius) .preferredColorScheme(theme.appearance.colorScheme) #if os(iOS) @@ -69,11 +74,7 @@ public struct SystemServicesModifier: ViewModifier { #endif .premiumStatus(isPremium) .theme(ThemeSettings()) - .screenSize(geometry) - .hudDeprecated(isPresented: $hudState.isPresented, type: $hudState.type) { - HUDContent(title: hudState.title, image: hudState.image, type: hudState.type) - } - .environmentObject(hudState) + .screenSize(screnSize) } } } diff --git a/Sources/OversizePhotoKit/PhotoOptionsView.swift b/Sources/OversizePhotoKit/PhotoOptionsView.swift index 8c4434f..d36ba2e 100644 --- a/Sources/OversizePhotoKit/PhotoOptionsView.swift +++ b/Sources/OversizePhotoKit/PhotoOptionsView.swift @@ -25,7 +25,7 @@ public struct PhotoOptionsView: View where A: View { private let actions: Group? private let deleteAction: (() -> Void)? - @State private var isShowAlert: Bool = false + @State private var isShowAlert = false public init( image: Image, From bad3524f014496717f4d1284f934e9a6da561dbb Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Thu, 16 May 2024 18:27:18 +0300 Subject: [PATCH 02/39] Add routing draft --- Sources/OversizeKit/RouterKit/HUDRouter.swift | 5 +- .../OversizeKit/RouterKit/MenuRouter.swift | 23 + .../RouterKit/PresentationRouter.swift | 42 + .../RouterKit/Protocols/Alertable.swift | 10 +- .../RouterKit/Protocols/Menuble.swift | 12 + .../RouterKit/Protocols/Routable.swift | 10 +- Sources/OversizeKit/RouterKit/Router.swift | 17 + .../Views/About/About/AboutView.swift | 742 +++++++++--------- .../Apperance/AppearanceSettingView.swift | 358 +++++---- .../NotificationsSettingsView.swift | 33 +- .../SettingsKit/Views/Screens.swift | 47 +- .../Security/PINCode/SetPINCodeView.swift | 2 +- .../Views/Security/SecuritySettingsView.swift | 167 ++-- .../SettingsKit/Views/SettingsView.swift | 493 ++++++------ .../SoundsAndVibrationsSettingsView.swift | 99 ++- .../Views/iCloud/iCloudSettingsView.swift | 85 +- .../SystemKit/SystemServices.swift | 4 +- 17 files changed, 1133 insertions(+), 1016 deletions(-) create mode 100644 Sources/OversizeKit/RouterKit/MenuRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/PresentationRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/Protocols/Menuble.swift diff --git a/Sources/OversizeKit/RouterKit/HUDRouter.swift b/Sources/OversizeKit/RouterKit/HUDRouter.swift index 935f304..3f2d987 100644 --- a/Sources/OversizeKit/RouterKit/HUDRouter.swift +++ b/Sources/OversizeKit/RouterKit/HUDRouter.swift @@ -4,17 +4,20 @@ // import Foundation +import OversizeModels public class HUDRouter: ObservableObject { @Published public var isShowHud: Bool = false @Published public var hudText: String = "" + @Published public var type: HUDMessageType = .default public init() {} } public extension HUDRouter { - func present(_ text: String) { + func present(_ text: String, type: HUDMessageType = .default) { hudText = text + self.type = type isShowHud = true } } diff --git a/Sources/OversizeKit/RouterKit/MenuRouter.swift b/Sources/OversizeKit/RouterKit/MenuRouter.swift new file mode 100644 index 0000000..699ce38 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/MenuRouter.swift @@ -0,0 +1,23 @@ +// +// Copyright © 2024 Alexander Romanov +// File.swift, created on 06.05.2024 +// + +import Foundation + +public class MenuRouter: ObservableObject { + @Published public var menu: Menu? + @Published public var subMenu: Menu? + + public init(menu: Menu) { + self.menu = menu + } + + public func changeMenu(_ menu: Menu) { + self.menu = menu + } + + public func changeSubMenu(_ menu: Menu) { + self.menu = menu + } +} diff --git a/Sources/OversizeKit/RouterKit/PresentationRouter.swift b/Sources/OversizeKit/RouterKit/PresentationRouter.swift new file mode 100644 index 0000000..931793e --- /dev/null +++ b/Sources/OversizeKit/RouterKit/PresentationRouter.swift @@ -0,0 +1,42 @@ +// +// Copyright © 2024 Alexander Romanov +// PresentationRouter.swift, created on 16.05.2024 +// + +import Foundation + +public enum HUDMessageType { + case `default` + case success + case destructive + case deleted + case archived +} + +public class PresentationRouter: ObservableObject { + // Alert + @Published public var alert: RootAlert? = nil + @Published public var isShowHud: Bool = false + @Published public var hudText: String = "" + @Published public var type: HUDMessageType = .default + + public init() {} +} + +public extension PresentationRouter { + func present(_ alert: RootAlert) { + self.alert = alert + } + + func dismiss() { + alert = nil + } +} + +public extension PresentationRouter { + func present(_ text: String, type: HUDMessageType = .default) { + hudText = text + self.type = type + isShowHud = true + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift index 0c7a2a9..77ea23c 100644 --- a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift +++ b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift @@ -8,12 +8,6 @@ import Foundation public protocol Alertable: Equatable, Hashable, Identifiable {} public extension Alertable { - var id: Self { self } - - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } - static func == (lhs: Self, rhs: Self) -> Bool { if lhs.id == rhs.id { true @@ -21,4 +15,8 @@ public extension Alertable { false } } + + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } } diff --git a/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift b/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift new file mode 100644 index 0000000..3cf68f3 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift @@ -0,0 +1,12 @@ +// +// Copyright © 2024 Alexander Romanov +// File.swift, created on 06.05.2024 +// + +public protocol Menuble: CaseIterable, Equatable, Identifiable {} + +public extension Menuble { + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift index 92a5f43..a54f673 100644 --- a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift +++ b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift @@ -8,9 +8,15 @@ import SwiftUI public protocol Routable: Equatable, Hashable, Identifiable {} public extension Routable { - var id: Self { self } - func hash(into hasher: inout Hasher) { hasher.combine(id) } + + static func == (lhs: Self, rhs: Self) -> Bool { + if lhs.id == rhs.id { + true + } else { + false + } + } } diff --git a/Sources/OversizeKit/RouterKit/Router.swift b/Sources/OversizeKit/RouterKit/Router.swift index 4690af0..98cd61f 100644 --- a/Sources/OversizeKit/RouterKit/Router.swift +++ b/Sources/OversizeKit/RouterKit/Router.swift @@ -15,6 +15,7 @@ public final class Router: ObservableObject { // Sheets @Published public var sheet: Destination? @Published public var fullScreenCover: Destination? + @Published public var menu: Destination? @Published public var sheetDetents: Set = [] @Published public var dragIndicator: Visibility = .hidden @Published public var dismissDisabled: Bool = false @@ -22,6 +23,13 @@ public final class Router: ObservableObject { public init() {} } +@available(iOS 16.0, *) +public extension Router { + func changeMenu(_ screen: Destination) { + menu = screen + } +} + @available(iOS 16.0, *) public extension Router { func move(_ screen: Destination) { @@ -64,6 +72,15 @@ public extension Router { self.sheet = sheet } + func backOrDismiss() { + if sheet != nil || fullScreenCover != nil { + sheet = nil + fullScreenCover = nil + } else { + back() + } + } + func dismiss() { sheet = nil fullScreenCover = nil diff --git a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift index d3d62bd..be4a46e 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift @@ -13,203 +13,207 @@ import OversizeUI import SwiftUI // swiftlint:disable all -#if os(iOS) +#if canImport(MessageUI) import MessageUI +#endif - public struct AboutView: View { - @Environment(\.settingsNavigate) var settingsNavigate - @Environment(\.screenSize) var screenSize - @Environment(\.iconStyle) var iconStyle: IconStyle +public struct AboutView: View { + @Environment(\.settingsNavigate) var settingsNavigate + @Environment(\.screenSize) var screenSize + @Environment(\.iconStyle) var iconStyle: IconStyle - @StateObject var viewModel: AboutViewModel + @StateObject var viewModel: AboutViewModel - public init() { - _viewModel = StateObject(wrappedValue: AboutViewModel()) - } + public init() { + _viewModel = StateObject(wrappedValue: AboutViewModel()) + } - @State var offset: CGFloat = 0 + @State var offset: CGFloat = 0 - @State var isSharePresented = false - @State private var isShowMail = false + @State var isSharePresented = false + @State private var isShowMail = false - @State private var isPresentStoreProduct: Bool = false + @State private var isPresentStoreProduct: Bool = false - var isLargeScreen: Bool { - screenSize.width < 500 ? false : true - } + var isLargeScreen: Bool { + screenSize.width < 500 ? false : true + } - var oppacity: CGFloat { - if offset < 0 { - return 1 - } else if offset > 500 { - return 0 - } else { - return Double(1 / (offset * 0.01)) - } + var oppacity: CGFloat { + if offset < 0 { + return 1 + } else if offset > 500 { + return 0 + } else { + return Double(1 / (offset * 0.01)) } + } - var blur: CGFloat { - if offset < 0 { - return 0 - } else { - return Double(offset * 0.05) - } + var blur: CGFloat { + if offset < 0 { + return 0 + } else { + return Double(offset * 0.05) } + } + + #if os(iOS) + let scale = UIScreen.main.scale + #else + let scale: CGFloat = 2 + #endif + public var body: some View { #if os(iOS) - let scale = UIScreen.main.scale + Page(L10n.Settings.about) { + list + .surfaceContentRowMargins() + .task { + await viewModel.fetchApps() + } + } + .backgroundSecondary() + #else - let scale: CGFloat = 2 + list + .navigationTitle(L10n.Settings.about) #endif + } - public var body: some View { - #if os(iOS) - Page(L10n.Settings.about) { - list - .surfaceContentRowMargins() - .task { - await viewModel.fetchApps() - } - } - .backgroundSecondary() - - #else - list - .navigationTitle(L10n.Settings.about) - #endif - } + private func appLinks() -> some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .top, spacing: Space.small) { + switch viewModel.state { + case .initial, .loading: + ForEach(0 ... 6, id: \.self) { _ in + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() + .frame(width: 74, height: 74) + } + case let .result(apps, _): + ForEach(apps, id: \.appStoreId) { app in + Button { + isPresentStoreProduct = true + } label: { + VStack(spacing: .xSmall) { + CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/apps/" + app.address + "/icon.png"), urlCache: .imageCache, content: { + $0 + .resizable() + .frame(width: 74, height: 74) + .mask(RoundedRectangle(cornerRadius: .large, + style: .continuous)) + .overlay( + RoundedRectangle(cornerRadius: 16, + style: .continuous) + .stroke(lineWidth: 1) + .opacity(0.15) + ) + + }, placeholder: { + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() + .frame(width: 74, height: 74) + }) - private func appLinks() -> some View { - ScrollView(.horizontal, showsIndicators: false) { - HStack(alignment: .top, spacing: Space.small) { - switch viewModel.state { - case .initial, .loading: - ForEach(0 ... 6, id: \.self) { _ in - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() - .frame(width: 74, height: 74) - } - case let .result(apps, _): - ForEach(apps, id: \.appStoreId) { app in - Button { - isPresentStoreProduct = true - } label: { - VStack(spacing: .xSmall) { - CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/apps/" + app.address + "/icon.png"), urlCache: .imageCache, content: { - $0 - .resizable() - .frame(width: 74, height: 74) - .mask(RoundedRectangle(cornerRadius: .large, - style: .continuous)) - .overlay( - RoundedRectangle(cornerRadius: 16, - style: .continuous) - .stroke(lineWidth: 1) - .opacity(0.15) - ) - - }, placeholder: { - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() - .frame(width: 74, height: 74) - }) - - Text(app.name) - .caption(.medium) - .multilineTextAlignment(.center) - .foregroundColor(.onSurfaceMediumEmphasis) - .frame(width: 74) - } + Text(app.name) + .caption(.medium) + .multilineTextAlignment(.center) + .foregroundColor(.onSurfaceMediumEmphasis) + .frame(width: 74) } - .buttonStyle(.scale) - .appStoreOverlay(isPresent: $isPresentStoreProduct, appId: app.appStoreId) } - case .error: - EmptyView() + .buttonStyle(.scale) + #if os(iOS) + .appStoreOverlay(isPresent: $isPresentStoreProduct, appId: app.appStoreId) + #endif } + case .error: + EmptyView() + } - if let authorAllApps = Info.url.developerAllApps { - VStack(spacing: .xSmall) { - Link(destination: authorAllApps) { - ZStack { - RoundedRectangle(cornerRadius: 16, style: .continuous) - .foregroundColor(.surfaceSecondary) - .frame(width: 74, height: 74) + if let authorAllApps = Info.url.developerAllApps { + VStack(spacing: .xSmall) { + Link(destination: authorAllApps) { + ZStack { + RoundedRectangle(cornerRadius: 16, style: .continuous) + .foregroundColor(.surfaceSecondary) + .frame(width: 74, height: 74) - IconDeprecated(.externalLink) - } + IconDeprecated(.externalLink) } - - Text("All apps") - .caption(.medium) - .multilineTextAlignment(.center) - .foregroundColor(.onSurfaceMediumEmphasis) - .frame(width: 74) } + + Text("All apps") + .caption(.medium) + .multilineTextAlignment(.center) + .foregroundColor(.onSurfaceMediumEmphasis) + .frame(width: 74) } + } - }.padding(.horizontal, .medium) - } - .padding(.bottom, 16) + }.padding(.horizontal, .medium) } + .padding(.bottom, 16) + } - var list: some View { - VStack(spacing: .zero) { - image - .padding(.top, isLargeScreen ? -70 : 0) - - if isLargeScreen { - HStack(spacing: .xxSmall) { - Image.Brands.Oversize.fill - .resizable() - .renderingMode(.template) - .foregroundColor(Color.onSurfaceHighEmphasis) - .frame(width: 32, height: 32) - - Resource.overszieTextLogo - .renderingMode(.template) - .foregroundColor(Color.onSurfaceHighEmphasis) - } - .padding(.top, -40) - .padding(.bottom, .xSmall) - - } else { - VStack(spacing: .xxSmall) { - Image.Brands.Oversize.fill - .resizable() - .renderingMode(.template) - .foregroundColor(Color.onSurfaceHighEmphasis) - .frame(width: 48, height: 48) + var list: some View { + VStack(spacing: .zero) { + image + .padding(.top, isLargeScreen ? -70 : 0) + + if isLargeScreen { + HStack(spacing: .xxSmall) { + Image.Brands.Oversize.fill + .resizable() + .renderingMode(.template) + .foregroundColor(Color.onSurfaceHighEmphasis) + .frame(width: 32, height: 32) + + Resource.overszieTextLogo + .renderingMode(.template) + .foregroundColor(Color.onSurfaceHighEmphasis) + } + .padding(.top, -40) + .padding(.bottom, .xSmall) - Resource.overszieTextLogo - .renderingMode(.template) - .foregroundColor(Color.onSurfaceHighEmphasis) - } - .padding(.top, 42) - .padding(.bottom, .medium) + } else { + VStack(spacing: .xxSmall) { + Image.Brands.Oversize.fill + .resizable() + .renderingMode(.template) + .foregroundColor(Color.onSurfaceHighEmphasis) + .frame(width: 48, height: 48) + + Resource.overszieTextLogo + .renderingMode(.template) + .foregroundColor(Color.onSurfaceHighEmphasis) } + .padding(.top, 42) + .padding(.bottom, .medium) + } - Text("The Oversize project is made with love and attention to the design of the forces of only one person") - .title3(.semibold) - .foregroundColor(.onBackgroundHighEmphasis) - .padding(.horizontal, isLargeScreen ? 72 : 52) - .padding(.bottom, .large) - .multilineTextAlignment(.center) - - soclal - .padding(.bottom, .small) - - SectionView { - VStack(spacing: .zero) { - if let reviewUrl = Info.url.appStoreReview, let id = Info.app.appStoreID, !id.isEmpty, let appName = Info.app.name { - Link(destination: reviewUrl) { - Row("Rate \(appName) on App Store") { - rateSettingsIcon.icon() - } + Text("The Oversize project is made with love and attention to the design of the forces of only one person") + .title3(.semibold) + .foregroundColor(.onBackgroundHighEmphasis) + .padding(.horizontal, isLargeScreen ? 72 : 52) + .padding(.bottom, .large) + .multilineTextAlignment(.center) + + soclal + .padding(.bottom, .small) + + SectionView { + VStack(spacing: .zero) { + if let reviewUrl = Info.url.appStoreReview, let id = Info.app.appStoreID, !id.isEmpty, let appName = Info.app.name { + Link(destination: reviewUrl) { + Row("Rate \(appName) on App Store") { + rateSettingsIcon.icon() } - .buttonStyle(.row) } + .buttonStyle(.row) + } + #if os(iOS) if MFMailComposeViewController.canSendMail(), let mail = Info.links?.company.email, let appVersion = Info.app.verstion, @@ -232,66 +236,67 @@ import SwiftUI MailView(to: mail, subject: subject, content: contentPreText) } } + #endif - #if os(iOS) - if let shareUrl = Info.url.appInstallShare, let id = Info.app.appStoreID, !id.isEmpty { - Row(L10n.Settings.shareApplication) { - isSharePresented.toggle() - } leading: { - shareSettingsIcon.icon() - } - .sheet(isPresented: $isSharePresented) { - ActivityViewController(activityItems: [shareUrl]) - .presentationDetents([.medium, .large]) - } + #if os(iOS) + if let shareUrl = Info.url.appInstallShare, let id = Info.app.appStoreID, !id.isEmpty { + Row(L10n.Settings.shareApplication) { + isSharePresented.toggle() + } leading: { + shareSettingsIcon.icon() + } + .sheet(isPresented: $isSharePresented) { + ActivityViewController(activityItems: [shareUrl]) + .presentationDetents([.medium, .large]) } - #endif - } - } - - SectionView { - VStack(spacing: .zero) { - HStack { - Text(L10n.About.otherApplications.uppercased()) - .caption(true) - .foregroundColor(.onSurfaceMediumEmphasis) - .padding(.top, 12) - .padding(.leading, 26) - .padding(.bottom, 18) - Spacer() } + #endif + } + } - appLinks() + SectionView { + VStack(spacing: .zero) { + HStack { + Text(L10n.About.otherApplications.uppercased()) + .caption(true) + .foregroundColor(.onSurfaceMediumEmphasis) + .padding(.top, 12) + .padding(.leading, 26) + .padding(.bottom, 18) + Spacer() } + + appLinks() } + } - SectionView { - VStack(spacing: .zero) { - Row("Our open resources") { - settingsNavigate(.move(.ourResorses)) - } - .rowArrow() + SectionView { + VStack(spacing: .zero) { + Row("Our open resources") { + settingsNavigate(.move(.ourResorses)) + } + .rowArrow() - if let privacyUrl = Info.url.appPrivacyPolicyUrl { - Row(L10n.Store.privacyPolicy) { - settingsNavigate(.present(.webView(url: privacyUrl))) - } + if let privacyUrl = Info.url.appPrivacyPolicyUrl { + Row(L10n.Store.privacyPolicy) { + settingsNavigate(.present(.webView(url: privacyUrl))) } + } - if let termsOfUde = Info.url.appTermsOfUseUrl { - Row(L10n.Store.termsOfUse) { - settingsNavigate(.present(.webView(url: termsOfUde))) - } + if let termsOfUde = Info.url.appTermsOfUseUrl { + Row(L10n.Store.termsOfUse) { + settingsNavigate(.present(.webView(url: termsOfUde))) } } } - - footer } + + footer } + } - private var soclal: some View { - HStack(spacing: .small) { + private var soclal: some View { + HStack(spacing: .small) { // switch viewModel.state { // case .initial, .loading: // ForEach(0...6, id: \.self) { _ in @@ -327,203 +332,202 @@ import SwiftUI // EmptyView() // } - if let facebook = Info.url.companyFacebook { - Link(destination: facebook) { - // Surface { - HStack { - Spacer() - Image.Brands.Facebook.Circle.fill - .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) - Spacer() - } - // } + if let facebook = Info.url.companyFacebook { + Link(destination: facebook) { + // Surface { + HStack { + Spacer() + Image.Brands.Facebook.Circle.fill + .renderingMode(.template) + .foregroundColor(Color.onSurfaceMediumEmphasis) + Spacer() } + // } } + } - if let instagram = Info.url.companyInstagram { - Link(destination: instagram) { - // Surface { - HStack { - Spacer() - Image.Brands.Instagram.fill - .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) - Spacer() - } - // } + if let instagram = Info.url.companyInstagram { + Link(destination: instagram) { + // Surface { + HStack { + Spacer() + Image.Brands.Instagram.fill + .renderingMode(.template) + .foregroundColor(Color.onSurfaceMediumEmphasis) + Spacer() } + // } } + } - if let twitter = Info.url.companyTwitter { - Link(destination: twitter) { - // Surface { - HStack { - Spacer() - Image.Brands.xCom - .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) - Spacer() - } - // } + if let twitter = Info.url.companyTwitter { + Link(destination: twitter) { + // Surface { + HStack { + Spacer() + Image.Brands.xCom + .renderingMode(.template) + .foregroundColor(Color.onSurfaceMediumEmphasis) + Spacer() } + // } } + } - if let telegramUrl = Info.url.companyTelegram { - Link(destination: telegramUrl) { - // Surface { - HStack { - Spacer() - Image.Brands.Telegram.fill - .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) - Spacer() - } - // } + if let telegramUrl = Info.url.companyTelegram { + Link(destination: telegramUrl) { + // Surface { + HStack { + Spacer() + Image.Brands.Telegram.fill + .renderingMode(.template) + .foregroundColor(Color.onSurfaceMediumEmphasis) + Spacer() } + // } } + } - if let dribbble = Info.url.companyDribbble { - Link(destination: dribbble) { - // Surface { - HStack { - Spacer() - Image.Brands.Dribbble.fill - .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) - Spacer() - } - // } + if let dribbble = Info.url.companyDribbble { + Link(destination: dribbble) { + // Surface { + HStack { + Spacer() + Image.Brands.Dribbble.fill + .renderingMode(.template) + .foregroundColor(Color.onSurfaceMediumEmphasis) + Spacer() } + // } } } - .buttonStyle(.scale) - .frame(maxWidth: 300) - .controlMargin(.xSmall) - .paddingContent(.horizontal) } + .buttonStyle(.scale) + .frame(maxWidth: 300) + .controlMargin(.xSmall) + .paddingContent(.horizontal) + } - private var image: some View { - HStack { - VStack(alignment: .center) { - ZStack(alignment: .top) { - CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/illustrations/scenes/about-layer3.png"), urlCache: .imageCache, scale: scale) { - $0 - .resizable() - .scaledToFit() - .blur(radius: blur) - } placeholder: { - Rectangle() - .fillSurfaceTertiary() - .rotationEffect(.degrees(45)) - .opacity(0) - .frame(height: screenSize.width / 1.16) - } - .offset(y: -offset * 0.1) - - CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/illustrations/scenes/about-layer2.png"), urlCache: .imageCache, scale: scale) { - $0 - .resizable() - .scaledToFit() - .blur(radius: blur) - } placeholder: { - Rectangle() - .fillSurfaceTertiary() - .rotationEffect(.degrees(45)) - .padding(200) - .frame(height: screenSize.width / 1.16) - .overlay { - ProgressView() - } - } + private var image: some View { + HStack { + VStack(alignment: .center) { + ZStack(alignment: .top) { + CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/illustrations/scenes/about-layer3.png"), urlCache: .imageCache, scale: scale) { + $0 + .resizable() + .scaledToFit() + .blur(radius: blur) + } placeholder: { + Rectangle() + .fillSurfaceTertiary() + .rotationEffect(.degrees(45)) + .opacity(0) + .frame(height: screenSize.width / 1.16) + } + .offset(y: -offset * 0.1) - CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/illustrations/scenes/about-layer1.png"), urlCache: .imageCache, scale: scale) { - $0 - .resizable() - .scaledToFit() - .blur(radius: blur) - } placeholder: { - Rectangle() - .fillSurfaceTertiary() - .rotationEffect(.degrees(45)) - .opacity(0) - .frame(height: screenSize.width / 1.16) - } - .offset(y: -(offset * -0.04)) + CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/illustrations/scenes/about-layer2.png"), urlCache: .imageCache, scale: scale) { + $0 + .resizable() + .scaledToFit() + .blur(radius: blur) + } placeholder: { + Rectangle() + .fillSurfaceTertiary() + .rotationEffect(.degrees(45)) + .padding(200) + .frame(height: screenSize.width / 1.16) + .overlay { + ProgressView() + } } - .scaleEffect(screenSize.width < 500 ? 1.4 : 0.9) - .opacity(screenSize.width < 500 ? oppacity : 1) + + CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/illustrations/scenes/about-layer1.png"), urlCache: .imageCache, scale: scale) { + $0 + .resizable() + .scaledToFit() + .blur(radius: blur) + } placeholder: { + Rectangle() + .fillSurfaceTertiary() + .rotationEffect(.degrees(45)) + .opacity(0) + .frame(height: screenSize.width / 1.16) + } + .offset(y: -(offset * -0.04)) } + .scaleEffect(screenSize.width < 500 ? 1.4 : 0.9) + .opacity(screenSize.width < 500 ? oppacity : 1) } } + } - private var footer: some View { - HStack { - Spacer() - - VStack(alignment: .center) { - if let authorLink = Info.links?.company.url { - Link(destination: authorLink) { - if let developerName = Info.developer.name, - let appVersion = Info.app.verstion, - let appName = Info.app.name, - let appBuild = Info.app.build - { - Text("© 2024 \(developerName). \(appName) \(appVersion) (\(appBuild))") - .footnote() - .foregroundColor(.onBackgroundDisabled) - } else { - Text("Developer") - .footnote() - .foregroundColor(.onBackgroundDisabled) - } + private var footer: some View { + HStack { + Spacer() + + VStack(alignment: .center) { + if let authorLink = Info.links?.company.url { + Link(destination: authorLink) { + if let developerName = Info.developer.name, + let appVersion = Info.app.verstion, + let appName = Info.app.name, + let appBuild = Info.app.build + { + Text("© 2024 \(developerName). \(appName) \(appVersion) (\(appBuild))") + .footnote() + .foregroundColor(.onBackgroundDisabled) + } else { + Text("Developer") + .footnote() + .foregroundColor(.onBackgroundDisabled) } } } - - Spacer() } - .padding(.top, Space.small) - .padding(.bottom, 40) - } - var rateSettingsIcon: Image { - switch iconStyle { - case .line: - return Image.Base.heart - case .fill: - return Image.Base.Heart.fill - case .twoTone: - return Image.Base.Heart.TwoTone.fill - } + Spacer() } + .padding(.top, Space.small) + .padding(.bottom, 40) + } - var ideaSettingsIcon: Image { - switch iconStyle { - case .line: - return Image.Electricity.lamp - case .fill: - return Image.Electricity.Lamp.fill - case .twoTone: - return Image.Electricity.Lamp.TwoTone.fill - } + var rateSettingsIcon: Image { + switch iconStyle { + case .line: + return Image.Base.heart + case .fill: + return Image.Base.Heart.fill + case .twoTone: + return Image.Base.Heart.TwoTone.fill } + } - var shareSettingsIcon: Image { - switch iconStyle { - case .line: - return Image.Base.send - case .fill: - return Image.Base.Send.fill - case .twoTone: - return Image.Base.Send.TwoTone.fill - } + var ideaSettingsIcon: Image { + switch iconStyle { + case .line: + return Image.Electricity.lamp + case .fill: + return Image.Electricity.Lamp.fill + case .twoTone: + return Image.Electricity.Lamp.TwoTone.fill } } - struct AboutView_Previews: PreviewProvider { - static var previews: some View { - AboutView() + var shareSettingsIcon: Image { + switch iconStyle { + case .line: + return Image.Base.send + case .fill: + return Image.Base.Send.fill + case .twoTone: + return Image.Base.Send.TwoTone.fill } } -#endif +} + +struct AboutView_Previews: PreviewProvider { + static var previews: some View { + AboutView() + } +} diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift index a4520a7..6a4e4be 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift @@ -9,228 +9,224 @@ import OversizeServices import OversizeUI import SwiftUI -#if os(iOS) - public struct AppearanceSettingView: View { - @Environment(\.settingsNavigate) var settingsNavigate - @Environment(\.theme) private var theme: ThemeSettings - @Environment(\.iconStyle) var iconStyle: IconStyle - @Environment(\.isPremium) var isPremium: Bool +public struct AppearanceSettingView: View { + @Environment(\.settingsNavigate) var settingsNavigate + @Environment(\.theme) private var theme: ThemeSettings + @Environment(\.iconStyle) var iconStyle: IconStyle + @Environment(\.isPremium) var isPremium: Bool - #if os(iOS) - @StateObject var iconSettings = AppIconSettings() - #endif + #if os(iOS) + @StateObject var iconSettings = AppIconSettings() + #endif - private let columns = [ - GridItem(.adaptive(minimum: 78)), - ] + private let columns = [ + GridItem(.adaptive(minimum: 78)), + ] - public init() {} - - public var body: some View { - #if os(iOS) - Page(L10n.Settings.apperance) { - iOSSettings - .surfaceContentRowMargins() - } - .backgroundSecondary() - - #else - macSettings - #endif - } + public init() {} + public var body: some View { #if os(iOS) - private var iOSSettings: some View { - LazyVStack(alignment: .leading, spacing: 0) { - apperance + Page(L10n.Settings.apperance) { + iOSSettings + .surfaceContentRowMargins() + } + .backgroundSecondary() - accentColor + #else + macSettings + #endif + } - advanded + #if os(iOS) + private var iOSSettings: some View { + LazyVStack(alignment: .leading, spacing: 0) { + apperance - if iconSettings.iconNames.count > 1 { - appIcon - } - } - .preferredColorScheme(theme.appearance.colorScheme) - .accentColor(theme.accentColor) - } - #endif + accentColor - private var macSettings: some View { - VStack(alignment: .center, spacing: 0) { advanded - } - .frame(width: 400, height: 300) - // swiftlint:disable multiple_closures_with_trailing_closure superfluous_disable_command - .navigationTitle("Appearance") + if iconSettings.iconNames.count > 1 { + appIcon + } + } .preferredColorScheme(theme.appearance.colorScheme) + .accentColor(theme.accentColor) } + #endif - #if os(iOS) - private var apperance: some View { - SectionView { - HStack { - ForEach(Appearance.allCases, id: \.self) { appearance in + private var macSettings: some View { + VStack(alignment: .center, spacing: 0) { + advanded + } + .frame(width: 400, height: 300) + // swiftlint:disable multiple_closures_with_trailing_closure superfluous_disable_command - HStack { - Spacer() + .navigationTitle("Appearance") + .preferredColorScheme(theme.appearance.colorScheme) + } - VStack(spacing: .zero) { - Text(appearance.name) - .foregroundColor(.onSurfaceHighEmphasis) - .font(.subheadline) - .bold() + private var apperance: some View { + SectionView { + HStack { + ForEach(Appearance.allCases, id: \.self) { appearance in - appearance.image - .padding(.vertical, .medium) + HStack { + Spacer() - if appearance == theme.appearance { - IconDeprecated(.checkCircle, color: Color.accent) - } else { - IconDeprecated(.circle, color: .onSurfaceMediumEmphasis) - } - } - Spacer() - } - .onTapGesture { - theme.appearance = appearance + VStack(spacing: .zero) { + Text(appearance.name) + .foregroundColor(.onSurfaceHighEmphasis) + .font(.subheadline) + .bold() + + appearance.image + .padding(.vertical, .medium) + + if appearance == theme.appearance { + IconDeprecated(.checkCircle, color: Color.accent) + } else { + IconDeprecated(.circle, color: .onSurfaceMediumEmphasis) } } - }.padding(.vertical, .xSmall) + Spacer() + } + .onTapGesture { + theme.appearance = appearance + } } - } - #endif + }.padding(.vertical, .xSmall) + } + } - #if os(iOS) - private var accentColor: some View { - SectionView("Accent color") { - ColorSelector(selection: theme.$accentColor) - } + #if os(iOS) + private var accentColor: some View { + SectionView("Accent color") { + ColorSelector(selection: theme.$accentColor) } + } - #endif - - #if os(iOS) - private var appIcon: some View { - SectionView("App icon") { - LazyVGrid(columns: columns, spacing: 24) { - ForEach(0 ..< iconSettings.iconNames.count, id: \.self) { index in - HStack { - Image(uiImage: UIImage(named: iconSettings.iconNames[index] - ?? "AppIcon") ?? UIImage()) - .renderingMode(.original) - .resizable() - .scaledToFit() - .frame(width: 78, height: 78) - .cornerRadius(18) - .overlay( - RoundedRectangle(cornerRadius: 20) - .stroke(index == iconSettings.currentIndex ? Color.accent : Color.border, - lineWidth: index == iconSettings.currentIndex ? 3 : 1) - ) - .onTapGesture { - if index != 0, isPremium == false { - settingsNavigate(.present(.premium)) - } else { - let defaultIconIndex = iconSettings.iconNames - .firstIndex(of: UIApplication.shared.alternateIconName) ?? 0 - if defaultIconIndex != index { - // swiftlint:disable line_length - UIApplication.shared.setAlternateIconName(iconSettings.iconNames[index]) { error in - if let error { - log(error.localizedDescription) - } else { - log("Success! You have changed the app icon.") - } + #endif + + #if os(iOS) + private var appIcon: some View { + SectionView("App icon") { + LazyVGrid(columns: columns, spacing: 24) { + ForEach(0 ..< iconSettings.iconNames.count, id: \.self) { index in + HStack { + Image(uiImage: UIImage(named: iconSettings.iconNames[index] + ?? "AppIcon") ?? UIImage()) + .renderingMode(.original) + .resizable() + .scaledToFit() + .frame(width: 78, height: 78) + .cornerRadius(18) + .overlay( + RoundedRectangle(cornerRadius: 20) + .stroke(index == iconSettings.currentIndex ? Color.accent : Color.border, + lineWidth: index == iconSettings.currentIndex ? 3 : 1) + ) + .onTapGesture { + if index != 0, isPremium == false { + settingsNavigate(.present(.premium)) + } else { + let defaultIconIndex = iconSettings.iconNames + .firstIndex(of: UIApplication.shared.alternateIconName) ?? 0 + if defaultIconIndex != index { + // swiftlint:disable line_length + UIApplication.shared.setAlternateIconName(iconSettings.iconNames[index]) { error in + if let error { + log(error.localizedDescription) + } else { + log("Success! You have changed the app icon.") } } } } - } - .padding(3) + } } + .padding(3) } - .padding() } + .padding() } - #endif + } + #endif + + private var advanded: some View { + SectionView("Advanced settings") { + VStack(spacing: .zero) { + Row("Fonts") { + settingsNavigate(.move(.font)) + } leading: { + textIcon.icon() + } + .rowArrow() + .premium() + .onPremiumTap() - private var advanded: some View { - SectionView("Advanced settings") { - VStack(spacing: .zero) { - Row("Fonts") { - settingsNavigate(.move(.font)) + Switch(isOn: theme.$borderApp) { + Row("Borders") { + settingsNavigate(.move(.border)) } leading: { - textIcon.icon() + borderIcon.icon() } - .rowArrow() .premium() - .onPremiumTap() - - Switch(isOn: theme.$borderApp) { - Row("Borders") { - settingsNavigate(.move(.border)) - } leading: { - borderIcon.icon() - } - .premium() - } - .onPremiumTap() - .onChange(of: theme.borderApp) { value in - theme.borderSurface = value - theme.borderButtons = value - theme.borderControls = value - theme.borderTextFields = value - } + } + .onPremiumTap() + .onChange(of: theme.borderApp) { value in + theme.borderSurface = value + theme.borderButtons = value + theme.borderControls = value + theme.borderTextFields = value + } - Row("Radius") { - settingsNavigate(.move(.radius)) - } leading: { - radiusIcon.icon() - } - .rowArrow() - .premium() - .onPremiumTap() + Row("Radius") { + settingsNavigate(.move(.radius)) + } leading: { + radiusIcon.icon() } + .rowArrow() + .premium() + .onPremiumTap() } } + } - var textIcon: Image { - switch iconStyle { - case .line: - return Image.Editor.Font.square - case .fill: - return Image.Editor.Font.Square.fill - case .twoTone: - return Image.Editor.Font.Square.TwoTone.fill - } + var textIcon: Image { + switch iconStyle { + case .line: + return Image.Editor.Font.square + case .fill: + return Image.Editor.Font.Square.fill + case .twoTone: + return Image.Editor.Font.Square.TwoTone.fill } + } - var borderIcon: Image { - switch iconStyle { - case .line: - return Image.Design.verticalMirror - case .fill: - return Image.Editor.Font.Square.fill - case .twoTone: - return Image.Editor.Font.Square.TwoTone.fill - } + var borderIcon: Image { + switch iconStyle { + case .line: + return Image.Design.verticalMirror + case .fill: + return Image.Editor.Font.Square.fill + case .twoTone: + return Image.Editor.Font.Square.TwoTone.fill } + } - var radiusIcon: Image { - switch iconStyle { - case .line: - return Image.Design.path - case .fill: - return Image.Design.Path.fill - case .twoTone: - return Image.Design.Path.twoTone - } + var radiusIcon: Image { + switch iconStyle { + case .line: + return Image.Design.path + case .fill: + return Image.Design.Path.fill + case .twoTone: + return Image.Design.Path.twoTone } } -#endif +} #if os(iOS) public class AppIconSettings: ObservableObject { @@ -255,11 +251,9 @@ import SwiftUI } #endif -#if os(iOS) - struct SettingsThemeView_Previews: PreviewProvider { - static var previews: some View { - AppearanceSettingView() - .previewPhones() - } +struct SettingsThemeView_Previews: PreviewProvider { + static var previews: some View { + AppearanceSettingView() + .previewPhones() } -#endif +} diff --git a/Sources/OversizeKit/SettingsKit/Views/Notifications/NotificationsSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/Notifications/NotificationsSettingsView.swift index 17b4298..66cc4c8 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Notifications/NotificationsSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Notifications/NotificationsSettingsView.swift @@ -9,28 +9,27 @@ import OversizeUI import SwiftUI // swiftlint:disable line_length -#if os(iOS) - public struct NotificationsSettingsView: View { - @StateObject var settingsService = SettingsService() - public init() {} +public struct NotificationsSettingsView: View { + @StateObject var settingsService = SettingsService() - public var body: some View { - Page(L10n.Settings.notifications) { - soundsAndVibrations - .surfaceContentRowMargins() - } - .backgroundSecondary() + public init() {} + + public var body: some View { + Page(L10n.Settings.notifications) { + soundsAndVibrations + .surfaceContentRowMargins() } + .backgroundSecondary() } +} - extension NotificationsSettingsView { - private var soundsAndVibrations: some View { - SectionView { - VStack(spacing: .zero) { - Switch(L10n.Settings.notifications, isOn: $settingsService.notificationEnabled) - } +extension NotificationsSettingsView { + private var soundsAndVibrations: some View { + SectionView { + VStack(spacing: .zero) { + Switch(L10n.Settings.notifications, isOn: $settingsService.notificationEnabled) } } } -#endif +} diff --git a/Sources/OversizeKit/SettingsKit/Views/Screens.swift b/Sources/OversizeKit/SettingsKit/Views/Screens.swift index 062818f..a6058c7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Screens.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Screens.swift @@ -29,6 +29,51 @@ public enum SettingsScreen: Routable { case sendMail(to: String, subject: String, content: String) } +public extension SettingsScreen { + var id: String { + switch self { + case .premium: + "premium" + case .premiumFeature: + "premiumFeature" + case .soundAndVibration: + "soundAndVibration" + case .appearance: + "appearance" + case .sync: + "sync" + case .about: + "about" + case .feedback: + "feedback" + case .webView: + "webView" + case .ourResorses: + "ourResorses" + case .support: + "support" + case .border: + "border" + case .font: + "font" + case .radius: + "radius" + case .setPINCode: + "setPINCode" + case .updatePINCode: + "updatePINCode" + case .security: + "security" + case .offer: + "offer" + case .sendMail: + "sendMail" + case .notifications: + "notifications" + } + } +} + public struct SettingsNavigateAction { public typealias Action = (SettingsNavigationType) -> Void public let action: Action @@ -46,7 +91,7 @@ public enum SettingsNavigationType { case dismissSheet case dismissFullScreenCover case dismissDisabled(_ isDismissDisabled: Bool = true) - case presentHUD(_ text: String) + case presentHUD(_ text: String, type: HUDMessageType) } public struct SettingsNavigateEnvironmentKey: EnvironmentKey { diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift index c9b137b..22f88f5 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift @@ -9,7 +9,7 @@ import SwiftUI public struct SetPINCodeView: View { @Environment(\.settingsNavigate) var settingsNavigate - @EnvironmentObject private var hudRouter: HUDRouter + //@EnvironmentObject private var hudRouter: HUDRouter @ObservedObject var viewModel: SetPINCodeViewModel @Environment(\.dismiss) var dismiss diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift index ce73bb1..1bb69ed 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift @@ -10,91 +10,91 @@ import OversizeUI import SwiftUI // swiftlint:disable line_length -#if os(iOS) - public struct SecuritySettingsView: View { - @Injected(\.biometricService) var biometricService - @Environment(\.settingsNavigate) var settingsNavigate - @StateObject var settingsService = SettingsService() - - public init() {} - - public var body: some View { - Page(L10n.Security.title) { - iOSSettings - .surfaceContentRowMargins() - } - .backgroundSecondary() + +public struct SecuritySettingsView: View { + @Injected(\.biometricService) var biometricService + @Environment(\.settingsNavigate) var settingsNavigate + @StateObject var settingsService = SettingsService() + + public init() {} + + public var body: some View { + Page(L10n.Security.title) { + iOSSettings + .surfaceContentRowMargins() } + .backgroundSecondary() } +} - extension SecuritySettingsView { - private var iOSSettings: some View { - VStack(alignment: .center, spacing: 0) { - faceID +extension SecuritySettingsView { + private var iOSSettings: some View { + VStack(alignment: .center, spacing: 0) { + faceID - // additionally - } + // additionally } } - - extension SecuritySettingsView { - private var faceID: some View { - SectionView(L10n.Settings.entrance) { - VStack(spacing: .zero) { - if FeatureFlags.secure.faceID.valueOrFalse, biometricService.checkIfBioMetricAvailable() { - Switch(isOn: - Binding(get: { - settingsService.biometricEnabled - }, set: { - biometricChange(state: $0) - }) - ) { - Row(biometricService.biometricType.rawValue) { - Image(systemName: biometricImageName) - .foregroundColor(Color.onBackgroundHighEmphasis) - .font(.system(size: 20, weight: .semibold)) - .frame(width: 24, height: 24, alignment: .center) - } +} + +extension SecuritySettingsView { + private var faceID: some View { + SectionView(L10n.Settings.entrance) { + VStack(spacing: .zero) { + if FeatureFlags.secure.faceID.valueOrFalse, biometricService.checkIfBioMetricAvailable() { + Switch(isOn: + Binding(get: { + settingsService.biometricEnabled + }, set: { + biometricChange(state: $0) + }) + ) { + Row(biometricService.biometricType.rawValue) { + Image(systemName: biometricImageName) + .foregroundColor(Color.onBackgroundHighEmphasis) + .font(.system(size: 20, weight: .semibold)) + .frame(width: 24, height: 24, alignment: .center) } } + } - if FeatureFlags.secure.lookscreen.valueOrFalse { - Switch(isOn: - Binding(get: { - settingsService.pinCodeEnabend - }, set: { - if settingsService.isSetedPinCode() { - settingsService.pinCodeEnabend = $0 - } else { - settingsNavigate(.present(.setPINCode)) - } - }) - ) { - Row(L10n.Security.pinCode) { - Image.Security.lock.icon() + if FeatureFlags.secure.lookscreen.valueOrFalse { + Switch(isOn: + Binding(get: { + settingsService.pinCodeEnabend + }, set: { + if settingsService.isSetedPinCode() { + settingsService.pinCodeEnabend = $0 + } else { + settingsNavigate(.present(.setPINCode)) } + }) + ) { + Row(L10n.Security.pinCode) { + Image.Security.lock.icon() } + } - if settingsService.isSetedPinCode() { - Row(L10n.Security.changePINCode) { - settingsNavigate(.present(.updatePINCode)) - } - .rowArrow() + if settingsService.isSetedPinCode() { + Row(L10n.Security.changePINCode) { + settingsNavigate(.present(.updatePINCode)) } + .rowArrow() } } } } + } - private func biometricChange(state: Bool) { - Task { - await settingsService.biometricChange(state) - } + private func biometricChange(state: Bool) { + Task { + await settingsService.biometricChange(state) } + } - private var additionally: some View { - SectionView(L10n.Settings.additionally) { - VStack(spacing: .zero) { + private var additionally: some View { + SectionView(L10n.Settings.additionally) { + VStack(spacing: .zero) { // if FeatureFlags.secure.lookscreen.valueOrFalse { // Row(L10n.Security.inactiveAskPassword, trallingType: .toggle(isOn: $settingsStore.askPasswordWhenInactiveEnabend)) // } @@ -125,34 +125,33 @@ import SwiftUI // Row(L10n.Security.facedownLock, trallingType: .toggle(isOn: $settingsStore.lookScreenDownEnabend)) // } // - if FeatureFlags.secure.blurMinimize.valueOrFalse { - Switch(isOn: $settingsService.blurMinimizeEnabend) { - Row(L10n.Security.blurMinimize) - .premium() - } - .onPremiumTap() + if FeatureFlags.secure.blurMinimize.valueOrFalse { + Switch(isOn: $settingsService.blurMinimizeEnabend) { + Row(L10n.Security.blurMinimize) + .premium() } + .onPremiumTap() + } // if FeatureFlags.secure.lookscreen.valueOrFalse { // Row(L10n.Security.authHistory, trallingType: .toggle(isOn: $settingsService.authHistoryEnabend)) // .premium() // .onPremiumTap() // } - } } } + } - private var biometricImageName: String { - switch biometricService.biometricType { - case .none: - return "" - case .touchID: - return "touchid" - case .faceID: - return "faceid" - case .opticID: - return "opticid" - } + private var biometricImageName: String { + switch biometricService.biometricType { + case .none: + return "" + case .touchID: + return "touchid" + case .faceID: + return "faceid" + case .opticID: + return "opticid" } } -#endif +} diff --git a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift index 93841a8..3799b59 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift @@ -10,38 +10,37 @@ import OversizeUI import SwiftUI // swiftlint:disable line_length -#if os(iOS) - public struct SettingsView: View { - @Environment(\.settingsNavigate) var settingsNavigate - @Environment(\.iconStyle) var iconStyle: IconStyle - @Environment(\.theme) var theme: ThemeSettings - @StateObject var settingsService = SettingsService() - - let appSection: AppSection - let headSection: HeadSection - - public init( - @ViewBuilder appSection: () -> AppSection, - @ViewBuilder headSection: () -> HeadSection - ) { - self.appSection = appSection() - self.headSection = headSection() - } - public var body: some View { - #if os(iOS) +public struct SettingsView: View { + @Environment(\.settingsNavigate) var settingsNavigate + @Environment(\.iconStyle) var iconStyle: IconStyle + @Environment(\.theme) var theme: ThemeSettings + @StateObject var settingsService = SettingsService() + + let appSection: AppSection + let headSection: HeadSection + + public init( + @ViewBuilder appSection: () -> AppSection, + @ViewBuilder headSection: () -> HeadSection + ) { + self.appSection = appSection() + self.headSection = headSection() + } + + public var body: some View { + #if os(iOS) - Page(L10n.Settings.title) { - iOSSettings - }.backgroundSecondary() + Page(L10n.Settings.title) { + iOSSettings + }.backgroundSecondary() - #else - macSettings + #else + macSettings - #endif - } + #endif } -#endif +} // iOS Settings #if os(iOS) @@ -67,288 +66,268 @@ import SwiftUI } #endif -#if os(iOS) - // Sections - extension SettingsView { - private var head: some View { - SectionView { - headSection - } +extension SettingsView { + private var head: some View { + SectionView { + headSection } + } - private var app: some View { - SectionView("General") { - VStack(spacing: .zero) { - if FeatureFlags.app.apperance.valueOrFalse { - Row(L10n.Settings.apperance) { - settingsNavigate(.move(.appearance)) - } leading: { - apperanceSettingsIcon.icon() - } - .rowArrow() + private var app: some View { + SectionView("General") { + VStack(spacing: .zero) { + if FeatureFlags.app.apperance.valueOrFalse { + Row(L10n.Settings.apperance) { + settingsNavigate(.move(.appearance)) + } leading: { + apperanceSettingsIcon.icon() } + .rowArrow() + } - if FeatureFlags.app.сloudKit.valueOrFalse || FeatureFlags.app.healthKit.valueOrFalse { - Row(L10n.Title.synchronization) { - settingsNavigate(.move(.sync)) - } leading: { - cloudKitIcon.icon() - } - .rowArrow() + if FeatureFlags.app.сloudKit.valueOrFalse || FeatureFlags.app.healthKit.valueOrFalse { + Row(L10n.Title.synchronization) { + settingsNavigate(.move(.sync)) + } leading: { + cloudKitIcon.icon() } + .rowArrow() + } - if FeatureFlags.secure.faceID.valueOrFalse - || FeatureFlags.secure.lookscreen.valueOrFalse - || FeatureFlags.secure.CVVCodes.valueOrFalse - || FeatureFlags.secure.alertSecureCodes.valueOrFalse - || FeatureFlags.secure.blurMinimize.valueOrFalse - || FeatureFlags.secure.bruteForceSecure.valueOrFalse - || FeatureFlags.secure.photoBreaker.valueOrFalse - { - Row(L10n.Security.title) { - settingsNavigate(.move(.security)) - } leading: { - securityIcon.icon() - } - .rowArrow() + if FeatureFlags.secure.faceID.valueOrFalse + || FeatureFlags.secure.lookscreen.valueOrFalse + || FeatureFlags.secure.CVVCodes.valueOrFalse + || FeatureFlags.secure.alertSecureCodes.valueOrFalse + || FeatureFlags.secure.blurMinimize.valueOrFalse + || FeatureFlags.secure.bruteForceSecure.valueOrFalse + || FeatureFlags.secure.photoBreaker.valueOrFalse + { + Row(L10n.Security.title) { + settingsNavigate(.move(.security)) + } leading: { + securityIcon.icon() } + .rowArrow() + } - if FeatureFlags.app.sounds.valueOrFalse || FeatureFlags.app.vibration.valueOrFalse { - Row(soundsAndVibrationTitle) { - settingsNavigate(.move(.soundAndVibration)) - } leading: { - FeatureFlags.app.sounds.valueOrFalse ? soundIcon.icon() : vibrationIcon.icon() - } - .rowArrow() + if FeatureFlags.app.sounds.valueOrFalse || FeatureFlags.app.vibration.valueOrFalse { + Row(soundsAndVibrationTitle) { + settingsNavigate(.move(.soundAndVibration)) + } leading: { + FeatureFlags.app.sounds.valueOrFalse ? soundIcon.icon() : vibrationIcon.icon() } + .rowArrow() + } - if FeatureFlags.app.notifications.valueOrFalse { - Row(L10n.Settings.notifications) { - settingsNavigate(.move(.notifications)) - } leading: { - notificationsIcon.icon() - } - .rowArrow() + if FeatureFlags.app.notifications.valueOrFalse { + Row(L10n.Settings.notifications) { + settingsNavigate(.move(.notifications)) + } leading: { + notificationsIcon.icon() } - - appSection + .rowArrow() } + + appSection } } + } - var apperanceSettingsIcon: Image { - switch iconStyle { - case .line: - return Image.Design.paintingPalette - case .fill: - return Image.Design.PaintingPalette.fill - case .twoTone: - return Image.Design.PaintingPalette.twoTone - } + var apperanceSettingsIcon: Image { + switch iconStyle { + case .line: + return Image.Design.paintingPalette + case .fill: + return Image.Design.PaintingPalette.fill + case .twoTone: + return Image.Design.PaintingPalette.twoTone } + } - var cloudKitIcon: Image { - switch iconStyle { - case .line: - return Image.Weather.cloud2 - case .fill: - return Image.Weather.Cloud.Square.fill - case .twoTone: - return Image.Weather.Cloud.Square.twoTone - } + var cloudKitIcon: Image { + switch iconStyle { + case .line: + return Image.Weather.cloud2 + case .fill: + return Image.Weather.Cloud.Square.fill + case .twoTone: + return Image.Weather.Cloud.Square.twoTone } + } - var securityIcon: Image { - switch iconStyle { - case .line: - return Image.Base.lock - case .fill: - return Image.Base.Lock.fill - case .twoTone: - return Image.Base.Lock.TwoTone.fill - } + var securityIcon: Image { + switch iconStyle { + case .line: + return Image.Base.lock + case .fill: + return Image.Base.Lock.fill + case .twoTone: + return Image.Base.Lock.TwoTone.fill } + } - var soundIcon: Image { - switch iconStyle { - case .line: - return Image.Base.volumeUp - case .fill: - return Image.Base.VolumeUp.fill - case .twoTone: - return Image.Base.VolumeUp.TwoTone.fill - } + var soundIcon: Image { + switch iconStyle { + case .line: + return Image.Base.volumeUp + case .fill: + return Image.Base.VolumeUp.fill + case .twoTone: + return Image.Base.VolumeUp.TwoTone.fill } + } - var vibrationIcon: Image { - switch iconStyle { - case .line: - return Image.Mobile.vibration - case .fill: - return Image.Mobile.Vibration.fill - case .twoTone: - return Image.Mobile.Vibration.twoTone - } + var vibrationIcon: Image { + switch iconStyle { + case .line: + return Image.Mobile.vibration + case .fill: + return Image.Mobile.Vibration.fill + case .twoTone: + return Image.Mobile.Vibration.twoTone } + } - var notificationsIcon: Image { - switch iconStyle { - case .line: - return Image.Base.notification - case .fill: - return Image.Base.Notification.fill - case .twoTone: - return Image.Base.Notification.TwoTone.fill - } + var notificationsIcon: Image { + switch iconStyle { + case .line: + return Image.Base.notification + case .fill: + return Image.Base.Notification.fill + case .twoTone: + return Image.Base.Notification.TwoTone.fill } + } - // App Store Review - private var help: some View { - SectionView(L10n.Settings.supportSection) { - VStack(alignment: .leading) { - Row("Get help") { - settingsNavigate(.present(.support, detents: [.medium])) - } leading: { - helpIcon.icon() - } - .rowArrow() - .buttonStyle(.row) + // App Store Review + private var help: some View { + SectionView(L10n.Settings.supportSection) { + VStack(alignment: .leading) { + Row("Get help") { + settingsNavigate(.present(.support, detents: [.medium])) + } leading: { + helpIcon.icon() + } + .rowArrow() + .buttonStyle(.row) - Row("Send feedback") { - settingsNavigate(.present(.feedback, detents: [.medium])) - } leading: { - chatIcon.icon() - } - .rowArrow() - .buttonStyle(.row) + Row("Send feedback") { + settingsNavigate(.present(.feedback, detents: [.medium])) + } leading: { + chatIcon.icon() } + .rowArrow() + .buttonStyle(.row) } } + } - var heartIcon: Image { - switch iconStyle { - case .line: - return Image.Base.heart - case .fill: - return Image.Base.Heart.fill - case .twoTone: - return Image.Base.Heart.TwoTone.fill - } + var heartIcon: Image { + switch iconStyle { + case .line: + return Image.Base.heart + case .fill: + return Image.Base.Heart.fill + case .twoTone: + return Image.Base.Heart.TwoTone.fill } + } - var mailIcon: Image { - switch iconStyle { - case .line: - return Image.Base.message - case .fill: - return Image.Base.Message.fill - case .twoTone: - return Image.Base.Message.TwoTone.fill - } + var mailIcon: Image { + switch iconStyle { + case .line: + return Image.Base.message + case .fill: + return Image.Base.Message.fill + case .twoTone: + return Image.Base.Message.TwoTone.fill } + } - var chatIcon: Image { - switch iconStyle { - case .line: - return Image.Base.chat - case .fill: - return Image.Base.Chat.fill - case .twoTone: - return Image.Base.Chat.twoTone - } + var chatIcon: Image { + switch iconStyle { + case .line: + return Image.Base.chat + case .fill: + return Image.Base.Chat.fill + case .twoTone: + return Image.Base.Chat.twoTone } + } - var infoIcon: Image { - switch iconStyle { - case .line: - return Image.Base.Info.circle - case .fill: - return Image.Base.Info.Circle.fill - case .twoTone: - return Image.Base.Info.Circle.twoTone - } + var infoIcon: Image { + switch iconStyle { + case .line: + return Image.Base.Info.circle + case .fill: + return Image.Base.Info.Circle.fill + case .twoTone: + return Image.Base.Info.Circle.twoTone } + } - var oversizeIcon: Image { - switch iconStyle { - case .line: - return Image.Brands.oversize - case .fill: - return Image.Brands.Oversize.fill - case .twoTone: - return Image.Brands.Oversize.TwoTone.fill - } + var oversizeIcon: Image { + switch iconStyle { + case .line: + return Image.Brands.oversize + case .fill: + return Image.Brands.Oversize.fill + case .twoTone: + return Image.Brands.Oversize.TwoTone.fill } + } - var helpIcon: Image { - switch iconStyle { - case .line: - return Image.Alert.Help.circle - case .fill: - return Image.Alert.Help.Circle.fill - case .twoTone: - return Image.Alert.Help.Circle.twoTone - } + var helpIcon: Image { + switch iconStyle { + case .line: + return Image.Alert.Help.circle + case .fill: + return Image.Alert.Help.Circle.fill + case .twoTone: + return Image.Alert.Help.Circle.twoTone } + } - private var about: some View { - SectionView { - VStack(spacing: .zero) { - Row(L10n.Settings.about) { - settingsNavigate(.move(.about)) - } leading: { - infoIcon.icon() - } - .rowArrow() + private var about: some View { + SectionView { + VStack(spacing: .zero) { + Row(L10n.Settings.about) { + settingsNavigate(.move(.about)) + } leading: { + infoIcon.icon() } - .buttonStyle(.row) - } - } - - var soundsAndVibrationTitle: String { - if FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.soundsAndVibration - } else if FeatureFlags.app.sounds.valueOrFalse, !FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.sounds - } else if !FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.vibration - } else { - return "" + .rowArrow() } + .buttonStyle(.row) } } -#endif -// Mac OS Settings -#if os(iOS) - extension SettingsView { - private var macSettings: some View { - VStack(alignment: .center, spacing: 0) { - Text("Mac") - } - .frame(width: 400, height: 300) - .navigationTitle(L10n.Settings.apperance) - .preferredColorScheme(theme.appearance.colorScheme) - } - } -#endif -#if os(iOS) - public extension SettingsView where HeadSection == EmptyView { - init(@ViewBuilder appSection: () -> AppSection) { - self.init(appSection: appSection, headSection: { EmptyView() }) + var soundsAndVibrationTitle: String { + if FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { + return L10n.Settings.soundsAndVibration + } else if FeatureFlags.app.sounds.valueOrFalse, !FeatureFlags.app.vibration.valueOrFalse { + return L10n.Settings.sounds + } else if !FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { + return L10n.Settings.vibration + } else { + return "" } } +} -#endif -#if os(iOS) - extension UINavigationController: UIGestureRecognizerDelegate { - override open func viewDidLoad() { - super.viewDidLoad() - interactivePopGestureRecognizer?.delegate = self +extension SettingsView { + private var macSettings: some View { + VStack(alignment: .center, spacing: 0) { + Text("Mac") } + .frame(width: 400, height: 300) + .navigationTitle(L10n.Settings.apperance) + .preferredColorScheme(theme.appearance.colorScheme) + } +} - public func gestureRecognizerShouldBegin(_: UIGestureRecognizer) -> Bool { - viewControllers.count > 1 - } +public extension SettingsView where HeadSection == EmptyView { + init(@ViewBuilder appSection: () -> AppSection) { + self.init(appSection: appSection, headSection: { EmptyView() }) } -#endif +} diff --git a/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift index b6d4b2d..6465b3a 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift @@ -9,75 +9,72 @@ import OversizeServices import OversizeUI import SwiftUI -// swiftlint:disable line_length -#if os(iOS) - public struct SoundsAndVibrationsSettingsView: View { - @Environment(\.iconStyle) var iconStyle: IconStyle - @StateObject var settingsService = SettingsService() +public struct SoundsAndVibrationsSettingsView: View { + @Environment(\.iconStyle) var iconStyle: IconStyle + @StateObject var settingsService = SettingsService() - public init() {} + public init() {} - public var body: some View { - Page(title) { - iOSSettings - .surfaceContentRowMargins() - } - .backgroundSecondary() + public var body: some View { + Page(title) { + iOSSettings + .surfaceContentRowMargins() } + .backgroundSecondary() + } - private var title: String { - if FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.soundsAndVibration - } else if FeatureFlags.app.sounds.valueOrFalse, !FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.sounds - } else if !FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.vibration - } else { - return "" - } + private var title: String { + if FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { + return L10n.Settings.soundsAndVibration + } else if FeatureFlags.app.sounds.valueOrFalse, !FeatureFlags.app.vibration.valueOrFalse { + return L10n.Settings.sounds + } else if !FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { + return L10n.Settings.vibration + } else { + return "" } } +} - extension SoundsAndVibrationsSettingsView { - private var iOSSettings: some View { - VStack(alignment: .center, spacing: 0) { - soundsAndVibrations - } +extension SoundsAndVibrationsSettingsView { + private var iOSSettings: some View { + VStack(alignment: .center, spacing: 0) { + soundsAndVibrations } } +} - extension SoundsAndVibrationsSettingsView { - private var soundsAndVibrations: some View { - SectionView { - VStack(spacing: .zero) { - if FeatureFlags.app.sounds.valueOrFalse { - Switch(isOn: $settingsService.soundsEnabled) { - Row(L10n.Settings.sounds) { - IconDeprecated(.music) - } +extension SoundsAndVibrationsSettingsView { + private var soundsAndVibrations: some View { + SectionView { + VStack(spacing: .zero) { + if FeatureFlags.app.sounds.valueOrFalse { + Switch(isOn: $settingsService.soundsEnabled) { + Row(L10n.Settings.sounds) { + IconDeprecated(.music) } } + } - if FeatureFlags.app.vibration.valueOrFalse { - Switch(isOn: $settingsService.vibrationEnabled) { - Row(L10n.Settings.vibration) { - vibrationIcon.icon() - } + if FeatureFlags.app.vibration.valueOrFalse { + Switch(isOn: $settingsService.vibrationEnabled) { + Row(L10n.Settings.vibration) { + vibrationIcon.icon() } } } } } + } - var vibrationIcon: Image { - switch iconStyle { - case .line: - return Image.Mobile.vibration - case .fill: - return Image.Mobile.Vibration.fill - case .twoTone: - return Image.Mobile.Vibration.twoTone - } + var vibrationIcon: Image { + switch iconStyle { + case .line: + return Image.Mobile.vibration + case .fill: + return Image.Mobile.Vibration.fill + case .twoTone: + return Image.Mobile.Vibration.twoTone } } -#endif +} diff --git a/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift index c8d9912..6a42b66 100644 --- a/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift @@ -9,66 +9,65 @@ import OversizeUI import SwiftUI // swiftlint:disable line_length type_name -#if os(iOS) - public struct iCloudSettingsView: View { // Synchronization - @StateObject var settingsService = SettingsService() - public init() {} +public struct iCloudSettingsView: View { // Synchronization + @StateObject var settingsService = SettingsService() - public var body: some View { - Page(L10n.Title.synchronization) { - iOSSettings - .surfaceContentRowMargins() - } - .backgroundSecondary() + public init() {} + + public var body: some View { + Page(L10n.Title.synchronization) { + iOSSettings + .surfaceContentRowMargins() } + .backgroundSecondary() } +} - extension iCloudSettingsView { - private var iOSSettings: some View { - VStack(alignment: .center, spacing: 0) { - soundsAndVibrations - } +extension iCloudSettingsView { + private var iOSSettings: some View { + VStack(alignment: .center, spacing: 0) { + soundsAndVibrations } } +} - extension iCloudSettingsView { - private var soundsAndVibrations: some View { - SectionView { - VStack(spacing: .zero) { - if FeatureFlags.app.сloudKit.valueOrFalse { - Switch(isOn: $settingsService.cloudKitEnabled) { - Row(L10n.Settings.iCloudSync) { - Image.Weather.Cloud.square.icon() - } - .premium() +extension iCloudSettingsView { + private var soundsAndVibrations: some View { + SectionView { + VStack(spacing: .zero) { + if FeatureFlags.app.сloudKit.valueOrFalse { + Switch(isOn: $settingsService.cloudKitEnabled) { + Row(L10n.Settings.iCloudSync) { + Image.Weather.Cloud.square.icon() } - .onPremiumTap() + .premium() } + .onPremiumTap() + } - if FeatureFlags.secure.CVVCodes.valueOrFalse { - Switch(isOn: $settingsService.cloudKitCVVEnabled) { - Row(L10n.Security.iCloudSyncCVVDescriptionCloudKit, - subtitle: settingsService.cloudKitCVVEnabled ? L10n.Security.iCloudSyncCVVDescriptionCloudKit : L10n.Security.iCloudSyncCVVDescriptionLocal) - { - Image.Security.cloudLock - .icon() - .frame(width: 24, height: 24) - } - .premium() - .onPremiumTap() + if FeatureFlags.secure.CVVCodes.valueOrFalse { + Switch(isOn: $settingsService.cloudKitCVVEnabled) { + Row(L10n.Security.iCloudSyncCVVDescriptionCloudKit, + subtitle: settingsService.cloudKitCVVEnabled ? L10n.Security.iCloudSyncCVVDescriptionCloudKit : L10n.Security.iCloudSyncCVVDescriptionLocal) + { + Image.Security.cloudLock + .icon() + .frame(width: 24, height: 24) } + .premium() + .onPremiumTap() } + } - if FeatureFlags.app.healthKit.valueOrFalse { - Switch(isOn: $settingsService.healthKitEnabled) { - Row("HealthKit synchronization", subtitle: "After switching on, data from the Health app will be downloaded") { - Image.Romantic.heart.icon() - } + if FeatureFlags.app.healthKit.valueOrFalse { + Switch(isOn: $settingsService.healthKitEnabled) { + Row("HealthKit synchronization", subtitle: "After switching on, data from the Health app will be downloaded") { + Image.Romantic.heart.icon() } } } } } } -#endif +} diff --git a/Sources/OversizeKit/SystemKit/SystemServices.swift b/Sources/OversizeKit/SystemKit/SystemServices.swift index 07602e9..e68a0bc 100644 --- a/Sources/OversizeKit/SystemKit/SystemServices.swift +++ b/Sources/OversizeKit/SystemKit/SystemServices.swift @@ -33,7 +33,7 @@ public struct SystemServicesModifier: ViewModifier { } public init() {} - + @State private var screnSize: ScreenSize = .init(width: 375, height: 667) public func body(content: Content) -> some View { @@ -74,7 +74,7 @@ public struct SystemServicesModifier: ViewModifier { #endif .premiumStatus(isPremium) .theme(ThemeSettings()) - .screenSize(screnSize) + .screenSize(screnSize) } } } From 394e34aa8734789e86a83339de1357ed5856ec93 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Fri, 17 May 2024 16:18:43 +0300 Subject: [PATCH 03/39] Add router --- Package.swift | 11 +- .../OversizeKit/RouterKit/AlertRouter.swift | 23 ---- Sources/OversizeKit/RouterKit/HUDRouter.swift | 23 ---- .../OversizeKit/RouterKit/MenuRouter.swift | 23 ---- .../RouterKit/PresentationRouter.swift | 42 ------- .../RouterKit/Protocols/Alertable.swift | 22 ---- .../RouterKit/Protocols/Menuble.swift | 12 -- .../RouterKit/Protocols/Routable.swift | 22 ---- .../RouterKit/Protocols/Tabable.swift | 14 --- Sources/OversizeKit/RouterKit/Router.swift | 118 ------------------ .../SettingsRouter/ResolveRouter.swift | 64 ++++++++++ .../SettingsRouter/SettingsRouting.swift | 73 +++++++++++ Sources/OversizeKit/RouterKit/TabRouter.swift | 18 --- .../SettingsKit/Views/Screens.swift | 1 + .../Security/PINCode/SetPINCodeView.swift | 3 +- 15 files changed, 150 insertions(+), 319 deletions(-) delete mode 100644 Sources/OversizeKit/RouterKit/AlertRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/HUDRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/MenuRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/PresentationRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/Protocols/Alertable.swift delete mode 100644 Sources/OversizeKit/RouterKit/Protocols/Menuble.swift delete mode 100644 Sources/OversizeKit/RouterKit/Protocols/Routable.swift delete mode 100644 Sources/OversizeKit/RouterKit/Protocols/Tabable.swift delete mode 100644 Sources/OversizeKit/RouterKit/Router.swift create mode 100644 Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift delete mode 100644 Sources/OversizeKit/RouterKit/TabRouter.swift diff --git a/Package.swift b/Package.swift index 05c89df..d3798f8 100644 --- a/Package.swift +++ b/Package.swift @@ -13,6 +13,7 @@ let productionDependencies: [PackageDescription.Package.Dependency] = [ .package(url: "https://github.com/oversizedev/OversizeResources.git", .upToNextMajor(from: "2.0.0")), .package(url: "https://github.com/oversizedev/OversizeNetwork.git", .upToNextMajor(from: "0.4.0")), .package(url: "https://github.com/oversizedev/OversizeModels.git", .upToNextMajor(from: "0.1.0")), + .package(url: "https://github.com/oversizedev/OversizeRouter.git", .upToNextMajor(from: "0.1.0")), .package(url: "https://github.com/hmlongco/Factory.git", .upToNextMajor(from: "2.1.3")), .package(url: "https://github.com/lorenzofiamingo/swiftui-cached-async-image.git", .upToNextMajor(from: "2.1.1")), ] @@ -26,11 +27,18 @@ let developmentDependencies: [PackageDescription.Package.Dependency] = [ .package(name: "OversizeResources", path: "../OversizeResources"), .package(name: "OversizeNetwork", path: "../OversizeNetwork"), .package(name: "OversizeModels", path: "../OversizeModels"), + .package(name: "OversizeRouter", path: "../OversizeRouter"), .package(url: "https://github.com/lorenzofiamingo/swiftui-cached-async-image.git", .upToNextMajor(from: "2.1.1")), .package(url: "https://github.com/hmlongco/Factory.git", .upToNextMajor(from: "2.1.3")), ] -let isProductionDependencies = ProcessInfo.processInfo.environment["RELEASE_DEPENDENCIES"] == "TRUE" +var dependencies: [PackageDescription.Package.Dependency] = [] + +if ProcessInfo.processInfo.environment["RELEASE_DEPENDENCIES"].flatMap(Bool.init) ?? false { + dependencies = productionDependencies +} else { + dependencies = developmentDependencies +} let package = Package( name: "OversizeKit", @@ -65,6 +73,7 @@ let package = Package( .product(name: "OversizeNotificationService", package: "OversizeServices"), .product(name: "OversizeModels", package: "OversizeModels"), .product(name: "OversizeNetwork", package: "OversizeNetwork"), + .product(name: "OversizeRouter", package: "OversizeRouter"), .product(name: "Factory", package: "Factory"), .product(name: "CachedAsyncImage", package: "swiftui-cached-async-image"), ] diff --git a/Sources/OversizeKit/RouterKit/AlertRouter.swift b/Sources/OversizeKit/RouterKit/AlertRouter.swift deleted file mode 100644 index 8b36b5a..0000000 --- a/Sources/OversizeKit/RouterKit/AlertRouter.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// AlertRouter.swift, created on 11.04.2024 -// - -import Foundation - -public class AlertRouter: ObservableObject { - // Alert - @Published public var alert: RootAlert? = nil - - public init() {} -} - -public extension AlertRouter { - func present(_ alert: RootAlert) { - self.alert = alert - } - - func dismiss() { - alert = nil - } -} diff --git a/Sources/OversizeKit/RouterKit/HUDRouter.swift b/Sources/OversizeKit/RouterKit/HUDRouter.swift deleted file mode 100644 index 3f2d987..0000000 --- a/Sources/OversizeKit/RouterKit/HUDRouter.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// HUDRouter.swift, created on 14.04.2024 -// - -import Foundation -import OversizeModels - -public class HUDRouter: ObservableObject { - @Published public var isShowHud: Bool = false - @Published public var hudText: String = "" - @Published public var type: HUDMessageType = .default - - public init() {} -} - -public extension HUDRouter { - func present(_ text: String, type: HUDMessageType = .default) { - hudText = text - self.type = type - isShowHud = true - } -} diff --git a/Sources/OversizeKit/RouterKit/MenuRouter.swift b/Sources/OversizeKit/RouterKit/MenuRouter.swift deleted file mode 100644 index 699ce38..0000000 --- a/Sources/OversizeKit/RouterKit/MenuRouter.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// File.swift, created on 06.05.2024 -// - -import Foundation - -public class MenuRouter: ObservableObject { - @Published public var menu: Menu? - @Published public var subMenu: Menu? - - public init(menu: Menu) { - self.menu = menu - } - - public func changeMenu(_ menu: Menu) { - self.menu = menu - } - - public func changeSubMenu(_ menu: Menu) { - self.menu = menu - } -} diff --git a/Sources/OversizeKit/RouterKit/PresentationRouter.swift b/Sources/OversizeKit/RouterKit/PresentationRouter.swift deleted file mode 100644 index 931793e..0000000 --- a/Sources/OversizeKit/RouterKit/PresentationRouter.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// PresentationRouter.swift, created on 16.05.2024 -// - -import Foundation - -public enum HUDMessageType { - case `default` - case success - case destructive - case deleted - case archived -} - -public class PresentationRouter: ObservableObject { - // Alert - @Published public var alert: RootAlert? = nil - @Published public var isShowHud: Bool = false - @Published public var hudText: String = "" - @Published public var type: HUDMessageType = .default - - public init() {} -} - -public extension PresentationRouter { - func present(_ alert: RootAlert) { - self.alert = alert - } - - func dismiss() { - alert = nil - } -} - -public extension PresentationRouter { - func present(_ text: String, type: HUDMessageType = .default) { - hudText = text - self.type = type - isShowHud = true - } -} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift deleted file mode 100644 index 77ea23c..0000000 --- a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// Alertable.swift, created on 14.04.2024 -// - -import Foundation - -public protocol Alertable: Equatable, Hashable, Identifiable {} - -public extension Alertable { - static func == (lhs: Self, rhs: Self) -> Bool { - if lhs.id == rhs.id { - true - } else { - false - } - } - - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } -} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift b/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift deleted file mode 100644 index 3cf68f3..0000000 --- a/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// File.swift, created on 06.05.2024 -// - -public protocol Menuble: CaseIterable, Equatable, Identifiable {} - -public extension Menuble { - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } -} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift deleted file mode 100644 index a54f673..0000000 --- a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// Routable.swift, created on 14.04.2024 -// - -import SwiftUI - -public protocol Routable: Equatable, Hashable, Identifiable {} - -public extension Routable { - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } - - static func == (lhs: Self, rhs: Self) -> Bool { - if lhs.id == rhs.id { - true - } else { - false - } - } -} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift b/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift deleted file mode 100644 index 1116b72..0000000 --- a/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// Tabable.swift, created on 14.04.2024 -// - -import Foundation - -public protocol Tabable: CaseIterable, Equatable, Identifiable {} - -public extension Tabable { - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } -} diff --git a/Sources/OversizeKit/RouterKit/Router.swift b/Sources/OversizeKit/RouterKit/Router.swift deleted file mode 100644 index 98cd61f..0000000 --- a/Sources/OversizeKit/RouterKit/Router.swift +++ /dev/null @@ -1,118 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// Router.swift, created on 13.04.2024 -// - -import SwiftUI - -@available(iOS 16.0, *) -public final class Router: ObservableObject { - // Path - @Published public var path = NavigationPath() - @Published public var sheetPath = NavigationPath() - @Published public var fullScreenCoverPath = NavigationPath() - - // Sheets - @Published public var sheet: Destination? - @Published public var fullScreenCover: Destination? - @Published public var menu: Destination? - @Published public var sheetDetents: Set = [] - @Published public var dragIndicator: Visibility = .hidden - @Published public var dismissDisabled: Bool = false - - public init() {} -} - -@available(iOS 16.0, *) -public extension Router { - func changeMenu(_ screen: Destination) { - menu = screen - } -} - -@available(iOS 16.0, *) -public extension Router { - func move(_ screen: Destination) { - path.append(screen) - } - - func backToRoot() { - path.removeLast(path.count) - } - - func back(_ count: Int = 1) { - let pathCount = path.count - count - if pathCount > -1 { - path.removeLast(count) - } - } -} - -// MARK: - Sheets - -@available(iOS 16.0, *) -public extension Router { - func present(_ sheet: Destination, fullScreen: Bool = false) { - if fullScreen { - if fullScreenCover != nil { - fullScreenCover = nil - } - fullScreenCover = sheet - } else { - restSheet() - self.sheet = sheet - } - } - - func present(_ sheet: Destination, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) { - restSheet() - sheetDetents = detents - dragIndicator = indicator - self.dismissDisabled = dismissDisabled - self.sheet = sheet - } - - func backOrDismiss() { - if sheet != nil || fullScreenCover != nil { - sheet = nil - fullScreenCover = nil - } else { - back() - } - } - - func dismiss() { - sheet = nil - fullScreenCover = nil - } - - func dismissSheet() { - sheet = nil - } - - func dismissFullScreenCover() { - fullScreenCover = nil - } - - func dismissDisabled(_ isDismissDisabled: Bool = true) { - dismissDisabled = isDismissDisabled - } - - private func restSheet() { - if sheet != nil { - sheet = nil - } - if fullScreenCover != nil { - fullScreenCover = nil - } - if dragIndicator != .hidden { - dragIndicator = .hidden - } - if dismissDisabled { - dismissDisabled = false - } - if sheetDetents.isEmpty == false { - sheetDetents = [] - } - } -} diff --git a/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift b/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift new file mode 100644 index 0000000..48a29ec --- /dev/null +++ b/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift @@ -0,0 +1,64 @@ +// +// Copyright © 2024 Alexander Romanov +// ResolveRouter.swift, created on 16.05.2024 +// + +import Foundation +import OversizeComponents +import OversizeLocalizable +import OversizeNetwork +import SwiftUI + +extension SettingsScreen { + @ViewBuilder + func view() -> some View { + switch self { + case .premium: + StoreView() + case .soundAndVibration: + SoundsAndVibrationsSettingsView() + case .appearance: + AppearanceSettingView() + case .sync: + iCloudSettingsView() + case let .premiumFeature(feature: feature): + StoreFeatureDetailView(selection: feature) + case .about: + AboutView() + case .feedback: + FeedbackView() + case .ourResorses: + OurResorsesView() + case .support: + SupportView() + case .border: + BorderSettingView() + case .font: + FontSettingView() + case .radius: + RadiusSettingView() + case .notifications: + NotificationsSettingsView() + case .setPINCode: + SetPINCodeView(action: .set) + case .updatePINCode: + SetPINCodeView(action: .update) + case .security: + SecuritySettingsView() + case let .offer(event: event): + StoreSpecialOfferView(event: event) + case let .webView(url: url): + WebView(url: url) + case let .sendMail(to: to, subject: subject, content: content): + #if os(iOS) + MailView( + to: to, + subject: subject, + content: content + ) + #else + EmptyView() + #endif + } + } +} diff --git a/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift b/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift new file mode 100644 index 0000000..9a7c7fc --- /dev/null +++ b/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift @@ -0,0 +1,73 @@ +// +// Copyright © 2024 Alexander Romanov +// SettingsRouting.swift, created on 10.05.2024 +// + +import OversizeRouter +import SwiftUI + +public struct SettingsRoutingView: View where Root: View { + @StateObject private var router: Router = .init() + @StateObject private var hudRouter: HUDRouter = .init() + private let root: () -> Root + + public init(@ViewBuilder root: @escaping () -> Root) { + self.root = root + } + + public var body: some View { + NavigationStack(path: $router.path) { + root() + .navigationDestination(for: SettingsScreen.self) { destination in + destination.view() + } + } + .onSettingsNavigate(routerNavigate) + .sheet( + item: $router.sheet, + content: { sheet in + NavigationStack(path: $router.sheetPath) { + sheet.view() + .navigationDestination(for: SettingsScreen.self) { destination in + destination.view() + } + } + .presentationDetents(router.sheetDetents) + .presentationDragIndicator(router.dragIndicator) + .interactiveDismissDisabled(router.dismissDisabled) + .systemServices() + .onSettingsNavigate(routerNavigate) + } + ) + #if os(iOS) + .fullScreenCover(item: $router.fullScreenCover) { fullScreenCover in + fullScreenCover.view() + .systemServices() + .onSettingsNavigate(routerNavigate) + } + #endif + } + + func routerNavigate(navigationType: SettingsNavigationType) { + switch navigationType { + case let .move(screen): + router.move(screen) + case .backToRoot: + router.backToRoot() + case let .back(count): + router.back(count) + case let .present(sheet, detents: detents, indicator: indicator, dismissDisabled: dismissDisabled): + router.present(sheet, detents: detents, indicator: indicator, dismissDisabled: dismissDisabled) + case .dismiss: + router.dismiss() + case .dismissSheet: + router.dismissSheet() + case .dismissFullScreenCover: + router.dismissFullScreenCover() + case let .dismissDisabled(isDismissDisabled): + router.dismissDisabled(isDismissDisabled) + case let .presentHUD(text, type): + hudRouter.present(text, type: type) + } + } +} diff --git a/Sources/OversizeKit/RouterKit/TabRouter.swift b/Sources/OversizeKit/RouterKit/TabRouter.swift deleted file mode 100644 index 4527046..0000000 --- a/Sources/OversizeKit/RouterKit/TabRouter.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// TabRouter.swift, created on 13.04.2024 -// - -import Foundation - -public class TabRouter: ObservableObject { - @Published public var tab: Tab - - public init(tab: Tab) { - self.tab = tab - } - - public func changeTab(_ tab: Tab) { - self.tab = tab - } -} diff --git a/Sources/OversizeKit/SettingsKit/Views/Screens.swift b/Sources/OversizeKit/SettingsKit/Views/Screens.swift index a6058c7..fa48fb7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Screens.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Screens.swift @@ -5,6 +5,7 @@ import OversizeModels import OversizeNetwork +import OversizeRouter import SwiftUI public enum SettingsScreen: Routable { diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift index 22f88f5..bd3d913 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift @@ -4,12 +4,13 @@ // import OversizeLocalizable +import OversizeRouter import OversizeUI import SwiftUI public struct SetPINCodeView: View { @Environment(\.settingsNavigate) var settingsNavigate - //@EnvironmentObject private var hudRouter: HUDRouter + @EnvironmentObject private var hudRouter: HUDRouter @ObservedObject var viewModel: SetPINCodeViewModel @Environment(\.dismiss) var dismiss From a1ffaf0bf7c2c6b073d84fdddf4f4f3a89d0861e Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Fri, 17 May 2024 16:23:48 +0300 Subject: [PATCH 04/39] Upd CI push develop --- .github/workflows/ci-pull-request.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index cdc2195..4a45485 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -3,6 +3,9 @@ on: pull_request: branches: - main + push: + branches: + - develop workflow_dispatch: jobs: From 754506ec402861faaa89cb0bcb5608c55aef93bb Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Fri, 17 May 2024 16:47:46 +0300 Subject: [PATCH 05/39] Test fix --- Sources/OversizeKit/SystemKit/SystemServices.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/OversizeKit/SystemKit/SystemServices.swift b/Sources/OversizeKit/SystemKit/SystemServices.swift index e68a0bc..755db48 100644 --- a/Sources/OversizeKit/SystemKit/SystemServices.swift +++ b/Sources/OversizeKit/SystemKit/SystemServices.swift @@ -71,10 +71,10 @@ public struct SystemServicesModifier: ViewModifier { .preferredColorScheme(theme.appearance.colorScheme) #if os(iOS) .accentColor(theme.accentColor) + .screenSize(screnSize) #endif .premiumStatus(isPremium) .theme(ThemeSettings()) - .screenSize(screnSize) } } } From 502b879460e48d6af93f51634227c5b26ff55de2 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sat, 18 May 2024 11:55:16 +0300 Subject: [PATCH 06/39] Fix tvOS errors --- AppExample/Example.xcodeproj/project.pbxproj | 2 +- .../UserInterfaceState.xcuserstate | Bin 97667 -> 98779 bytes Package.swift | 2 +- Sources/OversizeKit/AdsKit/AdView.swift | 4 +- .../LauncherKit/RateAppScreen.swift | 8 +- .../ViewModel/StoreViewModel.swift | 40 +++++----- .../StoreKit/Views/BuyButtonStyle.swift | 72 +++++++++++------- .../SystemKit/SystemServices.swift | 6 +- 8 files changed, 79 insertions(+), 55 deletions(-) diff --git a/AppExample/Example.xcodeproj/project.pbxproj b/AppExample/Example.xcodeproj/project.pbxproj index a8d543f..7234d08 100644 --- a/AppExample/Example.xcodeproj/project.pbxproj +++ b/AppExample/Example.xcodeproj/project.pbxproj @@ -513,7 +513,7 @@ repositoryURL = "https://github.com/hmlongco/Factory"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 2.2.0; + minimumVersion = 2.1.3; }; }; 845A59312BA4FD2B00988D52 /* XCRemoteSwiftPackageReference "OversizeModels" */ = { diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 1cd4fb570860f7d0a6a2aa142d68bb1952af2462..9f65d0bda56279110678250025141ae9410e8655 100644 GIT binary patch literal 98779 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 z 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 P#P9yG`~UwFN`Lu3A@Anv diff --git a/Package.swift b/Package.swift index d3798f8..f08bfb2 100644 --- a/Package.swift +++ b/Package.swift @@ -45,7 +45,7 @@ let package = Package( platforms: [ .iOS(.v16), .macOS(.v13), - .tvOS(.v15), + .tvOS(.v16), .watchOS(.v9), ], products: [ diff --git a/Sources/OversizeKit/AdsKit/AdView.swift b/Sources/OversizeKit/AdsKit/AdView.swift index aeb1c44..a115595 100644 --- a/Sources/OversizeKit/AdsKit/AdView.swift +++ b/Sources/OversizeKit/AdsKit/AdView.swift @@ -100,9 +100,11 @@ public struct AdView: View { } .buttonStyle(.tertiary) .controlBorderShape(.capsule) - .controlSize(.small) .padding(.trailing, .xxxSmall) .loading(isShowProduct) + #if !os(tvOS) + .controlSize(.small) + #endif } } } diff --git a/Sources/OversizeKit/LauncherKit/RateAppScreen.swift b/Sources/OversizeKit/LauncherKit/RateAppScreen.swift index a762121..54a5bd2 100644 --- a/Sources/OversizeKit/LauncherKit/RateAppScreen.swift +++ b/Sources/OversizeKit/LauncherKit/RateAppScreen.swift @@ -55,7 +55,9 @@ struct RateAppScreen: View { } .controlBorderShape(.capsule) .elevation(.z3) - .controlSize(.large) + #if !os(tvOS) + .controlSize(.large) + #endif } } .multilineTextAlignment(.center) @@ -68,9 +70,11 @@ struct RateAppScreen: View { IconDeprecated(.xMini, color: .onSurfaceHighEmphasis) } .buttonStyle(.tertiary(infinityWidth: false)) - .controlSize(.mini) .controlBorderShape(.capsule) .padding(.medium) + #if !os(tvOS) + .controlSize(.mini) + #endif } // reviewService.rewiewBunnerClosed() } diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift index 708b461..fc1d271 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift @@ -23,7 +23,9 @@ public class StoreViewModel: ObservableObject { } @Injected(\.storeKitService) var storeKitService: StoreKitService - @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol + #if !os(tvOS) + @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol + #endif @Published var state = State.initial @@ -303,23 +305,25 @@ extension StoreViewModel { } func addTrialNotification(product: Product) async { - if product.type == .autoRenewable, product.subscription?.introductoryOffer != nil { - do { - try await localNotificationService.requestAuthorization() - if let trialDaysCount = product.trialDaysCount { - let timeInterval = TimeInterval((trialDaysCount - 2) * 24 * 60 * 60) - let notificationTime = Date().addingTimeInterval(timeInterval) - let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) - await localNotificationService.schedule(localNotification: .init( - id: UUID(), - title: "Trial ends soon", - body: "Subscription ends in 2 days", - dateComponents: dateComponents, - repeats: false - )) - } - } catch {} - } + #if !os(tvOS) + if product.type == .autoRenewable, product.subscription?.introductoryOffer != nil { + do { + try await localNotificationService.requestAuthorization() + if let trialDaysCount = product.trialDaysCount { + let timeInterval = TimeInterval((trialDaysCount - 2) * 24 * 60 * 60) + let notificationTime = Date().addingTimeInterval(timeInterval) + let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) + await localNotificationService.schedule(localNotification: .init( + id: UUID(), + title: "Trial ends soon", + body: "Subscription ends in 2 days", + dateComponents: dateComponents, + repeats: false + )) + } + } catch {} + } + #endif } } diff --git a/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift b/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift index 3922ccd..caa0b85 100644 --- a/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift +++ b/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift @@ -33,9 +33,11 @@ public struct PaymentButtonStyle: ButtonStyle { @Environment(\.isLoading) private var isLoading: Bool @Environment(\.isAccent) private var isAccent: Bool @Environment(\.elevation) private var elevation: Elevation - @Environment(\.controlSize) var controlSize: ControlSize @Environment(\.controlBorderShape) var controlBorderShape: ControlBorderShape @Environment(\.isBordered) var isBordered: Bool + #if !os(tvOS) + @Environment(\.controlSize) var controlSize: ControlSize + #endif private let isInfinityWidth: Bool? @@ -81,33 +83,41 @@ public struct PaymentButtonStyle: ButtonStyle { } private var horizontalPadding: Space { - switch controlSize { - case .mini: - return .xxSmall - case .small: - return .small - case .regular: - return .small - case .large, .extraLarge: + #if os(tvOS) return .medium - @unknown default: - return .zero - } + #else + switch controlSize { + case .mini: + return .xxSmall + case .small: + return .small + case .regular: + return .small + case .large, .extraLarge: + return .medium + @unknown default: + return .zero + } + #endif } private var verticalPadding: Space { - switch controlSize { - case .mini: - return .xxSmall - case .small: - return .xxSmall - case .regular: - return .small - case .large, .extraLarge: + #if os(tvOS) return .medium - @unknown default: - return .zero - } + #else + switch controlSize { + case .mini: + return .xxSmall + case .small: + return .xxSmall + case .regular: + return .small + case .large, .extraLarge: + return .medium + @unknown default: + return .zero + } + #endif } private var backgroundOpacity: CGFloat { @@ -119,13 +129,17 @@ public struct PaymentButtonStyle: ButtonStyle { } private var maxWidth: CGFloat? { - if isInfinityWidth == nil, controlSize == .regular { - return .infinity - } else if let infinity = isInfinityWidth, infinity == true { - return .infinity - } else { + #if os(tvOS) return nil - } + #else + if isInfinityWidth == nil, controlSize == .regular { + return .infinity + } else if let infinity = isInfinityWidth, infinity == true { + return .infinity + } else { + return nil + } + #endif } } diff --git a/Sources/OversizeKit/SystemKit/SystemServices.swift b/Sources/OversizeKit/SystemKit/SystemServices.swift index 755db48..dbbef9a 100644 --- a/Sources/OversizeKit/SystemKit/SystemServices.swift +++ b/Sources/OversizeKit/SystemKit/SystemServices.swift @@ -69,12 +69,12 @@ public struct SystemServicesModifier: ViewModifier { } .blur(radius: blurRadius) .preferredColorScheme(theme.appearance.colorScheme) + .premiumStatus(isPremium) + .theme(ThemeSettings()) + .screenSize(screnSize) #if os(iOS) .accentColor(theme.accentColor) - .screenSize(screnSize) #endif - .premiumStatus(isPremium) - .theme(ThemeSettings()) } } } From da6e9b6838910016bc7a40273e8806bbbf31893c Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 12:02:26 +0300 Subject: [PATCH 07/39] Fix tvOS support --- .github/workflows/ci-pull-request.yml | 19 +- .github/workflows/ci-push.yml | 17 +- AppExample/Example.xcodeproj/project.pbxproj | 14 +- .../UserInterfaceState.xcuserstate | Bin 98779 -> 222803 bytes AppExample/Example/ExampleApp.swift | 2 + .../CreateEventScreen/CreateEventView.swift | 792 +++++++++--------- .../CreateEventViewModel.swift | 306 +++---- .../CreateEventViewSheet.swift | 176 ++-- .../SaveForView/SaveForView.swift | 68 +- .../Pickers/AlertPicker.swift | 68 +- .../Pickers/CalendarPicker.swift | 88 +- .../Pickers/RepeatPicker.swift | 200 +++-- .../AttendeesList/AttendeesView.swift | 126 +-- .../AttendeesList/AttendeesViewModel.swift | 86 +- .../ContactsLists/ContactsListsView.swift | 128 +-- .../ContactsListsViewModel.swift | 78 +- .../ContactsPicker/EmailPickerView.swift | 341 ++++---- .../ContactsPicker/EmailPickerViewModel.swift | 86 +- .../MapCoordinateView/MapCoordinateView.swift | 12 +- .../LocalNotificationSetScreenViewModel.swift | 112 +-- .../LocalNotificationView.swift | 170 ++-- .../Model/LocalNotificationAlertsTimes.swift | 4 +- .../OversizePhotoKit/PhotoOptionsView.swift | 25 +- 23 files changed, 1500 insertions(+), 1418 deletions(-) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index 4a45485..e2720f3 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -3,9 +3,6 @@ on: pull_request: branches: - main - push: - branches: - - develop workflow_dispatch: jobs: @@ -14,7 +11,15 @@ jobs: uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm.yml@main strategy: matrix: - packages: [OversizeKit, OversizeCalendarKit, OversizeContactsKit, OversizeLocationKit, OversizeNoticeKit, OversizeNotificationKit, OversizeOnboardingKit, OversizePhotoKit] + packages: + - OversizeKit + - OversizeCalendarKit + - OversizeContactsKit + - OversizeLocationKit + - OversizeNoticeKit + - OversizeNotificationKit + - OversizeOnboardingKit + - OversizePhotoKit with: package: ${{ matrix.packages }} secrets: inherit @@ -25,7 +30,11 @@ jobs: uses: oversizedev/GithubWorkflows/.github/workflows/build-app.yml@main strategy: matrix: - destination: ['platform=iOS Simulator,name=iPhone 15 Pro,OS=17.2', 'platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.2'] + destination: + - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 + - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.5 + - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 + - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.5 with: path: AppExample/Example scheme: Example diff --git a/.github/workflows/ci-push.yml b/.github/workflows/ci-push.yml index 9b09524..cc427ce 100644 --- a/.github/workflows/ci-push.yml +++ b/.github/workflows/ci-push.yml @@ -8,13 +8,20 @@ on: workflow_dispatch: jobs: - build-swiftpm: name: Build SwiftPM uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm.yml@main strategy: matrix: - packages: [OversizeKit, OversizeCalendarKit, OversizeContactsKit, OversizeLocationKit, OversizeNoticeKit, OversizeNotificationKit, OversizeOnboardingKit, OversizePhotoKit] + packages: + - OversizeKit + - OversizeCalendarKit + - OversizeContactsKit + - OversizeLocationKit + - OversizeNoticeKit + - OversizeNotificationKit + - OversizeOnboardingKit + - OversizePhotoKit with: package: ${{ matrix.packages }} secrets: inherit @@ -25,7 +32,11 @@ jobs: uses: oversizedev/GithubWorkflows/.github/workflows/build-app.yml@main strategy: matrix: - destination: ['platform=iOS Simulator,name=iPhone 15 Pro,OS=17.2', 'platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.2'] + destination: + - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 + - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.5 + - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 + - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.5 with: path: AppExample/Example scheme: Example diff --git a/AppExample/Example.xcodeproj/project.pbxproj b/AppExample/Example.xcodeproj/project.pbxproj index 7234d08..a93b920 100644 --- a/AppExample/Example.xcodeproj/project.pbxproj +++ b/AppExample/Example.xcodeproj/project.pbxproj @@ -437,12 +437,17 @@ "$(inherited)", "@executable_path/Frameworks", ); + MACOSX_DEPLOYMENT_TARGET = 14.0; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = app.oversize.Example; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = "1,2,3"; + TVOS_DEPLOYMENT_TARGET = 17.0; }; name = Debug; }; @@ -468,12 +473,17 @@ "$(inherited)", "@executable_path/Frameworks", ); + MACOSX_DEPLOYMENT_TARGET = 14.0; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = app.oversize.Example; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = "1,2,3"; + TVOS_DEPLOYMENT_TARGET = 17.0; }; name = Release; }; diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 9f65d0bda56279110678250025141ae9410e8655..106aac6a059b1676eb79e10f8482900f5abe5d87 100644 GIT binary patch literal 222803 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 ZprS0c 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 z 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 z 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 some View { - VStack(spacing: .small) { - TextField("Event name", text: $viewModel.title) - .title(.bold) - .focused($focusedField, equals: .title) - .onSurfaceHighEmphasisForegroundColor() - .padding(.bottom, .xxxSmall) - .padding(.horizontal, .small) + @ViewBuilder + private func content() -> some View { + VStack(spacing: .small) { + TextField("Event name", text: $viewModel.title) + .title(.bold) + .focused($focusedField, equals: .title) + .onSurfaceHighEmphasisForegroundColor() + .padding(.bottom, .xxxSmall) + .padding(.horizontal, .small) - textEditor + textEditor - calendarButtons + calendarButtons - allDayEvent + allDayEvent - locationView + locationView - alarmView + alarmView - membersView + membersView - repitView + repitView + } + .padding(.horizontal, .small) + .padding(.vertical, .medium) } - .padding(.horizontal, .small) - .padding(.vertical, .medium) - } - var allDayEvent: some View { - Surface { - viewModel.isAllDay.toggle() - } label: { - HStack { - Text("All-day event") - .headline(.semibold) - .foregroundColor(.onSurfaceHighEmphasis) - .padding(.leading, .xxxSmall) + var allDayEvent: some View { + Surface { + viewModel.isAllDay.toggle() + } label: { + HStack { + Text("All-day event") + .headline(.semibold) + .foregroundColor(.onSurfaceHighEmphasis) + .padding(.leading, .xxxSmall) - Spacer() + Spacer() - Toggle(isOn: $viewModel.isAllDay) {} - .labelsHidden() + Toggle(isOn: $viewModel.isAllDay) {} + .labelsHidden() + } } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.init(horizontal: .xSmall, vertical: .xSmall)) + .controlRadius(.large) } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.init(horizontal: .xSmall, vertical: .xSmall)) - .controlRadius(.large) - } - var textEditor: some View { - VStack(spacing: 2) { - TextEditor(text: $viewModel.note) - .onSurfaceHighEmphasisForegroundColor() - .padding(.horizontal, .xSmall) - .padding(.vertical, .xxSmall) - .focused($focusedField, equals: .note) - .body(.medium) - .scrollContentBackground(.hidden) - .background { - #if os(iOS) - RoundedRectangleCorner(radius: 4, corners: [.bottomLeft, .bottomRight]) - .fillSurfaceSecondary() - .overlay(alignment: .topLeading) { - if viewModel.note.isEmpty { - Text("Note") - .body(.medium) - .onSurfaceDisabledForegroundColor() - .padding(.small) + var textEditor: some View { + VStack(spacing: 2) { + TextEditor(text: $viewModel.note) + .onSurfaceHighEmphasisForegroundColor() + .padding(.horizontal, .xSmall) + .padding(.vertical, .xxSmall) + .focused($focusedField, equals: .note) + .body(.medium) + .scrollContentBackground(.hidden) + .background { + #if os(iOS) + RoundedRectangleCorner(radius: 4, corners: [.bottomLeft, .bottomRight]) + .fillSurfaceSecondary() + .overlay(alignment: .topLeading) { + if viewModel.note.isEmpty { + Text("Note") + .body(.medium) + .onSurfaceDisabledForegroundColor() + .padding(.small) + } } - } - #else - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - .overlay(alignment: .topLeading) { - if viewModel.note.isEmpty { - Text("Note") - .body(.medium) - .onSurfaceDisabledForegroundColor() - .padding(.small) + #else + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + .overlay(alignment: .topLeading) { + if viewModel.note.isEmpty { + Text("Note") + .body(.medium) + .onSurfaceDisabledForegroundColor() + .padding(.small) + } } - } - #endif - } - .frame(minHeight: 76) - - TextField("URL", text: $viewModel.url) - .focused($focusedField, equals: .url) - .onSurfaceHighEmphasisForegroundColor() - .body(.medium) - .padding(.horizontal, .small) - .padding(.vertical, 18) - .background { - #if os(iOS) - RoundedRectangleCorner(radius: 4, corners: [.topLeft, .topRight]) - .fillSurfaceSecondary() - #else - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - #endif - } + #endif + } + .frame(minHeight: 76) + + TextField("URL", text: $viewModel.url) + .focused($focusedField, equals: .url) + .onSurfaceHighEmphasisForegroundColor() + .body(.medium) + .padding(.horizontal, .small) + .padding(.vertical, 18) + .background { + #if os(iOS) + RoundedRectangleCorner(radius: 4, corners: [.topLeft, .topRight]) + .fillSurfaceSecondary() + #else + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + #endif + } + } + .clipShape(RoundedRectangle(cornerRadius: .large, style: .continuous)) } - .clipShape(RoundedRectangle(cornerRadius: .large, style: .continuous)) - } - var repitView: some View { - Group { - if viewModel.repitRule != .never { - Surface { - Row(viewModel.repitRule.title, subtitle: repeatSubtitleText) { - viewModel.present(.repeat) - } leading: { - IconDeprecated(.refresh) - .iconColor(.onSurfaceHighEmphasis) - } - .rowClearButton(style: .onSurface) { - viewModel.repitRule = .never - viewModel.repitEndRule = .never + var repitView: some View { + Group { + if viewModel.repitRule != .never { + Surface { + Row(viewModel.repitRule.title, subtitle: repeatSubtitleText) { + viewModel.present(.repeat) + } leading: { + IconDeprecated(.refresh) + .iconColor(.onSurfaceHighEmphasis) + } + .rowClearButton(style: .onSurface) { + viewModel.repitRule = .never + viewModel.repitEndRule = .never + } + .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) } - .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) } } - } - var membersView: some View { - Group { - if !viewModel.members.isEmpty { - Surface { - VStack(spacing: .zero) { - ForEach(viewModel.members, id: \.self) { email in - Row(email) { - viewModel.present(.invites) - } leading: { - IconDeprecated(.user) - .iconColor(.onSurfaceHighEmphasis) - } - .rowClearButton(style: .onSurface) { - viewModel.members.remove(email) + var membersView: some View { + Group { + if !viewModel.members.isEmpty { + Surface { + VStack(spacing: .zero) { + ForEach(viewModel.members, id: \.self) { email in + Row(email) { + viewModel.present(.invites) + } leading: { + IconDeprecated(.user) + .iconColor(.onSurfaceHighEmphasis) + } + .rowClearButton(style: .onSurface) { + viewModel.members.remove(email) + } + .rowContentMargins(.small) + .overlay(alignment: .bottomLeading) { + Rectangle() + .fillSurfaceSecondary() + .padding(.leading, 56) + .frame(height: 1) + } } - .rowContentMargins(.small) - .overlay(alignment: .bottomLeading) { - Rectangle() - .fillSurfaceSecondary() - .padding(.leading, 56) - .frame(height: 1) + } + } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) + } + } + } + + @ViewBuilder + var alarmView: some View { + Group { + if !viewModel.alarms.isEmpty { + Surface { + VStack(spacing: .zero) { + ForEach(viewModel.alarms) { alarm in + Row(alarm.title) { + viewModel.present(.alarm) + } leading: { + IconDeprecated(.bell) + .iconColor(.onSurfaceHighEmphasis) + } + .rowClearButton(style: .onSurface) { + viewModel.alarms.remove(alarm) + } + .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) + .overlay(alignment: .bottomLeading) { + Rectangle() + .fillSurfaceSecondary() + .padding(.leading, 56) + .frame(height: 1) + } } } } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) } } - } - @ViewBuilder - var alarmView: some View { - Group { - if !viewModel.alarms.isEmpty { + @ViewBuilder + var locationView: some View { + if viewModel.locationName != nil || viewModel.location != nil { Surface { VStack(spacing: .zero) { - ForEach(viewModel.alarms) { alarm in - Row(alarm.title) { - viewModel.present(.alarm) - } leading: { - IconDeprecated(.bell) - .iconColor(.onSurfaceHighEmphasis) + if let locationName = viewModel.locationName { + VStack(spacing: .xxSmall) { + Row(locationName) { + viewModel.present(.location) + } leading: { + IconDeprecated(.mapPin) + .iconColor(.onSurfaceHighEmphasis) + } + .rowClearButton(style: .onSurface) { + viewModel.locationName = nil + viewModel.location = nil + } + .rowContentMargins(.init(horizontal: .small, vertical: .xSmall)) } - .rowClearButton(style: .onSurface) { - viewModel.alarms.remove(alarm) + } + + if let location = viewModel.location { + let region = MKCoordinateRegion(center: location, latitudinalMeters: 10000, longitudinalMeters: 10000) + let annotations = [MapPreviewPoint(name: "\(viewModel.locationName ?? "")", coordinate: location)] + Map(coordinateRegion: .constant(region), annotationItems: annotations) { + MapMarker(coordinate: $0.coordinate) } - .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) - .overlay(alignment: .bottomLeading) { - Rectangle() - .fillSurfaceSecondary() - .padding(.leading, 56) - .frame(height: 1) + .frame(height: 130) + .cornerRadius(.small) + .padding(.horizontal, .xxSmall) + .padding(.bottom, .xxSmall) + .onTapGesture { + focusedField = nil + viewModel.present(.location) } } } @@ -283,221 +332,172 @@ public struct CreateEventView: View { .controlRadius(.large) } } - } - - @ViewBuilder - var locationView: some View { - if viewModel.locationName != nil || viewModel.location != nil { - Surface { - VStack(spacing: .zero) { - if let locationName = viewModel.locationName { - VStack(spacing: .xxSmall) { - Row(locationName) { - viewModel.present(.location) - } leading: { - IconDeprecated(.mapPin) - .iconColor(.onSurfaceHighEmphasis) - } - .rowClearButton(style: .onSurface) { - viewModel.locationName = nil - viewModel.location = nil - } - .rowContentMargins(.init(horizontal: .small, vertical: .xSmall)) - } - } - if let location = viewModel.location { - let region = MKCoordinateRegion(center: location, latitudinalMeters: 10000, longitudinalMeters: 10000) - let annotations = [MapPreviewPoint(name: "\(viewModel.locationName ?? "")", coordinate: location)] - Map(coordinateRegion: .constant(region), annotationItems: annotations) { - MapMarker(coordinate: $0.coordinate) - } - .frame(height: 130) - .cornerRadius(.small) - .padding(.horizontal, .xxSmall) - .padding(.bottom, .xxSmall) - .onTapGesture { - focusedField = nil - viewModel.present(.location) - } - } - } + var repeatSubtitleText: String? { + switch viewModel.repitEndRule { + case .never: + return nil + case let .occurrenceCount(count): + return count > 1 ? "With \(count) repetitions" : "With 1 repetition" + case let .endDate(date): + return "Until \(date.formatted(date: .long, time: .omitted))" } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) } - } - - var repeatSubtitleText: String? { - switch viewModel.repitEndRule { - case .never: - return nil - case let .occurrenceCount(count): - return count > 1 ? "With \(count) repetitions" : "With 1 repetition" - case let .endDate(date): - return "Until \(date.formatted(date: .long, time: .omitted))" - } - } - - var calendarButtons: some View { - HStack(spacing: .small) { - Button { - focusedField = nil - viewModel.present(.startTime) - } label: { - VStack(alignment: .leading, spacing: .xxxSmall) { - Text("Starts") - .onSurfaceMediumEmphasisForegroundColor() - .subheadline(.semibold) - - Text(startDateText) - .onSurfaceHighEmphasisForegroundColor() - .headline(.semibold) - if !isCurrentYearEvent { - Text(viewModel.dateStart.formatted(.dateTime.year())) + var calendarButtons: some View { + HStack(spacing: .small) { + Button { + focusedField = nil + viewModel.present(.startTime) + } label: { + VStack(alignment: .leading, spacing: .xxxSmall) { + Text("Starts") + .onSurfaceMediumEmphasisForegroundColor() + .subheadline(.semibold) + + Text(startDateText) .onSurfaceHighEmphasisForegroundColor() .headline(.semibold) + + if !isCurrentYearEvent { + Text(viewModel.dateStart.formatted(.dateTime.year())) + .onSurfaceHighEmphasisForegroundColor() + .headline(.semibold) + } + } + .padding(.small) + .hLeading() + .background { + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() } } - .padding(.small) - .hLeading() - .background { - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() - } - } - .buttonStyle(.scale) - - Button { - focusedField = nil - viewModel.present(.endTime) - } label: { - VStack(alignment: .leading, spacing: .xxxSmall) { - Text("Ended") - .onSurfaceMediumEmphasisForegroundColor() - .subheadline(.semibold) - - Text(endDateText) - .onSurfaceHighEmphasisForegroundColor() - .headline(.semibold) + .buttonStyle(.scale) - if !isCurrentYearEvent { - Text(viewModel.dateEnd.formatted(.dateTime.year())) + Button { + focusedField = nil + viewModel.present(.endTime) + } label: { + VStack(alignment: .leading, spacing: .xxxSmall) { + Text("Ended") + .onSurfaceMediumEmphasisForegroundColor() + .subheadline(.semibold) + + Text(endDateText) .onSurfaceHighEmphasisForegroundColor() .headline(.semibold) + + if !isCurrentYearEvent { + Text(viewModel.dateEnd.formatted(.dateTime.year())) + .onSurfaceHighEmphasisForegroundColor() + .headline(.semibold) + } + } + .padding(.small) + .hLeading() + .background { + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() } } - .padding(.small) - .hLeading() - .background { - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() - } + .buttonStyle(.scale) } - .buttonStyle(.scale) } - } - var isCurrentYearEvent: Bool { - Calendar.current.component(.year, from: viewModel.dateStart) == Calendar.current.component(.year, from: Date()) && Calendar.current.component(.year, from: viewModel.dateEnd) == Calendar.current.component(.year, from: Date()) - } + var isCurrentYearEvent: Bool { + Calendar.current.component(.year, from: viewModel.dateStart) == Calendar.current.component(.year, from: Date()) && Calendar.current.component(.year, from: viewModel.dateEnd) == Calendar.current.component(.year, from: Date()) + } - var startDateText: String { - if Calendar.current.isDateInToday(viewModel.dateStart) { - return "Today \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInTomorrow(viewModel.dateStart) { - return "Tomorrow \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInYesterday(viewModel.dateStart) { - return "Yesterday \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else { - return "\(viewModel.dateStart.formatted(.dateTime.day().month())) \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + var startDateText: String { + if Calendar.current.isDateInToday(viewModel.dateStart) { + return "Today \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInTomorrow(viewModel.dateStart) { + return "Tomorrow \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInYesterday(viewModel.dateStart) { + return "Yesterday \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else { + return "\(viewModel.dateStart.formatted(.dateTime.day().month())) \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } } - } - var endDateText: String { - if Calendar.current.isDateInToday(viewModel.dateEnd) { - return "Today \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInTomorrow(viewModel.dateEnd) { - return "Tomorrow \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInYesterday(viewModel.dateEnd) { - return "Yesterday \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else { - return "\(viewModel.dateEnd.formatted(.dateTime.day().month())) \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + var endDateText: String { + if Calendar.current.isDateInToday(viewModel.dateEnd) { + return "Today \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInTomorrow(viewModel.dateEnd) { + return "Tomorrow \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInYesterday(viewModel.dateEnd) { + return "Yesterday \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else { + return "\(viewModel.dateEnd.formatted(.dateTime.day().month())) \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } } - } - var bottomBar: some View { - HStack(spacing: .medium) { - Button { - Task { - focusedField = nil - viewModel.present(.location) - } - } label: { - if viewModel.isFetchUpdatePositon { - ProgressView() - } else { - IconDeprecated(.mapPin) -// Icon.Solid.NavigationandTravel.location -// .renderingMode(.template) + var bottomBar: some View { + HStack(spacing: .medium) { + Button { + Task { + focusedField = nil + viewModel.present(.location) + } + } label: { + if viewModel.isFetchUpdatePositon { + ProgressView() + } else { + IconDeprecated(.mapPin) + } } - } - .disabled(viewModel.isFetchUpdatePositon) + .disabled(viewModel.isFetchUpdatePositon) - Button { viewModel.present(.alarm) } label: { - IconDeprecated(.bell) -// Icon.Solid.UserInterface.bell -// .renderingMode(.template) - } + Button { viewModel.present(.alarm) } label: { + IconDeprecated(.bell) + } - Button { viewModel.present(.repeat) } label: { - IconDeprecated(.refresh) - } + Button { viewModel.present(.repeat) } label: { + IconDeprecated(.refresh) + } - /* - Button { viewModel.present(.attachment) } label: { - IconDeprecated(.moreHorizontal) - } - */ + /* + Button { viewModel.present(.attachment) } label: { + IconDeprecated(.moreHorizontal) + } + */ - Spacer() + Spacer() - Button { viewModel.present(.invites) } label: { - IconDeprecated(.userPlus) - } + Button { viewModel.present(.invites) } label: { + IconDeprecated(.userPlus) + } // Icon.Solid.UserInterface.plusCrFr // .renderingMode(.template) + } + .buttonStyle(.scale) + .padding(.horizontal, .medium) + .padding(.vertical, 20) + .onSurfaceMediumEmphasisForegroundColor() + .background(.ultraThinMaterial) + .overlay(alignment: .top) { + Rectangle() + .fill(Color.onSurfaceHighEmphasis.opacity(0.05)) + .frame(height: 1) + } } - .buttonStyle(.scale) - .padding(.horizontal, .medium) - .padding(.vertical, 20) - .onSurfaceMediumEmphasisForegroundColor() - .background(.ultraThinMaterial) - .overlay(alignment: .top) { - Rectangle() - .fill(Color.onSurfaceHighEmphasis.opacity(0.05)) - .frame(height: 1) - } - } - @ViewBuilder - private func placeholder() -> some View {} -} + @ViewBuilder + private func placeholder() -> some View {} + } -extension CreateEventView { - enum FocusField: Hashable { - case title - case note - case url + extension CreateEventView { + enum FocusField: Hashable { + case title + case note + case url + } } -} -struct CreateEventView_Previews: PreviewProvider { - static var previews: some View { - CreateEventView() + struct CreateEventView_Previews: PreviewProvider { + static var previews: some View { + CreateEventView() + } } -} +#endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift index a7f3335..63b7a37 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift @@ -3,7 +3,9 @@ // CreateEventViewModel.swift // -import EventKit +#if canImport(EventKit) + import EventKit +#endif import Factory import OversizeCalendarService import OversizeCore @@ -11,173 +13,175 @@ import OversizeLocationService import OversizeModels import SwiftUI -public enum CreateEventType: Equatable { - case new(Date?, calendar: EKCalendar?) - case update(EKEvent) -} - -@MainActor -public class CreateEventViewModel: ObservableObject { - @Injected(\.calendarService) private var calendarService: CalendarService - @Injected(\.locationService) private var locationService: LocationServiceProtocol - - @Published var state = CreateEventViewModelState.initial - @Published var sheet: CreateEventViewModel.Sheet? = nil - @Published var isFetchUpdatePositon: Bool = .init(false) - - @Published var title: String = .init() - @Published var note: String = .init() - @Published var url: String = .init() - @Published var dateStart: Date = .init() - @Published var dateEnd: Date = .init().halfHour - @Published var isAllDay: Bool = .init(false) - @Published var calendar: EKCalendar? - @Published var calendars: [EKCalendar] = .init() - @Published var sourses: [EKSource] = .init() - @Published var locationName: String? - @Published var location: CLLocationCoordinate2D? - @Published var repitRule: CalendarEventRecurrenceRules = .never - @Published var repitEndRule: CalendarEventEndRecurrenceRules = .never - @Published var alarms: [CalendarAlertsTimes] = .init() - @Published var members: [String] = .init() - @Published var span: EKSpan? - - let type: CreateEventType - - var isLocationSelected: Bool { - location != nil +#if !os(tvOS) + public enum CreateEventType: Equatable { + case new(Date?, calendar: EKCalendar?) + case update(EKEvent) } - public init(_ type: CreateEventType) { - self.type = type - setEvent(type: type) - } + @MainActor + public class CreateEventViewModel: ObservableObject { + @Injected(\.calendarService) private var calendarService: CalendarService + @Injected(\.locationService) private var locationService: LocationServiceProtocol + + @Published var state = CreateEventViewModelState.initial + @Published var sheet: CreateEventViewModel.Sheet? = nil + @Published var isFetchUpdatePositon: Bool = .init(false) + + @Published var title: String = .init() + @Published var note: String = .init() + @Published var url: String = .init() + @Published var dateStart: Date = .init() + @Published var dateEnd: Date = .init().halfHour + @Published var isAllDay: Bool = .init(false) + @Published var calendar: EKCalendar? + @Published var calendars: [EKCalendar] = .init() + @Published var sourses: [EKSource] = .init() + @Published var locationName: String? + @Published var location: CLLocationCoordinate2D? + @Published var repitRule: CalendarEventRecurrenceRules = .never + @Published var repitEndRule: CalendarEventEndRecurrenceRules = .never + @Published var alarms: [CalendarAlertsTimes] = .init() + @Published var members: [String] = .init() + @Published var span: EKSpan? + + let type: CreateEventType + + var isLocationSelected: Bool { + location != nil + } - func setEvent(type: CreateEventType) { - switch type { - case let .new(date, calendar): - if let date { - dateStart = date - dateEnd = date.halfHour - } - if let calendar { - self.calendar = calendar - } - case let .update(event): - title = event.title - note = event.notes ?? "" - url = event.url?.absoluteString ?? "" - dateStart = event.startDate - dateEnd = event.endDate - isAllDay = event.isAllDay - calendar = event.calendar - locationName = event.location - if let coordinate = event.structuredLocation?.geoLocation?.coordinate { - location = coordinate + public init(_ type: CreateEventType) { + self.type = type + setEvent(type: type) + } + + func setEvent(type: CreateEventType) { + switch type { + case let .new(date, calendar): + if let date { + dateStart = date + dateEnd = date.halfHour + } + if let calendar { + self.calendar = calendar + } + case let .update(event): + title = event.title + note = event.notes ?? "" + url = event.url?.absoluteString ?? "" + dateStart = event.startDate + dateEnd = event.endDate + isAllDay = event.isAllDay + calendar = event.calendar + locationName = event.location + if let coordinate = event.structuredLocation?.geoLocation?.coordinate { + location = coordinate + } + if let rule = event.recurrenceRules?.first { + repitRule = rule.calendarRecurrenceRule + repitEndRule = rule.recurrenceEnd?.calendarEndRecurrenceRule ?? .never + } + if let eventAlarms = event.alarms { + alarms = eventAlarms.compactMap { $0.calendarAlert } + } + if let attendees = event.attendees { + members = attendees.compactMap { $0.url.absoluteString } + } } - if let rule = event.recurrenceRules?.first { - repitRule = rule.calendarRecurrenceRule - repitEndRule = rule.recurrenceEnd?.calendarEndRecurrenceRule ?? .never + } + + func fetchData() async { + state = .loading + async let calendarsResult = await calendarService.fetchCalendars() + switch await calendarsResult { + case let .success(data): + log("✅ EKCalendars fetched") + calendars = data + case let .failure(error): + log("❌ EKCalendars not fetched (\(error.title))") + state = .error(error) } - if let eventAlarms = event.alarms { - alarms = eventAlarms.compactMap { $0.calendarAlert } + async let soursesResult = await calendarService.fetchSourses() + switch await soursesResult { + case let .success(data): + log("✅ EKSource fetched") + sourses = data + case let .failure(error): + log("❌ EKSource not fetched (\(error.title))") + state = .error(error) } - if let attendees = event.attendees { - members = attendees.compactMap { $0.url.absoluteString } + if case let .new(_, calendar) = type, calendar == nil { + let result = await calendarService.fetchDefaultCalendar() + switch result { + case let .success(calendar): + self.calendar = calendar + case let .failure(error): + log("❌ Default calendar not fetched (\(error.title))") + } } } - } - func fetchData() async { - state = .loading - async let calendarsResult = await calendarService.fetchCalendars() - switch await calendarsResult { - case let .success(data): - log("✅ EKCalendars fetched") - calendars = data - case let .failure(error): - log("❌ EKCalendars not fetched (\(error.title))") - state = .error(error) - } - async let soursesResult = await calendarService.fetchSourses() - switch await soursesResult { - case let .success(data): - log("✅ EKSource fetched") - sourses = data - case let .failure(error): - log("❌ EKSource not fetched (\(error.title))") - state = .error(error) - } - if case let .new(_, calendar) = type, calendar == nil { - let result = await calendarService.fetchDefaultCalendar() + func save() async -> Result { + var oldEvent: EKEvent? + + if case let .update(event) = type { + oldEvent = event + } + + let result = await calendarService.createEvent( + event: oldEvent, + title: title, + notes: note, + startDate: dateStart, + endDate: dateEnd, + calendar: calendar, + isAllDay: isAllDay, + location: locationName, + structuredLocation: getEKStructuredLocation(), + alarms: alarms, + url: URL(string: url), + memberEmails: members, + recurrenceRules: repitRule, + recurrenceEndRules: repitEndRule, + span: span ?? .thisEvent + ) switch result { - case let .success(calendar): - self.calendar = calendar + case let .success(data): + log("✅ EKEvent saved") + return .success(data) case let .failure(error): - log("❌ Default calendar not fetched (\(error.title))") + log("❌ EKEvent not saved (\(error.title))") + return .failure(error) } } - } - func save() async -> Result { - var oldEvent: EKEvent? - - if case let .update(event) = type { - oldEvent = event - } - - let result = await calendarService.createEvent( - event: oldEvent, - title: title, - notes: note, - startDate: dateStart, - endDate: dateEnd, - calendar: calendar, - isAllDay: isAllDay, - location: locationName, - structuredLocation: getEKStructuredLocation(), - alarms: alarms, - url: URL(string: url), - memberEmails: members, - recurrenceRules: repitRule, - recurrenceEndRules: repitEndRule, - span: span ?? .thisEvent - ) - switch result { - case let .success(data): - log("✅ EKEvent saved") - return .success(data) - case let .failure(error): - log("❌ EKEvent not saved (\(error.title))") - return .failure(error) + func getEKStructuredLocation() -> EKStructuredLocation? { + if let location { + let structuredLocation: EKStructuredLocation? + let location = CLLocation(latitude: location.latitude, longitude: location.longitude) + structuredLocation = EKStructuredLocation(title: locationName ?? "") // same title with ekEvent.location + structuredLocation?.geoLocation = location + return structuredLocation + } else { + return nil + } } - } - func getEKStructuredLocation() -> EKStructuredLocation? { - if let location { - let structuredLocation: EKStructuredLocation? - let location = CLLocation(latitude: location.latitude, longitude: location.longitude) - structuredLocation = EKStructuredLocation(title: locationName ?? "") // same title with ekEvent.location - structuredLocation?.geoLocation = location - return structuredLocation - } else { - return nil + func updateCurrentPosition() async throws { + isFetchUpdatePositon = true + let currentPosition = try await locationService.currentLocation() + guard let newLocation = currentPosition else { return } + location = newLocation + log("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") + isFetchUpdatePositon = false } } - func updateCurrentPosition() async throws { - isFetchUpdatePositon = true - let currentPosition = try await locationService.currentLocation() - guard let newLocation = currentPosition else { return } - location = newLocation - log("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") - isFetchUpdatePositon = false + public enum CreateEventViewModelState { + case initial + case loading + case result([EKEvent]) + case error(AppError) } -} - -public enum CreateEventViewModelState { - case initial - case loading - case result([EKEvent]) - case error(AppError) -} +#endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift index 5136669..e7096ce 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift @@ -3,112 +3,116 @@ // CreateEventViewSheet.swift // -import EventKit +#if canImport(EventKit) + import EventKit +#endif import OversizeComponents import OversizeContactsKit import OversizeLocationKit import OversizeUI import SwiftUI -public extension CreateEventViewModel { - func present(_ sheet: CreateEventViewModel.Sheet) { - self.sheet = sheet - } +#if !os(tvOS) + public extension CreateEventViewModel { + func present(_ sheet: CreateEventViewModel.Sheet) { + self.sheet = sheet + } - func close() { - sheet = nil + func close() { + sheet = nil + } } -} - -public extension CreateEventViewModel { - enum Sheet { - case startTime - case endTime - case attachment - case calendar - case location - case `repeat` - case alarm - case invites - case span - } // attachment, alert, invitees -} -extension CreateEventViewModel.Sheet: Identifiable { - public var id: String { - switch self { - case .startTime: - return "startTime" - case .endTime: - return "endTime" - case .attachment: - return "attachment" - case .calendar: - return "calendar" - case .location: - return "location" - case .repeat: - return "repeat" - case .alarm: - return "alarm" - case .invites: - return "alarm" - case .span: - return "span" - } + public extension CreateEventViewModel { + enum Sheet { + case startTime + case endTime + case attachment + case calendar + case location + case `repeat` + case alarm + case invites + case span + } // attachment, alert, invitees } -} -public extension CreateEventView { - func resolveSheet(sheet: CreateEventViewModel.Sheet) -> some View { - Group { - switch sheet { + extension CreateEventViewModel.Sheet: Identifiable { + public var id: String { + switch self { case .startTime: - #if os(iOS) - DatePickerSheet(title: "Starts time", selection: $viewModel.dateStart) - .onDisappear { - if viewModel.dateStart > viewModel.dateEnd { - viewModel.dateEnd = viewModel.dateStart.halfHour - } - } - .presentationDetents([.height(500)]) - #else - EmptyView() - #endif + return "startTime" case .endTime: - #if os(iOS) - DatePickerSheet(title: "Ends time", selection: $viewModel.dateEnd) - .datePickerMinimumDate(viewModel.dateStart.minute) - .presentationDetents([.height(500)]) - #else - EmptyView() - #endif + return "endTime" case .attachment: - AttachmentView() - .presentationDetents([.height(270)]) + return "attachment" case .calendar: - CalendarPicker(selection: $viewModel.calendar, calendars: viewModel.calendars, sourses: viewModel.sourses) - .presentationDetents([.large]) + return "calendar" case .location: - AddressPicker(address: $viewModel.locationName, location: $viewModel.location) - .interactiveDismissDisabled(true) - .presentationDetents([.large]) + return "location" case .repeat: - RepeatPicker(selectionRule: $viewModel.repitRule, selectionEndRule: $viewModel.repitEndRule) - + return "repeat" case .alarm: - AlarmPicker(selection: $viewModel.alarms) - .presentationDetents([.height(630), .large]) - .presentationDragIndicator(.hidden) + return "alarm" case .invites: - EmailPickerView(selection: $viewModel.members) - .presentationDetents([.large]) - .interactiveDismissDisabled(true) + return "alarm" case .span: - SaveForView(selection: $viewModel.span) - .presentationDetents([.height(270)]) + return "span" + } + } + } + + public extension CreateEventView { + func resolveSheet(sheet: CreateEventViewModel.Sheet) -> some View { + Group { + switch sheet { + case .startTime: + #if os(iOS) + DatePickerSheet(title: "Starts time", selection: $viewModel.dateStart) + .onDisappear { + if viewModel.dateStart > viewModel.dateEnd { + viewModel.dateEnd = viewModel.dateStart.halfHour + } + } + .presentationDetents([.height(500)]) + #else + EmptyView() + #endif + case .endTime: + #if os(iOS) + DatePickerSheet(title: "Ends time", selection: $viewModel.dateEnd) + .datePickerMinimumDate(viewModel.dateStart.minute) + .presentationDetents([.height(500)]) + #else + EmptyView() + #endif + case .attachment: + AttachmentView() + .presentationDetents([.height(270)]) + case .calendar: + CalendarPicker(selection: $viewModel.calendar, calendars: viewModel.calendars, sourses: viewModel.sourses) + .presentationDetents([.large]) + case .location: + AddressPicker(address: $viewModel.locationName, location: $viewModel.location) + .interactiveDismissDisabled(true) + .presentationDetents([.large]) + case .repeat: + RepeatPicker(selectionRule: $viewModel.repitRule, selectionEndRule: $viewModel.repitEndRule) + + case .alarm: + AlarmPicker(selection: $viewModel.alarms) + .presentationDetents([.height(630), .large]) + .presentationDragIndicator(.hidden) + case .invites: + EmailPickerView(selection: $viewModel.members) + .presentationDetents([.large]) + .interactiveDismissDisabled(true) + case .span: + SaveForView(selection: $viewModel.span) + .presentationDetents([.height(270)]) + } } + .systemServices() } - .systemServices() } -} +#endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift index b8ee9d7..ba4f08f 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift @@ -3,46 +3,50 @@ // SaveForView.swift // -import EventKit +#if canImport(EventKit) + import EventKit +#endif import OversizeUI import SwiftUI -public struct SaveForView: View { - @Environment(\.dismiss) var dismiss - @Binding private var span: EKSpan? +#if !os(tvOS) + public struct SaveForView: View { + @Environment(\.dismiss) var dismiss + @Binding private var span: EKSpan? - public init(selection: Binding) { - _span = selection - } + public init(selection: Binding) { + _span = selection + } - public var body: some View { - PageView("This is repeating event") { - SectionView { - VStack(spacing: .zero) { - Row("Save for this event only") { - span = .thisEvent - dismiss() - } leading: { - Image.Date.calendar - .renderingMode(.template) - .foregroundColor(.onSurfaceHighEmphasis) - } + public var body: some View { + PageView("This is repeating event") { + SectionView { + VStack(spacing: .zero) { + Row("Save for this event only") { + span = .thisEvent + dismiss() + } leading: { + Image.Date.calendar + .renderingMode(.template) + .foregroundColor(.onSurfaceHighEmphasis) + } - Row("Save for feature events") { - span = .futureEvents - dismiss() - } leading: { - Image.Base.calendar - .renderingMode(.template) - .foregroundColor(.onSurfaceHighEmphasis) + Row("Save for feature events") { + span = .futureEvents + dismiss() + } leading: { + Image.Base.calendar + .renderingMode(.template) + .foregroundColor(.onSurfaceHighEmphasis) + } } } + .surfaceContentRowMargins() + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) } - .surfaceContentRowMargins() - } - .backgroundSecondary() - .leadingBar { - BarButton(.close) } } -} +#endif diff --git a/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift b/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift index 68fbfb8..f31672c 100644 --- a/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift @@ -3,51 +3,55 @@ // AlertPicker.swift // -import EventKit +#if canImport(EventKit) + import EventKit +#endif import OversizeCalendarService import OversizeUI import SwiftUI -public struct AlarmPicker: View { - @Environment(\.dismiss) var dismiss - @Binding private var selection: [CalendarAlertsTimes] - @State private var selectedAlerts: [CalendarAlertsTimes] = [] +#if !os(tvOS) + public struct AlarmPicker: View { + @Environment(\.dismiss) var dismiss + @Binding private var selection: [CalendarAlertsTimes] + @State private var selectedAlerts: [CalendarAlertsTimes] = [] - public init(selection: Binding<[CalendarAlertsTimes]>) { - _selection = selection - _selectedAlerts = State(wrappedValue: selection.wrappedValue) - } + public init(selection: Binding<[CalendarAlertsTimes]>) { + _selection = selection + _selectedAlerts = State(wrappedValue: selection.wrappedValue) + } - public var body: some View { - PageView("Alarm") { - SectionView { - VStack(spacing: .zero) { - ForEach(CalendarAlertsTimes.allCases) { alert in - Checkbox(alert.title, isOn: .constant((selectedAlerts.first { $0.id == alert.id } != nil) ? true : false)) { - if !selectedAlerts.isEmpty, let _ = selectedAlerts.first(where: { $0.id == alert.id }) { - selectedAlerts.remove(alert) - } else { - selectedAlerts.append(alert) + public var body: some View { + PageView("Alarm") { + SectionView { + VStack(spacing: .zero) { + ForEach(CalendarAlertsTimes.allCases) { alert in + Checkbox(alert.title, isOn: .constant((selectedAlerts.first { $0.id == alert.id } != nil) ? true : false)) { + if !selectedAlerts.isEmpty, let _ = selectedAlerts.first(where: { $0.id == alert.id }) { + selectedAlerts.remove(alert) + } else { + selectedAlerts.append(alert) + } } } } } + .surfaceContentRowMargins() + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + selection = selectedAlerts + dismiss() + })) + .disabled(selectedAlerts.isEmpty) } - .surfaceContentRowMargins() - } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - selection = selectedAlerts - dismiss() - })) - .disabled(selectedAlerts.isEmpty) } } -} +#endif // struct AlertPicker_Previews: PreviewProvider { // static var previews: some View { diff --git a/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift b/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift index 173685e..8244d84 100644 --- a/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift @@ -3,66 +3,70 @@ // CalendarPicker.swift // -import EventKit +#if canImport(EventKit) + import EventKit +#endif import OversizeUI import SwiftUI -public struct CalendarPicker: View { - @Environment(\.dismiss) var dismiss +#if !os(tvOS) + public struct CalendarPicker: View { + @Environment(\.dismiss) var dismiss - @Binding private var selection: EKCalendar? + @Binding private var selection: EKCalendar? - private let calendars: [EKCalendar] + private let calendars: [EKCalendar] - private let sourses: [EKSource] + private let sourses: [EKSource] - private let closable: Bool + private let closable: Bool - public init(selection: Binding, calendars: [EKCalendar], sourses: [EKSource], closable: Bool = true) { - _selection = selection - self.calendars = calendars - self.sourses = sourses - self.closable = closable - } + public init(selection: Binding, calendars: [EKCalendar], sourses: [EKSource], closable: Bool = true) { + _selection = selection + self.calendars = calendars + self.sourses = sourses + self.closable = closable + } - public var body: some View { - PageView("Calendar") { - ForEach(sourses, id: \.sourceIdentifier) { source in - let filtredCalendar: [EKCalendar] = calendars.filter { $0.source.sourceIdentifier == source.sourceIdentifier && $0.allowsContentModifications } - if !filtredCalendar.isEmpty { - calendarSection(source: source, calendars: filtredCalendar) + public var body: some View { + PageView("Calendar") { + ForEach(sourses, id: \.sourceIdentifier) { source in + let filtredCalendar: [EKCalendar] = calendars.filter { $0.source.sourceIdentifier == source.sourceIdentifier && $0.allowsContentModifications } + if !filtredCalendar.isEmpty { + calendarSection(source: source, calendars: filtredCalendar) + } } } + .backgroundSecondary() + .leadingBar { + BarButton(closable ? .close : .back) + } } - .backgroundSecondary() - .leadingBar { - BarButton(closable ? .close : .back) - } - } - func calendarSection(source: EKSource, calendars: [EKCalendar]) -> some View { - SectionView(source.title) { - VStack(spacing: .zero) { - ForEach(calendars, id: \.calendarIdentifier) { calendar in - Radio(isOn: selection?.calendarIdentifier == calendar.calendarIdentifier) { - selection = calendar - dismiss() - } label: { - Row(calendar.title) { - Circle() - .fill(Color(calendar.cgColor)) - .frame(width: 16, height: 16) + func calendarSection(source: EKSource, calendars: [EKCalendar]) -> some View { + SectionView(source.title) { + VStack(spacing: .zero) { + ForEach(calendars, id: \.calendarIdentifier) { calendar in + Radio(isOn: selection?.calendarIdentifier == calendar.calendarIdentifier) { + selection = calendar + dismiss() + } label: { + Row(calendar.title) { + Circle() + .fill(Color(calendar.cgColor)) + .frame(width: 16, height: 16) + } } } } } + .surfaceContentRowMargins() } - .surfaceContentRowMargins() } -} -struct CalendarPicker_Previews: PreviewProvider { - static var previews: some View { - CalendarPicker(selection: .constant(nil), calendars: [], sourses: []) + struct CalendarPicker_Previews: PreviewProvider { + static var previews: some View { + CalendarPicker(selection: .constant(nil), calendars: [], sourses: []) + } } -} +#endif diff --git a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift index ec7b5d2..71fd9d4 100644 --- a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift @@ -3,132 +3,130 @@ // RepeatPicker.swift // -import EventKit +#if canImport(EventKit) + import EventKit +#endif import OversizeCalendarService import OversizeUI import SwiftUI -public struct RepeatPicker: View { - @Environment(\.dismiss) private var dismiss +#if !os(tvOS) + public struct RepeatPicker: View { + @Environment(\.dismiss) private var dismiss - @Binding private var selectionRule: CalendarEventRecurrenceRules - @Binding private var selectionEndRule: CalendarEventEndRecurrenceRules + @Binding private var selectionRule: CalendarEventRecurrenceRules + @Binding private var selectionEndRule: CalendarEventEndRecurrenceRules - @State private var rule: CalendarEventRecurrenceRules - @State private var endRule: CalendarEventEndRecurrenceRules + @State private var rule: CalendarEventRecurrenceRules + @State private var endRule: CalendarEventEndRecurrenceRules - @State private var endDate: Date = .init() - @State private var repeatCount: String = "1" - @FocusState private var isFocusedRepitCount: Bool + @State private var endDate: Date = .init() + @State private var repeatCount: String = "1" + @FocusState private var isFocusedRepitCount: Bool - public init(selectionRule: Binding, selectionEndRule: Binding) { - _selectionRule = selectionRule - _selectionEndRule = selectionEndRule - _rule = State(wrappedValue: selectionRule.wrappedValue) - _endRule = State(wrappedValue: selectionEndRule.wrappedValue) - } + public init(selectionRule: Binding, selectionEndRule: Binding) { + _selectionRule = selectionRule + _selectionEndRule = selectionEndRule + _rule = State(wrappedValue: selectionRule.wrappedValue) + _endRule = State(wrappedValue: selectionEndRule.wrappedValue) + } - public var body: some View { - ScrollViewReader { scrollView in - PageView("Repeat") { - SectionView { - VStack(spacing: .zero) { - ForEach(CalendarEventRecurrenceRules.allCases) { rule in - Radio(isOn: self.rule.id == rule.id) { - withAnimation { - self.rule = rule + public var body: some View { + ScrollViewReader { scrollView in + PageView("Repeat") { + SectionView { + VStack(spacing: .zero) { + ForEach(CalendarEventRecurrenceRules.allCases) { rule in + Radio(isOn: self.rule.id == rule.id) { + withAnimation { + self.rule = rule + } + } label: { + Row(rule.title) } - } label: { - Row(rule.title) } } } - } - if rule != .never { - SectionView("End Repeat") { - VStack(spacing: .zero) { - ForEach(CalendarEventEndRecurrenceRules.allCases) { rule in - VStack(spacing: .xxSmall) { - Radio(isOn: endRule.id == rule.id) { - endRule = rule - if case .occurrenceCount = endRule { - isFocusedRepitCount = true - scrollView.scrollTo(rule.id) - } + if rule != .never { + SectionView("End Repeat") { + VStack(spacing: .zero) { + ForEach(CalendarEventEndRecurrenceRules.allCases) { rule in + VStack(spacing: .xxSmall) { + Radio(isOn: endRule.id == rule.id) { + endRule = rule + if case .occurrenceCount = endRule { + isFocusedRepitCount = true + scrollView.scrollTo(rule.id) + } - if case .endDate = endRule { - isFocusedRepitCount = true - scrollView.scrollTo(rule.id) + if case .endDate = endRule { + isFocusedRepitCount = true + scrollView.scrollTo(rule.id) + } + } label: { + Row(rule.title) } - } label: { - Row(rule.title) - } - if endRule.id == rule.id { - repartPicker(rules: rule) - .padding(.horizontal, .medium) - .padding(.bottom, .small) + if endRule.id == rule.id { + repartPicker(rules: rule) + .padding(.horizontal, .medium) + .padding(.bottom, .small) + } } } } } + .transition(.move(edge: .top)) } - .transition(.move(edge: .top)) } + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + selectionRule = rule + selectionEndRule = endRule + dismiss() + })) + .disabled(rule == .never) + } + .surfaceContentRowMargins() } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - selectionRule = rule - selectionEndRule = endRule - dismiss() - })) - .disabled(rule == .never) - } - .surfaceContentRowMargins() + .presentationDetents(rule == .never ? [.height(630), .large] : [.large]) + .presentationDragIndicator(.hidden) } - .presentationDetents(rule == .never ? [.height(630), .large] : [.large]) - .presentationDragIndicator(.hidden) - } - @ViewBuilder - func repartPicker(rules: CalendarEventEndRecurrenceRules) -> some View { - switch rules { - case .never: - EmptyView() - case .occurrenceCount: - TextField("Number of repetitions", text: Binding(get: { - repeatCount - }, set: { newValue in - repeatCount = newValue - endRule = .occurrenceCount(Int(newValue) ?? 1) - })) - #if os(iOS) - .keyboardType(.numberPad) - #endif - .textFieldStyle(DefaultPlaceholderTextFieldStyle()) - .focused($isFocusedRepitCount) - case .endDate: - DatePicker("Date", selection: Binding(get: { - endDate - }, set: { newDate in - endDate = newDate - endRule = .endDate(newDate) - })) - #if os(iOS) - .datePickerStyle(.wheel) - #endif - .labelsHidden() + @ViewBuilder + func repartPicker(rules: CalendarEventEndRecurrenceRules) -> some View { + switch rules { + case .never: + EmptyView() + case .occurrenceCount: + TextField("Number of repetitions", text: Binding(get: { + repeatCount + }, set: { newValue in + repeatCount = newValue + endRule = .occurrenceCount(Int(newValue) ?? 1) + })) + #if os(iOS) + .keyboardType(.numberPad) + #endif + .textFieldStyle(DefaultPlaceholderTextFieldStyle()) + .focused($isFocusedRepitCount) + case .endDate: + DatePicker("Date", selection: Binding(get: { + endDate + }, set: { newDate in + endDate = newDate + endRule = .endDate(newDate) + })) + #if os(iOS) + .datePickerStyle(.wheel) + #endif + .labelsHidden() + } } } -} - -// struct RepeatPicker_Previews: PreviewProvider { -// static var previews: some View { -// RepeatPicker() -// } -// } +#endif diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift index 3125879..6af1afd 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift @@ -3,8 +3,10 @@ // AttendeesView.swift // -import Contacts -import EventKit +#if canImport(Contacts) && canImport(EventKit) + import Contacts + import EventKit +#endif import OversizeCalendarService import OversizeContactsService import OversizeCore @@ -13,81 +15,83 @@ import OversizeLocalizable import OversizeUI import SwiftUI -public struct AttendeesView: View { - @StateObject var viewModel: AttendeesViewModel - @Environment(\.dismiss) var dismiss +#if !os(tvOS) + public struct AttendeesView: View { + @StateObject var viewModel: AttendeesViewModel + @Environment(\.dismiss) var dismiss - public init(event: EKEvent) { - _viewModel = StateObject(wrappedValue: AttendeesViewModel(event: event)) - } + public init(event: EKEvent) { + _viewModel = StateObject(wrappedValue: AttendeesViewModel(event: event)) + } - public var body: some View { - PageView("Invitees") { - Group { - switch viewModel.state { - case .initial: - placeholder() - .onAppear { - Task { - await viewModel.fetchData() + public var body: some View { + PageView("Invitees") { + Group { + switch viewModel.state { + case .initial: + placeholder() + .onAppear { + Task { + await viewModel.fetchData() + } } - } - case .loading: - placeholder() - case let .result(data): - content(data) - case let .error(error): - ErrorView(error) + case .loading: + placeholder() + case let .result(data): + content(data) + case let .error(error): + ErrorView(error) + } } } + .leadingBar { + BarButton(.close) + } } - .leadingBar { - BarButton(.close) - } - } - @ViewBuilder - private func content(_: [CNContact]) -> some View { - if let attendees = viewModel.event.attendees { - VStack(spacing: .zero) { - if let organizer = viewModel.event.organizer { - Row(organizer.name ?? organizer.url.absoluteString, subtitle: "Organizer") { - userAvatarView(participant: organizer) + @ViewBuilder + private func content(_: [CNContact]) -> some View { + if let attendees = viewModel.event.attendees { + VStack(spacing: .zero) { + if let organizer = viewModel.event.organizer { + Row(organizer.name ?? organizer.url.absoluteString, subtitle: "Organizer") { + userAvatarView(participant: organizer) + } } - } - ForEach(attendees, id: \.self) { attender in - Row(attender.name ?? attender.url.absoluteString, subtitle: attender.participantRole.title) { - userAvatarView(participant: attender) + ForEach(attendees, id: \.self) { attender in + Row(attender.name ?? attender.url.absoluteString, subtitle: attender.participantRole.title) { + userAvatarView(participant: attender) + } } } } } - } - func userAvatarView(participant: EKParticipant) -> some View { - ZStack(alignment: .bottomTrailing) { - Avatar(firstName: participant.name ?? participant.url.absoluteString) - .controlSize(.regular) + func userAvatarView(participant: EKParticipant) -> some View { + ZStack(alignment: .bottomTrailing) { + Avatar(firstName: participant.name ?? participant.url.absoluteString) + .controlSize(.regular) - ZStack { - Circle() - .fill(participant.color) - .frame(width: 16, height: 16) - .background { - Circle() - .stroke(lineWidth: 4) - .fillBackgroundPrimary() - } - Image(systemName: participant.symbolName) - .onPrimaryHighEmphasisForegroundColor() - .font(.system(size: 9, weight: .black)) + ZStack { + Circle() + .fill(participant.color) + .frame(width: 16, height: 16) + .background { + Circle() + .stroke(lineWidth: 4) + .fillBackgroundPrimary() + } + Image(systemName: participant.symbolName) + .onPrimaryHighEmphasisForegroundColor() + .font(.system(size: 9, weight: .black)) + } } } - } - @ViewBuilder - private func placeholder() -> some View { - LoaderOverlayView() + @ViewBuilder + private func placeholder() -> some View { + LoaderOverlayView() + } } -} +#endif diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift index 3b06806..0dfa02b 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift @@ -3,61 +3,65 @@ // AttendeesViewModel.swift // -import Contacts -import EventKit +#if canImport(Contacts) && canImport(EventKit) + import Contacts + import EventKit +#endif import Factory import OversizeContactsService import OversizeCore import OversizeModels import SwiftUI -@MainActor -class AttendeesViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = AttendeesViewModelState.initial - @Published var searchText: String = .init() +#if !os(tvOS) + @MainActor + class AttendeesViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = AttendeesViewModelState.initial + @Published var searchText: String = .init() - let event: EKEvent + let event: EKEvent - init(event: EKEvent) { - self.event = event - } + init(event: EKEvent) { + self.event = event + } - func fetchData() async { - state = .loading - let _ = await contactsService.requestAccess() - do { - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) + func fetchData() async { + state = .loading + let _ = await contactsService.requestAccess() + do { + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) + } + } catch { + state = .error(.custom(title: "Not contacts")) } - } catch { - state = .error(.custom(title: "Not contacts")) } - } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact + } } } + return nil } - return nil } -} -enum AttendeesViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) -} + enum AttendeesViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) + } +#endif diff --git a/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift b/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift index c1d8c82..11d868c 100644 --- a/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift +++ b/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift @@ -3,7 +3,9 @@ // ContactsListsView.swift // -import Contacts +#if canImport(Contacts) + import Contacts +#endif import OversizeComponents import OversizeCore import OversizeKit @@ -11,83 +13,85 @@ import OversizeLocalizable import OversizeUI import SwiftUI -public struct ContactsListsView: View { - @StateObject var viewModel: ContactsListsViewModel - @Environment(\.dismiss) var dismiss - @Binding private var emails: [String] +#if !os(tvOS) + public struct ContactsListsView: View { + @StateObject var viewModel: ContactsListsViewModel + @Environment(\.dismiss) var dismiss + @Binding private var emails: [String] - public init(emails: Binding<[String]>) { - _viewModel = StateObject(wrappedValue: ContactsListsViewModel()) - _emails = emails - } + public init(emails: Binding<[String]>) { + _viewModel = StateObject(wrappedValue: ContactsListsViewModel()) + _emails = emails + } - public var body: some View { - PageView("") { - Group { - switch viewModel.state { - case .initial: - placeholder() - case .loading: - placeholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) + public var body: some View { + PageView("") { + Group { + switch viewModel.state { + case .initial: + placeholder() + case .loading: + placeholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) + } } } + .leadingBar { + BarButton(.close) + } + .task { + await viewModel.fetchData() + } } - .leadingBar { - BarButton(.close) - } - .task { - await viewModel.fetchData() - } - } - @ViewBuilder - private func content(data: [CNContact]) -> some View { - ForEach(emails, id: \.self) { email in - if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { - let emails = contact.emailAddresses - if !emails.isEmpty { - ForEach(emails, id: \.identifier) { email in - emailRow(email: email, contact: contact) + @ViewBuilder + private func content(data: [CNContact]) -> some View { + ForEach(emails, id: \.self) { email in + if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { + let emails = contact.emailAddresses + if !emails.isEmpty { + ForEach(emails, id: \.identifier) { email in + emailRow(email: email, contact: contact) + } + } + } else { + Row(email) { + Avatar(firstName: email) } - } - } else { - Row(email) { - Avatar(firstName: email) } } } - } - @ViewBuilder - private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { - let email = email.value as String - #if os(iOS) - if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) + @ViewBuilder + private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { + let email = email.value as String + #if os(iOS) + if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) + } + } else { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) + } } - } else { + #else Row(contact.givenName + " " + contact.familyName, subtitle: email) { Avatar(firstName: contact.givenName, lastName: contact.familyName) } - } - #else - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) - } - #endif - } + #endif + } - @ViewBuilder - private func placeholder() -> some View { - ForEach(emails, id: \.self) { email in - Row(email) { - Avatar(firstName: email) + @ViewBuilder + private func placeholder() -> some View { + ForEach(emails, id: \.self) { email in + Row(email) { + Avatar(firstName: email) + } } } } -} +#endif diff --git a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift index bed0d93..8e7f414 100644 --- a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift @@ -3,56 +3,60 @@ // ContactsListsViewModel.swift // -import Contacts +#if canImport(Contacts) + import Contacts +#endif import Factory import OversizeContactsService import OversizeCore import OversizeModels import SwiftUI -@MainActor -public class ContactsListsViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = ContactsPickerViewModelState.initial - @Published var searchText: String = .init() +#if !os(tvOS) + @MainActor + public class ContactsListsViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = ContactsPickerViewModelState.initial + @Published var searchText: String = .init() - public init() {} + public init() {} - func fetchData() async { - state = .loading - let _ = await contactsService.requestAccess() - do { - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) + func fetchData() async { + state = .loading + let _ = await contactsService.requestAccess() + do { + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) + } + } catch { + state = .error(.custom(title: "Not contacts")) } - } catch { - state = .error(.custom(title: "Not contacts")) } - } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact + } } } + return nil } - return nil } -} -enum ContactsListsViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) -} + enum ContactsListsViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) + } +#endif diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift index 3301f8b..274212f 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift @@ -3,168 +3,182 @@ // EmailPickerView.swift // -import Contacts +#if canImport(Contacts) + import Contacts +#endif import OversizeKit import OversizeLocalizable import OversizeUI import SwiftUI -public struct EmailPickerView: View { - @Environment(\.dismiss) private var dismiss - @StateObject private var viewModel: EmailPickerViewModel +#if !os(tvOS) + public struct EmailPickerView: View { + @Environment(\.dismiss) private var dismiss + @StateObject private var viewModel: EmailPickerViewModel - @Binding private var selection: [String] - @State private var selectedEmails: [String] = .init() + @Binding private var selection: [String] + @State private var selectedEmails: [String] = .init() - @FocusState private var isFocusSearth + @FocusState private var isFocusSearth - public init(selection: Binding<[String]>) { - _viewModel = StateObject(wrappedValue: EmailPickerViewModel()) - _selection = selection - } + public init(selection: Binding<[String]>) { + _viewModel = StateObject(wrappedValue: EmailPickerViewModel()) + _selection = selection + } - public var body: some View { - PageView("Add Invitees") { - Group { - switch viewModel.state { - case .initial, .loading: - placeholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) + public var body: some View { + PageView("Add Invitees") { + Group { + switch viewModel.state { + case .initial, .loading: + placeholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) + } } } + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + onDoneAction() + })) + .disabled(selectedEmails.isEmpty && !viewModel.searchText.isEmail) + } + .topToolbar { + TextField("Email or name", text: $viewModel.searchText) + .textFieldStyle(DefaultPlaceholderTextFieldStyle()) + .focused($isFocusSearth) + #if os(iOS) + .keyboardType(.emailAddress) + #endif + } + .onAppear { + isFocusSearth = true + } + .task { + await viewModel.fetchData() + } } - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - onDoneAction() - })) - .disabled(selectedEmails.isEmpty && !viewModel.searchText.isEmail) - } - .topToolbar { - TextField("Email or name", text: $viewModel.searchText) - .textFieldStyle(DefaultPlaceholderTextFieldStyle()) - .focused($isFocusSearth) - #if os(iOS) - .keyboardType(.emailAddress) - #endif - } - .onAppear { - isFocusSearth = true - } - .task { - await viewModel.fetchData() - } - } - @ViewBuilder - private func content(data: [CNContact]) -> some View { - LazyVStack(spacing: .zero) { - newEmailView() + @ViewBuilder + private func content(data: [CNContact]) -> some View { + LazyVStack(spacing: .zero) { + newEmailView() - newSelectedContactsRows(data: data) + newSelectedContactsRows(data: data) - contactsRows(data: data) + contactsRows(data: data) + } } - } - @ViewBuilder - private func newEmailView() -> some View { - if !viewModel.searchText.isEmpty { - Checkbox( - isOn: .constant(viewModel.searchText.isEmail), - label: { - Row(viewModel.searchText, subtitle: "New member") { - Avatar(firstName: viewModel.searchText) + @ViewBuilder + private func newEmailView() -> some View { + if !viewModel.searchText.isEmpty { + Checkbox( + isOn: .constant(viewModel.searchText.isEmail), + label: { + Row(viewModel.searchText, subtitle: "New member") { + Avatar(firstName: viewModel.searchText) + } } - } - ) - .padding(.bottom, .small) + ) + .padding(.bottom, .small) + } } - } - @ViewBuilder - private func newSelectedContactsRows(data: [CNContact]) -> some View { - if !viewModel.lastSelectedEmails.isEmpty { - HStack(spacing: .zero) { - Text("Latest") - Spacer() + @ViewBuilder + private func newSelectedContactsRows(data: [CNContact]) -> some View { + if !viewModel.lastSelectedEmails.isEmpty { + HStack(spacing: .zero) { + Text("Latest") + Spacer() + } + .title3() + .onSurfaceMediumEmphasisForegroundColor() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) + + ForEach(viewModel.lastSelectedEmails, id: \.self) { email in + if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { + let emails = contact.emailAddresses + if !emails.isEmpty { + ForEach(emails, id: \.identifier) { email in + emailRow(email: email, contact: contact) + } + } + } else { + let isSelected = selectedEmails.contains(email) + Checkbox( + isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), + label: { + Row(email) { + Avatar(firstName: email) + } + } + ) + } + } } - .title3() - .onSurfaceMediumEmphasisForegroundColor() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) + } + + @ViewBuilder + private func contactsRows(data: [CNContact]) -> some View { + if !data.isEmpty { + HStack(spacing: .zero) { + Text("Contacts") + Spacer() + } + .title3() + .onSurfaceMediumEmphasisForegroundColor() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) + .padding(.top, viewModel.lastSelectedEmails.isEmpty ? .zero : .small) - ForEach(viewModel.lastSelectedEmails, id: \.self) { email in - if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { + ForEach(data, id: \.identifier) { contact in let emails = contact.emailAddresses if !emails.isEmpty { ForEach(emails, id: \.identifier) { email in emailRow(email: email, contact: contact) } } - } else { - let isSelected = selectedEmails.contains(email) - Checkbox( - isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), - label: { - Row(email) { - Avatar(firstName: email) - } - } - ) } } } - } - @ViewBuilder - private func contactsRows(data: [CNContact]) -> some View { - if !data.isEmpty { - HStack(spacing: .zero) { - Text("Contacts") - Spacer() - } - .title3() - .onSurfaceMediumEmphasisForegroundColor() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) - .padding(.top, viewModel.lastSelectedEmails.isEmpty ? .zero : .small) - - ForEach(data, id: \.identifier) { contact in - let emails = contact.emailAddresses - if !emails.isEmpty { - ForEach(emails, id: \.identifier) { email in - emailRow(email: email, contact: contact) - } - } - } - } - } + @ViewBuilder + private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { + let email = email.value as String + let isSelected = selectedEmails.contains(email) + #if os(iOS) + if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { + Checkbox(isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), label: { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) + } - @ViewBuilder - private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { - let email = email.value as String - let isSelected = selectedEmails.contains(email) - #if os(iOS) - if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { - Checkbox(isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), label: { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) - } + }) + } else { + Checkbox(isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), label: { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) + } - }) - } else { + }) + } + #else Checkbox(isOn: Binding( get: { isSelected }, set: { _ in onContactClick(email: email) } @@ -174,59 +188,48 @@ public struct EmailPickerView: View { } }) - } - #else - Checkbox(isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), label: { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) - } + #endif + } - }) - #endif - } + private func onDoneAction() { + if viewModel.searchText.isEmail { + if !selection.contains(viewModel.searchText) { + selection.append(viewModel.searchText) + } - private func onDoneAction() { - if viewModel.searchText.isEmail { - if !selection.contains(viewModel.searchText) { - selection.append(viewModel.searchText) + if !viewModel.lastSelectedEmails.contains(viewModel.searchText) { + viewModel.lastSelectedEmails.append(viewModel.searchText) + } } - if !viewModel.lastSelectedEmails.contains(viewModel.searchText) { - viewModel.lastSelectedEmails.append(viewModel.searchText) - } - } + if !selectedEmails.isEmpty { + for email in selectedEmails where !selection.contains(email) { + selection.append(email) + } - if !selectedEmails.isEmpty { - for email in selectedEmails where !selection.contains(email) { - selection.append(email) + for email in selectedEmails where !viewModel.lastSelectedEmails.contains(email) { + viewModel.lastSelectedEmails.append(email) + } } - for email in selectedEmails where !viewModel.lastSelectedEmails.contains(email) { - viewModel.lastSelectedEmails.append(email) - } + dismiss() } - dismiss() - } - - private func onContactClick(email: String) { - let isSelected = selectedEmails.contains(email) - if isSelected { - selectedEmails.remove(email) - } else { - selectedEmails.append(email) + private func onContactClick(email: String) { + let isSelected = selectedEmails.contains(email) + if isSelected { + selectedEmails.remove(email) + } else { + selectedEmails.append(email) + } } - } - @ViewBuilder - private func placeholder() -> some View { - LoaderOverlayView() + @ViewBuilder + private func placeholder() -> some View { + LoaderOverlayView() + } } -} - +#endif // struct ContactsPickerView_Previews: PreviewProvider { // static var previews: some View { // EmailPickerView() diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift index 8bbe16b..2c47623 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift @@ -3,61 +3,65 @@ // EmailPickerViewModel.swift // -import Contacts +#if canImport(Contacts) + import Contacts +#endif import Factory import OversizeContactsService import OversizeCore import OversizeModels import SwiftUI -@MainActor -class EmailPickerViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = ContactsPickerViewModelState.initial - @Published var searchText: String = .init() +#if !os(tvOS) + @MainActor + class EmailPickerViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = ContactsPickerViewModelState.initial + @Published var searchText: String = .init() - @AppStorage("AppState.LastSelectedEmails") var lastSelectedEmails: [String] = .init() + @AppStorage("AppState.LastSelectedEmails") var lastSelectedEmails: [String] = .init() - func fetchData() async { - state = .loading - let status = await contactsService.requestAccess() - switch status { - case .success: - do { - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) + func fetchData() async { + state = .loading + let status = await contactsService.requestAccess() + switch status { + case .success: + do { + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) + } + } catch { + state = .error(.contacts(type: .unknown)) } - } catch { - state = .error(.contacts(type: .unknown)) + case let .failure(error): + state = .error(error) } - case let .failure(error): - state = .error(error) } - } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact + } } } + return nil } - return nil } -} -enum ContactsPickerViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) -} + enum ContactsPickerViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) + } +#endif diff --git a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift index 93ed613..4aaecb7 100644 --- a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift +++ b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift @@ -138,11 +138,13 @@ public struct MapCoordinateView: View { } func onTapAppleMaps() { - let placemark = MKPlacemark(coordinate: viewModel.location, addressDictionary: nil) - let mapItem = MKMapItem(placemark: placemark) - mapItem.name = viewModel.annotation - mapItem.openInMaps() - viewModel.isShowRoutePickerSheet.toggle() + #if !os(tvOS) + let placemark = MKPlacemark(coordinate: viewModel.location, addressDictionary: nil) + let mapItem = MKMapItem(placemark: placemark) + mapItem.name = viewModel.annotation + mapItem.openInMaps() + viewModel.isShowRoutePickerSheet.toggle() + #endif } func onTapGoogleMaps() { diff --git a/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift b/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift index be6e46c..66f9e4e 100644 --- a/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift +++ b/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift @@ -9,68 +9,70 @@ import OversizeModels import OversizeNotificationService import SwiftUI -@MainActor -class LocalNotificationSetScreenViewModel: ObservableObject { - @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol - @Published var state = State.initial +#if !os(tvOS) + @MainActor + class LocalNotificationSetScreenViewModel: ObservableObject { + @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol + @Published var state = State.initial - public let id: UUID - private let date: Date - private let title: String - private let body: String - private let userInfo: [AnyHashable: Any]? + public let id: UUID + private let date: Date + private let title: String + private let body: String + private let userInfo: [AnyHashable: Any]? - init( - id: UUID, - date: Date, - title: String, - body: String, - userInfo: [AnyHashable: Any]? = nil - ) { - self.id = id - self.date = date - self.title = title - self.body = body - self.userInfo = userInfo - } + init( + id: UUID, + date: Date, + title: String, + body: String, + userInfo: [AnyHashable: Any]? = nil + ) { + self.id = id + self.date = date + self.title = title + self.body = body + self.userInfo = userInfo + } - func setNotification(timeBefore: LocalNotificationTime) async { - let notificationTime = date.addingTimeInterval(timeBefore.timeInterval) - let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) - await localNotificationService.schedule(localNotification: .init( - id: id, - title: title, - body: body, - dateComponents: dateComponents, - repeats: false, - userInfo: userInfo - )) - } + func setNotification(timeBefore: LocalNotificationTime) async { + let notificationTime = date.addingTimeInterval(timeBefore.timeInterval) + let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) + await localNotificationService.schedule(localNotification: .init( + id: id, + title: title, + body: body, + dateComponents: dateComponents, + repeats: false, + userInfo: userInfo + )) + } - func fetchPandingNotification() async -> Bool { - let ids = await localNotificationService.fetchPendingIds() - return ids.contains(id.uuidString) - } + func fetchPandingNotification() async -> Bool { + let ids = await localNotificationService.fetchPendingIds() + return ids.contains(id.uuidString) + } - func deleteNotification() { - localNotificationService.removeRequest(withIdentifier: id.uuidString) - } + func deleteNotification() { + localNotificationService.removeRequest(withIdentifier: id.uuidString) + } - func requestAccsess() async { - let result = await localNotificationService.requestAccess() - switch result { - case .success: - state = .result - case let .failure(error): - state = .error(error) + func requestAccsess() async { + let result = await localNotificationService.requestAccess() + switch result { + case .success: + state = .result + case let .failure(error): + state = .error(error) + } } } -} -extension LocalNotificationSetScreenViewModel { - enum State { - case initial - case result - case error(AppError) + extension LocalNotificationSetScreenViewModel { + enum State { + case initial + case result + case error(AppError) + } } -} +#endif diff --git a/Sources/OversizeNotificationKit/LocalNotificationView.swift b/Sources/OversizeNotificationKit/LocalNotificationView.swift index 87cbe51..e574636 100644 --- a/Sources/OversizeNotificationKit/LocalNotificationView.swift +++ b/Sources/OversizeNotificationKit/LocalNotificationView.swift @@ -9,106 +9,108 @@ import OversizeUI import SwiftUI import UserNotifications -public struct LocalNotificationView: View { - @Environment(\.dismiss) var dismiss - @Binding private var selection: LocalNotificationTime - @State private var isPendingNotification: Bool = false - @StateObject var viewModel: LocalNotificationSetScreenViewModel - private let saveAction: ((UUID?) -> Void)? +#if !os(tvOS) + public struct LocalNotificationView: View { + @Environment(\.dismiss) var dismiss + @Binding private var selection: LocalNotificationTime + @State private var isPendingNotification: Bool = false + @StateObject var viewModel: LocalNotificationSetScreenViewModel + private let saveAction: ((UUID?) -> Void)? - public init( - _ selection: Binding, - id: UUID, - title: String, - body: String, - date: Date, - userInfo: [AnyHashable: Any]? = nil, - saveAction: ((UUID?) -> Void)? = nil - ) { - _viewModel = StateObject(wrappedValue: LocalNotificationSetScreenViewModel( - id: id, - date: date, - title: title, - body: body, - userInfo: userInfo - )) - _selection = selection - self.saveAction = saveAction - } + public init( + _ selection: Binding, + id: UUID, + title: String, + body: String, + date: Date, + userInfo: [AnyHashable: Any]? = nil, + saveAction: ((UUID?) -> Void)? = nil + ) { + _viewModel = StateObject(wrappedValue: LocalNotificationSetScreenViewModel( + id: id, + date: date, + title: title, + body: body, + userInfo: userInfo + )) + _selection = selection + self.saveAction = saveAction + } - public var body: some View { - switch viewModel.state { - case .initial: - contnent - .task { - await viewModel.requestAccsess() - } - case .result: - contnent - .task { - let pendingStatus = await viewModel.fetchPandingNotification() - if pendingStatus { - isPendingNotification = true + public var body: some View { + switch viewModel.state { + case .initial: + contnent + .task { + await viewModel.requestAccsess() } + case .result: + contnent + .task { + let pendingStatus = await viewModel.fetchPandingNotification() + if pendingStatus { + isPendingNotification = true + } + } + case let .error(error): + PageView("Notification") { + ErrorView(error) + } + .leadingBar { + BarButton(.close) } - case let .error(error): - PageView("Notification") { - ErrorView(error) - } - .leadingBar { - BarButton(.close) } } - } - public var contnent: some View { - // let notificationDate = viewModel.date.addingTimeInterval(selection.timeInterval) - PageView("Notification") { - VStack(spacing: .zero) { - SectionView { - LazyVStack(spacing: .zero) { - ForEach(LocalNotificationTime.allCases) { notificationTime in + public var contnent: some View { + // let notificationDate = viewModel.date.addingTimeInterval(selection.timeInterval) + PageView("Notification") { + VStack(spacing: .zero) { + SectionView { + LazyVStack(spacing: .zero) { + ForEach(LocalNotificationTime.allCases) { notificationTime in // let notificationDate = viewModel.date.addingTimeInterval(notificationTime.timeInterval) // if notificationDate viewModel.date { - Radio(notificationTime.title, isOn: selection.id == notificationTime.id) { - selection = notificationTime + Radio(notificationTime.title, isOn: selection.id == notificationTime.id) { + selection = notificationTime + } + // } } - // } } } - } - .surfaceContentRowMargins() - if isPendingNotification { - SectionView { - VStack(spacing: .zero) { - Row("Delete notification") { - viewModel.deleteNotification() - saveAction?(nil) - isPendingNotification = false - dismiss() - } trailing: { - IconDeprecated(.trash) - .iconColor(Color.error) + .surfaceContentRowMargins() + if isPendingNotification { + SectionView { + VStack(spacing: .zero) { + Row("Delete notification") { + viewModel.deleteNotification() + saveAction?(nil) + isPendingNotification = false + dismiss() + } trailing: { + IconDeprecated(.trash) + .iconColor(Color.error) + } } } + .surfaceContentRowMargins() } - .surfaceContentRowMargins() } } - } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - Task { - await viewModel.setNotification(timeBefore: selection) - saveAction?(viewModel.id) - isPendingNotification = true - dismiss() - } - })) + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + Task { + await viewModel.setNotification(timeBefore: selection) + saveAction?(viewModel.id) + isPendingNotification = true + dismiss() + } + })) + } } } -} +#endif diff --git a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift index 2c45852..79909ad 100644 --- a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift +++ b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift @@ -3,7 +3,9 @@ // LocalNotificationAlertsTimes.swift // -import EventKit +#if canImport(EventKit) + import EventKit +#endif import Foundation public enum LocalNotificationTime: CaseIterable, Equatable, Identifiable { diff --git a/Sources/OversizePhotoKit/PhotoOptionsView.swift b/Sources/OversizePhotoKit/PhotoOptionsView.swift index d36ba2e..904582c 100644 --- a/Sources/OversizePhotoKit/PhotoOptionsView.swift +++ b/Sources/OversizePhotoKit/PhotoOptionsView.swift @@ -63,20 +63,21 @@ public struct PhotoOptionsView: View where A: View { VStack(spacing: .medium) { SectionView { VStack { - if #available(iOS 16.0, *) { - ShareLink( - item: photo, - preview: SharePreview( - "Photo", - image: photo.image - ) - ) { - Row("Share") { - Image.Base.upload + #if !os(tvOS) + if #available(iOS 16.0, *) { + ShareLink( + item: photo, + preview: SharePreview( + "Photo", + image: photo.image + ) + ) { + Row("Share") { + Image.Base.upload + } } } - } - + #endif actions } .buttonStyle(.row) From 63d766bd5c558a315a9aede525ff17e1b5bd62cf Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 12:05:00 +0300 Subject: [PATCH 08/39] Fix tvOS --- .github/workflows/ci-pull-request.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index e2720f3..a00579d 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -3,6 +3,9 @@ on: pull_request: branches: - main + push: + branches: + - develop workflow_dispatch: jobs: From e24bf4d169af80068fde6eb4876e0ded218e8a46 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 13:40:54 +0300 Subject: [PATCH 09/39] Add wathOS example --- .github/workflows/ci-pull-request.yml | 24 +- .github/workflows/ci-push.yml | 28 +- .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + .../Assets.xcassets/Contents.json | 6 + .../ContentView.swift | 30 ++ .../Example__watchOS_App.swift | 22 + .../Preview Assets.xcassets/Contents.json | 6 + AppExample/Example.xcodeproj/project.pbxproj | 413 ++++++++++++++++-- .../UserInterfaceState.xcuserstate | Bin 222803 -> 297590 bytes .../Example (watchOS) Watch App.xcscheme | 92 ++++ .../xcschemes/xcschememanagement.plist | 15 + .../Screens/Onboarding/OnboardingView.swift | 2 + AppExample/Example/Test/TestView.swift | 24 + .../CreateEventScreen/CreateEventView.swift | 122 +++--- .../CreateEventViewSheet.swift | 10 +- .../Pickers/RepeatPicker.swift | 22 +- .../AttendeesList/AttendeesView.swift | 6 +- .../ContactsPicker/EmailPickerView.swift | 6 +- .../AddressField/AddressField.swift | 12 +- .../AddressPicker/AddressPicker.swift | 362 +++++++-------- .../AddressPickerViewModel.swift | 112 ++--- .../MapCoordinateView/MapCoordinateView.swift | 250 +++++------ .../Model/LocalNotificationAlertsTimes.swift | 3 - 24 files changed, 1108 insertions(+), 483 deletions(-) create mode 100644 AppExample/Example (watchOS) Watch App/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 AppExample/Example (watchOS) Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 AppExample/Example (watchOS) Watch App/Assets.xcassets/Contents.json create mode 100644 AppExample/Example (watchOS) Watch App/ContentView.swift create mode 100644 AppExample/Example (watchOS) Watch App/Example__watchOS_App.swift create mode 100644 AppExample/Example (watchOS) Watch App/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 AppExample/Example.xcodeproj/xcshareddata/xcschemes/Example (watchOS) Watch App.xcscheme create mode 100644 AppExample/Example/Test/TestView.swift diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index a00579d..d0f81a7 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -34,16 +34,38 @@ jobs: strategy: matrix: destination: + - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.0 + - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.5 + - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 + - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=16.0 + - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=16.5 + - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.0 - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.5 + - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 - - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.5 + - platform=macOS,arch=arm64 with: path: AppExample/Example scheme: Example destination: ${{ matrix.destination }} secrets: inherit + build-watchOS-example: + name: Build watchOS Example + needs: build-swiftpm + uses: oversizedev/GithubWorkflows/.github/workflows/build-app.yml@main + strategy: + matrix: + destination: + - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.0 + - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.5 + with: + path: AppExample/Example + scheme: Example (watchOS) Watch App + destination: ${{ matrix.destination }} + secrets: inherit + # tests: # name: Test # needs: build-example diff --git a/.github/workflows/ci-push.yml b/.github/workflows/ci-push.yml index cc427ce..21ff79b 100644 --- a/.github/workflows/ci-push.yml +++ b/.github/workflows/ci-push.yml @@ -33,15 +33,37 @@ jobs: strategy: matrix: destination: + - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.0 + - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.5 + - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 + - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=16.0 + - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=16.5 + - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.0 - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.5 + - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 - - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.5 + - platform=macOS,arch=arm64 with: path: AppExample/Example scheme: Example destination: ${{ matrix.destination }} secrets: inherit + + build-watchOS-example: + name: Build watchOS Example + needs: build-swiftpm + uses: oversizedev/GithubWorkflows/.github/workflows/build-app.yml@main + strategy: + matrix: + destination: + - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.0 + - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.5 + with: + path: AppExample/Example + scheme: Example (watchOS) Watch App + destination: ${{ matrix.destination }} + secrets: inherit # tests: # name: Test @@ -51,7 +73,9 @@ jobs: bump: name: Bump version - needs: build-example + needs: + - build-example + - build-watchOS-example uses: oversizedev/GithubWorkflows/.github/workflows/bump.yml@main secrets: inherit diff --git a/AppExample/Example (watchOS) Watch App/Assets.xcassets/AccentColor.colorset/Contents.json b/AppExample/Example (watchOS) Watch App/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/AppExample/Example (watchOS) Watch App/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AppExample/Example (watchOS) Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json b/AppExample/Example (watchOS) Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..49c81cd --- /dev/null +++ b/AppExample/Example (watchOS) Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "watchos", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AppExample/Example (watchOS) Watch App/Assets.xcassets/Contents.json b/AppExample/Example (watchOS) Watch App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/AppExample/Example (watchOS) Watch App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AppExample/Example (watchOS) Watch App/ContentView.swift b/AppExample/Example (watchOS) Watch App/ContentView.swift new file mode 100644 index 0000000..9cce011 --- /dev/null +++ b/AppExample/Example (watchOS) Watch App/ContentView.swift @@ -0,0 +1,30 @@ +// +// Copyright © 2024 Alexander Romanov +// ContentView.swift, created on 19.05.2024 +// + +import OversizeKit +import OversizeContactsKit +import OversizeLocationKit +import OversizePhotoKit +import OversizeCalendarKit +import OversizeNoticeKit +import OversizeNotificationKit +import OversizeOnboardingKit +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundStyle(.tint) + Text("Hello, world!") + } + .padding() + } +} + +#Preview { + ContentView() +} diff --git a/AppExample/Example (watchOS) Watch App/Example__watchOS_App.swift b/AppExample/Example (watchOS) Watch App/Example__watchOS_App.swift new file mode 100644 index 0000000..fbf5231 --- /dev/null +++ b/AppExample/Example (watchOS) Watch App/Example__watchOS_App.swift @@ -0,0 +1,22 @@ +// +// Copyright © 2024 Alexander Romanov +// Example__watchOS_App.swift, created on 19.05.2024 +// + +import Factory +import OversizeKit +import OversizeServices +import OversizeUI +import SwiftUI + +@main +struct Example__watchOS__Watch_AppApp: App { + + @Injected(\.appStateService) var appStateService: AppStateService + + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/AppExample/Example (watchOS) Watch App/Preview Content/Preview Assets.xcassets/Contents.json b/AppExample/Example (watchOS) Watch App/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/AppExample/Example (watchOS) Watch App/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/AppExample/Example.xcodeproj/project.pbxproj b/AppExample/Example.xcodeproj/project.pbxproj index a93b920..6c37460 100644 --- a/AppExample/Example.xcodeproj/project.pbxproj +++ b/AppExample/Example.xcodeproj/project.pbxproj @@ -22,19 +22,57 @@ 840CD68E2AC0E39D00C6AAD0 /* ExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840CD68D2AC0E39D00C6AAD0 /* ExampleApp.swift */; }; 840CD6902AC0E3A600C6AAD0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 840CD68F2AC0E3A600C6AAD0 /* Assets.xcassets */; }; 840CD6932AC0E3A600C6AAD0 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 840CD6922AC0E3A600C6AAD0 /* Preview Assets.xcassets */; }; - 840CD69E2AC0E43000C6AAD0 /* OversizeCalendarKit in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD69D2AC0E43000C6AAD0 /* OversizeCalendarKit */; }; - 840CD6A02AC0E43000C6AAD0 /* OversizeContactsKit in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD69F2AC0E43000C6AAD0 /* OversizeContactsKit */; }; - 840CD6A22AC0E43000C6AAD0 /* OversizeKit in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD6A12AC0E43000C6AAD0 /* OversizeKit */; }; - 840CD6A42AC0E43000C6AAD0 /* OversizeLocationKit in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD6A32AC0E43000C6AAD0 /* OversizeLocationKit */; }; - 840CD6A62AC0E43000C6AAD0 /* OversizeNoticeKit in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD6A52AC0E43000C6AAD0 /* OversizeNoticeKit */; }; - 840CD6A82AC0E43000C6AAD0 /* OversizeNotificationKit in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD6A72AC0E43000C6AAD0 /* OversizeNotificationKit */; }; - 840CD6AA2AC0E43000C6AAD0 /* OversizeOnboardingKit in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD6A92AC0E43000C6AAD0 /* OversizeOnboardingKit */; }; - 840CD6AC2AC0E43000C6AAD0 /* OversizePhotoKit in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD6AB2AC0E43000C6AAD0 /* OversizePhotoKit */; }; 840CD6AF2AC0E44E00C6AAD0 /* Factory in Frameworks */ = {isa = PBXBuildFile; productRef = 840CD6AE2AC0E44E00C6AAD0 /* Factory */; }; 840CD6B12AC0E6E200C6AAD0 /* Products.storekit in Resources */ = {isa = PBXBuildFile; fileRef = 840CD6B02AC0E6E200C6AAD0 /* Products.storekit */; }; - 845A59332BA4FD2B00988D52 /* OversizeModels in Frameworks */ = {isa = PBXBuildFile; productRef = 845A59322BA4FD2B00988D52 /* OversizeModels */; }; + 84664C312BF9FD6400A24148 /* Example (watchOS) Watch App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 84664C302BF9FD6400A24148 /* Example (watchOS) Watch App.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 84664C362BF9FD6400A24148 /* Example__watchOS_App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84664C352BF9FD6400A24148 /* Example__watchOS_App.swift */; }; + 84664C382BF9FD6400A24148 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84664C372BF9FD6400A24148 /* ContentView.swift */; }; + 84664C3A2BF9FD6500A24148 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 84664C392BF9FD6500A24148 /* Assets.xcassets */; }; + 84664C3D2BF9FD6500A24148 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 84664C3C2BF9FD6500A24148 /* Preview Assets.xcassets */; }; + 84664C472BF9FDC200A24148 /* Factory in Frameworks */ = {isa = PBXBuildFile; productRef = 84664C462BF9FDC200A24148 /* Factory */; }; + 848479442BF9FF94003FC3FC /* OversizeCalendarKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479432BF9FF94003FC3FC /* OversizeCalendarKit */; }; + 848479462BF9FF94003FC3FC /* OversizeContactsKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479452BF9FF94003FC3FC /* OversizeContactsKit */; }; + 848479482BF9FF94003FC3FC /* OversizeKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479472BF9FF94003FC3FC /* OversizeKit */; }; + 8484794A2BF9FF94003FC3FC /* OversizeLocationKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479492BF9FF94003FC3FC /* OversizeLocationKit */; }; + 8484794C2BF9FF94003FC3FC /* OversizeNoticeKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8484794B2BF9FF94003FC3FC /* OversizeNoticeKit */; }; + 8484794E2BF9FF94003FC3FC /* OversizeNotificationKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8484794D2BF9FF94003FC3FC /* OversizeNotificationKit */; }; + 848479502BF9FF94003FC3FC /* OversizeOnboardingKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8484794F2BF9FF94003FC3FC /* OversizeOnboardingKit */; }; + 848479522BF9FF94003FC3FC /* OversizePhotoKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479512BF9FF94003FC3FC /* OversizePhotoKit */; }; + 848479542BF9FFA4003FC3FC /* OversizeCalendarKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479532BF9FFA4003FC3FC /* OversizeCalendarKit */; }; + 848479562BF9FFA4003FC3FC /* OversizeContactsKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479552BF9FFA4003FC3FC /* OversizeContactsKit */; }; + 848479582BF9FFA4003FC3FC /* OversizeKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479572BF9FFA4003FC3FC /* OversizeKit */; }; + 8484795A2BF9FFA4003FC3FC /* OversizeLocationKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479592BF9FFA4003FC3FC /* OversizeLocationKit */; }; + 8484795C2BF9FFA4003FC3FC /* OversizeNoticeKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8484795B2BF9FFA4003FC3FC /* OversizeNoticeKit */; }; + 8484795E2BF9FFA4003FC3FC /* OversizeNotificationKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8484795D2BF9FFA4003FC3FC /* OversizeNotificationKit */; }; + 848479602BF9FFA4003FC3FC /* OversizeOnboardingKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8484795F2BF9FFA4003FC3FC /* OversizeOnboardingKit */; }; + 848479622BF9FFA4003FC3FC /* OversizePhotoKit in Frameworks */ = {isa = PBXBuildFile; productRef = 848479612BF9FFA4003FC3FC /* OversizePhotoKit */; }; + 848479652BFA0E64003FC3FC /* TestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848479642BFA0E64003FC3FC /* TestView.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 84664C322BF9FD6400A24148 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 840CD6592AC0E39D00C6AAD0 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 84664C2F2BF9FD6400A24148; + remoteInfo = "Example (watchOS) Watch App"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 84664C412BF9FD6500A24148 /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + 84664C312BF9FD6400A24148 /* Example (watchOS) Watch App.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 840CD6632AC0E39D00C6AAD0 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 840CD6682AC0E39D00C6AAD0 /* AppSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSettingsView.swift; sourceTree = ""; }; @@ -58,6 +96,15 @@ 840CD6922AC0E3A600C6AAD0 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 840CD6942AC0E3A600C6AAD0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 840CD6B02AC0E6E200C6AAD0 /* Products.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = Products.storekit; sourceTree = ""; }; + 84664C2B2BF9FD6400A24148 /* Example (watchOS).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Example (watchOS).app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 84664C302BF9FD6400A24148 /* Example (watchOS) Watch App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Example (watchOS) Watch App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 84664C352BF9FD6400A24148 /* Example__watchOS_App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Example__watchOS_App.swift; sourceTree = ""; }; + 84664C372BF9FD6400A24148 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 84664C392BF9FD6500A24148 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 84664C3C2BF9FD6500A24148 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 848479642BFA0E64003FC3FC /* TestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestView.swift; sourceTree = ""; }; + 84DE88812BF9FEED00CCF37A /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Package.swift; path = ../Package.swift; sourceTree = ""; }; + 84DE88822BF9FF5100CCF37A /* OversizeKit */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = OversizeKit; path = ..; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -65,16 +112,31 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 840CD6AC2AC0E43000C6AAD0 /* OversizePhotoKit in Frameworks */, + 848479622BF9FFA4003FC3FC /* OversizePhotoKit in Frameworks */, + 848479542BF9FFA4003FC3FC /* OversizeCalendarKit in Frameworks */, + 8484795E2BF9FFA4003FC3FC /* OversizeNotificationKit in Frameworks */, 840CD6AF2AC0E44E00C6AAD0 /* Factory in Frameworks */, - 840CD69E2AC0E43000C6AAD0 /* OversizeCalendarKit in Frameworks */, - 840CD6A82AC0E43000C6AAD0 /* OversizeNotificationKit in Frameworks */, - 840CD6A22AC0E43000C6AAD0 /* OversizeKit in Frameworks */, - 840CD6A42AC0E43000C6AAD0 /* OversizeLocationKit in Frameworks */, - 840CD6A62AC0E43000C6AAD0 /* OversizeNoticeKit in Frameworks */, - 845A59332BA4FD2B00988D52 /* OversizeModels in Frameworks */, - 840CD6A02AC0E43000C6AAD0 /* OversizeContactsKit in Frameworks */, - 840CD6AA2AC0E43000C6AAD0 /* OversizeOnboardingKit in Frameworks */, + 848479582BF9FFA4003FC3FC /* OversizeKit in Frameworks */, + 8484795A2BF9FFA4003FC3FC /* OversizeLocationKit in Frameworks */, + 8484795C2BF9FFA4003FC3FC /* OversizeNoticeKit in Frameworks */, + 848479562BF9FFA4003FC3FC /* OversizeContactsKit in Frameworks */, + 848479602BF9FFA4003FC3FC /* OversizeOnboardingKit in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 84664C2D2BF9FD6400A24148 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 848479522BF9FF94003FC3FC /* OversizePhotoKit in Frameworks */, + 848479442BF9FF94003FC3FC /* OversizeCalendarKit in Frameworks */, + 8484794E2BF9FF94003FC3FC /* OversizeNotificationKit in Frameworks */, + 84664C472BF9FDC200A24148 /* Factory in Frameworks */, + 848479482BF9FF94003FC3FC /* OversizeKit in Frameworks */, + 8484794A2BF9FF94003FC3FC /* OversizeLocationKit in Frameworks */, + 8484794C2BF9FF94003FC3FC /* OversizeNoticeKit in Frameworks */, + 848479462BF9FF94003FC3FC /* OversizeContactsKit in Frameworks */, + 848479502BF9FF94003FC3FC /* OversizeOnboardingKit in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -84,8 +146,11 @@ 840CD6582AC0E39D00C6AAD0 = { isa = PBXGroup; children = ( + 84DE88822BF9FF5100CCF37A /* OversizeKit */, 840CD6652AC0E39D00C6AAD0 /* Example */, + 84664C342BF9FD6400A24148 /* Example (watchOS) Watch App */, 840CD6642AC0E39D00C6AAD0 /* Products */, + 84664C452BF9FDC200A24148 /* Frameworks */, ); sourceTree = ""; }; @@ -93,6 +158,8 @@ isa = PBXGroup; children = ( 840CD6632AC0E39D00C6AAD0 /* Example.app */, + 84664C2B2BF9FD6400A24148 /* Example (watchOS).app */, + 84664C302BF9FD6400A24148 /* Example (watchOS) Watch App.app */, ); name = Products; sourceTree = ""; @@ -101,6 +168,7 @@ isa = PBXGroup; children = ( 840CD68D2AC0E39D00C6AAD0 /* ExampleApp.swift */, + 848479632BFA0E55003FC3FC /* Test */, 840CD6662AC0E39D00C6AAD0 /* Screens */, 840CD6782AC0E39D00C6AAD0 /* Router */, 840CD67D2AC0E39D00C6AAD0 /* Resources */, @@ -189,6 +257,41 @@ path = "Preview Content"; sourceTree = ""; }; + 84664C342BF9FD6400A24148 /* Example (watchOS) Watch App */ = { + isa = PBXGroup; + children = ( + 84664C352BF9FD6400A24148 /* Example__watchOS_App.swift */, + 84664C372BF9FD6400A24148 /* ContentView.swift */, + 84664C392BF9FD6500A24148 /* Assets.xcassets */, + 84664C3B2BF9FD6500A24148 /* Preview Content */, + ); + path = "Example (watchOS) Watch App"; + sourceTree = ""; + }; + 84664C3B2BF9FD6500A24148 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 84664C3C2BF9FD6500A24148 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 84664C452BF9FDC200A24148 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 84DE88812BF9FEED00CCF37A /* Package.swift */, + ); + name = Frameworks; + sourceTree = ""; + }; + 848479632BFA0E55003FC3FC /* Test */ = { + isa = PBXGroup; + children = ( + 848479642BFA0E64003FC3FC /* TestView.swift */, + ); + path = Test; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -206,21 +309,65 @@ ); name = Example; packageProductDependencies = ( - 840CD69D2AC0E43000C6AAD0 /* OversizeCalendarKit */, - 840CD69F2AC0E43000C6AAD0 /* OversizeContactsKit */, - 840CD6A12AC0E43000C6AAD0 /* OversizeKit */, - 840CD6A32AC0E43000C6AAD0 /* OversizeLocationKit */, - 840CD6A52AC0E43000C6AAD0 /* OversizeNoticeKit */, - 840CD6A72AC0E43000C6AAD0 /* OversizeNotificationKit */, - 840CD6A92AC0E43000C6AAD0 /* OversizeOnboardingKit */, - 840CD6AB2AC0E43000C6AAD0 /* OversizePhotoKit */, 840CD6AE2AC0E44E00C6AAD0 /* Factory */, - 845A59322BA4FD2B00988D52 /* OversizeModels */, + 848479532BF9FFA4003FC3FC /* OversizeCalendarKit */, + 848479552BF9FFA4003FC3FC /* OversizeContactsKit */, + 848479572BF9FFA4003FC3FC /* OversizeKit */, + 848479592BF9FFA4003FC3FC /* OversizeLocationKit */, + 8484795B2BF9FFA4003FC3FC /* OversizeNoticeKit */, + 8484795D2BF9FFA4003FC3FC /* OversizeNotificationKit */, + 8484795F2BF9FFA4003FC3FC /* OversizeOnboardingKit */, + 848479612BF9FFA4003FC3FC /* OversizePhotoKit */, ); productName = Example; productReference = 840CD6632AC0E39D00C6AAD0 /* Example.app */; productType = "com.apple.product-type.application"; }; + 84664C2A2BF9FD6400A24148 /* Example (watchOS) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 84664C422BF9FD6500A24148 /* Build configuration list for PBXNativeTarget "Example (watchOS)" */; + buildPhases = ( + 84664C292BF9FD6400A24148 /* Resources */, + 84664C412BF9FD6500A24148 /* Embed Watch Content */, + ); + buildRules = ( + ); + dependencies = ( + 84664C332BF9FD6400A24148 /* PBXTargetDependency */, + ); + name = "Example (watchOS)"; + productName = "Example (watchOS)"; + productReference = 84664C2B2BF9FD6400A24148 /* Example (watchOS).app */; + productType = "com.apple.product-type.application.watchapp2-container"; + }; + 84664C2F2BF9FD6400A24148 /* Example (watchOS) Watch App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 84664C3E2BF9FD6500A24148 /* Build configuration list for PBXNativeTarget "Example (watchOS) Watch App" */; + buildPhases = ( + 84664C2C2BF9FD6400A24148 /* Sources */, + 84664C2D2BF9FD6400A24148 /* Frameworks */, + 84664C2E2BF9FD6400A24148 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Example (watchOS) Watch App"; + packageProductDependencies = ( + 84664C462BF9FDC200A24148 /* Factory */, + 848479432BF9FF94003FC3FC /* OversizeCalendarKit */, + 848479452BF9FF94003FC3FC /* OversizeContactsKit */, + 848479472BF9FF94003FC3FC /* OversizeKit */, + 848479492BF9FF94003FC3FC /* OversizeLocationKit */, + 8484794B2BF9FF94003FC3FC /* OversizeNoticeKit */, + 8484794D2BF9FF94003FC3FC /* OversizeNotificationKit */, + 8484794F2BF9FF94003FC3FC /* OversizeOnboardingKit */, + 848479512BF9FF94003FC3FC /* OversizePhotoKit */, + ); + productName = "Example (watchOS) Watch App"; + productReference = 84664C302BF9FD6400A24148 /* Example (watchOS) Watch App.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -228,12 +375,18 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1500; + LastSwiftUpdateCheck = 1540; LastUpgradeCheck = 1500; TargetAttributes = { 840CD6622AC0E39D00C6AAD0 = { CreatedOnToolsVersion = 15.0; }; + 84664C2A2BF9FD6400A24148 = { + CreatedOnToolsVersion = 15.4; + }; + 84664C2F2BF9FD6400A24148 = { + CreatedOnToolsVersion = 15.4; + }; }; }; buildConfigurationList = 840CD65C2AC0E39D00C6AAD0 /* Build configuration list for PBXProject "Example" */; @@ -255,6 +408,8 @@ projectRoot = ""; targets = ( 840CD6622AC0E39D00C6AAD0 /* Example */, + 84664C2A2BF9FD6400A24148 /* Example (watchOS) */, + 84664C2F2BF9FD6400A24148 /* Example (watchOS) Watch App */, ); }; /* End PBXProject section */ @@ -271,6 +426,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 84664C292BF9FD6400A24148 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 84664C2E2BF9FD6400A24148 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 84664C3D2BF9FD6500A24148 /* Preview Assets.xcassets in Resources */, + 84664C3A2BF9FD6500A24148 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -289,12 +460,30 @@ 840CD66D2AC0E39D00C6AAD0 /* AppSettingsPageView.swift in Sources */, 840CD67C2AC0E39D00C6AAD0 /* Screens.swift in Sources */, 840CD6722AC0E39D00C6AAD0 /* OnboardingView.swift in Sources */, + 848479652BFA0E64003FC3FC /* TestView.swift in Sources */, 840CD66B2AC0E39D00C6AAD0 /* AppSettingsViewModel.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; + 84664C2C2BF9FD6400A24148 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 84664C382BF9FD6400A24148 /* ContentView.swift in Sources */, + 84664C362BF9FD6400A24148 /* Example__watchOS_App.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 84664C332BF9FD6400A24148 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 84664C2F2BF9FD6400A24148 /* Example (watchOS) Watch App */; + targetProxy = 84664C322BF9FD6400A24148 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin XCBuildConfiguration section */ 840CD6952AC0E3A600C6AAD0 /* Debug */ = { isa = XCBuildConfiguration; @@ -487,6 +676,96 @@ }; name = Release; }; + 84664C3F2BF9FD6500A24148 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Example (watchOS) Watch App/Preview Content\""; + DEVELOPMENT_TEAM = ER582ZK85C; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Example (watchOS)"; + INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + INFOPLIST_KEY_WKWatchOnly = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "app.oversize.Example--watchOS-.watchkitapp"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Debug; + }; + 84664C402BF9FD6500A24148 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Example (watchOS) Watch App/Preview Content\""; + DEVELOPMENT_TEAM = ER582ZK85C; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Example (watchOS)"; + INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + INFOPLIST_KEY_WKWatchOnly = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "app.oversize.Example--watchOS-.watchkitapp"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Release; + }; + 84664C432BF9FD6500A24148 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ER582ZK85C; + INFOPLIST_KEY_CFBundleDisplayName = "Example (watchOS)"; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "app.oversize.Example--watchOS-"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 84664C442BF9FD6500A24148 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ER582ZK85C; + INFOPLIST_KEY_CFBundleDisplayName = "Example (watchOS)"; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "app.oversize.Example--watchOS-"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -508,6 +787,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 84664C3E2BF9FD6500A24148 /* Build configuration list for PBXNativeTarget "Example (watchOS) Watch App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 84664C3F2BF9FD6500A24148 /* Debug */, + 84664C402BF9FD6500A24148 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 84664C422BF9FD6500A24148 /* Build configuration list for PBXNativeTarget "Example (watchOS)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 84664C432BF9FD6500A24148 /* Debug */, + 84664C442BF9FD6500A24148 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ @@ -537,47 +834,79 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 840CD69D2AC0E43000C6AAD0 /* OversizeCalendarKit */ = { + 840CD6AE2AC0E44E00C6AAD0 /* Factory */ = { + isa = XCSwiftPackageProductDependency; + package = 840CD6AD2AC0E44E00C6AAD0 /* XCRemoteSwiftPackageReference "Factory" */; + productName = Factory; + }; + 84664C462BF9FDC200A24148 /* Factory */ = { + isa = XCSwiftPackageProductDependency; + package = 840CD6AD2AC0E44E00C6AAD0 /* XCRemoteSwiftPackageReference "Factory" */; + productName = Factory; + }; + 848479432BF9FF94003FC3FC /* OversizeCalendarKit */ = { isa = XCSwiftPackageProductDependency; productName = OversizeCalendarKit; }; - 840CD69F2AC0E43000C6AAD0 /* OversizeContactsKit */ = { + 848479452BF9FF94003FC3FC /* OversizeContactsKit */ = { isa = XCSwiftPackageProductDependency; productName = OversizeContactsKit; }; - 840CD6A12AC0E43000C6AAD0 /* OversizeKit */ = { + 848479472BF9FF94003FC3FC /* OversizeKit */ = { isa = XCSwiftPackageProductDependency; productName = OversizeKit; }; - 840CD6A32AC0E43000C6AAD0 /* OversizeLocationKit */ = { + 848479492BF9FF94003FC3FC /* OversizeLocationKit */ = { isa = XCSwiftPackageProductDependency; productName = OversizeLocationKit; }; - 840CD6A52AC0E43000C6AAD0 /* OversizeNoticeKit */ = { + 8484794B2BF9FF94003FC3FC /* OversizeNoticeKit */ = { isa = XCSwiftPackageProductDependency; productName = OversizeNoticeKit; }; - 840CD6A72AC0E43000C6AAD0 /* OversizeNotificationKit */ = { + 8484794D2BF9FF94003FC3FC /* OversizeNotificationKit */ = { isa = XCSwiftPackageProductDependency; productName = OversizeNotificationKit; }; - 840CD6A92AC0E43000C6AAD0 /* OversizeOnboardingKit */ = { + 8484794F2BF9FF94003FC3FC /* OversizeOnboardingKit */ = { isa = XCSwiftPackageProductDependency; productName = OversizeOnboardingKit; }; - 840CD6AB2AC0E43000C6AAD0 /* OversizePhotoKit */ = { + 848479512BF9FF94003FC3FC /* OversizePhotoKit */ = { isa = XCSwiftPackageProductDependency; productName = OversizePhotoKit; }; - 840CD6AE2AC0E44E00C6AAD0 /* Factory */ = { + 848479532BF9FFA4003FC3FC /* OversizeCalendarKit */ = { isa = XCSwiftPackageProductDependency; - package = 840CD6AD2AC0E44E00C6AAD0 /* XCRemoteSwiftPackageReference "Factory" */; - productName = Factory; + productName = OversizeCalendarKit; + }; + 848479552BF9FFA4003FC3FC /* OversizeContactsKit */ = { + isa = XCSwiftPackageProductDependency; + productName = OversizeContactsKit; + }; + 848479572BF9FFA4003FC3FC /* OversizeKit */ = { + isa = XCSwiftPackageProductDependency; + productName = OversizeKit; + }; + 848479592BF9FFA4003FC3FC /* OversizeLocationKit */ = { + isa = XCSwiftPackageProductDependency; + productName = OversizeLocationKit; + }; + 8484795B2BF9FFA4003FC3FC /* OversizeNoticeKit */ = { + isa = XCSwiftPackageProductDependency; + productName = OversizeNoticeKit; }; - 845A59322BA4FD2B00988D52 /* OversizeModels */ = { + 8484795D2BF9FFA4003FC3FC /* OversizeNotificationKit */ = { isa = XCSwiftPackageProductDependency; - package = 845A59312BA4FD2B00988D52 /* XCRemoteSwiftPackageReference "OversizeModels" */; - productName = OversizeModels; + productName = OversizeNotificationKit; + }; + 8484795F2BF9FFA4003FC3FC /* OversizeOnboardingKit */ = { + isa = XCSwiftPackageProductDependency; + productName = OversizeOnboardingKit; + }; + 848479612BF9FFA4003FC3FC /* OversizePhotoKit */ = { + isa = XCSwiftPackageProductDependency; + productName = OversizePhotoKit; }; /* End XCSwiftPackageProductDependency section */ }; diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 106aac6a059b1676eb79e10f8482900f5abe5d87..cacb16d042d4d4b58d25372090eb42620e0e5872 100644 GIT binary patch literal 297590 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 z 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�Vxc74ufGn+kSQVFC71LDmWz*vwYst8fN+ zD%|1@|KWxzCL{^Ti6lQIC{0-^AX7z|DmLPMKB7JDxuU)*%2iRWibEJ0L{y4NGE(5p zN@lJkW2NP|?Ml1ZhdZeB3%~IPM>x(&a-IK;;smGh#< z$}&}+fZbR2R%L%vB|W8(ze*e0VTLLl>4}@K;^wP-!Ei=0nyJiW4)bwaRm@RkCGNh; zA?&xxbL6TT1G%ckBLRs?N@fc1HolitOY$z2sLFfPLf2LMu>x;bJ<0|2P*o3A-B2~} zR?9>d3Q~l3u(xVuD2KbMR+)x;%2-z6J5fz9)i$w(?d)U^KXDG9SM4(Ya)W5xZ?&gE zMD0)UcBpc2c80GS_HAQ{=88ca1iUOZZ)(a>a~4}L zM@@6o^lwkiUpT@U{^255xQ3Z(KIR3lgNRx&h>baFB}DJF@>7TA$W^N?a@FdLerxr> zUDx`8@l4@cW-^DxEaN*?vzC)VMD6%^yLM43poiLesNEXx*4An5p-kW#rZI!L%x4ky zSbHPCaT;^fHb)(E)QL$Pd`_K2_-@qESDga5mpX2_j$5u%g3^?w8gkTeLv`$;j$Z4S zxsF}bX^&mh=|g`8@;S3`OaAv!BI>N+dv;?-b^hcie-q6!+)14`K}22uuGCFJaw17X zPX5N0Cz+2PoC)>&EqliiNFavkZ)*_b0|j+{H6b3b$LdTsz_$lbtT^qea* zk}9JxM{W%EpL>{>S&3XZo#y1qeaJ`XH@Ar$?BO84@dt-f>3j>0<#<|i61^FXv-4A# zgC6pF$gjn@`LEcCedQ1ED~GVR{Lxf8aJPaqZE=r+fy6Z9>|iY8&`~gfJD7+&98BkF zX5rbvT;}241j|{49D!K_vj*?61-lOHI{1R!m@_bEV9r3Mf;kKF6x!2?&gj2z0T&@> z!43)ou!F)N7GUmz{TJ-NV3)-+89~H&Zsm6FzJ|1KekKle4pJzTVvJiVKx?@G% z7MEhSqS=aOE56B>$lll${WUh@tVaLS_%VA^=~64&(UH^X!nyRsy((QsZ?2{Z>!E$ok;!WdnJqZ!LM z+_O-wP_EFP!l_K-DP}So8N(Mad$^31tU<<5#!$xa6Fy@b+xdZ?*o&;;5&lZ0qZS;C zoROT-X>{Qn>?OLCE4Y$D*g<3mk^Z7l+{_qmVLZ1Ydn9}0jzy0%9r>df%tFu6T;}19 zMGG-Y^g4^NuV`N?JyNETms8>%UScEOD^8+4o#@ONbY%z=ady)S zEaF{!A2*q^$+=BGbAY3%bk$tdlQ|XVRh?ILUe$Tk9`xiA?4@ciRdZMSa1B}Pp!z7f zs(J^iKk_?=aenO>+|AkvoQP-Dx}eM2g;1Tqn`j_M z6?y9N)JLO(`rXJ>zmEr)!VI3l_eTAB=JOhhS;`7lvljX5JJ4VKmsC1VA!jUSEN9%7 z4#*mNuVe2^d>(p??I|9DJnxkv)+;S;t$fXMZX^svE<(iv?^;rJHrud=-5d%+S=oKP_AQ_c^rxf1m&V IPB%CG4F|}z?*IS* literal 222803 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 ZprS0c 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 z zPtWgFrYiRKUTx}9pN4c{0`~LXVaz&x9Fmg;_0wk{3m@R#()(6=dDEApB2}o4n@DfA z>096y(wk#?b4=fd&#;&DW}4nzr2mq6Y+^It@jc#b`aSH!9j2El{V`5(gFm^$UCcVY zTS)(u=a_f;fB2WTK`4XV8N7oGE%D6^?l8j<+)&0OP%AWB6zLoJfvS&QWRjwm*MtL*Jn^E3O0p41sxV%Fe z+(;(3kSU7Nm~|$z&Sch^%sP`%+v_EGxbEyOmb!#z(9te_e^qUk~`BlzF-ov zXIjfq9tNTJQ&5Cv3}XTI@&50~{r)Y?{(ZB5{~2$BQ05SEkUMii5@WWR(~}u}WX?ez z@>3A^p1C&Wn%Q?Uk7g`pnt3u)na)h?EVJ9pyczS&`~!R0kKCDm<|L;%gS}_*jVvEy zCRsXQ4p{~>hG{HE%`6+yUlx1HVozCqL7gmTInPD(o8=x4c#K=i@`6{q4nkRzQ-B(D z#*DMBVhi7+epWY;^#DI1b5`HV`a6H}7x#ID+F73mp=_~n3)xceF5Y0a3}nGPvzceM zTok1|?lzm9Wpn4*TJtIT&L&T`ZbZ|Yetdx$XPbgqWShY(<}jD}EMf^}pUteZT@6AX z$n!x?s-fNoe(!^CIfdK#;BU<11M|-w!YyP^NgCwOE`Rp-(L;7UWH+C}l;*Uf7h_N}hnhL`n`0j8 z=2*%K>@CMPY-cBjabG!p;WX#4w;Y$af}6;p=bXt&gO+XKwNmhJEF% zL>0_3r@P7NE#$0AeHzk)X0%`+vgUM0Iejyix0dTeYSI<^%q4fOO>E{n)<3 zPNIigXSl{qZgUrXY&Cx@iE=1FtehgwLddV{i zcamox^5u~$k9)}D9`eYP=TGi%kB7*RHzkpDL%qCeou6vXJNh-CVQCdVO<%7J%z~}CU2O$ zVe*E3joS-bhRybB~C5oTT>De@LbMH?wRYU*V?0 z?J3-z!k4fdcND&cA34Aw4s(>BImxe_#U8`$G5iu&_%{fBr1y_X)0#1;_0b6)1fjz2 zu5cbcqA10QqyjamjhPg#hx~=*FZ?O?R=6uY=tF<(uJB-FFT4{O3;)7tWGj50t6axB zE_@sJP$U%B zE5fWJa+8-Z3gIRq%r>Gtbuh;WbBt(8E9@o0Oe6Fk(U+0T;%nyP?L;hP1+qlA!-x&U zu!SQW=L9D)mk9HYFq??qxro_B{DIjQ3y~RlinU`r>J{^Q#hwJA;^tLc_TmwkNAZ%B z#yuA|m*VwlNE4dVk}jB6@!s@f5JMTkC}c0b4|^;A8*&x5v*PZdxc5}t9TdOMLmmgA z66vWyH`FVkMv1SO&0^NG7d8De|3f9tpx+Yeme6a7Yuw-#&-ptDMaCl$b`_ZnHxc>$bxqE_K;N68&!7EzCQiu_UTtz>-MTFJyDK@TPEs^t4*B|Ev$N6CCt zr6IDHl)dC9_*Th|$X>E5gBXg;CFLzCZ%KJee$6}wQW=rIR2JM>Dfd)rI7>Lly&zONIR&VNJ1gCX z{tRR=V=(X1@|Tvs^bFie>DesDTuZNEJ)8KJUvPh=-AQTLOUqvRzi&Oj{gpQNGO^J^ znUu&|M&2^=mNDxxACQyWL{Nby$X})vZD@yCmyx+lcX}dw8QIHB>=Rz|HVBoAMI6k%TpH4m0kbYAe>wTfCg3~e<{?|T#jLT%NSE(hRAa5mE zE6G}^8$B4x7r3cPOOe0QYSyxW7-X)rjUC8d$qp->MdnH}SCYBX738gSgInCe>?@gl zofXEET9sRqE0VGp}OiRm{AK9;&pX7yTK?5JobFaZF$( z_E5!LRFSWWnO6A&*{ZmUDza6Pt%~ng4fr3ac$fFc$Oq&^_NsZwPeXj8>T1lU>TXW) zEBdMW7jJ@4H8rcLSuF+XR#Uf{KC5LS3)!%hGF7sK)PA&wY>he_2N=4MG?)R#%=QuJ~f65D9@j3|Ah)WXO za1Hru$X~-;YUrVc9%|&lJZgA1H9n#!c37hUve)Q9C%Phcjo$QQ0ArcJEatI*#jIcz zYgmWuH4bBUHSDg2+p6&=^47S|Bjm0jcMZ8~{2PR7ns?3A$XhcV-bqb)Yi36OHSM&f zoz~2a9%@#mJ@V9a^EH1#y;^>+R&g5Bm!XVcGeyKwJ=d9uKI`bS&H@&*jFo(Y zJ=NLBw`}D&W?09YsN+r4Im>x2aG9%I<0f`l=S~p%_#JXk6}S1Z*?znQzxVOqL8z{t z>K3LXWhhTYYS9SusVje7`Rlf#HQq~IJ=E<(fBc=OJD54Fz>U>)|8-@r>sxiVVPAE3 za+IHuxvu%vy~_h0^Ng4L6NKu;$IR<_=k=12lGMms?>)k(NoU+lJ#(vfkkgz){d#6n z?>e_Ii+a9QPtWz^VW;&Ilav&sA`A9dKO8fuAAz0LFGX3*rhZ+_p}yYh>%G3->knZ# zqmZTkcqU@j^`~K<_3g91H&A~)=2G8I>)UC4v#D=3^>?wGy~thvO%Q6372j;ofk|w_ z{u?|DLJiHOVH(nrflTD20ELjhq5KVt6G=&`VP*~MP!G4+urYn{1{#iK0_ayHO2l@iDSDYCtdKY_x^ncpZcqtJT>3HvSa*XuOEktYrh6Fz?3u zIKUweBY$K08~@G~yraf9`HTBJ;z4V9^;-D779BCK7P7Zkhk3O4mMxfn z3v+4V7Fy_`g&ta*;3Sv1j+wQ%!vh}kj2A(urTi_6B4@WP z<|^v7RHIcw5|f&&6h_TfYPPC^x~WC(Pyi@>_@+?j&Ph`IL%qkV_&WG*h-JB{>x`?t^VOn5c^i*u+DoHr{HRl$dFow8+q=I_|uU8)>6n8#UVez#a}GZ<{-)+2+5R`fVFR z-L~=3XWRdgluTqHKjGL}+X$j4MOo~xt(~=PMIY>`?LdYwoKfhr?Rd_qmqvbVj&zd`6zc|I+NxqhnNr+)8Kcl@cFZI>9cXlEAf(vuNy zqg@z<_=utuCz2|-xpsA^M`N1Nl26b>yG5)chRw*@lr?|-9DG|v?NgC|0Q(+qMDV>n5Q+ImP zmjSr5PUCS0o#tRyotEPLbXtwu==3dH*~a%=4?>-NqjOP8QvtdF%lGT_;*B!{;)!w=u z{PMR&94o)z!3ds)=%u4eZJsM}rL?sn9@HSVE%d)z?xk<3Ef?(Wp@(R@iynwRqU|VJ?&vkF=Ue2C-p2RXQMCC*pXV}H zku&->e_^iC4{>Myd!s@(Fb@O&mha zUTXGIvzMB^)a<2ZFEx9q)2jrPsYXrguU9=9(gZu})d~Ig>P|Gh>4zEglA+gTPVzDc z^>!D%)$LuBNJ`;0dfP>B^XUCE7cht3_SO3ae{v@X`G0o^_4yxi_K~xXoPE5rKACaL zeX^r&pBl*4N2We@(#KBv*hwFG{C7fy`V3_RqZx~gecV|ev+A=L`|7h2^Xjt}^Xg+> zeeA8zFFXrEef81TZ2Ec=ebwo^lpnc*z5TzXyN=SbZo`FrKMx%e(%nddbeF);9TL*b zkODKq%peG;v|^!zV!Z|yN_Tf7ozmT1`*835t#y2Rt?zsJ-RE^)*Ta7sNBXUeyvc2z z1fi$|Bqk{-Fh`WmqtcR-Jmkk7ql!?BW^|$l?lh_&k(ejSJW=L}iX|TVjXKQZAQT`Her(ZOmepv640DGv)xk zALIKmz8|CCn6q3!&oS4y5rjtRbyRxvH>x(x(c7pIjAIJZnZYM4WEE@Kz$PvRq1Ys( zLGD<4iOq%G#L6Bkdu&-MP#O0d+mv>6;4Qk+odLMLShp7I+p%VjoyLdE;cLFd-eP}3 z7qLq)f9wiY2cbB##Q9#F@A>aWh2pAF6Z6H{SzI)3FYW^-{HA+wt@H4d0G8Py7~qH~s*}IL&o@EB+4md4z9{PJr)>_MOp9XiHzr?Y|ur8g1^; zpYa8=`HFA&o*(%I-yZF|qt~$!-yiM!qs=|q+@s|feTXAL=$%Z|!>zot1~ZS*`IsoY zJH~rs{>Ch0{Qn=L!!bMfhm+`S%oXnPfR{mNY*JE?o*d++Fr_I+bs}g;J0daP*kO#o zoMZhK$Bt$!<9VM+n0Ktc$Lf2mzQ>w*tc+vLJoZmy9V_eDWw@uYn~`(u!yxpoPT$Rk z`QB|tdj|0yGx?dT+zvwH?0j4*vQUtc$Ujd0aTTdT9n3M#9OLY2Tyt770B??ybDXZn z9Ys&$+}F5k=xUs<#y#d4FM`l`eT{#W3}nXNA>;E>fI<|dIPPJ*KF0sS0_=JGChTRr zy^P<@LF{(C+a7-k-yVMnb4?5glbY=0!gnV6&P3mt=sOcjV7`g=G_e-uoM_I8=A3BG ziMpFOoG)01$Fe%rvPzofybq zhT4uC`KHyV+!FQ+F!xXuu=zPjmZlL=q z_i%?(p5S*j)iykJ1q-xO_OVy z-AyZs-A${2jMJ)7lQ*b~ey0s#BHo(jcBaWXZ8!V)hr=A@J}-jMba|%BGhLn!XEF~N zKHQ5rKI(#fd^DXenZwt7%Mbj--z;V+%hAzCYgvzPe&lXu=ygVU^g5#hZ_$+=^rkPP zcprVwFvE<=m}ADD_{I$1n6ZqNm~DpHX6$4adpLoe%&?Ogb~3|GX4uILJNeiReVmA- zq#zY(Nk>I=_wjgEa3KhNqW@3y{mGm3Vh}?aP870!GLH9<)qnRU^ofo>`G_C!&L?L7 z#2tR}JP3UnkbuM_LxxWa2BFV&{`p_5L0_M5Vk>6*++3eu=1vfr>5gW)qnR1-zny9B znP#53pM$tZ|DBf5O!q!h-(O@W7w%`4Z_YC3tlZ?ocV`u*7$qr94Qk_#W<}6|#x$il z1DL>9*ug9rXUR6p_h$LtZ2ivG?`-|fHrwp8li&-j8_ z%)#$r;TG&`p?xjfkJ%QQZJ}>3Jc$k$Wu^eWxyUyc`Q{?uT;!XJ8etEMTF@G^E$YBq zxW`4ZEQ%qHcX*cxe1Q2EO~YL-`ULqF{mdckZ_&LVv^W9TsD-x|n`yD^i|u8x+>7O2 zEcfDr9KoF}zR4q=2caeQv&0)q5@9z>vXGrzLmh8Z9ZHZo&$hPDJS9r)1WLzraQW=-}Ei83Q zOEV(pQaP8(xm3=j`d{jfmdd-dEV^IXnMk6MW$BmvkKgzcS(Yxw-+4>d;)a)QW-E5P z^mY(h=DW*M(uOzbh8`DH&bpWj))LYA-`d6%u>4EkA~2YXrGf?f<|Iy3kbvoE)Y z<#U*#Vtc`8wxX0${fE8LrZ&pWijO|J0PijCOe zigUQJ6?eEFgjPn-oKEy$Fk_j7xmGUYJpT79@9}`gL1@(*xUW^RulkXd_|B^JY{H&a z?O-?i_=m&Du<90f@%>e9Y1M!4J>x|XS{)E35lKjfzc*Ibr5|>*`ggpy+MipKnF_S# zExKZkHN6-_6r+e|4C9!<3_izx*UaG?zQ-(Ubhc(QSCG%Yn;ly7G6<~=;m+5}v^E8H zvNk(~DTO_+wU4#-v9=~UT3ZkIzP2H6;~Q)BvsN!_k8_jT*zr2^uFHxy*LicDJ+Jfb zI`6KlNM))~gQj%Coa^GSvvqE1-BMPtnssbs3)|VnUd*-bI`**69@g3EI$f@N8idvt z#|-OzXT2HLn_;~f)|+8{8}z%rH+Hc;lELV9{d<^gz3$d;_l9`FV{Zxa|!ic$e{bbHha3&jxR7aDN-TvB4V~ys^<68xxS2WTYfDuj0*(-rVTT zje6Xu$Bla2Xts^I+^EZqX56UDjkWOi#zu2&oX2`D2BA&%yUFitQ*+F@X$qgB=S}W@ z(;R-_cNVaaB`jwp+t`i#oBrV_CpgW&ybMB{^HLJO<;}8fb~~G^Qxn~9u8Z5=+>O5Y z&21jUP@;)tG-J@)=3nrQ&3;Q;l8_!%)6x}-rVBNExqyX7VmBu!Z7S$OBDLw z@(JeJVy-Rb+OmqZY+y5Xy=4dIxx`g&;HJ0S;{oQ}njC#@O+z{|l7(y(q9|@}t37S4 zPaEE(Bb_np)(L#TWTx>M-(m+_e_}qXk!P#kx9WYX-nU-EeQ$k=UbeZLZN9&)9} zw?noay4fMy4!L&7wPO+Xxx@Z;9N-uyIm0=was#<{+~s}{+L;sI*f|uv?0launT=U? zE?^_x-097oe)~JUyVJWn&A9VCm$-sm>@wr7(v+hjRj5ua>R>m!8ql3y*wHRK+GR(( zWbkikhj#gUZLcUc4#>B+3q9$LTzmDrcNFiV&%Gb<3G(dK>)v^M#}E9--XOHkH}>VnZ+Ks2 z+~mGyyos6jnP;Cj_jz-lJ?-=EKJV`PjG5TkzB#zleLLC1ehzX3bM7BWU!w>z?Jq?c%2ScL=wW{&nqqeU7I$d>NMzj~%XDV*6=vRV z=Kagqj2qf7=YBc&ALcxlu*dy3c*3(FbU>~HaviW+{}y-XKrZqi-+_Y2bf6*nI?$X} zw8ae^u$u#RbHLpk(BXl;*v)}=nSd@2Ok^_pJfP15_H@9W4t#;^2kh&>*SMhr$Ai#6 zI{POt^@zm(_Mhb(<#7-?m=PHd`rjNZfDRAp?qDUVQiIymC4$z-dQjGbvL5V7ANu3{ zgYq4m&r(*gmi265J32hLo0I77;2qrW!AH2?Ltzq;l;r60kl)B5-#GLEWJUL=+~JWHxPc?x@y#Re z^CQ3T8-HNVBa6`Kk>#x75O#Rv1gDYj$OU9PavL2S`7f6aj_TlO0@9FZ*b25F&#}WC<0N)_Os->c9dnn*WI68p$9?~JR&tOVJ3U?y_j0@#B`J-)9@pP- zyFG5V$8~sIhsWE{j`nn-GkQH9j}DKo;ol&1A~D`O;m@5g&xvWcgA;$Vm}SU*Vk5iQ z%K;AI7ET=JGBKZFv)2o|NgNU7zg9+l;|Io}9!~ zKIC)0WDa(Javt08jZ^wLrI%A>s7HNTVBS+h@#ZOSo|=GnPkHy$bUxw}+|?;}bZQ;$ z`P2o>bLtv5v6EBxdB~F>bUGaw$wGE=kr%(`)5WPwHEQw(GM#oer|svo`A>I5w$t4( z^XainL!Q$gBhTrd(f#RVtY9_n=CpmCKF=lG&FQ;A=uCj$*_p&7BLniBDL^5LQW3e% z$aSU$vYhe#GroVu@9Ru|-1C_s=LmcG<=eWof?EdVHAapJhzHv@J z=k#)J3?K6;b20C^Re1B9H_z?EyXU-n?l>nogS$HCj?Sm16lE~a`ASs9PR`e+4iR*v z2fgV>B!h9!=SMM-DNJVu@|>TE+0V;${%g#9{tp(gkgXi#2(q0&#Z~O#{8OF>p$h@& z(ftM8UnodnPF6ifiTe%?D1-UNBbwRERZsfvu{Ewel#CCSE z7k&9R$3y?BqS##sYpXQGGJd9%hHM{-0Q`ac<+)w zcgZ}L>e3zea%m7cy(IgkI41A`lbFhfnB&q{nBkHcF8$2!==G9bFD=FlmmUV8%Lz$_ zY?o!bEZ60XWF{-Ryln56t5K6Ts7Di;Bll(9UT()2eB<(d?CY{FEZ+?_Tll6*FFmpdt2lr6Yqe&y|n)4BcFrjoGf)(G~MuG2fLntY;Hj*}-n? z%D*KZx^j^#T;~>ddB9`b(bc4+;1$x4pVzUMs}-n>Tff?jmbAvaR|hhRc+7rv9FuX^ zS7+g_ug>FFmSL|~WxXov)jjOv9}aO2d9Lc~>dPQ>EsWc_CfhaHuG!7CwCM0!CW=uK zIj@zW92JrET2-o33;VjJ+iULU+E~74GgpJqb?;sG=dPQ_zat*HuIuYMzOLizI=(LZ zb+>ct?uqm=m1lEa!vJ4Kv&*Kxy=NL$({T-H_`>9o*54`sngT zPX^$=ZwzHPv5ZFU8@jzQf#2|rn<0{;i=2|wOo15D(+f6&VX}+80yLp4#+~Xlnc#d7&vZGrW$V@hJl85}fhI_x| z-fvaH{I_b*mLBv*##@n?`IcF4jpse&yJZiz=JPuXScp5iC8K}4JakLOTl+c1HEwc; z`$6co{%Ml_`ted&*kxAl12es1gX_DFPj zTbH-vc?bD#&qc=DXM)h31nA&S6Z~)QxUD;G=+05}csIcR=5Av2c-Kwd%}Ne(kry{~ z*Bf`sBJW*!@5+0(4iPk@F?zf^1vh+GhP(6lmLK_rU(w@T`@Xv!yS;0-cMo%ne>u-3 zuAt9*_Il4Z?&;v3x$lkUBR<9~_kLmp-n{3{d)~U|t$Qai|Gjfu#C!M5d(Yk6d&bKk zJv@;z9}ayGD+103Qg zC-8fHa2DM@aGMWgeIV-tSs%*xP`-z`$wxtCdsv0))Z`81d)OO0ei+GMq8QKnOkyfu z@B{Ypa6b0^(0(4SVlC_0gDemA_V6kDjm{s-{v<6qDS%v0ilWOW<*0~GpH!m;eQ{q;mgBuA-gt733*5ww zK241`pL+AD-8?n#Q|~@C>(f${#&7be{XA_>8`{wUGd}G`PkJ)~J9_#Hzwsx3vzTS9 zWDWN7^f;&Z7kheo343~aod-eaS%`%A-8@UqE4ZU)uaXP5{!9nYWPK*vGufWCqAl*| z+1rd^9Pi=ApMAt!=J6f6e=^=J9+*V?&SH`tm8rudf~kn{@jaZ48rZa_=L~- zlG%KZj$i2bg&AI$;e{Dqtiav8*u`EBaD?NS<;9sG^ir=c^B~_#xn8=Pm+t1JOfTzF zpGGu6hL_R&%yzu@^1nCkVNWk#2H_wjxyVBa%21w)RHG)fsY5He(u+RyXD~w<&PXQk zHEY?xX11}DJ?!ToN4Ud%9`TeHK{ym50dj>hk(C_eCLaYUL^)&(RiQd<=|OM$G5}dZ zGx(I5%;H=A;4c=jluc}92fI1WDgNagw}WsvG0BiCoSIk3KxVR$6CH;0Q;Dj`71m!^ zf8n}B(11oXr8zCpVR#w~IDkG9crSrJm!KPCn8OeJ#C(2ZF>6@QMz*jWT_-q-84{Qw z!FjH5om<=q!U<(hSehEtL#~94X@)Knwx<)F>B>Zwqnm`@OX!V6iAX{k>?lzwyqU1=WOD0z``%UJa zl1=7I{)b&B`;)(M*U46~7P*scVhgu}aB|;BUI)8Mu8ZUY(MNK#B%i=cyqVma$>-zU z+FDdLLg_%;ADTSF*pb(T$$; zp+7RE7{c3_KZUzaAzO+MFmsCUkST>({hRIK6iYE@ioG1*Anqu|-N0Wr=sRU%WKEeC zxl+oNGC!|TmI}z3QqGhO(N9XZoU$cd7)}(Uu#1#q7{`0qMan5mX9l`U`7`=UslSwe z@E5YC)M3hH=rHAK>?q|)o(JJqWO_wEujt{GshIJVJ=_e!sdSu5x2bfSO1G(UP>_<8 z#tf;53Urea){dU?J`%)e7WFC0DBT?Bf&{xXd;F%kuzt zoyu=B)r-Ji=@iB{QpaImsdbV1d-Rc72dT}R+B~VfncADF&*9zF-c5ajTi99Z`$0HO zLd=+^I<=@n1a_0gTxrae#$0LIGMHhwl{C@BG8#KdV>f9&;|pf<72hCNnjf*JH0DlY zCu!tMvxbA5MYc3GQ7NlFR|P?~a7MDJ-1zq0^4NxOvQtin#xZr}*VImv1KeUtV)7tv)}dDH4Mtv=J<3Bs?Y zrUWf<$FI)Bd$0O){(bgvy4+Nw9t~(rQ`*s$9`vFw{V_+n7<8O&EM`bIkts~aJn8;s zFEXZ+Eu9|I$(2s7boQI>5l?x}%OIS-5FN0)^xjMFjr8B4m-PBbzk=O(Grc#{+fVun zcsKoZ%$nY;>F)*M4EB^E4H?KpR&tSt{1n8_GBm<083r?q5kwjM$nk1w7_pY z>zj1sE$l4oWajfbzMIuNSmXXYuIa?uQ%T@xJvdNLHGhOMyAYyUX+3Xsa_ zJG=0E%XX48oZ}*XW7+=8^@L|ZID0a3k_TO7cNf`<;HI;eq6~JBy%JT?SN7KEEW6IK zcR**^WzF85p7fy~1NeadAyfA2K{!WRDqzMOqxgbFtY#e>*~}h}a2zw_FhdR<=Qxj> z&tZlfX2|h82Z{e=bUE9*^qX0!u{mzMsMWGDOb*c#4(W%`Iyg;C+F9E%MbjB zo^$RG!nu4Sms`r^K6B|JS2OgHO9#2koXb49yqU|Jxu)UWT;9z!lP|HeTwn1U_LJ)- zX32G*M?B?45Y8RK-Q-R}Zt~%~xeHSa-}i6DhjUjZ0<-3BLUUSSH@VxR;nB zMN@jvn|?$xm|=_{npj3N7CXpe2YF_puRQw7^9{1*`5!+qA06iTgPmLp!g*!NTN<k&-pXs8~N=jzrSzu>mvUr=p(-l z@|!uodGdQRzc=&m$GiExoBsr-u(SN)O0)6Pu zK!)%(Be9nPG8CA`N61p(bKG$Odnusb0`^kicg$MgZx$n0fzzDj0+%sgfoHr7!UaRv zMM2#cEJ_L7a>265S+D_(X+}%B(4AiNWdyPnbTb9xnZ#GfQqYYQ{E=VyjX#mApj-u) zv66l0t>7V!U?&Cbq~IB3E@(Fe?WW)rt_9)Ol2HhmUK_*=mT(+*RVXVJsL31DqdqO@ zz+0H1kQoZ~q&GS)WQIa!C^VXJyvIZ)BYUCk9Oe}NB3B`~3hA=Y9q#jx$3eJoURtA@ z!rm+Fjly%WqryM2h^=_Dur~{zz>W%gx9~;GTG*_GZ}2<_7fDWP(vqGmWFsfJDM=$D z8O$(zyNH>Jn5l>iMchu2@ytPvBH!`@@)Vhm8H?CUkqvBS8#~#98!B=TS&Nvvh`Ebg zMZTixkfCTk3Q`z(in<;Deto!TE$Yyj0Ssa&!--=eQ<#oj7IiyCzrpPk{gH(%VL2<2 ztEe3m)m2ehipo+{mZJYbfi1I=u3Yh`4rzMp&$RIeYnJnAY3vn z_Ej=F<}FzjZw;sq<2gDos{fE7rNo^p_1M!>26D!qog@Xnxo`8HnN57?BXI< zxXvx^@_EphkVQ|e&iQ^ z<4;zx7G0OpL#YEC;wZ<_c`2Q|F4OA?NkVd7Aq{$ZJtKDVdUjr?Eaj<)TX?-1HK@fK z)T2HP>4U#RUjG?8eq9%(y;s_wE8U)GbXs~Y^Y{+G$I`#Egyoo_v>8g9q4Xy9bC_eC zOG!W5$E{+eG!`FPv53FD- zc2;gT`;e{NMXqoiyDTSP`DCOdHSW25F7i@<*CNEIqFb$~zlwHT z(T*$b;S|@n%L5*xze)*6j2F( zmqEC)TdC|;DksHzl{1r#9GJVZxhvaE{ZQP)vQ&EQD>z^J~0Y z)4Mf)Wv?lGTIQ%_j#{shfy`thCl#nnHEQC1Yt^GZEih-TF4#-0 zUi3w`wFWW@v(_5JIDEgBS!%6j9UD2tHEyEgS~{*}PqmZdK5C~S9l0n*NlH_W+SEms z+U}!vJ0cm(Fh-#B+B&a2nz4-MeeAyWSLmqrcl?0f8##b@O6Rb-h>D8+9XbhjpWnx9;b7 zv#vMmnzycZ>w35DLKfrZ>e^G??HuL=_Eh&@E^?V`+`z8tnX8`u>ouV{t!RsH*K;5B zy3ieasAmuL?4h0<_3WXZJ=B}Rr+m$~$W`wr=3@`_?4jN&*0KR});rG~?(>MJK{z4< zW{)U9A&OFln&=}!&k=f#XoEZvz39sTqLD8`zKAhQ^b}zS z5q1#q54wst%5hF|hI8mFLT3>=i_lqw9o2t@V(6>BTdn^YIa zF|s%4OgDPchyFwogZvHj+h9BsnZk5FLhc58k*$IL8eHNkGBvo59vkSfft@yxp`i{N zc0ex;z1Pqi4Zp*F8rn-kc^mG=n+?6$@GKYbZo})Cv!NX|ycdKUB_JhP$VqPU;Tw&L zP@Ixf$IUc~#~vDu<2}sM$SjS_(r5;sVjqqE#9WQ+qmg|yvX4fq*@B%kvXe%~kgt(_ zG&+ZUG_sFI4|t538@&j^jnk8d{1l`x6{v$9G`54rP3XZ8-ex3vZ>;mi)6h}lPxzc~ z`2)Y##*0|WCbqJJUC7p0PmS*)Ph)xf`~Km^`fm~@5lKlwDs9E<4=%tzWn*I029o$Vbx7b|X z<~i_Yb8q_h_ruM-+uXa&t5A)a)TRX;@VjUp$smT}8_lDMC7vnxeK%i^oiz9D<~uM` za~Ybuo#t+*x&1VkqxnOgAWw^c1lUarJ86-H?8xWe^bfZvfc> zMPCLWUkkU>Vj6Czh1+TIIbSg!{kK?v{#&eN7kfE?-dosb3-{dO3fFKyEoEw%mh@yI zEBb4hn|!#RmW3%sE!=lYJ84;;hS*8VX0)IcZIQdBURy@-8Ot~xgj?yNmG@ftbFKRE z0pIf*fATkrSj`r;V}@2{Xk~_02RX|nu5tsvg;ozRORJ|rxOGnKxwU+)UcGYGHYdC|Qw6T*mcGBiLe&21()W%G0%+&T(GLV^Un6GUf?53@qw3V%` zdudw(H{G@_a<*-RtZn6M`xag4!D!@ZD^FW_+J4MDe!~vh+CkgJ?BpmXIE~)h>b&hE zbkz1m5N;RZ6|&-H+T}*BcBLpoc`71PJ2~3P(N2zba{@X<|m|=_{nyJXv&TiU$ z!e@NJZ1mSo-ge*d13$76J-(TgA~a<U;w|c9yC0Q}o$IpIs6lLzfbCWh~z7;*Bmp<8HdR#V+!8`3G-y z@n#qEcDaUkyWGW`T^{iy2zO0JMzUc~U2{`_*C;|U?5b-UMiN6DX6pJb6R?-AlbOc< zkfp2rbhV$Z_S1C{OIXV;_HqFE{C5GuUG1o=9d)&%uJ+OO4)>9DCmt)2$EgxLXvXh)1?=dhYfqGns{a-Tr1VdhfQ9ZR}(Z`#6Q}yFEll-JS>G z?g9Gmo*12VPf2QCMYis;b=Ot*5|pA06Ztx@s_mQoSY<*^K+;tz>`sk~V9rSsRiA+J>J|FQhpR$0x+z-NiGvN;Vc4Go&>ARlOT;>{ndwp*s zd%py@^?u1niCgcNmYm4nuONjf!RzR^UwP#3r^kM>_4|OyOl1Z#_4}MJ_>qOIU^VO5 z$PRY1j{_X!Wf1P~8~t0-k-o&Di~i>CZ{Get;LZMjvI?{H_g?=k*i(OR_V;FgZ}vaS z(;z$`JGsb90Se(}2AFAp?+q~10DBo=F9Xaqz+MK}%K&>B;GPHcVK`CP%>a1@jKS;! zPb8aKn+6sYXp2 zBU7YIkzH^rk%Jk=2xN;KkIo}!^A+FlJwNgbzoECtzgdhOMCvP2w#fbbgBy=L%5hF| z20cce55fb({>42Hy2edzqtn6JX^L(JdvCBe2G8V6zU2?r zq{56tGLV_9_-zcShdze%$2>!Z@HQif zA&z&DV~G10;y#AV!*6rQ|M-aoxS1iVSjz@Bvz3FGeaJEFWXM$>@st-qcxZ^E$Tc(* zS`pKGGJrwY)krrtawOB4!Kch*7IXO;`x$93 zBjp?^=ScI9ly&45%sp}!vW`5(HRKy9-^lwxI4Vpcl9B>DiL#R@8KZJhj9S#eE~5PI zqngm1Ri;*p6922nn7@1;p z9rF>ojrogXZ;tZjs0Da; zly^tD)lsWhi<=#_k7L~BQ4o$zLtd&-om$kvK4N_@wlQt6gIGI=bxW~sDYg&x5o;f@ zqtI!r9I@^vb{6u)&f_=!M4niAV$B!pcN4pn?dU)D4ClDW73?ea0grjciy#~q!oA0( zBtIpoL_M0(5;^1Eq$54)jhm0_PbBsdH-(?r!FlXD&aKAjBJL@^6(5kE9Ox##0EH+* z1@siJr}#SPDZVK!u$y={8!tnAH+(lr8g3x|V?JXh-|!1d&`rF2@w>6F z_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist index 268deb9..747e56b 100644 --- a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,6 +4,11 @@ SchemeUserState + Example (watchOS) Watch App.xcscheme_^#shared#^_ + + orderHint + 1 + Example.xcscheme_^#shared#^_ orderHint @@ -17,6 +22,16 @@ primary + 84664C2A2BF9FD6400A24148 + + primary + + + 84664C2F2BF9FD6400A24148 + + primary + + diff --git a/AppExample/Example/Screens/Onboarding/OnboardingView.swift b/AppExample/Example/Screens/Onboarding/OnboardingView.swift index c3b89b6..ab5152a 100644 --- a/AppExample/Example/Screens/Onboarding/OnboardingView.swift +++ b/AppExample/Example/Screens/Onboarding/OnboardingView.swift @@ -3,6 +3,8 @@ // OnboardingView.swift, created on 25.09.2023 // + + import Factory import OversizeServices import OversizeUI diff --git a/AppExample/Example/Test/TestView.swift b/AppExample/Example/Test/TestView.swift new file mode 100644 index 0000000..979fd84 --- /dev/null +++ b/AppExample/Example/Test/TestView.swift @@ -0,0 +1,24 @@ +// +// Copyright © 2024 Alexander Romanov +// TestView.swift, created on 19.05.2024 +// + +import OversizeKit +import OversizeContactsKit +import OversizeLocationKit +import OversizePhotoKit +import OversizeCalendarKit +import OversizeNoticeKit +import OversizeNotificationKit +import OversizeOnboardingKit +import SwiftUI + +struct TestView: View { + var body: some View { + Text("Hello, World!") + } +} + +#Preview { + TestView() +} diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift index 99352cc..d75db38 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift @@ -102,7 +102,9 @@ import SwiftUI .padding(.bottom, .xxxSmall) .padding(.horizontal, .small) - textEditor + #if !os(watchOS) + textEditor + #endif calendarButtons @@ -142,60 +144,62 @@ import SwiftUI .controlRadius(.large) } - var textEditor: some View { - VStack(spacing: 2) { - TextEditor(text: $viewModel.note) - .onSurfaceHighEmphasisForegroundColor() - .padding(.horizontal, .xSmall) - .padding(.vertical, .xxSmall) - .focused($focusedField, equals: .note) - .body(.medium) - .scrollContentBackground(.hidden) - .background { - #if os(iOS) - RoundedRectangleCorner(radius: 4, corners: [.bottomLeft, .bottomRight]) - .fillSurfaceSecondary() - .overlay(alignment: .topLeading) { - if viewModel.note.isEmpty { - Text("Note") - .body(.medium) - .onSurfaceDisabledForegroundColor() - .padding(.small) + #if !os(watchOS) + var textEditor: some View { + VStack(spacing: 2) { + TextEditor(text: $viewModel.note) + .onSurfaceHighEmphasisForegroundColor() + .padding(.horizontal, .xSmall) + .padding(.vertical, .xxSmall) + .focused($focusedField, equals: .note) + .body(.medium) + .scrollContentBackground(.hidden) + .background { + #if os(iOS) + RoundedRectangleCorner(radius: 4, corners: [.bottomLeft, .bottomRight]) + .fillSurfaceSecondary() + .overlay(alignment: .topLeading) { + if viewModel.note.isEmpty { + Text("Note") + .body(.medium) + .onSurfaceDisabledForegroundColor() + .padding(.small) + } } - } - #else - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - .overlay(alignment: .topLeading) { - if viewModel.note.isEmpty { - Text("Note") - .body(.medium) - .onSurfaceDisabledForegroundColor() - .padding(.small) + #else + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + .overlay(alignment: .topLeading) { + if viewModel.note.isEmpty { + Text("Note") + .body(.medium) + .onSurfaceDisabledForegroundColor() + .padding(.small) + } } - } - #endif - } - .frame(minHeight: 76) - - TextField("URL", text: $viewModel.url) - .focused($focusedField, equals: .url) - .onSurfaceHighEmphasisForegroundColor() - .body(.medium) - .padding(.horizontal, .small) - .padding(.vertical, 18) - .background { - #if os(iOS) - RoundedRectangleCorner(radius: 4, corners: [.topLeft, .topRight]) - .fillSurfaceSecondary() - #else - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - #endif - } + #endif + } + .frame(minHeight: 76) + + TextField("URL", text: $viewModel.url) + .focused($focusedField, equals: .url) + .onSurfaceHighEmphasisForegroundColor() + .body(.medium) + .padding(.horizontal, .small) + .padding(.vertical, 18) + .background { + #if os(iOS) + RoundedRectangleCorner(radius: 4, corners: [.topLeft, .topRight]) + .fillSurfaceSecondary() + #else + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + #endif + } + } + .clipShape(RoundedRectangle(cornerRadius: .large, style: .continuous)) } - .clipShape(RoundedRectangle(cornerRadius: .large, style: .continuous)) - } + #endif var repitView: some View { Group { @@ -475,12 +479,14 @@ import SwiftUI .padding(.horizontal, .medium) .padding(.vertical, 20) .onSurfaceMediumEmphasisForegroundColor() - .background(.ultraThinMaterial) - .overlay(alignment: .top) { - Rectangle() - .fill(Color.onSurfaceHighEmphasis.opacity(0.05)) - .frame(height: 1) - } + #if !os(watchOS) + .background(.ultraThinMaterial) + #endif + .overlay(alignment: .top) { + Rectangle() + .fill(Color.onSurfaceHighEmphasis.opacity(0.05)) + .frame(height: 1) + } } @ViewBuilder diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift index e7096ce..f9fac0f 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift @@ -93,9 +93,13 @@ import SwiftUI CalendarPicker(selection: $viewModel.calendar, calendars: viewModel.calendars, sourses: viewModel.sourses) .presentationDetents([.large]) case .location: - AddressPicker(address: $viewModel.locationName, location: $viewModel.location) - .interactiveDismissDisabled(true) - .presentationDetents([.large]) + #if !os(watchOS) + AddressPicker(address: $viewModel.locationName, location: $viewModel.location) + .interactiveDismissDisabled(true) + .presentationDetents([.large]) + #else + EmptyView() + #endif case .repeat: RepeatPicker(selectionRule: $viewModel.repitRule, selectionEndRule: $viewModel.repitEndRule) diff --git a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift index 71fd9d4..be20de4 100644 --- a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift @@ -116,16 +116,20 @@ import SwiftUI .textFieldStyle(DefaultPlaceholderTextFieldStyle()) .focused($isFocusedRepitCount) case .endDate: - DatePicker("Date", selection: Binding(get: { - endDate - }, set: { newDate in - endDate = newDate - endRule = .endDate(newDate) - })) - #if os(iOS) - .datePickerStyle(.wheel) + #if !os(watchOS) + DatePicker("Date", selection: Binding(get: { + endDate + }, set: { newDate in + endDate = newDate + endRule = .endDate(newDate) + })) + #if os(iOS) + .datePickerStyle(.wheel) + #endif + .labelsHidden() + #else + ProgressView() #endif - .labelsHidden() } } } diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift index 6af1afd..25d53c8 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift @@ -91,7 +91,11 @@ import SwiftUI @ViewBuilder private func placeholder() -> some View { - LoaderOverlayView() + #if os(watchOS) + ProgressView() + #else + LoaderOverlayView() + #endif } } #endif diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift index 274212f..c575fcb 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift @@ -226,7 +226,11 @@ import SwiftUI @ViewBuilder private func placeholder() -> some View { - LoaderOverlayView() + #if os(watchOS) + ProgressView() + #else + LoaderOverlayView() + #endif } } #endif diff --git a/Sources/OversizeLocationKit/AddressField/AddressField.swift b/Sources/OversizeLocationKit/AddressField/AddressField.swift index 1a8faa4..a126453 100644 --- a/Sources/OversizeLocationKit/AddressField/AddressField.swift +++ b/Sources/OversizeLocationKit/AddressField/AddressField.swift @@ -50,7 +50,9 @@ public struct AddressField: View { public var body: some View { Button { - isShowPicker.toggle() + #if !os(watchOS) + isShowPicker.toggle() + #endif } label: { VStack(alignment: .leading, spacing: .xSmall) { if fieldPlaceholderPosition == .adjacent { @@ -86,9 +88,11 @@ public struct AddressField: View { } .foregroundColor(.onSurfaceHighEmphasis) .buttonStyle(.field) - .sheet(isPresented: $isShowPicker) { - AddressPicker(address: $seletedAddress, location: $seletedLocation, place: $seletedPlace) - } + #if !os(watchOS) + .sheet(isPresented: $isShowPicker) { + AddressPicker(address: $seletedAddress, location: $seletedLocation, place: $seletedPlace) + } + #endif } private var fieldOffset: CGFloat { diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift index 33b1775..d4a92a4 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift @@ -11,225 +11,227 @@ import OversizeLocationService import OversizeUI import SwiftUI -public struct AddressPicker: View { - @Environment(\.dismiss) private var dismiss - @StateObject private var viewModel = AddressPickerViewModel() - @FocusState private var isFocusSearth - - @Binding private var seletedAddress: String? - @Binding private var seletedLocation: CLLocationCoordinate2D? - @Binding private var seletedPlace: LocationAddress? - - public init( - address: Binding = .constant(nil), - location: Binding = .constant(nil), - place: Binding = .constant(nil) - ) { - _seletedAddress = address - _seletedLocation = location - _seletedPlace = place - } - - public var body: some View { - PageView("Location") { - LazyVStack(spacing: .zero) { - if viewModel.appError != nil { - currentLocation - } +#if !os(watchOS) + public struct AddressPicker: View { + @Environment(\.dismiss) private var dismiss + @StateObject private var viewModel = AddressPickerViewModel() + @FocusState private var isFocusSearth + + @Binding private var seletedAddress: String? + @Binding private var seletedLocation: CLLocationCoordinate2D? + @Binding private var seletedPlace: LocationAddress? + + public init( + address: Binding = .constant(nil), + location: Binding = .constant(nil), + place: Binding = .constant(nil) + ) { + _seletedAddress = address + _seletedLocation = location + _seletedPlace = place + } - if viewModel.searchTerm.isEmpty, !viewModel.lastSearchAddresses.isEmpty { - HStack(spacing: .zero) { - Text("Recent") - Spacer() + public var body: some View { + PageView("Location") { + LazyVStack(spacing: .zero) { + if viewModel.appError != nil { + currentLocation } - .title3() - .onSurfaceMediumEmphasisForegroundColor() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) - recentResults - } else { - results + if viewModel.searchTerm.isEmpty, !viewModel.lastSearchAddresses.isEmpty { + HStack(spacing: .zero) { + Text("Recent") + Spacer() + } + .title3() + .onSurfaceMediumEmphasisForegroundColor() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) + + recentResults + } else { + results + } } } - } - .leadingBar { - BarButton(.close) - } - .topToolbar { - TextField("Search places or addresses", text: $viewModel.searchTerm) - .submitScope(viewModel.searchTerm.count < 2) - .textFieldStyle(DefaultPlaceholderTextFieldStyle()) - .focused($isFocusSearth) - .submitLabel(.done) - .onSubmit { - if viewModel.searchTerm.count > 2 { - viewModel.isSaveFromSearth = true - seletedAddress = viewModel.searchTerm - Task { - let coordinate = try? await viewModel.locationService.fetchCoordinateFromAddress(viewModel.searchTerm) - if let coordinate { - let address = try? await viewModel.locationService.fetchAddressFromLocation(coordinate) - seletedLocation = coordinate - seletedPlace = address - } else { - seletedPlace = nil - seletedLocation = nil + .leadingBar { + BarButton(.close) + } + .topToolbar { + TextField("Search places or addresses", text: $viewModel.searchTerm) + .submitScope(viewModel.searchTerm.count < 2) + .textFieldStyle(DefaultPlaceholderTextFieldStyle()) + .focused($isFocusSearth) + .submitLabel(.done) + .onSubmit { + if viewModel.searchTerm.count > 2 { + viewModel.isSaveFromSearth = true + seletedAddress = viewModel.searchTerm + Task { + let coordinate = try? await viewModel.locationService.fetchCoordinateFromAddress(viewModel.searchTerm) + if let coordinate { + let address = try? await viewModel.locationService.fetchAddressFromLocation(coordinate) + seletedLocation = coordinate + seletedPlace = address + } else { + seletedPlace = nil + seletedLocation = nil + } + viewModel.isSaveFromSearth = false + saveToHistory() + dismiss() } - viewModel.isSaveFromSearth = false - saveToHistory() - dismiss() } } - } - .overlay(alignment: .trailing) { - if viewModel.isSaveFromSearth { - ProgressView() - .padding(.trailing, .xSmall) + .overlay(alignment: .trailing) { + if viewModel.isSaveFromSearth { + ProgressView() + .padding(.trailing, .xSmall) + } } - } - } - // .scrollDismissesKeyboard(.immediately) - .task(priority: .background) { - do { - try await viewModel.updateCurrentPosition() - if viewModel.isSaveCurentPositon { - onSaveCurrntPosition() - } - } catch {} - } - .onAppear { - isFocusSearth = true - } - } - - private var currentLocation: some View { - Row("Current Location") { - if viewModel.isFetchUpdatePositon { - viewModel.isSaveCurentPositon = true - } else { - onSaveCurrntPosition() } - } leading: { - IconDeprecated(.navigation) - .iconOnSurface() + // .scrollDismissesKeyboard(.immediately) + .task(priority: .background) { + do { + try await viewModel.updateCurrentPosition() + if viewModel.isSaveCurentPositon { + onSaveCurrntPosition() + } + } catch {} + } + .onAppear { + isFocusSearth = true + } } - .padding(.bottom, viewModel.searchTerm.isEmpty ? .small : .zero) - .loading(viewModel.isSaveCurentPositon) - } - - private var recentResults: some View { - ForEach(viewModel.lastSearchAddresses.reversed()) { address in - Row(address.address ?? address.place?.address ?? "Latitude: \(address.location?.latitude ?? 0), longitude:longitude \(address.location?.longitude ?? 0)") { - if let latitude = address.location?.latitude, let longitude = address.location?.longitude { - onCompleteSearth(seletedAddress: address.address, seletedLocation: CLLocationCoordinate2D(latitude: latitude, longitude: longitude), seletedPlace: address.place, saveToHistory: false) + private var currentLocation: some View { + Row("Current Location") { + if viewModel.isFetchUpdatePositon { + viewModel.isSaveCurentPositon = true } else { - onCompleteSearth(seletedAddress: address.address, seletedLocation: nil, seletedPlace: address.place, saveToHistory: false) + onSaveCurrntPosition() } } leading: { - IconDeprecated(.mapPin) + IconDeprecated(.navigation) .iconOnSurface() } - .rowClearButton { - if let fooOffset = viewModel.lastSearchAddresses.firstIndex(where: { $0.id == address.id }) { - viewModel.lastSearchAddresses.remove(at: fooOffset) + .padding(.bottom, viewModel.searchTerm.isEmpty ? .small : .zero) + .loading(viewModel.isSaveCurentPositon) + } + + private var recentResults: some View { + ForEach(viewModel.lastSearchAddresses.reversed()) { address in + + Row(address.address ?? address.place?.address ?? "Latitude: \(address.location?.latitude ?? 0), longitude:longitude \(address.location?.longitude ?? 0)") { + if let latitude = address.location?.latitude, let longitude = address.location?.longitude { + onCompleteSearth(seletedAddress: address.address, seletedLocation: CLLocationCoordinate2D(latitude: latitude, longitude: longitude), seletedPlace: address.place, saveToHistory: false) + } else { + onCompleteSearth(seletedAddress: address.address, seletedLocation: nil, seletedPlace: address.place, saveToHistory: false) + } + } leading: { + IconDeprecated(.mapPin) + .iconOnSurface() + } + .rowClearButton { + if let fooOffset = viewModel.lastSearchAddresses.firstIndex(where: { $0.id == address.id }) { + viewModel.lastSearchAddresses.remove(at: fooOffset) + } } } } - } - private var results: some View { - ForEach(viewModel.locationResults, id: \.self) { location in + private var results: some View { + ForEach(viewModel.locationResults, id: \.self) { location in - Row(location.title, subtitle: location.subtitle) { - reverseGeo(location: location) - } leading: { - IconDeprecated(.mapPin) - .iconOnSurface() + Row(location.title, subtitle: location.subtitle) { + reverseGeo(location: location) + } leading: { + IconDeprecated(.mapPin) + .iconOnSurface() + } } } - } - func reverseGeo(location: MKLocalSearchCompletion) { - let searchRequest = MKLocalSearch.Request(completion: location) - let search = MKLocalSearch(request: searchRequest) - var coordinateK: CLLocationCoordinate2D? - search.start { response, error in - if error == nil, let coordinate = response?.mapItems.first?.placemark.coordinate { - coordinateK = coordinate - } + func reverseGeo(location: MKLocalSearchCompletion) { + let searchRequest = MKLocalSearch.Request(completion: location) + let search = MKLocalSearch(request: searchRequest) + var coordinateK: CLLocationCoordinate2D? + search.start { response, error in + if error == nil, let coordinate = response?.mapItems.first?.placemark.coordinate { + coordinateK = coordinate + } - if let c = coordinateK { - let location = CLLocation(latitude: c.latitude, longitude: c.longitude) - CLGeocoder().reverseGeocodeLocation(location) { placemarks, error in + if let c = coordinateK { + let location = CLLocation(latitude: c.latitude, longitude: c.longitude) + CLGeocoder().reverseGeocodeLocation(location) { placemarks, error in - guard let placemark = placemarks?.first else { - let errorString = error?.localizedDescription ?? "Unexpected Error" - print("Unable to reverse geocode, \(errorString)") - return - } + guard let placemark = placemarks?.first else { + let errorString = error?.localizedDescription ?? "Unexpected Error" + print("Unable to reverse geocode, \(errorString)") + return + } - let reversedGeoLocation = LocationAddress(with: placemark) + let reversedGeoLocation = LocationAddress(with: placemark) - let address = "\(reversedGeoLocation.streetName) \(reversedGeoLocation.streetNumber)".capitalizingFirstLetter() - onCompleteSearth(seletedAddress: address, seletedLocation: c, seletedPlace: reversedGeoLocation) + let address = "\(reversedGeoLocation.streetName) \(reversedGeoLocation.streetNumber)".capitalizingFirstLetter() + onCompleteSearth(seletedAddress: address, seletedLocation: c, seletedPlace: reversedGeoLocation) + } } } } - } - func onCompleteSearth(seletedAddress: String?, seletedLocation: CLLocationCoordinate2D?, seletedPlace: LocationAddress?, saveToHistory: Bool = true) { - if let seletedAddress { - self.seletedAddress = seletedAddress - } else { - self.seletedAddress = seletedPlace?.address + func onCompleteSearth(seletedAddress: String?, seletedLocation: CLLocationCoordinate2D?, seletedPlace: LocationAddress?, saveToHistory: Bool = true) { + if let seletedAddress { + self.seletedAddress = seletedAddress + } else { + self.seletedAddress = seletedPlace?.address + } + self.seletedLocation = seletedLocation + self.seletedPlace = seletedPlace + if saveToHistory { + self.saveToHistory() + } + dismiss() } - self.seletedLocation = seletedLocation - self.seletedPlace = seletedPlace - if saveToHistory { - self.saveToHistory() + + private func onSaveCurrntPosition() { + Task { + let address = try? await viewModel.locationService.fetchAddressFromLocation(viewModel.currentLocation) + if let address { + seletedAddress = address.address + seletedPlace = address + } else { + seletedAddress = nil + seletedPlace = nil + } + seletedLocation = viewModel.currentLocation + saveToHistory() + dismiss() + } } - dismiss() - } - private func onSaveCurrntPosition() { - Task { - let address = try? await viewModel.locationService.fetchAddressFromLocation(viewModel.currentLocation) - if let address { - seletedAddress = address.address - seletedPlace = address + func saveToHistory() { + let lastSearth: SearchHistoryAddress + if let seletedLocation { + lastSearth = SearchHistoryAddress( + id: UUID().uuidString, + address: seletedAddress, + location: SearchHistoryLocationCoordinate(coordinate: seletedLocation), + place: seletedPlace + ) } else { - seletedAddress = nil - seletedPlace = nil + lastSearth = SearchHistoryAddress( + id: UUID().uuidString, + address: seletedAddress, + location: nil, + place: seletedPlace + ) } - seletedLocation = viewModel.currentLocation - saveToHistory() - dismiss() + viewModel.lastSearchAddresses.append(lastSearth) } - } - func saveToHistory() { - let lastSearth: SearchHistoryAddress - if let seletedLocation { - lastSearth = SearchHistoryAddress( - id: UUID().uuidString, - address: seletedAddress, - location: SearchHistoryLocationCoordinate(coordinate: seletedLocation), - place: seletedPlace - ) - } else { - lastSearth = SearchHistoryAddress( - id: UUID().uuidString, - address: seletedAddress, - location: nil, - place: seletedPlace - ) + private func onDoneAction() { + dismiss() } - viewModel.lastSearchAddresses.append(lastSearth) - } - - private func onDoneAction() { - dismiss() } -} +#endif diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift index 92e6fd5..0519299 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift @@ -11,75 +11,77 @@ import OversizeLocationService import OversizeModels import SwiftUI -@MainActor -class AddressPickerViewModel: NSObject, ObservableObject { - @Injected(\.locationService) var locationService: LocationServiceProtocol +#if !os(watchOS) + @MainActor + class AddressPickerViewModel: NSObject, ObservableObject { + @Injected(\.locationService) var locationService: LocationServiceProtocol - @Published var locationResults: [MKLocalSearchCompletion] = .init() - @Published var searchTerm: String = .init() - @AppStorage("AppState.LastSearchAddresses") var lastSearchAddresses: [SearchHistoryAddress] = .init() + @Published var locationResults: [MKLocalSearchCompletion] = .init() + @Published var searchTerm: String = .init() + @AppStorage("AppState.LastSearchAddresses") var lastSearchAddresses: [SearchHistoryAddress] = .init() - @Published var currentLocation: CLLocationCoordinate2D = .init(latitude: 0, longitude: 0) + @Published var currentLocation: CLLocationCoordinate2D = .init(latitude: 0, longitude: 0) - @Published var isFetchUpdatePositon: Bool = .init(false) - @Published var isSaveCurentPositon: Bool = .init(false) - @Published var isSaveFromSearth: Bool = .init(false) + @Published var isFetchUpdatePositon: Bool = .init(false) + @Published var isSaveCurentPositon: Bool = .init(false) + @Published var isSaveFromSearth: Bool = .init(false) - private var cancellables: Set = [] + private var cancellables: Set = [] - private var searchCompleter = MKLocalSearchCompleter() - private var currentPromise: ((Result<[MKLocalSearchCompletion], Error>) -> Void)? + private var searchCompleter = MKLocalSearchCompleter() + private var currentPromise: ((Result<[MKLocalSearchCompletion], Error>) -> Void)? - @State var appError: AppError? + @State var appError: AppError? - override init() { - super.init() - searchCompleter.delegate = self - searchCompleter.resultTypes = MKLocalSearchCompleter.ResultType([.address]) + override init() { + super.init() + searchCompleter.delegate = self + searchCompleter.resultTypes = MKLocalSearchCompleter.ResultType([.address]) - $searchTerm - .debounce(for: .seconds(0.2), scheduler: RunLoop.main) - .removeDuplicates() - .flatMap { currentSearchTerm in - self.searchTermToResults(searchTerm: currentSearchTerm) + $searchTerm + .debounce(for: .seconds(0.2), scheduler: RunLoop.main) + .removeDuplicates() + .flatMap { currentSearchTerm in + self.searchTermToResults(searchTerm: currentSearchTerm) + } + .sink(receiveCompletion: { _ in + // Handle error + }, receiveValue: { results in + self.locationResults = results + }) + .store(in: &cancellables) + } + + func searchTermToResults(searchTerm: String) -> Future<[MKLocalSearchCompletion], Error> { + Future { promise in + self.searchCompleter.queryFragment = searchTerm + self.currentPromise = promise } - .sink(receiveCompletion: { _ in - // Handle error - }, receiveValue: { results in - self.locationResults = results - }) - .store(in: &cancellables) + } } - func searchTermToResults(searchTerm: String) -> Future<[MKLocalSearchCompletion], Error> { - Future { promise in - self.searchCompleter.queryFragment = searchTerm - self.currentPromise = promise + extension AddressPickerViewModel: MKLocalSearchCompleterDelegate { + func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { + currentPromise?(.success(completer.results)) } - } -} -extension AddressPickerViewModel: MKLocalSearchCompleterDelegate { - func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { - currentPromise?(.success(completer.results)) + func completer(_: MKLocalSearchCompleter, didFailWithError _: Error) {} } - func completer(_: MKLocalSearchCompleter, didFailWithError _: Error) {} -} - -extension AddressPickerViewModel { - func updateCurrentPosition() async throws { - let status = locationService.permissionsStatus() - switch status { - case .success: - isFetchUpdatePositon = true - let currentPosition = try await locationService.currentLocation() - guard let newLocation = currentPosition else { return } - currentLocation = newLocation - print("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") - isFetchUpdatePositon = false - case let .failure(error): - appError = error + extension AddressPickerViewModel { + func updateCurrentPosition() async throws { + let status = locationService.permissionsStatus() + switch status { + case .success: + isFetchUpdatePositon = true + let currentPosition = try await locationService.currentLocation() + guard let newLocation = currentPosition else { return } + currentLocation = newLocation + print("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") + isFetchUpdatePositon = false + case let .failure(error): + appError = error + } } } -} +#endif diff --git a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift index 4aaecb7..f004927 100644 --- a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift +++ b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift @@ -7,154 +7,156 @@ import MapKit import OversizeUI import SwiftUI -public struct MapCoordinateView: View { - @Environment(\.screenSize) var screenSize - @Environment(\.openURL) var openURL - @StateObject var viewModel: MapCoordinateViewModel +#if !os(watchOS) + public struct MapCoordinateView: View { + @Environment(\.screenSize) var screenSize + @Environment(\.openURL) var openURL + @StateObject var viewModel: MapCoordinateViewModel - public init(_ location: CLLocationCoordinate2D, annotation: String? = nil) { - _viewModel = StateObject(wrappedValue: MapCoordinateViewModel(location: location, annotation: annotation)) - } + public init(_ location: CLLocationCoordinate2D, annotation: String? = nil) { + _viewModel = StateObject(wrappedValue: MapCoordinateViewModel(location: location, annotation: annotation)) + } - public var body: some View { - VStack(spacing: 0) { - if #available(iOS 16.0, *) { - mapView - .ignoresSafeArea() - .safeAreaInset(edge: .top) { - ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { - BarButton(.back) - }, trailingBar: { - BarButton(.icon(.map, action: { - viewModel.isShowRoutePickerSheet.toggle() - })) - }) - .background(.thickMaterial, ignoresSafeAreaEdges: .top) - } - #if os(iOS) - .toolbar(.hidden, for: .tabBar) - #endif - } else { - mapView - .safeAreaInset(edge: .top) { - ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { - BarButton(.back) - }, trailingBar: { - BarButton(.icon(.map, action: { - viewModel.isShowRoutePickerSheet.toggle() - })) - }) - } + public var body: some View { + VStack(spacing: 0) { + if #available(iOS 16.0, *) { + mapView + .ignoresSafeArea() + .safeAreaInset(edge: .top) { + ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { + BarButton(.back) + }, trailingBar: { + BarButton(.icon(.map, action: { + viewModel.isShowRoutePickerSheet.toggle() + })) + }) + .background(.thickMaterial, ignoresSafeAreaEdges: .top) + } + #if os(iOS) + .toolbar(.hidden, for: .tabBar) + #endif + } else { + mapView + .safeAreaInset(edge: .top) { + ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { + BarButton(.back) + }, trailingBar: { + BarButton(.icon(.map, action: { + viewModel.isShowRoutePickerSheet.toggle() + })) + }) + } + } + } + .sheet(isPresented: $viewModel.isShowRoutePickerSheet) { + routeSheetView + .presentationDetents([.height(260)]) } } - .sheet(isPresented: $viewModel.isShowRoutePickerSheet) { - routeSheetView - .presentationDetents([.height(260)]) - } - } - var mapView: some View { - ZStack(alignment: .trailing) { - Map(coordinateRegion: region, showsUserLocation: true, userTrackingMode: $viewModel.userTrackingMode, annotationItems: viewModel.annotations) { - MapMarker(coordinate: $0.coordinate) + var mapView: some View { + ZStack(alignment: .trailing) { + Map(coordinateRegion: region, showsUserLocation: true, userTrackingMode: $viewModel.userTrackingMode, annotationItems: viewModel.annotations) { + MapMarker(coordinate: $0.coordinate) + } + controlButtons } - controlButtons } - } - private var region: Binding { - Binding { - viewModel.region - } set: { region in - DispatchQueue.main.async { - viewModel.region = region + private var region: Binding { + Binding { + viewModel.region + } set: { region in + DispatchQueue.main.async { + viewModel.region = region + } } } - } - var controlButtons: some View { - VStack { - Spacer() - VStack(spacing: .zero) { - Button { - viewModel.zoomIn() - } label: { - IconDeprecated(.plus) - .onSurfaceMediumEmphasisForegroundColor() - .padding(.xxSmall) - } + var controlButtons: some View { + VStack { + Spacer() + VStack(spacing: .zero) { + Button { + viewModel.zoomIn() + } label: { + IconDeprecated(.plus) + .onSurfaceMediumEmphasisForegroundColor() + .padding(.xxSmall) + } + Button { + viewModel.zoomOut() + } label: { + IconDeprecated(.minus) + .onSurfaceMediumEmphasisForegroundColor() + .padding(.xxSmall) + } + } + .background { + Capsule() + .fillSurfacePrimary() + .shadowElevaton(.z1) + } + Spacer() + } + .overlay(alignment: .bottomTrailing, content: { Button { - viewModel.zoomOut() + viewModel.positionInLocation() + } label: { - IconDeprecated(.minus) + IconDeprecated(.navigation) .onSurfaceMediumEmphasisForegroundColor() .padding(.xxSmall) } - } - .background { - Capsule() - .fillSurfacePrimary() - .shadowElevaton(.z1) - } - Spacer() + .background { + Capsule() + .fillSurfacePrimary() + .shadowElevaton(.z1) + } + }) + .padding(.trailing, 16) + .padding(.bottom, screenSize.safeAreaBottom) } - .overlay(alignment: .bottomTrailing, content: { - Button { - viewModel.positionInLocation() - } label: { - IconDeprecated(.navigation) - .onSurfaceMediumEmphasisForegroundColor() - .padding(.xxSmall) - } - .background { - Capsule() - .fillSurfacePrimary() - .shadowElevaton(.z1) - } - }) - .padding(.trailing, 16) - .padding(.bottom, screenSize.safeAreaBottom) - } - - var routeSheetView: some View { - PageView("Route") { - SectionView { - Row("Apple Maps") { - onTapAppleMaps() - } - Row("Google Maps") { - onTapGoogleMaps() + var routeSheetView: some View { + PageView("Route") { + SectionView { + Row("Apple Maps") { + onTapAppleMaps() + } + Row("Google Maps") { + onTapGoogleMaps() + } } } + .leadingBar(leadingBar: { + BarButton(.close) + }) + .backgroundSecondary() + .disableScrollShadow(true) + .surfaceContentRowMargins() } - .leadingBar(leadingBar: { - BarButton(.close) - }) - .backgroundSecondary() - .disableScrollShadow(true) - .surfaceContentRowMargins() - } - func onTapAppleMaps() { - #if !os(tvOS) - let placemark = MKPlacemark(coordinate: viewModel.location, addressDictionary: nil) - let mapItem = MKMapItem(placemark: placemark) - mapItem.name = viewModel.annotation - mapItem.openInMaps() - viewModel.isShowRoutePickerSheet.toggle() - #endif - } + func onTapAppleMaps() { + #if !os(tvOS) + let placemark = MKPlacemark(coordinate: viewModel.location, addressDictionary: nil) + let mapItem = MKMapItem(placemark: placemark) + mapItem.name = viewModel.annotation + mapItem.openInMaps() + viewModel.isShowRoutePickerSheet.toggle() + #endif + } - func onTapGoogleMaps() { - guard let url = URL(string: "comgooglemaps://?saddr=\(viewModel.location.latitude),\(viewModel.location.longitude)") else { return } - openURL(url) + func onTapGoogleMaps() { + guard let url = URL(string: "comgooglemaps://?saddr=\(viewModel.location.latitude),\(viewModel.location.longitude)") else { return } + openURL(url) + } } -} -struct MapCoordinateView_Previews: PreviewProvider { - static var previews: some View { - MapCoordinateView(.init(latitude: 100, longitude: 100)) + struct MapCoordinateView_Previews: PreviewProvider { + static var previews: some View { + MapCoordinateView(.init(latitude: 100, longitude: 100)) + } } -} +#endif diff --git a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift index 79909ad..227a8e9 100644 --- a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift +++ b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift @@ -3,9 +3,6 @@ // LocalNotificationAlertsTimes.swift // -#if canImport(EventKit) - import EventKit -#endif import Foundation public enum LocalNotificationTime: CaseIterable, Equatable, Identifiable { From 80f9a7fb5533170b873f2eaee8b6d9e4613ad350 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 13:58:03 +0300 Subject: [PATCH 10/39] Fix ci --- .github/workflows/ci-pull-request.yml | 4 ---- .../UserInterfaceState.xcuserstate | Bin 297590 -> 296480 bytes 2 files changed, 4 deletions(-) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index d0f81a7..1fb5f8d 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -34,12 +34,8 @@ jobs: strategy: matrix: destination: - - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.0 - - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.5 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 - - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=16.0 - - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=16.5 - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.0 - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.5 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index cacb16d042d4d4b58d25372090eb42620e0e5872..462517d4d943debd03717ea0793c97c4381d16ce 100644 GIT binary patch literal 296480 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�oT_4sb1NSs=235i^tGwcn(1p1vQ@Kb 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 literal 297590 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 z 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�Vxc74ufGn+kSQVFC71LDmWz*vwYst8fN+ zD%|1@|KWxzCL{^Ti6lQIC{0-^AX7z|DmLPMKB7JDxuU)*%2iRWibEJ0L{y4NGE(5p zN@lJkW2NP|?Ml1ZhdZeB3%~IPM>x(&a-IK;;smGh#< z$}&}+fZbR2R%L%vB|W8(ze*e0VTLLl>4}@K;^wP-!Ei=0nyJiW4)bwaRm@RkCGNh; zA?&xxbL6TT1G%ckBLRs?N@fc1HolitOY$z2sLFfPLf2LMu>x;bJ<0|2P*o3A-B2~} zR?9>d3Q~l3u(xVuD2KbMR+)x;%2-z6J5fz9)i$w(?d)U^KXDG9SM4(Ya)W5xZ?&gE zMD0)UcBpc2c80GS_HAQ{=88ca1iUOZZ)(a>a~4}L zM@@6o^lwkiUpT@U{^255xQ3Z(KIR3lgNRx&h>baFB}DJF@>7TA$W^N?a@FdLerxr> zUDx`8@l4@cW-^DxEaN*?vzC)VMD6%^yLM43poiLesNEXx*4An5p-kW#rZI!L%x4ky zSbHPCaT;^fHb)(E)QL$Pd`_K2_-@qESDga5mpX2_j$5u%g3^?w8gkTeLv`$;j$Z4S zxsF}bX^&mh=|g`8@;S3`OaAv!BI>N+dv;?-b^hcie-q6!+)14`K}22uuGCFJaw17X zPX5N0Cz+2PoC)>&EqliiNFavkZ)*_b0|j+{H6b3b$LdTsz_$lbtT^qea* zk}9JxM{W%EpL>{>S&3XZo#y1qeaJ`XH@Ar$?BO84@dt-f>3j>0<#<|i61^FXv-4A# zgC6pF$gjn@`LEcCedQ1ED~GVR{Lxf8aJPaqZE=r+fy6Z9>|iY8&`~gfJD7+&98BkF zX5rbvT;}241j|{49D!K_vj*?61-lOHI{1R!m@_bEV9r3Mf;kKF6x!2?&gj2z0T&@> z!43)ou!F)N7GUmz{TJ-NV3)-+89~H&Zsm6FzJ|1KekKle4pJzTVvJiVKx?@G% z7MEhSqS=aOE56B>$lll${WUh@tVaLS_%VA^=~64&(UH^X!nyRsy((QsZ?2{Z>!E$ok;!WdnJqZ!LM z+_O-wP_EFP!l_K-DP}So8N(Mad$^31tU<<5#!$xa6Fy@b+xdZ?*o&;;5&lZ0qZS;C zoROT-X>{Qn>?OLCE4Y$D*g<3mk^Z7l+{_qmVLZ1Ydn9}0jzy0%9r>df%tFu6T;}19 zMGG-Y^g4^NuV`N?JyNETms8>%UScEOD^8+4o#@ONbY%z=ady)S zEaF{!A2*q^$+=BGbAY3%bk$tdlQ|XVRh?ILUe$Tk9`xiA?4@ciRdZMSa1B}Pp!z7f zs(J^iKk_?=aenO>+|AkvoQP-Dx}eM2g;1Tqn`j_M z6?y9N)JLO(`rXJ>zmEr)!VI3l_eTAB=JOhhS;`7lvljX5JJ4VKmsC1VA!jUSEN9%7 z4#*mNuVe2^d>(p??I|9DJnxkv)+;S;t$fXMZX^svE<(iv?^;rJHrud=-5d%+S=oKP_AQ_c^rxf1m&V IPB%CG4F|}z?*IS* From aaaaabe355b5087cd65cfa3fd70de03a9b6a61a6 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 15:03:35 +0300 Subject: [PATCH 11/39] Up --- .../UserInterfaceState.xcuserstate | Bin 296480 -> 297544 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 462517d4d943debd03717ea0793c97c4381d16ce..d373d042e3c67a60cb3aef0cda17ab96d420dda1 100644 GIT binary patch literal 297544 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

bEdLFD;W+LT{6 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

M2jqHn5yQ{PPA9B9P82GBKut_5^$pz8o#7wCFG zV>23r^(`Y}Y!eY(O6Zn*iN3Q9o3V!P=WZzm;X4L_bQ8ThEg8qxEC-V}Wi4G-|0u zl775?0`Vj*fo}EUJ&Ar=ltDjT=^nnA{rRCS?={%Etjb^S{BX#*0X>O+CKjEgEV}Wh z?_3*`s{TH;(dZs+4ez&4_9Xhb`uP&P9}#$46ATv+c-tu9Rd13X%_99$3Em|lyfNw2 zlB;~8-$>wHrC+UIqyJR@nSQPQbNxE~di@5V+XLMJ=#D^l0y-Axw}I{qbQhrGfPN>e z-xPs&i?qa-^t(zi(qm<1{j9$&iSd>w#`tt<$yM&@pAa$ruKz=S zU;jY=r~aY-Fa0C^WBuPiNi*h?2x;pd~RHcp}E3 zvKS#njFWQ2ms8bXFVs1HN50f!^QfgX`)$ZNnM!$_dV zWFX7u7_LMVWhiVYCMwrZlqh!;YS2J7EzzS>QSMZ^Qfb3$=zI)i46hh4Zbttz4(Rbo zhO&lo#Q97Bdg6KN*a=o;#Y=uS?j+vGlLVrYx#8k!p3G&D0bH?%OcG_*3j zWoT_^1M~+#PX&4!(9?mQ0rZDJ&jflF(6fP_6E?&|(CrvOw=+R^u8b~bLx}A4qL=5O zn;q!lVS@w%n$~$Tx&ski!=R{QhCz7xfc{7f0x>TIIZ!U2S~h@TB!PFhVFb`01HB;8 zFv>6*=!HNhWgWZ|43i~zClPoPhzdU-@FptZ)tr!p_@QAAfp?~1mI3v(2RKCS z#TF@BqT(9NX(D$(*zk!2?@AHga5~*4S6OTLiopB1VVz;UVS{0#VUuCA;S0l;hAlv^ z1o{)8R{@PPgKL2P6zI=@UJLZ+K(7lMwnpIHA&uY+y9vDOWq3EHjNo?Wz?&WL9wYD` z2YQ1H@2L#^?s>x{g6;*wMW8nUy*bfv*>DBuFM$3k>(Kqla7#k>CPDX0qQN@^-7N}q zjlaq&yk~eo$o<{$hv7cZTY=sN^w&v-KMfBFx!Zx>@#4uf=87^HRZ1MIRw`(FShcou z?6*3J+q+Hdv^*}AN1MdxQlz|ecd{lTukYv70ESfL~?hf(`%7F zGn$RK4!Q!9rfl_9=bd{3S|G*&TI!!e(+D$vIgjL6aP3?P@4RohrkB-mJ&5PSl)Xly_T zKB*wsL^YBtH8J8D)FsBI#y5@4jLnTLj5t$s8fYAF{s8n@pnnAVoVYA+Y-4PzsVXna z)8~Q4T@_ukX<7b1IgXM3Q4jg|jx%<{&eAk6;^qRJEV+>3vb?dku@8AH@jzcnZ&}_r z&^TDK3GazE;YvEsL2k@&<0SOv#u3Jm#!<%6#xcgR#&O2+#tFuWKwks;I?y+O{t4)x zfxZd!Eue1$eFx}Y!p6xFb1+Q`#f>wGF%TE!3I3R2LJq}or6Ol-FU!~VjEe}~i-Eo? z>kj+CmPopF*HMD|I7gN=O0BIHyOVqAF`Rkg{AwrtYzFn zmbD(FwydSPE6Z?)5lH%oTa znA|2ml4$anye3qE6&U;k{2FucnnJ)}R+e1AILXK5lQP^tl_94W-cjDUH#rfB7r*rF z)~5+3KfvRUenr7}JiFMTeeYuZ<2v=}5@U?y%1`wtHSIaDT3kH&$>f?1yc!*EKRj&8 zA7wBVP~uhQbg{B`gAGniDzU2XoXhYqBr`ksMm30mBi`aS6bYq>mo0>~5+4L6Sx`@m*rX7m7WTtEm*V(~!9O3#MV2a9IchATroBEjg z6Q=u``TYlcv$>&*sWS^(1$m{!2N1x#yT+5poQm>6K%0nOW( z$zdI1jQqGunaiL;%rBeK`@IcJ=S1@>=2wB~0!&u|ZdCvw~;ogS2{bT;=U9CtCtncp#YHFq<2H}^32H1{$ig&1S?2W9{;7-0

rlPb37cF$-qn@9Dk6*aW=SM^Ekrscwj*0 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 literal 297544 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 From df5be13b87bb6d354041b22b3bae1bb5b729ea0e Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 15:29:37 +0300 Subject: [PATCH 13/39] Remove build macOS --- .github/workflows/ci-pull-request.yml | 1 - .../UserInterfaceState.xcuserstate | Bin 298398 -> 296775 bytes 2 files changed, 1 deletion(-) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index 1fb5f8d..6993811 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -40,7 +40,6 @@ jobs: - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.5 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 - - platform=macOS,arch=arm64 with: path: AppExample/Example scheme: Example diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 0f0b007d471118e955b0f8c6e567551c2020fbfa..bed3075b278d1afc88977bb56a7e252fcef3bac7 100644 GIT binary patch literal 296775 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

bEdLFD;W+LT{6 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

M2jqHn5yQ{PPA9B9P82GBKut_5^$pz8o#7wCFG zV>23r^(`Y}Y!eY(O6Zn*iN3Q9o3V!P=WZzm;X4L_bQ8ThEg8qxEC-V}Wi4G-|0u zl775?0`Vj*fo}EUJ&Ar=ltDjT=^nnA{rRCS?={%Etjb^S{BX#*0X>O+CKjEgEV}Wh z?_3*`s{TH;(dZs+4ez&4_9Xhb`uP&P9}#$46ATv+c-tu9Rd13X%_99$3Em|lyfNw2 zlB;~8-$>wHrC+UIqyJR@nSQPQbNxE~di@5V+XLMJ=#D^l0y-Axw}I{qbQhrGfPN>e z-xPs&i?qa-^t(zi(qm<1{j9$&iSd>w#`tt<$yM&@pAa$ruKz=S zU;jY=r~aY-Fa0C^WBuPiNi*h?2x;pd~RHcp}E3 zvKS#njFWQ2ms8bXFVs1HN50f!^QfgX`)$ZNnM!$_dV zWFX7u7_LMVWhiVYCMwrZlqh!;YS2J7EzzS>QSMZ^Qfb3$=zI)i46hh4Zbttz4(Rbo zhO&lo#Q97Bdg6KN*a=o;#Y=uS?j+vGlLVrYx#8k!p3G&D0bH?%OcG_*3j zWoT_^1M~+#PX&4!(9?mQ0rZDJ&jflF(6fP_6E?&|(CrvOw=+R^u8b~bLx}A4qL=5O zn;q!lVS@w%n$~$Tx&ski!=R{QhCz7xfc{7f0x>TIIZ!U2S~h@TB!PFhVFb`01HB;8 zFv>6*=!HNhWgWZ|43i~zClPoPhzdU-@FptZ)tr!p_@QAAfp?~1mI3v(2RKCS z#TF@BqT(9NX(D$(*zk!2?@AHga5~*4S6OTLiopB1VVz;UVS{0#VUuCA;S0l;hAlv^ z1o{)8R{@PPgKL2P6zI=@UJLZ+K(7lMwnpIHA&uY+y9vDOWq3EHjNo?Wz?&WL9wYD` z2YQ1H@2L#^?s>x{g6;*wMW8nUy*bfv*>DBuFM$3k>(Kqla7#k>CPDX0qQN@^-7N}q zjlaq&yk~eo$o<{$hv7cZTY=sN^w&v-KMfBFx!Zx>@#4uf=87^HRZ1MIRw`(FShcou z?6*3J+q+Hdv^*}AN1MdxQlz|ecd{lTukYv70ESfL~?hf(`%7F zGn$RK4!Q!9rfl_9=bd{3S|G*&TI!!e(+D$vIgjL6aP3?P@4RohrkB-mJ&5PSl)Xly_T zKB*wsL^YBtH8J8D)FsBI#y5@4jLnTLj5t$s8fYAF{s8n@pnnAVoVYA+Y-4PzsVXna z)8~Q4T@_ukX<7b1IgXM3Q4jg|jx%<{&eAk6;^qRJEV+>3vb?dku@8AH@jzcnZ&}_r z&^TDK3GazE;YvEsL2k@&<0SOv#u3Jm#!<%6#xcgR#&O2+#tFuWKwks;I?y+O{t4)x zfxZd!Eue1$eFx}Y!p6xFb1+Q`#f>wGF%TE!3I3R2LJq}or6Ol-FU!~VjEe}~i-Eo? z>kj+CmPopF*HMD|I7gN=O0BIHyOVqAF`Rkg{AwrtYzFn zmbD(FwydSPE6Z?)5lH%oTa znA|2ml4$anye3qE6&U;k{2FucnnJ)}R+e1AILXK5lQP^tl_94W-cjDUH#rfB7r*rF z)~5+3KfvRUenr7}JiFMTeeYuZ<2v=}5@U?y%1`wtHSIaDT3kH&$>f?1yc!*EKRj&8 zA7wBVP~uhQbg{B`gAGniDzU2XoXhYqBr`ksMm30mBi`aS6bYq>mo0>~5+4L6Sx`@m*rX7m7WTtEm*V(~!9O3#MV2a9IchATroBEjg z6Q=u``TYlcv$>&*sWS^(1$m{!2N1x#yT+5poQm>6K%0nOW( z$zdI1jQqGunaiL;%rBeK`@IcJ=S1@>=2wB~0!&u|ZdCvw~;ogS2{bT;=U9CtCtncp#YHFq<2H}^32H1{$ig&1S?2W9{;7-0

rlPb37cF$-qn@9Dk6*aW=SM^Ekrscwj*0 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 From bcf6b0a8a50c4f94c5bd87d1cd13446be4f3e95e Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 15:44:09 +0300 Subject: [PATCH 14/39] Fix support iPad --- .github/workflows/ci-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index 6993811..c9c3705 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -36,8 +36,8 @@ jobs: destination: - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 - - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.0 - - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.5 + - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.0 + - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.5 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 with: From 15d1f2515d999b2bceadfff060f374c1397aa801 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 17:14:34 +0300 Subject: [PATCH 15/39] Up router --- .../UserInterfaceState.xcuserstate | Bin 296775 -> 296780 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index bed3075b278d1afc88977bb56a7e252fcef3bac7..7fd748273a650a7b4098d1bbf3ab309c853b465d 100644 GIT binary patch literal 296780 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 z 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 z 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 O&!+dCpZ~uH<=#Ko2J*82 literal 296775 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 Date: Sun, 19 May 2024 17:29:44 +0300 Subject: [PATCH 16/39] Fix iPhone 15 version --- .github/workflows/ci-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index c9c3705..f88453a 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -34,9 +34,9 @@ jobs: strategy: matrix: destination: - - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0 + - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0.1 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 - - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.0 + - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.0.1 - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.5 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 From 3876c2b37e3b4be4f921305fe9b0f98ff95fbe00 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 19:43:43 +0300 Subject: [PATCH 17/39] Add iPhone 14 Pro build --- .github/workflows/ci-pull-request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index f88453a..03d7ee6 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -34,6 +34,7 @@ jobs: strategy: matrix: destination: + - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.4 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0.1 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.0.1 From c1acbb1892a739128818f69d510728653e7773dd Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 20:04:30 +0300 Subject: [PATCH 18/39] Add macOS build --- .github/workflows/ci-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index 03d7ee6..d2af0cc 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -34,13 +34,13 @@ jobs: strategy: matrix: destination: - - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.4 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0.1 - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.0.1 - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.5 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 + - platform=macOS,name=My Mac,arch=arm64 with: path: AppExample/Example scheme: Example From 71161bf01b01f3b39536bc35813155616375c1d9 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 22:47:16 +0300 Subject: [PATCH 19/39] Fix ci --- .github/workflows/ci-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index d2af0cc..7cf221a 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -40,7 +40,7 @@ jobs: - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.5 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 - - platform=macOS,name=My Mac,arch=arm64 + - platform=macOS,arch=arm64,name=My Mac with: path: AppExample/Example scheme: Example From cfc42504473d1f56dc40d87d3cfc5c387f677b6f Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 23:04:03 +0300 Subject: [PATCH 20/39] Delete macOS build --- .github/workflows/ci-pull-request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml index 7cf221a..f88453a 100644 --- a/.github/workflows/ci-pull-request.yml +++ b/.github/workflows/ci-pull-request.yml @@ -40,7 +40,6 @@ jobs: - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.5 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 - - platform=macOS,arch=arm64,name=My Mac with: path: AppExample/Example scheme: Example From 6ffd82a9ec513d2ebbb9df21a421a15a32842a7d Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 10 Nov 2024 14:10:03 +0300 Subject: [PATCH 21/39] Update routing, onboarding and up to Swift6 --- .github/workflows/release.yml | 2 +- .../ContentView.swift | 6 +- .../Example__watchOS_App.swift | 3 +- .../UserInterfaceState.xcuserstate | Bin 296780 -> 296188 bytes .../xcschemes/xcschememanagement.plist | 4 +- .../Screens/Onboarding/OnboardingView.swift | 2 - AppExample/Example/Test/TestView.swift | 8 +- AppExample/Package.swift | 4 + Package.swift | 14 +- .../CreateEventScreen/CreateEventView.swift | 38 ++-- .../CreateEventViewSheet.swift | 1 - .../SaveForView/SaveForView.swift | 4 +- .../Pickers/RepeatPicker.swift | 2 +- .../AttendeesList/AttendeesView.swift | 2 +- .../ContactsPicker/EmailPickerView.swift | 6 +- Sources/OversizeKit/AdsKit/AdView.swift | 5 +- .../OversizeKit/LauncherKit/Launcher.swift | 38 ++-- .../LauncherKit/LauncherViewModel.swift | 6 +- .../LauncherKit/RateAppScreen.swift | 10 +- .../LockscreenKit/LockscreenView.swift | 19 +- .../SettingsRouter/SettingsRouting.swift | 73 ------- .../SettingsRouter/ResolveRouter.swift | 7 +- .../{Views => SettingsRouter}/Screens.swift | 72 +++---- .../SettingsRouter/SettingsRouting.swift | 23 +++ .../Views/About/About/AboutView.swift | 39 ++-- .../Views/About/FeedbackView.swift | 7 +- .../SettingsKit/Views/About/SupportView.swift | 7 +- .../Apperance/AppearanceSettingView.swift | 19 +- .../Views/Apperance/BorderSettingView.swift | 8 +- .../Views/Apperance/FontSettingView.swift | 34 ++-- .../Views/Apperance/RadiusSettingView.swift | 4 +- .../Security/PINCode/SetPINCodeView.swift | 7 +- .../PINCode/SetPINCodeViewModel.swift | 5 +- .../Views/Security/SecuritySettingsView.swift | 9 +- .../SettingsKit/Views/SettingsView.swift | 25 ++- .../StateKit/LoadingViewState.swift | 39 +++- .../AppStoreProductViewController.swift | 2 +- .../StoreScreen/StoreInstuctinsView.swift | 22 +- .../StoreScreen/StoreSpecialOfferView.swift | 16 +- .../StoreKit/StoreScreen/StoreView.swift | 14 +- .../ViewModel/StoreViewModel.swift | 1 - .../ViewModifier/PremiumBlockOverlay.swift | 4 +- .../StoreKit/Views/BuyButtonStyle.swift | 6 +- .../StoreKit/Views/FireworksBubbles.swift | 2 +- .../StoreKit/Views/PrmiumBannerRow.swift | 8 +- .../Views/StoreFeatureDetailView.swift | 17 +- .../Views/StoreFeaturesLargeView.swift | 8 +- .../StoreKit/Views/StoreFeaturesView.swift | 2 +- .../Views/StorePaymentButtonBar.swift | 2 +- .../StoreKit/Views/StoreProductView.swift | 30 +-- .../Views/SubscriptionPrivacyView.swift | 6 +- .../SystemKit/SystemServices.swift | 89 ++++---- .../AddressField/AddressField.swift | 8 +- .../AddressPicker/AddressPicker.swift | 4 +- .../MapCoordinateView/MapCoordinateView.swift | 6 +- .../LocalNotificationSetScreenViewModel.swift | 9 +- .../OnboardingItem.swift | 20 -- .../OnboardingItemPreferenceKey.swift | 14 -- .../OnboardingItemViewModifier.swift | 21 -- .../OnboardingView.swift | 190 ++++++++++-------- .../OversizePhotoKit/PhotosGalleryView.swift | 2 +- 61 files changed, 515 insertions(+), 540 deletions(-) create mode 100644 AppExample/Package.swift delete mode 100644 Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift rename Sources/OversizeKit/{RouterKit => SettingsKit}/SettingsRouter/ResolveRouter.swift (92%) rename Sources/OversizeKit/SettingsKit/{Views => SettingsRouter}/Screens.swift (54%) create mode 100644 Sources/OversizeKit/SettingsKit/SettingsRouter/SettingsRouting.swift delete mode 100644 Sources/OversizeOnboardingKit/OnboardingItem.swift delete mode 100644 Sources/OversizeOnboardingKit/OnboardingItemPreferenceKey.swift delete mode 100644 Sources/OversizeOnboardingKit/OnboardingItemViewModifier.swift diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3065293..988e905 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: - "*.*.*" jobs: - build: + release: name: Create release runs-on: ubuntu-latest steps: diff --git a/AppExample/Example (watchOS) Watch App/ContentView.swift b/AppExample/Example (watchOS) Watch App/ContentView.swift index 9cce011..b173e94 100644 --- a/AppExample/Example (watchOS) Watch App/ContentView.swift +++ b/AppExample/Example (watchOS) Watch App/ContentView.swift @@ -3,14 +3,14 @@ // ContentView.swift, created on 19.05.2024 // -import OversizeKit +import OversizeCalendarKit import OversizeContactsKit +import OversizeKit import OversizeLocationKit -import OversizePhotoKit -import OversizeCalendarKit import OversizeNoticeKit import OversizeNotificationKit import OversizeOnboardingKit +import OversizePhotoKit import SwiftUI struct ContentView: View { diff --git a/AppExample/Example (watchOS) Watch App/Example__watchOS_App.swift b/AppExample/Example (watchOS) Watch App/Example__watchOS_App.swift index fbf5231..c00dd47 100644 --- a/AppExample/Example (watchOS) Watch App/Example__watchOS_App.swift +++ b/AppExample/Example (watchOS) Watch App/Example__watchOS_App.swift @@ -11,9 +11,8 @@ import SwiftUI @main struct Example__watchOS__Watch_AppApp: App { - @Injected(\.appStateService) var appStateService: AppStateService - + var body: some Scene { WindowGroup { ContentView() diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 7fd748273a650a7b4098d1bbf3ab309c853b465d..131e000660ba577a09909ee096c13a3c2472852b 100644 GIT binary patch literal 296188 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

oO^~nYJlsW7b7>Zry!f7)bzvNzB7Zaao5|no z3(U8f?9F6vX3ovbxtSiC>7kkY&5m#k_toqSzj6Wjo11HM*_s!?-kTT2jGMnjS;|uj z_ukw+HSd7EH}6It`ZI_j3}q?aX#OOKvLiU@KE z`@n7Q@tpB*a257}K@e_5-H1!2lmctfN(l<1z=(p1C_*AyM4J%W^_UGjcXo4s=l8y| z9)7d;e}5WPv~Y+c9Ho;JoWU%j51ob_VQ-?z1>^~NA|X>u;EdsH;cPL*4Q7~S9=Qxl3D?Qh zMW%9_JKSXk*~$uQJY=26=&Hz6Ua`#^KJbap=&b0h=&0;As=A_$c8<}7thE`{x~qG! cSM>mcjB=4njepmHmi>EkXaD~Hx2muF1+E;U?*IS* literal 296780 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 z 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 z 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 O&!+dCpZ~uH<=#Ko2J*82 diff --git a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist index 747e56b..33cfa4a 100644 --- a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,12 +7,12 @@ Example (watchOS) Watch App.xcscheme_^#shared#^_ orderHint - 1 + 2 Example.xcscheme_^#shared#^_ orderHint - 0 + 1 SuppressBuildableAutocreation diff --git a/AppExample/Example/Screens/Onboarding/OnboardingView.swift b/AppExample/Example/Screens/Onboarding/OnboardingView.swift index ab5152a..c3b89b6 100644 --- a/AppExample/Example/Screens/Onboarding/OnboardingView.swift +++ b/AppExample/Example/Screens/Onboarding/OnboardingView.swift @@ -3,8 +3,6 @@ // OnboardingView.swift, created on 25.09.2023 // - - import Factory import OversizeServices import OversizeUI diff --git a/AppExample/Example/Test/TestView.swift b/AppExample/Example/Test/TestView.swift index 979fd84..9787784 100644 --- a/AppExample/Example/Test/TestView.swift +++ b/AppExample/Example/Test/TestView.swift @@ -1,16 +1,16 @@ // // Copyright © 2024 Alexander Romanov // TestView.swift, created on 19.05.2024 -// +// -import OversizeKit +import OversizeCalendarKit import OversizeContactsKit +import OversizeKit import OversizeLocationKit -import OversizePhotoKit -import OversizeCalendarKit import OversizeNoticeKit import OversizeNotificationKit import OversizeOnboardingKit +import OversizePhotoKit import SwiftUI struct TestView: View { diff --git a/AppExample/Package.swift b/AppExample/Package.swift new file mode 100644 index 0000000..9fdca6f --- /dev/null +++ b/AppExample/Package.swift @@ -0,0 +1,4 @@ +// swift-tools-version: 5.6 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription diff --git a/Package.swift b/Package.swift index f08bfb2..81a3155 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.9 +// swift-tools-version: 6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. import Foundation @@ -6,7 +6,7 @@ import PackageDescription let productionDependencies: [PackageDescription.Package.Dependency] = [ .package(url: "https://github.com/oversizedev/OversizeUI.git", .upToNextMajor(from: "3.0.2")), - .package(url: "https://github.com/oversizedev/OversizeCore.git", .upToNextMajor(from: "1.3.0")), + .package(url: "https://github.com/oversizedev/OversizeCore.git", .upToNextMajor(from: "2.0.0")), .package(url: "https://github.com/oversizedev/OversizeServices.git", .upToNextMajor(from: "1.4.0")), .package(url: "https://github.com/oversizedev/OversizeLocalizable.git", .upToNextMajor(from: "1.4.0")), .package(url: "https://github.com/oversizedev/OversizeComponents.git", .upToNextMajor(from: "1.2.0")), @@ -43,10 +43,10 @@ if ProcessInfo.processInfo.environment["RELEASE_DEPENDENCIES"].flatMap(Bool.init let package = Package( name: "OversizeKit", platforms: [ - .iOS(.v16), - .macOS(.v13), - .tvOS(.v16), - .watchOS(.v9), + .iOS(.v17), + .macOS(.v14), + .tvOS(.v17), + .watchOS(.v10), ], products: [ .library(name: "OversizeKit", targets: ["OversizeKit"]), @@ -58,7 +58,7 @@ let package = Package( .library(name: "OversizeNotificationKit", targets: ["OversizeNotificationKit"]), .library(name: "OversizePhotoKit", targets: ["OversizePhotoKit"]), ], - dependencies: productionDependencies, + dependencies: developmentDependencies, targets: [ .target( name: "OversizeKit", diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift index d75db38..cfdb2ca 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift @@ -71,7 +71,7 @@ import SwiftUI .controlBorderShape(.capsule) .controlSize(.mini) } - .navigationBarDividerColor(Color.onSurfaceHighEmphasis.opacity(0.1)) + .navigationBarDividerColor(Color.onSurfacePrimary.opacity(0.1)) .safeAreaInset(edge: .bottom) { bottomBar } @@ -98,7 +98,7 @@ import SwiftUI TextField("Event name", text: $viewModel.title) .title(.bold) .focused($focusedField, equals: .title) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() .padding(.bottom, .xxxSmall) .padding(.horizontal, .small) @@ -129,7 +129,7 @@ import SwiftUI HStack { Text("All-day event") .headline(.semibold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) .padding(.leading, .xxxSmall) Spacer() @@ -148,7 +148,7 @@ import SwiftUI var textEditor: some View { VStack(spacing: 2) { TextEditor(text: $viewModel.note) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() .padding(.horizontal, .xSmall) .padding(.vertical, .xxSmall) .focused($focusedField, equals: .note) @@ -162,7 +162,7 @@ import SwiftUI if viewModel.note.isEmpty { Text("Note") .body(.medium) - .onSurfaceDisabledForegroundColor() + .onSurfaceTertiaryForeground() .padding(.small) } } @@ -173,7 +173,7 @@ import SwiftUI if viewModel.note.isEmpty { Text("Note") .body(.medium) - .onSurfaceDisabledForegroundColor() + .onSurfaceTertiaryForeground() .padding(.small) } } @@ -183,7 +183,7 @@ import SwiftUI TextField("URL", text: $viewModel.url) .focused($focusedField, equals: .url) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() .body(.medium) .padding(.horizontal, .small) .padding(.vertical, 18) @@ -209,7 +209,7 @@ import SwiftUI viewModel.present(.repeat) } leading: { IconDeprecated(.refresh) - .iconColor(.onSurfaceHighEmphasis) + .iconColor(.onSurfacePrimary) } .rowClearButton(style: .onSurface) { viewModel.repitRule = .never @@ -235,7 +235,7 @@ import SwiftUI viewModel.present(.invites) } leading: { IconDeprecated(.user) - .iconColor(.onSurfaceHighEmphasis) + .iconColor(.onSurfacePrimary) } .rowClearButton(style: .onSurface) { viewModel.members.remove(email) @@ -269,7 +269,7 @@ import SwiftUI viewModel.present(.alarm) } leading: { IconDeprecated(.bell) - .iconColor(.onSurfaceHighEmphasis) + .iconColor(.onSurfacePrimary) } .rowClearButton(style: .onSurface) { viewModel.alarms.remove(alarm) @@ -303,7 +303,7 @@ import SwiftUI viewModel.present(.location) } leading: { IconDeprecated(.mapPin) - .iconColor(.onSurfaceHighEmphasis) + .iconColor(.onSurfacePrimary) } .rowClearButton(style: .onSurface) { viewModel.locationName = nil @@ -356,16 +356,16 @@ import SwiftUI } label: { VStack(alignment: .leading, spacing: .xxxSmall) { Text("Starts") - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() .subheadline(.semibold) Text(startDateText) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() .headline(.semibold) if !isCurrentYearEvent { Text(viewModel.dateStart.formatted(.dateTime.year())) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() .headline(.semibold) } } @@ -384,16 +384,16 @@ import SwiftUI } label: { VStack(alignment: .leading, spacing: .xxxSmall) { Text("Ended") - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() .subheadline(.semibold) Text(endDateText) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() .headline(.semibold) if !isCurrentYearEvent { Text(viewModel.dateEnd.formatted(.dateTime.year())) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() .headline(.semibold) } } @@ -478,13 +478,13 @@ import SwiftUI .buttonStyle(.scale) .padding(.horizontal, .medium) .padding(.vertical, 20) - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() #if !os(watchOS) .background(.ultraThinMaterial) #endif .overlay(alignment: .top) { Rectangle() - .fill(Color.onSurfaceHighEmphasis.opacity(0.05)) + .fill(Color.onSurfacePrimary.opacity(0.05)) .frame(height: 1) } } diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift index f9fac0f..beb178c 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift @@ -102,7 +102,6 @@ import SwiftUI #endif case .repeat: RepeatPicker(selectionRule: $viewModel.repitRule, selectionEndRule: $viewModel.repitEndRule) - case .alarm: AlarmPicker(selection: $viewModel.alarms) .presentationDetents([.height(630), .large]) diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift index ba4f08f..676b9a5 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift @@ -28,7 +28,7 @@ import SwiftUI } leading: { Image.Date.calendar .renderingMode(.template) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } Row("Save for feature events") { @@ -37,7 +37,7 @@ import SwiftUI } leading: { Image.Base.calendar .renderingMode(.template) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } } } diff --git a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift index be20de4..2c32cb8 100644 --- a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift @@ -113,7 +113,7 @@ import SwiftUI #if os(iOS) .keyboardType(.numberPad) #endif - .textFieldStyle(DefaultPlaceholderTextFieldStyle()) + .textFieldStyle(.default) .focused($isFocusedRepitCount) case .endDate: #if !os(watchOS) diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift index 25d53c8..3bca2d1 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift @@ -83,7 +83,7 @@ import SwiftUI .fillBackgroundPrimary() } Image(systemName: participant.symbolName) - .onPrimaryHighEmphasisForegroundColor() + .onPrimaryForeground() .font(.system(size: 9, weight: .black)) } } diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift index c575fcb..053b539 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift @@ -50,7 +50,7 @@ import SwiftUI } .topToolbar { TextField("Email or name", text: $viewModel.searchText) - .textFieldStyle(DefaultPlaceholderTextFieldStyle()) + .textFieldStyle(.default) .focused($isFocusSearth) #if os(iOS) .keyboardType(.emailAddress) @@ -98,7 +98,7 @@ import SwiftUI Spacer() } .title3() - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() .padding(.vertical, .xxSmall) .paddingContent(.horizontal) @@ -136,7 +136,7 @@ import SwiftUI Spacer() } .title3() - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() .padding(.vertical, .xxSmall) .paddingContent(.horizontal) .padding(.top, viewModel.lastSelectedEmails.isEmpty ? .zero : .small) diff --git a/Sources/OversizeKit/AdsKit/AdView.swift b/Sources/OversizeKit/AdsKit/AdView.swift index a115595..b2e4836 100644 --- a/Sources/OversizeKit/AdsKit/AdView.swift +++ b/Sources/OversizeKit/AdsKit/AdView.swift @@ -30,6 +30,7 @@ public struct AdView: View { await viewModel.fetchAd() } } + case let .result(appAd): #if os(iOS) Surface { @@ -79,7 +80,7 @@ public struct AdView: View { HStack { Text(appAd.title) .subheadline(.bold) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() Bage(color: .warning) { Text("Our app") @@ -89,7 +90,7 @@ public struct AdView: View { Text(appAd.description) .subheadline() - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() } .padding(.leading, .xSmall) diff --git a/Sources/OversizeKit/LauncherKit/Launcher.swift b/Sources/OversizeKit/LauncherKit/Launcher.swift index 4576ace..51a704f 100644 --- a/Sources/OversizeKit/LauncherKit/Launcher.swift +++ b/Sources/OversizeKit/LauncherKit/Launcher.swift @@ -14,10 +14,8 @@ public struct Launcher: View { private var onboarding: Onboarding? private let content: Content - private var transaction = Transaction() @StateObject private var viewModel = LauncherViewModel() - @State private var blurRadius: CGFloat = 0 public init(@ViewBuilder content: () -> Content) { self.content = content() @@ -39,15 +37,19 @@ public struct Launcher: View { .appLaunchCover(item: $viewModel.activeFullScreenSheet) { fullScreenCover(sheet: $0) .systemServices() + #if os(macOS) + .frame(width: 840, height: 672) + // .interactiveDismissDisabled(!viewModel.appStateService.isCompletedOnbarding) + #endif } - .onChange(of: viewModel.appStateService.isCompletedOnbarding) { isCompletedOnbarding in + .onChange(of: viewModel.appStateService.isCompletedOnbarding) { _, isCompletedOnbarding in if isCompletedOnbarding, !viewModel.isPremium { viewModel.setPayWall() } else { viewModel.activeFullScreenSheet = nil } } - .onChange(of: scenePhase, perform: { value in + .onChange(of: scenePhase) { _, value in switch value { case .background: viewModel.authState = .locked @@ -55,7 +57,7 @@ public struct Launcher: View { default: break } - }) + } } @ViewBuilder @@ -67,7 +69,9 @@ public struct Launcher: View { } else { content .onAppear { - viewModel.reviewService.launchEvent() + Task { @MainActor in + await viewModel.reviewService.launchEvent() + } viewModel.launcherSheetsChek() } } @@ -84,14 +88,15 @@ public struct Launcher: View { } private var lockscreenView: some View { - LockscreenView(pinCode: $viewModel.pinCodeField, - state: $viewModel.authState, - title: L10n.Security.enterPINCode, - errorText: L10n.Security.invalidPIN, - pinCodeEnabled: viewModel.settingsService.pinCodeEnabend, - biometricEnabled: viewModel.settingsService.biometricEnabled, - biometricType: viewModel.biometricService.biometricType) - { + LockscreenView( + pinCode: $viewModel.pinCodeField, + state: $viewModel.authState, + title: L10n.Security.enterPINCode, + errorText: L10n.Security.invalidPIN, + pinCodeEnabled: viewModel.settingsService.pinCodeEnabend, + biometricEnabled: viewModel.settingsService.biometricEnabled, + biometricType: viewModel.biometricService.biometricType + ) { viewModel.checkPassword() } biometricAction: { viewModel.appLockValidation() @@ -122,7 +127,6 @@ public extension View { Launcher { self } - .systemServices() } func appLaunch(@ViewBuilder onboarding: @escaping () -> some View) -> some View { @@ -130,7 +134,6 @@ public extension View { self } .onboarding(onboarding: onboarding) - .systemServices() } } @@ -139,8 +142,7 @@ private extension View { item: Binding, onDismiss: (() -> Void)? = nil, @ViewBuilder content: @escaping (Item) -> some View ) -> some View where Item: Identifiable { #if os(macOS) - interactiveDismissDisabled() - .sheet(item: item, onDismiss: onDismiss, content: content) + sheet(item: item, onDismiss: onDismiss, content: content) #else fullScreenCover(item: item, onDismiss: onDismiss, content: content) #endif diff --git a/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift b/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift index a8e4e0c..8899600 100644 --- a/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift +++ b/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift @@ -49,7 +49,7 @@ public final class LauncherViewModel: ObservableObject { } extension LauncherViewModel { - enum FullScreenSheet: Identifiable, Equatable { + enum FullScreenSheet: Identifiable, Equatable, Sendable { case onboarding case payWall case rate @@ -124,7 +124,9 @@ public extension LauncherViewModel { func setPayWall() { activeFullScreenSheet = nil delay(time: 0.2) { - self.activeFullScreenSheet = .payWall + Task { @MainActor in + self.activeFullScreenSheet = .payWall + } } } diff --git a/Sources/OversizeKit/LauncherKit/RateAppScreen.swift b/Sources/OversizeKit/LauncherKit/RateAppScreen.swift index 54a5bd2..b859b0d 100644 --- a/Sources/OversizeKit/LauncherKit/RateAppScreen.swift +++ b/Sources/OversizeKit/LauncherKit/RateAppScreen.swift @@ -17,7 +17,7 @@ struct RateAppScreen: View { VStack { Text("If you love, evaluate)") .largeTitle(.bold) - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() Spacer() @@ -29,14 +29,14 @@ struct RateAppScreen: View { Text((Info.app.name ?? "App") + " is developed only one person, and your assessment would very much drop in") .title3() - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() Spacer() if let reviewUrl = Info.url.appStoreReview { HStack(spacing: .large) { Link(destination: reviewUrl) { - IconDeprecated(.thumbsUp, color: .onPrimaryHighEmphasis) + IconDeprecated(.thumbsUp, color: .onPrimary) } .buttonStyle(.primary(infinityWidth: false)) .accent() @@ -49,7 +49,7 @@ struct RateAppScreen: View { reviewService.estimate(goodRating: false) dismiss() } label: { - IconDeprecated(.thumbsDown, color: .onSurfaceHighEmphasis) + IconDeprecated(.thumbsDown, color: .onSurfacePrimary) } .buttonStyle(.secondary(infinityWidth: false)) } @@ -67,7 +67,7 @@ struct RateAppScreen: View { reviewService.rewiewBunnerClosed() dismiss() } label: { - IconDeprecated(.xMini, color: .onSurfaceHighEmphasis) + IconDeprecated(.xMini, color: .onSurfacePrimary) } .buttonStyle(.tertiary(infinityWidth: false)) .controlBorderShape(.capsule) diff --git a/Sources/OversizeKit/LockscreenKit/LockscreenView.swift b/Sources/OversizeKit/LockscreenKit/LockscreenView.swift index 0833b73..cfb01ef 100644 --- a/Sources/OversizeKit/LockscreenKit/LockscreenView.swift +++ b/Sources/OversizeKit/LockscreenKit/LockscreenView.swift @@ -87,7 +87,7 @@ public struct LockscreenView: View { public var body: some View { content() .background(Color.surfacePrimary.ignoresSafeArea(.all)) - .onChange(of: scenePhase) { phase in + .onChange(of: scenePhase) { _, phase in switch phase { case .active: if state == .locked, biometricEnabled { @@ -125,14 +125,14 @@ public struct LockscreenView: View { #else Text(biometricType.rawValue) .title2(.bold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) #endif } else { Text(biometricType.rawValue) .title2(.semibold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } Spacer() @@ -165,7 +165,7 @@ public struct LockscreenView: View { Text(title ?? "") .title2(.bold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) .opacity(title != nil ? 1 : 0) Spacer() @@ -180,7 +180,7 @@ public struct LockscreenView: View { Text(errorText ?? "") .subheadline() - .errorForegroundColor() + .errorForeground() .opacity(state == .error ? 1 : 0) if isShowTitle { @@ -247,18 +247,18 @@ public struct LockscreenView: View { EmptyView() case .touchID: Image(systemName: "touchid") - .foregroundColor(Color.onBackgroundHighEmphasis) + .foregroundColor(Color.onBackgroundPrimary) .font(.system(size: 26)) .frame(width: 24, height: 24, alignment: .center) case .faceID: Image(systemName: "faceid") .font(.system(size: 26)) - .foregroundColor(Color.onBackgroundHighEmphasis) + .foregroundColor(Color.onBackgroundPrimary) .frame(width: 24, height: 24, alignment: .center) case .opticID: Image(systemName: "opticid") .font(.system(size: 26)) - .foregroundColor(Color.onBackgroundHighEmphasis) + .foregroundColor(Color.onBackgroundPrimary) .frame(width: 24, height: 24, alignment: .center) } } @@ -284,7 +284,6 @@ public struct LockscreenView: View { .frame(width: 12, height: 12) .offset(x: leftOffset) // .animation(Animation.easeInOut(duration: 1).delay(0.2 * Double(number))) - .scaleEffect(shouldAnimate ? 0.5 : 1) .animation(Animation.easeInOut(duration: 0.5) .repeatForever() @@ -332,7 +331,7 @@ public struct NumpadButtonStyle: ButtonStyle { public func makeBody(configuration: Self.Configuration) -> some View { configuration.label .title2() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) .frame(width: 72, height: 72, alignment: .center) .background( Circle() diff --git a/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift b/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift deleted file mode 100644 index 9a7c7fc..0000000 --- a/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift +++ /dev/null @@ -1,73 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// SettingsRouting.swift, created on 10.05.2024 -// - -import OversizeRouter -import SwiftUI - -public struct SettingsRoutingView: View where Root: View { - @StateObject private var router: Router = .init() - @StateObject private var hudRouter: HUDRouter = .init() - private let root: () -> Root - - public init(@ViewBuilder root: @escaping () -> Root) { - self.root = root - } - - public var body: some View { - NavigationStack(path: $router.path) { - root() - .navigationDestination(for: SettingsScreen.self) { destination in - destination.view() - } - } - .onSettingsNavigate(routerNavigate) - .sheet( - item: $router.sheet, - content: { sheet in - NavigationStack(path: $router.sheetPath) { - sheet.view() - .navigationDestination(for: SettingsScreen.self) { destination in - destination.view() - } - } - .presentationDetents(router.sheetDetents) - .presentationDragIndicator(router.dragIndicator) - .interactiveDismissDisabled(router.dismissDisabled) - .systemServices() - .onSettingsNavigate(routerNavigate) - } - ) - #if os(iOS) - .fullScreenCover(item: $router.fullScreenCover) { fullScreenCover in - fullScreenCover.view() - .systemServices() - .onSettingsNavigate(routerNavigate) - } - #endif - } - - func routerNavigate(navigationType: SettingsNavigationType) { - switch navigationType { - case let .move(screen): - router.move(screen) - case .backToRoot: - router.backToRoot() - case let .back(count): - router.back(count) - case let .present(sheet, detents: detents, indicator: indicator, dismissDisabled: dismissDisabled): - router.present(sheet, detents: detents, indicator: indicator, dismissDisabled: dismissDisabled) - case .dismiss: - router.dismiss() - case .dismissSheet: - router.dismissSheet() - case .dismissFullScreenCover: - router.dismissFullScreenCover() - case let .dismissDisabled(isDismissDisabled): - router.dismissDisabled(isDismissDisabled) - case let .presentHUD(text, type): - hudRouter.present(text, type: type) - } - } -} diff --git a/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift b/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift similarity index 92% rename from Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift rename to Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift index 48a29ec..0da5cbe 100644 --- a/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift +++ b/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift @@ -7,11 +7,12 @@ import Foundation import OversizeComponents import OversizeLocalizable import OversizeNetwork +import OversizeRouter import SwiftUI -extension SettingsScreen { - @ViewBuilder - func view() -> some View { +extension SettingsScreen: @preconcurrency RoutableView { + @MainActor @ViewBuilder + public func view() -> some View { switch self { case .premium: StoreView() diff --git a/Sources/OversizeKit/SettingsKit/Views/Screens.swift b/Sources/OversizeKit/SettingsKit/SettingsRouter/Screens.swift similarity index 54% rename from Sources/OversizeKit/SettingsKit/Views/Screens.swift rename to Sources/OversizeKit/SettingsKit/SettingsRouter/Screens.swift index fa48fb7..33e34fe 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Screens.swift +++ b/Sources/OversizeKit/SettingsKit/SettingsRouter/Screens.swift @@ -1,8 +1,9 @@ // // Copyright © 2024 Alexander Romanov -// File.swift, created on 15.04.2024 +// SettingsScreen.swift, created on 15.04.2024 // +import OversizeComponents import OversizeModels import OversizeNetwork import OversizeRouter @@ -75,39 +76,40 @@ public extension SettingsScreen { } } -public struct SettingsNavigateAction { - public typealias Action = (SettingsNavigationType) -> Void - public let action: Action - public func callAsFunction(_ navigationType: SettingsNavigationType) { - action(navigationType) - } -} +//public struct SettingsNavigateAction { +// public typealias Action = (SettingsNavigationType) -> Void +// public let action: Action +// public func callAsFunction(_ navigationType: SettingsNavigationType) { +// action(navigationType) +// } +//} -public enum SettingsNavigationType { - case move(SettingsScreen) - case backToRoot - case back(Int = 1) - case present(_ sheet: SettingsScreen, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) - case dismiss - case dismissSheet - case dismissFullScreenCover - case dismissDisabled(_ isDismissDisabled: Bool = true) - case presentHUD(_ text: String, type: HUDMessageType) -} +//public enum SettingsNavigationType { +// case move(SettingsScreen) +// case backToRoot +// case back(Int = 1) +// case present(_ sheet: SettingsScreen, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) +// case dismiss +// case dismissSheet +// case dismissFullScreenCover +// case dismissDisabled(_ isDismissDisabled: Bool = true) +// case presentHUD(_ text: String, type: HUDMessageType) +//} -public struct SettingsNavigateEnvironmentKey: EnvironmentKey { - public static var defaultValue: SettingsNavigateAction = .init(action: { _ in }) -} - -public extension EnvironmentValues { - var settingsNavigate: SettingsNavigateAction { - get { self[SettingsNavigateEnvironmentKey.self] } - set { self[SettingsNavigateEnvironmentKey.self] = newValue } - } -} - -public extension View { - func onSettingsNavigate(_ action: @escaping SettingsNavigateAction.Action) -> some View { - environment(\.settingsNavigate, SettingsNavigateAction(action: action)) - } -} +// +// public struct SettingsNavigateEnvironmentKey: EnvironmentKey { +// public static var defaultValue: SettingsNavigateAction = .init(action: { _ in }) +// } +// +// public extension EnvironmentValues { +// var settingsNavigate: SettingsNavigateAction { +// get { self[SettingsNavigateEnvironmentKey.self] } +// set { self[SettingsNavigateEnvironmentKey.self] = newValue } +// } +// } +// +// public extension View { +// func onSettingsNavigate(_ action: @escaping SettingsNavigateAction.Action) -> some View { +// environment(\.settingsNavigate, SettingsNavigateAction(action: action)) +// } +// } diff --git a/Sources/OversizeKit/SettingsKit/SettingsRouter/SettingsRouting.swift b/Sources/OversizeKit/SettingsKit/SettingsRouter/SettingsRouting.swift new file mode 100644 index 0000000..3045579 --- /dev/null +++ b/Sources/OversizeKit/SettingsKit/SettingsRouter/SettingsRouting.swift @@ -0,0 +1,23 @@ +// +// Copyright © 2024 Alexander Romanov +// SettingsRouting.swift, created on 10.05.2024 +// + + import OversizeRouter + import SwiftUI + + public struct SettingsRoutingView: View { + + public init() { + + } + + public var body: some View { + RoutingView { + SettingsView { + EmptyView() + } + } + .systemServices() + } + } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift index be4a46e..d852126 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift @@ -8,6 +8,7 @@ import OversizeComponents import OversizeCore import OversizeLocalizable import OversizeResources +import OversizeRouter import OversizeServices import OversizeUI import SwiftUI @@ -18,7 +19,7 @@ import SwiftUI #endif public struct AboutView: View { - @Environment(\.settingsNavigate) var settingsNavigate + @Environment(Router.self) var router @Environment(\.screenSize) var screenSize @Environment(\.iconStyle) var iconStyle: IconStyle @@ -118,7 +119,7 @@ public struct AboutView: View { Text(app.name) .caption(.medium) .multilineTextAlignment(.center) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) .frame(width: 74) } } @@ -146,7 +147,7 @@ public struct AboutView: View { Text("All apps") .caption(.medium) .multilineTextAlignment(.center) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) .frame(width: 74) } } @@ -166,12 +167,12 @@ public struct AboutView: View { Image.Brands.Oversize.fill .resizable() .renderingMode(.template) - .foregroundColor(Color.onSurfaceHighEmphasis) + .foregroundColor(Color.onSurfacePrimary) .frame(width: 32, height: 32) Resource.overszieTextLogo .renderingMode(.template) - .foregroundColor(Color.onSurfaceHighEmphasis) + .foregroundColor(Color.onSurfacePrimary) } .padding(.top, -40) .padding(.bottom, .xSmall) @@ -181,12 +182,12 @@ public struct AboutView: View { Image.Brands.Oversize.fill .resizable() .renderingMode(.template) - .foregroundColor(Color.onSurfaceHighEmphasis) + .foregroundColor(Color.onSurfacePrimary) .frame(width: 48, height: 48) Resource.overszieTextLogo .renderingMode(.template) - .foregroundColor(Color.onSurfaceHighEmphasis) + .foregroundColor(Color.onSurfacePrimary) } .padding(.top, 42) .padding(.bottom, .medium) @@ -194,7 +195,7 @@ public struct AboutView: View { Text("The Oversize project is made with love and attention to the design of the forces of only one person") .title3(.semibold) - .foregroundColor(.onBackgroundHighEmphasis) + .foregroundColor(.onBackgroundPrimary) .padding(.horizontal, isLargeScreen ? 72 : 52) .padding(.bottom, .large) .multilineTextAlignment(.center) @@ -259,7 +260,7 @@ public struct AboutView: View { HStack { Text(L10n.About.otherApplications.uppercased()) .caption(true) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) .padding(.top, 12) .padding(.leading, 26) .padding(.bottom, 18) @@ -273,19 +274,19 @@ public struct AboutView: View { SectionView { VStack(spacing: .zero) { Row("Our open resources") { - settingsNavigate(.move(.ourResorses)) + router.move(.ourResorses) } .rowArrow() if let privacyUrl = Info.url.appPrivacyPolicyUrl { Row(L10n.Store.privacyPolicy) { - settingsNavigate(.present(.webView(url: privacyUrl))) + router.present(.webView(url: privacyUrl)) } } if let termsOfUde = Info.url.appTermsOfUseUrl { Row(L10n.Store.termsOfUse) { - settingsNavigate(.present(.webView(url: termsOfUde))) + router.present(.webView(url: termsOfUde)) } } } @@ -339,7 +340,7 @@ public struct AboutView: View { Spacer() Image.Brands.Facebook.Circle.fill .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) + .foregroundColor(Color.onSurfaceSecondary) Spacer() } // } @@ -353,7 +354,7 @@ public struct AboutView: View { Spacer() Image.Brands.Instagram.fill .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) + .foregroundColor(Color.onSurfaceSecondary) Spacer() } // } @@ -367,7 +368,7 @@ public struct AboutView: View { Spacer() Image.Brands.xCom .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) + .foregroundColor(Color.onSurfaceSecondary) Spacer() } // } @@ -381,7 +382,7 @@ public struct AboutView: View { Spacer() Image.Brands.Telegram.fill .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) + .foregroundColor(Color.onSurfaceSecondary) Spacer() } // } @@ -395,7 +396,7 @@ public struct AboutView: View { Spacer() Image.Brands.Dribbble.fill .renderingMode(.template) - .foregroundColor(Color.onSurfaceMediumEmphasis) + .foregroundColor(Color.onSurfaceSecondary) Spacer() } // } @@ -476,11 +477,11 @@ public struct AboutView: View { { Text("© 2024 \(developerName). \(appName) \(appVersion) (\(appBuild))") .footnote() - .foregroundColor(.onBackgroundDisabled) + .foregroundColor(.onBackgroundTertiary) } else { Text("Developer") .footnote() - .foregroundColor(.onBackgroundDisabled) + .foregroundColor(.onBackgroundTertiary) } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift b/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift index dfc01ac..bd8491f 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift @@ -9,12 +9,13 @@ import OversizeComponents import OversizeLocalizable import OversizeResources +import OversizeRouter import OversizeServices import OversizeUI import SwiftUI public struct FeedbackView: View { - @Environment(\.settingsNavigate) var settingsNavigate + @Environment(Router.self) var router @Environment(\.iconStyle) var iconStyle: IconStyle public init() {} @@ -31,7 +32,7 @@ public struct FeedbackView: View { .toolbar { ToolbarItem(placement: .cancellationAction) { Button { - settingsNavigate(.dismiss) + router.dismiss() } label: { Image.Base.close.icon() } @@ -69,7 +70,7 @@ public struct FeedbackView: View { let subject = "Feedback" Row(L10n.Settings.feedbakAuthor) { - settingsNavigate(.present(.sendMail(to: mail, subject: subject, content: contentPreText))) + router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) } leading: { mailIcon.icon() } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift b/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift index 42fe265..d0aa8cc 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift @@ -9,12 +9,13 @@ import OversizeComponents import OversizeLocalizable import OversizeResources +import OversizeRouter import OversizeServices import OversizeUI import SwiftUI public struct SupportView: View { - @Environment(\.settingsNavigate) var settingsNavigate + @Environment(Router.self) var router @Environment(\.iconStyle) var iconStyle: IconStyle public init() {} @@ -31,7 +32,7 @@ public struct SupportView: View { .toolbar { ToolbarItem(placement: .cancellationAction) { Button { - settingsNavigate(.dismissSheet) + router.dismissSheet() } label: { Image.Base.close.icon() } @@ -60,7 +61,7 @@ public struct SupportView: View { let subject = "Support" Row("Contact Us") { - settingsNavigate(.present(.sendMail(to: mail, subject: subject, content: contentPreText))) + router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) } leading: { mailIcon.icon() } diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift index 6a4e4be..89946c5 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift @@ -5,12 +5,13 @@ import OversizeCore import OversizeLocalizable +import OversizeRouter import OversizeServices import OversizeUI import SwiftUI public struct AppearanceSettingView: View { - @Environment(\.settingsNavigate) var settingsNavigate + @Environment(Router.self) var router @Environment(\.theme) private var theme: ThemeSettings @Environment(\.iconStyle) var iconStyle: IconStyle @Environment(\.isPremium) var isPremium: Bool @@ -62,7 +63,6 @@ public struct AppearanceSettingView: View { } .frame(width: 400, height: 300) // swiftlint:disable multiple_closures_with_trailing_closure superfluous_disable_command - .navigationTitle("Appearance") .preferredColorScheme(theme.appearance.colorScheme) } @@ -77,7 +77,7 @@ public struct AppearanceSettingView: View { VStack(spacing: .zero) { Text(appearance.name) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) .font(.subheadline) .bold() @@ -87,7 +87,7 @@ public struct AppearanceSettingView: View { if appearance == theme.appearance { IconDeprecated(.checkCircle, color: Color.accent) } else { - IconDeprecated(.circle, color: .onSurfaceMediumEmphasis) + IconDeprecated(.circle, color: .onSurfaceSecondary) } } Spacer() @@ -129,7 +129,7 @@ public struct AppearanceSettingView: View { ) .onTapGesture { if index != 0, isPremium == false { - settingsNavigate(.present(.premium)) + router.present(.premium) } else { let defaultIconIndex = iconSettings.iconNames .firstIndex(of: UIApplication.shared.alternateIconName) ?? 0 @@ -158,7 +158,7 @@ public struct AppearanceSettingView: View { SectionView("Advanced settings") { VStack(spacing: .zero) { Row("Fonts") { - settingsNavigate(.move(.font)) + router.move(.font) } leading: { textIcon.icon() } @@ -168,14 +168,14 @@ public struct AppearanceSettingView: View { Switch(isOn: theme.$borderApp) { Row("Borders") { - settingsNavigate(.move(.border)) + router.move(.border) } leading: { borderIcon.icon() } .premium() } .onPremiumTap() - .onChange(of: theme.borderApp) { value in + .onChange(of: theme.borderApp) { _, value in theme.borderSurface = value theme.borderButtons = value theme.borderControls = value @@ -183,7 +183,7 @@ public struct AppearanceSettingView: View { } Row("Radius") { - settingsNavigate(.move(.radius)) + router.move(.radius) } leading: { radiusIcon.icon() } @@ -229,6 +229,7 @@ public struct AppearanceSettingView: View { } #if os(iOS) + @MainActor public class AppIconSettings: ObservableObject { public var iconNames: [String?] = [nil] @Published public var currentIndex = 0 diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift index 70cba4f..6a41ab4 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift @@ -31,14 +31,14 @@ public struct BorderSettingView: View { SectionView { VStack(spacing: .zero) { Toggle("Borders in app", isOn: theme.$borderApp) - .onChange(of: theme.borderApp) { value in + .onChange(of: theme.borderApp) { _, value in theme.borderSurface = value theme.borderButtons = value theme.borderControls = value theme.borderTextFields = value } .headline() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) .padding(.horizontal, .medium) .padding(.vertical, .small) @@ -50,13 +50,13 @@ public struct BorderSettingView: View { HStack { Text("Size") .subheadline() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Spacer() Text(String(format: "%.1f", theme.borderSize) + " px") .subheadline() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } Slider(value: theme.$borderSize, in: 0.5 ... 2, step: 0.5) diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift index ed4fba7..ad9c8cf 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift @@ -56,11 +56,11 @@ public struct FontSettingView: View { VStack(alignment: .leading, spacing: 8) { Text("Aa") .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(fontStyle.rawValue.capitalizingFirstLetter()) .font(.system(size: 16, weight: .medium, design: fontStyle.system)) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } Spacer() }.padding() @@ -74,11 +74,11 @@ public struct FontSettingView: View { VStack(alignment: .leading, spacing: 8) { Text("Aa") .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(fontStyle.rawValue.capitalizingFirstLetter()) .font(.system(size: 16, weight: .medium, design: fontStyle.system)) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } Spacer() }.padding() @@ -91,16 +91,16 @@ public struct FontSettingView: View { Text("Button".uppercased()) .bold() .caption() - .onBackgroundMediumEmphasisForegroundColor() + .onBackgroundSecondaryForeground() SegmentedPickerSelector(FontDesignType.allCases, selection: theme.$fontButton) { fontStyle, _ in VStack(alignment: .center, spacing: 8) { Text("Aa") .font(.system(size: 28, weight: .heavy, design: fontStyle.system)) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(fontStyle.rawValue.capitalizingFirstLetter()) .font(.system(size: 12, weight: .medium, design: fontStyle.system)) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } } .segmentedControlStyle(.island(selected: .graySurface)) @@ -110,16 +110,16 @@ public struct FontSettingView: View { Text("Overline & caption".uppercased()) .bold() .caption() - .onBackgroundMediumEmphasisForegroundColor() + .onBackgroundSecondaryForeground() SegmentedPickerSelector(FontDesignType.allCases, selection: theme.$fontOverline) { fontStyle, _ in VStack(alignment: .center, spacing: 8) { Text("Aa") .font(.system(size: 28, weight: .heavy, design: fontStyle.system)) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(fontStyle.rawValue.capitalizingFirstLetter()) .font(.system(size: 12, weight: .medium, design: fontStyle.system)) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } } .segmentedControlStyle(.island(selected: .graySurface)) @@ -138,34 +138,34 @@ extension FontSettingView { Text("Overline".uppercased()) .bold() .caption() - .onBackgroundMediumEmphasisForegroundColor() + .onBackgroundSecondaryForeground() Text("Large title") .largeTitle() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.") .body() - .onBackgroundMediumEmphasisForegroundColor() + .onBackgroundSecondaryForeground() } VStack(alignment: .leading, spacing: Space.xxSmall.rawValue) { Text("Title") .title3() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() Text("Subtitle") .headline() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.") .bold() .subheadline() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() Text("Button") .body() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() .padding(.top, .xxxSmall) } } diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift index 277773a..1d63b74 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift @@ -32,13 +32,13 @@ public struct RadiusSettingView: View { HStack { Text("Size") .subheadline() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Spacer() Text(String(format: "%.0f", theme.radius) + " px") .subheadline() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) } Slider(value: theme.$radius, in: 0 ... 12, step: 4) diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift index bd3d913..c0484ee 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift @@ -9,8 +9,8 @@ import OversizeUI import SwiftUI public struct SetPINCodeView: View { - @Environment(\.settingsNavigate) var settingsNavigate - @EnvironmentObject private var hudRouter: HUDRouter + @Environment(Router.self) var router + @Environment(HUDRouter.self) private var hudRouter: HUDRouter @ObservedObject var viewModel: SetPINCodeViewModel @Environment(\.dismiss) var dismiss @@ -23,7 +23,7 @@ public struct SetPINCodeView: View { .toolbar { ToolbarItem(placement: .cancellationAction) { Button { - settingsNavigate(.dismiss) + router.dismiss() } label: { Image.Base.close.icon() } @@ -53,6 +53,7 @@ public struct SetPINCodeView: View { { viewModel.checkNewPINCode() } biometricAction: {} + case .confirmNewPINField: LockscreenView(pinCode: $viewModel.confirmNewCodeField, state: $viewModel.authState, diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeViewModel.swift b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeViewModel.swift index a75ebd3..3ef7f19 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeViewModel.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeViewModel.swift @@ -9,17 +9,18 @@ import OversizeServices import OversizeUI import SwiftUI -public enum PINCodeAction: Identifiable { +public enum PINCodeAction: Identifiable, Sendable { case set, update public var id: Int { hashValue } } -public enum SetPINCodeViewState { +public enum SetPINCodeViewState: Sendable { case oldPINField, newPINField, confirmNewPINField } +@MainActor public final class SetPINCodeViewModel: ObservableObject { @Published public var settingsStore: SettingsService diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift index 1bb69ed..dc09593 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift @@ -5,6 +5,7 @@ import Factory import OversizeLocalizable +import OversizeRouter import OversizeServices import OversizeUI import SwiftUI @@ -13,7 +14,7 @@ import SwiftUI public struct SecuritySettingsView: View { @Injected(\.biometricService) var biometricService - @Environment(\.settingsNavigate) var settingsNavigate + @Environment(Router.self) var router @StateObject var settingsService = SettingsService() public init() {} @@ -51,7 +52,7 @@ extension SecuritySettingsView { ) { Row(biometricService.biometricType.rawValue) { Image(systemName: biometricImageName) - .foregroundColor(Color.onBackgroundHighEmphasis) + .foregroundColor(Color.onBackgroundPrimary) .font(.system(size: 20, weight: .semibold)) .frame(width: 24, height: 24, alignment: .center) } @@ -66,7 +67,7 @@ extension SecuritySettingsView { if settingsService.isSetedPinCode() { settingsService.pinCodeEnabend = $0 } else { - settingsNavigate(.present(.setPINCode)) + router.present(.setPINCode) } }) ) { @@ -77,7 +78,7 @@ extension SecuritySettingsView { if settingsService.isSetedPinCode() { Row(L10n.Security.changePINCode) { - settingsNavigate(.present(.updatePINCode)) + router.present(.updatePINCode) } .rowArrow() } diff --git a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift index 3799b59..dec2871 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift @@ -5,14 +5,15 @@ import OversizeLocalizable import OversizeResources +import OversizeRouter import OversizeServices import OversizeUI import SwiftUI // swiftlint:disable line_length - public struct SettingsView: View { - @Environment(\.settingsNavigate) var settingsNavigate + + @Environment(Router.self) var router @Environment(\.iconStyle) var iconStyle: IconStyle @Environment(\.theme) var theme: ThemeSettings @StateObject var settingsService = SettingsService() @@ -78,7 +79,7 @@ extension SettingsView { VStack(spacing: .zero) { if FeatureFlags.app.apperance.valueOrFalse { Row(L10n.Settings.apperance) { - settingsNavigate(.move(.appearance)) + router.move(.appearance) } leading: { apperanceSettingsIcon.icon() } @@ -87,7 +88,7 @@ extension SettingsView { if FeatureFlags.app.сloudKit.valueOrFalse || FeatureFlags.app.healthKit.valueOrFalse { Row(L10n.Title.synchronization) { - settingsNavigate(.move(.sync)) + router.move(.sync) } leading: { cloudKitIcon.icon() } @@ -103,7 +104,7 @@ extension SettingsView { || FeatureFlags.secure.photoBreaker.valueOrFalse { Row(L10n.Security.title) { - settingsNavigate(.move(.security)) + router.move(.security) } leading: { securityIcon.icon() } @@ -112,7 +113,7 @@ extension SettingsView { if FeatureFlags.app.sounds.valueOrFalse || FeatureFlags.app.vibration.valueOrFalse { Row(soundsAndVibrationTitle) { - settingsNavigate(.move(.soundAndVibration)) + router.move(.soundAndVibration) } leading: { FeatureFlags.app.sounds.valueOrFalse ? soundIcon.icon() : vibrationIcon.icon() } @@ -121,7 +122,7 @@ extension SettingsView { if FeatureFlags.app.notifications.valueOrFalse { Row(L10n.Settings.notifications) { - settingsNavigate(.move(.notifications)) + router.move(.notifications) } leading: { notificationsIcon.icon() } @@ -204,7 +205,9 @@ extension SettingsView { SectionView(L10n.Settings.supportSection) { VStack(alignment: .leading) { Row("Get help") { - settingsNavigate(.present(.support, detents: [.medium])) + #if os(iOS) + router.present(.support, detents: [.medium]) + #endif } leading: { helpIcon.icon() } @@ -212,7 +215,9 @@ extension SettingsView { .buttonStyle(.row) Row("Send feedback") { - settingsNavigate(.present(.feedback, detents: [.medium])) + #if os(iOS) + router.present(.feedback, detents: [.medium]) + #endif } leading: { chatIcon.icon() } @@ -292,7 +297,7 @@ extension SettingsView { SectionView { VStack(spacing: .zero) { Row(L10n.Settings.about) { - settingsNavigate(.move(.about)) + router.move(.about) } leading: { infoIcon.icon() } diff --git a/Sources/OversizeKit/StateKit/LoadingViewState.swift b/Sources/OversizeKit/StateKit/LoadingViewState.swift index 07b19d2..05176b8 100644 --- a/Sources/OversizeKit/StateKit/LoadingViewState.swift +++ b/Sources/OversizeKit/StateKit/LoadingViewState.swift @@ -6,9 +6,44 @@ import Foundation import OversizeModels -public enum LoadingViewState { +public enum LoadingViewState: Equatable { + case idle case loading case result(Result) - case empty(String) case error(AppError) } + +public extension LoadingViewState { + var isLoading: Bool { + switch self { + case .loading, .idle: + return true + default: + return false + } + } + + var result: Result? { + switch self { + case let .result(result): + return result + default: + return nil + } + } + + static func == (lhs: LoadingViewState, rhs: LoadingViewState) -> Bool { + switch (lhs, rhs) { + case (.idle, .idle): + return true + case (.loading, .loading): + return true + case (.result, .result): + return true + case (.error, .error): + return true + default: + return false + } + } +} diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift index 3b18d10..1928817 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift @@ -57,7 +57,7 @@ } } - extension AppStoreProductViewController: SKStoreProductViewControllerDelegate { + extension AppStoreProductViewController: @preconcurrency SKStoreProductViewControllerDelegate { public func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) { viewController.dismiss(animated: true) } diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift index a736466..b579acd 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift @@ -59,7 +59,7 @@ public struct StoreInstuctinsView: View { .environmentObject(viewModel) } } - .onChange(of: isPremium) { status in + .onChange(of: isPremium) { _, status in if status { dismiss() } @@ -80,12 +80,12 @@ public struct StoreInstuctinsView: View { VStack(spacing: .xSmall) { Text("How your free trial works") .largeTitle() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) if viewModel.isHaveSale { Group { Text("Begin your path towards feeling better with a ") - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) + Text("--% discount") .foregroundColor(.accent) @@ -107,7 +107,7 @@ public struct StoreInstuctinsView: View { .overlay { ScrollArrow(width: 30, offset: -5 + (offset * 0.05)) .stroke(style: StrokeStyle(lineWidth: 5, lineCap: .round)) - .foregroundColor(.onSurfaceHighEmphasis.opacity(0.3)) + .foregroundColor(.onSurfacePrimary.opacity(0.3)) .frame(width: 30) .offset(y: screenSize.safeAreaHeight - 300) // .opacity(1 - (offset * 0.01)) @@ -128,12 +128,12 @@ public struct StoreInstuctinsView: View { VStack(spacing: .xSmall) { Text("How your free trial works") .largeTitle() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) if viewModel.isHaveSale { Group { Text("Begin your path towards feeling better with a ") - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) + Text("\(viewModel.saleProcent)% discount") .foregroundColor(.accent) @@ -155,7 +155,7 @@ public struct StoreInstuctinsView: View { .overlay { ScrollArrow(width: 30, offset: -5 + (offset * 0.05)) .stroke(style: StrokeStyle(lineWidth: 5, lineCap: .round)) - .foregroundColor(.onSurfaceHighEmphasis.opacity(0.3)) + .foregroundColor(.onSurfacePrimary.opacity(0.3)) .frame(width: 30) .offset(y: screenSize.safeAreaHeight - 300) // .opacity(1 - (offset * 0.01)) @@ -179,7 +179,7 @@ public struct StoreInstuctinsView: View { await viewModel.updateSubscriptionStatus(products: data) } } - .onChange(of: data.purchasedAutoRenewable) { _ in + .onChange(of: data.purchasedAutoRenewable) { _, _ in Task { await viewModel.updateSubscriptionStatus(products: data) } @@ -192,7 +192,7 @@ public struct StoreInstuctinsView: View { HStack(alignment: .top, spacing: .small) { Resource.Store.zap .renderingMode(.template) - .foregroundColor(.onPrimaryHighEmphasis) + .foregroundColor(.onPrimary) .padding(.small) .background { Circle() @@ -226,7 +226,7 @@ public struct StoreInstuctinsView: View { HStack(alignment: .top, spacing: .small) { Image.Base.Notification.fill .renderingMode(.template) - .foregroundColor(Color.onSurfaceDisabled) + .foregroundColor(Color.onSurfaceTertiary) .padding(14) .background { Circle() @@ -252,7 +252,7 @@ public struct StoreInstuctinsView: View { HStack(alignment: .top, spacing: .small) { Image.Base.Star.fill .renderingMode(.template) - .foregroundColor(Color.onSurfaceDisabled) + .foregroundColor(Color.onSurfaceTertiary) .padding(14) .background { Circle() diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift index 2f522b6..e2c0f39 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift @@ -43,7 +43,7 @@ public struct StoreSpecialOfferView: View { } } - .onChange(of: isPremium) { status in + .onChange(of: isPremium) { _, status in if status { dismiss() } @@ -223,7 +223,7 @@ public struct StoreSpecialOfferView: View { .overlay { ScrollArrow(width: 30, offset: -5 + (offset * 0.05)) .stroke(style: StrokeStyle(lineWidth: 5, lineCap: .round)) - .foregroundColor(.onSurfaceHighEmphasis.opacity(0.3)) + .foregroundColor(.onSurfacePrimary.opacity(0.3)) .frame(width: 30) .offset(y: screenSize.safeAreaHeight - 280) .opacity(1 - (offset * 0.01)) @@ -232,7 +232,7 @@ public struct StoreSpecialOfferView: View { VStack(spacing: .zero) { Text("Additional features in\nthe subscription") .title() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() .multilineTextAlignment(.center) .fixedSize() .padding(.top, .large) @@ -252,7 +252,7 @@ public struct StoreSpecialOfferView: View { .task { await viewModel.updateSubscriptionStatus(products: data) } - .onChange(of: data.purchasedAutoRenewable) { _ in + .onChange(of: data.purchasedAutoRenewable) { _, _ in Task { await viewModel.updateSubscriptionStatus(products: data) } @@ -264,12 +264,12 @@ public struct StoreSpecialOfferView: View { VStack(spacing: .zero) { Text(badgeText.uppercased()) .footnote(.semibold) - .onBackgroundMediumEmphasisForegroundColor() + .onBackgroundSecondaryForeground() .padding(.bottom, .xxxSmall) Text(headline) .title(.bold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) .frame(maxWidth: .infinity, alignment: .center) Text(event.title) @@ -277,7 +277,7 @@ public struct StoreSpecialOfferView: View { .foregroundColor(titleColor) Text(description) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) .headline(.regular) .padding(.top, .xSmall) } @@ -332,7 +332,7 @@ public struct StoreSpecialOfferView: View { if let accentColor = event.accentColor { return Color(hex: accentColor) } else { - return Color.onBackgroundHighEmphasis + return Color.onBackgroundPrimary } } diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift index 42f78c7..861a886 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift @@ -93,11 +93,11 @@ import SwiftUI VStack(spacing: .xxSmall) { Text(titleText) .title() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(subtitleText) .headline() - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) } .multilineTextAlignment(.center) @@ -120,11 +120,11 @@ import SwiftUI VStack(spacing: .xxSmall) { Text(titleText) .title() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(subtitleText) .headline() - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) } .multilineTextAlignment(.center) @@ -163,14 +163,14 @@ import SwiftUI await viewModel.updateSubscriptionStatus(products: data) } } - .onChange(of: data.purchasedAutoRenewable) { _ in + .onChange(of: data.purchasedAutoRenewable) { _, _ in Task { // When `purchasedSubscriptions` changes, get the latest subscription status. await viewModel.updateSubscriptionStatus(products: data) } } - .onChange(of: viewModel.isPremium) { newValue in - isShowFireworks = newValue + .onChange(of: viewModel.isPremium) { _, status in + isShowFireworks = status DispatchQueue.main.asyncAfter(deadline: .now() + 30) { isShowFireworks = false } diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift index fc1d271..346fe95 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift @@ -138,7 +138,6 @@ extension StoreViewModel { } } - // Percentage of decrease = |239.88 - 59.99|/239.88 = 179.89/239.88 = 0.74991662497916 = 74.991662497916% var saleProcent: String { guard let yearSubscriptionProduct else { return "" } if let monthSubscriptionProduct { diff --git a/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift b/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift index 0594af7..7fa7602 100644 --- a/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift +++ b/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift @@ -45,12 +45,12 @@ public struct PremiumBlockOverlay: ViewModifier { VStack(spacing: .small) { Text(title) .title() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) if let subtitle { Text(subtitle) .headline(.medium) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) } } .multilineTextAlignment(.center) diff --git a/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift b/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift index caa0b85..9e71cad 100644 --- a/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift +++ b/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift @@ -49,7 +49,7 @@ public struct PaymentButtonStyle: ButtonStyle { configuration.label .body(true) .opacity(isLoading ? 0 : 1) - .foregroundColor(.onPrimaryHighEmphasis) + .foregroundColor(.onPrimary) .padding(.horizontal, horizontalPadding) .padding(.vertical, verticalPadding) .frame(maxWidth: maxWidth) @@ -67,7 +67,7 @@ public struct PaymentButtonStyle: ButtonStyle { ) .overlay { RoundedRectangle(cornerRadius: 10, style: .continuous) - .strokeBorder(Color.onSurfaceHighEmphasis.opacity(0.15), lineWidth: 2) + .strokeBorder(Color.onSurfacePrimary.opacity(0.15), lineWidth: 2) .opacity(isBordered || theme.borderButtons ? 1 : 0) } } @@ -76,7 +76,7 @@ public struct PaymentButtonStyle: ButtonStyle { private func loadingView(for _: ButtonRole?) -> some View { if isLoading { ProgressView() - .progressViewStyle(CircularProgressViewStyle(tint: Color.onPrimaryHighEmphasis)) + .progressViewStyle(CircularProgressViewStyle(tint: Color.onPrimary)) } else { EmptyView() } diff --git a/Sources/OversizeKit/StoreKit/Views/FireworksBubbles.swift b/Sources/OversizeKit/StoreKit/Views/FireworksBubbles.swift index c2e78af..6db793a 100644 --- a/Sources/OversizeKit/StoreKit/Views/FireworksBubbles.swift +++ b/Sources/OversizeKit/StoreKit/Views/FireworksBubbles.swift @@ -54,7 +54,7 @@ struct FireworksBubbles: View { ZStack { ForEach(0 ..< Int.random(in: 2 ... 5), id: \.self) { _ in Circle() - .fill(Color.onPrimaryDisabled) + .fill(Color.onPrimaryTertiary) .frame(width: 30, height: 30) .modifier(ParticlesBubblesModifier()) .offset(x: CGFloat.random(in: -200 ... 200), y: CGFloat.random(in: -200 ... 200)) diff --git a/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift b/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift index d479082..7818f76 100644 --- a/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift +++ b/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift @@ -67,14 +67,14 @@ public struct PrmiumBannerRow: View { Text(Info.store.subscriptionsName) .headline(.semibold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Spacer() HStack(spacing: .small) { Text(viewModel.subsribtionStatusText) .headline(.medium) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) Circle() .foregroundColor(viewModel.subsribtionStatusColor) @@ -118,13 +118,13 @@ public extension PrmiumBannerRow { } .background( RoundedRectangle(cornerRadius: Radius.small.rawValue, style: .continuous) - .fill(Color.onPrimaryHighEmphasis + .fill(Color.onPrimary )) Text(Info.store.subscriptionsDescription) .headline(.semibold) - .onPrimaryHighEmphasisForegroundColor() + .onPrimaryForeground() .multilineTextAlignment(.center) .padding(.top, Space.xSmall) .frame(maxWidth: 260) diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift index d0ff026..d192629 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift @@ -45,13 +45,16 @@ public struct StoreFeatureDetailView: View { Button { dismiss() } label: { - IconDeprecated(.xMini, color: selection.screenURL != nil ? .onPrimaryHighEmphasis : .onSurfaceDisabled) - .padding(.xxSmall) - .background { - Circle() - .fill(.ultraThinMaterial) - } - .padding(.small) + IconDeprecated( + .xMini, + color: selection.screenURL != nil ? .onPrimary : .onSurfaceTertiary + ) + .padding(.xxSmall) + .background { + Circle() + .fill(.ultraThinMaterial) + } + .padding(.small) } } #endif diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift index 0668344..3b20f80 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift @@ -54,11 +54,11 @@ struct StoreFeaturesLargeView: View { VStack(spacing: .xxSmall) { Text(feature.title.valueOrEmpty) .title2(.bold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(feature.subtitle.valueOrEmpty) .body(.medium) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) } .padding(.vertical, .medium) .padding(.horizontal, .xSmall) @@ -119,11 +119,11 @@ struct StoreFeaturesLargeView: View { VStack(spacing: .xSmall) { Text(feature.title.valueOrEmpty) .title2(.bold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(feature.subtitle.valueOrEmpty) .body(.medium) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) } } .padding(.vertical, .large) diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift index a0c895b..c20fc1a 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift @@ -31,7 +31,7 @@ struct StoreFeaturesView: View { .renderingMode(.template) } } - .onPrimaryHighEmphasisForegroundColor() + .onPrimaryForeground() .iconOnSurface(surfaceSolor: backgroundColor(feature: feature)) } .rowArrow() diff --git a/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift b/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift index 0399d3b..42ad0df 100644 --- a/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift +++ b/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift @@ -23,7 +23,7 @@ struct StorePaymentButtonBar: View { if showDescription { Text(viewModel.selectedProductButtonDescription) .subheadline(.semibold) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) .padding(.vertical, 20) } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift b/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift index 2fa0d08..a10a81c 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift @@ -148,7 +148,7 @@ public struct StoreProductView: View { if isSelected { Circle() - .fill(Color.onPrimaryHighEmphasis) + .fill(Color.onPrimary) .frame(width: 20, height: 20) .overlay { IconDeprecated(.checkMini, color: topLabelbackgroundColor) @@ -174,21 +174,21 @@ public struct StoreProductView: View { VStack(spacing: .zero) { Text(product.displayMonthsCount) .title2() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Text(product.displayMonthsCountDescription) .footnote(.bold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) HStack(spacing: .zero) { Text(product.displayPrice) .subheadline(.semibold) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) .padding(.top, .xxxSmall) Text(product.displayPeriod) .caption2() - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) .padding(.top, .xxxSmall) } .padding(.top, .xxxSmall) @@ -209,7 +209,7 @@ public struct StoreProductView: View { .fill(topLabelbackgroundColor) .frame(width: 20, height: 20) .overlay { - IconDeprecated(.checkMini, color: Color.onPrimaryHighEmphasis) + IconDeprecated(.checkMini, color: Color.onPrimary) } .padding(.top, .xxxSmall) .padding(.trailing, .xxxSmall) @@ -230,12 +230,12 @@ public struct StoreProductView: View { HStack { Text(product.displayName) .headline() - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) if isHaveSale, !isPurchased { Text("Save " + saleProcent + "%") .caption2(.bold) - .foregroundColor(.onPrimaryHighEmphasis) + .foregroundColor(.onPrimary) .padding(.horizontal, .xxSmall) .padding(.vertical, .xxxSmall) .background { @@ -267,14 +267,14 @@ public struct StoreProductView: View { .caption2() .padding(.top, .xxxSmall) } - .foregroundColor(.onSurfaceDisabled) + .foregroundColor(.onSurfaceTertiary) .padding(.vertical, .xxSmall) #if os(iOS) if isHaveSale, !isPurchased { Text("Save " + saleProcent + "%") .caption2(.bold) - .foregroundColor(.onPrimaryHighEmphasis) + .foregroundColor(.onPrimary) .padding(.vertical, .xxxSmall) .frame(maxWidth: .infinity) .background { @@ -299,7 +299,7 @@ public struct StoreProductView: View { VStack(alignment: .trailing, spacing: .xxSmall) { Text(product.displayPriceWithPeriod) .headline(.semibold) - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) if let subscriptionUnit = product.subscription?.subscriptionPeriod.unit, subscriptionUnit == .year { HStack(spacing: 2) { @@ -307,12 +307,12 @@ public struct StoreProductView: View { Text(monthSubscriptionProduct.displayPrice) .strikethrough() .subheadline() - .foregroundColor(.onSurfaceDisabled) + .foregroundColor(.onSurfaceTertiary) } Text(product.displayMonthPrice + product.displayMonthPricePeriod) .subheadline() - .foregroundColor(.onSurfaceMediumEmphasis) + .foregroundColor(.onSurfaceSecondary) } } } @@ -379,7 +379,7 @@ public struct StoreProductView: View { var topLabelForegroundColor: Color { if isPurchased || isSelected { - return .onPrimaryHighEmphasis + return .onPrimary } else { return Palette.violet.color } @@ -387,7 +387,7 @@ public struct StoreProductView: View { var descriptionForegroundColor: Color { if isPurchased || product.type != .autoRenewable { - return .onSurfaceMediumEmphasis + return .onSurfaceSecondary } else { return .warning } diff --git a/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift b/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift index 692e91e..6b8ec96 100644 --- a/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift +++ b/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift @@ -21,11 +21,11 @@ struct SubscriptionPrivacyView: View { VStack(spacing: .xxSmall) { Text("About \(Info.store.subscriptionsName) subscription") .subheadline(.bold) - .foregroundColor(Color.onSurfaceDisabled) + .foregroundColor(Color.onSurfaceTertiary) Text("\(Info.store.subscriptionsName) subscription is required to get access to all functions. Regardless whether the subscription has free trial period or not it automatically renews with the price and duration given above unless it is canceled at least 24 hours before the end of the current period. Payment will be charged to your Apple ID account at the confirmation of purchase. Your account will be charged for renewal within 24 hours prior to the end of the current period. You can manage and cancel your subscriptions by going to your account settings on the App Store after purchase. Any unused portion of a free trial period, if offered, will be forfeited when the user purchases a subscription to that publication, where applicable.") .caption() - .foregroundColor(Color.onSurfaceMediumEmphasis) + .foregroundColor(Color.onSurfaceSecondary) #if os(iOS) HStack(spacing: .xxSmall) { @@ -62,7 +62,7 @@ struct SubscriptionPrivacyView: View { } } .subheadline(.bold) - .foregroundColor(Color.onSurfaceDisabled) + .foregroundColor(Color.onSurfaceTertiary) .padding(.top, .xxxSmall) #endif } diff --git a/Sources/OversizeKit/SystemKit/SystemServices.swift b/Sources/OversizeKit/SystemKit/SystemServices.swift index dbbef9a..a9cc75f 100644 --- a/Sources/OversizeKit/SystemKit/SystemServices.swift +++ b/Sources/OversizeKit/SystemKit/SystemServices.swift @@ -4,26 +4,25 @@ // import Factory -import OversizeCore -import OversizeLocalizable import OversizeServices import OversizeStoreService import OversizeUI import SwiftUI public struct SystemServicesModifier: ViewModifier { - @Injected(\.appStateService) var appState: AppStateService - @Injected(\.settingsService) var settingsService: SettingsServiceProtocol - @Injected(\.appStoreReviewService) var appStoreReviewService: AppStoreReviewServiceProtocol + @Injected(\.appStateService) private var appState: AppStateService + @Injected(\.settingsService) private var settingsService: SettingsServiceProtocol + @Injected(\.appStoreReviewService) private var appStoreReviewService: AppStoreReviewServiceProtocol - @Environment(\.scenePhase) var scenePhase: ScenePhase - @Environment(\.theme) var theme: ThemeSettings - @AppStorage("AppState.PremiumState") var isPremium: Bool = false + @Environment(\.scenePhase) private var scenePhase: ScenePhase + @Environment(\.theme) private var theme: ThemeSettings + @AppStorage("AppState.PremiumState") private var isPremium: Bool = false - @State var blurRadius: CGFloat = 0 - @State var oppacity: CGFloat = 1 + @State private var blurRadius: CGFloat = 0 + @State private var oppacity: CGFloat = 1 + @State private var screnSize: ScreenSize = .init(width: 375, height: 667) - enum FullScreenSheet: Identifiable, Equatable { + private enum FullScreenSheet: Identifiable, Equatable, Sendable { case onboarding case payWall case lockscreen @@ -32,41 +31,11 @@ public struct SystemServicesModifier: ViewModifier { } } - public init() {} - - @State private var screnSize: ScreenSize = .init(width: 375, height: 667) + public nonisolated init() {} public func body(content: Content) -> some View { GeometryReader { geometry in content - .onChange(of: scenePhase, perform: { value in - switch value { - case .active: - if settingsService.blurMinimizeEnabend { - withAnimation { - blurRadius = 0 - } - } - case .background: - if settingsService.blurMinimizeEnabend { - withAnimation { - blurRadius = 10 - } - } - case .inactive: - if settingsService.blurMinimizeEnabend { - withAnimation { - blurRadius = 10 - } - } - @unknown default: - break - } - }) - .onAppear { - let updatedScreenSize = ScreenSize(geometry: geometry) - screnSize = updatedScreenSize - } .blur(radius: blurRadius) .preferredColorScheme(theme.appearance.colorScheme) .premiumStatus(isPremium) @@ -75,12 +44,46 @@ public struct SystemServicesModifier: ViewModifier { #if os(iOS) .accentColor(theme.accentColor) #endif + .onAppear(perform: { onAppear(geometry: geometry) }) + .onChange(of: scenePhase) { _, phase in + onChangeScenePhase(phase) + } } } + + private func onChangeScenePhase(_ phase: ScenePhase) { + switch phase { + case .active: + if settingsService.blurMinimizeEnabend { + withAnimation { + blurRadius = 0 + } + } + case .background: + if settingsService.blurMinimizeEnabend { + withAnimation { + blurRadius = 10 + } + } + case .inactive: + if settingsService.blurMinimizeEnabend { + withAnimation { + blurRadius = 10 + } + } + @unknown default: + break + } + } + + private func onAppear(geometry: GeometryProxy) { + let updatedScreenSize = ScreenSize(geometry: geometry) + screnSize = updatedScreenSize + } } public extension View { - func systemServices() -> some View { + nonisolated func systemServices() -> some View { modifier(SystemServicesModifier()) } } diff --git a/Sources/OversizeLocationKit/AddressField/AddressField.swift b/Sources/OversizeLocationKit/AddressField/AddressField.swift index a126453..2582a24 100644 --- a/Sources/OversizeLocationKit/AddressField/AddressField.swift +++ b/Sources/OversizeLocationKit/AddressField/AddressField.swift @@ -59,7 +59,7 @@ public struct AddressField: View { HStack { Text(title) .subheadline(.medium) - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) Spacer() } } @@ -70,7 +70,7 @@ public struct AddressField: View { Text(title) .font(!isSlectedAddress ? .headline : .subheadline) .fontWeight(!isSlectedAddress ? .medium : .semibold) - .onSurfaceDisabledForegroundColor() + .onSurfaceTertiaryForeground() .offset(y: !isSlectedAddress ? 0 : -13) .opacity(!isSlectedAddress ? 0 : 1) } @@ -81,12 +81,12 @@ public struct AddressField: View { .lineLimit(1) } Spacer() - IconDeprecated(.chevronDown, color: .onSurfaceHighEmphasis) + IconDeprecated(.chevronDown, color: .onSurfacePrimary) } } .contentShape(Rectangle()) } - .foregroundColor(.onSurfaceHighEmphasis) + .foregroundColor(.onSurfacePrimary) .buttonStyle(.field) #if !os(watchOS) .sheet(isPresented: $isShowPicker) { diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift index d4a92a4..c46b204 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift @@ -44,7 +44,7 @@ import SwiftUI Spacer() } .title3() - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() .padding(.vertical, .xxSmall) .paddingContent(.horizontal) @@ -60,7 +60,7 @@ import SwiftUI .topToolbar { TextField("Search places or addresses", text: $viewModel.searchTerm) .submitScope(viewModel.searchTerm.count < 2) - .textFieldStyle(DefaultPlaceholderTextFieldStyle()) + .textFieldStyle(.default) .focused($isFocusSearth) .submitLabel(.done) .onSubmit { diff --git a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift index f004927..e36b40d 100644 --- a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift +++ b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift @@ -81,7 +81,7 @@ import SwiftUI viewModel.zoomIn() } label: { IconDeprecated(.plus) - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() .padding(.xxSmall) } @@ -89,7 +89,7 @@ import SwiftUI viewModel.zoomOut() } label: { IconDeprecated(.minus) - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() .padding(.xxSmall) } } @@ -106,7 +106,7 @@ import SwiftUI } label: { IconDeprecated(.navigation) - .onSurfaceMediumEmphasisForegroundColor() + .onSurfaceSecondaryForeground() .padding(.xxSmall) } .background { diff --git a/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift b/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift index 66f9e4e..94d24ed 100644 --- a/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift +++ b/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift @@ -38,13 +38,20 @@ import SwiftUI func setNotification(timeBefore: LocalNotificationTime) async { let notificationTime = date.addingTimeInterval(timeBefore.timeInterval) let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) + + let stringUserInfo = userInfo?.reduce(into: [String: String]()) { result, pair in + if let key = pair.key as? String, let value = pair.value as? String { + result[key] = value + } + } + await localNotificationService.schedule(localNotification: .init( id: id, title: title, body: body, dateComponents: dateComponents, repeats: false, - userInfo: userInfo + userInfo: stringUserInfo )) } diff --git a/Sources/OversizeOnboardingKit/OnboardingItem.swift b/Sources/OversizeOnboardingKit/OnboardingItem.swift deleted file mode 100644 index 76e1028..0000000 --- a/Sources/OversizeOnboardingKit/OnboardingItem.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// Copyright © 2022 Alexander Romanov -// OnboardingItem.swift -// - -import SwiftUI - -public struct OnboardingItem: Identifiable, Equatable { - public var id = UUID() - public var image: Image? - public var title: String? - public var subtitle: String? - - public init(id: UUID = UUID(), image: Image? = nil, title: String? = nil, subtitle: String? = nil) { - self.id = id - self.image = image - self.title = title - self.subtitle = subtitle - } -} diff --git a/Sources/OversizeOnboardingKit/OnboardingItemPreferenceKey.swift b/Sources/OversizeOnboardingKit/OnboardingItemPreferenceKey.swift deleted file mode 100644 index 0335c7f..0000000 --- a/Sources/OversizeOnboardingKit/OnboardingItemPreferenceKey.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// Copyright © 2022 Alexander Romanov -// OnboardingItemPreferenceKey.swift -// - -import SwiftUI - -struct OnboardingItemPreferenceKey: PreferenceKey { - static var defaultValue: [OnboardingItem] = [] - - static func reduce(value: inout [OnboardingItem], nextValue: () -> [OnboardingItem]) { - value += nextValue() - } -} diff --git a/Sources/OversizeOnboardingKit/OnboardingItemViewModifier.swift b/Sources/OversizeOnboardingKit/OnboardingItemViewModifier.swift deleted file mode 100644 index 23590f6..0000000 --- a/Sources/OversizeOnboardingKit/OnboardingItemViewModifier.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// Copyright © 2022 Alexander Romanov -// OnboardingItemViewModifier.swift -// - -import SwiftUI - -struct OnboardingItemViewModifier: ViewModifier { - let onboardingItem: OnboardingItem - - func body(content: Content) -> some View { - content - .preference(key: OnboardingItemPreferenceKey.self, value: [onboardingItem]) - } -} - -public extension View { - func onboardingItem(_ label: () -> OnboardingItem) -> some View { - modifier(OnboardingItemViewModifier(onboardingItem: label())) - } -} diff --git a/Sources/OversizeOnboardingKit/OnboardingView.swift b/Sources/OversizeOnboardingKit/OnboardingView.swift index a12d76e..6ac81eb 100644 --- a/Sources/OversizeOnboardingKit/OnboardingView.swift +++ b/Sources/OversizeOnboardingKit/OnboardingView.swift @@ -1,111 +1,125 @@ // -// Copyright © 2023 Alexander Romanov -// OnboardingView.swift +// Copyright © 2024 Alexander Romanov +// OnboardView.swift, created on 16.09.2024 // import OversizeUI import SwiftUI -public struct OnboardingView: View { - @Environment(\.screenSize) var screenSize - - @Binding private var selection: Int - - @Namespace private var onboardingItem - - @State private var slides: [OnboardingItem] = [] - - private let finishAction: (() -> Void)? - - private var content: Content - - public init(selection: Binding, finishAction: (() -> Void)? = nil, @ViewBuilder content: () -> Content) { +public struct OnboardView: View where A: View, C: View { + private let content: C + private let actions: Group + private let backAction: (() -> Void)? + private let skipAction: (() -> Void)? + private let helpAction: (() -> Void)? + + public init( + @ViewBuilder content: () -> C, + @ViewBuilder actions: () -> A, + backAction: (() -> Void)? = nil, + skipAction: (() -> Void)? = nil, + helpAction: (() -> Void)? = nil + ) { self.content = content() - self.finishAction = finishAction - _selection = selection + self.actions = Group { actions() } + self.backAction = backAction + self.skipAction = skipAction + self.helpAction = helpAction } public var body: some View { - ZStack { - VStack { - PageIndexView($selection, maxIndex: slides.count) - .padding(.top, .large) - Spacer() - } - - TabView(selection: $selection) { - // ForEach(Array(slides.enumerated()), id: \.offset) { index, element in + content + .ignoresSafeArea(.all) + .frame( + maxWidth: .infinity, + maxHeight: .infinity + ) + .safeAreaInset(edge: .top, content: topButtons) + .safeAreaInset(edge: .bottom, content: bottomButtons) + } - tabItem(tabItem: OnboardingItem(title: "Title", subtitle: "Sub"), index: 0) - // .tag(index) - // } - } + private func topButtons() -> some View { + HStack { #if os(iOS) - .tabViewStyle(.page(indexDisplayMode: .never)) - .indexViewStyle(.page(backgroundDisplayMode: .never)) + if helpAction != nil { + Button { + helpAction?() + } label: { + Text("Help") + } + .buttonStyle(.tertiary) + .controlBorderShape(.capsule) + .accent() + .controlSize(.mini) + } #endif + + Spacer() + + if skipAction != nil { + Button { + skipAction?() + } label: { + Text("Skip") + } + .buttonStyle(.tertiary) + .controlBorderShape(.capsule) + .accent() + #if !os(tvOS) + .controlSize(.mini) + #endif + } } - .background( - Color.backgroundSecondary.ignoresSafeArea() - ) - .onPreferenceChange(OnboardingItemPreferenceKey.self) { value in - slides = value - } + .padding(.medium) } - private func tabItem(tabItem: OnboardingItem, index _: Int) -> some View { - VStack(spacing: .small) { - if let image = tabItem.image { - image - } + private func bottomButtons() -> some View { + #if os(iOS) + HStack(spacing: .small) { + if let backAction { + Button { + backAction() + } label: { + Image.Base.arrowLeft.icon() + } + .buttonStyle(.quaternary) + .accentColor(.secondary) + } - VStack { - if let title = tabItem.title { - Text(title) - .largeTitle() - .foregroundColor(.onSurfaceHighEmphasis) - .padding(.bottom, .small) + VStack(spacing: .xxxSmall) { + actions + } + } + .padding(.medium) + #else + HStack(spacing: .xSmall) { + if let helpAction { + Button("Help", action: helpAction) + .help("Help") + .controlSize(.extraLarge) + .buttonStyle(.bordered) } - if let subtitle = tabItem.subtitle { - Text(subtitle) - .foregroundColor(.onSurfaceMediumEmphasis) - .fontWeight(.regular) - .font(.system(size: 19)) + Spacer() + + if let backAction { + Button( + "Back", + action: backAction + ) + .controlSize(.extraLarge) + .buttonStyle(.bordered) } + + actions + .controlSize(.extraLarge) + .buttonStyle(.borderedProminent) } - .offset(y: screenSize.height < 812 ? -50 : 0) - } - .multilineTextAlignment(.center) - .frame(maxWidth: 320) - .offset(y: -50) - .padding(.bottom, .xLarge) + .padding(.small) + .background(Color.surfacePrimary) + .overlay(alignment: .top) { + Separator() + } + #endif } } - -// struct FloatingTabBarExample: View { -// @State var selection = 0 -// -// var body: some View { -// FloatingTabBar(selection: $selection, plusAction: { print("plus") }) { -// Color.gray -// .floatingTabItem { -// TabItem(icon: Image(systemName: "star")) -// } -// .opacity(selection == 0 ? 1 : 0) -// -// Color.blue -// .floatingTabItem { -// TabItem(icon: Image(systemName: "plus")) -// } -// .opacity(selection == 1 ? 1 : 0) -// } -// } -// } - -// struct FloatingTabBar_Previews: PreviewProvider { -// static var previews: some View { -// FloatingTabBarExample() -// } -// } -// diff --git a/Sources/OversizePhotoKit/PhotosGalleryView.swift b/Sources/OversizePhotoKit/PhotosGalleryView.swift index 7aff10e..5c13e1c 100644 --- a/Sources/OversizePhotoKit/PhotosGalleryView.swift +++ b/Sources/OversizePhotoKit/PhotosGalleryView.swift @@ -23,7 +23,7 @@ public struct PhotosGalleryView: View { if images.isEmpty { Text("Not photos") .title3() - .onSurfaceHighEmphasisForegroundColor() + .onSurfacePrimaryForeground() } else { ImageGridView(images, columnCount: .constant(3)) { image in let index = images.firstIndex(of: image) From a945779b54e78820003be846de37b7638f8cae62 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 10 Nov 2024 14:14:44 +0300 Subject: [PATCH 22/39] Fix #major --- Package.swift | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 81a3155..de7c73d 100644 --- a/Package.swift +++ b/Package.swift @@ -4,7 +4,7 @@ import Foundation import PackageDescription -let productionDependencies: [PackageDescription.Package.Dependency] = [ +let remoteDependencies: [PackageDescription.Package.Dependency] = [ .package(url: "https://github.com/oversizedev/OversizeUI.git", .upToNextMajor(from: "3.0.2")), .package(url: "https://github.com/oversizedev/OversizeCore.git", .upToNextMajor(from: "2.0.0")), .package(url: "https://github.com/oversizedev/OversizeServices.git", .upToNextMajor(from: "1.4.0")), @@ -34,10 +34,8 @@ let developmentDependencies: [PackageDescription.Package.Dependency] = [ var dependencies: [PackageDescription.Package.Dependency] = [] -if ProcessInfo.processInfo.environment["RELEASE_DEPENDENCIES"].flatMap(Bool.init) ?? false { - dependencies = productionDependencies -} else { - dependencies = developmentDependencies +if ProcessInfo.processInfo.environment["BUILD_MODE"] == "PRODUCTION" { + dependencies = remoteDependencies } let package = Package( From 2c217aebef334529a6ff755a89a4c05bb762085e Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 10 Nov 2024 14:21:48 +0300 Subject: [PATCH 23/39] Fix ci --- .github/workflows/ci-push.yml | 55 ++++++++++++----------------------- 1 file changed, 18 insertions(+), 37 deletions(-) diff --git a/.github/workflows/ci-push.yml b/.github/workflows/ci-push.yml index 21ff79b..4bfd297 100644 --- a/.github/workflows/ci-push.yml +++ b/.github/workflows/ci-push.yml @@ -1,11 +1,14 @@ -name: CI - Push +name: CI + on: - pull_request: - types: - - closed + push: branches: - - main + - '**' workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: build-swiftpm: @@ -22,10 +25,14 @@ jobs: - OversizeNotificationKit - OversizeOnboardingKit - OversizePhotoKit + destination: + - platform=iOS Simulator,name=iPhone 16,OS=18.0 + - platform=macOS,arch=arm64 with: package: ${{ matrix.packages }} + destination: ${{ matrix.destination }} secrets: inherit - + build-example: name: Build Example needs: build-swiftpm @@ -33,49 +40,23 @@ jobs: strategy: matrix: destination: - - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.0 - - platform=iOS Simulator,name=iPhone 14 Pro,OS=16.5 - - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0 - - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 - - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=16.0 - - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=16.5 - - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.0 - - platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation),OS=17.5 - - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 + - platform=iOS Simulator,name=iPhone 16,OS=18.0 - platform=macOS,arch=arm64 with: path: AppExample/Example scheme: Example destination: ${{ matrix.destination }} secrets: inherit - - build-watchOS-example: - name: Build watchOS Example - needs: build-swiftpm - uses: oversizedev/GithubWorkflows/.github/workflows/build-app.yml@main - strategy: - matrix: - destination: - - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.0 - - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.5 - with: - path: AppExample/Example - scheme: Example (watchOS) Watch App - destination: ${{ matrix.destination }} - secrets: inherit # tests: # name: Test -# needs: build-example +# needs: build-swiftpm # uses: oversizedev/GithubWorkflows/.github/workflows/test.yml@main # secrets: inherit - + bump: name: Bump version - needs: - - build-example - - build-watchOS-example + needs: build-example + if: github.ref == 'refs/heads/main' uses: oversizedev/GithubWorkflows/.github/workflows/bump.yml@main secrets: inherit - From 0ba80118f553b460bb61e641618c72cf986332c9 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Mon, 11 Nov 2024 19:20:58 +0300 Subject: [PATCH 24/39] Update CI --- .github/workflows/ci-pull-request.yml | 68 ------------------- .github/workflows/{ci-push.yml => ci.yml} | 4 +- Package.swift | 12 ++-- .../SettingsKit/SettingsRouter/Screens.swift | 8 +-- .../SettingsRouter/SettingsRouting.swift | 13 ++-- .../SettingsKit/Views/SettingsView.swift | 1 - 6 files changed, 17 insertions(+), 89 deletions(-) delete mode 100644 .github/workflows/ci-pull-request.yml rename .github/workflows/{ci-push.yml => ci.yml} (92%) diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml deleted file mode 100644 index f88453a..0000000 --- a/.github/workflows/ci-pull-request.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: CI - Pull Request -on: - pull_request: - branches: - - main - push: - branches: - - develop - workflow_dispatch: - -jobs: - build-swiftpm: - name: Build SwiftPM - uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm.yml@main - strategy: - matrix: - packages: - - OversizeKit - - OversizeCalendarKit - - OversizeContactsKit - - OversizeLocationKit - - OversizeNoticeKit - - OversizeNotificationKit - - OversizeOnboardingKit - - OversizePhotoKit - with: - package: ${{ matrix.packages }} - secrets: inherit - - build-example: - name: Build Example - needs: build-swiftpm - uses: oversizedev/GithubWorkflows/.github/workflows/build-app.yml@main - strategy: - matrix: - destination: - - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0.1 - - platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5 - - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.0.1 - - platform=iOS Simulator,name=iPad Air (5th generation),OS=17.5 - - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.0 - - platform=tvOS Simulator,name=Apple TV 4K (3rd generation) (at 1080p),OS=17.5 - with: - path: AppExample/Example - scheme: Example - destination: ${{ matrix.destination }} - secrets: inherit - - build-watchOS-example: - name: Build watchOS Example - needs: build-swiftpm - uses: oversizedev/GithubWorkflows/.github/workflows/build-app.yml@main - strategy: - matrix: - destination: - - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.0 - - platform=watchOS Simulator,name=Apple Watch SE (44mm) (2nd generation),OS=10.5 - with: - path: AppExample/Example - scheme: Example (watchOS) Watch App - destination: ${{ matrix.destination }} - secrets: inherit - -# tests: -# name: Test -# needs: build-example -# uses: oversizedev/GithubWorkflows/.github/workflows/test.yml@main -# secrets: inherit diff --git a/.github/workflows/ci-push.yml b/.github/workflows/ci.yml similarity index 92% rename from .github/workflows/ci-push.yml rename to .github/workflows/ci.yml index 4bfd297..3efcb60 100644 --- a/.github/workflows/ci-push.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: - OversizeOnboardingKit - OversizePhotoKit destination: - - platform=iOS Simulator,name=iPhone 16,OS=18.0 + - platform=iOS Simulator,name=iPhone 16,OS=18.1 - platform=macOS,arch=arm64 with: package: ${{ matrix.packages }} @@ -40,7 +40,7 @@ jobs: strategy: matrix: destination: - - platform=iOS Simulator,name=iPhone 16,OS=18.0 + - platform=iOS Simulator,name=iPhone 16,OS=18.1 - platform=macOS,arch=arm64 with: path: AppExample/Example diff --git a/Package.swift b/Package.swift index de7c73d..1795262 100644 --- a/Package.swift +++ b/Package.swift @@ -6,10 +6,10 @@ import PackageDescription let remoteDependencies: [PackageDescription.Package.Dependency] = [ .package(url: "https://github.com/oversizedev/OversizeUI.git", .upToNextMajor(from: "3.0.2")), - .package(url: "https://github.com/oversizedev/OversizeCore.git", .upToNextMajor(from: "2.0.0")), + .package(url: "https://github.com/oversizedev/OversizeCore.git", .upToNextMajor(from: "1.3.0")), .package(url: "https://github.com/oversizedev/OversizeServices.git", .upToNextMajor(from: "1.4.0")), .package(url: "https://github.com/oversizedev/OversizeLocalizable.git", .upToNextMajor(from: "1.4.0")), - .package(url: "https://github.com/oversizedev/OversizeComponents.git", .upToNextMajor(from: "1.2.0")), + .package(url: "https://github.com/oversizedev/OversizeComponents.git", .upToNextMajor(from: "2.0.0")), .package(url: "https://github.com/oversizedev/OversizeResources.git", .upToNextMajor(from: "2.0.0")), .package(url: "https://github.com/oversizedev/OversizeNetwork.git", .upToNextMajor(from: "0.4.0")), .package(url: "https://github.com/oversizedev/OversizeModels.git", .upToNextMajor(from: "0.1.0")), @@ -32,10 +32,10 @@ let developmentDependencies: [PackageDescription.Package.Dependency] = [ .package(url: "https://github.com/hmlongco/Factory.git", .upToNextMajor(from: "2.1.3")), ] -var dependencies: [PackageDescription.Package.Dependency] = [] +var dependencies: [PackageDescription.Package.Dependency] = remoteDependencies -if ProcessInfo.processInfo.environment["BUILD_MODE"] == "PRODUCTION" { - dependencies = remoteDependencies +if ProcessInfo.processInfo.environment["BUILD_MODE"] == "DEV" { + dependencies = developmentDependencies } let package = Package( @@ -56,7 +56,7 @@ let package = Package( .library(name: "OversizeNotificationKit", targets: ["OversizeNotificationKit"]), .library(name: "OversizePhotoKit", targets: ["OversizePhotoKit"]), ], - dependencies: developmentDependencies, + dependencies: dependencies, targets: [ .target( name: "OversizeKit", diff --git a/Sources/OversizeKit/SettingsKit/SettingsRouter/Screens.swift b/Sources/OversizeKit/SettingsKit/SettingsRouter/Screens.swift index 33e34fe..d7d20db 100644 --- a/Sources/OversizeKit/SettingsKit/SettingsRouter/Screens.swift +++ b/Sources/OversizeKit/SettingsKit/SettingsRouter/Screens.swift @@ -76,15 +76,15 @@ public extension SettingsScreen { } } -//public struct SettingsNavigateAction { +// public struct SettingsNavigateAction { // public typealias Action = (SettingsNavigationType) -> Void // public let action: Action // public func callAsFunction(_ navigationType: SettingsNavigationType) { // action(navigationType) // } -//} +// } -//public enum SettingsNavigationType { +// public enum SettingsNavigationType { // case move(SettingsScreen) // case backToRoot // case back(Int = 1) @@ -94,7 +94,7 @@ public extension SettingsScreen { // case dismissFullScreenCover // case dismissDisabled(_ isDismissDisabled: Bool = true) // case presentHUD(_ text: String, type: HUDMessageType) -//} +// } // // public struct SettingsNavigateEnvironmentKey: EnvironmentKey { diff --git a/Sources/OversizeKit/SettingsKit/SettingsRouter/SettingsRouting.swift b/Sources/OversizeKit/SettingsKit/SettingsRouter/SettingsRouting.swift index 3045579..11aca22 100644 --- a/Sources/OversizeKit/SettingsKit/SettingsRouter/SettingsRouting.swift +++ b/Sources/OversizeKit/SettingsKit/SettingsRouter/SettingsRouting.swift @@ -3,14 +3,11 @@ // SettingsRouting.swift, created on 10.05.2024 // - import OversizeRouter - import SwiftUI +import OversizeRouter +import SwiftUI - public struct SettingsRoutingView: View { - - public init() { - - } +public struct SettingsRoutingView: View { + public init() {} public var body: some View { RoutingView { @@ -20,4 +17,4 @@ } .systemServices() } - } +} diff --git a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift index dec2871..22fd90d 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift @@ -12,7 +12,6 @@ import SwiftUI // swiftlint:disable line_length public struct SettingsView: View { - @Environment(Router.self) var router @Environment(\.iconStyle) var iconStyle: IconStyle @Environment(\.theme) var theme: ThemeSettings From 05a5d83052ec184b5d2810f655b4a7a9d1aabf2c Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Mon, 11 Nov 2024 20:21:40 +0300 Subject: [PATCH 25/39] Fix EventKit and Contacts --- .../CreateEventScreen/CreateEventViewModel.swift | 8 ++++---- .../AttendeesList/AttendeesViewModel.swift | 10 ++++------ .../ContactsLists/ContactsListsViewModel.swift | 10 ++++------ .../ContactsPicker/EmailPickerViewModel.swift | 10 ++++------ .../AddressPicker/AddressPickerViewModel.swift | 4 ++-- .../Model/LocalNotificationAlertsTimes.swift | 4 ++-- 6 files changed, 20 insertions(+), 26 deletions(-) diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift index 63b7a37..89788f2 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(EventKit) - import EventKit +@preconcurrency import EventKit #endif import Factory import OversizeCalendarService @@ -14,13 +14,13 @@ import OversizeModels import SwiftUI #if !os(tvOS) - public enum CreateEventType: Equatable { +public enum CreateEventType: Equatable, @unchecked Sendable { case new(Date?, calendar: EKCalendar?) case update(EKEvent) } - @MainActor - public class CreateEventViewModel: ObservableObject { + +public class CreateEventViewModel: ObservableObject, @unchecked Sendable { @Injected(\.calendarService) private var calendarService: CalendarService @Injected(\.locationService) private var locationService: LocationServiceProtocol diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift index 0dfa02b..b529465 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) && canImport(EventKit) - import Contacts +@preconcurrency import Contacts import EventKit #endif import Factory @@ -29,9 +29,9 @@ import SwiftUI func fetchData() async { state = .loading let _ = await contactsService.requestAccess() - do { + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) switch result { case let .success(data): log("✅ CNContact fetched") @@ -40,9 +40,7 @@ import SwiftUI log("❌ CNContact not fetched (\(error.title))") state = .error(error) } - } catch { - state = .error(.custom(title: "Not contacts")) - } + } func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { diff --git a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift index 8e7f414..c9ad11f 100644 --- a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - import Contacts +@preconcurrency import Contacts #endif import Factory import OversizeContactsService @@ -24,9 +24,9 @@ import SwiftUI func fetchData() async { state = .loading let _ = await contactsService.requestAccess() - do { + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) switch result { case let .success(data): log("✅ CNContact fetched") @@ -35,9 +35,7 @@ import SwiftUI log("❌ CNContact not fetched (\(error.title))") state = .error(error) } - } catch { - state = .error(.custom(title: "Not contacts")) - } + } func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift index 2c47623..b43a1d3 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - import Contacts +@preconcurrency import Contacts #endif import Factory import OversizeContactsService @@ -26,9 +26,9 @@ import SwiftUI let status = await contactsService.requestAccess() switch status { case .success: - do { + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = try await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) switch result { case let .success(data): log("✅ CNContact fetched") @@ -37,9 +37,7 @@ import SwiftUI log("❌ CNContact not fetched (\(error.title))") state = .error(error) } - } catch { - state = .error(.contacts(type: .unknown)) - } + case let .failure(error): state = .error(error) } diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift index 0519299..cd32569 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift @@ -13,7 +13,7 @@ import SwiftUI #if !os(watchOS) @MainActor - class AddressPickerViewModel: NSObject, ObservableObject { +class AddressPickerViewModel: NSObject, ObservableObject { @Injected(\.locationService) var locationService: LocationServiceProtocol @Published var locationResults: [MKLocalSearchCompletion] = .init() @@ -60,7 +60,7 @@ import SwiftUI } } - extension AddressPickerViewModel: MKLocalSearchCompleterDelegate { +extension AddressPickerViewModel: @preconcurrency MKLocalSearchCompleterDelegate { func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { currentPromise?(.success(completer.results)) } diff --git a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift index 227a8e9..3ace115 100644 --- a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift +++ b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift @@ -5,7 +5,7 @@ import Foundation -public enum LocalNotificationTime: CaseIterable, Equatable, Identifiable { +public enum LocalNotificationTime: CaseIterable, Equatable, Identifiable, @unchecked Sendable { case oneMinuteBefore, fiveMinutesBefore, tenMinutesBefore, thirtyMinutesBefore, oneHourBefore, twoHoursBefore, oneDayBefore, twoDaysBefore, oneWeekBefore public var title: String { @@ -58,5 +58,5 @@ public enum LocalNotificationTime: CaseIterable, Equatable, Identifiable { title } - public static var allCases: [LocalNotificationTime] = [.oneMinuteBefore, .fiveMinutesBefore, .tenMinutesBefore, .thirtyMinutesBefore, .oneHourBefore, .twoHoursBefore, .oneDayBefore, .twoDaysBefore, .oneWeekBefore] + public static let allCases: [LocalNotificationTime] = [.oneMinuteBefore, .fiveMinutesBefore, .tenMinutesBefore, .thirtyMinutesBefore, .oneHourBefore, .twoHoursBefore, .oneDayBefore, .twoDaysBefore, .oneWeekBefore] } From 93712c80ac59e931e4a373b7ffe42d1fad2811e2 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Mon, 11 Nov 2024 21:01:24 +0300 Subject: [PATCH 26/39] Format code --- .../CreateEventViewModel.swift | 7 +++--- .../AttendeesList/AttendeesViewModel.swift | 25 +++++++++---------- .../ContactsListsViewModel.swift | 23 ++++++++--------- .../ContactsPicker/EmailPickerViewModel.swift | 24 +++++++++--------- .../AddressPickerViewModel.swift | 4 +-- 5 files changed, 40 insertions(+), 43 deletions(-) diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift index 89788f2..004698e 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(EventKit) -@preconcurrency import EventKit + @preconcurrency import EventKit #endif import Factory import OversizeCalendarService @@ -14,13 +14,12 @@ import OversizeModels import SwiftUI #if !os(tvOS) -public enum CreateEventType: Equatable, @unchecked Sendable { + public enum CreateEventType: Equatable, @unchecked Sendable { case new(Date?, calendar: EKCalendar?) case update(EKEvent) } - -public class CreateEventViewModel: ObservableObject, @unchecked Sendable { + public class CreateEventViewModel: ObservableObject, @unchecked Sendable { @Injected(\.calendarService) private var calendarService: CalendarService @Injected(\.locationService) private var locationService: LocationServiceProtocol diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift index b529465..d597c36 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) && canImport(EventKit) -@preconcurrency import Contacts + @preconcurrency import Contacts import EventKit #endif import Factory @@ -29,18 +29,17 @@ import SwiftUI func fetchData() async { state = .loading let _ = await contactsService.requestAccess() - - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } - + + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) + } } func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { diff --git a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift index c9ad11f..a7ce31c 100644 --- a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) -@preconcurrency import Contacts + @preconcurrency import Contacts #endif import Factory import OversizeContactsService @@ -25,17 +25,16 @@ import SwiftUI state = .loading let _ = await contactsService.requestAccess() - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } - + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) + } } func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift index b43a1d3..243dca3 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) -@preconcurrency import Contacts + @preconcurrency import Contacts #endif import Factory import OversizeContactsService @@ -27,17 +27,17 @@ import SwiftUI switch status { case .success: - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } - + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) + } + case let .failure(error): state = .error(error) } diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift index cd32569..6db6c07 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift @@ -13,7 +13,7 @@ import SwiftUI #if !os(watchOS) @MainActor -class AddressPickerViewModel: NSObject, ObservableObject { + class AddressPickerViewModel: NSObject, ObservableObject { @Injected(\.locationService) var locationService: LocationServiceProtocol @Published var locationResults: [MKLocalSearchCompletion] = .init() @@ -60,7 +60,7 @@ class AddressPickerViewModel: NSObject, ObservableObject { } } -extension AddressPickerViewModel: @preconcurrency MKLocalSearchCompleterDelegate { + extension AddressPickerViewModel: @preconcurrency MKLocalSearchCompleterDelegate { func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { currentPromise?(.success(completer.results)) } From f14ba917fe06ec1d85446a15989197f78d02c35b Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Mon, 11 Nov 2024 21:17:02 +0300 Subject: [PATCH 27/39] Fix example --- AppExample/Example.xcodeproj/project.pbxproj | 12 ++++++------ .../UserInterfaceState.xcuserstate | Bin 296188 -> 296899 bytes .../xcschemes/xcschememanagement.plist | 2 +- .../Screens/Onboarding/OnboardingView.swift | 12 ++++++------ .../OnboardingView.swift | 10 ++++++++-- 5 files changed, 21 insertions(+), 15 deletions(-) diff --git a/AppExample/Example.xcodeproj/project.pbxproj b/AppExample/Example.xcodeproj/project.pbxproj index 6c37460..d0a2ce7 100644 --- a/AppExample/Example.xcodeproj/project.pbxproj +++ b/AppExample/Example.xcodeproj/project.pbxproj @@ -621,12 +621,12 @@ INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = UIInterfaceOrientationPortrait; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; + IPHONEOS_DEPLOYMENT_TARGET = 18.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = app.oversize.Example; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -636,7 +636,7 @@ SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,3"; - TVOS_DEPLOYMENT_TARGET = 17.0; + TVOS_DEPLOYMENT_TARGET = 18.0; }; name = Debug; }; @@ -657,12 +657,12 @@ INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = UIInterfaceOrientationPortrait; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; + IPHONEOS_DEPLOYMENT_TARGET = 18.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 14.0; + MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = app.oversize.Example; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -672,7 +672,7 @@ SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,3"; - TVOS_DEPLOYMENT_TARGET = 17.0; + TVOS_DEPLOYMENT_TARGET = 18.0; }; name = Release; }; diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 131e000660ba577a09909ee096c13a3c2472852b..8a490b1a2fb0b9124fb57d414e2b82cb3cf66af8 100644 GIT binary patch literal 296899 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

oO^~nYJlsW7b7>Zry!f7)bzvNzB7Zaao5|no z3(U8f?9F6vX3ovbxtSiC>7kkY&5m#k_toqSzj6Wjo11HM*_s!?-kTT2jGMnjS;|uj z_ukw+HSd7EH}6It`ZI_j3}q?aX#OOKvLiU@KE z`@n7Q@tpB*a257}K@e_5-H1!2lmctfN(l<1z=(p1C_*AyM4J%W^_UGjcXo4s=l8y| z9)7d;e}5WPv~Y+c9Ho;JoWU%j51ob_VQ-?z1>^~NA|X>u;EdsH;cPL*4Q7~S9=Qxl3D?Qh zMW%9_JKSXk*~$uQJY=26=&Hz6Ua`#^KJbap=&b0h=&0;As=A_$c8<}7thE`{x~qG! cSM>mcjB=4njepmHmi>EkXaD~Hx2muF1+E;U?*IS* diff --git a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist index 33cfa4a..597af26 100644 --- a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -12,7 +12,7 @@ Example.xcscheme_^#shared#^_ orderHint - 1 + 0 SuppressBuildableAutocreation diff --git a/AppExample/Example/Screens/Onboarding/OnboardingView.swift b/AppExample/Example/Screens/Onboarding/OnboardingView.swift index c3b89b6..19d572e 100644 --- a/AppExample/Example/Screens/Onboarding/OnboardingView.swift +++ b/AppExample/Example/Screens/Onboarding/OnboardingView.swift @@ -35,11 +35,11 @@ struct OnboardingView: View { VStack(spacing: .medium) { Text("Welcome to\nExample") .largeTitle() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() Text("Welcome text") .title2(.semibold) - .onBackgroundMediumEmphasisForegroundColor() + .onBackgroundSecondaryForeground() } .paddingContent(.horizontal) .multilineTextAlignment(.center) @@ -81,11 +81,11 @@ struct OnboardingView: View { VStack(spacing: .medium) { Text("Welcome to\nExample") .largeTitle() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() Text("Welcome text") .title2(.semibold) - .onBackgroundMediumEmphasisForegroundColor() + .onBackgroundSecondaryForeground() } .paddingContent(.horizontal) .multilineTextAlignment(.center) @@ -123,11 +123,11 @@ struct OnboardingView: View { VStack(spacing: .medium) { Text("Example") .largeTitle() - .onBackgroundHighEmphasisForegroundColor() + .onBackgroundPrimaryForeground() Text("Welcome text") .title2(.semibold) - .onBackgroundMediumEmphasisForegroundColor() + .onBackgroundSecondaryForeground() } .paddingContent(.horizontal) .multilineTextAlignment(.center) diff --git a/Sources/OversizeOnboardingKit/OnboardingView.swift b/Sources/OversizeOnboardingKit/OnboardingView.swift index 6ac81eb..9b0235b 100644 --- a/Sources/OversizeOnboardingKit/OnboardingView.swift +++ b/Sources/OversizeOnboardingKit/OnboardingView.swift @@ -96,8 +96,10 @@ public struct OnboardView: View where A: View, C: View { if let helpAction { Button("Help", action: helpAction) .help("Help") + #if !os(tvOS) .controlSize(.extraLarge) .buttonStyle(.bordered) + #endif } Spacer() @@ -107,13 +109,17 @@ public struct OnboardView: View where A: View, C: View { "Back", action: backAction ) + #if !os(tvOS) .controlSize(.extraLarge) + #endif .buttonStyle(.bordered) } actions - .controlSize(.extraLarge) - .buttonStyle(.borderedProminent) + #if !os(tvOS) + .controlSize(.extraLarge) + #endif + .buttonStyle(.borderedProminent) } .padding(.small) .background(Color.surfacePrimary) From 2ab21dab5e105a6001cbfeee2eb840c356d88e7a Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Mon, 11 Nov 2024 22:11:27 +0300 Subject: [PATCH 28/39] Fix macOS --- .github/workflows/ci.yml | 1 - .../UserInterfaceState.xcuserstate | Bin 296899 -> 299511 bytes 2 files changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3efcb60..da21a6a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,7 +41,6 @@ jobs: matrix: destination: - platform=iOS Simulator,name=iPhone 16,OS=18.1 - - platform=macOS,arch=arm64 with: path: AppExample/Example scheme: Example diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 8a490b1a2fb0b9124fb57d414e2b82cb3cf66af8..df3e6d45d31e88768314d9106ff7912dd5dd3de9 100644 GIT binary patch literal 299511 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 Mqrdu#%e9v>9@AEw8+;bj#4X7xusWq8C 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 Date: Mon, 11 Nov 2024 22:23:53 +0300 Subject: [PATCH 29/39] Update CI --- .github/workflows/ci.yml | 93 ++++++++++++++++++++++++++++------------ 1 file changed, 66 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index da21a6a..b6221dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,40 +11,78 @@ concurrency: cancel-in-progress: true jobs: - build-swiftpm: - name: Build SwiftPM - uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm.yml@main - strategy: - matrix: - packages: - - OversizeKit - - OversizeCalendarKit - - OversizeContactsKit - - OversizeLocationKit - - OversizeNoticeKit - - OversizeNotificationKit - - OversizeOnboardingKit - - OversizePhotoKit - destination: - - platform=iOS Simulator,name=iPhone 16,OS=18.1 - - platform=macOS,arch=arm64 - with: - package: ${{ matrix.packages }} - destination: ${{ matrix.destination }} + build-oversize-kit: + name: Build OversizeKit + uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm-all-platforms.yml@main + with: + package: OversizeKit + secrets: inherit + + build-calendar-kit: + name: Build CalendarKit + uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm-all-platforms.yml@main + with: + package: OversizeCalendarKit + secrets: inherit + + build-contacts-kit: + name: Build OversizeContactsKit + uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm-all-platforms.yml@main + with: + package: OversizeContactsKit + secrets: inherit + + build-location-kit: + name: Build LocationKit + uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm-all-platforms.yml@main + with: + package: OversizeLocationKit + secrets: inherit + + build-notice-kit: + name: Build NoticeKit + uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm-all-platforms.yml@main + with: + package: OversizeNoticeKit + secrets: inherit + + build-notification-kit: + name: Build NotificationKit + uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm-all-platforms.yml@main + with: + package: OversizeNotificationKit + secrets: inherit + + build-onboarding-kit: + name: Build OnboardingKit + uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm-all-platforms.yml@main + with: + package: OversizeOnboardingKit + secrets: inherit + + build-photo-kit: + name: Build PhotoKit + uses: oversizedev/GithubWorkflows/.github/workflows/build-swiftpm-all-platforms.yml@main + with: + package: OversizePhotoKit secrets: inherit build-example: name: Build Example - needs: build-swiftpm + needs: + - build-oversize-kit + - build-calendar-kit + - build-contacts-kit + - build-location-kit + - build-notice-kit + - build-notification-kit + - build-onboarding-kit + - build-photo-kit uses: oversizedev/GithubWorkflows/.github/workflows/build-app.yml@main - strategy: - matrix: - destination: - - platform=iOS Simulator,name=iPhone 16,OS=18.1 with: path: AppExample/Example scheme: Example - destination: ${{ matrix.destination }} + destination: platform=iOS Simulator,name=iPhone 16,OS=18.1 secrets: inherit # tests: @@ -55,7 +93,8 @@ jobs: bump: name: Bump version - needs: build-example + needs: + - build-example if: github.ref == 'refs/heads/main' uses: oversizedev/GithubWorkflows/.github/workflows/bump.yml@main secrets: inherit From 341ec1ebee968cc8b07388bac07291bb430c4acd Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Thu, 26 Dec 2024 00:22:18 +0300 Subject: [PATCH 30/39] Format and small refactor --- .swiftformat | 5 +- AppExample/Example/Router/Alerts.swift | 12 +- AppExample/Example/Router/Router.swift | 4 +- AppExample/Example/Router/Screens.swift | 4 +- AppExample/Example/Router/Tabs.swift | 30 +- Package.swift | 2 +- .../CreateEventScreen/CreateEventView.swift | 794 +++++++++--------- .../CreateEventViewModel.swift | 300 +++---- .../CreateEventViewSheet.swift | 178 ++-- .../SaveForView/SaveForView.swift | 64 +- .../Pickers/AlertPicker.swift | 64 +- .../Pickers/CalendarPicker.swift | 84 +- .../Pickers/RepeatPicker.swift | 198 ++--- .../AttendeesList/AttendeesView.swift | 130 +-- .../AttendeesList/AttendeesViewModel.swift | 76 +- .../ContactsLists/ContactsListsView.swift | 130 +-- .../ContactsListsViewModel.swift | 68 +- .../ContactsPicker/EmailPickerView.swift | 354 ++++---- .../ContactsPicker/EmailPickerViewModel.swift | 74 +- Sources/OversizeKit/AdsKit/AdView.swift | 32 +- .../DeeplinkKit/DeeplinkModifier.swift | 30 + .../OversizeKit/LauncherKit/Launcher.swift | 6 +- .../LauncherKit/LauncherViewModel.swift | 20 +- .../LauncherKit/SplashScreen.swift | 18 +- .../LockscreenKit/LockscreenView.swift | 94 ++- .../SettingsRouter/ResolveRouter.swift | 12 +- .../Views/About/About/AboutView.swift | 130 +-- .../Views/About/FeedbackView.swift | 66 +- .../Views/About/OurResorsesView.swift | 14 +- .../SettingsKit/Views/About/SupportView.swift | 66 +- .../Apperance/AppearanceSettingView.swift | 158 ++-- .../Views/Apperance/BorderSettingView.swift | 38 +- .../Views/Apperance/FontSettingView.swift | 66 +- .../Views/Apperance/RadiusSettingView.swift | 28 +- .../Security/PINCode/SetPINCodeView.swift | 39 +- .../Views/Security/SecuritySettingsView.swift | 8 +- .../SettingsKit/Views/SettingsView.swift | 122 +-- .../SoundsAndVibrationsSettingsView.swift | 14 +- .../Views/iCloud/iCloudSettingsView.swift | 7 +- .../StateKit/LoadingViewState.swift | 27 +- .../StateKit/ResultExtension.swift | 34 + .../AppStoreProduct/AppStoreProductView.swift | 44 +- .../AppStoreProductViewController.swift | 84 +- .../StoreScreen/StoreInstuctinsView.swift | 120 +-- .../StoreScreen/StoreSpecialOfferView.swift | 50 +- .../StoreKit/StoreScreen/StoreView.swift | 292 +++---- .../ViewModel/StoreViewModel.swift | 44 +- .../ViewModifier/PremiumBlockOverlay.swift | 10 +- .../StoreKit/Views/BuyButtonStyle.swift | 70 +- .../StoreKit/Views/PrmiumBannerRow.swift | 32 +- .../Views/StoreFeatureDetailView.swift | 68 +- .../Views/StoreFeaturesLargeView.swift | 20 +- .../StoreKit/Views/StoreFeaturesView.swift | 4 +- .../Views/StorePaymentButtonBar.swift | 14 +- .../StoreKit/Views/StoreProductView.swift | 94 +-- .../Views/SubscriptionPrivacyView.swift | 56 +- .../SystemKit/ErrorView/ErrorView.swift | 30 +- .../SystemKit/SuccessView/SuccessView.swift | 117 +++ .../AddressField/AddressField.swift | 18 +- .../AddressPicker/AddressPicker.swift | 359 ++++---- .../AddressPickerViewModel.swift | 110 +-- .../MapCoordinateView/MapCoordinateView.swift | 248 +++--- .../NoticeListViewModel.swift | 4 +- .../LocalNotificationSetScreenViewModel.swift | 118 +-- .../LocalNotificationView.swift | 168 ++-- .../Model/LocalNotificationAlertsTimes.swift | 36 +- .../OnboardingView.swift | 100 +-- .../OversizePhotoKit/PhotoOptionsView.swift | 22 +- 68 files changed, 3089 insertions(+), 2843 deletions(-) create mode 100644 Sources/OversizeKit/DeeplinkKit/DeeplinkModifier.swift create mode 100644 Sources/OversizeKit/StateKit/ResultExtension.swift create mode 100644 Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift diff --git a/.swiftformat b/.swiftformat index 21f72f9..b12b883 100644 --- a/.swiftformat +++ b/.swiftformat @@ -1,2 +1,3 @@ ---swiftversion 5.8 ---disable preferKeyPath \ No newline at end of file +--swiftversion 6.0 +--disable preferKeyPath +--ifdef no-indent \ No newline at end of file diff --git a/AppExample/Example/Router/Alerts.swift b/AppExample/Example/Router/Alerts.swift index 4b1c578..d50317c 100644 --- a/AppExample/Example/Router/Alerts.swift +++ b/AppExample/Example/Router/Alerts.swift @@ -16,30 +16,30 @@ enum RootAlert: Identifiable { var id: String { switch self { case .dismiss: - return "dismiss" + "dismiss" case .delete: - return "delete" + "delete" case .appError: - return "appError" + "appError" } } var alert: Alert { switch self { case let .dismiss(action): - return Alert( + Alert( title: Text("Are you sure you want to dismiss?"), primaryButton: .destructive(Text("Dismiss"), action: action), secondaryButton: .cancel() ) case let .delete(action): - return Alert( + Alert( title: Text("Are you sure you want to delete?"), primaryButton: .destructive(Text("\(L10n.Button.delete)"), action: action), secondaryButton: .cancel() ) case let .appError(error: error): - return Alert( + Alert( title: Text(error.title), message: Text(error.subtitle.valueOrEmpty), dismissButton: .cancel() diff --git a/AppExample/Example/Router/Router.swift b/AppExample/Example/Router/Router.swift index 3bbf5fd..7c5062f 100644 --- a/AppExample/Example/Router/Router.swift +++ b/AppExample/Example/Router/Router.swift @@ -201,9 +201,9 @@ extension Router { extension Screen: Hashable, Equatable { static func == (lhs: Screen, rhs: Screen) -> Bool { if lhs.id == rhs.id { - return true + true } else { - return false + false } } diff --git a/AppExample/Example/Router/Screens.swift b/AppExample/Example/Router/Screens.swift index 0335d8d..5999126 100644 --- a/AppExample/Example/Router/Screens.swift +++ b/AppExample/Example/Router/Screens.swift @@ -16,9 +16,9 @@ extension Screen: Identifiable { var id: String { switch self { case .settings: - return "settings" + "settings" case .premium: - return "premium" + "premium" } } } diff --git a/AppExample/Example/Router/Tabs.swift b/AppExample/Example/Router/Tabs.swift index 5ecbe73..e1ccd9e 100644 --- a/AppExample/Example/Router/Tabs.swift +++ b/AppExample/Example/Router/Tabs.swift @@ -15,45 +15,45 @@ public enum RootTab: String { var id: String { switch self { case .main: - return "home" + "home" case .secondary: - return "secondary" + "secondary" case .tertiary: - return "tertiary" + "tertiary" case .quaternary: - return "quaternary" + "quaternary" case .settings: - return "settings" + "settings" } } var title: String { switch self { case .main: - return "Home" + "Home" case .secondary: - return "Secondary" + "Secondary" case .tertiary: - return "Tertiary" + "Tertiary" case .quaternary: - return "Quaternary" + "Quaternary" case .settings: - return "Settings" + "Settings" } } var image: Image { switch self { case .main: - return Image(systemName: "") + Image(systemName: "") case .secondary: - return Image(systemName: "") + Image(systemName: "") case .tertiary: - return Image(systemName: "") + Image(systemName: "") case .quaternary: - return Image(systemName: "") + Image(systemName: "") case .settings: - return Image(systemName: "") + Image(systemName: "") } } } diff --git a/Package.swift b/Package.swift index 1795262..c9f467a 100644 --- a/Package.swift +++ b/Package.swift @@ -32,7 +32,7 @@ let developmentDependencies: [PackageDescription.Package.Dependency] = [ .package(url: "https://github.com/hmlongco/Factory.git", .upToNextMajor(from: "2.1.3")), ] -var dependencies: [PackageDescription.Package.Dependency] = remoteDependencies +var dependencies: [PackageDescription.Package.Dependency] = developmentDependencies if ProcessInfo.processInfo.environment["BUILD_MODE"] == "DEV" { dependencies = developmentDependencies diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift index cfdb2ca..df0afe4 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift @@ -4,7 +4,7 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import MapKit import OversizeCalendarService @@ -16,316 +16,270 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public struct CreateEventView: View { - @StateObject var viewModel: CreateEventViewModel - @Environment(\.dismiss) var dismiss - @FocusState private var focusedField: FocusField? +public struct CreateEventView: View { + @StateObject var viewModel: CreateEventViewModel + @Environment(\.dismiss) var dismiss + @FocusState private var focusedField: FocusField? - public init(_ type: CreateEventType = .new(nil, calendar: nil)) { - _viewModel = StateObject(wrappedValue: CreateEventViewModel(type)) - } + public init(_ type: CreateEventType = .new(nil, calendar: nil)) { + _viewModel = StateObject(wrappedValue: CreateEventViewModel(type)) + } - public var body: some View { - PageView { - content() - } - .leadingBar { - BarButton(.closeAction { - dismiss() - }) - } - .trailingBar { - BarButton(.accent(L10n.Button.save, action: { - switch viewModel.type { - case .new: + public var body: some View { + PageView { + content() + } + .leadingBar { + BarButton(.closeAction { + dismiss() + }) + } + .trailingBar { + BarButton(.accent(L10n.Button.save, action: { + switch viewModel.type { + case .new: + Task { + _ = await viewModel.save() + dismiss() + } + case .update: + if viewModel.span == nil, viewModel.repitRule != .never { + viewModel.present(.span) + } else { Task { _ = await viewModel.save() dismiss() } - case .update: - if viewModel.span == nil, viewModel.repitRule != .never { - viewModel.present(.span) - } else { - Task { - _ = await viewModel.save() - dismiss() - } - } - } - })) - .disabled(viewModel.title.isEmpty) - } - .titleLabel { - Button { viewModel.present(.calendar) } label: { - HStack(spacing: .xxxSmall) { - Circle() - .fill(Color(viewModel.calendar?.cgColor ?? CGColor(red: 0.4, green: 0.4, blue: 0.4, alpha: 1))) - .frame(width: 16, height: 16) - .padding(.xxxSmall) - - Text(viewModel.calendar?.title ?? "") - .padding(.trailing, .xxSmall) } } - .buttonStyle(.tertiary) - .controlBorderShape(.capsule) - .controlSize(.mini) - } - .navigationBarDividerColor(Color.onSurfacePrimary.opacity(0.1)) - .safeAreaInset(edge: .bottom) { - bottomBar - } - .task { - await viewModel.fetchData() - } - .onAppear { - focusedField = .title - } - .sheet(item: $viewModel.sheet) { sheet in - resolveSheet(sheet: sheet) - } - .onChange(of: viewModel.span) { _ in - Task { - _ = await viewModel.save() - dismiss() + })) + .disabled(viewModel.title.isEmpty) + } + .titleLabel { + Button { viewModel.present(.calendar) } label: { + HStack(spacing: .xxxSmall) { + Circle() + .fill(Color(viewModel.calendar?.cgColor ?? CGColor(red: 0.4, green: 0.4, blue: 0.4, alpha: 1))) + .frame(width: 16, height: 16) + .padding(.xxxSmall) + + Text(viewModel.calendar?.title ?? "") + .padding(.trailing, .xxSmall) } } + .buttonStyle(.tertiary) + .controlBorderShape(.capsule) + .controlSize(.mini) } + .navigationBarDividerColor(Color.onSurfacePrimary.opacity(0.1)) + .safeAreaInset(edge: .bottom) { + bottomBar + } + .task { + await viewModel.fetchData() + } + .onAppear { + focusedField = .title + } + .sheet(item: $viewModel.sheet) { sheet in + resolveSheet(sheet: sheet) + } + .onChange(of: viewModel.span) { _ in + Task { + _ = await viewModel.save() + dismiss() + } + } + } - @ViewBuilder - private func content() -> some View { - VStack(spacing: .small) { - TextField("Event name", text: $viewModel.title) - .title(.bold) - .focused($focusedField, equals: .title) - .onSurfacePrimaryForeground() - .padding(.bottom, .xxxSmall) - .padding(.horizontal, .small) + @ViewBuilder + private func content() -> some View { + VStack(spacing: .small) { + TextField("Event name", text: $viewModel.title) + .title(.bold) + .focused($focusedField, equals: .title) + .onSurfacePrimaryForeground() + .padding(.bottom, .xxxSmall) + .padding(.horizontal, .small) - #if !os(watchOS) - textEditor - #endif + #if !os(watchOS) + textEditor + #endif - calendarButtons + calendarButtons - allDayEvent + allDayEvent - locationView + locationView - alarmView + alarmView - membersView + membersView - repitView - } - .padding(.horizontal, .small) - .padding(.vertical, .medium) + repitView } + .padding(.horizontal, .small) + .padding(.vertical, .medium) + } - var allDayEvent: some View { - Surface { - viewModel.isAllDay.toggle() - } label: { - HStack { - Text("All-day event") - .headline(.semibold) - .foregroundColor(.onSurfacePrimary) - .padding(.leading, .xxxSmall) + var allDayEvent: some View { + Surface { + viewModel.isAllDay.toggle() + } label: { + HStack { + Text("All-day event") + .headline(.semibold) + .foregroundColor(.onSurfacePrimary) + .padding(.leading, .xxxSmall) - Spacer() + Spacer() - Toggle(isOn: $viewModel.isAllDay) {} - .labelsHidden() - } + Toggle(isOn: $viewModel.isAllDay) {} + .labelsHidden() } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.init(horizontal: .xSmall, vertical: .xSmall)) - .controlRadius(.large) } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.init(horizontal: .xSmall, vertical: .xSmall)) + .controlRadius(.large) + } - #if !os(watchOS) - var textEditor: some View { - VStack(spacing: 2) { - TextEditor(text: $viewModel.note) - .onSurfacePrimaryForeground() - .padding(.horizontal, .xSmall) - .padding(.vertical, .xxSmall) - .focused($focusedField, equals: .note) - .body(.medium) - .scrollContentBackground(.hidden) - .background { - #if os(iOS) - RoundedRectangleCorner(radius: 4, corners: [.bottomLeft, .bottomRight]) - .fillSurfaceSecondary() - .overlay(alignment: .topLeading) { - if viewModel.note.isEmpty { - Text("Note") - .body(.medium) - .onSurfaceTertiaryForeground() - .padding(.small) - } - } - #else - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - .overlay(alignment: .topLeading) { - if viewModel.note.isEmpty { - Text("Note") - .body(.medium) - .onSurfaceTertiaryForeground() - .padding(.small) - } - } - #endif + #if !os(watchOS) + var textEditor: some View { + VStack(spacing: 2) { + TextEditor(text: $viewModel.note) + .onSurfacePrimaryForeground() + .padding(.horizontal, .xSmall) + .padding(.vertical, .xxSmall) + .focused($focusedField, equals: .note) + .body(.medium) + .scrollContentBackground(.hidden) + .background { + #if os(iOS) + RoundedRectangleCorner(radius: 4, corners: [.bottomLeft, .bottomRight]) + .fillSurfaceSecondary() + .overlay(alignment: .topLeading) { + if viewModel.note.isEmpty { + Text("Note") + .body(.medium) + .onSurfaceTertiaryForeground() + .padding(.small) + } } - .frame(minHeight: 76) - - TextField("URL", text: $viewModel.url) - .focused($focusedField, equals: .url) - .onSurfacePrimaryForeground() - .body(.medium) - .padding(.horizontal, .small) - .padding(.vertical, 18) - .background { - #if os(iOS) - RoundedRectangleCorner(radius: 4, corners: [.topLeft, .topRight]) - .fillSurfaceSecondary() - #else - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - #endif + #else + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + .overlay(alignment: .topLeading) { + if viewModel.note.isEmpty { + Text("Note") + .body(.medium) + .onSurfaceTertiaryForeground() + .padding(.small) + } } + #endif } - .clipShape(RoundedRectangle(cornerRadius: .large, style: .continuous)) - } - #endif - - var repitView: some View { - Group { - if viewModel.repitRule != .never { - Surface { - Row(viewModel.repitRule.title, subtitle: repeatSubtitleText) { - viewModel.present(.repeat) - } leading: { - IconDeprecated(.refresh) - .iconColor(.onSurfacePrimary) - } - .rowClearButton(style: .onSurface) { - viewModel.repitRule = .never - viewModel.repitEndRule = .never - } - .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) - } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) + .frame(minHeight: 76) + + TextField("URL", text: $viewModel.url) + .focused($focusedField, equals: .url) + .onSurfacePrimaryForeground() + .body(.medium) + .padding(.horizontal, .small) + .padding(.vertical, 18) + .background { + #if os(iOS) + RoundedRectangleCorner(radius: 4, corners: [.topLeft, .topRight]) + .fillSurfaceSecondary() + #else + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + #endif } - } } + .clipShape(RoundedRectangle(cornerRadius: .large, style: .continuous)) + } + #endif - var membersView: some View { - Group { - if !viewModel.members.isEmpty { - Surface { - VStack(spacing: .zero) { - ForEach(viewModel.members, id: \.self) { email in - Row(email) { - viewModel.present(.invites) - } leading: { - IconDeprecated(.user) - .iconColor(.onSurfacePrimary) - } - .rowClearButton(style: .onSurface) { - viewModel.members.remove(email) - } - .rowContentMargins(.small) - .overlay(alignment: .bottomLeading) { - Rectangle() - .fillSurfaceSecondary() - .padding(.leading, 56) - .frame(height: 1) - } - } - } + var repitView: some View { + Group { + if viewModel.repitRule != .never { + Surface { + Row(viewModel.repitRule.title, subtitle: repeatSubtitleText) { + viewModel.present(.repeat) + } leading: { + IconDeprecated(.refresh) + .iconColor(.onSurfacePrimary) + } + .rowClearButton(style: .onSurface) { + viewModel.repitRule = .never + viewModel.repitEndRule = .never } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) + .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) } } + } - @ViewBuilder - var alarmView: some View { - Group { - if !viewModel.alarms.isEmpty { - Surface { - VStack(spacing: .zero) { - ForEach(viewModel.alarms) { alarm in - Row(alarm.title) { - viewModel.present(.alarm) - } leading: { - IconDeprecated(.bell) - .iconColor(.onSurfacePrimary) - } - .rowClearButton(style: .onSurface) { - viewModel.alarms.remove(alarm) - } - .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) - .overlay(alignment: .bottomLeading) { - Rectangle() - .fillSurfaceSecondary() - .padding(.leading, 56) - .frame(height: 1) - } + var membersView: some View { + Group { + if !viewModel.members.isEmpty { + Surface { + VStack(spacing: .zero) { + ForEach(viewModel.members, id: \.self) { email in + Row(email) { + viewModel.present(.invites) + } leading: { + IconDeprecated(.user) + .iconColor(.onSurfacePrimary) + } + .rowClearButton(style: .onSurface) { + viewModel.members.remove(email) + } + .rowContentMargins(.small) + .overlay(alignment: .bottomLeading) { + Rectangle() + .fillSurfaceSecondary() + .padding(.leading, 56) + .frame(height: 1) } } } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) } } + } - @ViewBuilder - var locationView: some View { - if viewModel.locationName != nil || viewModel.location != nil { + @ViewBuilder + var alarmView: some View { + Group { + if !viewModel.alarms.isEmpty { Surface { VStack(spacing: .zero) { - if let locationName = viewModel.locationName { - VStack(spacing: .xxSmall) { - Row(locationName) { - viewModel.present(.location) - } leading: { - IconDeprecated(.mapPin) - .iconColor(.onSurfacePrimary) - } - .rowClearButton(style: .onSurface) { - viewModel.locationName = nil - viewModel.location = nil - } - .rowContentMargins(.init(horizontal: .small, vertical: .xSmall)) + ForEach(viewModel.alarms) { alarm in + Row(alarm.title) { + viewModel.present(.alarm) + } leading: { + IconDeprecated(.bell) + .iconColor(.onSurfacePrimary) } - } - - if let location = viewModel.location { - let region = MKCoordinateRegion(center: location, latitudinalMeters: 10000, longitudinalMeters: 10000) - let annotations = [MapPreviewPoint(name: "\(viewModel.locationName ?? "")", coordinate: location)] - Map(coordinateRegion: .constant(region), annotationItems: annotations) { - MapMarker(coordinate: $0.coordinate) + .rowClearButton(style: .onSurface) { + viewModel.alarms.remove(alarm) } - .frame(height: 130) - .cornerRadius(.small) - .padding(.horizontal, .xxSmall) - .padding(.bottom, .xxSmall) - .onTapGesture { - focusedField = nil - viewModel.present(.location) + .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) + .overlay(alignment: .bottomLeading) { + Rectangle() + .fillSurfaceSecondary() + .padding(.leading, 56) + .frame(height: 1) } } } @@ -336,174 +290,220 @@ import SwiftUI .controlRadius(.large) } } + } + + @ViewBuilder + var locationView: some View { + if viewModel.locationName != nil || viewModel.location != nil { + Surface { + VStack(spacing: .zero) { + if let locationName = viewModel.locationName { + VStack(spacing: .xxSmall) { + Row(locationName) { + viewModel.present(.location) + } leading: { + IconDeprecated(.mapPin) + .iconColor(.onSurfacePrimary) + } + .rowClearButton(style: .onSurface) { + viewModel.locationName = nil + viewModel.location = nil + } + .rowContentMargins(.init(horizontal: .small, vertical: .xSmall)) + } + } - var repeatSubtitleText: String? { - switch viewModel.repitEndRule { - case .never: - return nil - case let .occurrenceCount(count): - return count > 1 ? "With \(count) repetitions" : "With 1 repetition" - case let .endDate(date): - return "Until \(date.formatted(date: .long, time: .omitted))" + if let location = viewModel.location { + let region = MKCoordinateRegion(center: location, latitudinalMeters: 10000, longitudinalMeters: 10000) + let annotations = [MapPreviewPoint(name: "\(viewModel.locationName ?? "")", coordinate: location)] + Map(coordinateRegion: .constant(region), annotationItems: annotations) { + MapMarker(coordinate: $0.coordinate) + } + .frame(height: 130) + .cornerRadius(.small) + .padding(.horizontal, .xxSmall) + .padding(.bottom, .xxSmall) + .onTapGesture { + focusedField = nil + viewModel.present(.location) + } + } + } } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) } + } - var calendarButtons: some View { - HStack(spacing: .small) { - Button { - focusedField = nil - viewModel.present(.startTime) - } label: { - VStack(alignment: .leading, spacing: .xxxSmall) { - Text("Starts") - .onSurfaceSecondaryForeground() - .subheadline(.semibold) - - Text(startDateText) + var repeatSubtitleText: String? { + switch viewModel.repitEndRule { + case .never: + nil + case let .occurrenceCount(count): + count > 1 ? "With \(count) repetitions" : "With 1 repetition" + case let .endDate(date): + "Until \(date.formatted(date: .long, time: .omitted))" + } + } + + var calendarButtons: some View { + HStack(spacing: .small) { + Button { + focusedField = nil + viewModel.present(.startTime) + } label: { + VStack(alignment: .leading, spacing: .xxxSmall) { + Text("Starts") + .onSurfaceSecondaryForeground() + .subheadline(.semibold) + + Text(startDateText) + .onSurfacePrimaryForeground() + .headline(.semibold) + + if !isCurrentYearEvent { + Text(viewModel.dateStart.formatted(.dateTime.year())) .onSurfacePrimaryForeground() .headline(.semibold) - - if !isCurrentYearEvent { - Text(viewModel.dateStart.formatted(.dateTime.year())) - .onSurfacePrimaryForeground() - .headline(.semibold) - } - } - .padding(.small) - .hLeading() - .background { - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() } } - .buttonStyle(.scale) + .padding(.small) + .hLeading() + .background { + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() + } + } + .buttonStyle(.scale) - Button { - focusedField = nil - viewModel.present(.endTime) - } label: { - VStack(alignment: .leading, spacing: .xxxSmall) { - Text("Ended") - .onSurfaceSecondaryForeground() - .subheadline(.semibold) - - Text(endDateText) + Button { + focusedField = nil + viewModel.present(.endTime) + } label: { + VStack(alignment: .leading, spacing: .xxxSmall) { + Text("Ended") + .onSurfaceSecondaryForeground() + .subheadline(.semibold) + + Text(endDateText) + .onSurfacePrimaryForeground() + .headline(.semibold) + + if !isCurrentYearEvent { + Text(viewModel.dateEnd.formatted(.dateTime.year())) .onSurfacePrimaryForeground() .headline(.semibold) - - if !isCurrentYearEvent { - Text(viewModel.dateEnd.formatted(.dateTime.year())) - .onSurfacePrimaryForeground() - .headline(.semibold) - } - } - .padding(.small) - .hLeading() - .background { - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() } } - .buttonStyle(.scale) + .padding(.small) + .hLeading() + .background { + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() + } } + .buttonStyle(.scale) } + } - var isCurrentYearEvent: Bool { - Calendar.current.component(.year, from: viewModel.dateStart) == Calendar.current.component(.year, from: Date()) && Calendar.current.component(.year, from: viewModel.dateEnd) == Calendar.current.component(.year, from: Date()) - } + var isCurrentYearEvent: Bool { + Calendar.current.component(.year, from: viewModel.dateStart) == Calendar.current.component(.year, from: Date()) && Calendar.current.component(.year, from: viewModel.dateEnd) == Calendar.current.component(.year, from: Date()) + } - var startDateText: String { - if Calendar.current.isDateInToday(viewModel.dateStart) { - return "Today \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInTomorrow(viewModel.dateStart) { - return "Tomorrow \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInYesterday(viewModel.dateStart) { - return "Yesterday \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else { - return "\(viewModel.dateStart.formatted(.dateTime.day().month())) \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } + var startDateText: String { + if Calendar.current.isDateInToday(viewModel.dateStart) { + "Today \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInTomorrow(viewModel.dateStart) { + "Tomorrow \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInYesterday(viewModel.dateStart) { + "Yesterday \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else { + "\(viewModel.dateStart.formatted(.dateTime.day().month())) \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" } + } - var endDateText: String { - if Calendar.current.isDateInToday(viewModel.dateEnd) { - return "Today \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInTomorrow(viewModel.dateEnd) { - return "Tomorrow \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInYesterday(viewModel.dateEnd) { - return "Yesterday \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else { - return "\(viewModel.dateEnd.formatted(.dateTime.day().month())) \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } + var endDateText: String { + if Calendar.current.isDateInToday(viewModel.dateEnd) { + "Today \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInTomorrow(viewModel.dateEnd) { + "Tomorrow \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInYesterday(viewModel.dateEnd) { + "Yesterday \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else { + "\(viewModel.dateEnd.formatted(.dateTime.day().month())) \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" } + } - var bottomBar: some View { - HStack(spacing: .medium) { - Button { - Task { - focusedField = nil - viewModel.present(.location) - } - } label: { - if viewModel.isFetchUpdatePositon { - ProgressView() - } else { - IconDeprecated(.mapPin) - } + var bottomBar: some View { + HStack(spacing: .medium) { + Button { + Task { + focusedField = nil + viewModel.present(.location) } - .disabled(viewModel.isFetchUpdatePositon) - - Button { viewModel.present(.alarm) } label: { - IconDeprecated(.bell) + } label: { + if viewModel.isFetchUpdatePositon { + ProgressView() + } else { + IconDeprecated(.mapPin) } + } + .disabled(viewModel.isFetchUpdatePositon) - Button { viewModel.present(.repeat) } label: { - IconDeprecated(.refresh) - } + Button { viewModel.present(.alarm) } label: { + IconDeprecated(.bell) + } - /* - Button { viewModel.present(.attachment) } label: { - IconDeprecated(.moreHorizontal) - } - */ + Button { viewModel.present(.repeat) } label: { + IconDeprecated(.refresh) + } - Spacer() + /* + Button { viewModel.present(.attachment) } label: { + IconDeprecated(.moreHorizontal) + } + */ - Button { viewModel.present(.invites) } label: { - IconDeprecated(.userPlus) - } + Spacer() + + Button { viewModel.present(.invites) } label: { + IconDeprecated(.userPlus) + } // Icon.Solid.UserInterface.plusCrFr // .renderingMode(.template) - } - .buttonStyle(.scale) - .padding(.horizontal, .medium) - .padding(.vertical, 20) - .onSurfaceSecondaryForeground() - #if !os(watchOS) - .background(.ultraThinMaterial) - #endif - .overlay(alignment: .top) { - Rectangle() - .fill(Color.onSurfacePrimary.opacity(0.05)) - .frame(height: 1) - } } - - @ViewBuilder - private func placeholder() -> some View {} + .buttonStyle(.scale) + .padding(.horizontal, .medium) + .padding(.vertical, 20) + .onSurfaceSecondaryForeground() + #if !os(watchOS) + .background(.ultraThinMaterial) + #endif + .overlay(alignment: .top) { + Rectangle() + .fill(Color.onSurfacePrimary.opacity(0.05)) + .frame(height: 1) + } } - extension CreateEventView { - enum FocusField: Hashable { - case title - case note - case url - } + @ViewBuilder + private func placeholder() -> some View {} +} + +extension CreateEventView { + enum FocusField: Hashable { + case title + case note + case url } +} - struct CreateEventView_Previews: PreviewProvider { - static var previews: some View { - CreateEventView() - } +struct CreateEventView_Previews: PreviewProvider { + static var previews: some View { + CreateEventView() } +} #endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift index 004698e..0aacd16 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(EventKit) - @preconcurrency import EventKit +@preconcurrency import EventKit #endif import Factory import OversizeCalendarService @@ -14,173 +14,173 @@ import OversizeModels import SwiftUI #if !os(tvOS) - public enum CreateEventType: Equatable, @unchecked Sendable { - case new(Date?, calendar: EKCalendar?) - case update(EKEvent) +public enum CreateEventType: Equatable, @unchecked Sendable { + case new(Date?, calendar: EKCalendar?) + case update(EKEvent) +} + +public class CreateEventViewModel: ObservableObject, @unchecked Sendable { + @Injected(\.calendarService) private var calendarService: CalendarService + @Injected(\.locationService) private var locationService: LocationServiceProtocol + + @Published var state = CreateEventViewModelState.initial + @Published var sheet: CreateEventViewModel.Sheet? = nil + @Published var isFetchUpdatePositon: Bool = .init(false) + + @Published var title: String = .init() + @Published var note: String = .init() + @Published var url: String = .init() + @Published var dateStart: Date = .init() + @Published var dateEnd: Date = .init().halfHour + @Published var isAllDay: Bool = .init(false) + @Published var calendar: EKCalendar? + @Published var calendars: [EKCalendar] = .init() + @Published var sourses: [EKSource] = .init() + @Published var locationName: String? + @Published var location: CLLocationCoordinate2D? + @Published var repitRule: CalendarEventRecurrenceRules = .never + @Published var repitEndRule: CalendarEventEndRecurrenceRules = .never + @Published var alarms: [CalendarAlertsTimes] = .init() + @Published var members: [String] = .init() + @Published var span: EKSpan? + + let type: CreateEventType + + var isLocationSelected: Bool { + location != nil } - public class CreateEventViewModel: ObservableObject, @unchecked Sendable { - @Injected(\.calendarService) private var calendarService: CalendarService - @Injected(\.locationService) private var locationService: LocationServiceProtocol - - @Published var state = CreateEventViewModelState.initial - @Published var sheet: CreateEventViewModel.Sheet? = nil - @Published var isFetchUpdatePositon: Bool = .init(false) - - @Published var title: String = .init() - @Published var note: String = .init() - @Published var url: String = .init() - @Published var dateStart: Date = .init() - @Published var dateEnd: Date = .init().halfHour - @Published var isAllDay: Bool = .init(false) - @Published var calendar: EKCalendar? - @Published var calendars: [EKCalendar] = .init() - @Published var sourses: [EKSource] = .init() - @Published var locationName: String? - @Published var location: CLLocationCoordinate2D? - @Published var repitRule: CalendarEventRecurrenceRules = .never - @Published var repitEndRule: CalendarEventEndRecurrenceRules = .never - @Published var alarms: [CalendarAlertsTimes] = .init() - @Published var members: [String] = .init() - @Published var span: EKSpan? - - let type: CreateEventType - - var isLocationSelected: Bool { - location != nil - } - - public init(_ type: CreateEventType) { - self.type = type - setEvent(type: type) - } + public init(_ type: CreateEventType) { + self.type = type + setEvent(type: type) + } - func setEvent(type: CreateEventType) { - switch type { - case let .new(date, calendar): - if let date { - dateStart = date - dateEnd = date.halfHour - } - if let calendar { - self.calendar = calendar - } - case let .update(event): - title = event.title - note = event.notes ?? "" - url = event.url?.absoluteString ?? "" - dateStart = event.startDate - dateEnd = event.endDate - isAllDay = event.isAllDay - calendar = event.calendar - locationName = event.location - if let coordinate = event.structuredLocation?.geoLocation?.coordinate { - location = coordinate - } - if let rule = event.recurrenceRules?.first { - repitRule = rule.calendarRecurrenceRule - repitEndRule = rule.recurrenceEnd?.calendarEndRecurrenceRule ?? .never - } - if let eventAlarms = event.alarms { - alarms = eventAlarms.compactMap { $0.calendarAlert } - } - if let attendees = event.attendees { - members = attendees.compactMap { $0.url.absoluteString } - } + func setEvent(type: CreateEventType) { + switch type { + case let .new(date, calendar): + if let date { + dateStart = date + dateEnd = date.halfHour } - } - - func fetchData() async { - state = .loading - async let calendarsResult = await calendarService.fetchCalendars() - switch await calendarsResult { - case let .success(data): - log("✅ EKCalendars fetched") - calendars = data - case let .failure(error): - log("❌ EKCalendars not fetched (\(error.title))") - state = .error(error) + if let calendar { + self.calendar = calendar } - async let soursesResult = await calendarService.fetchSourses() - switch await soursesResult { - case let .success(data): - log("✅ EKSource fetched") - sourses = data - case let .failure(error): - log("❌ EKSource not fetched (\(error.title))") - state = .error(error) + case let .update(event): + title = event.title + note = event.notes ?? "" + url = event.url?.absoluteString ?? "" + dateStart = event.startDate + dateEnd = event.endDate + isAllDay = event.isAllDay + calendar = event.calendar + locationName = event.location + if let coordinate = event.structuredLocation?.geoLocation?.coordinate { + location = coordinate } - if case let .new(_, calendar) = type, calendar == nil { - let result = await calendarService.fetchDefaultCalendar() - switch result { - case let .success(calendar): - self.calendar = calendar - case let .failure(error): - log("❌ Default calendar not fetched (\(error.title))") - } + if let rule = event.recurrenceRules?.first { + repitRule = rule.calendarRecurrenceRule + repitEndRule = rule.recurrenceEnd?.calendarEndRecurrenceRule ?? .never } - } - - func save() async -> Result { - var oldEvent: EKEvent? - - if case let .update(event) = type { - oldEvent = event + if let eventAlarms = event.alarms { + alarms = eventAlarms.compactMap { $0.calendarAlert } } + if let attendees = event.attendees { + members = attendees.compactMap { $0.url.absoluteString } + } + } + } - let result = await calendarService.createEvent( - event: oldEvent, - title: title, - notes: note, - startDate: dateStart, - endDate: dateEnd, - calendar: calendar, - isAllDay: isAllDay, - location: locationName, - structuredLocation: getEKStructuredLocation(), - alarms: alarms, - url: URL(string: url), - memberEmails: members, - recurrenceRules: repitRule, - recurrenceEndRules: repitEndRule, - span: span ?? .thisEvent - ) + func fetchData() async { + state = .loading + async let calendarsResult = await calendarService.fetchCalendars() + switch await calendarsResult { + case let .success(data): + log("✅ EKCalendars fetched") + calendars = data + case let .failure(error): + log("❌ EKCalendars not fetched (\(error.title))") + state = .error(error) + } + async let soursesResult = await calendarService.fetchSourses() + switch await soursesResult { + case let .success(data): + log("✅ EKSource fetched") + sourses = data + case let .failure(error): + log("❌ EKSource not fetched (\(error.title))") + state = .error(error) + } + if case let .new(_, calendar) = type, calendar == nil { + let result = await calendarService.fetchDefaultCalendar() switch result { - case let .success(data): - log("✅ EKEvent saved") - return .success(data) + case let .success(calendar): + self.calendar = calendar case let .failure(error): - log("❌ EKEvent not saved (\(error.title))") - return .failure(error) + log("❌ Default calendar not fetched (\(error.title))") } } + } - func getEKStructuredLocation() -> EKStructuredLocation? { - if let location { - let structuredLocation: EKStructuredLocation? - let location = CLLocation(latitude: location.latitude, longitude: location.longitude) - structuredLocation = EKStructuredLocation(title: locationName ?? "") // same title with ekEvent.location - structuredLocation?.geoLocation = location - return structuredLocation - } else { - return nil - } + func save() async -> Result { + var oldEvent: EKEvent? + + if case let .update(event) = type { + oldEvent = event } - func updateCurrentPosition() async throws { - isFetchUpdatePositon = true - let currentPosition = try await locationService.currentLocation() - guard let newLocation = currentPosition else { return } - location = newLocation - log("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") - isFetchUpdatePositon = false + let result = await calendarService.createEvent( + event: oldEvent, + title: title, + notes: note, + startDate: dateStart, + endDate: dateEnd, + calendar: calendar, + isAllDay: isAllDay, + location: locationName, + structuredLocation: getEKStructuredLocation(), + alarms: alarms, + url: URL(string: url), + memberEmails: members, + recurrenceRules: repitRule, + recurrenceEndRules: repitEndRule, + span: span ?? .thisEvent + ) + switch result { + case let .success(data): + log("✅ EKEvent saved") + return .success(data) + case let .failure(error): + log("❌ EKEvent not saved (\(error.title))") + return .failure(error) + } + } + + func getEKStructuredLocation() -> EKStructuredLocation? { + if let location { + let structuredLocation: EKStructuredLocation? + let location = CLLocation(latitude: location.latitude, longitude: location.longitude) + structuredLocation = EKStructuredLocation(title: locationName ?? "") // same title with ekEvent.location + structuredLocation?.geoLocation = location + return structuredLocation + } else { + return nil } } - public enum CreateEventViewModelState { - case initial - case loading - case result([EKEvent]) - case error(AppError) + func updateCurrentPosition() async throws { + isFetchUpdatePositon = true + let currentPosition = try await locationService.currentLocation() + guard let newLocation = currentPosition else { return } + location = newLocation + log("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") + isFetchUpdatePositon = false } +} + +public enum CreateEventViewModelState { + case initial + case loading + case result([EKEvent]) + case error(AppError) +} #endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift index beb178c..8a47b98 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift @@ -4,7 +4,7 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeComponents import OversizeContactsKit @@ -13,109 +13,109 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public extension CreateEventViewModel { - func present(_ sheet: CreateEventViewModel.Sheet) { - self.sheet = sheet - } +public extension CreateEventViewModel { + func present(_ sheet: CreateEventViewModel.Sheet) { + self.sheet = sheet + } - func close() { - sheet = nil - } + func close() { + sheet = nil } +} - public extension CreateEventViewModel { - enum Sheet { - case startTime - case endTime - case attachment - case calendar - case location - case `repeat` - case alarm - case invites - case span - } // attachment, alert, invitees +public extension CreateEventViewModel { + enum Sheet { + case startTime + case endTime + case attachment + case calendar + case location + case `repeat` + case alarm + case invites + case span + } // attachment, alert, invitees +} + +extension CreateEventViewModel.Sheet: Identifiable { + public var id: String { + switch self { + case .startTime: + "startTime" + case .endTime: + "endTime" + case .attachment: + "attachment" + case .calendar: + "calendar" + case .location: + "location" + case .repeat: + "repeat" + case .alarm: + "alarm" + case .invites: + "alarm" + case .span: + "span" + } } +} - extension CreateEventViewModel.Sheet: Identifiable { - public var id: String { - switch self { +public extension CreateEventView { + func resolveSheet(sheet: CreateEventViewModel.Sheet) -> some View { + Group { + switch sheet { case .startTime: - return "startTime" + #if os(iOS) + DatePickerSheet(title: "Starts time", selection: $viewModel.dateStart) + .onDisappear { + if viewModel.dateStart > viewModel.dateEnd { + viewModel.dateEnd = viewModel.dateStart.halfHour + } + } + .presentationDetents([.height(500)]) + #else + EmptyView() + #endif case .endTime: - return "endTime" + #if os(iOS) + DatePickerSheet(title: "Ends time", selection: $viewModel.dateEnd) + .datePickerMinimumDate(viewModel.dateStart.minute) + .presentationDetents([.height(500)]) + #else + EmptyView() + #endif case .attachment: - return "attachment" + AttachmentView() + .presentationDetents([.height(270)]) case .calendar: - return "calendar" + CalendarPicker(selection: $viewModel.calendar, calendars: viewModel.calendars, sourses: viewModel.sourses) + .presentationDetents([.large]) case .location: - return "location" + #if !os(watchOS) + AddressPicker(address: $viewModel.locationName, location: $viewModel.location) + .interactiveDismissDisabled(true) + .presentationDetents([.large]) + #else + EmptyView() + #endif case .repeat: - return "repeat" + RepeatPicker(selectionRule: $viewModel.repitRule, selectionEndRule: $viewModel.repitEndRule) case .alarm: - return "alarm" + AlarmPicker(selection: $viewModel.alarms) + .presentationDetents([.height(630), .large]) + .presentationDragIndicator(.hidden) case .invites: - return "alarm" + EmailPickerView(selection: $viewModel.members) + .presentationDetents([.large]) + .interactiveDismissDisabled(true) case .span: - return "span" - } - } - } - - public extension CreateEventView { - func resolveSheet(sheet: CreateEventViewModel.Sheet) -> some View { - Group { - switch sheet { - case .startTime: - #if os(iOS) - DatePickerSheet(title: "Starts time", selection: $viewModel.dateStart) - .onDisappear { - if viewModel.dateStart > viewModel.dateEnd { - viewModel.dateEnd = viewModel.dateStart.halfHour - } - } - .presentationDetents([.height(500)]) - #else - EmptyView() - #endif - case .endTime: - #if os(iOS) - DatePickerSheet(title: "Ends time", selection: $viewModel.dateEnd) - .datePickerMinimumDate(viewModel.dateStart.minute) - .presentationDetents([.height(500)]) - #else - EmptyView() - #endif - case .attachment: - AttachmentView() - .presentationDetents([.height(270)]) - case .calendar: - CalendarPicker(selection: $viewModel.calendar, calendars: viewModel.calendars, sourses: viewModel.sourses) - .presentationDetents([.large]) - case .location: - #if !os(watchOS) - AddressPicker(address: $viewModel.locationName, location: $viewModel.location) - .interactiveDismissDisabled(true) - .presentationDetents([.large]) - #else - EmptyView() - #endif - case .repeat: - RepeatPicker(selectionRule: $viewModel.repitRule, selectionEndRule: $viewModel.repitEndRule) - case .alarm: - AlarmPicker(selection: $viewModel.alarms) - .presentationDetents([.height(630), .large]) - .presentationDragIndicator(.hidden) - case .invites: - EmailPickerView(selection: $viewModel.members) - .presentationDetents([.large]) - .interactiveDismissDisabled(true) - case .span: - SaveForView(selection: $viewModel.span) - .presentationDetents([.height(270)]) - } + SaveForView(selection: $viewModel.span) + .presentationDetents([.height(270)]) } - .systemServices() } + .systemServices() } +} #endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift index 676b9a5..8e0c794 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift @@ -4,49 +4,49 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeUI import SwiftUI #if !os(tvOS) - public struct SaveForView: View { - @Environment(\.dismiss) var dismiss - @Binding private var span: EKSpan? +public struct SaveForView: View { + @Environment(\.dismiss) var dismiss + @Binding private var span: EKSpan? - public init(selection: Binding) { - _span = selection - } + public init(selection: Binding) { + _span = selection + } - public var body: some View { - PageView("This is repeating event") { - SectionView { - VStack(spacing: .zero) { - Row("Save for this event only") { - span = .thisEvent - dismiss() - } leading: { - Image.Date.calendar - .renderingMode(.template) - .foregroundColor(.onSurfacePrimary) - } + public var body: some View { + PageView("This is repeating event") { + SectionView { + VStack(spacing: .zero) { + Row("Save for this event only") { + span = .thisEvent + dismiss() + } leading: { + Image.Date.calendar + .renderingMode(.template) + .foregroundColor(.onSurfacePrimary) + } - Row("Save for feature events") { - span = .futureEvents - dismiss() - } leading: { - Image.Base.calendar - .renderingMode(.template) - .foregroundColor(.onSurfacePrimary) - } + Row("Save for feature events") { + span = .futureEvents + dismiss() + } leading: { + Image.Base.calendar + .renderingMode(.template) + .foregroundColor(.onSurfacePrimary) } } - .surfaceContentRowMargins() - } - .backgroundSecondary() - .leadingBar { - BarButton(.close) } + .surfaceContentRowMargins() + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) } } +} #endif diff --git a/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift b/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift index f31672c..6d97495 100644 --- a/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift @@ -4,53 +4,53 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeCalendarService import OversizeUI import SwiftUI #if !os(tvOS) - public struct AlarmPicker: View { - @Environment(\.dismiss) var dismiss - @Binding private var selection: [CalendarAlertsTimes] - @State private var selectedAlerts: [CalendarAlertsTimes] = [] +public struct AlarmPicker: View { + @Environment(\.dismiss) var dismiss + @Binding private var selection: [CalendarAlertsTimes] + @State private var selectedAlerts: [CalendarAlertsTimes] = [] - public init(selection: Binding<[CalendarAlertsTimes]>) { - _selection = selection - _selectedAlerts = State(wrappedValue: selection.wrappedValue) - } + public init(selection: Binding<[CalendarAlertsTimes]>) { + _selection = selection + _selectedAlerts = State(wrappedValue: selection.wrappedValue) + } - public var body: some View { - PageView("Alarm") { - SectionView { - VStack(spacing: .zero) { - ForEach(CalendarAlertsTimes.allCases) { alert in - Checkbox(alert.title, isOn: .constant((selectedAlerts.first { $0.id == alert.id } != nil) ? true : false)) { - if !selectedAlerts.isEmpty, let _ = selectedAlerts.first(where: { $0.id == alert.id }) { - selectedAlerts.remove(alert) - } else { - selectedAlerts.append(alert) - } + public var body: some View { + PageView("Alarm") { + SectionView { + VStack(spacing: .zero) { + ForEach(CalendarAlertsTimes.allCases) { alert in + Checkbox(alert.title, isOn: .constant((selectedAlerts.first { $0.id == alert.id } != nil) ? true : false)) { + if !selectedAlerts.isEmpty, let _ = selectedAlerts.first(where: { $0.id == alert.id }) { + selectedAlerts.remove(alert) + } else { + selectedAlerts.append(alert) } } } } - .surfaceContentRowMargins() - } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - selection = selectedAlerts - dismiss() - })) - .disabled(selectedAlerts.isEmpty) } + .surfaceContentRowMargins() + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + selection = selectedAlerts + dismiss() + })) + .disabled(selectedAlerts.isEmpty) } } +} #endif // struct AlertPicker_Previews: PreviewProvider { diff --git a/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift b/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift index 8244d84..43abc94 100644 --- a/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift @@ -4,69 +4,69 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeUI import SwiftUI #if !os(tvOS) - public struct CalendarPicker: View { - @Environment(\.dismiss) var dismiss +public struct CalendarPicker: View { + @Environment(\.dismiss) var dismiss - @Binding private var selection: EKCalendar? + @Binding private var selection: EKCalendar? - private let calendars: [EKCalendar] + private let calendars: [EKCalendar] - private let sourses: [EKSource] + private let sourses: [EKSource] - private let closable: Bool + private let closable: Bool - public init(selection: Binding, calendars: [EKCalendar], sourses: [EKSource], closable: Bool = true) { - _selection = selection - self.calendars = calendars - self.sourses = sourses - self.closable = closable - } + public init(selection: Binding, calendars: [EKCalendar], sourses: [EKSource], closable: Bool = true) { + _selection = selection + self.calendars = calendars + self.sourses = sourses + self.closable = closable + } - public var body: some View { - PageView("Calendar") { - ForEach(sourses, id: \.sourceIdentifier) { source in - let filtredCalendar: [EKCalendar] = calendars.filter { $0.source.sourceIdentifier == source.sourceIdentifier && $0.allowsContentModifications } - if !filtredCalendar.isEmpty { - calendarSection(source: source, calendars: filtredCalendar) - } + public var body: some View { + PageView("Calendar") { + ForEach(sourses, id: \.sourceIdentifier) { source in + let filtredCalendar: [EKCalendar] = calendars.filter { $0.source.sourceIdentifier == source.sourceIdentifier && $0.allowsContentModifications } + if !filtredCalendar.isEmpty { + calendarSection(source: source, calendars: filtredCalendar) } } - .backgroundSecondary() - .leadingBar { - BarButton(closable ? .close : .back) - } } + .backgroundSecondary() + .leadingBar { + BarButton(closable ? .close : .back) + } + } - func calendarSection(source: EKSource, calendars: [EKCalendar]) -> some View { - SectionView(source.title) { - VStack(spacing: .zero) { - ForEach(calendars, id: \.calendarIdentifier) { calendar in - Radio(isOn: selection?.calendarIdentifier == calendar.calendarIdentifier) { - selection = calendar - dismiss() - } label: { - Row(calendar.title) { - Circle() - .fill(Color(calendar.cgColor)) - .frame(width: 16, height: 16) - } + func calendarSection(source: EKSource, calendars: [EKCalendar]) -> some View { + SectionView(source.title) { + VStack(spacing: .zero) { + ForEach(calendars, id: \.calendarIdentifier) { calendar in + Radio(isOn: selection?.calendarIdentifier == calendar.calendarIdentifier) { + selection = calendar + dismiss() + } label: { + Row(calendar.title) { + Circle() + .fill(Color(calendar.cgColor)) + .frame(width: 16, height: 16) } } } } - .surfaceContentRowMargins() } + .surfaceContentRowMargins() } +} - struct CalendarPicker_Previews: PreviewProvider { - static var previews: some View { - CalendarPicker(selection: .constant(nil), calendars: [], sourses: []) - } +struct CalendarPicker_Previews: PreviewProvider { + static var previews: some View { + CalendarPicker(selection: .constant(nil), calendars: [], sourses: []) } +} #endif diff --git a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift index 2c32cb8..c55a2b5 100644 --- a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift @@ -4,133 +4,133 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeCalendarService import OversizeUI import SwiftUI #if !os(tvOS) - public struct RepeatPicker: View { - @Environment(\.dismiss) private var dismiss +public struct RepeatPicker: View { + @Environment(\.dismiss) private var dismiss - @Binding private var selectionRule: CalendarEventRecurrenceRules - @Binding private var selectionEndRule: CalendarEventEndRecurrenceRules + @Binding private var selectionRule: CalendarEventRecurrenceRules + @Binding private var selectionEndRule: CalendarEventEndRecurrenceRules - @State private var rule: CalendarEventRecurrenceRules - @State private var endRule: CalendarEventEndRecurrenceRules + @State private var rule: CalendarEventRecurrenceRules + @State private var endRule: CalendarEventEndRecurrenceRules - @State private var endDate: Date = .init() - @State private var repeatCount: String = "1" - @FocusState private var isFocusedRepitCount: Bool + @State private var endDate: Date = .init() + @State private var repeatCount: String = "1" + @FocusState private var isFocusedRepitCount: Bool - public init(selectionRule: Binding, selectionEndRule: Binding) { - _selectionRule = selectionRule - _selectionEndRule = selectionEndRule - _rule = State(wrappedValue: selectionRule.wrappedValue) - _endRule = State(wrappedValue: selectionEndRule.wrappedValue) - } + public init(selectionRule: Binding, selectionEndRule: Binding) { + _selectionRule = selectionRule + _selectionEndRule = selectionEndRule + _rule = State(wrappedValue: selectionRule.wrappedValue) + _endRule = State(wrappedValue: selectionEndRule.wrappedValue) + } - public var body: some View { - ScrollViewReader { scrollView in - PageView("Repeat") { - SectionView { - VStack(spacing: .zero) { - ForEach(CalendarEventRecurrenceRules.allCases) { rule in - Radio(isOn: self.rule.id == rule.id) { - withAnimation { - self.rule = rule - } - } label: { - Row(rule.title) + public var body: some View { + ScrollViewReader { scrollView in + PageView("Repeat") { + SectionView { + VStack(spacing: .zero) { + ForEach(CalendarEventRecurrenceRules.allCases) { rule in + Radio(isOn: self.rule.id == rule.id) { + withAnimation { + self.rule = rule } + } label: { + Row(rule.title) } } } + } - if rule != .never { - SectionView("End Repeat") { - VStack(spacing: .zero) { - ForEach(CalendarEventEndRecurrenceRules.allCases) { rule in - VStack(spacing: .xxSmall) { - Radio(isOn: endRule.id == rule.id) { - endRule = rule - if case .occurrenceCount = endRule { - isFocusedRepitCount = true - scrollView.scrollTo(rule.id) - } - - if case .endDate = endRule { - isFocusedRepitCount = true - scrollView.scrollTo(rule.id) - } - } label: { - Row(rule.title) + if rule != .never { + SectionView("End Repeat") { + VStack(spacing: .zero) { + ForEach(CalendarEventEndRecurrenceRules.allCases) { rule in + VStack(spacing: .xxSmall) { + Radio(isOn: endRule.id == rule.id) { + endRule = rule + if case .occurrenceCount = endRule { + isFocusedRepitCount = true + scrollView.scrollTo(rule.id) } - if endRule.id == rule.id { - repartPicker(rules: rule) - .padding(.horizontal, .medium) - .padding(.bottom, .small) + if case .endDate = endRule { + isFocusedRepitCount = true + scrollView.scrollTo(rule.id) } + } label: { + Row(rule.title) + } + + if endRule.id == rule.id { + repartPicker(rules: rule) + .padding(.horizontal, .medium) + .padding(.bottom, .small) } } } } - .transition(.move(edge: .top)) } + .transition(.move(edge: .top)) } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - selectionRule = rule - selectionEndRule = endRule - dismiss() - })) - .disabled(rule == .never) - } - .surfaceContentRowMargins() } - .presentationDetents(rule == .never ? [.height(630), .large] : [.large]) - .presentationDragIndicator(.hidden) - } - - @ViewBuilder - func repartPicker(rules: CalendarEventEndRecurrenceRules) -> some View { - switch rules { - case .never: - EmptyView() - case .occurrenceCount: - TextField("Number of repetitions", text: Binding(get: { - repeatCount - }, set: { newValue in - repeatCount = newValue - endRule = .occurrenceCount(Int(newValue) ?? 1) + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + selectionRule = rule + selectionEndRule = endRule + dismiss() })) - #if os(iOS) - .keyboardType(.numberPad) - #endif - .textFieldStyle(.default) - .focused($isFocusedRepitCount) - case .endDate: - #if !os(watchOS) - DatePicker("Date", selection: Binding(get: { - endDate - }, set: { newDate in - endDate = newDate - endRule = .endDate(newDate) - })) - #if os(iOS) - .datePickerStyle(.wheel) - #endif - .labelsHidden() - #else - ProgressView() - #endif + .disabled(rule == .never) } + .surfaceContentRowMargins() + } + .presentationDetents(rule == .never ? [.height(630), .large] : [.large]) + .presentationDragIndicator(.hidden) + } + + @ViewBuilder + func repartPicker(rules: CalendarEventEndRecurrenceRules) -> some View { + switch rules { + case .never: + EmptyView() + case .occurrenceCount: + TextField("Number of repetitions", text: Binding(get: { + repeatCount + }, set: { newValue in + repeatCount = newValue + endRule = .occurrenceCount(Int(newValue) ?? 1) + })) + #if os(iOS) + .keyboardType(.numberPad) + #endif + .textFieldStyle(.default) + .focused($isFocusedRepitCount) + case .endDate: + #if !os(watchOS) + DatePicker("Date", selection: Binding(get: { + endDate + }, set: { newDate in + endDate = newDate + endRule = .endDate(newDate) + })) + #if os(iOS) + .datePickerStyle(.wheel) + #endif + .labelsHidden() + #else + ProgressView() + #endif } } +} #endif diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift index 3bca2d1..b2f3793 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift @@ -4,8 +4,8 @@ // #if canImport(Contacts) && canImport(EventKit) - import Contacts - import EventKit +import Contacts +import EventKit #endif import OversizeCalendarService import OversizeContactsService @@ -16,86 +16,86 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public struct AttendeesView: View { - @StateObject var viewModel: AttendeesViewModel - @Environment(\.dismiss) var dismiss +public struct AttendeesView: View { + @StateObject var viewModel: AttendeesViewModel + @Environment(\.dismiss) var dismiss - public init(event: EKEvent) { - _viewModel = StateObject(wrappedValue: AttendeesViewModel(event: event)) - } + public init(event: EKEvent) { + _viewModel = StateObject(wrappedValue: AttendeesViewModel(event: event)) + } - public var body: some View { - PageView("Invitees") { - Group { - switch viewModel.state { - case .initial: - placeholder() - .onAppear { - Task { - await viewModel.fetchData() - } + public var body: some View { + PageView("Invitees") { + Group { + switch viewModel.state { + case .initial: + placeholder() + .onAppear { + Task { + await viewModel.fetchData() } - case .loading: - placeholder() - case let .result(data): - content(data) - case let .error(error): - ErrorView(error) - } + } + case .loading: + placeholder() + case let .result(data): + content(data) + case let .error(error): + ErrorView(error) } } - .leadingBar { - BarButton(.close) - } } + .leadingBar { + BarButton(.close) + } + } - @ViewBuilder - private func content(_: [CNContact]) -> some View { - if let attendees = viewModel.event.attendees { - VStack(spacing: .zero) { - if let organizer = viewModel.event.organizer { - Row(organizer.name ?? organizer.url.absoluteString, subtitle: "Organizer") { - userAvatarView(participant: organizer) - } + @ViewBuilder + private func content(_: [CNContact]) -> some View { + if let attendees = viewModel.event.attendees { + VStack(spacing: .zero) { + if let organizer = viewModel.event.organizer { + Row(organizer.name ?? organizer.url.absoluteString, subtitle: "Organizer") { + userAvatarView(participant: organizer) } + } - ForEach(attendees, id: \.self) { attender in - Row(attender.name ?? attender.url.absoluteString, subtitle: attender.participantRole.title) { - userAvatarView(participant: attender) - } + ForEach(attendees, id: \.self) { attender in + Row(attender.name ?? attender.url.absoluteString, subtitle: attender.participantRole.title) { + userAvatarView(participant: attender) } } } } + } - func userAvatarView(participant: EKParticipant) -> some View { - ZStack(alignment: .bottomTrailing) { - Avatar(firstName: participant.name ?? participant.url.absoluteString) - .controlSize(.regular) + func userAvatarView(participant: EKParticipant) -> some View { + ZStack(alignment: .bottomTrailing) { + Avatar(firstName: participant.name ?? participant.url.absoluteString) + .controlSize(.regular) - ZStack { - Circle() - .fill(participant.color) - .frame(width: 16, height: 16) - .background { - Circle() - .stroke(lineWidth: 4) - .fillBackgroundPrimary() - } - Image(systemName: participant.symbolName) - .onPrimaryForeground() - .font(.system(size: 9, weight: .black)) - } + ZStack { + Circle() + .fill(participant.color) + .frame(width: 16, height: 16) + .background { + Circle() + .stroke(lineWidth: 4) + .fillBackgroundPrimary() + } + Image(systemName: participant.symbolName) + .onPrimaryForeground() + .font(.system(size: 9, weight: .black)) } } + } - @ViewBuilder - private func placeholder() -> some View { - #if os(watchOS) - ProgressView() - #else - LoaderOverlayView() - #endif - } + @ViewBuilder + private func placeholder() -> some View { + #if os(watchOS) + ProgressView() + #else + LoaderOverlayView() + #endif } +} #endif diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift index d597c36..13a66f8 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift @@ -4,8 +4,8 @@ // #if canImport(Contacts) && canImport(EventKit) - @preconcurrency import Contacts - import EventKit +@preconcurrency import Contacts +import EventKit #endif import Factory import OversizeContactsService @@ -14,51 +14,51 @@ import OversizeModels import SwiftUI #if !os(tvOS) - @MainActor - class AttendeesViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = AttendeesViewModelState.initial - @Published var searchText: String = .init() +@MainActor +class AttendeesViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = AttendeesViewModelState.initial + @Published var searchText: String = .init() - let event: EKEvent + let event: EKEvent - init(event: EKEvent) { - self.event = event - } + init(event: EKEvent) { + self.event = event + } - func fetchData() async { - state = .loading - let _ = await contactsService.requestAccess() + func fetchData() async { + state = .loading + let _ = await contactsService.requestAccess() - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) } + } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact - } + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact } } - return nil } + return nil } +} - enum AttendeesViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) - } +enum AttendeesViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) +} #endif diff --git a/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift b/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift index 11d868c..55f8e21 100644 --- a/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift +++ b/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - import Contacts +import Contacts #endif import OversizeComponents import OversizeCore @@ -14,84 +14,84 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public struct ContactsListsView: View { - @StateObject var viewModel: ContactsListsViewModel - @Environment(\.dismiss) var dismiss - @Binding private var emails: [String] +public struct ContactsListsView: View { + @StateObject var viewModel: ContactsListsViewModel + @Environment(\.dismiss) var dismiss + @Binding private var emails: [String] - public init(emails: Binding<[String]>) { - _viewModel = StateObject(wrappedValue: ContactsListsViewModel()) - _emails = emails - } + public init(emails: Binding<[String]>) { + _viewModel = StateObject(wrappedValue: ContactsListsViewModel()) + _emails = emails + } - public var body: some View { - PageView("") { - Group { - switch viewModel.state { - case .initial: - placeholder() - case .loading: - placeholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) - } + public var body: some View { + PageView("") { + Group { + switch viewModel.state { + case .initial: + placeholder() + case .loading: + placeholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) } } - .leadingBar { - BarButton(.close) - } - .task { - await viewModel.fetchData() - } } + .leadingBar { + BarButton(.close) + } + .task { + await viewModel.fetchData() + } + } - @ViewBuilder - private func content(data: [CNContact]) -> some View { - ForEach(emails, id: \.self) { email in - if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { - let emails = contact.emailAddresses - if !emails.isEmpty { - ForEach(emails, id: \.identifier) { email in - emailRow(email: email, contact: contact) - } - } - } else { - Row(email) { - Avatar(firstName: email) + @ViewBuilder + private func content(data: [CNContact]) -> some View { + ForEach(emails, id: \.self) { email in + if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { + let emails = contact.emailAddresses + if !emails.isEmpty { + ForEach(emails, id: \.identifier) { email in + emailRow(email: email, contact: contact) } } + } else { + Row(email) { + Avatar(firstName: email) + } } } + } - @ViewBuilder - private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { - let email = email.value as String - #if os(iOS) - if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) - } - } else { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) - } - } - #else - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) - } - #endif + @ViewBuilder + private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { + let email = email.value as String + #if os(iOS) + if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) + } + } else { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) + } + } + #else + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) } + #endif + } - @ViewBuilder - private func placeholder() -> some View { - ForEach(emails, id: \.self) { email in - Row(email) { - Avatar(firstName: email) - } + @ViewBuilder + private func placeholder() -> some View { + ForEach(emails, id: \.self) { email in + Row(email) { + Avatar(firstName: email) } } } +} #endif diff --git a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift index a7ce31c..85bb498 100644 --- a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - @preconcurrency import Contacts +@preconcurrency import Contacts #endif import Factory import OversizeContactsService @@ -13,47 +13,47 @@ import OversizeModels import SwiftUI #if !os(tvOS) - @MainActor - public class ContactsListsViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = ContactsPickerViewModelState.initial - @Published var searchText: String = .init() +@MainActor +public class ContactsListsViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = ContactsPickerViewModelState.initial + @Published var searchText: String = .init() - public init() {} + public init() {} - func fetchData() async { - state = .loading - let _ = await contactsService.requestAccess() + func fetchData() async { + state = .loading + let _ = await contactsService.requestAccess() - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) } + } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact - } + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact } } - return nil } + return nil } +} - enum ContactsListsViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) - } +enum ContactsListsViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) +} #endif diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift index 053b539..f3724d0 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - import Contacts +import Contacts #endif import OversizeKit import OversizeLocalizable @@ -12,227 +12,227 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public struct EmailPickerView: View { - @Environment(\.dismiss) private var dismiss - @StateObject private var viewModel: EmailPickerViewModel +public struct EmailPickerView: View { + @Environment(\.dismiss) private var dismiss + @StateObject private var viewModel: EmailPickerViewModel - @Binding private var selection: [String] - @State private var selectedEmails: [String] = .init() + @Binding private var selection: [String] + @State private var selectedEmails: [String] = .init() - @FocusState private var isFocusSearth + @FocusState private var isFocusSearth - public init(selection: Binding<[String]>) { - _viewModel = StateObject(wrappedValue: EmailPickerViewModel()) - _selection = selection - } + public init(selection: Binding<[String]>) { + _viewModel = StateObject(wrappedValue: EmailPickerViewModel()) + _selection = selection + } - public var body: some View { - PageView("Add Invitees") { - Group { - switch viewModel.state { - case .initial, .loading: - placeholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) - } + public var body: some View { + PageView("Add Invitees") { + Group { + switch viewModel.state { + case .initial, .loading: + placeholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) } } - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - onDoneAction() - })) - .disabled(selectedEmails.isEmpty && !viewModel.searchText.isEmail) - } - .topToolbar { - TextField("Email or name", text: $viewModel.searchText) - .textFieldStyle(.default) - .focused($isFocusSearth) - #if os(iOS) - .keyboardType(.emailAddress) - #endif - } - .onAppear { - isFocusSearth = true - } - .task { - await viewModel.fetchData() - } } + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + onDoneAction() + })) + .disabled(selectedEmails.isEmpty && !viewModel.searchText.isEmail) + } + .topToolbar { + TextField("Email or name", text: $viewModel.searchText) + .textFieldStyle(.default) + .focused($isFocusSearth) + #if os(iOS) + .keyboardType(.emailAddress) + #endif + } + .onAppear { + isFocusSearth = true + } + .task { + await viewModel.fetchData() + } + } - @ViewBuilder - private func content(data: [CNContact]) -> some View { - LazyVStack(spacing: .zero) { - newEmailView() - - newSelectedContactsRows(data: data) + @ViewBuilder + private func content(data: [CNContact]) -> some View { + LazyVStack(spacing: .zero) { + newEmailView() - contactsRows(data: data) - } - } + newSelectedContactsRows(data: data) - @ViewBuilder - private func newEmailView() -> some View { - if !viewModel.searchText.isEmpty { - Checkbox( - isOn: .constant(viewModel.searchText.isEmail), - label: { - Row(viewModel.searchText, subtitle: "New member") { - Avatar(firstName: viewModel.searchText) - } - } - ) - .padding(.bottom, .small) - } + contactsRows(data: data) } + } - @ViewBuilder - private func newSelectedContactsRows(data: [CNContact]) -> some View { - if !viewModel.lastSelectedEmails.isEmpty { - HStack(spacing: .zero) { - Text("Latest") - Spacer() - } - .title3() - .onSurfaceSecondaryForeground() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) - - ForEach(viewModel.lastSelectedEmails, id: \.self) { email in - if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { - let emails = contact.emailAddresses - if !emails.isEmpty { - ForEach(emails, id: \.identifier) { email in - emailRow(email: email, contact: contact) - } - } - } else { - let isSelected = selectedEmails.contains(email) - Checkbox( - isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), - label: { - Row(email) { - Avatar(firstName: email) - } - } - ) + @ViewBuilder + private func newEmailView() -> some View { + if !viewModel.searchText.isEmpty { + Checkbox( + isOn: .constant(viewModel.searchText.isEmail), + label: { + Row(viewModel.searchText, subtitle: "New member") { + Avatar(firstName: viewModel.searchText) } } - } + ) + .padding(.bottom, .small) } + } - @ViewBuilder - private func contactsRows(data: [CNContact]) -> some View { - if !data.isEmpty { - HStack(spacing: .zero) { - Text("Contacts") - Spacer() - } - .title3() - .onSurfaceSecondaryForeground() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) - .padding(.top, viewModel.lastSelectedEmails.isEmpty ? .zero : .small) + @ViewBuilder + private func newSelectedContactsRows(data: [CNContact]) -> some View { + if !viewModel.lastSelectedEmails.isEmpty { + HStack(spacing: .zero) { + Text("Latest") + Spacer() + } + .title3() + .onSurfaceSecondaryForeground() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) - ForEach(data, id: \.identifier) { contact in + ForEach(viewModel.lastSelectedEmails, id: \.self) { email in + if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { let emails = contact.emailAddresses if !emails.isEmpty { ForEach(emails, id: \.identifier) { email in emailRow(email: email, contact: contact) } } + } else { + let isSelected = selectedEmails.contains(email) + Checkbox( + isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), + label: { + Row(email) { + Avatar(firstName: email) + } + } + ) } } } + } - @ViewBuilder - private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { - let email = email.value as String - let isSelected = selectedEmails.contains(email) - #if os(iOS) - if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { - Checkbox(isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), label: { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) - } - - }) - } else { - Checkbox(isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), label: { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) - } - - }) - } - #else - Checkbox(isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), label: { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) + @ViewBuilder + private func contactsRows(data: [CNContact]) -> some View { + if !data.isEmpty { + HStack(spacing: .zero) { + Text("Contacts") + Spacer() + } + .title3() + .onSurfaceSecondaryForeground() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) + .padding(.top, viewModel.lastSelectedEmails.isEmpty ? .zero : .small) + + ForEach(data, id: \.identifier) { contact in + let emails = contact.emailAddresses + if !emails.isEmpty { + ForEach(emails, id: \.identifier) { email in + emailRow(email: email, contact: contact) } - - }) - #endif + } + } } + } - private func onDoneAction() { - if viewModel.searchText.isEmail { - if !selection.contains(viewModel.searchText) { - selection.append(viewModel.searchText) + @ViewBuilder + private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { + let email = email.value as String + let isSelected = selectedEmails.contains(email) + #if os(iOS) + if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { + Checkbox(isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), label: { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) } - if !viewModel.lastSelectedEmails.contains(viewModel.searchText) { - viewModel.lastSelectedEmails.append(viewModel.searchText) + }) + } else { + Checkbox(isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), label: { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) } + + }) + } + #else + Checkbox(isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), label: { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) } - if !selectedEmails.isEmpty { - for email in selectedEmails where !selection.contains(email) { - selection.append(email) - } + }) + #endif + } - for email in selectedEmails where !viewModel.lastSelectedEmails.contains(email) { - viewModel.lastSelectedEmails.append(email) - } + private func onDoneAction() { + if viewModel.searchText.isEmail { + if !selection.contains(viewModel.searchText) { + selection.append(viewModel.searchText) } - dismiss() + if !viewModel.lastSelectedEmails.contains(viewModel.searchText) { + viewModel.lastSelectedEmails.append(viewModel.searchText) + } } - private func onContactClick(email: String) { - let isSelected = selectedEmails.contains(email) - if isSelected { - selectedEmails.remove(email) - } else { - selectedEmails.append(email) + if !selectedEmails.isEmpty { + for email in selectedEmails where !selection.contains(email) { + selection.append(email) + } + + for email in selectedEmails where !viewModel.lastSelectedEmails.contains(email) { + viewModel.lastSelectedEmails.append(email) } } - @ViewBuilder - private func placeholder() -> some View { - #if os(watchOS) - ProgressView() - #else - LoaderOverlayView() - #endif + dismiss() + } + + private func onContactClick(email: String) { + let isSelected = selectedEmails.contains(email) + if isSelected { + selectedEmails.remove(email) + } else { + selectedEmails.append(email) } } + + @ViewBuilder + private func placeholder() -> some View { + #if os(watchOS) + ProgressView() + #else + LoaderOverlayView() + #endif + } +} #endif // struct ContactsPickerView_Previews: PreviewProvider { // static var previews: some View { diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift index 243dca3..2cdd47d 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - @preconcurrency import Contacts +@preconcurrency import Contacts #endif import Factory import OversizeContactsService @@ -13,53 +13,53 @@ import OversizeModels import SwiftUI #if !os(tvOS) - @MainActor - class EmailPickerViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = ContactsPickerViewModelState.initial - @Published var searchText: String = .init() +@MainActor +class EmailPickerViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = ContactsPickerViewModelState.initial + @Published var searchText: String = .init() - @AppStorage("AppState.LastSelectedEmails") var lastSelectedEmails: [String] = .init() + @AppStorage("AppState.LastSelectedEmails") var lastSelectedEmails: [String] = .init() - func fetchData() async { - state = .loading - let status = await contactsService.requestAccess() - switch status { - case .success: - - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } + func fetchData() async { + state = .loading + let status = await contactsService.requestAccess() + switch status { + case .success: + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") state = .error(error) } + + case let .failure(error): + state = .error(error) } + } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact - } + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact } } - return nil } + return nil } +} - enum ContactsPickerViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) - } +enum ContactsPickerViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) +} #endif diff --git a/Sources/OversizeKit/AdsKit/AdView.swift b/Sources/OversizeKit/AdsKit/AdView.swift index b2e4836..df6acf4 100644 --- a/Sources/OversizeKit/AdsKit/AdView.swift +++ b/Sources/OversizeKit/AdsKit/AdView.swift @@ -33,16 +33,16 @@ public struct AdView: View { case let .result(appAd): #if os(iOS) - Surface { - isShowProduct.toggle() - } label: { - premiumBanner(appAd: appAd) - } - .surfaceContentMargins(.xSmall) - .appStoreOverlay(isPresent: $isShowProduct, appId: appAd.appStoreId) + Surface { + isShowProduct.toggle() + } label: { + premiumBanner(appAd: appAd) + } + .surfaceContentMargins(.xSmall) + .appStoreOverlay(isPresent: $isShowProduct, appId: appAd.appStoreId) #else - EmptyView() + EmptyView() #endif case .loading, .error: @@ -57,13 +57,17 @@ public struct AdView: View { $0 .resizable() .frame(width: 64, height: 64) - .mask(RoundedRectangle(cornerRadius: .large, - style: .continuous)) + .mask(RoundedRectangle( + cornerRadius: .large, + style: .continuous + )) .overlay( - RoundedRectangle(cornerRadius: 16, - style: .continuous) - .stroke(lineWidth: 1) - .opacity(0.15) + RoundedRectangle( + cornerRadius: 16, + style: .continuous + ) + .stroke(lineWidth: 1) + .opacity(0.15) ) .onTapGesture { isShowProduct.toggle() diff --git a/Sources/OversizeKit/DeeplinkKit/DeeplinkModifier.swift b/Sources/OversizeKit/DeeplinkKit/DeeplinkModifier.swift new file mode 100644 index 0000000..a259629 --- /dev/null +++ b/Sources/OversizeKit/DeeplinkKit/DeeplinkModifier.swift @@ -0,0 +1,30 @@ +// +// Copyright © 2024 Alexander Romanov +// DeeplinkModifier.swift, created on 12.11.2024 +// + +import SwiftUI + +public struct DeeplinkModifier: ViewModifier { + private let pub = NotificationCenter.default.publisher(for: NSNotification.Name("Deeplink")) + private var onReceive: (URL) -> Void + + public init(onReceive: @escaping (URL) -> Void) { + self.onReceive = onReceive + } + + public func body(content: Content) -> some View { + content + .onReceive(pub) { output in + if let userInfo = output.userInfo, let info = userInfo["link"] as? String, let url = URL(string: info) { + onReceive(url) + } + } + } +} + +public extension View { + func onDeeplink(perform action: @escaping (URL) -> Void) -> some View { + modifier(DeeplinkModifier(onReceive: action)) + } +} diff --git a/Sources/OversizeKit/LauncherKit/Launcher.swift b/Sources/OversizeKit/LauncherKit/Launcher.swift index 51a704f..88f9a97 100644 --- a/Sources/OversizeKit/LauncherKit/Launcher.swift +++ b/Sources/OversizeKit/LauncherKit/Launcher.swift @@ -39,7 +39,7 @@ public struct Launcher: View { .systemServices() #if os(macOS) .frame(width: 840, height: 672) - // .interactiveDismissDisabled(!viewModel.appStateService.isCompletedOnbarding) + // .interactiveDismissDisabled(!viewModel.appStateService.isCompletedOnbarding) #endif } .onChange(of: viewModel.appStateService.isCompletedOnbarding) { _, isCompletedOnbarding in @@ -142,9 +142,9 @@ private extension View { item: Binding, onDismiss: (() -> Void)? = nil, @ViewBuilder content: @escaping (Item) -> some View ) -> some View where Item: Identifiable { #if os(macOS) - sheet(item: item, onDismiss: onDismiss, content: content) + sheet(item: item, onDismiss: onDismiss, content: content) #else - fullScreenCover(item: item, onDismiss: onDismiss, content: content) + fullScreenCover(item: item, onDismiss: onDismiss, content: content) #endif } } diff --git a/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift b/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift index 8899600..d3305d2 100644 --- a/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift +++ b/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift @@ -10,7 +10,7 @@ import OversizeStoreService import OversizeUI import SwiftUI #if canImport(LocalAuthentication) - import LocalAuthentication +import LocalAuthentication #endif import Factory @@ -36,12 +36,12 @@ public final class LauncherViewModel: ObservableObject { var isShowLockscreen: Bool { if FeatureFlags.secure.lookscreen ?? false { if settingsService.pinCodeEnabend || settingsService.biometricEnabled, authState != .unlocked { - return true + true } else { - return false + false } } else { - return false + false } } @@ -56,10 +56,10 @@ extension LauncherViewModel { case specialOffer(event: Components.Schemas.SpecialOffer) public var id: Int { switch self { - case .onboarding: return 0 - case .payWall: return 1 - case .rate: return 2 - case .specialOffer: return 3 + case .onboarding: 0 + case .payWall: 1 + case .rate: 2 + case .specialOffer: 3 } } } @@ -152,9 +152,9 @@ public extension LauncherViewModel { func checkDateInSelectedPeriod(startDate: Date, endDate: Date) -> Bool { if startDate < endDate { - return (startDate ... endDate).contains(Date()) + (startDate ... endDate).contains(Date()) } else { - return false + false } } diff --git a/Sources/OversizeKit/LauncherKit/SplashScreen.swift b/Sources/OversizeKit/LauncherKit/SplashScreen.swift index 8b70845..e098184 100644 --- a/Sources/OversizeKit/LauncherKit/SplashScreen.swift +++ b/Sources/OversizeKit/LauncherKit/SplashScreen.swift @@ -13,14 +13,16 @@ struct SplashScreen: View { Color.accent #if os(iOS) - if let appImage = Info.app.iconName { - Image(uiImage: UIImage(named: appImage) ?? UIImage()) - .resizable() - .frame(width: 128, height: 128) - .mask(RoundedRectangle(cornerRadius: 28, - style: .continuous)) - .padding(.top, Space.xxLarge) - } + if let appImage = Info.app.iconName { + Image(uiImage: UIImage(named: appImage) ?? UIImage()) + .resizable() + .frame(width: 128, height: 128) + .mask(RoundedRectangle( + cornerRadius: 28, + style: .continuous + )) + .padding(.top, Space.xxLarge) + } #endif } diff --git a/Sources/OversizeKit/LockscreenKit/LockscreenView.swift b/Sources/OversizeKit/LockscreenKit/LockscreenView.swift index cfb01ef..03ede68 100644 --- a/Sources/OversizeKit/LockscreenKit/LockscreenView.swift +++ b/Sources/OversizeKit/LockscreenKit/LockscreenView.swift @@ -14,8 +14,8 @@ public enum LockscreenViewState { public struct LockscreenView: View { #if os(iOS) - @Environment(\.verticalSizeClass) var verticalSizeClass: UserInterfaceSizeClass? - @Environment(\.horizontalSizeClass) var horizontalSizeClass: UserInterfaceSizeClass? + @Environment(\.verticalSizeClass) var verticalSizeClass: UserInterfaceSizeClass? + @Environment(\.horizontalSizeClass) var horizontalSizeClass: UserInterfaceSizeClass? #endif @Environment(\.scenePhase) var scenePhase: ScenePhase @@ -47,31 +47,32 @@ public struct LockscreenView: View { private var isShowTitle: Bool { #if os(iOS) - if horizontalSizeClass == .compact, verticalSizeClass == .regular { - return true - } else if horizontalSizeClass == .regular, verticalSizeClass == .compact { - return false - } else if horizontalSizeClass == .regular, verticalSizeClass == .regular { - return true - } else { - return true - } - #else + if horizontalSizeClass == .compact, verticalSizeClass == .regular { + return true + } else if horizontalSizeClass == .regular, verticalSizeClass == .compact { + return false + } else if horizontalSizeClass == .regular, verticalSizeClass == .regular { return true + } else { + return true + } + #else + return true #endif } - public init(pinCode: Binding, - state: Binding = .constant(.locked), - maxCount: Int = 4, - title: String? = nil, - errorText: String? = nil, - pinCodeEnabled: Bool = true, - biometricEnabled: Bool = false, - biometricType: BiometricType = .faceID, - action: (() -> Void)? = nil, - biometricAction: (() -> Void)? = nil) - { + public init( + pinCode: Binding, + state: Binding = .constant(.locked), + maxCount: Int = 4, + title: String? = nil, + errorText: String? = nil, + pinCodeEnabled: Bool = true, + biometricEnabled: Bool = false, + biometricType: BiometricType = .faceID, + action: (() -> Void)? = nil, + biometricAction: (() -> Void)? = nil + ) { _pinCode = pinCode _state = state self.maxCount = maxCount @@ -116,16 +117,18 @@ public struct LockscreenView: View { if let appImage = Info.app.iconName { #if os(iOS) - Image(uiImage: UIImage(named: appImage) ?? UIImage()) - .resizable() - .frame(width: 96, height: 96) - .mask(RoundedRectangle(cornerRadius: 26, - style: .continuous)) + Image(uiImage: UIImage(named: appImage) ?? UIImage()) + .resizable() + .frame(width: 96, height: 96) + .mask(RoundedRectangle( + cornerRadius: 26, + style: .continuous + )) #else - Text(biometricType.rawValue) - .title2(.bold) - .foregroundColor(.onSurfacePrimary) + Text(biometricType.rawValue) + .title2(.bold) + .foregroundColor(.onSurfacePrimary) #endif @@ -139,18 +142,18 @@ public struct LockscreenView: View { #if os(iOS) - Button { biometricAction?() } label: { - HStack(spacing: .xSmall) { - biometricImage() - .padding(.leading, 2) + Button { biometricAction?() } label: { + HStack(spacing: .xSmall) { + biometricImage() + .padding(.leading, 2) - Text("Open with \(biometricType.rawValue)") - } - .padding(.horizontal, .xxxSmall) + Text("Open with \(biometricType.rawValue)") } - .buttonStyle(.tertiary(infinityWidth: false)) - .controlBorderShape(.capsule) - .controlSize(.small) + .padding(.horizontal, .xxxSmall) + } + .buttonStyle(.tertiary(infinityWidth: false)) + .controlBorderShape(.capsule) + .controlSize(.small) #endif Spacer() @@ -285,9 +288,12 @@ public struct LockscreenView: View { .offset(x: leftOffset) // .animation(Animation.easeInOut(duration: 1).delay(0.2 * Double(number))) .scaleEffect(shouldAnimate ? 0.5 : 1) - .animation(Animation.easeInOut(duration: 0.5) - .repeatForever() - .delay(number == 0 ? 0 : 0.5 * Double(number)), value: shouldAnimate) + .animation( + Animation.easeInOut(duration: 0.5) + .repeatForever() + .delay(number == 0 ? 0 : 0.5 * Double(number)), + value: shouldAnimate + ) } } .onReceive(timer) { _ in diff --git a/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift b/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift index 0da5cbe..a48ca82 100644 --- a/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift +++ b/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift @@ -52,13 +52,13 @@ extension SettingsScreen: @preconcurrency RoutableView { WebView(url: url) case let .sendMail(to: to, subject: subject, content: content): #if os(iOS) - MailView( - to: to, - subject: subject, - content: content - ) + MailView( + to: to, + subject: subject, + content: content + ) #else - EmptyView() + EmptyView() #endif } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift index d852126..bcfffa2 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift @@ -15,7 +15,7 @@ import SwiftUI // swiftlint:disable all #if canImport(MessageUI) - import MessageUI +import MessageUI #endif public struct AboutView: View { @@ -42,42 +42,42 @@ public struct AboutView: View { var oppacity: CGFloat { if offset < 0 { - return 1 + 1 } else if offset > 500 { - return 0 + 0 } else { - return Double(1 / (offset * 0.01)) + Double(1 / (offset * 0.01)) } } var blur: CGFloat { if offset < 0 { - return 0 + 0 } else { - return Double(offset * 0.05) + Double(offset * 0.05) } } #if os(iOS) - let scale = UIScreen.main.scale + let scale = UIScreen.main.scale #else - let scale: CGFloat = 2 + let scale: CGFloat = 2 #endif public var body: some View { #if os(iOS) - Page(L10n.Settings.about) { - list - .surfaceContentRowMargins() - .task { - await viewModel.fetchApps() - } - } - .backgroundSecondary() + Page(L10n.Settings.about) { + list + .surfaceContentRowMargins() + .task { + await viewModel.fetchApps() + } + } + .backgroundSecondary() #else - list - .navigationTitle(L10n.Settings.about) + list + .navigationTitle(L10n.Settings.about) #endif } @@ -101,13 +101,17 @@ public struct AboutView: View { $0 .resizable() .frame(width: 74, height: 74) - .mask(RoundedRectangle(cornerRadius: .large, - style: .continuous)) + .mask(RoundedRectangle( + cornerRadius: .large, + style: .continuous + )) .overlay( - RoundedRectangle(cornerRadius: 16, - style: .continuous) - .stroke(lineWidth: 1) - .opacity(0.15) + RoundedRectangle( + cornerRadius: 16, + style: .continuous + ) + .stroke(lineWidth: 1) + .opacity(0.15) ) }, placeholder: { @@ -215,42 +219,42 @@ public struct AboutView: View { } #if os(iOS) - if MFMailComposeViewController.canSendMail(), - let mail = Info.links?.company.email, - let appVersion = Info.app.verstion, - let appName = Info.app.name, - let device = Info.app.device, - let appBuild = Info.app.build, - let systemVersion = Info.app.system - { - let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" - let subject = "Feedback" - - Row(L10n.About.suggestIdea) { - isShowMail.toggle() - } leading: { - ideaSettingsIcon.icon() - } + if MFMailComposeViewController.canSendMail(), + let mail = Info.links?.company.email, + let appVersion = Info.app.verstion, + let appName = Info.app.name, + let device = Info.app.device, + let appBuild = Info.app.build, + let systemVersion = Info.app.system + { + let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" + let subject = "Feedback" + + Row(L10n.About.suggestIdea) { + isShowMail.toggle() + } leading: { + ideaSettingsIcon.icon() + } - .buttonStyle(.row) - .sheet(isPresented: $isShowMail) { - MailView(to: mail, subject: subject, content: contentPreText) - } + .buttonStyle(.row) + .sheet(isPresented: $isShowMail) { + MailView(to: mail, subject: subject, content: contentPreText) } + } #endif #if os(iOS) - if let shareUrl = Info.url.appInstallShare, let id = Info.app.appStoreID, !id.isEmpty { - Row(L10n.Settings.shareApplication) { - isSharePresented.toggle() - } leading: { - shareSettingsIcon.icon() - } - .sheet(isPresented: $isSharePresented) { - ActivityViewController(activityItems: [shareUrl]) - .presentationDetents([.medium, .large]) - } + if let shareUrl = Info.url.appInstallShare, let id = Info.app.appStoreID, !id.isEmpty { + Row(L10n.Settings.shareApplication) { + isSharePresented.toggle() + } leading: { + shareSettingsIcon.icon() } + .sheet(isPresented: $isSharePresented) { + ActivityViewController(activityItems: [shareUrl]) + .presentationDetents([.medium, .large]) + } + } #endif } } @@ -496,33 +500,33 @@ public struct AboutView: View { var rateSettingsIcon: Image { switch iconStyle { case .line: - return Image.Base.heart + Image.Base.heart case .fill: - return Image.Base.Heart.fill + Image.Base.Heart.fill case .twoTone: - return Image.Base.Heart.TwoTone.fill + Image.Base.Heart.TwoTone.fill } } var ideaSettingsIcon: Image { switch iconStyle { case .line: - return Image.Electricity.lamp + Image.Electricity.lamp case .fill: - return Image.Electricity.Lamp.fill + Image.Electricity.Lamp.fill case .twoTone: - return Image.Electricity.Lamp.TwoTone.fill + Image.Electricity.Lamp.TwoTone.fill } } var shareSettingsIcon: Image { switch iconStyle { case .line: - return Image.Base.send + Image.Base.send case .fill: - return Image.Base.Send.fill + Image.Base.Send.fill case .twoTone: - return Image.Base.Send.TwoTone.fill + Image.Base.Send.TwoTone.fill } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift b/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift index bd8491f..c722787 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift @@ -4,7 +4,7 @@ // #if canImport(MessageUI) - import MessageUI +import MessageUI #endif import OversizeComponents import OversizeLocalizable @@ -58,33 +58,33 @@ public struct FeedbackView: View { VStack(alignment: .leading) { #if os(iOS) - if MFMailComposeViewController.canSendMail(), - let mail = Info.links?.company.email, - let appVersion = Info.app.verstion, - let appName = Info.app.name, - let device = Info.app.device, - let appBuild = Info.app.build, - let systemVersion = Info.app.system - { - let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" - let subject = "Feedback" + if MFMailComposeViewController.canSendMail(), + let mail = Info.links?.company.email, + let appVersion = Info.app.verstion, + let appName = Info.app.name, + let device = Info.app.device, + let appBuild = Info.app.build, + let systemVersion = Info.app.system + { + let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" + let subject = "Feedback" - Row(L10n.Settings.feedbakAuthor) { - router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) - } leading: { - mailIcon.icon() - } - } else { - // Send author - if let sendMailUrl = Info.url.developerSendMail { - Link(destination: sendMailUrl) { - Row(L10n.Settings.feedbakAuthor) { - mailIcon.icon() - } + Row(L10n.Settings.feedbakAuthor) { + router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) + } leading: { + mailIcon.icon() + } + } else { + // Send author + if let sendMailUrl = Info.url.developerSendMail { + Link(destination: sendMailUrl) { + Row(L10n.Settings.feedbakAuthor) { + mailIcon.icon() } - .buttonStyle(.row) } + .buttonStyle(.row) } + } #endif // Telegramm chat @@ -104,33 +104,33 @@ public struct FeedbackView: View { var heartIcon: Image { switch iconStyle { case .line: - return Image.Brands.appStore + Image.Brands.appStore case .fill: - return Image.Brands.AppStore.fill + Image.Brands.AppStore.fill case .twoTone: - return Image.Brands.AppStore.twoTone + Image.Brands.AppStore.twoTone } } var mailIcon: Image { switch iconStyle { case .line: - return Image.Email.email + Image.Email.email case .fill: - return Image.Email.Email.fill + Image.Email.Email.fill case .twoTone: - return Image.Email.Email.twoTone + Image.Email.Email.twoTone } } var chatIcon: Image { switch iconStyle { case .line: - return Image.Brands.telegram + Image.Brands.telegram case .fill: - return Image.Brands.Telegram.fill + Image.Brands.Telegram.fill case .twoTone: - return Image.Brands.Telegram.twoTone + Image.Brands.Telegram.twoTone } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift b/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift index ee5cae7..991ca77 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift @@ -4,7 +4,7 @@ // #if canImport(MessageUI) - import MessageUI +import MessageUI #endif import OversizeComponents import OversizeLocalizable @@ -53,22 +53,22 @@ public struct OurResorsesView: View { var figmaIcon: Image { switch iconStyle { case .line: - return Image.Brands.figma + Image.Brands.figma case .fill: - return Image.Brands.figma + Image.Brands.figma case .twoTone: - return Image.Brands.figma + Image.Brands.figma } } var githubIcon: Image { switch iconStyle { case .line: - return Image.Brands.github + Image.Brands.github case .fill: - return Image.Brands.github + Image.Brands.github case .twoTone: - return Image.Brands.github + Image.Brands.github } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift b/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift index d0aa8cc..441e1e2 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift @@ -4,7 +4,7 @@ // #if canImport(MessageUI) - import MessageUI +import MessageUI #endif import OversizeComponents import OversizeLocalizable @@ -49,33 +49,33 @@ public struct SupportView: View { SectionView { VStack(alignment: .leading) { #if os(iOS) - if MFMailComposeViewController.canSendMail(), - let mail = Info.links?.company.email, - let appVersion = Info.app.verstion, - let appName = Info.app.name, - let device = Info.app.device, - let appBuild = Info.app.build, - let systemVersion = Info.app.system - { - let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" - let subject = "Support" + if MFMailComposeViewController.canSendMail(), + let mail = Info.links?.company.email, + let appVersion = Info.app.verstion, + let appName = Info.app.name, + let device = Info.app.device, + let appBuild = Info.app.build, + let systemVersion = Info.app.system + { + let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" + let subject = "Support" - Row("Contact Us") { - router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) - } leading: { - mailIcon.icon() - } - } else { - // Send author - if let sendMailUrl = Info.url.developerSendMail { - Link(destination: sendMailUrl) { - Row("Contact Us") { - mailIcon.icon() - } + Row("Contact Us") { + router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) + } leading: { + mailIcon.icon() + } + } else { + // Send author + if let sendMailUrl = Info.url.developerSendMail { + Link(destination: sendMailUrl) { + Row("Contact Us") { + mailIcon.icon() } - .buttonStyle(.row) } + .buttonStyle(.row) } + } #endif // Telegramm chat @@ -95,33 +95,33 @@ public struct SupportView: View { var heartIcon: Image { switch iconStyle { case .line: - return Image.Brands.appStore + Image.Brands.appStore case .fill: - return Image.Brands.AppStore.fill + Image.Brands.AppStore.fill case .twoTone: - return Image.Brands.AppStore.twoTone + Image.Brands.AppStore.twoTone } } var mailIcon: Image { switch iconStyle { case .line: - return Image.Email.email + Image.Email.email case .fill: - return Image.Email.Email.fill + Image.Email.Email.fill case .twoTone: - return Image.Email.Email.twoTone + Image.Email.Email.twoTone } } var chatIcon: Image { switch iconStyle { case .line: - return Image.Brands.telegram + Image.Brands.telegram case .fill: - return Image.Brands.Telegram.fill + Image.Brands.Telegram.fill case .twoTone: - return Image.Brands.Telegram.twoTone + Image.Brands.Telegram.twoTone } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift index 89946c5..2747f82 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift @@ -17,7 +17,7 @@ public struct AppearanceSettingView: View { @Environment(\.isPremium) var isPremium: Bool #if os(iOS) - @StateObject var iconSettings = AppIconSettings() + @StateObject var iconSettings = AppIconSettings() #endif private let columns = [ @@ -28,33 +28,33 @@ public struct AppearanceSettingView: View { public var body: some View { #if os(iOS) - Page(L10n.Settings.apperance) { - iOSSettings - .surfaceContentRowMargins() - } - .backgroundSecondary() + Page(L10n.Settings.apperance) { + iOSSettings + .surfaceContentRowMargins() + } + .backgroundSecondary() #else - macSettings + macSettings #endif } #if os(iOS) - private var iOSSettings: some View { - LazyVStack(alignment: .leading, spacing: 0) { - apperance + private var iOSSettings: some View { + LazyVStack(alignment: .leading, spacing: 0) { + apperance - accentColor + accentColor - advanded + advanded - if iconSettings.iconNames.count > 1 { - appIcon - } + if iconSettings.iconNames.count > 1 { + appIcon } - .preferredColorScheme(theme.appearance.colorScheme) - .accentColor(theme.accentColor) } + .preferredColorScheme(theme.appearance.colorScheme) + .accentColor(theme.accentColor) + } #endif private var macSettings: some View { @@ -101,57 +101,59 @@ public struct AppearanceSettingView: View { } #if os(iOS) - private var accentColor: some View { - SectionView("Accent color") { - ColorSelector(selection: theme.$accentColor) - } + private var accentColor: some View { + SectionView("Accent color") { + ColorSelector(selection: theme.$accentColor) } + } #endif #if os(iOS) - private var appIcon: some View { - SectionView("App icon") { - LazyVGrid(columns: columns, spacing: 24) { - ForEach(0 ..< iconSettings.iconNames.count, id: \.self) { index in - HStack { - Image(uiImage: UIImage(named: iconSettings.iconNames[index] - ?? "AppIcon") ?? UIImage()) - .renderingMode(.original) - .resizable() - .scaledToFit() - .frame(width: 78, height: 78) - .cornerRadius(18) - .overlay( - RoundedRectangle(cornerRadius: 20) - .stroke(index == iconSettings.currentIndex ? Color.accent : Color.border, - lineWidth: index == iconSettings.currentIndex ? 3 : 1) - ) - .onTapGesture { - if index != 0, isPremium == false { - router.present(.premium) - } else { - let defaultIconIndex = iconSettings.iconNames - .firstIndex(of: UIApplication.shared.alternateIconName) ?? 0 - if defaultIconIndex != index { - // swiftlint:disable line_length - UIApplication.shared.setAlternateIconName(iconSettings.iconNames[index]) { error in - if let error { - log(error.localizedDescription) - } else { - log("Success! You have changed the app icon.") - } + private var appIcon: some View { + SectionView("App icon") { + LazyVGrid(columns: columns, spacing: 24) { + ForEach(0 ..< iconSettings.iconNames.count, id: \.self) { index in + HStack { + Image(uiImage: UIImage(named: iconSettings.iconNames[index] + ?? "AppIcon") ?? UIImage()) + .renderingMode(.original) + .resizable() + .scaledToFit() + .frame(width: 78, height: 78) + .cornerRadius(18) + .overlay( + RoundedRectangle(cornerRadius: 20) + .stroke( + index == iconSettings.currentIndex ? Color.accent : Color.border, + lineWidth: index == iconSettings.currentIndex ? 3 : 1 + ) + ) + .onTapGesture { + if index != 0, isPremium == false { + router.present(.premium) + } else { + let defaultIconIndex = iconSettings.iconNames + .firstIndex(of: UIApplication.shared.alternateIconName) ?? 0 + if defaultIconIndex != index { + // swiftlint:disable line_length + UIApplication.shared.setAlternateIconName(iconSettings.iconNames[index]) { error in + if let error { + log(error.localizedDescription) + } else { + log("Success! You have changed the app icon.") } } } } - } - .padding(3) + } } + .padding(3) } - .padding() } + .padding() } + } #endif private var advanded: some View { @@ -197,59 +199,59 @@ public struct AppearanceSettingView: View { var textIcon: Image { switch iconStyle { case .line: - return Image.Editor.Font.square + Image.Editor.Font.square case .fill: - return Image.Editor.Font.Square.fill + Image.Editor.Font.Square.fill case .twoTone: - return Image.Editor.Font.Square.TwoTone.fill + Image.Editor.Font.Square.TwoTone.fill } } var borderIcon: Image { switch iconStyle { case .line: - return Image.Design.verticalMirror + Image.Design.verticalMirror case .fill: - return Image.Editor.Font.Square.fill + Image.Editor.Font.Square.fill case .twoTone: - return Image.Editor.Font.Square.TwoTone.fill + Image.Editor.Font.Square.TwoTone.fill } } var radiusIcon: Image { switch iconStyle { case .line: - return Image.Design.path + Image.Design.path case .fill: - return Image.Design.Path.fill + Image.Design.Path.fill case .twoTone: - return Image.Design.Path.twoTone + Image.Design.Path.twoTone } } } #if os(iOS) - @MainActor - public class AppIconSettings: ObservableObject { - public var iconNames: [String?] = [nil] - @Published public var currentIndex = 0 +@MainActor +public class AppIconSettings: ObservableObject { + public var iconNames: [String?] = [nil] + @Published public var currentIndex = 0 - public init() { - getAlternateIconNames() + public init() { + getAlternateIconNames() - if let currentIcon = UIApplication.shared.alternateIconName { - currentIndex = iconNames.firstIndex(of: currentIcon) ?? 0 - } + if let currentIcon = UIApplication.shared.alternateIconName { + currentIndex = iconNames.firstIndex(of: currentIcon) ?? 0 } + } - private func getAlternateIconNames() { - if let iconCount = FeatureFlags.app.alternateAppIcons, iconCount != 0 { - for index in 1 ... iconCount { - iconNames.append("AlternateAppIcon\(index)") - } + private func getAlternateIconNames() { + if let iconCount = FeatureFlags.app.alternateAppIcons, iconCount != 0 { + for index in 1 ... iconCount { + iconNames.append("AlternateAppIcon\(index)") } } } +} #endif struct SettingsThemeView_Previews: PreviewProvider { diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift index 6a41ab4..3a16be0 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift @@ -45,27 +45,27 @@ public struct BorderSettingView: View { if theme.borderApp { VStack(spacing: Space.small.rawValue) { #if os(iOS) || os(macOS) - Surface { - VStack(spacing: Space.xxSmall.rawValue) { - HStack { - Text("Size") - .subheadline() - .foregroundColor(.onSurfacePrimary) - - Spacer() - - Text(String(format: "%.1f", theme.borderSize) + " px") - .subheadline() - .foregroundColor(.onSurfacePrimary) - } - - Slider(value: theme.$borderSize, in: 0.5 ... 2, step: 0.5) + Surface { + VStack(spacing: Space.xxSmall.rawValue) { + HStack { + Text("Size") + .subheadline() + .foregroundColor(.onSurfacePrimary) + + Spacer() + + Text(String(format: "%.1f", theme.borderSize) + " px") + .subheadline() + .foregroundColor(.onSurfacePrimary) } + + Slider(value: theme.$borderSize, in: 0.5 ... 2, step: 0.5) } - .surfaceStyle(.secondary) - .surfaceContentMargins(.small) - .padding(.horizontal, Space.medium) - .padding(.bottom, Space.xxSmall) + } + .surfaceStyle(.secondary) + .surfaceContentMargins(.small) + .padding(.horizontal, Space.medium) + .padding(.bottom, Space.xxSmall) #endif diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift index ad9c8cf..8112526 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift @@ -50,39 +50,45 @@ public struct FontSettingView: View { } private var titleSelector: some View { - GridSelect(FontDesignType.allCases, selection: theme.$fontTitle, - content: { fontStyle, _ in - HStack { - VStack(alignment: .leading, spacing: 8) { - Text("Aa") - .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) - .foregroundColor(.onSurfacePrimary) - - Text(fontStyle.rawValue.capitalizingFirstLetter()) - .font(.system(size: 16, weight: .medium, design: fontStyle.system)) - .foregroundColor(.onSurfacePrimary) - } - Spacer() - }.padding() - }).gridSelectStyle(.default(selected: .graySurface)) + GridSelect( + FontDesignType.allCases, + selection: theme.$fontTitle, + content: { fontStyle, _ in + HStack { + VStack(alignment: .leading, spacing: 8) { + Text("Aa") + .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) + .foregroundColor(.onSurfacePrimary) + + Text(fontStyle.rawValue.capitalizingFirstLetter()) + .font(.system(size: 16, weight: .medium, design: fontStyle.system)) + .foregroundColor(.onSurfacePrimary) + } + Spacer() + }.padding() + } + ).gridSelectStyle(.default(selected: .graySurface)) } private var paragraphSelector: some View { - GridSelect(FontDesignType.allCases, selection: theme.$fontParagraph, - content: { fontStyle, _ in - HStack { - VStack(alignment: .leading, spacing: 8) { - Text("Aa") - .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) - .foregroundColor(.onSurfacePrimary) - - Text(fontStyle.rawValue.capitalizingFirstLetter()) - .font(.system(size: 16, weight: .medium, design: fontStyle.system)) - .foregroundColor(.onSurfacePrimary) - } - Spacer() - }.padding() - }).gridSelectStyle(.default(selected: .graySurface)) + GridSelect( + FontDesignType.allCases, + selection: theme.$fontParagraph, + content: { fontStyle, _ in + HStack { + VStack(alignment: .leading, spacing: 8) { + Text("Aa") + .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) + .foregroundColor(.onSurfacePrimary) + + Text(fontStyle.rawValue.capitalizingFirstLetter()) + .font(.system(size: 16, weight: .medium, design: fontStyle.system)) + .foregroundColor(.onSurfacePrimary) + } + Spacer() + }.padding() + } + ).gridSelectStyle(.default(selected: .graySurface)) } private var otherSelector: some View { diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift index 1d63b74..e7129e7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift @@ -28,23 +28,23 @@ public struct RadiusSettingView: View { VStack(spacing: .zero) { VStack(spacing: Space.small.rawValue) { #if os(iOS) || os(macOS) - VStack(spacing: Space.xxSmall.rawValue) { - HStack { - Text("Size") - .subheadline() - .foregroundColor(.onSurfacePrimary) + VStack(spacing: Space.xxSmall.rawValue) { + HStack { + Text("Size") + .subheadline() + .foregroundColor(.onSurfacePrimary) - Spacer() + Spacer() - Text(String(format: "%.0f", theme.radius) + " px") - .subheadline() - .foregroundColor(.onSurfacePrimary) - } - - Slider(value: theme.$radius, in: 0 ... 12, step: 4) + Text(String(format: "%.0f", theme.radius) + " px") + .subheadline() + .foregroundColor(.onSurfacePrimary) } - .padding(.horizontal, Space.medium) - .padding(.bottom, Space.xxSmall) + + Slider(value: theme.$radius, in: 0 ... 12, step: 4) + } + .padding(.horizontal, Space.medium) + .padding(.bottom, Space.xxSmall) #endif } diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift index c0484ee..a2710de 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift @@ -35,32 +35,35 @@ public struct SetPINCodeView: View { private func stateView(state: SetPINCodeViewState) -> some View { switch state { case .oldPINField: - LockscreenView(pinCode: $viewModel.oldCodeField, - state: $viewModel.authState, - maxCount: viewModel.maxCount, - title: L10n.Security.oldPINCode, - errorText: viewModel.errorText) - { + LockscreenView( + pinCode: $viewModel.oldCodeField, + state: $viewModel.authState, + maxCount: viewModel.maxCount, + title: L10n.Security.oldPINCode, + errorText: viewModel.errorText + ) { viewModel.chekOldPINCode() } biometricAction: {} case .newPINField: - LockscreenView(pinCode: $viewModel.newPinCodeField, - state: $viewModel.authState, - maxCount: viewModel.maxCount, - title: L10n.Security.newPINCode, - errorText: viewModel.errorText) - { + LockscreenView( + pinCode: $viewModel.newPinCodeField, + state: $viewModel.authState, + maxCount: viewModel.maxCount, + title: L10n.Security.newPINCode, + errorText: viewModel.errorText + ) { viewModel.checkNewPINCode() } biometricAction: {} case .confirmNewPINField: - LockscreenView(pinCode: $viewModel.confirmNewCodeField, - state: $viewModel.authState, - maxCount: viewModel.maxCount, - title: L10n.Security.confirmPINCode, - errorText: viewModel.errorText) - { + LockscreenView( + pinCode: $viewModel.confirmNewCodeField, + state: $viewModel.authState, + maxCount: viewModel.maxCount, + title: L10n.Security.confirmPINCode, + errorText: viewModel.errorText + ) { Task { let result = await viewModel.checkConfirmNewPINCode() switch result { diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift index dc09593..6256ce7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift @@ -146,13 +146,13 @@ extension SecuritySettingsView { private var biometricImageName: String { switch biometricService.biometricType { case .none: - return "" + "" case .touchID: - return "touchid" + "touchid" case .faceID: - return "faceid" + "faceid" case .opticID: - return "opticid" + "opticid" } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift index 22fd90d..e207769 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift @@ -31,12 +31,12 @@ public struct SettingsView: View { public var body: some View { #if os(iOS) - Page(L10n.Settings.title) { - iOSSettings - }.backgroundSecondary() + Page(L10n.Settings.title) { + iOSSettings + }.backgroundSecondary() #else - macSettings + macSettings #endif } @@ -44,26 +44,26 @@ public struct SettingsView: View { // iOS Settings #if os(iOS) - extension SettingsView { - private var iOSSettings: some View { - VStack(alignment: .center, spacing: 0) { - if let stoteKit = FeatureFlags.app.storeKit { - if stoteKit { - SectionView { - PrmiumBannerRow() - } - .surfaceContentMargins(.zero) +extension SettingsView { + private var iOSSettings: some View { + VStack(alignment: .center, spacing: 0) { + if let stoteKit = FeatureFlags.app.storeKit { + if stoteKit { + SectionView { + PrmiumBannerRow() } + .surfaceContentMargins(.zero) } - Group { - app - help - about - } - .surfaceContentRowMargins() } + Group { + app + help + about + } + .surfaceContentRowMargins() } } +} #endif extension SettingsView { @@ -136,66 +136,66 @@ extension SettingsView { var apperanceSettingsIcon: Image { switch iconStyle { case .line: - return Image.Design.paintingPalette + Image.Design.paintingPalette case .fill: - return Image.Design.PaintingPalette.fill + Image.Design.PaintingPalette.fill case .twoTone: - return Image.Design.PaintingPalette.twoTone + Image.Design.PaintingPalette.twoTone } } var cloudKitIcon: Image { switch iconStyle { case .line: - return Image.Weather.cloud2 + Image.Weather.cloud2 case .fill: - return Image.Weather.Cloud.Square.fill + Image.Weather.Cloud.Square.fill case .twoTone: - return Image.Weather.Cloud.Square.twoTone + Image.Weather.Cloud.Square.twoTone } } var securityIcon: Image { switch iconStyle { case .line: - return Image.Base.lock + Image.Base.lock case .fill: - return Image.Base.Lock.fill + Image.Base.Lock.fill case .twoTone: - return Image.Base.Lock.TwoTone.fill + Image.Base.Lock.TwoTone.fill } } var soundIcon: Image { switch iconStyle { case .line: - return Image.Base.volumeUp + Image.Base.volumeUp case .fill: - return Image.Base.VolumeUp.fill + Image.Base.VolumeUp.fill case .twoTone: - return Image.Base.VolumeUp.TwoTone.fill + Image.Base.VolumeUp.TwoTone.fill } } var vibrationIcon: Image { switch iconStyle { case .line: - return Image.Mobile.vibration + Image.Mobile.vibration case .fill: - return Image.Mobile.Vibration.fill + Image.Mobile.Vibration.fill case .twoTone: - return Image.Mobile.Vibration.twoTone + Image.Mobile.Vibration.twoTone } } var notificationsIcon: Image { switch iconStyle { case .line: - return Image.Base.notification + Image.Base.notification case .fill: - return Image.Base.Notification.fill + Image.Base.Notification.fill case .twoTone: - return Image.Base.Notification.TwoTone.fill + Image.Base.Notification.TwoTone.fill } } @@ -205,7 +205,7 @@ extension SettingsView { VStack(alignment: .leading) { Row("Get help") { #if os(iOS) - router.present(.support, detents: [.medium]) + router.present(.support, detents: [.medium]) #endif } leading: { helpIcon.icon() @@ -215,7 +215,7 @@ extension SettingsView { Row("Send feedback") { #if os(iOS) - router.present(.feedback, detents: [.medium]) + router.present(.feedback, detents: [.medium]) #endif } leading: { chatIcon.icon() @@ -229,66 +229,66 @@ extension SettingsView { var heartIcon: Image { switch iconStyle { case .line: - return Image.Base.heart + Image.Base.heart case .fill: - return Image.Base.Heart.fill + Image.Base.Heart.fill case .twoTone: - return Image.Base.Heart.TwoTone.fill + Image.Base.Heart.TwoTone.fill } } var mailIcon: Image { switch iconStyle { case .line: - return Image.Base.message + Image.Base.message case .fill: - return Image.Base.Message.fill + Image.Base.Message.fill case .twoTone: - return Image.Base.Message.TwoTone.fill + Image.Base.Message.TwoTone.fill } } var chatIcon: Image { switch iconStyle { case .line: - return Image.Base.chat + Image.Base.chat case .fill: - return Image.Base.Chat.fill + Image.Base.Chat.fill case .twoTone: - return Image.Base.Chat.twoTone + Image.Base.Chat.twoTone } } var infoIcon: Image { switch iconStyle { case .line: - return Image.Base.Info.circle + Image.Base.Info.circle case .fill: - return Image.Base.Info.Circle.fill + Image.Base.Info.Circle.fill case .twoTone: - return Image.Base.Info.Circle.twoTone + Image.Base.Info.Circle.twoTone } } var oversizeIcon: Image { switch iconStyle { case .line: - return Image.Brands.oversize + Image.Brands.oversize case .fill: - return Image.Brands.Oversize.fill + Image.Brands.Oversize.fill case .twoTone: - return Image.Brands.Oversize.TwoTone.fill + Image.Brands.Oversize.TwoTone.fill } } var helpIcon: Image { switch iconStyle { case .line: - return Image.Alert.Help.circle + Image.Alert.Help.circle case .fill: - return Image.Alert.Help.Circle.fill + Image.Alert.Help.Circle.fill case .twoTone: - return Image.Alert.Help.Circle.twoTone + Image.Alert.Help.Circle.twoTone } } @@ -308,13 +308,13 @@ extension SettingsView { var soundsAndVibrationTitle: String { if FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.soundsAndVibration + L10n.Settings.soundsAndVibration } else if FeatureFlags.app.sounds.valueOrFalse, !FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.sounds + L10n.Settings.sounds } else if !FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.vibration + L10n.Settings.vibration } else { - return "" + "" } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift index 6465b3a..fa1549c 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift @@ -25,13 +25,13 @@ public struct SoundsAndVibrationsSettingsView: View { private var title: String { if FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.soundsAndVibration + L10n.Settings.soundsAndVibration } else if FeatureFlags.app.sounds.valueOrFalse, !FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.sounds + L10n.Settings.sounds } else if !FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.vibration + L10n.Settings.vibration } else { - return "" + "" } } } @@ -70,11 +70,11 @@ extension SoundsAndVibrationsSettingsView { var vibrationIcon: Image { switch iconStyle { case .line: - return Image.Mobile.vibration + Image.Mobile.vibration case .fill: - return Image.Mobile.Vibration.fill + Image.Mobile.Vibration.fill case .twoTone: - return Image.Mobile.Vibration.twoTone + Image.Mobile.Vibration.twoTone } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift index 6a42b66..b8042c3 100644 --- a/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift @@ -48,9 +48,10 @@ extension iCloudSettingsView { if FeatureFlags.secure.CVVCodes.valueOrFalse { Switch(isOn: $settingsService.cloudKitCVVEnabled) { - Row(L10n.Security.iCloudSyncCVVDescriptionCloudKit, - subtitle: settingsService.cloudKitCVVEnabled ? L10n.Security.iCloudSyncCVVDescriptionCloudKit : L10n.Security.iCloudSyncCVVDescriptionLocal) - { + Row( + L10n.Security.iCloudSyncCVVDescriptionCloudKit, + subtitle: settingsService.cloudKitCVVEnabled ? L10n.Security.iCloudSyncCVVDescriptionCloudKit : L10n.Security.iCloudSyncCVVDescriptionLocal + ) { Image.Security.cloudLock .icon() .frame(width: 24, height: 24) diff --git a/Sources/OversizeKit/StateKit/LoadingViewState.swift b/Sources/OversizeKit/StateKit/LoadingViewState.swift index 05176b8..4ae0315 100644 --- a/Sources/OversizeKit/StateKit/LoadingViewState.swift +++ b/Sources/OversizeKit/StateKit/LoadingViewState.swift @@ -17,33 +17,42 @@ public extension LoadingViewState { var isLoading: Bool { switch self { case .loading, .idle: - return true + true default: - return false + false } } var result: Result? { switch self { case let .result(result): - return result + result default: - return nil + nil + } + } + + var error: AppError? { + switch self { + case let .error(error): + error + default: + nil } } static func == (lhs: LoadingViewState, rhs: LoadingViewState) -> Bool { switch (lhs, rhs) { case (.idle, .idle): - return true + true case (.loading, .loading): - return true + true case (.result, .result): - return true + true case (.error, .error): - return true + true default: - return false + false } } } diff --git a/Sources/OversizeKit/StateKit/ResultExtension.swift b/Sources/OversizeKit/StateKit/ResultExtension.swift new file mode 100644 index 0000000..e3423e7 --- /dev/null +++ b/Sources/OversizeKit/StateKit/ResultExtension.swift @@ -0,0 +1,34 @@ +// +// Copyright © 2024 Alexander Romanov +// File.swift, created on 27.11.2024 +// + +import Foundation +import OversizeModels + +public extension Result { + var failureError: Failure? { + switch self { + case let .failure(error): error + case .success: nil + } + } + + var successResult: Success? { + switch self { + case .failure: nil + case let .success(value): value + } + } +} + +public extension Result { + var isFailure: Bool { !isSuccess } + + var isSuccess: Bool { + switch self { + case .failure: false + case .success: true + } + } +} diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductView.swift index 96e6aed..ef6de0f 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductView.swift @@ -6,35 +6,35 @@ import SwiftUI #if os(iOS) - public struct AppStoreProductViewControllerRepresentable: UIViewControllerRepresentable { - public typealias UIViewControllerType = AppStoreProductViewController +public struct AppStoreProductViewControllerRepresentable: UIViewControllerRepresentable { + public typealias UIViewControllerType = AppStoreProductViewController - private var isPresentStoreProduct: Binding - private let appId: String + private var isPresentStoreProduct: Binding + private let appId: String - public init(isPresentStoreProduct: Binding, appId: String) { - self.isPresentStoreProduct = isPresentStoreProduct - self.appId = appId - } + public init(isPresentStoreProduct: Binding, appId: String) { + self.isPresentStoreProduct = isPresentStoreProduct + self.appId = appId + } - public func makeUIViewController(context _: Context) -> UIViewControllerType { - let viewController = AppStoreProductViewController(isPresentStoreProduct: isPresentStoreProduct, appId: appId) - return viewController - } + public func makeUIViewController(context _: Context) -> UIViewControllerType { + let viewController = AppStoreProductViewController(isPresentStoreProduct: isPresentStoreProduct, appId: appId) + return viewController + } - public func updateUIViewController(_ uiViewController: UIViewControllerType, context _: Context) { - if isPresentStoreProduct.wrappedValue { - uiViewController.presentStoreProduct() - } + public func updateUIViewController(_ uiViewController: UIViewControllerType, context _: Context) { + if isPresentStoreProduct.wrappedValue { + uiViewController.presentStoreProduct() } } +} - public extension View { - func appStoreOverlay(isPresent: Binding, appId: String) -> some View { - background { - AppStoreProductViewControllerRepresentable(isPresentStoreProduct: isPresent, appId: appId) - .frame(width: 0, height: 0) - } +public extension View { + func appStoreOverlay(isPresent: Binding, appId: String) -> some View { + background { + AppStoreProductViewControllerRepresentable(isPresentStoreProduct: isPresent, appId: appId) + .frame(width: 0, height: 0) } } +} #endif diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift index 1928817..5b63ee2 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift @@ -4,62 +4,62 @@ // #if os(iOS) - import StoreKit - import SwiftUI - import UIKit +import StoreKit +import SwiftUI +import UIKit - public class AppStoreProductViewController: UIViewController { - private var isPresentStoreProduct: Binding - private let appId: String +public class AppStoreProductViewController: UIViewController { + private var isPresentStoreProduct: Binding + private let appId: String - public init(isPresentStoreProduct: Binding, appId: String) { - self.isPresentStoreProduct = isPresentStoreProduct - self.appId = appId + public init(isPresentStoreProduct: Binding, appId: String) { + self.isPresentStoreProduct = isPresentStoreProduct + self.appId = appId - super.init(nibName: nil, bundle: nil) - } + super.init(nibName: nil, bundle: nil) + } - @available(*, unavailable) - required init?(coder _: NSCoder) { - fatalError("init(coder:) has not been implemented") - } + @available(*, unavailable) + required init?(coder _: NSCoder) { + fatalError("init(coder:) has not been implemented") + } - override public func viewDidLoad() { - super.viewDidLoad() - } + override public func viewDidLoad() { + super.viewDidLoad() + } - override public func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - } + override public func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + } - override public func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - } + override public func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + } - func presentStoreProduct() { - let storeProductViewController = SKStoreProductViewController() - storeProductViewController.delegate = self + func presentStoreProduct() { + let storeProductViewController = SKStoreProductViewController() + storeProductViewController.delegate = self - let parameters = [SKStoreProductParameterITunesItemIdentifier: appId] - storeProductViewController.loadProduct(withParameters: parameters) { status, error in - if status { - self.present(storeProductViewController, animated: true, completion: nil) - } else { - if let error { - print("Error: \(error.localizedDescription)") - } + let parameters = [SKStoreProductParameterITunesItemIdentifier: appId] + storeProductViewController.loadProduct(withParameters: parameters) { status, error in + if status { + self.present(storeProductViewController, animated: true, completion: nil) + } else { + if let error { + print("Error: \(error.localizedDescription)") } } + } - DispatchQueue.main.async { - self.isPresentStoreProduct.wrappedValue = false - } + DispatchQueue.main.async { + self.isPresentStoreProduct.wrappedValue = false } } +} - extension AppStoreProductViewController: @preconcurrency SKStoreProductViewControllerDelegate { - public func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) { - viewController.dismiss(animated: true) - } +extension AppStoreProductViewController: @preconcurrency SKStoreProductViewControllerDelegate { + public func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) { + viewController.dismiss(animated: true) } +} #endif diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift index b579acd..3a86e4e 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift @@ -26,49 +26,49 @@ public struct StoreInstuctinsView: View { public var body: some View { ScrollViewReader { value in #if os(iOS) - PageView { offset = $0 } content: { - Group { - switch viewModel.state { - case .initial, .loading: - contentPlaceholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) - } + PageView { offset = $0 } content: { + Group { + switch viewModel.state { + case .initial, .loading: + contentPlaceholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) } - .paddingContent(.horizontal) - } - .backgroundLinerGradient(LinearGradient(colors: [.backgroundPrimary, .backgroundSecondary], startPoint: .top, endPoint: .center)) - .titleLabel { - PremiumLabel(image: Resource.Store.zap, text: Info.store.subscriptionsName, size: .medium) - } - .trailingBar { - BarButton(.close) } - .bottomToolbar(style: .none) { - VStack(spacing: .zero) { - StorePaymentButtonBar(trialNotification: true) { - isShowAllPlans = true - DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { - withAnimation { - value.scrollTo(10, anchor: .top) - } + .paddingContent(.horizontal) + } + .backgroundLinerGradient(LinearGradient(colors: [.backgroundPrimary, .backgroundSecondary], startPoint: .top, endPoint: .center)) + .titleLabel { + PremiumLabel(image: Resource.Store.zap, text: Info.store.subscriptionsName, size: .medium) + } + .trailingBar { + BarButton(.close) + } + .bottomToolbar(style: .none) { + VStack(spacing: .zero) { + StorePaymentButtonBar(trialNotification: true) { + isShowAllPlans = true + DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { + withAnimation { + value.scrollTo(10, anchor: .top) } } - .environmentObject(viewModel) - } - } - .onChange(of: isPremium) { _, status in - if status { - dismiss() } + .environmentObject(viewModel) } - .task { - await viewModel.fetchData() + } + .onChange(of: isPremium) { _, status in + if status { + dismiss() } + } + .task { + await viewModel.fetchData() + } #else - EmptyView() + EmptyView() #endif } } @@ -196,28 +196,36 @@ public struct StoreInstuctinsView: View { .padding(.small) .background { Circle() - .fill(LinearGradient(gradient: Gradient( + .fill(LinearGradient( + gradient: Gradient( colors: [Color(hex: "EAAB44"), Color(hex: "D24A44"), Color(hex: "9C5BA2"), Color(hex: "4B5B94")]), - startPoint: .topLeading, endPoint: .bottomTrailing)) + startPoint: .topLeading, + endPoint: .bottomTrailing + )) } - TextBox(title: "Today: Get welcome offer", - subtitle: "Unlock all access to functions", - spacing: .xxxSmall) - .textBoxSize(.small) - .padding(.top, 6) + TextBox( + title: "Today: Get welcome offer", + subtitle: "Unlock all access to functions", + spacing: .xxxSmall + ) + .textBoxSize(.small) + .padding(.top, 6) } HStack { Capsule() - .fill(LinearGradient(gradient: Gradient( + .fill(LinearGradient( + gradient: Gradient( colors: [Color(hex: "EAAB44"), Color(hex: "D24A44"), Color(hex: "9C5BA2")]), - startPoint: .topLeading, endPoint: .trailing)) + startPoint: .topLeading, + endPoint: .trailing + )) .frame(width: 4, height: 15) .padding(.vertical, .xxxSmall) .padding(.leading, .medium) @@ -234,11 +242,13 @@ public struct StoreInstuctinsView: View { .shadowElevaton(.z2) } - TextBox(title: "Day 5", - subtitle: "Get a reminder about when your trial", - spacing: .xxxSmall) - .textBoxSize(.small) - .padding(.top, 6) + TextBox( + title: "Day 5", + subtitle: "Get a reminder about when your trial", + spacing: .xxxSmall + ) + .textBoxSize(.small) + .padding(.top, 6) } HStack { @@ -260,11 +270,13 @@ public struct StoreInstuctinsView: View { .shadowElevaton(.z2) } - TextBox(title: "Day 7", - subtitle: "Tou will be charged on this day, cancel anytime beforel", - spacing: .xxxSmall) - .textBoxSize(.small) - .padding(.top, 6) + TextBox( + title: "Day 7", + subtitle: "Tou will be charged on this day, cancel anytime beforel", + spacing: .xxxSmall + ) + .textBoxSize(.small) + .padding(.top, 6) } } .frame(maxWidth: .infinity) diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift index e2c0f39..57107e3 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift @@ -35,24 +35,24 @@ public struct StoreSpecialOfferView: View { public var body: some View { #if os(iOS) - Group { - if #available(iOS 16.0, *) { - newPage - } else { - oldPage - } + Group { + if #available(iOS 16.0, *) { + newPage + } else { + oldPage } + } - .onChange(of: isPremium) { _, status in - if status { - dismiss() - } - } - .task { - await viewModel.fetchData() + .onChange(of: isPremium) { _, status in + if status { + dismiss() } + } + .task { + await viewModel.fetchData() + } #else - EmptyView() + EmptyView() #endif } @@ -169,11 +169,11 @@ public struct StoreSpecialOfferView: View { var imageSize: CGFloat { if screenSize.height > 830 { - return 200 + 200 } else if screenSize.height > 700 { - return 160 + 160 } else { - return 64 + 64 } } @@ -314,33 +314,33 @@ public struct StoreSpecialOfferView: View { var badgeText: String { if let badge = event.badge { - return textPrepere(badge) + textPrepere(badge) } else { - return "" + "" } } var headline: String { if let headline = event.headline { - return textPrepere(headline) + textPrepere(headline) } else { - return "" + "" } } var titleColor: Color { if let accentColor = event.accentColor { - return Color(hex: accentColor) + Color(hex: accentColor) } else { - return Color.onBackgroundPrimary + Color.onBackgroundPrimary } } var description: String { if let description = event.description { - return textPrepere(description) + textPrepere(description) } else { - return "" + "" } } diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift index 861a886..03faf0e 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift @@ -13,32 +13,32 @@ import OversizeUI import SwiftUI #if os(iOS) - public struct StoreView: View { - @StateObject private var viewModel: StoreViewModel - @Environment(\.presentationMode) private var presentationMode - @Environment(\.verticalSizeClass) private var verticalSizeClass - @Environment(\.isPortrait) private var isPortrait - private var isClosable = true - @State var isShowFireworks = false - - public init() { - _viewModel = StateObject(wrappedValue: StoreViewModel()) - } +public struct StoreView: View { + @StateObject private var viewModel: StoreViewModel + @Environment(\.presentationMode) private var presentationMode + @Environment(\.verticalSizeClass) private var verticalSizeClass + @Environment(\.isPortrait) private var isPortrait + private var isClosable = true + @State var isShowFireworks = false + + public init() { + _viewModel = StateObject(wrappedValue: StoreViewModel()) + } - public var body: some View { - Page { - Group { - switch viewModel.state { - case .initial, .loading: - contentPlaceholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) - } + public var body: some View { + Page { + Group { + switch viewModel.state { + case .initial, .loading: + contentPlaceholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) } - .paddingContent(.horizontal) } + .paddingContent(.horizontal) + } // .backgroundLinerGradient(LinearGradient(colors: [.backgroundPrimary, .backgroundSecondary], startPoint: .top, endPoint: .center)) // .titleLabel { // PremiumLabel(image: Resource.Store.zap, text: Info.store.subscriptionsName, size: .medium) @@ -55,131 +55,131 @@ import SwiftUI // BarButton(.close) // } // } - .bottomToolbar(style: .none) { - if !viewModel.isPremium { - StorePaymentButtonBar() - .environmentObject(viewModel) - } - } - .overlay { - if isShowFireworks { - Fireworks() - } + .bottomToolbar(style: .none) { + if !viewModel.isPremium { + StorePaymentButtonBar() + .environmentObject(viewModel) } - .task { - await viewModel.fetchData() + } + .overlay { + if isShowFireworks { + Fireworks() } } + .task { + await viewModel.fetchData() + } + } - var titleText: String { - if viewModel.isPremium { - return "You are all set!" - } else { - return "Upgrade to \(Info.store.subscriptionsName)" - } + var titleText: String { + if viewModel.isPremium { + "You are all set!" + } else { + "Upgrade to \(Info.store.subscriptionsName)" } + } - var subtitleText: String { - if viewModel.isPremium { - return "Thank you for use to \(Info.store.subscriptionsName).\nHere's what is now unlocked." - } else { - return "Remove ads and unlock all features" - } + var subtitleText: String { + if viewModel.isPremium { + "Thank you for use to \(Info.store.subscriptionsName).\nHere's what is now unlocked." + } else { + "Remove ads and unlock all features" } + } - @ViewBuilder - private func contentPlaceholder() -> some View { - VStack(spacing: .medium) { - VStack(spacing: .xxSmall) { - Text(titleText) - .title() - .foregroundColor(.onSurfacePrimary) - - Text(subtitleText) - .headline() - .foregroundColor(.onSurfaceSecondary) - } - .multilineTextAlignment(.center) + @ViewBuilder + private func contentPlaceholder() -> some View { + VStack(spacing: .medium) { + VStack(spacing: .xxSmall) { + Text(titleText) + .title() + .foregroundColor(.onSurfacePrimary) + + Text(subtitleText) + .headline() + .foregroundColor(.onSurfaceSecondary) + } + .multilineTextAlignment(.center) - HStack(spacing: .xSmall) { - ForEach(0 ..< 3, id: \.self) { _ in - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - .frame(height: 180) - } + HStack(spacing: .xSmall) { + ForEach(0 ..< 3, id: \.self) { _ in + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + .frame(height: 180) } - - StoreFeaturesView() - .environmentObject(viewModel) } + + StoreFeaturesView() + .environmentObject(viewModel) } + } - @ViewBuilder - private func content(data: StoreKitProducts) -> some View { - VStack(spacing: .medium) { - VStack(spacing: .xxSmall) { - Text(titleText) - .title() - .foregroundColor(.onSurfacePrimary) - - Text(subtitleText) - .headline() - .foregroundColor(.onSurfaceSecondary) - } - .multilineTextAlignment(.center) - - if !viewModel.isPremium { - HStack(spacing: .xSmall) { - ForEach(viewModel.availableSubscriptions /* data.autoRenewable */ ) { product in - if !product.isOffer { - StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { - viewModel.selectedProduct = product - } - .storeProductStyle(.collumn) - } - } - ForEach(data.nonConsumable) { product in + @ViewBuilder + private func content(data: StoreKitProducts) -> some View { + VStack(spacing: .medium) { + VStack(spacing: .xxSmall) { + Text(titleText) + .title() + .foregroundColor(.onSurfacePrimary) + + Text(subtitleText) + .headline() + .foregroundColor(.onSurfaceSecondary) + } + .multilineTextAlignment(.center) + + if !viewModel.isPremium { + HStack(spacing: .xSmall) { + ForEach(viewModel.availableSubscriptions /* data.autoRenewable */ ) { product in + if !product.isOffer { StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { viewModel.selectedProduct = product } .storeProductStyle(.collumn) } } + ForEach(data.nonConsumable) { product in + StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { + viewModel.selectedProduct = product + } + .storeProductStyle(.collumn) + } } + } - StoreFeaturesView() - .environmentObject(viewModel) + StoreFeaturesView() + .environmentObject(viewModel) - SubscriptionPrivacyView(products: data) + SubscriptionPrivacyView(products: data) - if !viewModel.isPremium { - productsLust(data: data) - .padding(.bottom, 170) - } + if !viewModel.isPremium { + productsLust(data: data) + .padding(.bottom, 170) } - .onAppear { - Task { - // When this view appears, get the latest subscription status. - await viewModel.updateSubscriptionStatus(products: data) - } + } + .onAppear { + Task { + // When this view appears, get the latest subscription status. + await viewModel.updateSubscriptionStatus(products: data) } - .onChange(of: data.purchasedAutoRenewable) { _, _ in - Task { - // When `purchasedSubscriptions` changes, get the latest subscription status. - await viewModel.updateSubscriptionStatus(products: data) - } + } + .onChange(of: data.purchasedAutoRenewable) { _, _ in + Task { + // When `purchasedSubscriptions` changes, get the latest subscription status. + await viewModel.updateSubscriptionStatus(products: data) } - .onChange(of: viewModel.isPremium) { _, status in - isShowFireworks = status - DispatchQueue.main.asyncAfter(deadline: .now() + 30) { - isShowFireworks = false - } + } + .onChange(of: viewModel.isPremium) { _, status in + isShowFireworks = status + DispatchQueue.main.asyncAfter(deadline: .now() + 30) { + isShowFireworks = false } } + } - @ViewBuilder - private func productsLust(data: StoreKitProducts) -> some View { - VStack(spacing: .small) { + @ViewBuilder + private func productsLust(data: StoreKitProducts) -> some View { + VStack(spacing: .small) { // VStack { // if let currentSubscription = viewModel.currentSubscription { // VStack { @@ -195,47 +195,47 @@ import SwiftUI // } // } - ForEach(viewModel.availableSubscriptions /* data.autoRenewable */ ) { product in - if !product.isOffer { - StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { - viewModel.selectedProduct = product - } - } - } - ForEach(data.nonConsumable) { product in + ForEach(viewModel.availableSubscriptions /* data.autoRenewable */ ) { product in + if !product.isOffer { StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { viewModel.selectedProduct = product + } + } + } + ForEach(data.nonConsumable) { product in + StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { + viewModel.selectedProduct = product // Task { // await viewModel.buy(product: product) // } - } } } } + } - public func closable(_ isClosable: Bool = true) -> StoreView { - var control = self - control.isClosable = isClosable - return control - } + public func closable(_ isClosable: Bool = true) -> StoreView { + var control = self + control.isClosable = isClosable + return control } +} - struct StoreView_Previews: PreviewProvider { - static var previews: some View { - StoreView() - } +struct StoreView_Previews: PreviewProvider { + static var previews: some View { + StoreView() } +} #else - public struct StoreView: View { - public init() {} +public struct StoreView: View { + public init() {} - public var body: some View { - Text("Store") - } + public var body: some View { + Text("Store") + } - public func closable(_: Bool = true) -> StoreView { - let control = self - return control - } + public func closable(_: Bool = true) -> StoreView { + let control = self + return control } +} #endif diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift index 346fe95..d5c7758 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift @@ -24,7 +24,7 @@ public class StoreViewModel: ObservableObject { @Injected(\.storeKitService) var storeKitService: StoreKitService #if !os(tvOS) - @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol + @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol #endif @Published var state = State.initial @@ -44,9 +44,9 @@ public class StoreViewModel: ObservableObject { var availableSubscriptions: [Product] { if case let .result(products) = state { - return products.autoRenewable.filter { $0.id != currentSubscription?.id } + products.autoRenewable.filter { $0.id != currentSubscription?.id } } else { - return [] + [] } } @@ -132,9 +132,9 @@ extension StoreViewModel { var isHaveSale: Bool { if monthSubscriptionProduct != nil, yearSubscriptionProduct != nil { - return true + true } else { - return false + false } } @@ -305,23 +305,23 @@ extension StoreViewModel { func addTrialNotification(product: Product) async { #if !os(tvOS) - if product.type == .autoRenewable, product.subscription?.introductoryOffer != nil { - do { - try await localNotificationService.requestAuthorization() - if let trialDaysCount = product.trialDaysCount { - let timeInterval = TimeInterval((trialDaysCount - 2) * 24 * 60 * 60) - let notificationTime = Date().addingTimeInterval(timeInterval) - let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) - await localNotificationService.schedule(localNotification: .init( - id: UUID(), - title: "Trial ends soon", - body: "Subscription ends in 2 days", - dateComponents: dateComponents, - repeats: false - )) - } - } catch {} - } + if product.type == .autoRenewable, product.subscription?.introductoryOffer != nil { + do { + try await localNotificationService.requestAuthorization() + if let trialDaysCount = product.trialDaysCount { + let timeInterval = TimeInterval((trialDaysCount - 2) * 24 * 60 * 60) + let notificationTime = Date().addingTimeInterval(timeInterval) + let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) + await localNotificationService.schedule(localNotification: .init( + id: UUID(), + title: "Trial ends soon", + body: "Subscription ends in 2 days", + dateComponents: dateComponents, + repeats: false + )) + } + } catch {} + } #endif } } diff --git a/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift b/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift index 7fa7602..798332b 100644 --- a/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift +++ b/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift @@ -30,10 +30,12 @@ public struct PremiumBlockOverlay: ViewModifier { ZStack { content - LinearGradient(colors: [.surfacePrimary.opacity(0), .surfacePrimary, .surfacePrimary], - startPoint: .top, - endPoint: .bottom) - .ignoresSafeArea() + LinearGradient( + colors: [.surfacePrimary.opacity(0), .surfacePrimary, .surfacePrimary], + startPoint: .top, + endPoint: .bottom + ) + .ignoresSafeArea() VStack(spacing: .xxSmall) { VStack(spacing: .xxSmall) { diff --git a/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift b/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift index 9e71cad..1ca74d8 100644 --- a/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift +++ b/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift @@ -36,7 +36,7 @@ public struct PaymentButtonStyle: ButtonStyle { @Environment(\.controlBorderShape) var controlBorderShape: ControlBorderShape @Environment(\.isBordered) var isBordered: Bool #if !os(tvOS) - @Environment(\.controlSize) var controlSize: ControlSize + @Environment(\.controlSize) var controlSize: ControlSize #endif private let isInfinityWidth: Bool? @@ -84,39 +84,39 @@ public struct PaymentButtonStyle: ButtonStyle { private var horizontalPadding: Space { #if os(tvOS) - return .medium + return .medium #else - switch controlSize { - case .mini: - return .xxSmall - case .small: - return .small - case .regular: - return .small - case .large, .extraLarge: - return .medium - @unknown default: - return .zero - } + switch controlSize { + case .mini: + return .xxSmall + case .small: + return .small + case .regular: + return .small + case .large, .extraLarge: + return .medium + @unknown default: + return .zero + } #endif } private var verticalPadding: Space { #if os(tvOS) - return .medium + return .medium #else - switch controlSize { - case .mini: - return .xxSmall - case .small: - return .xxSmall - case .regular: - return .small - case .large, .extraLarge: - return .medium - @unknown default: - return .zero - } + switch controlSize { + case .mini: + return .xxSmall + case .small: + return .xxSmall + case .regular: + return .small + case .large, .extraLarge: + return .medium + @unknown default: + return .zero + } #endif } @@ -130,15 +130,15 @@ public struct PaymentButtonStyle: ButtonStyle { private var maxWidth: CGFloat? { #if os(tvOS) - return nil + return nil #else - if isInfinityWidth == nil, controlSize == .regular { - return .infinity - } else if let infinity = isInfinityWidth, infinity == true { - return .infinity - } else { - return nil - } + if isInfinityWidth == nil, controlSize == .regular { + return .infinity + } else if let infinity = isInfinityWidth, infinity == true { + return .infinity + } else { + return nil + } #endif } } diff --git a/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift b/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift index 7818f76..126a327 100644 --- a/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift +++ b/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift @@ -44,25 +44,28 @@ public struct PrmiumBannerRow: View { HStack(spacing: Space.small) { HStack { #if os(iOS) - Resource.Store.zap - .padding(.horizontal, Space.xxSmall) - .padding(.vertical, Space.xxSmall) + Resource.Store.zap + .padding(.horizontal, Space.xxSmall) + .padding(.vertical, Space.xxSmall) #endif #if os(macOS) - Resource.Store.zap - .padding(.horizontal, Space.xxSmall) - .padding(.vertical, Space.xxSmall) + Resource.Store.zap + .padding(.horizontal, Space.xxSmall) + .padding(.vertical, Space.xxSmall) #endif } .background( RoundedRectangle(cornerRadius: Radius.medium.rawValue, style: .continuous) - .fill(LinearGradient(gradient: Gradient( + .fill(LinearGradient( + gradient: Gradient( colors: [Color(hex: "EAAB44"), Color(hex: "D24A44"), Color(hex: "9C5BA2"), Color(hex: "4B5B94")]), - startPoint: .topLeading, endPoint: .bottomTrailing)) + startPoint: .topLeading, + endPoint: .bottomTrailing + )) ) Text(Info.store.subscriptionsName) @@ -99,12 +102,12 @@ public extension PrmiumBannerRow { HStack { HStack(alignment: .center, spacing: Space.xxSmall) { #if os(iOS) - Resource.Store.zap - .colorMultiply(Color(hex: "B75375")) + Resource.Store.zap + .colorMultiply(Color(hex: "B75375")) #endif #if os(macOS) - Resource.Store.zap + Resource.Store.zap #endif Text(Info.store.subscriptionsName) @@ -136,12 +139,15 @@ public extension PrmiumBannerRow { .padding(.vertical, Space.large) .background( RoundedRectangle(cornerRadius: Radius.medium.rawValue, style: .continuous) - .fill(LinearGradient(gradient: Gradient( + .fill(LinearGradient( + gradient: Gradient( colors: [Color(hex: "EAAB44"), Color(hex: "D24A44"), Color(hex: "9C5BA2"), Color(hex: "4B5B94")]), - startPoint: .topLeading, endPoint: .bottomTrailing))) + startPoint: .topLeading, + endPoint: .bottomTrailing + ))) } } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift index d192629..7cab4b5 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift @@ -25,38 +25,38 @@ public struct StoreFeatureDetailView: View { public var body: some View { GeometryReader { geometry in #if os(iOS) - VStack(spacing: .zero) { - TabView(selection: $selection) { - ForEach(Info.store.features) { feature in - fetureItem(feature, geometry: geometry) - .padding(.bottom, isPremium ? .large : .zero) - .tag(feature) - } + VStack(spacing: .zero) { + TabView(selection: $selection) { + ForEach(Info.store.features) { feature in + fetureItem(feature, geometry: geometry) + .padding(.bottom, isPremium ? .large : .zero) + .tag(feature) } - .tabViewStyle(.page(indexDisplayMode: isPremium ? .always : .never)) - .indexViewStyle(.page(backgroundDisplayMode: isPremium ? .always : .never)) + } + .tabViewStyle(.page(indexDisplayMode: isPremium ? .always : .never)) + .indexViewStyle(.page(backgroundDisplayMode: isPremium ? .always : .never)) - if !isPremium { - StorePaymentButtonBar() - .environmentObject(viewModel) - } + if !isPremium { + StorePaymentButtonBar() + .environmentObject(viewModel) } - .overlay(alignment: .topTrailing) { - Button { - dismiss() - } label: { - IconDeprecated( - .xMini, - color: selection.screenURL != nil ? .onPrimary : .onSurfaceTertiary - ) - .padding(.xxSmall) - .background { - Circle() - .fill(.ultraThinMaterial) - } - .padding(.small) + } + .overlay(alignment: .topTrailing) { + Button { + dismiss() + } label: { + IconDeprecated( + .xMini, + color: selection.screenURL != nil ? .onPrimary : .onSurfaceTertiary + ) + .padding(.xxSmall) + .background { + Circle() + .fill(.ultraThinMaterial) } + .padding(.small) } + } #endif } } @@ -85,10 +85,12 @@ public struct StoreFeatureDetailView: View { if let urlString = feature.screenURL, let url = URL(string: urlString) { ScreenMockup(url: url) .frame(maxWidth: 60 + (geometry.size.height * 0.2)) - .padding(feature.topScreenAlignment ?? true ? .top : .bottom, - feature.topScreenAlignment ?? true - ? (geometry.size.height * 0.1) - 24 - : (geometry.size.height * 0.1) + 12) + .padding( + feature.topScreenAlignment ?? true ? .top : .bottom, + feature.topScreenAlignment ?? true + ? (geometry.size.height * 0.1) - 24 + : (geometry.size.height * 0.1) + 12 + ) } } } @@ -159,9 +161,9 @@ public struct StoreFeatureDetailView: View { func backgroundColor(feature: PlistConfiguration.Store.StoreFeature) -> Color { if let color = feature.backgroundColor { - return Color(hex: color) + Color(hex: color) } else { - return Color.accent + Color.accent } } } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift index 3b20f80..6096fa1 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift @@ -31,10 +31,12 @@ struct StoreFeaturesLargeView: View { VStack(spacing: .zero) { RoundedRectangle(cornerRadius: .medium, style: .continuous) .fill( - LinearGradient(gradient: Gradient(colors: [Color(hex: feature.backgroundColor != nil ? feature.backgroundColor : "637DFA"), - Color(hex: feature.backgroundColor != nil ? feature.backgroundColor : "872BFF")]), - startPoint: .topLeading, - endPoint: .bottomTrailing) + LinearGradient( + gradient: Gradient(colors: [Color(hex: feature.backgroundColor != nil ? feature.backgroundColor : "637DFA"), + Color(hex: feature.backgroundColor != nil ? feature.backgroundColor : "872BFF")]), + startPoint: .topLeading, + endPoint: .bottomTrailing + ) ) .frame(height: 310) .overlay(alignment: feature.topScreenAlignment ?? true ? .top : .bottom) { @@ -44,8 +46,10 @@ struct StoreFeaturesLargeView: View { if let urlString = feature.screenURL, let url = URL(string: urlString) { ScreenMockup(url: url) .frame(maxWidth: 204) - .padding(feature.topScreenAlignment ?? true ? .top : .bottom, - feature.topScreenAlignment ?? true ? 40 : 70) + .padding( + feature.topScreenAlignment ?? true ? .top : .bottom, + feature.topScreenAlignment ?? true ? 40 : 70 + ) } } } @@ -131,9 +135,9 @@ struct StoreFeaturesLargeView: View { func backgroundColor(feature: PlistConfiguration.Store.StoreFeature) -> Color { if let color = feature.backgroundColor { - return Color(hex: color) + Color(hex: color) } else { - return Color.accent + Color.accent } } } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift index c20fc1a..a9bffd3 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift @@ -54,9 +54,9 @@ struct StoreFeaturesView: View { func backgroundColor(feature: PlistConfiguration.Store.StoreFeature) -> Color { if let color = feature.backgroundColor { - return Color(hex: color) + Color(hex: color) } else { - return Color.accent + Color.accent } } } diff --git a/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift b/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift index 42ad0df..b8619cf 100644 --- a/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift +++ b/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift @@ -65,14 +65,14 @@ struct StorePaymentButtonBar: View { var backgroundView: some View { Group { #if os(iOS) - RoundedRectangle(cornerRadius: 16, style: .continuous) - .fill(.ultraThinMaterial) - .overlay { - RoundedRectangle(cornerRadius: 16, style: .continuous) - .strokeBorder(Color.black.opacity(0.05), lineWidth: 0.5) - } + RoundedRectangle(cornerRadius: 16, style: .continuous) + .fill(.ultraThinMaterial) + .overlay { + RoundedRectangle(cornerRadius: 16, style: .continuous) + .strokeBorder(Color.black.opacity(0.05), lineWidth: 0.5) + } #else - EmptyView() + EmptyView() #endif } } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift b/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift index a10a81c..580f472 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift @@ -29,9 +29,9 @@ public struct StoreProductView: View { var isHaveIntroductoryOffer: Bool { if product.type == .autoRenewable, product.subscription?.introductoryOffer != nil { - return true + true } else { - return false + false } } @@ -41,9 +41,9 @@ public struct StoreProductView: View { var isHaveSale: Bool { if monthSubscriptionProduct != nil, product.subscription?.subscriptionPeriod.unit == .year { - return true + true } else { - return false + false } } @@ -271,22 +271,22 @@ public struct StoreProductView: View { .padding(.vertical, .xxSmall) #if os(iOS) - if isHaveSale, !isPurchased { - Text("Save " + saleProcent + "%") - .caption2(.bold) - .foregroundColor(.onPrimary) - .padding(.vertical, .xxxSmall) - .frame(maxWidth: .infinity) - .background { - RoundedRectangle(cornerRadius: 2, style: .continuous) - .fill(Color.success) - .cornerRadius(8, corners: [.bottomLeft, .bottomRight]) - } - .padding(.horizontal, 2) - .padding(.bottom, 2) - } + if isHaveSale, !isPurchased { + Text("Save " + saleProcent + "%") + .caption2(.bold) + .foregroundColor(.onPrimary) + .padding(.vertical, .xxxSmall) + .frame(maxWidth: .infinity) + .background { + RoundedRectangle(cornerRadius: 2, style: .continuous) + .fill(Color.success) + .cornerRadius(8, corners: [.bottomLeft, .bottomRight]) + } + .padding(.horizontal, 2) + .padding(.bottom, 2) + } #else - EmptyView() + EmptyView() #endif } .frame(maxHeight: .infinity) @@ -322,23 +322,23 @@ public struct StoreProductView: View { var labelBackground: some View { Group { #if os(iOS) - if isHaveIntroductoryOffer, type == .row { - RoundedRectangle(cornerRadius: 4, style: .continuous) - .fill(Color.surfacePrimary) - .cornerRadius(10, corners: [.bottomLeft, .bottomRight]) - } else { - RoundedRectangle(cornerRadius: 10, style: .continuous) - .fill(Color.surfacePrimary) - .overlay { - if type == .collumn, !isSelected { - RoundedRectangle(cornerRadius: 12, style: .continuous) - .strokeBorder(Color.backgroundTertiary, lineWidth: 2) - .padding(-2) - } + if isHaveIntroductoryOffer, type == .row { + RoundedRectangle(cornerRadius: 4, style: .continuous) + .fill(Color.surfacePrimary) + .cornerRadius(10, corners: [.bottomLeft, .bottomRight]) + } else { + RoundedRectangle(cornerRadius: 10, style: .continuous) + .fill(Color.surfacePrimary) + .overlay { + if type == .collumn, !isSelected { + RoundedRectangle(cornerRadius: 12, style: .continuous) + .strokeBorder(Color.backgroundTertiary, lineWidth: 2) + .padding(-2) } - } + } + } #else - EmptyView() + EmptyView() #endif } } @@ -354,50 +354,50 @@ public struct StoreProductView: View { var backgroundStrokeBorderColor: Color { if isPurchased { - return .success + .success } else if isSelected { - return Palette.blue.color + Palette.blue.color } else { switch type { case .row: - return .backgroundTertiary + .backgroundTertiary case .collumn: - return .surfaceSecondary + .surfaceSecondary } } } var topLabelbackgroundColor: Color { if isPurchased { - return .success + .success } else if isSelected { - return Palette.blue.color + Palette.blue.color } else { - return .surfaceSecondary + .surfaceSecondary } } var topLabelForegroundColor: Color { if isPurchased || isSelected { - return .onPrimary + .onPrimary } else { - return Palette.violet.color + Palette.violet.color } } var descriptionForegroundColor: Color { if isPurchased || product.type != .autoRenewable { - return .onSurfaceSecondary + .onSurfaceSecondary } else { - return .warning + .warning } } var descriptionFontWeight: Font.Weight { if isPurchased || product.type != .autoRenewable { - return .regular + .regular } else { - return .semibold + .semibold } } diff --git a/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift b/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift index 6b8ec96..7a16f08 100644 --- a/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift +++ b/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift @@ -28,42 +28,42 @@ struct SubscriptionPrivacyView: View { .foregroundColor(Color.onSurfaceSecondary) #if os(iOS) - HStack(spacing: .xxSmall) { - Button("Restore") { - Task { - try? await AppStore.sync() - } + HStack(spacing: .xxSmall) { + Button("Restore") { + Task { + try? await AppStore.sync() } + } - Text("•") + Text("•") - if let privacyUrl = Info.url.appPrivacyPolicyUrl { - Button { - isShowPrivacy.toggle() - } label: { - Text("Privacy") - } - .sheet(isPresented: $isShowPrivacy) { - WebView(url: privacyUrl) - } + if let privacyUrl = Info.url.appPrivacyPolicyUrl { + Button { + isShowPrivacy.toggle() + } label: { + Text("Privacy") + } + .sheet(isPresented: $isShowPrivacy) { + WebView(url: privacyUrl) } + } - Text("•") + Text("•") - if let termsOfUde = Info.url.appTermsOfUseUrl { - Button { - isShowTerms.toggle() - } label: { - Text("Terms") - } - .sheet(isPresented: $isShowTerms) { - WebView(url: termsOfUde) - } + if let termsOfUde = Info.url.appTermsOfUseUrl { + Button { + isShowTerms.toggle() + } label: { + Text("Terms") + } + .sheet(isPresented: $isShowTerms) { + WebView(url: termsOfUde) } } - .subheadline(.bold) - .foregroundColor(Color.onSurfaceTertiary) - .padding(.top, .xxxSmall) + } + .subheadline(.bold) + .foregroundColor(Color.onSurfaceTertiary) + .padding(.top, .xxxSmall) #endif } .multilineTextAlignment(.center) diff --git a/Sources/OversizeKit/SystemKit/ErrorView/ErrorView.swift b/Sources/OversizeKit/SystemKit/ErrorView/ErrorView.swift index fa471dc..5724e6c 100644 --- a/Sources/OversizeKit/SystemKit/ErrorView/ErrorView.swift +++ b/Sources/OversizeKit/SystemKit/ErrorView/ErrorView.swift @@ -26,11 +26,13 @@ public struct ErrorView: View { public var body: some View { VStack { Spacer() - ContentView(image: error.image, - title: error.title, - subtitle: error.subtitle, - primaryButton: contenButtonType) - .multilineTextAlignment(.center) + ContentView( + image: error.image, + title: error.title, + subtitle: error.subtitle, + primaryButton: contenButtonType + ) + .multilineTextAlignment(.center) Spacer() } .paddingContent() @@ -42,7 +44,7 @@ public struct ErrorView: View { case .appSettings: return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) case let .tryAgain(action: action): @@ -58,7 +60,7 @@ public struct ErrorView: View { if type == .notAccess || type == .noAccount { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -68,7 +70,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -82,7 +84,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -92,7 +94,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -102,7 +104,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -112,7 +114,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -122,7 +124,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -132,7 +134,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { diff --git a/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift b/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift new file mode 100644 index 0000000..286f2a3 --- /dev/null +++ b/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift @@ -0,0 +1,117 @@ +// +// Copyright © 2024 Alexander Romanov +// ErrorButtnType.swift, created on 15.11.2024 +// + +import OversizeLocalizable +import OversizeModels +import OversizeResources +import OversizeUI +import SwiftUI + +public struct SuccessView: View where C: View, A: View { + private let image: Image? + private let title: String + private let subtitle: String? + private let closeAction: (() -> Void)? + private let actions: Group? + private let content: C? + + public init( + image: Image? = nil, + title: String, + subtitle: String? = nil, + closeAction: (() -> Void)? = nil, + @ViewBuilder actions: @escaping () -> A, + @ViewBuilder content: () -> C + ) { + self.image = image + self.title = title + self.subtitle = subtitle + self.closeAction = closeAction + self.actions = Group { actions() } + self.content = content() + } + + public var body: some View { + #if os(macOS) + HStack(spacing: .medium) { + VStack(alignment: .center, spacing: .large) { + Spacer() + if let image { + image + .resizable() + .frame(width: 64, height: 64, alignment: .bottom) + } else { + Image.Illustration.Status.success + .resizable() + .frame(width: 64, height: 64, alignment: .bottom) + } + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + if actions != nil { + VStack(spacing: .small) { + actions + .controlSize(.large) + } + .frame(width: 200) + } + + Spacer() + } + .frame(maxWidth: .infinity, alignment: .center) + + if let content { + Surface { + content + } + .surfaceClip(true) + .surfaceStyle(.secondary) + .surfaceContentMargins(.zero) + } + } + .paddingContent() + #else + VStack(alignment: .center, spacing: .large) { + Spacer() + if let image { + image + .frame(width: 218, height: 218, alignment: .bottom) + } else { + Illustration.Objects.Check.medium + .frame(width: 218, height: 218, alignment: .bottom) + } + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + Spacer() + + if let content { + VStack { + content + + Spacer() + } + } + + if actions != nil { + VStack(spacing: .small) { + actions + .controlSize(.large) + } + .padding(.top, .xxSmall) + } + } + .paddingContent() + + #endif + } +} diff --git a/Sources/OversizeLocationKit/AddressField/AddressField.swift b/Sources/OversizeLocationKit/AddressField/AddressField.swift index 2582a24..4ffad85 100644 --- a/Sources/OversizeLocationKit/AddressField/AddressField.swift +++ b/Sources/OversizeLocationKit/AddressField/AddressField.swift @@ -32,26 +32,26 @@ public struct AddressField: View { var isSlectedAddress: Bool { if let seletedAddress, !seletedAddress.isEmpty { - return true + true } else { - return false + false } } var addressText: String { if isSlectedAddress { - return seletedAddress ?? "Address selected" + seletedAddress ?? "Address selected" } else if let seletedLocation { - return "Сoordinates: \(seletedLocation.latitude), \(seletedLocation.longitude)" + "Сoordinates: \(seletedLocation.latitude), \(seletedLocation.longitude)" } else { - return "Address" + "Address" } } public var body: some View { Button { #if !os(watchOS) - isShowPicker.toggle() + isShowPicker.toggle() #endif } label: { VStack(alignment: .leading, spacing: .xSmall) { @@ -98,11 +98,11 @@ public struct AddressField: View { private var fieldOffset: CGFloat { switch fieldPlaceholderPosition { case .default: - return 0 + 0 case .adjacent: - return 0 + 0 case .overInput: - return !isSlectedAddress ? 0 : 10 + !isSlectedAddress ? 0 : 10 } } } diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift index c46b204..6bd633b 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift @@ -12,226 +12,225 @@ import OversizeUI import SwiftUI #if !os(watchOS) - public struct AddressPicker: View { - @Environment(\.dismiss) private var dismiss - @StateObject private var viewModel = AddressPickerViewModel() - @FocusState private var isFocusSearth - - @Binding private var seletedAddress: String? - @Binding private var seletedLocation: CLLocationCoordinate2D? - @Binding private var seletedPlace: LocationAddress? - - public init( - address: Binding = .constant(nil), - location: Binding = .constant(nil), - place: Binding = .constant(nil) - ) { - _seletedAddress = address - _seletedLocation = location - _seletedPlace = place - } +public struct AddressPicker: View { + @Environment(\.dismiss) private var dismiss + @StateObject private var viewModel = AddressPickerViewModel() + @FocusState private var isFocusSearth + + @Binding private var seletedAddress: String? + @Binding private var seletedLocation: CLLocationCoordinate2D? + @Binding private var seletedPlace: LocationAddress? + + public init( + address: Binding = .constant(nil), + location: Binding = .constant(nil), + place: Binding = .constant(nil) + ) { + _seletedAddress = address + _seletedLocation = location + _seletedPlace = place + } - public var body: some View { - PageView("Location") { - LazyVStack(spacing: .zero) { - if viewModel.appError != nil { - currentLocation - } + public var body: some View { + PageView("Location") { + LazyVStack(spacing: .zero) { + if viewModel.appError != nil { + currentLocation + } - if viewModel.searchTerm.isEmpty, !viewModel.lastSearchAddresses.isEmpty { - HStack(spacing: .zero) { - Text("Recent") - Spacer() - } - .title3() - .onSurfaceSecondaryForeground() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) - - recentResults - } else { - results + if viewModel.searchTerm.isEmpty, !viewModel.lastSearchAddresses.isEmpty { + HStack(spacing: .zero) { + Text("Recent") + Spacer() } + .title3() + .onSurfaceSecondaryForeground() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) + + recentResults + } else { + results } } - .leadingBar { - BarButton(.close) - } - .topToolbar { - TextField("Search places or addresses", text: $viewModel.searchTerm) - .submitScope(viewModel.searchTerm.count < 2) - .textFieldStyle(.default) - .focused($isFocusSearth) - .submitLabel(.done) - .onSubmit { - if viewModel.searchTerm.count > 2 { - viewModel.isSaveFromSearth = true - seletedAddress = viewModel.searchTerm - Task { - let coordinate = try? await viewModel.locationService.fetchCoordinateFromAddress(viewModel.searchTerm) - if let coordinate { - let address = try? await viewModel.locationService.fetchAddressFromLocation(coordinate) - seletedLocation = coordinate - seletedPlace = address - } else { - seletedPlace = nil - seletedLocation = nil - } - viewModel.isSaveFromSearth = false - saveToHistory() - dismiss() + } + .leadingBar { + BarButton(.close) + } + .topToolbar { + TextField("Search places or addresses", text: $viewModel.searchTerm) + .submitScope(viewModel.searchTerm.count < 2) + .textFieldStyle(.default) + .focused($isFocusSearth) + .submitLabel(.done) + .onSubmit { + if viewModel.searchTerm.count > 2 { + viewModel.isSaveFromSearth = true + seletedAddress = viewModel.searchTerm + Task { + let coordinate = try? await viewModel.locationService.fetchCoordinateFromAddress(viewModel.searchTerm) + if let coordinate { + let address = try? await viewModel.locationService.fetchAddressFromLocation(coordinate) + seletedLocation = coordinate + seletedPlace = address + } else { + seletedPlace = nil + seletedLocation = nil } + viewModel.isSaveFromSearth = false + saveToHistory() + dismiss() } } - .overlay(alignment: .trailing) { - if viewModel.isSaveFromSearth { - ProgressView() - .padding(.trailing, .xSmall) - } - } - } - // .scrollDismissesKeyboard(.immediately) - .task(priority: .background) { - do { - try await viewModel.updateCurrentPosition() - if viewModel.isSaveCurentPositon { - onSaveCurrntPosition() + } + .overlay(alignment: .trailing) { + if viewModel.isSaveFromSearth { + ProgressView() + .padding(.trailing, .xSmall) } - } catch {} - } - .onAppear { - isFocusSearth = true - } + } } - - private var currentLocation: some View { - Row("Current Location") { - if viewModel.isFetchUpdatePositon { - viewModel.isSaveCurentPositon = true - } else { + // .scrollDismissesKeyboard(.immediately) + .task(priority: .background) { + do { + try await viewModel.updateCurrentPosition() + if viewModel.isSaveCurentPositon { onSaveCurrntPosition() } - } leading: { - IconDeprecated(.navigation) - .iconOnSurface() + } catch {} + } + .onAppear { + isFocusSearth = true + } + } + + private var currentLocation: some View { + Row("Current Location") { + if viewModel.isFetchUpdatePositon { + viewModel.isSaveCurentPositon = true + } else { + onSaveCurrntPosition() } - .padding(.bottom, viewModel.searchTerm.isEmpty ? .small : .zero) - .loading(viewModel.isSaveCurentPositon) + } leading: { + IconDeprecated(.navigation) + .iconOnSurface() } + .padding(.bottom, viewModel.searchTerm.isEmpty ? .small : .zero) + .loading(viewModel.isSaveCurentPositon) + } - private var recentResults: some View { - ForEach(viewModel.lastSearchAddresses.reversed()) { address in + private var recentResults: some View { + ForEach(viewModel.lastSearchAddresses.reversed()) { address in - Row(address.address ?? address.place?.address ?? "Latitude: \(address.location?.latitude ?? 0), longitude:longitude \(address.location?.longitude ?? 0)") { - if let latitude = address.location?.latitude, let longitude = address.location?.longitude { - onCompleteSearth(seletedAddress: address.address, seletedLocation: CLLocationCoordinate2D(latitude: latitude, longitude: longitude), seletedPlace: address.place, saveToHistory: false) - } else { - onCompleteSearth(seletedAddress: address.address, seletedLocation: nil, seletedPlace: address.place, saveToHistory: false) - } - } leading: { - IconDeprecated(.mapPin) - .iconOnSurface() + Row(address.address ?? address.place?.address ?? "Latitude: \(address.location?.latitude ?? 0), longitude:longitude \(address.location?.longitude ?? 0)") { + if let latitude = address.location?.latitude, let longitude = address.location?.longitude { + onCompleteSearth(seletedAddress: address.address, seletedLocation: CLLocationCoordinate2D(latitude: latitude, longitude: longitude), seletedPlace: address.place, saveToHistory: false) + } else { + onCompleteSearth(seletedAddress: address.address, seletedLocation: nil, seletedPlace: address.place, saveToHistory: false) } - .rowClearButton { - if let fooOffset = viewModel.lastSearchAddresses.firstIndex(where: { $0.id == address.id }) { - viewModel.lastSearchAddresses.remove(at: fooOffset) - } + } leading: { + IconDeprecated(.mapPin) + .iconOnSurface() + } + .rowClearButton { + if let fooOffset = viewModel.lastSearchAddresses.firstIndex(where: { $0.id == address.id }) { + viewModel.lastSearchAddresses.remove(at: fooOffset) } } } + } - private var results: some View { - ForEach(viewModel.locationResults, id: \.self) { location in + private var results: some View { + ForEach(viewModel.locationResults, id: \.self) { location in - Row(location.title, subtitle: location.subtitle) { - reverseGeo(location: location) - } leading: { - IconDeprecated(.mapPin) - .iconOnSurface() - } + Row(location.title, subtitle: location.subtitle) { + reverseGeo(location: location) + } leading: { + IconDeprecated(.mapPin) + .iconOnSurface() } } + } - func reverseGeo(location: MKLocalSearchCompletion) { - let searchRequest = MKLocalSearch.Request(completion: location) - let search = MKLocalSearch(request: searchRequest) - var coordinateK: CLLocationCoordinate2D? - search.start { response, error in - if error == nil, let coordinate = response?.mapItems.first?.placemark.coordinate { - coordinateK = coordinate - } + func reverseGeo(location: MKLocalSearchCompletion) { + let searchRequest = MKLocalSearch.Request(completion: location) + let search = MKLocalSearch(request: searchRequest) + var coordinateK: CLLocationCoordinate2D? + search.start { response, error in + if error == nil, let coordinate = response?.mapItems.first?.placemark.coordinate { + coordinateK = coordinate + } - if let c = coordinateK { - let location = CLLocation(latitude: c.latitude, longitude: c.longitude) - CLGeocoder().reverseGeocodeLocation(location) { placemarks, error in + if let c = coordinateK { + let location = CLLocation(latitude: c.latitude, longitude: c.longitude) + CLGeocoder().reverseGeocodeLocation(location) { placemarks, error in - guard let placemark = placemarks?.first else { - let errorString = error?.localizedDescription ?? "Unexpected Error" - print("Unable to reverse geocode, \(errorString)") - return - } + guard let placemark = placemarks?.first else { + let errorString = error?.localizedDescription ?? "Unexpected Error" + print("Unable to reverse geocode, \(errorString)") + return + } - let reversedGeoLocation = LocationAddress(with: placemark) + let reversedGeoLocation = LocationAddress(with: placemark) - let address = "\(reversedGeoLocation.streetName) \(reversedGeoLocation.streetNumber)".capitalizingFirstLetter() - onCompleteSearth(seletedAddress: address, seletedLocation: c, seletedPlace: reversedGeoLocation) - } + let address = "\(reversedGeoLocation.streetName) \(reversedGeoLocation.streetNumber)".capitalizingFirstLetter() + onCompleteSearth(seletedAddress: address, seletedLocation: c, seletedPlace: reversedGeoLocation) } } } + } - func onCompleteSearth(seletedAddress: String?, seletedLocation: CLLocationCoordinate2D?, seletedPlace: LocationAddress?, saveToHistory: Bool = true) { - if let seletedAddress { - self.seletedAddress = seletedAddress - } else { - self.seletedAddress = seletedPlace?.address - } - self.seletedLocation = seletedLocation - self.seletedPlace = seletedPlace - if saveToHistory { - self.saveToHistory() - } - dismiss() + func onCompleteSearth(seletedAddress: String?, seletedLocation: CLLocationCoordinate2D?, seletedPlace: LocationAddress?, saveToHistory: Bool = true) { + if let seletedAddress { + self.seletedAddress = seletedAddress + } else { + self.seletedAddress = seletedPlace?.address } - - private func onSaveCurrntPosition() { - Task { - let address = try? await viewModel.locationService.fetchAddressFromLocation(viewModel.currentLocation) - if let address { - seletedAddress = address.address - seletedPlace = address - } else { - seletedAddress = nil - seletedPlace = nil - } - seletedLocation = viewModel.currentLocation - saveToHistory() - dismiss() - } + self.seletedLocation = seletedLocation + self.seletedPlace = seletedPlace + if saveToHistory { + self.saveToHistory() } + dismiss() + } - func saveToHistory() { - let lastSearth: SearchHistoryAddress - if let seletedLocation { - lastSearth = SearchHistoryAddress( - id: UUID().uuidString, - address: seletedAddress, - location: SearchHistoryLocationCoordinate(coordinate: seletedLocation), - place: seletedPlace - ) + private func onSaveCurrntPosition() { + Task { + let address = try? await viewModel.locationService.fetchAddressFromLocation(viewModel.currentLocation) + if let address { + seletedAddress = address.address + seletedPlace = address } else { - lastSearth = SearchHistoryAddress( - id: UUID().uuidString, - address: seletedAddress, - location: nil, - place: seletedPlace - ) + seletedAddress = nil + seletedPlace = nil } - viewModel.lastSearchAddresses.append(lastSearth) + seletedLocation = viewModel.currentLocation + saveToHistory() + dismiss() } + } - private func onDoneAction() { - dismiss() + func saveToHistory() { + let lastSearth = if let seletedLocation { + SearchHistoryAddress( + id: UUID().uuidString, + address: seletedAddress, + location: SearchHistoryLocationCoordinate(coordinate: seletedLocation), + place: seletedPlace + ) + } else { + SearchHistoryAddress( + id: UUID().uuidString, + address: seletedAddress, + location: nil, + place: seletedPlace + ) } + viewModel.lastSearchAddresses.append(lastSearth) + } + + private func onDoneAction() { + dismiss() } +} #endif diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift index 6db6c07..d6d5b23 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift @@ -12,76 +12,76 @@ import OversizeModels import SwiftUI #if !os(watchOS) - @MainActor - class AddressPickerViewModel: NSObject, ObservableObject { - @Injected(\.locationService) var locationService: LocationServiceProtocol +@MainActor +class AddressPickerViewModel: NSObject, ObservableObject { + @Injected(\.locationService) var locationService: LocationServiceProtocol - @Published var locationResults: [MKLocalSearchCompletion] = .init() - @Published var searchTerm: String = .init() - @AppStorage("AppState.LastSearchAddresses") var lastSearchAddresses: [SearchHistoryAddress] = .init() + @Published var locationResults: [MKLocalSearchCompletion] = .init() + @Published var searchTerm: String = .init() + @AppStorage("AppState.LastSearchAddresses") var lastSearchAddresses: [SearchHistoryAddress] = .init() - @Published var currentLocation: CLLocationCoordinate2D = .init(latitude: 0, longitude: 0) + @Published var currentLocation: CLLocationCoordinate2D = .init(latitude: 0, longitude: 0) - @Published var isFetchUpdatePositon: Bool = .init(false) - @Published var isSaveCurentPositon: Bool = .init(false) - @Published var isSaveFromSearth: Bool = .init(false) + @Published var isFetchUpdatePositon: Bool = .init(false) + @Published var isSaveCurentPositon: Bool = .init(false) + @Published var isSaveFromSearth: Bool = .init(false) - private var cancellables: Set = [] + private var cancellables: Set = [] - private var searchCompleter = MKLocalSearchCompleter() - private var currentPromise: ((Result<[MKLocalSearchCompletion], Error>) -> Void)? + private var searchCompleter = MKLocalSearchCompleter() + private var currentPromise: ((Result<[MKLocalSearchCompletion], Error>) -> Void)? - @State var appError: AppError? + @State var appError: AppError? - override init() { - super.init() - searchCompleter.delegate = self - searchCompleter.resultTypes = MKLocalSearchCompleter.ResultType([.address]) + override init() { + super.init() + searchCompleter.delegate = self + searchCompleter.resultTypes = MKLocalSearchCompleter.ResultType([.address]) - $searchTerm - .debounce(for: .seconds(0.2), scheduler: RunLoop.main) - .removeDuplicates() - .flatMap { currentSearchTerm in - self.searchTermToResults(searchTerm: currentSearchTerm) - } - .sink(receiveCompletion: { _ in - // Handle error - }, receiveValue: { results in - self.locationResults = results - }) - .store(in: &cancellables) - } - - func searchTermToResults(searchTerm: String) -> Future<[MKLocalSearchCompletion], Error> { - Future { promise in - self.searchCompleter.queryFragment = searchTerm - self.currentPromise = promise + $searchTerm + .debounce(for: .seconds(0.2), scheduler: RunLoop.main) + .removeDuplicates() + .flatMap { currentSearchTerm in + self.searchTermToResults(searchTerm: currentSearchTerm) } - } + .sink(receiveCompletion: { _ in + // Handle error + }, receiveValue: { results in + self.locationResults = results + }) + .store(in: &cancellables) } - extension AddressPickerViewModel: @preconcurrency MKLocalSearchCompleterDelegate { - func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { - currentPromise?(.success(completer.results)) + func searchTermToResults(searchTerm: String) -> Future<[MKLocalSearchCompletion], Error> { + Future { promise in + self.searchCompleter.queryFragment = searchTerm + self.currentPromise = promise } + } +} - func completer(_: MKLocalSearchCompleter, didFailWithError _: Error) {} +extension AddressPickerViewModel: @preconcurrency MKLocalSearchCompleterDelegate { + func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { + currentPromise?(.success(completer.results)) } - extension AddressPickerViewModel { - func updateCurrentPosition() async throws { - let status = locationService.permissionsStatus() - switch status { - case .success: - isFetchUpdatePositon = true - let currentPosition = try await locationService.currentLocation() - guard let newLocation = currentPosition else { return } - currentLocation = newLocation - print("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") - isFetchUpdatePositon = false - case let .failure(error): - appError = error - } + func completer(_: MKLocalSearchCompleter, didFailWithError _: Error) {} +} + +extension AddressPickerViewModel { + func updateCurrentPosition() async throws { + let status = locationService.permissionsStatus() + switch status { + case .success: + isFetchUpdatePositon = true + let currentPosition = try await locationService.currentLocation() + guard let newLocation = currentPosition else { return } + currentLocation = newLocation + print("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") + isFetchUpdatePositon = false + case let .failure(error): + appError = error } } +} #endif diff --git a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift index e36b40d..cd525b3 100644 --- a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift +++ b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift @@ -8,155 +8,155 @@ import OversizeUI import SwiftUI #if !os(watchOS) - public struct MapCoordinateView: View { - @Environment(\.screenSize) var screenSize - @Environment(\.openURL) var openURL - @StateObject var viewModel: MapCoordinateViewModel +public struct MapCoordinateView: View { + @Environment(\.screenSize) var screenSize + @Environment(\.openURL) var openURL + @StateObject var viewModel: MapCoordinateViewModel - public init(_ location: CLLocationCoordinate2D, annotation: String? = nil) { - _viewModel = StateObject(wrappedValue: MapCoordinateViewModel(location: location, annotation: annotation)) - } + public init(_ location: CLLocationCoordinate2D, annotation: String? = nil) { + _viewModel = StateObject(wrappedValue: MapCoordinateViewModel(location: location, annotation: annotation)) + } - public var body: some View { - VStack(spacing: 0) { - if #available(iOS 16.0, *) { - mapView - .ignoresSafeArea() - .safeAreaInset(edge: .top) { - ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { - BarButton(.back) - }, trailingBar: { - BarButton(.icon(.map, action: { - viewModel.isShowRoutePickerSheet.toggle() - })) - }) - .background(.thickMaterial, ignoresSafeAreaEdges: .top) - } - #if os(iOS) - .toolbar(.hidden, for: .tabBar) - #endif - } else { - mapView - .safeAreaInset(edge: .top) { - ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { - BarButton(.back) - }, trailingBar: { - BarButton(.icon(.map, action: { - viewModel.isShowRoutePickerSheet.toggle() - })) - }) - } - } - } - .sheet(isPresented: $viewModel.isShowRoutePickerSheet) { - routeSheetView - .presentationDetents([.height(260)]) + public var body: some View { + VStack(spacing: 0) { + if #available(iOS 16.0, *) { + mapView + .ignoresSafeArea() + .safeAreaInset(edge: .top) { + ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { + BarButton(.back) + }, trailingBar: { + BarButton(.icon(.map, action: { + viewModel.isShowRoutePickerSheet.toggle() + })) + }) + .background(.thickMaterial, ignoresSafeAreaEdges: .top) + } + #if os(iOS) + .toolbar(.hidden, for: .tabBar) + #endif + } else { + mapView + .safeAreaInset(edge: .top) { + ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { + BarButton(.back) + }, trailingBar: { + BarButton(.icon(.map, action: { + viewModel.isShowRoutePickerSheet.toggle() + })) + }) + } } } + .sheet(isPresented: $viewModel.isShowRoutePickerSheet) { + routeSheetView + .presentationDetents([.height(260)]) + } + } - var mapView: some View { - ZStack(alignment: .trailing) { - Map(coordinateRegion: region, showsUserLocation: true, userTrackingMode: $viewModel.userTrackingMode, annotationItems: viewModel.annotations) { - MapMarker(coordinate: $0.coordinate) - } - controlButtons + var mapView: some View { + ZStack(alignment: .trailing) { + Map(coordinateRegion: region, showsUserLocation: true, userTrackingMode: $viewModel.userTrackingMode, annotationItems: viewModel.annotations) { + MapMarker(coordinate: $0.coordinate) } + controlButtons } + } - private var region: Binding { - Binding { - viewModel.region - } set: { region in - DispatchQueue.main.async { - viewModel.region = region - } + private var region: Binding { + Binding { + viewModel.region + } set: { region in + DispatchQueue.main.async { + viewModel.region = region } } + } - var controlButtons: some View { - VStack { - Spacer() - VStack(spacing: .zero) { - Button { - viewModel.zoomIn() - } label: { - IconDeprecated(.plus) - .onSurfaceSecondaryForeground() - .padding(.xxSmall) - } - - Button { - viewModel.zoomOut() - } label: { - IconDeprecated(.minus) - .onSurfaceSecondaryForeground() - .padding(.xxSmall) - } - } - .background { - Capsule() - .fillSurfacePrimary() - .shadowElevaton(.z1) - } - Spacer() - } - .overlay(alignment: .bottomTrailing, content: { + var controlButtons: some View { + VStack { + Spacer() + VStack(spacing: .zero) { Button { - viewModel.positionInLocation() - + viewModel.zoomIn() } label: { - IconDeprecated(.navigation) + IconDeprecated(.plus) .onSurfaceSecondaryForeground() .padding(.xxSmall) } - .background { - Capsule() - .fillSurfacePrimary() - .shadowElevaton(.z1) + + Button { + viewModel.zoomOut() + } label: { + IconDeprecated(.minus) + .onSurfaceSecondaryForeground() + .padding(.xxSmall) } - }) - .padding(.trailing, 16) - .padding(.bottom, screenSize.safeAreaBottom) + } + .background { + Capsule() + .fillSurfacePrimary() + .shadowElevaton(.z1) + } + Spacer() } + .overlay(alignment: .bottomTrailing, content: { + Button { + viewModel.positionInLocation() - var routeSheetView: some View { - PageView("Route") { - SectionView { - Row("Apple Maps") { - onTapAppleMaps() - } - Row("Google Maps") { - onTapGoogleMaps() - } + } label: { + IconDeprecated(.navigation) + .onSurfaceSecondaryForeground() + .padding(.xxSmall) + } + .background { + Capsule() + .fillSurfacePrimary() + .shadowElevaton(.z1) + } + }) + .padding(.trailing, 16) + .padding(.bottom, screenSize.safeAreaBottom) + } + + var routeSheetView: some View { + PageView("Route") { + SectionView { + Row("Apple Maps") { + onTapAppleMaps() + } + Row("Google Maps") { + onTapGoogleMaps() } } - .leadingBar(leadingBar: { - BarButton(.close) - }) - .backgroundSecondary() - .disableScrollShadow(true) - .surfaceContentRowMargins() } + .leadingBar(leadingBar: { + BarButton(.close) + }) + .backgroundSecondary() + .disableScrollShadow(true) + .surfaceContentRowMargins() + } - func onTapAppleMaps() { - #if !os(tvOS) - let placemark = MKPlacemark(coordinate: viewModel.location, addressDictionary: nil) - let mapItem = MKMapItem(placemark: placemark) - mapItem.name = viewModel.annotation - mapItem.openInMaps() - viewModel.isShowRoutePickerSheet.toggle() - #endif - } + func onTapAppleMaps() { + #if !os(tvOS) + let placemark = MKPlacemark(coordinate: viewModel.location, addressDictionary: nil) + let mapItem = MKMapItem(placemark: placemark) + mapItem.name = viewModel.annotation + mapItem.openInMaps() + viewModel.isShowRoutePickerSheet.toggle() + #endif + } - func onTapGoogleMaps() { - guard let url = URL(string: "comgooglemaps://?saddr=\(viewModel.location.latitude),\(viewModel.location.longitude)") else { return } - openURL(url) - } + func onTapGoogleMaps() { + guard let url = URL(string: "comgooglemaps://?saddr=\(viewModel.location.latitude),\(viewModel.location.longitude)") else { return } + openURL(url) } +} - struct MapCoordinateView_Previews: PreviewProvider { - static var previews: some View { - MapCoordinateView(.init(latitude: 100, longitude: 100)) - } +struct MapCoordinateView_Previews: PreviewProvider { + static var previews: some View { + MapCoordinateView(.init(latitude: 100, longitude: 100)) } +} #endif diff --git a/Sources/OversizeNoticeKit/NoticeListViewModel.swift b/Sources/OversizeNoticeKit/NoticeListViewModel.swift index 0862c48..1749bd5 100644 --- a/Sources/OversizeNoticeKit/NoticeListViewModel.swift +++ b/Sources/OversizeNoticeKit/NoticeListViewModel.swift @@ -92,9 +92,9 @@ public final class NoticeListViewModel: ObservableObject { private func checkDateInSelectedPeriod(startDate: Date, endDate: Date) -> Bool { if startDate < endDate { - return (startDate ... endDate).contains(Date()) + (startDate ... endDate).contains(Date()) } else { - return false + false } } diff --git a/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift b/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift index 94d24ed..2f0a503 100644 --- a/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift +++ b/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift @@ -10,76 +10,76 @@ import OversizeNotificationService import SwiftUI #if !os(tvOS) - @MainActor - class LocalNotificationSetScreenViewModel: ObservableObject { - @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol - @Published var state = State.initial +@MainActor +class LocalNotificationSetScreenViewModel: ObservableObject { + @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol + @Published var state = State.initial - public let id: UUID - private let date: Date - private let title: String - private let body: String - private let userInfo: [AnyHashable: Any]? + public let id: UUID + private let date: Date + private let title: String + private let body: String + private let userInfo: [AnyHashable: Any]? - init( - id: UUID, - date: Date, - title: String, - body: String, - userInfo: [AnyHashable: Any]? = nil - ) { - self.id = id - self.date = date - self.title = title - self.body = body - self.userInfo = userInfo - } + init( + id: UUID, + date: Date, + title: String, + body: String, + userInfo: [AnyHashable: Any]? = nil + ) { + self.id = id + self.date = date + self.title = title + self.body = body + self.userInfo = userInfo + } - func setNotification(timeBefore: LocalNotificationTime) async { - let notificationTime = date.addingTimeInterval(timeBefore.timeInterval) - let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) + func setNotification(timeBefore: LocalNotificationTime) async { + let notificationTime = date.addingTimeInterval(timeBefore.timeInterval) + let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) - let stringUserInfo = userInfo?.reduce(into: [String: String]()) { result, pair in - if let key = pair.key as? String, let value = pair.value as? String { - result[key] = value - } + let stringUserInfo = userInfo?.reduce(into: [String: String]()) { result, pair in + if let key = pair.key as? String, let value = pair.value as? String { + result[key] = value } - - await localNotificationService.schedule(localNotification: .init( - id: id, - title: title, - body: body, - dateComponents: dateComponents, - repeats: false, - userInfo: stringUserInfo - )) } - func fetchPandingNotification() async -> Bool { - let ids = await localNotificationService.fetchPendingIds() - return ids.contains(id.uuidString) - } + await localNotificationService.schedule(localNotification: .init( + id: id, + title: title, + body: body, + dateComponents: dateComponents, + repeats: false, + userInfo: stringUserInfo + )) + } - func deleteNotification() { - localNotificationService.removeRequest(withIdentifier: id.uuidString) - } + func fetchPandingNotification() async -> Bool { + let ids = await localNotificationService.fetchPendingIds() + return ids.contains(id.uuidString) + } - func requestAccsess() async { - let result = await localNotificationService.requestAccess() - switch result { - case .success: - state = .result - case let .failure(error): - state = .error(error) - } - } + func deleteNotification() { + localNotificationService.removeRequest(withIdentifier: id.uuidString) } - extension LocalNotificationSetScreenViewModel { - enum State { - case initial - case result - case error(AppError) + func requestAccsess() async { + let result = await localNotificationService.requestAccess() + switch result { + case .success: + state = .result + case let .failure(error): + state = .error(error) } } +} + +extension LocalNotificationSetScreenViewModel { + enum State { + case initial + case result + case error(AppError) + } +} #endif diff --git a/Sources/OversizeNotificationKit/LocalNotificationView.swift b/Sources/OversizeNotificationKit/LocalNotificationView.swift index e574636..206c842 100644 --- a/Sources/OversizeNotificationKit/LocalNotificationView.swift +++ b/Sources/OversizeNotificationKit/LocalNotificationView.swift @@ -10,107 +10,107 @@ import SwiftUI import UserNotifications #if !os(tvOS) - public struct LocalNotificationView: View { - @Environment(\.dismiss) var dismiss - @Binding private var selection: LocalNotificationTime - @State private var isPendingNotification: Bool = false - @StateObject var viewModel: LocalNotificationSetScreenViewModel - private let saveAction: ((UUID?) -> Void)? +public struct LocalNotificationView: View { + @Environment(\.dismiss) var dismiss + @Binding private var selection: LocalNotificationTime + @State private var isPendingNotification: Bool = false + @StateObject var viewModel: LocalNotificationSetScreenViewModel + private let saveAction: ((UUID?) -> Void)? - public init( - _ selection: Binding, - id: UUID, - title: String, - body: String, - date: Date, - userInfo: [AnyHashable: Any]? = nil, - saveAction: ((UUID?) -> Void)? = nil - ) { - _viewModel = StateObject(wrappedValue: LocalNotificationSetScreenViewModel( - id: id, - date: date, - title: title, - body: body, - userInfo: userInfo - )) - _selection = selection - self.saveAction = saveAction - } + public init( + _ selection: Binding, + id: UUID, + title: String, + body: String, + date: Date, + userInfo: [AnyHashable: Any]? = nil, + saveAction: ((UUID?) -> Void)? = nil + ) { + _viewModel = StateObject(wrappedValue: LocalNotificationSetScreenViewModel( + id: id, + date: date, + title: title, + body: body, + userInfo: userInfo + )) + _selection = selection + self.saveAction = saveAction + } - public var body: some View { - switch viewModel.state { - case .initial: - contnent - .task { - await viewModel.requestAccsess() - } - case .result: - contnent - .task { - let pendingStatus = await viewModel.fetchPandingNotification() - if pendingStatus { - isPendingNotification = true - } - } - case let .error(error): - PageView("Notification") { - ErrorView(error) + public var body: some View { + switch viewModel.state { + case .initial: + contnent + .task { + await viewModel.requestAccsess() } - .leadingBar { - BarButton(.close) + case .result: + contnent + .task { + let pendingStatus = await viewModel.fetchPandingNotification() + if pendingStatus { + isPendingNotification = true + } } + case let .error(error): + PageView("Notification") { + ErrorView(error) + } + .leadingBar { + BarButton(.close) } } + } - public var contnent: some View { - // let notificationDate = viewModel.date.addingTimeInterval(selection.timeInterval) - PageView("Notification") { - VStack(spacing: .zero) { - SectionView { - LazyVStack(spacing: .zero) { - ForEach(LocalNotificationTime.allCases) { notificationTime in + public var contnent: some View { + // let notificationDate = viewModel.date.addingTimeInterval(selection.timeInterval) + PageView("Notification") { + VStack(spacing: .zero) { + SectionView { + LazyVStack(spacing: .zero) { + ForEach(LocalNotificationTime.allCases) { notificationTime in // let notificationDate = viewModel.date.addingTimeInterval(notificationTime.timeInterval) // if notificationDate viewModel.date { - Radio(notificationTime.title, isOn: selection.id == notificationTime.id) { - selection = notificationTime - } - // } + Radio(notificationTime.title, isOn: selection.id == notificationTime.id) { + selection = notificationTime } + // } } } - .surfaceContentRowMargins() - if isPendingNotification { - SectionView { - VStack(spacing: .zero) { - Row("Delete notification") { - viewModel.deleteNotification() - saveAction?(nil) - isPendingNotification = false - dismiss() - } trailing: { - IconDeprecated(.trash) - .iconColor(Color.error) - } + } + .surfaceContentRowMargins() + if isPendingNotification { + SectionView { + VStack(spacing: .zero) { + Row("Delete notification") { + viewModel.deleteNotification() + saveAction?(nil) + isPendingNotification = false + dismiss() + } trailing: { + IconDeprecated(.trash) + .iconColor(Color.error) } } - .surfaceContentRowMargins() } + .surfaceContentRowMargins() } } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - Task { - await viewModel.setNotification(timeBefore: selection) - saveAction?(viewModel.id) - isPendingNotification = true - dismiss() - } - })) - } + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + Task { + await viewModel.setNotification(timeBefore: selection) + saveAction?(viewModel.id) + isPendingNotification = true + dismiss() + } + })) } } +} #endif diff --git a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift index 3ace115..6fa17ac 100644 --- a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift +++ b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift @@ -11,46 +11,46 @@ public enum LocalNotificationTime: CaseIterable, Equatable, Identifiable, @unche public var title: String { switch self { case .oneMinuteBefore: - return "1 minute before" + "1 minute before" case .fiveMinutesBefore: - return "5 minutes before" + "5 minutes before" case .tenMinutesBefore: - return "10 minutes before" + "10 minutes before" case .thirtyMinutesBefore: - return "30 minutes before" + "30 minutes before" case .oneHourBefore: - return "1 hour before" + "1 hour before" case .twoHoursBefore: - return "2 hours before" + "2 hours before" case .oneDayBefore: - return "1 day before" + "1 day before" case .twoDaysBefore: - return "2 days before" + "2 days before" case .oneWeekBefore: - return "1 week before" + "1 week before" } } public var timeInterval: TimeInterval { switch self { case .oneMinuteBefore: - return -1 * 60 + -1 * 60 case .fiveMinutesBefore: - return -5 * 60 + -5 * 60 case .tenMinutesBefore: - return -10 * 60 + -10 * 60 case .thirtyMinutesBefore: - return -30 * 60 + -30 * 60 case .oneHourBefore: - return -1 * 60 * 60 + -1 * 60 * 60 case .twoHoursBefore: - return -2 * 60 * 60 + -2 * 60 * 60 case .oneDayBefore: - return -1 * 24 * 60 * 60 + -1 * 24 * 60 * 60 case .twoDaysBefore: - return -2 * 24 * 60 * 60 + -2 * 24 * 60 * 60 case .oneWeekBefore: - return -7 * 24 * 60 * 60 + -7 * 24 * 60 * 60 } } diff --git a/Sources/OversizeOnboardingKit/OnboardingView.swift b/Sources/OversizeOnboardingKit/OnboardingView.swift index 9b0235b..48974fc 100644 --- a/Sources/OversizeOnboardingKit/OnboardingView.swift +++ b/Sources/OversizeOnboardingKit/OnboardingView.swift @@ -41,17 +41,17 @@ public struct OnboardView: View where A: View, C: View { private func topButtons() -> some View { HStack { #if os(iOS) - if helpAction != nil { - Button { - helpAction?() - } label: { - Text("Help") - } - .buttonStyle(.tertiary) - .controlBorderShape(.capsule) - .accent() - .controlSize(.mini) + if helpAction != nil { + Button { + helpAction?() + } label: { + Text("Help") } + .buttonStyle(.tertiary) + .controlBorderShape(.capsule) + .accent() + .controlSize(.mini) + } #endif Spacer() @@ -75,57 +75,57 @@ public struct OnboardView: View where A: View, C: View { private func bottomButtons() -> some View { #if os(iOS) - HStack(spacing: .small) { - if let backAction { - Button { - backAction() - } label: { - Image.Base.arrowLeft.icon() - } - .buttonStyle(.quaternary) - .accentColor(.secondary) + HStack(spacing: .small) { + if let backAction { + Button { + backAction() + } label: { + Image.Base.arrowLeft.icon() } + .buttonStyle(.quaternary) + .accentColor(.secondary) + } - VStack(spacing: .xxxSmall) { - actions - } + VStack(spacing: .xxxSmall) { + actions } - .padding(.medium) + } + .padding(.medium) #else - HStack(spacing: .xSmall) { - if let helpAction { - Button("Help", action: helpAction) - .help("Help") - #if !os(tvOS) - .controlSize(.extraLarge) - .buttonStyle(.bordered) - #endif - } - - Spacer() - - if let backAction { - Button( - "Back", - action: backAction - ) - #if !os(tvOS) + HStack(spacing: .xSmall) { + if let helpAction { + Button("Help", action: helpAction) + .help("Help") + #if !os(tvOS) .controlSize(.extraLarge) - #endif .buttonStyle(.bordered) - } + #endif + } - actions + Spacer() + + if let backAction { + Button( + "Back", + action: backAction + ) #if !os(tvOS) .controlSize(.extraLarge) #endif - .buttonStyle(.borderedProminent) - } - .padding(.small) - .background(Color.surfacePrimary) - .overlay(alignment: .top) { - Separator() + .buttonStyle(.bordered) } + + actions + #if !os(tvOS) + .controlSize(.extraLarge) + #endif + .buttonStyle(.borderedProminent) + } + .padding(.small) + .background(Color.surfacePrimary) + .overlay(alignment: .top) { + Separator() + } #endif } } diff --git a/Sources/OversizePhotoKit/PhotoOptionsView.swift b/Sources/OversizePhotoKit/PhotoOptionsView.swift index 904582c..9e68b6d 100644 --- a/Sources/OversizePhotoKit/PhotoOptionsView.swift +++ b/Sources/OversizePhotoKit/PhotoOptionsView.swift @@ -64,19 +64,19 @@ public struct PhotoOptionsView: View where A: View { SectionView { VStack { #if !os(tvOS) - if #available(iOS 16.0, *) { - ShareLink( - item: photo, - preview: SharePreview( - "Photo", - image: photo.image - ) - ) { - Row("Share") { - Image.Base.upload - } + if #available(iOS 16.0, *) { + ShareLink( + item: photo, + preview: SharePreview( + "Photo", + image: photo.image + ) + ) { + Row("Share") { + Image.Base.upload } } + } #endif actions } From 8a512a9afab3fa69f7281cdf8384d447096bb079 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 28 Apr 2024 19:40:31 +0300 Subject: [PATCH 31/39] Add new router --- .../OversizeKit/RouterKit/AlertRouter.swift | 23 ++++ Sources/OversizeKit/RouterKit/HUDRouter.swift | 20 ++++ .../RouterKit/Protocols/Alertable.swift | 24 +++++ .../RouterKit/Protocols/Routable.swift | 16 +++ .../RouterKit/Protocols/Tabable.swift | 14 +++ Sources/OversizeKit/RouterKit/Router.swift | 101 ++++++++++++++++++ Sources/OversizeKit/RouterKit/TabRouter.swift | 18 ++++ .../SettingsKit/Views/Screens.swift | 67 ++++++++++++ 8 files changed, 283 insertions(+) create mode 100644 Sources/OversizeKit/RouterKit/AlertRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/HUDRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/Protocols/Alertable.swift create mode 100644 Sources/OversizeKit/RouterKit/Protocols/Routable.swift create mode 100644 Sources/OversizeKit/RouterKit/Protocols/Tabable.swift create mode 100644 Sources/OversizeKit/RouterKit/Router.swift create mode 100644 Sources/OversizeKit/RouterKit/TabRouter.swift create mode 100644 Sources/OversizeKit/SettingsKit/Views/Screens.swift diff --git a/Sources/OversizeKit/RouterKit/AlertRouter.swift b/Sources/OversizeKit/RouterKit/AlertRouter.swift new file mode 100644 index 0000000..8b36b5a --- /dev/null +++ b/Sources/OversizeKit/RouterKit/AlertRouter.swift @@ -0,0 +1,23 @@ +// +// Copyright © 2024 Alexander Romanov +// AlertRouter.swift, created on 11.04.2024 +// + +import Foundation + +public class AlertRouter: ObservableObject { + // Alert + @Published public var alert: RootAlert? = nil + + public init() {} +} + +public extension AlertRouter { + func present(_ alert: RootAlert) { + self.alert = alert + } + + func dismiss() { + alert = nil + } +} diff --git a/Sources/OversizeKit/RouterKit/HUDRouter.swift b/Sources/OversizeKit/RouterKit/HUDRouter.swift new file mode 100644 index 0000000..935f304 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/HUDRouter.swift @@ -0,0 +1,20 @@ +// +// Copyright © 2024 Alexander Romanov +// HUDRouter.swift, created on 14.04.2024 +// + +import Foundation + +public class HUDRouter: ObservableObject { + @Published public var isShowHud: Bool = false + @Published public var hudText: String = "" + + public init() {} +} + +public extension HUDRouter { + func present(_ text: String) { + hudText = text + isShowHud = true + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift new file mode 100644 index 0000000..0c7a2a9 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift @@ -0,0 +1,24 @@ +// +// Copyright © 2024 Alexander Romanov +// Alertable.swift, created on 14.04.2024 +// + +import Foundation + +public protocol Alertable: Equatable, Hashable, Identifiable {} + +public extension Alertable { + var id: Self { self } + + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } + + static func == (lhs: Self, rhs: Self) -> Bool { + if lhs.id == rhs.id { + true + } else { + false + } + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift new file mode 100644 index 0000000..92a5f43 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift @@ -0,0 +1,16 @@ +// +// Copyright © 2024 Alexander Romanov +// Routable.swift, created on 14.04.2024 +// + +import SwiftUI + +public protocol Routable: Equatable, Hashable, Identifiable {} + +public extension Routable { + var id: Self { self } + + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift b/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift new file mode 100644 index 0000000..1116b72 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift @@ -0,0 +1,14 @@ +// +// Copyright © 2024 Alexander Romanov +// Tabable.swift, created on 14.04.2024 +// + +import Foundation + +public protocol Tabable: CaseIterable, Equatable, Identifiable {} + +public extension Tabable { + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} diff --git a/Sources/OversizeKit/RouterKit/Router.swift b/Sources/OversizeKit/RouterKit/Router.swift new file mode 100644 index 0000000..4690af0 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Router.swift @@ -0,0 +1,101 @@ +// +// Copyright © 2024 Alexander Romanov +// Router.swift, created on 13.04.2024 +// + +import SwiftUI + +@available(iOS 16.0, *) +public final class Router: ObservableObject { + // Path + @Published public var path = NavigationPath() + @Published public var sheetPath = NavigationPath() + @Published public var fullScreenCoverPath = NavigationPath() + + // Sheets + @Published public var sheet: Destination? + @Published public var fullScreenCover: Destination? + @Published public var sheetDetents: Set = [] + @Published public var dragIndicator: Visibility = .hidden + @Published public var dismissDisabled: Bool = false + + public init() {} +} + +@available(iOS 16.0, *) +public extension Router { + func move(_ screen: Destination) { + path.append(screen) + } + + func backToRoot() { + path.removeLast(path.count) + } + + func back(_ count: Int = 1) { + let pathCount = path.count - count + if pathCount > -1 { + path.removeLast(count) + } + } +} + +// MARK: - Sheets + +@available(iOS 16.0, *) +public extension Router { + func present(_ sheet: Destination, fullScreen: Bool = false) { + if fullScreen { + if fullScreenCover != nil { + fullScreenCover = nil + } + fullScreenCover = sheet + } else { + restSheet() + self.sheet = sheet + } + } + + func present(_ sheet: Destination, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) { + restSheet() + sheetDetents = detents + dragIndicator = indicator + self.dismissDisabled = dismissDisabled + self.sheet = sheet + } + + func dismiss() { + sheet = nil + fullScreenCover = nil + } + + func dismissSheet() { + sheet = nil + } + + func dismissFullScreenCover() { + fullScreenCover = nil + } + + func dismissDisabled(_ isDismissDisabled: Bool = true) { + dismissDisabled = isDismissDisabled + } + + private func restSheet() { + if sheet != nil { + sheet = nil + } + if fullScreenCover != nil { + fullScreenCover = nil + } + if dragIndicator != .hidden { + dragIndicator = .hidden + } + if dismissDisabled { + dismissDisabled = false + } + if sheetDetents.isEmpty == false { + sheetDetents = [] + } + } +} diff --git a/Sources/OversizeKit/RouterKit/TabRouter.swift b/Sources/OversizeKit/RouterKit/TabRouter.swift new file mode 100644 index 0000000..4527046 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/TabRouter.swift @@ -0,0 +1,18 @@ +// +// Copyright © 2024 Alexander Romanov +// TabRouter.swift, created on 13.04.2024 +// + +import Foundation + +public class TabRouter: ObservableObject { + @Published public var tab: Tab + + public init(tab: Tab) { + self.tab = tab + } + + public func changeTab(_ tab: Tab) { + self.tab = tab + } +} diff --git a/Sources/OversizeKit/SettingsKit/Views/Screens.swift b/Sources/OversizeKit/SettingsKit/Views/Screens.swift new file mode 100644 index 0000000..062818f --- /dev/null +++ b/Sources/OversizeKit/SettingsKit/Views/Screens.swift @@ -0,0 +1,67 @@ +// +// Copyright © 2024 Alexander Romanov +// File.swift, created on 15.04.2024 +// + +import OversizeModels +import OversizeNetwork +import SwiftUI + +public enum SettingsScreen: Routable { + case premium + case premiumFeature(feature: PlistConfiguration.Store.StoreFeature) + case soundAndVibration + case appearance + case sync + case about + case feedback + case ourResorses + case support + case border + case font + case radius + case notifications + case setPINCode + case updatePINCode + case security + case offer(event: Components.Schemas.SpecialOffer) + case webView(url: URL) + case sendMail(to: String, subject: String, content: String) +} + +public struct SettingsNavigateAction { + public typealias Action = (SettingsNavigationType) -> Void + public let action: Action + public func callAsFunction(_ navigationType: SettingsNavigationType) { + action(navigationType) + } +} + +public enum SettingsNavigationType { + case move(SettingsScreen) + case backToRoot + case back(Int = 1) + case present(_ sheet: SettingsScreen, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) + case dismiss + case dismissSheet + case dismissFullScreenCover + case dismissDisabled(_ isDismissDisabled: Bool = true) + case presentHUD(_ text: String) +} + +public struct SettingsNavigateEnvironmentKey: EnvironmentKey { + public static var defaultValue: SettingsNavigateAction = .init(action: { _ in }) +} + +public extension EnvironmentValues { + var settingsNavigate: SettingsNavigateAction { + get { self[SettingsNavigateEnvironmentKey.self] } + set { self[SettingsNavigateEnvironmentKey.self] = newValue } + } +} + +public extension View { + func onSettingsNavigate(_ action: @escaping SettingsNavigateAction.Action) -> some View { + environment(\.settingsNavigate, SettingsNavigateAction(action: action)) + } +} From 669ba3f118d731e36a692c5f2a77d62568c7cebb Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Thu, 16 May 2024 18:27:18 +0300 Subject: [PATCH 32/39] Add routing draft --- Sources/OversizeKit/RouterKit/HUDRouter.swift | 5 +- .../OversizeKit/RouterKit/MenuRouter.swift | 23 +++++++++ .../RouterKit/PresentationRouter.swift | 42 +++++++++++++++++ .../RouterKit/Protocols/Alertable.swift | 10 ++-- .../RouterKit/Protocols/Menuble.swift | 12 +++++ .../RouterKit/Protocols/Routable.swift | 10 +++- Sources/OversizeKit/RouterKit/Router.swift | 17 +++++++ .../SettingsKit/Views/Screens.swift | 47 ++++++++++++++++++- 8 files changed, 156 insertions(+), 10 deletions(-) create mode 100644 Sources/OversizeKit/RouterKit/MenuRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/PresentationRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/Protocols/Menuble.swift diff --git a/Sources/OversizeKit/RouterKit/HUDRouter.swift b/Sources/OversizeKit/RouterKit/HUDRouter.swift index 935f304..3f2d987 100644 --- a/Sources/OversizeKit/RouterKit/HUDRouter.swift +++ b/Sources/OversizeKit/RouterKit/HUDRouter.swift @@ -4,17 +4,20 @@ // import Foundation +import OversizeModels public class HUDRouter: ObservableObject { @Published public var isShowHud: Bool = false @Published public var hudText: String = "" + @Published public var type: HUDMessageType = .default public init() {} } public extension HUDRouter { - func present(_ text: String) { + func present(_ text: String, type: HUDMessageType = .default) { hudText = text + self.type = type isShowHud = true } } diff --git a/Sources/OversizeKit/RouterKit/MenuRouter.swift b/Sources/OversizeKit/RouterKit/MenuRouter.swift new file mode 100644 index 0000000..699ce38 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/MenuRouter.swift @@ -0,0 +1,23 @@ +// +// Copyright © 2024 Alexander Romanov +// File.swift, created on 06.05.2024 +// + +import Foundation + +public class MenuRouter: ObservableObject { + @Published public var menu: Menu? + @Published public var subMenu: Menu? + + public init(menu: Menu) { + self.menu = menu + } + + public func changeMenu(_ menu: Menu) { + self.menu = menu + } + + public func changeSubMenu(_ menu: Menu) { + self.menu = menu + } +} diff --git a/Sources/OversizeKit/RouterKit/PresentationRouter.swift b/Sources/OversizeKit/RouterKit/PresentationRouter.swift new file mode 100644 index 0000000..931793e --- /dev/null +++ b/Sources/OversizeKit/RouterKit/PresentationRouter.swift @@ -0,0 +1,42 @@ +// +// Copyright © 2024 Alexander Romanov +// PresentationRouter.swift, created on 16.05.2024 +// + +import Foundation + +public enum HUDMessageType { + case `default` + case success + case destructive + case deleted + case archived +} + +public class PresentationRouter: ObservableObject { + // Alert + @Published public var alert: RootAlert? = nil + @Published public var isShowHud: Bool = false + @Published public var hudText: String = "" + @Published public var type: HUDMessageType = .default + + public init() {} +} + +public extension PresentationRouter { + func present(_ alert: RootAlert) { + self.alert = alert + } + + func dismiss() { + alert = nil + } +} + +public extension PresentationRouter { + func present(_ text: String, type: HUDMessageType = .default) { + hudText = text + self.type = type + isShowHud = true + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift index 0c7a2a9..77ea23c 100644 --- a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift +++ b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift @@ -8,12 +8,6 @@ import Foundation public protocol Alertable: Equatable, Hashable, Identifiable {} public extension Alertable { - var id: Self { self } - - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } - static func == (lhs: Self, rhs: Self) -> Bool { if lhs.id == rhs.id { true @@ -21,4 +15,8 @@ public extension Alertable { false } } + + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } } diff --git a/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift b/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift new file mode 100644 index 0000000..3cf68f3 --- /dev/null +++ b/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift @@ -0,0 +1,12 @@ +// +// Copyright © 2024 Alexander Romanov +// File.swift, created on 06.05.2024 +// + +public protocol Menuble: CaseIterable, Equatable, Identifiable {} + +public extension Menuble { + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift index 92a5f43..a54f673 100644 --- a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift +++ b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift @@ -8,9 +8,15 @@ import SwiftUI public protocol Routable: Equatable, Hashable, Identifiable {} public extension Routable { - var id: Self { self } - func hash(into hasher: inout Hasher) { hasher.combine(id) } + + static func == (lhs: Self, rhs: Self) -> Bool { + if lhs.id == rhs.id { + true + } else { + false + } + } } diff --git a/Sources/OversizeKit/RouterKit/Router.swift b/Sources/OversizeKit/RouterKit/Router.swift index 4690af0..98cd61f 100644 --- a/Sources/OversizeKit/RouterKit/Router.swift +++ b/Sources/OversizeKit/RouterKit/Router.swift @@ -15,6 +15,7 @@ public final class Router: ObservableObject { // Sheets @Published public var sheet: Destination? @Published public var fullScreenCover: Destination? + @Published public var menu: Destination? @Published public var sheetDetents: Set = [] @Published public var dragIndicator: Visibility = .hidden @Published public var dismissDisabled: Bool = false @@ -22,6 +23,13 @@ public final class Router: ObservableObject { public init() {} } +@available(iOS 16.0, *) +public extension Router { + func changeMenu(_ screen: Destination) { + menu = screen + } +} + @available(iOS 16.0, *) public extension Router { func move(_ screen: Destination) { @@ -64,6 +72,15 @@ public extension Router { self.sheet = sheet } + func backOrDismiss() { + if sheet != nil || fullScreenCover != nil { + sheet = nil + fullScreenCover = nil + } else { + back() + } + } + func dismiss() { sheet = nil fullScreenCover = nil diff --git a/Sources/OversizeKit/SettingsKit/Views/Screens.swift b/Sources/OversizeKit/SettingsKit/Views/Screens.swift index 062818f..a6058c7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Screens.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Screens.swift @@ -29,6 +29,51 @@ public enum SettingsScreen: Routable { case sendMail(to: String, subject: String, content: String) } +public extension SettingsScreen { + var id: String { + switch self { + case .premium: + "premium" + case .premiumFeature: + "premiumFeature" + case .soundAndVibration: + "soundAndVibration" + case .appearance: + "appearance" + case .sync: + "sync" + case .about: + "about" + case .feedback: + "feedback" + case .webView: + "webView" + case .ourResorses: + "ourResorses" + case .support: + "support" + case .border: + "border" + case .font: + "font" + case .radius: + "radius" + case .setPINCode: + "setPINCode" + case .updatePINCode: + "updatePINCode" + case .security: + "security" + case .offer: + "offer" + case .sendMail: + "sendMail" + case .notifications: + "notifications" + } + } +} + public struct SettingsNavigateAction { public typealias Action = (SettingsNavigationType) -> Void public let action: Action @@ -46,7 +91,7 @@ public enum SettingsNavigationType { case dismissSheet case dismissFullScreenCover case dismissDisabled(_ isDismissDisabled: Bool = true) - case presentHUD(_ text: String) + case presentHUD(_ text: String, type: HUDMessageType) } public struct SettingsNavigateEnvironmentKey: EnvironmentKey { From 7757dd247e0e43de94b64800bdd190273b3fd220 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Fri, 17 May 2024 16:18:43 +0300 Subject: [PATCH 33/39] Add router --- .../OversizeKit/RouterKit/AlertRouter.swift | 23 ---- Sources/OversizeKit/RouterKit/HUDRouter.swift | 23 ---- .../OversizeKit/RouterKit/MenuRouter.swift | 23 ---- .../RouterKit/PresentationRouter.swift | 42 ------- .../RouterKit/Protocols/Alertable.swift | 22 ---- .../RouterKit/Protocols/Menuble.swift | 12 -- .../RouterKit/Protocols/Routable.swift | 22 ---- .../RouterKit/Protocols/Tabable.swift | 14 --- Sources/OversizeKit/RouterKit/Router.swift | 118 ------------------ .../SettingsRouter/ResolveRouter.swift | 64 ++++++++++ .../SettingsRouter/SettingsRouting.swift | 73 +++++++++++ Sources/OversizeKit/RouterKit/TabRouter.swift | 18 --- .../SettingsKit/Views/Screens.swift | 1 + 13 files changed, 138 insertions(+), 317 deletions(-) delete mode 100644 Sources/OversizeKit/RouterKit/AlertRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/HUDRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/MenuRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/PresentationRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/Protocols/Alertable.swift delete mode 100644 Sources/OversizeKit/RouterKit/Protocols/Menuble.swift delete mode 100644 Sources/OversizeKit/RouterKit/Protocols/Routable.swift delete mode 100644 Sources/OversizeKit/RouterKit/Protocols/Tabable.swift delete mode 100644 Sources/OversizeKit/RouterKit/Router.swift create mode 100644 Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift create mode 100644 Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift delete mode 100644 Sources/OversizeKit/RouterKit/TabRouter.swift diff --git a/Sources/OversizeKit/RouterKit/AlertRouter.swift b/Sources/OversizeKit/RouterKit/AlertRouter.swift deleted file mode 100644 index 8b36b5a..0000000 --- a/Sources/OversizeKit/RouterKit/AlertRouter.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// AlertRouter.swift, created on 11.04.2024 -// - -import Foundation - -public class AlertRouter: ObservableObject { - // Alert - @Published public var alert: RootAlert? = nil - - public init() {} -} - -public extension AlertRouter { - func present(_ alert: RootAlert) { - self.alert = alert - } - - func dismiss() { - alert = nil - } -} diff --git a/Sources/OversizeKit/RouterKit/HUDRouter.swift b/Sources/OversizeKit/RouterKit/HUDRouter.swift deleted file mode 100644 index 3f2d987..0000000 --- a/Sources/OversizeKit/RouterKit/HUDRouter.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// HUDRouter.swift, created on 14.04.2024 -// - -import Foundation -import OversizeModels - -public class HUDRouter: ObservableObject { - @Published public var isShowHud: Bool = false - @Published public var hudText: String = "" - @Published public var type: HUDMessageType = .default - - public init() {} -} - -public extension HUDRouter { - func present(_ text: String, type: HUDMessageType = .default) { - hudText = text - self.type = type - isShowHud = true - } -} diff --git a/Sources/OversizeKit/RouterKit/MenuRouter.swift b/Sources/OversizeKit/RouterKit/MenuRouter.swift deleted file mode 100644 index 699ce38..0000000 --- a/Sources/OversizeKit/RouterKit/MenuRouter.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// File.swift, created on 06.05.2024 -// - -import Foundation - -public class MenuRouter: ObservableObject { - @Published public var menu: Menu? - @Published public var subMenu: Menu? - - public init(menu: Menu) { - self.menu = menu - } - - public func changeMenu(_ menu: Menu) { - self.menu = menu - } - - public func changeSubMenu(_ menu: Menu) { - self.menu = menu - } -} diff --git a/Sources/OversizeKit/RouterKit/PresentationRouter.swift b/Sources/OversizeKit/RouterKit/PresentationRouter.swift deleted file mode 100644 index 931793e..0000000 --- a/Sources/OversizeKit/RouterKit/PresentationRouter.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// PresentationRouter.swift, created on 16.05.2024 -// - -import Foundation - -public enum HUDMessageType { - case `default` - case success - case destructive - case deleted - case archived -} - -public class PresentationRouter: ObservableObject { - // Alert - @Published public var alert: RootAlert? = nil - @Published public var isShowHud: Bool = false - @Published public var hudText: String = "" - @Published public var type: HUDMessageType = .default - - public init() {} -} - -public extension PresentationRouter { - func present(_ alert: RootAlert) { - self.alert = alert - } - - func dismiss() { - alert = nil - } -} - -public extension PresentationRouter { - func present(_ text: String, type: HUDMessageType = .default) { - hudText = text - self.type = type - isShowHud = true - } -} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift b/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift deleted file mode 100644 index 77ea23c..0000000 --- a/Sources/OversizeKit/RouterKit/Protocols/Alertable.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// Alertable.swift, created on 14.04.2024 -// - -import Foundation - -public protocol Alertable: Equatable, Hashable, Identifiable {} - -public extension Alertable { - static func == (lhs: Self, rhs: Self) -> Bool { - if lhs.id == rhs.id { - true - } else { - false - } - } - - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } -} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift b/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift deleted file mode 100644 index 3cf68f3..0000000 --- a/Sources/OversizeKit/RouterKit/Protocols/Menuble.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// File.swift, created on 06.05.2024 -// - -public protocol Menuble: CaseIterable, Equatable, Identifiable {} - -public extension Menuble { - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } -} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift b/Sources/OversizeKit/RouterKit/Protocols/Routable.swift deleted file mode 100644 index a54f673..0000000 --- a/Sources/OversizeKit/RouterKit/Protocols/Routable.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// Routable.swift, created on 14.04.2024 -// - -import SwiftUI - -public protocol Routable: Equatable, Hashable, Identifiable {} - -public extension Routable { - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } - - static func == (lhs: Self, rhs: Self) -> Bool { - if lhs.id == rhs.id { - true - } else { - false - } - } -} diff --git a/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift b/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift deleted file mode 100644 index 1116b72..0000000 --- a/Sources/OversizeKit/RouterKit/Protocols/Tabable.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// Tabable.swift, created on 14.04.2024 -// - -import Foundation - -public protocol Tabable: CaseIterable, Equatable, Identifiable {} - -public extension Tabable { - func hash(into hasher: inout Hasher) { - hasher.combine(id) - } -} diff --git a/Sources/OversizeKit/RouterKit/Router.swift b/Sources/OversizeKit/RouterKit/Router.swift deleted file mode 100644 index 98cd61f..0000000 --- a/Sources/OversizeKit/RouterKit/Router.swift +++ /dev/null @@ -1,118 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// Router.swift, created on 13.04.2024 -// - -import SwiftUI - -@available(iOS 16.0, *) -public final class Router: ObservableObject { - // Path - @Published public var path = NavigationPath() - @Published public var sheetPath = NavigationPath() - @Published public var fullScreenCoverPath = NavigationPath() - - // Sheets - @Published public var sheet: Destination? - @Published public var fullScreenCover: Destination? - @Published public var menu: Destination? - @Published public var sheetDetents: Set = [] - @Published public var dragIndicator: Visibility = .hidden - @Published public var dismissDisabled: Bool = false - - public init() {} -} - -@available(iOS 16.0, *) -public extension Router { - func changeMenu(_ screen: Destination) { - menu = screen - } -} - -@available(iOS 16.0, *) -public extension Router { - func move(_ screen: Destination) { - path.append(screen) - } - - func backToRoot() { - path.removeLast(path.count) - } - - func back(_ count: Int = 1) { - let pathCount = path.count - count - if pathCount > -1 { - path.removeLast(count) - } - } -} - -// MARK: - Sheets - -@available(iOS 16.0, *) -public extension Router { - func present(_ sheet: Destination, fullScreen: Bool = false) { - if fullScreen { - if fullScreenCover != nil { - fullScreenCover = nil - } - fullScreenCover = sheet - } else { - restSheet() - self.sheet = sheet - } - } - - func present(_ sheet: Destination, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) { - restSheet() - sheetDetents = detents - dragIndicator = indicator - self.dismissDisabled = dismissDisabled - self.sheet = sheet - } - - func backOrDismiss() { - if sheet != nil || fullScreenCover != nil { - sheet = nil - fullScreenCover = nil - } else { - back() - } - } - - func dismiss() { - sheet = nil - fullScreenCover = nil - } - - func dismissSheet() { - sheet = nil - } - - func dismissFullScreenCover() { - fullScreenCover = nil - } - - func dismissDisabled(_ isDismissDisabled: Bool = true) { - dismissDisabled = isDismissDisabled - } - - private func restSheet() { - if sheet != nil { - sheet = nil - } - if fullScreenCover != nil { - fullScreenCover = nil - } - if dragIndicator != .hidden { - dragIndicator = .hidden - } - if dismissDisabled { - dismissDisabled = false - } - if sheetDetents.isEmpty == false { - sheetDetents = [] - } - } -} diff --git a/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift b/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift new file mode 100644 index 0000000..48a29ec --- /dev/null +++ b/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift @@ -0,0 +1,64 @@ +// +// Copyright © 2024 Alexander Romanov +// ResolveRouter.swift, created on 16.05.2024 +// + +import Foundation +import OversizeComponents +import OversizeLocalizable +import OversizeNetwork +import SwiftUI + +extension SettingsScreen { + @ViewBuilder + func view() -> some View { + switch self { + case .premium: + StoreView() + case .soundAndVibration: + SoundsAndVibrationsSettingsView() + case .appearance: + AppearanceSettingView() + case .sync: + iCloudSettingsView() + case let .premiumFeature(feature: feature): + StoreFeatureDetailView(selection: feature) + case .about: + AboutView() + case .feedback: + FeedbackView() + case .ourResorses: + OurResorsesView() + case .support: + SupportView() + case .border: + BorderSettingView() + case .font: + FontSettingView() + case .radius: + RadiusSettingView() + case .notifications: + NotificationsSettingsView() + case .setPINCode: + SetPINCodeView(action: .set) + case .updatePINCode: + SetPINCodeView(action: .update) + case .security: + SecuritySettingsView() + case let .offer(event: event): + StoreSpecialOfferView(event: event) + case let .webView(url: url): + WebView(url: url) + case let .sendMail(to: to, subject: subject, content: content): + #if os(iOS) + MailView( + to: to, + subject: subject, + content: content + ) + #else + EmptyView() + #endif + } + } +} diff --git a/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift b/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift new file mode 100644 index 0000000..9a7c7fc --- /dev/null +++ b/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift @@ -0,0 +1,73 @@ +// +// Copyright © 2024 Alexander Romanov +// SettingsRouting.swift, created on 10.05.2024 +// + +import OversizeRouter +import SwiftUI + +public struct SettingsRoutingView: View where Root: View { + @StateObject private var router: Router = .init() + @StateObject private var hudRouter: HUDRouter = .init() + private let root: () -> Root + + public init(@ViewBuilder root: @escaping () -> Root) { + self.root = root + } + + public var body: some View { + NavigationStack(path: $router.path) { + root() + .navigationDestination(for: SettingsScreen.self) { destination in + destination.view() + } + } + .onSettingsNavigate(routerNavigate) + .sheet( + item: $router.sheet, + content: { sheet in + NavigationStack(path: $router.sheetPath) { + sheet.view() + .navigationDestination(for: SettingsScreen.self) { destination in + destination.view() + } + } + .presentationDetents(router.sheetDetents) + .presentationDragIndicator(router.dragIndicator) + .interactiveDismissDisabled(router.dismissDisabled) + .systemServices() + .onSettingsNavigate(routerNavigate) + } + ) + #if os(iOS) + .fullScreenCover(item: $router.fullScreenCover) { fullScreenCover in + fullScreenCover.view() + .systemServices() + .onSettingsNavigate(routerNavigate) + } + #endif + } + + func routerNavigate(navigationType: SettingsNavigationType) { + switch navigationType { + case let .move(screen): + router.move(screen) + case .backToRoot: + router.backToRoot() + case let .back(count): + router.back(count) + case let .present(sheet, detents: detents, indicator: indicator, dismissDisabled: dismissDisabled): + router.present(sheet, detents: detents, indicator: indicator, dismissDisabled: dismissDisabled) + case .dismiss: + router.dismiss() + case .dismissSheet: + router.dismissSheet() + case .dismissFullScreenCover: + router.dismissFullScreenCover() + case let .dismissDisabled(isDismissDisabled): + router.dismissDisabled(isDismissDisabled) + case let .presentHUD(text, type): + hudRouter.present(text, type: type) + } + } +} diff --git a/Sources/OversizeKit/RouterKit/TabRouter.swift b/Sources/OversizeKit/RouterKit/TabRouter.swift deleted file mode 100644 index 4527046..0000000 --- a/Sources/OversizeKit/RouterKit/TabRouter.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// TabRouter.swift, created on 13.04.2024 -// - -import Foundation - -public class TabRouter: ObservableObject { - @Published public var tab: Tab - - public init(tab: Tab) { - self.tab = tab - } - - public func changeTab(_ tab: Tab) { - self.tab = tab - } -} diff --git a/Sources/OversizeKit/SettingsKit/Views/Screens.swift b/Sources/OversizeKit/SettingsKit/Views/Screens.swift index a6058c7..fa48fb7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Screens.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Screens.swift @@ -5,6 +5,7 @@ import OversizeModels import OversizeNetwork +import OversizeRouter import SwiftUI public enum SettingsScreen: Routable { From 3eb5a6ea97cfb7d676daebc6768510fc42126f6e Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 13:40:54 +0300 Subject: [PATCH 34/39] Add wathOS example --- AppExample/Example.xcodeproj/project.pbxproj | 90 +++++++++++++++++++ .../Screens/Onboarding/OnboardingView.swift | 2 + 2 files changed, 92 insertions(+) diff --git a/AppExample/Example.xcodeproj/project.pbxproj b/AppExample/Example.xcodeproj/project.pbxproj index d0a2ce7..d620b5e 100644 --- a/AppExample/Example.xcodeproj/project.pbxproj +++ b/AppExample/Example.xcodeproj/project.pbxproj @@ -766,6 +766,96 @@ }; name = Release; }; + 84664C3F2BF9FD6500A24148 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Example (watchOS) Watch App/Preview Content\""; + DEVELOPMENT_TEAM = ER582ZK85C; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Example (watchOS)"; + INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + INFOPLIST_KEY_WKWatchOnly = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "app.oversize.Example--watchOS-.watchkitapp"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Debug; + }; + 84664C402BF9FD6500A24148 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Example (watchOS) Watch App/Preview Content\""; + DEVELOPMENT_TEAM = ER582ZK85C; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Example (watchOS)"; + INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + INFOPLIST_KEY_WKWatchOnly = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "app.oversize.Example--watchOS-.watchkitapp"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Release; + }; + 84664C432BF9FD6500A24148 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ER582ZK85C; + INFOPLIST_KEY_CFBundleDisplayName = "Example (watchOS)"; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "app.oversize.Example--watchOS-"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 84664C442BF9FD6500A24148 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ER582ZK85C; + INFOPLIST_KEY_CFBundleDisplayName = "Example (watchOS)"; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "app.oversize.Example--watchOS-"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ diff --git a/AppExample/Example/Screens/Onboarding/OnboardingView.swift b/AppExample/Example/Screens/Onboarding/OnboardingView.swift index 19d572e..4e0b58c 100644 --- a/AppExample/Example/Screens/Onboarding/OnboardingView.swift +++ b/AppExample/Example/Screens/Onboarding/OnboardingView.swift @@ -3,6 +3,8 @@ // OnboardingView.swift, created on 25.09.2023 // + + import Factory import OversizeServices import OversizeUI From ae19bebd3d75c9991ba7cdf2275ed5ca9146c6d8 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 10 Nov 2024 14:10:03 +0300 Subject: [PATCH 35/39] Update routing, onboarding and up to Swift6 --- .../xcschemes/xcschememanagement.plist | 2 +- .../Screens/Onboarding/OnboardingView.swift | 2 - .../SettingsRouter/ResolveRouter.swift | 64 ---------- .../SettingsRouter/SettingsRouting.swift | 73 ----------- .../SettingsKit/Views/Screens.swift | 113 ------------------ 5 files changed, 1 insertion(+), 253 deletions(-) delete mode 100644 Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift delete mode 100644 Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift delete mode 100644 Sources/OversizeKit/SettingsKit/Views/Screens.swift diff --git a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist index 597af26..33cfa4a 100644 --- a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -12,7 +12,7 @@ Example.xcscheme_^#shared#^_ orderHint - 0 + 1 SuppressBuildableAutocreation diff --git a/AppExample/Example/Screens/Onboarding/OnboardingView.swift b/AppExample/Example/Screens/Onboarding/OnboardingView.swift index 4e0b58c..19d572e 100644 --- a/AppExample/Example/Screens/Onboarding/OnboardingView.swift +++ b/AppExample/Example/Screens/Onboarding/OnboardingView.swift @@ -3,8 +3,6 @@ // OnboardingView.swift, created on 25.09.2023 // - - import Factory import OversizeServices import OversizeUI diff --git a/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift b/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift deleted file mode 100644 index 48a29ec..0000000 --- a/Sources/OversizeKit/RouterKit/SettingsRouter/ResolveRouter.swift +++ /dev/null @@ -1,64 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// ResolveRouter.swift, created on 16.05.2024 -// - -import Foundation -import OversizeComponents -import OversizeLocalizable -import OversizeNetwork -import SwiftUI - -extension SettingsScreen { - @ViewBuilder - func view() -> some View { - switch self { - case .premium: - StoreView() - case .soundAndVibration: - SoundsAndVibrationsSettingsView() - case .appearance: - AppearanceSettingView() - case .sync: - iCloudSettingsView() - case let .premiumFeature(feature: feature): - StoreFeatureDetailView(selection: feature) - case .about: - AboutView() - case .feedback: - FeedbackView() - case .ourResorses: - OurResorsesView() - case .support: - SupportView() - case .border: - BorderSettingView() - case .font: - FontSettingView() - case .radius: - RadiusSettingView() - case .notifications: - NotificationsSettingsView() - case .setPINCode: - SetPINCodeView(action: .set) - case .updatePINCode: - SetPINCodeView(action: .update) - case .security: - SecuritySettingsView() - case let .offer(event: event): - StoreSpecialOfferView(event: event) - case let .webView(url: url): - WebView(url: url) - case let .sendMail(to: to, subject: subject, content: content): - #if os(iOS) - MailView( - to: to, - subject: subject, - content: content - ) - #else - EmptyView() - #endif - } - } -} diff --git a/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift b/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift deleted file mode 100644 index 9a7c7fc..0000000 --- a/Sources/OversizeKit/RouterKit/SettingsRouter/SettingsRouting.swift +++ /dev/null @@ -1,73 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// SettingsRouting.swift, created on 10.05.2024 -// - -import OversizeRouter -import SwiftUI - -public struct SettingsRoutingView: View where Root: View { - @StateObject private var router: Router = .init() - @StateObject private var hudRouter: HUDRouter = .init() - private let root: () -> Root - - public init(@ViewBuilder root: @escaping () -> Root) { - self.root = root - } - - public var body: some View { - NavigationStack(path: $router.path) { - root() - .navigationDestination(for: SettingsScreen.self) { destination in - destination.view() - } - } - .onSettingsNavigate(routerNavigate) - .sheet( - item: $router.sheet, - content: { sheet in - NavigationStack(path: $router.sheetPath) { - sheet.view() - .navigationDestination(for: SettingsScreen.self) { destination in - destination.view() - } - } - .presentationDetents(router.sheetDetents) - .presentationDragIndicator(router.dragIndicator) - .interactiveDismissDisabled(router.dismissDisabled) - .systemServices() - .onSettingsNavigate(routerNavigate) - } - ) - #if os(iOS) - .fullScreenCover(item: $router.fullScreenCover) { fullScreenCover in - fullScreenCover.view() - .systemServices() - .onSettingsNavigate(routerNavigate) - } - #endif - } - - func routerNavigate(navigationType: SettingsNavigationType) { - switch navigationType { - case let .move(screen): - router.move(screen) - case .backToRoot: - router.backToRoot() - case let .back(count): - router.back(count) - case let .present(sheet, detents: detents, indicator: indicator, dismissDisabled: dismissDisabled): - router.present(sheet, detents: detents, indicator: indicator, dismissDisabled: dismissDisabled) - case .dismiss: - router.dismiss() - case .dismissSheet: - router.dismissSheet() - case .dismissFullScreenCover: - router.dismissFullScreenCover() - case let .dismissDisabled(isDismissDisabled): - router.dismissDisabled(isDismissDisabled) - case let .presentHUD(text, type): - hudRouter.present(text, type: type) - } - } -} diff --git a/Sources/OversizeKit/SettingsKit/Views/Screens.swift b/Sources/OversizeKit/SettingsKit/Views/Screens.swift deleted file mode 100644 index fa48fb7..0000000 --- a/Sources/OversizeKit/SettingsKit/Views/Screens.swift +++ /dev/null @@ -1,113 +0,0 @@ -// -// Copyright © 2024 Alexander Romanov -// File.swift, created on 15.04.2024 -// - -import OversizeModels -import OversizeNetwork -import OversizeRouter -import SwiftUI - -public enum SettingsScreen: Routable { - case premium - case premiumFeature(feature: PlistConfiguration.Store.StoreFeature) - case soundAndVibration - case appearance - case sync - case about - case feedback - case ourResorses - case support - case border - case font - case radius - case notifications - case setPINCode - case updatePINCode - case security - case offer(event: Components.Schemas.SpecialOffer) - case webView(url: URL) - case sendMail(to: String, subject: String, content: String) -} - -public extension SettingsScreen { - var id: String { - switch self { - case .premium: - "premium" - case .premiumFeature: - "premiumFeature" - case .soundAndVibration: - "soundAndVibration" - case .appearance: - "appearance" - case .sync: - "sync" - case .about: - "about" - case .feedback: - "feedback" - case .webView: - "webView" - case .ourResorses: - "ourResorses" - case .support: - "support" - case .border: - "border" - case .font: - "font" - case .radius: - "radius" - case .setPINCode: - "setPINCode" - case .updatePINCode: - "updatePINCode" - case .security: - "security" - case .offer: - "offer" - case .sendMail: - "sendMail" - case .notifications: - "notifications" - } - } -} - -public struct SettingsNavigateAction { - public typealias Action = (SettingsNavigationType) -> Void - public let action: Action - public func callAsFunction(_ navigationType: SettingsNavigationType) { - action(navigationType) - } -} - -public enum SettingsNavigationType { - case move(SettingsScreen) - case backToRoot - case back(Int = 1) - case present(_ sheet: SettingsScreen, detents: Set = [.large], indicator: Visibility = .hidden, dismissDisabled: Bool = false) - case dismiss - case dismissSheet - case dismissFullScreenCover - case dismissDisabled(_ isDismissDisabled: Bool = true) - case presentHUD(_ text: String, type: HUDMessageType) -} - -public struct SettingsNavigateEnvironmentKey: EnvironmentKey { - public static var defaultValue: SettingsNavigateAction = .init(action: { _ in }) -} - -public extension EnvironmentValues { - var settingsNavigate: SettingsNavigateAction { - get { self[SettingsNavigateEnvironmentKey.self] } - set { self[SettingsNavigateEnvironmentKey.self] = newValue } - } -} - -public extension View { - func onSettingsNavigate(_ action: @escaping SettingsNavigateAction.Action) -> some View { - environment(\.settingsNavigate, SettingsNavigateAction(action: action)) - } -} From b2648c4a7c90cca25bd274d0587fadd8562b5bbb Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Mon, 11 Nov 2024 21:17:02 +0300 Subject: [PATCH 36/39] Fix example --- .../admin.xcuserdatad/xcschemes/xcschememanagement.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist index 33cfa4a..597af26 100644 --- a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -12,7 +12,7 @@ Example.xcscheme_^#shared#^_ orderHint - 1 + 0 SuppressBuildableAutocreation From 93e668e6909f2bf9b90bd0e5b622ca6f8bcf2389 Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Thu, 26 Dec 2024 00:22:18 +0300 Subject: [PATCH 37/39] Format and small refactor --- .swiftformat | 5 +- AppExample/Example/Router/Alerts.swift | 12 +- AppExample/Example/Router/Router.swift | 4 +- AppExample/Example/Router/Screens.swift | 4 +- AppExample/Example/Router/Tabs.swift | 30 +- Package.swift | 2 +- .../CreateEventScreen/CreateEventView.swift | 794 +++++++++--------- .../CreateEventViewModel.swift | 300 +++---- .../CreateEventViewSheet.swift | 178 ++-- .../SaveForView/SaveForView.swift | 64 +- .../Pickers/AlertPicker.swift | 64 +- .../Pickers/CalendarPicker.swift | 84 +- .../Pickers/RepeatPicker.swift | 198 ++--- .../AttendeesList/AttendeesView.swift | 130 +-- .../AttendeesList/AttendeesViewModel.swift | 76 +- .../ContactsLists/ContactsListsView.swift | 130 +-- .../ContactsListsViewModel.swift | 68 +- .../ContactsPicker/EmailPickerView.swift | 354 ++++---- .../ContactsPicker/EmailPickerViewModel.swift | 74 +- Sources/OversizeKit/AdsKit/AdView.swift | 32 +- .../DeeplinkKit/DeeplinkModifier.swift | 30 + .../OversizeKit/LauncherKit/Launcher.swift | 6 +- .../LauncherKit/LauncherViewModel.swift | 20 +- .../LauncherKit/SplashScreen.swift | 18 +- .../LockscreenKit/LockscreenView.swift | 94 ++- .../SettingsRouter/ResolveRouter.swift | 12 +- .../Views/About/About/AboutView.swift | 130 +-- .../Views/About/FeedbackView.swift | 66 +- .../Views/About/OurResorsesView.swift | 14 +- .../SettingsKit/Views/About/SupportView.swift | 66 +- .../Apperance/AppearanceSettingView.swift | 158 ++-- .../Views/Apperance/BorderSettingView.swift | 38 +- .../Views/Apperance/FontSettingView.swift | 66 +- .../Views/Apperance/RadiusSettingView.swift | 28 +- .../Security/PINCode/SetPINCodeView.swift | 39 +- .../Views/Security/SecuritySettingsView.swift | 8 +- .../SettingsKit/Views/SettingsView.swift | 122 +-- .../SoundsAndVibrationsSettingsView.swift | 14 +- .../Views/iCloud/iCloudSettingsView.swift | 7 +- .../StateKit/LoadingViewState.swift | 27 +- .../StateKit/ResultExtension.swift | 34 + .../AppStoreProduct/AppStoreProductView.swift | 44 +- .../AppStoreProductViewController.swift | 84 +- .../StoreScreen/StoreInstuctinsView.swift | 120 +-- .../StoreScreen/StoreSpecialOfferView.swift | 50 +- .../StoreKit/StoreScreen/StoreView.swift | 292 +++---- .../ViewModel/StoreViewModel.swift | 44 +- .../ViewModifier/PremiumBlockOverlay.swift | 10 +- .../StoreKit/Views/BuyButtonStyle.swift | 70 +- .../StoreKit/Views/PrmiumBannerRow.swift | 32 +- .../Views/StoreFeatureDetailView.swift | 68 +- .../Views/StoreFeaturesLargeView.swift | 20 +- .../StoreKit/Views/StoreFeaturesView.swift | 4 +- .../Views/StorePaymentButtonBar.swift | 14 +- .../StoreKit/Views/StoreProductView.swift | 94 +-- .../Views/SubscriptionPrivacyView.swift | 56 +- .../SystemKit/ErrorView/ErrorView.swift | 30 +- .../SystemKit/SuccessView/SuccessView.swift | 117 +++ .../AddressField/AddressField.swift | 18 +- .../AddressPicker/AddressPicker.swift | 359 ++++---- .../AddressPickerViewModel.swift | 110 +-- .../MapCoordinateView/MapCoordinateView.swift | 248 +++--- .../NoticeListViewModel.swift | 4 +- .../LocalNotificationSetScreenViewModel.swift | 118 +-- .../LocalNotificationView.swift | 168 ++-- .../Model/LocalNotificationAlertsTimes.swift | 36 +- .../OnboardingView.swift | 100 +-- .../OversizePhotoKit/PhotoOptionsView.swift | 22 +- 68 files changed, 3089 insertions(+), 2843 deletions(-) create mode 100644 Sources/OversizeKit/DeeplinkKit/DeeplinkModifier.swift create mode 100644 Sources/OversizeKit/StateKit/ResultExtension.swift create mode 100644 Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift diff --git a/.swiftformat b/.swiftformat index 21f72f9..b12b883 100644 --- a/.swiftformat +++ b/.swiftformat @@ -1,2 +1,3 @@ ---swiftversion 5.8 ---disable preferKeyPath \ No newline at end of file +--swiftversion 6.0 +--disable preferKeyPath +--ifdef no-indent \ No newline at end of file diff --git a/AppExample/Example/Router/Alerts.swift b/AppExample/Example/Router/Alerts.swift index 4b1c578..d50317c 100644 --- a/AppExample/Example/Router/Alerts.swift +++ b/AppExample/Example/Router/Alerts.swift @@ -16,30 +16,30 @@ enum RootAlert: Identifiable { var id: String { switch self { case .dismiss: - return "dismiss" + "dismiss" case .delete: - return "delete" + "delete" case .appError: - return "appError" + "appError" } } var alert: Alert { switch self { case let .dismiss(action): - return Alert( + Alert( title: Text("Are you sure you want to dismiss?"), primaryButton: .destructive(Text("Dismiss"), action: action), secondaryButton: .cancel() ) case let .delete(action): - return Alert( + Alert( title: Text("Are you sure you want to delete?"), primaryButton: .destructive(Text("\(L10n.Button.delete)"), action: action), secondaryButton: .cancel() ) case let .appError(error: error): - return Alert( + Alert( title: Text(error.title), message: Text(error.subtitle.valueOrEmpty), dismissButton: .cancel() diff --git a/AppExample/Example/Router/Router.swift b/AppExample/Example/Router/Router.swift index 3bbf5fd..7c5062f 100644 --- a/AppExample/Example/Router/Router.swift +++ b/AppExample/Example/Router/Router.swift @@ -201,9 +201,9 @@ extension Router { extension Screen: Hashable, Equatable { static func == (lhs: Screen, rhs: Screen) -> Bool { if lhs.id == rhs.id { - return true + true } else { - return false + false } } diff --git a/AppExample/Example/Router/Screens.swift b/AppExample/Example/Router/Screens.swift index 0335d8d..5999126 100644 --- a/AppExample/Example/Router/Screens.swift +++ b/AppExample/Example/Router/Screens.swift @@ -16,9 +16,9 @@ extension Screen: Identifiable { var id: String { switch self { case .settings: - return "settings" + "settings" case .premium: - return "premium" + "premium" } } } diff --git a/AppExample/Example/Router/Tabs.swift b/AppExample/Example/Router/Tabs.swift index 5ecbe73..e1ccd9e 100644 --- a/AppExample/Example/Router/Tabs.swift +++ b/AppExample/Example/Router/Tabs.swift @@ -15,45 +15,45 @@ public enum RootTab: String { var id: String { switch self { case .main: - return "home" + "home" case .secondary: - return "secondary" + "secondary" case .tertiary: - return "tertiary" + "tertiary" case .quaternary: - return "quaternary" + "quaternary" case .settings: - return "settings" + "settings" } } var title: String { switch self { case .main: - return "Home" + "Home" case .secondary: - return "Secondary" + "Secondary" case .tertiary: - return "Tertiary" + "Tertiary" case .quaternary: - return "Quaternary" + "Quaternary" case .settings: - return "Settings" + "Settings" } } var image: Image { switch self { case .main: - return Image(systemName: "") + Image(systemName: "") case .secondary: - return Image(systemName: "") + Image(systemName: "") case .tertiary: - return Image(systemName: "") + Image(systemName: "") case .quaternary: - return Image(systemName: "") + Image(systemName: "") case .settings: - return Image(systemName: "") + Image(systemName: "") } } } diff --git a/Package.swift b/Package.swift index 1795262..c9f467a 100644 --- a/Package.swift +++ b/Package.swift @@ -32,7 +32,7 @@ let developmentDependencies: [PackageDescription.Package.Dependency] = [ .package(url: "https://github.com/hmlongco/Factory.git", .upToNextMajor(from: "2.1.3")), ] -var dependencies: [PackageDescription.Package.Dependency] = remoteDependencies +var dependencies: [PackageDescription.Package.Dependency] = developmentDependencies if ProcessInfo.processInfo.environment["BUILD_MODE"] == "DEV" { dependencies = developmentDependencies diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift index cfdb2ca..df0afe4 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift @@ -4,7 +4,7 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import MapKit import OversizeCalendarService @@ -16,316 +16,270 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public struct CreateEventView: View { - @StateObject var viewModel: CreateEventViewModel - @Environment(\.dismiss) var dismiss - @FocusState private var focusedField: FocusField? +public struct CreateEventView: View { + @StateObject var viewModel: CreateEventViewModel + @Environment(\.dismiss) var dismiss + @FocusState private var focusedField: FocusField? - public init(_ type: CreateEventType = .new(nil, calendar: nil)) { - _viewModel = StateObject(wrappedValue: CreateEventViewModel(type)) - } + public init(_ type: CreateEventType = .new(nil, calendar: nil)) { + _viewModel = StateObject(wrappedValue: CreateEventViewModel(type)) + } - public var body: some View { - PageView { - content() - } - .leadingBar { - BarButton(.closeAction { - dismiss() - }) - } - .trailingBar { - BarButton(.accent(L10n.Button.save, action: { - switch viewModel.type { - case .new: + public var body: some View { + PageView { + content() + } + .leadingBar { + BarButton(.closeAction { + dismiss() + }) + } + .trailingBar { + BarButton(.accent(L10n.Button.save, action: { + switch viewModel.type { + case .new: + Task { + _ = await viewModel.save() + dismiss() + } + case .update: + if viewModel.span == nil, viewModel.repitRule != .never { + viewModel.present(.span) + } else { Task { _ = await viewModel.save() dismiss() } - case .update: - if viewModel.span == nil, viewModel.repitRule != .never { - viewModel.present(.span) - } else { - Task { - _ = await viewModel.save() - dismiss() - } - } - } - })) - .disabled(viewModel.title.isEmpty) - } - .titleLabel { - Button { viewModel.present(.calendar) } label: { - HStack(spacing: .xxxSmall) { - Circle() - .fill(Color(viewModel.calendar?.cgColor ?? CGColor(red: 0.4, green: 0.4, blue: 0.4, alpha: 1))) - .frame(width: 16, height: 16) - .padding(.xxxSmall) - - Text(viewModel.calendar?.title ?? "") - .padding(.trailing, .xxSmall) } } - .buttonStyle(.tertiary) - .controlBorderShape(.capsule) - .controlSize(.mini) - } - .navigationBarDividerColor(Color.onSurfacePrimary.opacity(0.1)) - .safeAreaInset(edge: .bottom) { - bottomBar - } - .task { - await viewModel.fetchData() - } - .onAppear { - focusedField = .title - } - .sheet(item: $viewModel.sheet) { sheet in - resolveSheet(sheet: sheet) - } - .onChange(of: viewModel.span) { _ in - Task { - _ = await viewModel.save() - dismiss() + })) + .disabled(viewModel.title.isEmpty) + } + .titleLabel { + Button { viewModel.present(.calendar) } label: { + HStack(spacing: .xxxSmall) { + Circle() + .fill(Color(viewModel.calendar?.cgColor ?? CGColor(red: 0.4, green: 0.4, blue: 0.4, alpha: 1))) + .frame(width: 16, height: 16) + .padding(.xxxSmall) + + Text(viewModel.calendar?.title ?? "") + .padding(.trailing, .xxSmall) } } + .buttonStyle(.tertiary) + .controlBorderShape(.capsule) + .controlSize(.mini) } + .navigationBarDividerColor(Color.onSurfacePrimary.opacity(0.1)) + .safeAreaInset(edge: .bottom) { + bottomBar + } + .task { + await viewModel.fetchData() + } + .onAppear { + focusedField = .title + } + .sheet(item: $viewModel.sheet) { sheet in + resolveSheet(sheet: sheet) + } + .onChange(of: viewModel.span) { _ in + Task { + _ = await viewModel.save() + dismiss() + } + } + } - @ViewBuilder - private func content() -> some View { - VStack(spacing: .small) { - TextField("Event name", text: $viewModel.title) - .title(.bold) - .focused($focusedField, equals: .title) - .onSurfacePrimaryForeground() - .padding(.bottom, .xxxSmall) - .padding(.horizontal, .small) + @ViewBuilder + private func content() -> some View { + VStack(spacing: .small) { + TextField("Event name", text: $viewModel.title) + .title(.bold) + .focused($focusedField, equals: .title) + .onSurfacePrimaryForeground() + .padding(.bottom, .xxxSmall) + .padding(.horizontal, .small) - #if !os(watchOS) - textEditor - #endif + #if !os(watchOS) + textEditor + #endif - calendarButtons + calendarButtons - allDayEvent + allDayEvent - locationView + locationView - alarmView + alarmView - membersView + membersView - repitView - } - .padding(.horizontal, .small) - .padding(.vertical, .medium) + repitView } + .padding(.horizontal, .small) + .padding(.vertical, .medium) + } - var allDayEvent: some View { - Surface { - viewModel.isAllDay.toggle() - } label: { - HStack { - Text("All-day event") - .headline(.semibold) - .foregroundColor(.onSurfacePrimary) - .padding(.leading, .xxxSmall) + var allDayEvent: some View { + Surface { + viewModel.isAllDay.toggle() + } label: { + HStack { + Text("All-day event") + .headline(.semibold) + .foregroundColor(.onSurfacePrimary) + .padding(.leading, .xxxSmall) - Spacer() + Spacer() - Toggle(isOn: $viewModel.isAllDay) {} - .labelsHidden() - } + Toggle(isOn: $viewModel.isAllDay) {} + .labelsHidden() } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.init(horizontal: .xSmall, vertical: .xSmall)) - .controlRadius(.large) } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.init(horizontal: .xSmall, vertical: .xSmall)) + .controlRadius(.large) + } - #if !os(watchOS) - var textEditor: some View { - VStack(spacing: 2) { - TextEditor(text: $viewModel.note) - .onSurfacePrimaryForeground() - .padding(.horizontal, .xSmall) - .padding(.vertical, .xxSmall) - .focused($focusedField, equals: .note) - .body(.medium) - .scrollContentBackground(.hidden) - .background { - #if os(iOS) - RoundedRectangleCorner(radius: 4, corners: [.bottomLeft, .bottomRight]) - .fillSurfaceSecondary() - .overlay(alignment: .topLeading) { - if viewModel.note.isEmpty { - Text("Note") - .body(.medium) - .onSurfaceTertiaryForeground() - .padding(.small) - } - } - #else - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - .overlay(alignment: .topLeading) { - if viewModel.note.isEmpty { - Text("Note") - .body(.medium) - .onSurfaceTertiaryForeground() - .padding(.small) - } - } - #endif + #if !os(watchOS) + var textEditor: some View { + VStack(spacing: 2) { + TextEditor(text: $viewModel.note) + .onSurfacePrimaryForeground() + .padding(.horizontal, .xSmall) + .padding(.vertical, .xxSmall) + .focused($focusedField, equals: .note) + .body(.medium) + .scrollContentBackground(.hidden) + .background { + #if os(iOS) + RoundedRectangleCorner(radius: 4, corners: [.bottomLeft, .bottomRight]) + .fillSurfaceSecondary() + .overlay(alignment: .topLeading) { + if viewModel.note.isEmpty { + Text("Note") + .body(.medium) + .onSurfaceTertiaryForeground() + .padding(.small) + } } - .frame(minHeight: 76) - - TextField("URL", text: $viewModel.url) - .focused($focusedField, equals: .url) - .onSurfacePrimaryForeground() - .body(.medium) - .padding(.horizontal, .small) - .padding(.vertical, 18) - .background { - #if os(iOS) - RoundedRectangleCorner(radius: 4, corners: [.topLeft, .topRight]) - .fillSurfaceSecondary() - #else - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - #endif + #else + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + .overlay(alignment: .topLeading) { + if viewModel.note.isEmpty { + Text("Note") + .body(.medium) + .onSurfaceTertiaryForeground() + .padding(.small) + } } + #endif } - .clipShape(RoundedRectangle(cornerRadius: .large, style: .continuous)) - } - #endif - - var repitView: some View { - Group { - if viewModel.repitRule != .never { - Surface { - Row(viewModel.repitRule.title, subtitle: repeatSubtitleText) { - viewModel.present(.repeat) - } leading: { - IconDeprecated(.refresh) - .iconColor(.onSurfacePrimary) - } - .rowClearButton(style: .onSurface) { - viewModel.repitRule = .never - viewModel.repitEndRule = .never - } - .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) - } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) + .frame(minHeight: 76) + + TextField("URL", text: $viewModel.url) + .focused($focusedField, equals: .url) + .onSurfacePrimaryForeground() + .body(.medium) + .padding(.horizontal, .small) + .padding(.vertical, 18) + .background { + #if os(iOS) + RoundedRectangleCorner(radius: 4, corners: [.topLeft, .topRight]) + .fillSurfaceSecondary() + #else + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + #endif } - } } + .clipShape(RoundedRectangle(cornerRadius: .large, style: .continuous)) + } + #endif - var membersView: some View { - Group { - if !viewModel.members.isEmpty { - Surface { - VStack(spacing: .zero) { - ForEach(viewModel.members, id: \.self) { email in - Row(email) { - viewModel.present(.invites) - } leading: { - IconDeprecated(.user) - .iconColor(.onSurfacePrimary) - } - .rowClearButton(style: .onSurface) { - viewModel.members.remove(email) - } - .rowContentMargins(.small) - .overlay(alignment: .bottomLeading) { - Rectangle() - .fillSurfaceSecondary() - .padding(.leading, 56) - .frame(height: 1) - } - } - } + var repitView: some View { + Group { + if viewModel.repitRule != .never { + Surface { + Row(viewModel.repitRule.title, subtitle: repeatSubtitleText) { + viewModel.present(.repeat) + } leading: { + IconDeprecated(.refresh) + .iconColor(.onSurfacePrimary) + } + .rowClearButton(style: .onSurface) { + viewModel.repitRule = .never + viewModel.repitEndRule = .never } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) + .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) } } + } - @ViewBuilder - var alarmView: some View { - Group { - if !viewModel.alarms.isEmpty { - Surface { - VStack(spacing: .zero) { - ForEach(viewModel.alarms) { alarm in - Row(alarm.title) { - viewModel.present(.alarm) - } leading: { - IconDeprecated(.bell) - .iconColor(.onSurfacePrimary) - } - .rowClearButton(style: .onSurface) { - viewModel.alarms.remove(alarm) - } - .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) - .overlay(alignment: .bottomLeading) { - Rectangle() - .fillSurfaceSecondary() - .padding(.leading, 56) - .frame(height: 1) - } + var membersView: some View { + Group { + if !viewModel.members.isEmpty { + Surface { + VStack(spacing: .zero) { + ForEach(viewModel.members, id: \.self) { email in + Row(email) { + viewModel.present(.invites) + } leading: { + IconDeprecated(.user) + .iconColor(.onSurfacePrimary) + } + .rowClearButton(style: .onSurface) { + viewModel.members.remove(email) + } + .rowContentMargins(.small) + .overlay(alignment: .bottomLeading) { + Rectangle() + .fillSurfaceSecondary() + .padding(.leading, 56) + .frame(height: 1) } } } - .surfaceBorderColor(Color.surfaceSecondary) - .surfaceBorderWidth(1) - .surfaceContentMargins(.zero) - .controlRadius(.large) } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) } } + } - @ViewBuilder - var locationView: some View { - if viewModel.locationName != nil || viewModel.location != nil { + @ViewBuilder + var alarmView: some View { + Group { + if !viewModel.alarms.isEmpty { Surface { VStack(spacing: .zero) { - if let locationName = viewModel.locationName { - VStack(spacing: .xxSmall) { - Row(locationName) { - viewModel.present(.location) - } leading: { - IconDeprecated(.mapPin) - .iconColor(.onSurfacePrimary) - } - .rowClearButton(style: .onSurface) { - viewModel.locationName = nil - viewModel.location = nil - } - .rowContentMargins(.init(horizontal: .small, vertical: .xSmall)) + ForEach(viewModel.alarms) { alarm in + Row(alarm.title) { + viewModel.present(.alarm) + } leading: { + IconDeprecated(.bell) + .iconColor(.onSurfacePrimary) } - } - - if let location = viewModel.location { - let region = MKCoordinateRegion(center: location, latitudinalMeters: 10000, longitudinalMeters: 10000) - let annotations = [MapPreviewPoint(name: "\(viewModel.locationName ?? "")", coordinate: location)] - Map(coordinateRegion: .constant(region), annotationItems: annotations) { - MapMarker(coordinate: $0.coordinate) + .rowClearButton(style: .onSurface) { + viewModel.alarms.remove(alarm) } - .frame(height: 130) - .cornerRadius(.small) - .padding(.horizontal, .xxSmall) - .padding(.bottom, .xxSmall) - .onTapGesture { - focusedField = nil - viewModel.present(.location) + .surfaceContentMargins(.init(horizontal: .small, vertical: .medium)) + .overlay(alignment: .bottomLeading) { + Rectangle() + .fillSurfaceSecondary() + .padding(.leading, 56) + .frame(height: 1) } } } @@ -336,174 +290,220 @@ import SwiftUI .controlRadius(.large) } } + } + + @ViewBuilder + var locationView: some View { + if viewModel.locationName != nil || viewModel.location != nil { + Surface { + VStack(spacing: .zero) { + if let locationName = viewModel.locationName { + VStack(spacing: .xxSmall) { + Row(locationName) { + viewModel.present(.location) + } leading: { + IconDeprecated(.mapPin) + .iconColor(.onSurfacePrimary) + } + .rowClearButton(style: .onSurface) { + viewModel.locationName = nil + viewModel.location = nil + } + .rowContentMargins(.init(horizontal: .small, vertical: .xSmall)) + } + } - var repeatSubtitleText: String? { - switch viewModel.repitEndRule { - case .never: - return nil - case let .occurrenceCount(count): - return count > 1 ? "With \(count) repetitions" : "With 1 repetition" - case let .endDate(date): - return "Until \(date.formatted(date: .long, time: .omitted))" + if let location = viewModel.location { + let region = MKCoordinateRegion(center: location, latitudinalMeters: 10000, longitudinalMeters: 10000) + let annotations = [MapPreviewPoint(name: "\(viewModel.locationName ?? "")", coordinate: location)] + Map(coordinateRegion: .constant(region), annotationItems: annotations) { + MapMarker(coordinate: $0.coordinate) + } + .frame(height: 130) + .cornerRadius(.small) + .padding(.horizontal, .xxSmall) + .padding(.bottom, .xxSmall) + .onTapGesture { + focusedField = nil + viewModel.present(.location) + } + } + } } + .surfaceBorderColor(Color.surfaceSecondary) + .surfaceBorderWidth(1) + .surfaceContentMargins(.zero) + .controlRadius(.large) } + } - var calendarButtons: some View { - HStack(spacing: .small) { - Button { - focusedField = nil - viewModel.present(.startTime) - } label: { - VStack(alignment: .leading, spacing: .xxxSmall) { - Text("Starts") - .onSurfaceSecondaryForeground() - .subheadline(.semibold) - - Text(startDateText) + var repeatSubtitleText: String? { + switch viewModel.repitEndRule { + case .never: + nil + case let .occurrenceCount(count): + count > 1 ? "With \(count) repetitions" : "With 1 repetition" + case let .endDate(date): + "Until \(date.formatted(date: .long, time: .omitted))" + } + } + + var calendarButtons: some View { + HStack(spacing: .small) { + Button { + focusedField = nil + viewModel.present(.startTime) + } label: { + VStack(alignment: .leading, spacing: .xxxSmall) { + Text("Starts") + .onSurfaceSecondaryForeground() + .subheadline(.semibold) + + Text(startDateText) + .onSurfacePrimaryForeground() + .headline(.semibold) + + if !isCurrentYearEvent { + Text(viewModel.dateStart.formatted(.dateTime.year())) .onSurfacePrimaryForeground() .headline(.semibold) - - if !isCurrentYearEvent { - Text(viewModel.dateStart.formatted(.dateTime.year())) - .onSurfacePrimaryForeground() - .headline(.semibold) - } - } - .padding(.small) - .hLeading() - .background { - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() } } - .buttonStyle(.scale) + .padding(.small) + .hLeading() + .background { + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() + } + } + .buttonStyle(.scale) - Button { - focusedField = nil - viewModel.present(.endTime) - } label: { - VStack(alignment: .leading, spacing: .xxxSmall) { - Text("Ended") - .onSurfaceSecondaryForeground() - .subheadline(.semibold) - - Text(endDateText) + Button { + focusedField = nil + viewModel.present(.endTime) + } label: { + VStack(alignment: .leading, spacing: .xxxSmall) { + Text("Ended") + .onSurfaceSecondaryForeground() + .subheadline(.semibold) + + Text(endDateText) + .onSurfacePrimaryForeground() + .headline(.semibold) + + if !isCurrentYearEvent { + Text(viewModel.dateEnd.formatted(.dateTime.year())) .onSurfacePrimaryForeground() .headline(.semibold) - - if !isCurrentYearEvent { - Text(viewModel.dateEnd.formatted(.dateTime.year())) - .onSurfacePrimaryForeground() - .headline(.semibold) - } - } - .padding(.small) - .hLeading() - .background { - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() } } - .buttonStyle(.scale) + .padding(.small) + .hLeading() + .background { + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() + } } + .buttonStyle(.scale) } + } - var isCurrentYearEvent: Bool { - Calendar.current.component(.year, from: viewModel.dateStart) == Calendar.current.component(.year, from: Date()) && Calendar.current.component(.year, from: viewModel.dateEnd) == Calendar.current.component(.year, from: Date()) - } + var isCurrentYearEvent: Bool { + Calendar.current.component(.year, from: viewModel.dateStart) == Calendar.current.component(.year, from: Date()) && Calendar.current.component(.year, from: viewModel.dateEnd) == Calendar.current.component(.year, from: Date()) + } - var startDateText: String { - if Calendar.current.isDateInToday(viewModel.dateStart) { - return "Today \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInTomorrow(viewModel.dateStart) { - return "Tomorrow \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInYesterday(viewModel.dateStart) { - return "Yesterday \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } else { - return "\(viewModel.dateStart.formatted(.dateTime.day().month())) \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" - } + var startDateText: String { + if Calendar.current.isDateInToday(viewModel.dateStart) { + "Today \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInTomorrow(viewModel.dateStart) { + "Tomorrow \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInYesterday(viewModel.dateStart) { + "Yesterday \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" + } else { + "\(viewModel.dateStart.formatted(.dateTime.day().month())) \(viewModel.dateStart.formatted(date: .omitted, time: .shortened))" } + } - var endDateText: String { - if Calendar.current.isDateInToday(viewModel.dateEnd) { - return "Today \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInTomorrow(viewModel.dateEnd) { - return "Tomorrow \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else if Calendar.current.isDateInYesterday(viewModel.dateEnd) { - return "Yesterday \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } else { - return "\(viewModel.dateEnd.formatted(.dateTime.day().month())) \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" - } + var endDateText: String { + if Calendar.current.isDateInToday(viewModel.dateEnd) { + "Today \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInTomorrow(viewModel.dateEnd) { + "Tomorrow \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else if Calendar.current.isDateInYesterday(viewModel.dateEnd) { + "Yesterday \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" + } else { + "\(viewModel.dateEnd.formatted(.dateTime.day().month())) \(viewModel.dateEnd.formatted(date: .omitted, time: .shortened))" } + } - var bottomBar: some View { - HStack(spacing: .medium) { - Button { - Task { - focusedField = nil - viewModel.present(.location) - } - } label: { - if viewModel.isFetchUpdatePositon { - ProgressView() - } else { - IconDeprecated(.mapPin) - } + var bottomBar: some View { + HStack(spacing: .medium) { + Button { + Task { + focusedField = nil + viewModel.present(.location) } - .disabled(viewModel.isFetchUpdatePositon) - - Button { viewModel.present(.alarm) } label: { - IconDeprecated(.bell) + } label: { + if viewModel.isFetchUpdatePositon { + ProgressView() + } else { + IconDeprecated(.mapPin) } + } + .disabled(viewModel.isFetchUpdatePositon) - Button { viewModel.present(.repeat) } label: { - IconDeprecated(.refresh) - } + Button { viewModel.present(.alarm) } label: { + IconDeprecated(.bell) + } - /* - Button { viewModel.present(.attachment) } label: { - IconDeprecated(.moreHorizontal) - } - */ + Button { viewModel.present(.repeat) } label: { + IconDeprecated(.refresh) + } - Spacer() + /* + Button { viewModel.present(.attachment) } label: { + IconDeprecated(.moreHorizontal) + } + */ - Button { viewModel.present(.invites) } label: { - IconDeprecated(.userPlus) - } + Spacer() + + Button { viewModel.present(.invites) } label: { + IconDeprecated(.userPlus) + } // Icon.Solid.UserInterface.plusCrFr // .renderingMode(.template) - } - .buttonStyle(.scale) - .padding(.horizontal, .medium) - .padding(.vertical, 20) - .onSurfaceSecondaryForeground() - #if !os(watchOS) - .background(.ultraThinMaterial) - #endif - .overlay(alignment: .top) { - Rectangle() - .fill(Color.onSurfacePrimary.opacity(0.05)) - .frame(height: 1) - } } - - @ViewBuilder - private func placeholder() -> some View {} + .buttonStyle(.scale) + .padding(.horizontal, .medium) + .padding(.vertical, 20) + .onSurfaceSecondaryForeground() + #if !os(watchOS) + .background(.ultraThinMaterial) + #endif + .overlay(alignment: .top) { + Rectangle() + .fill(Color.onSurfacePrimary.opacity(0.05)) + .frame(height: 1) + } } - extension CreateEventView { - enum FocusField: Hashable { - case title - case note - case url - } + @ViewBuilder + private func placeholder() -> some View {} +} + +extension CreateEventView { + enum FocusField: Hashable { + case title + case note + case url } +} - struct CreateEventView_Previews: PreviewProvider { - static var previews: some View { - CreateEventView() - } +struct CreateEventView_Previews: PreviewProvider { + static var previews: some View { + CreateEventView() } +} #endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift index 004698e..0aacd16 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(EventKit) - @preconcurrency import EventKit +@preconcurrency import EventKit #endif import Factory import OversizeCalendarService @@ -14,173 +14,173 @@ import OversizeModels import SwiftUI #if !os(tvOS) - public enum CreateEventType: Equatable, @unchecked Sendable { - case new(Date?, calendar: EKCalendar?) - case update(EKEvent) +public enum CreateEventType: Equatable, @unchecked Sendable { + case new(Date?, calendar: EKCalendar?) + case update(EKEvent) +} + +public class CreateEventViewModel: ObservableObject, @unchecked Sendable { + @Injected(\.calendarService) private var calendarService: CalendarService + @Injected(\.locationService) private var locationService: LocationServiceProtocol + + @Published var state = CreateEventViewModelState.initial + @Published var sheet: CreateEventViewModel.Sheet? = nil + @Published var isFetchUpdatePositon: Bool = .init(false) + + @Published var title: String = .init() + @Published var note: String = .init() + @Published var url: String = .init() + @Published var dateStart: Date = .init() + @Published var dateEnd: Date = .init().halfHour + @Published var isAllDay: Bool = .init(false) + @Published var calendar: EKCalendar? + @Published var calendars: [EKCalendar] = .init() + @Published var sourses: [EKSource] = .init() + @Published var locationName: String? + @Published var location: CLLocationCoordinate2D? + @Published var repitRule: CalendarEventRecurrenceRules = .never + @Published var repitEndRule: CalendarEventEndRecurrenceRules = .never + @Published var alarms: [CalendarAlertsTimes] = .init() + @Published var members: [String] = .init() + @Published var span: EKSpan? + + let type: CreateEventType + + var isLocationSelected: Bool { + location != nil } - public class CreateEventViewModel: ObservableObject, @unchecked Sendable { - @Injected(\.calendarService) private var calendarService: CalendarService - @Injected(\.locationService) private var locationService: LocationServiceProtocol - - @Published var state = CreateEventViewModelState.initial - @Published var sheet: CreateEventViewModel.Sheet? = nil - @Published var isFetchUpdatePositon: Bool = .init(false) - - @Published var title: String = .init() - @Published var note: String = .init() - @Published var url: String = .init() - @Published var dateStart: Date = .init() - @Published var dateEnd: Date = .init().halfHour - @Published var isAllDay: Bool = .init(false) - @Published var calendar: EKCalendar? - @Published var calendars: [EKCalendar] = .init() - @Published var sourses: [EKSource] = .init() - @Published var locationName: String? - @Published var location: CLLocationCoordinate2D? - @Published var repitRule: CalendarEventRecurrenceRules = .never - @Published var repitEndRule: CalendarEventEndRecurrenceRules = .never - @Published var alarms: [CalendarAlertsTimes] = .init() - @Published var members: [String] = .init() - @Published var span: EKSpan? - - let type: CreateEventType - - var isLocationSelected: Bool { - location != nil - } - - public init(_ type: CreateEventType) { - self.type = type - setEvent(type: type) - } + public init(_ type: CreateEventType) { + self.type = type + setEvent(type: type) + } - func setEvent(type: CreateEventType) { - switch type { - case let .new(date, calendar): - if let date { - dateStart = date - dateEnd = date.halfHour - } - if let calendar { - self.calendar = calendar - } - case let .update(event): - title = event.title - note = event.notes ?? "" - url = event.url?.absoluteString ?? "" - dateStart = event.startDate - dateEnd = event.endDate - isAllDay = event.isAllDay - calendar = event.calendar - locationName = event.location - if let coordinate = event.structuredLocation?.geoLocation?.coordinate { - location = coordinate - } - if let rule = event.recurrenceRules?.first { - repitRule = rule.calendarRecurrenceRule - repitEndRule = rule.recurrenceEnd?.calendarEndRecurrenceRule ?? .never - } - if let eventAlarms = event.alarms { - alarms = eventAlarms.compactMap { $0.calendarAlert } - } - if let attendees = event.attendees { - members = attendees.compactMap { $0.url.absoluteString } - } + func setEvent(type: CreateEventType) { + switch type { + case let .new(date, calendar): + if let date { + dateStart = date + dateEnd = date.halfHour } - } - - func fetchData() async { - state = .loading - async let calendarsResult = await calendarService.fetchCalendars() - switch await calendarsResult { - case let .success(data): - log("✅ EKCalendars fetched") - calendars = data - case let .failure(error): - log("❌ EKCalendars not fetched (\(error.title))") - state = .error(error) + if let calendar { + self.calendar = calendar } - async let soursesResult = await calendarService.fetchSourses() - switch await soursesResult { - case let .success(data): - log("✅ EKSource fetched") - sourses = data - case let .failure(error): - log("❌ EKSource not fetched (\(error.title))") - state = .error(error) + case let .update(event): + title = event.title + note = event.notes ?? "" + url = event.url?.absoluteString ?? "" + dateStart = event.startDate + dateEnd = event.endDate + isAllDay = event.isAllDay + calendar = event.calendar + locationName = event.location + if let coordinate = event.structuredLocation?.geoLocation?.coordinate { + location = coordinate } - if case let .new(_, calendar) = type, calendar == nil { - let result = await calendarService.fetchDefaultCalendar() - switch result { - case let .success(calendar): - self.calendar = calendar - case let .failure(error): - log("❌ Default calendar not fetched (\(error.title))") - } + if let rule = event.recurrenceRules?.first { + repitRule = rule.calendarRecurrenceRule + repitEndRule = rule.recurrenceEnd?.calendarEndRecurrenceRule ?? .never } - } - - func save() async -> Result { - var oldEvent: EKEvent? - - if case let .update(event) = type { - oldEvent = event + if let eventAlarms = event.alarms { + alarms = eventAlarms.compactMap { $0.calendarAlert } } + if let attendees = event.attendees { + members = attendees.compactMap { $0.url.absoluteString } + } + } + } - let result = await calendarService.createEvent( - event: oldEvent, - title: title, - notes: note, - startDate: dateStart, - endDate: dateEnd, - calendar: calendar, - isAllDay: isAllDay, - location: locationName, - structuredLocation: getEKStructuredLocation(), - alarms: alarms, - url: URL(string: url), - memberEmails: members, - recurrenceRules: repitRule, - recurrenceEndRules: repitEndRule, - span: span ?? .thisEvent - ) + func fetchData() async { + state = .loading + async let calendarsResult = await calendarService.fetchCalendars() + switch await calendarsResult { + case let .success(data): + log("✅ EKCalendars fetched") + calendars = data + case let .failure(error): + log("❌ EKCalendars not fetched (\(error.title))") + state = .error(error) + } + async let soursesResult = await calendarService.fetchSourses() + switch await soursesResult { + case let .success(data): + log("✅ EKSource fetched") + sourses = data + case let .failure(error): + log("❌ EKSource not fetched (\(error.title))") + state = .error(error) + } + if case let .new(_, calendar) = type, calendar == nil { + let result = await calendarService.fetchDefaultCalendar() switch result { - case let .success(data): - log("✅ EKEvent saved") - return .success(data) + case let .success(calendar): + self.calendar = calendar case let .failure(error): - log("❌ EKEvent not saved (\(error.title))") - return .failure(error) + log("❌ Default calendar not fetched (\(error.title))") } } + } - func getEKStructuredLocation() -> EKStructuredLocation? { - if let location { - let structuredLocation: EKStructuredLocation? - let location = CLLocation(latitude: location.latitude, longitude: location.longitude) - structuredLocation = EKStructuredLocation(title: locationName ?? "") // same title with ekEvent.location - structuredLocation?.geoLocation = location - return structuredLocation - } else { - return nil - } + func save() async -> Result { + var oldEvent: EKEvent? + + if case let .update(event) = type { + oldEvent = event } - func updateCurrentPosition() async throws { - isFetchUpdatePositon = true - let currentPosition = try await locationService.currentLocation() - guard let newLocation = currentPosition else { return } - location = newLocation - log("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") - isFetchUpdatePositon = false + let result = await calendarService.createEvent( + event: oldEvent, + title: title, + notes: note, + startDate: dateStart, + endDate: dateEnd, + calendar: calendar, + isAllDay: isAllDay, + location: locationName, + structuredLocation: getEKStructuredLocation(), + alarms: alarms, + url: URL(string: url), + memberEmails: members, + recurrenceRules: repitRule, + recurrenceEndRules: repitEndRule, + span: span ?? .thisEvent + ) + switch result { + case let .success(data): + log("✅ EKEvent saved") + return .success(data) + case let .failure(error): + log("❌ EKEvent not saved (\(error.title))") + return .failure(error) + } + } + + func getEKStructuredLocation() -> EKStructuredLocation? { + if let location { + let structuredLocation: EKStructuredLocation? + let location = CLLocation(latitude: location.latitude, longitude: location.longitude) + structuredLocation = EKStructuredLocation(title: locationName ?? "") // same title with ekEvent.location + structuredLocation?.geoLocation = location + return structuredLocation + } else { + return nil } } - public enum CreateEventViewModelState { - case initial - case loading - case result([EKEvent]) - case error(AppError) + func updateCurrentPosition() async throws { + isFetchUpdatePositon = true + let currentPosition = try await locationService.currentLocation() + guard let newLocation = currentPosition else { return } + location = newLocation + log("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") + isFetchUpdatePositon = false } +} + +public enum CreateEventViewModelState { + case initial + case loading + case result([EKEvent]) + case error(AppError) +} #endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift index beb178c..8a47b98 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventViewSheet.swift @@ -4,7 +4,7 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeComponents import OversizeContactsKit @@ -13,109 +13,109 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public extension CreateEventViewModel { - func present(_ sheet: CreateEventViewModel.Sheet) { - self.sheet = sheet - } +public extension CreateEventViewModel { + func present(_ sheet: CreateEventViewModel.Sheet) { + self.sheet = sheet + } - func close() { - sheet = nil - } + func close() { + sheet = nil } +} - public extension CreateEventViewModel { - enum Sheet { - case startTime - case endTime - case attachment - case calendar - case location - case `repeat` - case alarm - case invites - case span - } // attachment, alert, invitees +public extension CreateEventViewModel { + enum Sheet { + case startTime + case endTime + case attachment + case calendar + case location + case `repeat` + case alarm + case invites + case span + } // attachment, alert, invitees +} + +extension CreateEventViewModel.Sheet: Identifiable { + public var id: String { + switch self { + case .startTime: + "startTime" + case .endTime: + "endTime" + case .attachment: + "attachment" + case .calendar: + "calendar" + case .location: + "location" + case .repeat: + "repeat" + case .alarm: + "alarm" + case .invites: + "alarm" + case .span: + "span" + } } +} - extension CreateEventViewModel.Sheet: Identifiable { - public var id: String { - switch self { +public extension CreateEventView { + func resolveSheet(sheet: CreateEventViewModel.Sheet) -> some View { + Group { + switch sheet { case .startTime: - return "startTime" + #if os(iOS) + DatePickerSheet(title: "Starts time", selection: $viewModel.dateStart) + .onDisappear { + if viewModel.dateStart > viewModel.dateEnd { + viewModel.dateEnd = viewModel.dateStart.halfHour + } + } + .presentationDetents([.height(500)]) + #else + EmptyView() + #endif case .endTime: - return "endTime" + #if os(iOS) + DatePickerSheet(title: "Ends time", selection: $viewModel.dateEnd) + .datePickerMinimumDate(viewModel.dateStart.minute) + .presentationDetents([.height(500)]) + #else + EmptyView() + #endif case .attachment: - return "attachment" + AttachmentView() + .presentationDetents([.height(270)]) case .calendar: - return "calendar" + CalendarPicker(selection: $viewModel.calendar, calendars: viewModel.calendars, sourses: viewModel.sourses) + .presentationDetents([.large]) case .location: - return "location" + #if !os(watchOS) + AddressPicker(address: $viewModel.locationName, location: $viewModel.location) + .interactiveDismissDisabled(true) + .presentationDetents([.large]) + #else + EmptyView() + #endif case .repeat: - return "repeat" + RepeatPicker(selectionRule: $viewModel.repitRule, selectionEndRule: $viewModel.repitEndRule) case .alarm: - return "alarm" + AlarmPicker(selection: $viewModel.alarms) + .presentationDetents([.height(630), .large]) + .presentationDragIndicator(.hidden) case .invites: - return "alarm" + EmailPickerView(selection: $viewModel.members) + .presentationDetents([.large]) + .interactiveDismissDisabled(true) case .span: - return "span" - } - } - } - - public extension CreateEventView { - func resolveSheet(sheet: CreateEventViewModel.Sheet) -> some View { - Group { - switch sheet { - case .startTime: - #if os(iOS) - DatePickerSheet(title: "Starts time", selection: $viewModel.dateStart) - .onDisappear { - if viewModel.dateStart > viewModel.dateEnd { - viewModel.dateEnd = viewModel.dateStart.halfHour - } - } - .presentationDetents([.height(500)]) - #else - EmptyView() - #endif - case .endTime: - #if os(iOS) - DatePickerSheet(title: "Ends time", selection: $viewModel.dateEnd) - .datePickerMinimumDate(viewModel.dateStart.minute) - .presentationDetents([.height(500)]) - #else - EmptyView() - #endif - case .attachment: - AttachmentView() - .presentationDetents([.height(270)]) - case .calendar: - CalendarPicker(selection: $viewModel.calendar, calendars: viewModel.calendars, sourses: viewModel.sourses) - .presentationDetents([.large]) - case .location: - #if !os(watchOS) - AddressPicker(address: $viewModel.locationName, location: $viewModel.location) - .interactiveDismissDisabled(true) - .presentationDetents([.large]) - #else - EmptyView() - #endif - case .repeat: - RepeatPicker(selectionRule: $viewModel.repitRule, selectionEndRule: $viewModel.repitEndRule) - case .alarm: - AlarmPicker(selection: $viewModel.alarms) - .presentationDetents([.height(630), .large]) - .presentationDragIndicator(.hidden) - case .invites: - EmailPickerView(selection: $viewModel.members) - .presentationDetents([.large]) - .interactiveDismissDisabled(true) - case .span: - SaveForView(selection: $viewModel.span) - .presentationDetents([.height(270)]) - } + SaveForView(selection: $viewModel.span) + .presentationDetents([.height(270)]) } - .systemServices() } + .systemServices() } +} #endif diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift index 676b9a5..8e0c794 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift @@ -4,49 +4,49 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeUI import SwiftUI #if !os(tvOS) - public struct SaveForView: View { - @Environment(\.dismiss) var dismiss - @Binding private var span: EKSpan? +public struct SaveForView: View { + @Environment(\.dismiss) var dismiss + @Binding private var span: EKSpan? - public init(selection: Binding) { - _span = selection - } + public init(selection: Binding) { + _span = selection + } - public var body: some View { - PageView("This is repeating event") { - SectionView { - VStack(spacing: .zero) { - Row("Save for this event only") { - span = .thisEvent - dismiss() - } leading: { - Image.Date.calendar - .renderingMode(.template) - .foregroundColor(.onSurfacePrimary) - } + public var body: some View { + PageView("This is repeating event") { + SectionView { + VStack(spacing: .zero) { + Row("Save for this event only") { + span = .thisEvent + dismiss() + } leading: { + Image.Date.calendar + .renderingMode(.template) + .foregroundColor(.onSurfacePrimary) + } - Row("Save for feature events") { - span = .futureEvents - dismiss() - } leading: { - Image.Base.calendar - .renderingMode(.template) - .foregroundColor(.onSurfacePrimary) - } + Row("Save for feature events") { + span = .futureEvents + dismiss() + } leading: { + Image.Base.calendar + .renderingMode(.template) + .foregroundColor(.onSurfacePrimary) } } - .surfaceContentRowMargins() - } - .backgroundSecondary() - .leadingBar { - BarButton(.close) } + .surfaceContentRowMargins() + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) } } +} #endif diff --git a/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift b/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift index f31672c..6d97495 100644 --- a/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/AlertPicker.swift @@ -4,53 +4,53 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeCalendarService import OversizeUI import SwiftUI #if !os(tvOS) - public struct AlarmPicker: View { - @Environment(\.dismiss) var dismiss - @Binding private var selection: [CalendarAlertsTimes] - @State private var selectedAlerts: [CalendarAlertsTimes] = [] +public struct AlarmPicker: View { + @Environment(\.dismiss) var dismiss + @Binding private var selection: [CalendarAlertsTimes] + @State private var selectedAlerts: [CalendarAlertsTimes] = [] - public init(selection: Binding<[CalendarAlertsTimes]>) { - _selection = selection - _selectedAlerts = State(wrappedValue: selection.wrappedValue) - } + public init(selection: Binding<[CalendarAlertsTimes]>) { + _selection = selection + _selectedAlerts = State(wrappedValue: selection.wrappedValue) + } - public var body: some View { - PageView("Alarm") { - SectionView { - VStack(spacing: .zero) { - ForEach(CalendarAlertsTimes.allCases) { alert in - Checkbox(alert.title, isOn: .constant((selectedAlerts.first { $0.id == alert.id } != nil) ? true : false)) { - if !selectedAlerts.isEmpty, let _ = selectedAlerts.first(where: { $0.id == alert.id }) { - selectedAlerts.remove(alert) - } else { - selectedAlerts.append(alert) - } + public var body: some View { + PageView("Alarm") { + SectionView { + VStack(spacing: .zero) { + ForEach(CalendarAlertsTimes.allCases) { alert in + Checkbox(alert.title, isOn: .constant((selectedAlerts.first { $0.id == alert.id } != nil) ? true : false)) { + if !selectedAlerts.isEmpty, let _ = selectedAlerts.first(where: { $0.id == alert.id }) { + selectedAlerts.remove(alert) + } else { + selectedAlerts.append(alert) } } } } - .surfaceContentRowMargins() - } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - selection = selectedAlerts - dismiss() - })) - .disabled(selectedAlerts.isEmpty) } + .surfaceContentRowMargins() + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + selection = selectedAlerts + dismiss() + })) + .disabled(selectedAlerts.isEmpty) } } +} #endif // struct AlertPicker_Previews: PreviewProvider { diff --git a/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift b/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift index 8244d84..43abc94 100644 --- a/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/CalendarPicker.swift @@ -4,69 +4,69 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeUI import SwiftUI #if !os(tvOS) - public struct CalendarPicker: View { - @Environment(\.dismiss) var dismiss +public struct CalendarPicker: View { + @Environment(\.dismiss) var dismiss - @Binding private var selection: EKCalendar? + @Binding private var selection: EKCalendar? - private let calendars: [EKCalendar] + private let calendars: [EKCalendar] - private let sourses: [EKSource] + private let sourses: [EKSource] - private let closable: Bool + private let closable: Bool - public init(selection: Binding, calendars: [EKCalendar], sourses: [EKSource], closable: Bool = true) { - _selection = selection - self.calendars = calendars - self.sourses = sourses - self.closable = closable - } + public init(selection: Binding, calendars: [EKCalendar], sourses: [EKSource], closable: Bool = true) { + _selection = selection + self.calendars = calendars + self.sourses = sourses + self.closable = closable + } - public var body: some View { - PageView("Calendar") { - ForEach(sourses, id: \.sourceIdentifier) { source in - let filtredCalendar: [EKCalendar] = calendars.filter { $0.source.sourceIdentifier == source.sourceIdentifier && $0.allowsContentModifications } - if !filtredCalendar.isEmpty { - calendarSection(source: source, calendars: filtredCalendar) - } + public var body: some View { + PageView("Calendar") { + ForEach(sourses, id: \.sourceIdentifier) { source in + let filtredCalendar: [EKCalendar] = calendars.filter { $0.source.sourceIdentifier == source.sourceIdentifier && $0.allowsContentModifications } + if !filtredCalendar.isEmpty { + calendarSection(source: source, calendars: filtredCalendar) } } - .backgroundSecondary() - .leadingBar { - BarButton(closable ? .close : .back) - } } + .backgroundSecondary() + .leadingBar { + BarButton(closable ? .close : .back) + } + } - func calendarSection(source: EKSource, calendars: [EKCalendar]) -> some View { - SectionView(source.title) { - VStack(spacing: .zero) { - ForEach(calendars, id: \.calendarIdentifier) { calendar in - Radio(isOn: selection?.calendarIdentifier == calendar.calendarIdentifier) { - selection = calendar - dismiss() - } label: { - Row(calendar.title) { - Circle() - .fill(Color(calendar.cgColor)) - .frame(width: 16, height: 16) - } + func calendarSection(source: EKSource, calendars: [EKCalendar]) -> some View { + SectionView(source.title) { + VStack(spacing: .zero) { + ForEach(calendars, id: \.calendarIdentifier) { calendar in + Radio(isOn: selection?.calendarIdentifier == calendar.calendarIdentifier) { + selection = calendar + dismiss() + } label: { + Row(calendar.title) { + Circle() + .fill(Color(calendar.cgColor)) + .frame(width: 16, height: 16) } } } } - .surfaceContentRowMargins() } + .surfaceContentRowMargins() } +} - struct CalendarPicker_Previews: PreviewProvider { - static var previews: some View { - CalendarPicker(selection: .constant(nil), calendars: [], sourses: []) - } +struct CalendarPicker_Previews: PreviewProvider { + static var previews: some View { + CalendarPicker(selection: .constant(nil), calendars: [], sourses: []) } +} #endif diff --git a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift index 2c32cb8..c55a2b5 100644 --- a/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift +++ b/Sources/OversizeCalendarKit/Pickers/RepeatPicker.swift @@ -4,133 +4,133 @@ // #if canImport(EventKit) - import EventKit +import EventKit #endif import OversizeCalendarService import OversizeUI import SwiftUI #if !os(tvOS) - public struct RepeatPicker: View { - @Environment(\.dismiss) private var dismiss +public struct RepeatPicker: View { + @Environment(\.dismiss) private var dismiss - @Binding private var selectionRule: CalendarEventRecurrenceRules - @Binding private var selectionEndRule: CalendarEventEndRecurrenceRules + @Binding private var selectionRule: CalendarEventRecurrenceRules + @Binding private var selectionEndRule: CalendarEventEndRecurrenceRules - @State private var rule: CalendarEventRecurrenceRules - @State private var endRule: CalendarEventEndRecurrenceRules + @State private var rule: CalendarEventRecurrenceRules + @State private var endRule: CalendarEventEndRecurrenceRules - @State private var endDate: Date = .init() - @State private var repeatCount: String = "1" - @FocusState private var isFocusedRepitCount: Bool + @State private var endDate: Date = .init() + @State private var repeatCount: String = "1" + @FocusState private var isFocusedRepitCount: Bool - public init(selectionRule: Binding, selectionEndRule: Binding) { - _selectionRule = selectionRule - _selectionEndRule = selectionEndRule - _rule = State(wrappedValue: selectionRule.wrappedValue) - _endRule = State(wrappedValue: selectionEndRule.wrappedValue) - } + public init(selectionRule: Binding, selectionEndRule: Binding) { + _selectionRule = selectionRule + _selectionEndRule = selectionEndRule + _rule = State(wrappedValue: selectionRule.wrappedValue) + _endRule = State(wrappedValue: selectionEndRule.wrappedValue) + } - public var body: some View { - ScrollViewReader { scrollView in - PageView("Repeat") { - SectionView { - VStack(spacing: .zero) { - ForEach(CalendarEventRecurrenceRules.allCases) { rule in - Radio(isOn: self.rule.id == rule.id) { - withAnimation { - self.rule = rule - } - } label: { - Row(rule.title) + public var body: some View { + ScrollViewReader { scrollView in + PageView("Repeat") { + SectionView { + VStack(spacing: .zero) { + ForEach(CalendarEventRecurrenceRules.allCases) { rule in + Radio(isOn: self.rule.id == rule.id) { + withAnimation { + self.rule = rule } + } label: { + Row(rule.title) } } } + } - if rule != .never { - SectionView("End Repeat") { - VStack(spacing: .zero) { - ForEach(CalendarEventEndRecurrenceRules.allCases) { rule in - VStack(spacing: .xxSmall) { - Radio(isOn: endRule.id == rule.id) { - endRule = rule - if case .occurrenceCount = endRule { - isFocusedRepitCount = true - scrollView.scrollTo(rule.id) - } - - if case .endDate = endRule { - isFocusedRepitCount = true - scrollView.scrollTo(rule.id) - } - } label: { - Row(rule.title) + if rule != .never { + SectionView("End Repeat") { + VStack(spacing: .zero) { + ForEach(CalendarEventEndRecurrenceRules.allCases) { rule in + VStack(spacing: .xxSmall) { + Radio(isOn: endRule.id == rule.id) { + endRule = rule + if case .occurrenceCount = endRule { + isFocusedRepitCount = true + scrollView.scrollTo(rule.id) } - if endRule.id == rule.id { - repartPicker(rules: rule) - .padding(.horizontal, .medium) - .padding(.bottom, .small) + if case .endDate = endRule { + isFocusedRepitCount = true + scrollView.scrollTo(rule.id) } + } label: { + Row(rule.title) + } + + if endRule.id == rule.id { + repartPicker(rules: rule) + .padding(.horizontal, .medium) + .padding(.bottom, .small) } } } } - .transition(.move(edge: .top)) } + .transition(.move(edge: .top)) } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - selectionRule = rule - selectionEndRule = endRule - dismiss() - })) - .disabled(rule == .never) - } - .surfaceContentRowMargins() } - .presentationDetents(rule == .never ? [.height(630), .large] : [.large]) - .presentationDragIndicator(.hidden) - } - - @ViewBuilder - func repartPicker(rules: CalendarEventEndRecurrenceRules) -> some View { - switch rules { - case .never: - EmptyView() - case .occurrenceCount: - TextField("Number of repetitions", text: Binding(get: { - repeatCount - }, set: { newValue in - repeatCount = newValue - endRule = .occurrenceCount(Int(newValue) ?? 1) + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + selectionRule = rule + selectionEndRule = endRule + dismiss() })) - #if os(iOS) - .keyboardType(.numberPad) - #endif - .textFieldStyle(.default) - .focused($isFocusedRepitCount) - case .endDate: - #if !os(watchOS) - DatePicker("Date", selection: Binding(get: { - endDate - }, set: { newDate in - endDate = newDate - endRule = .endDate(newDate) - })) - #if os(iOS) - .datePickerStyle(.wheel) - #endif - .labelsHidden() - #else - ProgressView() - #endif + .disabled(rule == .never) } + .surfaceContentRowMargins() + } + .presentationDetents(rule == .never ? [.height(630), .large] : [.large]) + .presentationDragIndicator(.hidden) + } + + @ViewBuilder + func repartPicker(rules: CalendarEventEndRecurrenceRules) -> some View { + switch rules { + case .never: + EmptyView() + case .occurrenceCount: + TextField("Number of repetitions", text: Binding(get: { + repeatCount + }, set: { newValue in + repeatCount = newValue + endRule = .occurrenceCount(Int(newValue) ?? 1) + })) + #if os(iOS) + .keyboardType(.numberPad) + #endif + .textFieldStyle(.default) + .focused($isFocusedRepitCount) + case .endDate: + #if !os(watchOS) + DatePicker("Date", selection: Binding(get: { + endDate + }, set: { newDate in + endDate = newDate + endRule = .endDate(newDate) + })) + #if os(iOS) + .datePickerStyle(.wheel) + #endif + .labelsHidden() + #else + ProgressView() + #endif } } +} #endif diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift index 3bca2d1..b2f3793 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesView.swift @@ -4,8 +4,8 @@ // #if canImport(Contacts) && canImport(EventKit) - import Contacts - import EventKit +import Contacts +import EventKit #endif import OversizeCalendarService import OversizeContactsService @@ -16,86 +16,86 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public struct AttendeesView: View { - @StateObject var viewModel: AttendeesViewModel - @Environment(\.dismiss) var dismiss +public struct AttendeesView: View { + @StateObject var viewModel: AttendeesViewModel + @Environment(\.dismiss) var dismiss - public init(event: EKEvent) { - _viewModel = StateObject(wrappedValue: AttendeesViewModel(event: event)) - } + public init(event: EKEvent) { + _viewModel = StateObject(wrappedValue: AttendeesViewModel(event: event)) + } - public var body: some View { - PageView("Invitees") { - Group { - switch viewModel.state { - case .initial: - placeholder() - .onAppear { - Task { - await viewModel.fetchData() - } + public var body: some View { + PageView("Invitees") { + Group { + switch viewModel.state { + case .initial: + placeholder() + .onAppear { + Task { + await viewModel.fetchData() } - case .loading: - placeholder() - case let .result(data): - content(data) - case let .error(error): - ErrorView(error) - } + } + case .loading: + placeholder() + case let .result(data): + content(data) + case let .error(error): + ErrorView(error) } } - .leadingBar { - BarButton(.close) - } } + .leadingBar { + BarButton(.close) + } + } - @ViewBuilder - private func content(_: [CNContact]) -> some View { - if let attendees = viewModel.event.attendees { - VStack(spacing: .zero) { - if let organizer = viewModel.event.organizer { - Row(organizer.name ?? organizer.url.absoluteString, subtitle: "Organizer") { - userAvatarView(participant: organizer) - } + @ViewBuilder + private func content(_: [CNContact]) -> some View { + if let attendees = viewModel.event.attendees { + VStack(spacing: .zero) { + if let organizer = viewModel.event.organizer { + Row(organizer.name ?? organizer.url.absoluteString, subtitle: "Organizer") { + userAvatarView(participant: organizer) } + } - ForEach(attendees, id: \.self) { attender in - Row(attender.name ?? attender.url.absoluteString, subtitle: attender.participantRole.title) { - userAvatarView(participant: attender) - } + ForEach(attendees, id: \.self) { attender in + Row(attender.name ?? attender.url.absoluteString, subtitle: attender.participantRole.title) { + userAvatarView(participant: attender) } } } } + } - func userAvatarView(participant: EKParticipant) -> some View { - ZStack(alignment: .bottomTrailing) { - Avatar(firstName: participant.name ?? participant.url.absoluteString) - .controlSize(.regular) + func userAvatarView(participant: EKParticipant) -> some View { + ZStack(alignment: .bottomTrailing) { + Avatar(firstName: participant.name ?? participant.url.absoluteString) + .controlSize(.regular) - ZStack { - Circle() - .fill(participant.color) - .frame(width: 16, height: 16) - .background { - Circle() - .stroke(lineWidth: 4) - .fillBackgroundPrimary() - } - Image(systemName: participant.symbolName) - .onPrimaryForeground() - .font(.system(size: 9, weight: .black)) - } + ZStack { + Circle() + .fill(participant.color) + .frame(width: 16, height: 16) + .background { + Circle() + .stroke(lineWidth: 4) + .fillBackgroundPrimary() + } + Image(systemName: participant.symbolName) + .onPrimaryForeground() + .font(.system(size: 9, weight: .black)) } } + } - @ViewBuilder - private func placeholder() -> some View { - #if os(watchOS) - ProgressView() - #else - LoaderOverlayView() - #endif - } + @ViewBuilder + private func placeholder() -> some View { + #if os(watchOS) + ProgressView() + #else + LoaderOverlayView() + #endif } +} #endif diff --git a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift index d597c36..13a66f8 100644 --- a/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift +++ b/Sources/OversizeContactsKit/AttendeesList/AttendeesViewModel.swift @@ -4,8 +4,8 @@ // #if canImport(Contacts) && canImport(EventKit) - @preconcurrency import Contacts - import EventKit +@preconcurrency import Contacts +import EventKit #endif import Factory import OversizeContactsService @@ -14,51 +14,51 @@ import OversizeModels import SwiftUI #if !os(tvOS) - @MainActor - class AttendeesViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = AttendeesViewModelState.initial - @Published var searchText: String = .init() +@MainActor +class AttendeesViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = AttendeesViewModelState.initial + @Published var searchText: String = .init() - let event: EKEvent + let event: EKEvent - init(event: EKEvent) { - self.event = event - } + init(event: EKEvent) { + self.event = event + } - func fetchData() async { - state = .loading - let _ = await contactsService.requestAccess() + func fetchData() async { + state = .loading + let _ = await contactsService.requestAccess() - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) } + } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact - } + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact } } - return nil } + return nil } +} - enum AttendeesViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) - } +enum AttendeesViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) +} #endif diff --git a/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift b/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift index 11d868c..55f8e21 100644 --- a/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift +++ b/Sources/OversizeContactsKit/ContactsLists/ContactsListsView.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - import Contacts +import Contacts #endif import OversizeComponents import OversizeCore @@ -14,84 +14,84 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public struct ContactsListsView: View { - @StateObject var viewModel: ContactsListsViewModel - @Environment(\.dismiss) var dismiss - @Binding private var emails: [String] +public struct ContactsListsView: View { + @StateObject var viewModel: ContactsListsViewModel + @Environment(\.dismiss) var dismiss + @Binding private var emails: [String] - public init(emails: Binding<[String]>) { - _viewModel = StateObject(wrappedValue: ContactsListsViewModel()) - _emails = emails - } + public init(emails: Binding<[String]>) { + _viewModel = StateObject(wrappedValue: ContactsListsViewModel()) + _emails = emails + } - public var body: some View { - PageView("") { - Group { - switch viewModel.state { - case .initial: - placeholder() - case .loading: - placeholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) - } + public var body: some View { + PageView("") { + Group { + switch viewModel.state { + case .initial: + placeholder() + case .loading: + placeholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) } } - .leadingBar { - BarButton(.close) - } - .task { - await viewModel.fetchData() - } } + .leadingBar { + BarButton(.close) + } + .task { + await viewModel.fetchData() + } + } - @ViewBuilder - private func content(data: [CNContact]) -> some View { - ForEach(emails, id: \.self) { email in - if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { - let emails = contact.emailAddresses - if !emails.isEmpty { - ForEach(emails, id: \.identifier) { email in - emailRow(email: email, contact: contact) - } - } - } else { - Row(email) { - Avatar(firstName: email) + @ViewBuilder + private func content(data: [CNContact]) -> some View { + ForEach(emails, id: \.self) { email in + if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { + let emails = contact.emailAddresses + if !emails.isEmpty { + ForEach(emails, id: \.identifier) { email in + emailRow(email: email, contact: contact) } } + } else { + Row(email) { + Avatar(firstName: email) + } } } + } - @ViewBuilder - private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { - let email = email.value as String - #if os(iOS) - if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) - } - } else { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) - } - } - #else - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) - } - #endif + @ViewBuilder + private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { + let email = email.value as String + #if os(iOS) + if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) + } + } else { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) + } + } + #else + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) } + #endif + } - @ViewBuilder - private func placeholder() -> some View { - ForEach(emails, id: \.self) { email in - Row(email) { - Avatar(firstName: email) - } + @ViewBuilder + private func placeholder() -> some View { + ForEach(emails, id: \.self) { email in + Row(email) { + Avatar(firstName: email) } } } +} #endif diff --git a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift index a7ce31c..85bb498 100644 --- a/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsLists/ContactsListsViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - @preconcurrency import Contacts +@preconcurrency import Contacts #endif import Factory import OversizeContactsService @@ -13,47 +13,47 @@ import OversizeModels import SwiftUI #if !os(tvOS) - @MainActor - public class ContactsListsViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = ContactsPickerViewModelState.initial - @Published var searchText: String = .init() +@MainActor +public class ContactsListsViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = ContactsPickerViewModelState.initial + @Published var searchText: String = .init() - public init() {} + public init() {} - func fetchData() async { - state = .loading - let _ = await contactsService.requestAccess() + func fetchData() async { + state = .loading + let _ = await contactsService.requestAccess() - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) + case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") + state = .error(error) } + } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact - } + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact } } - return nil } + return nil } +} - enum ContactsListsViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) - } +enum ContactsListsViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) +} #endif diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift index 053b539..f3724d0 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerView.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - import Contacts +import Contacts #endif import OversizeKit import OversizeLocalizable @@ -12,227 +12,227 @@ import OversizeUI import SwiftUI #if !os(tvOS) - public struct EmailPickerView: View { - @Environment(\.dismiss) private var dismiss - @StateObject private var viewModel: EmailPickerViewModel +public struct EmailPickerView: View { + @Environment(\.dismiss) private var dismiss + @StateObject private var viewModel: EmailPickerViewModel - @Binding private var selection: [String] - @State private var selectedEmails: [String] = .init() + @Binding private var selection: [String] + @State private var selectedEmails: [String] = .init() - @FocusState private var isFocusSearth + @FocusState private var isFocusSearth - public init(selection: Binding<[String]>) { - _viewModel = StateObject(wrappedValue: EmailPickerViewModel()) - _selection = selection - } + public init(selection: Binding<[String]>) { + _viewModel = StateObject(wrappedValue: EmailPickerViewModel()) + _selection = selection + } - public var body: some View { - PageView("Add Invitees") { - Group { - switch viewModel.state { - case .initial, .loading: - placeholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) - } + public var body: some View { + PageView("Add Invitees") { + Group { + switch viewModel.state { + case .initial, .loading: + placeholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) } } - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - onDoneAction() - })) - .disabled(selectedEmails.isEmpty && !viewModel.searchText.isEmail) - } - .topToolbar { - TextField("Email or name", text: $viewModel.searchText) - .textFieldStyle(.default) - .focused($isFocusSearth) - #if os(iOS) - .keyboardType(.emailAddress) - #endif - } - .onAppear { - isFocusSearth = true - } - .task { - await viewModel.fetchData() - } } + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + onDoneAction() + })) + .disabled(selectedEmails.isEmpty && !viewModel.searchText.isEmail) + } + .topToolbar { + TextField("Email or name", text: $viewModel.searchText) + .textFieldStyle(.default) + .focused($isFocusSearth) + #if os(iOS) + .keyboardType(.emailAddress) + #endif + } + .onAppear { + isFocusSearth = true + } + .task { + await viewModel.fetchData() + } + } - @ViewBuilder - private func content(data: [CNContact]) -> some View { - LazyVStack(spacing: .zero) { - newEmailView() - - newSelectedContactsRows(data: data) + @ViewBuilder + private func content(data: [CNContact]) -> some View { + LazyVStack(spacing: .zero) { + newEmailView() - contactsRows(data: data) - } - } + newSelectedContactsRows(data: data) - @ViewBuilder - private func newEmailView() -> some View { - if !viewModel.searchText.isEmpty { - Checkbox( - isOn: .constant(viewModel.searchText.isEmail), - label: { - Row(viewModel.searchText, subtitle: "New member") { - Avatar(firstName: viewModel.searchText) - } - } - ) - .padding(.bottom, .small) - } + contactsRows(data: data) } + } - @ViewBuilder - private func newSelectedContactsRows(data: [CNContact]) -> some View { - if !viewModel.lastSelectedEmails.isEmpty { - HStack(spacing: .zero) { - Text("Latest") - Spacer() - } - .title3() - .onSurfaceSecondaryForeground() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) - - ForEach(viewModel.lastSelectedEmails, id: \.self) { email in - if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { - let emails = contact.emailAddresses - if !emails.isEmpty { - ForEach(emails, id: \.identifier) { email in - emailRow(email: email, contact: contact) - } - } - } else { - let isSelected = selectedEmails.contains(email) - Checkbox( - isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), - label: { - Row(email) { - Avatar(firstName: email) - } - } - ) + @ViewBuilder + private func newEmailView() -> some View { + if !viewModel.searchText.isEmpty { + Checkbox( + isOn: .constant(viewModel.searchText.isEmail), + label: { + Row(viewModel.searchText, subtitle: "New member") { + Avatar(firstName: viewModel.searchText) } } - } + ) + .padding(.bottom, .small) } + } - @ViewBuilder - private func contactsRows(data: [CNContact]) -> some View { - if !data.isEmpty { - HStack(spacing: .zero) { - Text("Contacts") - Spacer() - } - .title3() - .onSurfaceSecondaryForeground() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) - .padding(.top, viewModel.lastSelectedEmails.isEmpty ? .zero : .small) + @ViewBuilder + private func newSelectedContactsRows(data: [CNContact]) -> some View { + if !viewModel.lastSelectedEmails.isEmpty { + HStack(spacing: .zero) { + Text("Latest") + Spacer() + } + .title3() + .onSurfaceSecondaryForeground() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) - ForEach(data, id: \.identifier) { contact in + ForEach(viewModel.lastSelectedEmails, id: \.self) { email in + if let contact = viewModel.getContactFromEmail(email: email, contacts: data) { let emails = contact.emailAddresses if !emails.isEmpty { ForEach(emails, id: \.identifier) { email in emailRow(email: email, contact: contact) } } + } else { + let isSelected = selectedEmails.contains(email) + Checkbox( + isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), + label: { + Row(email) { + Avatar(firstName: email) + } + } + ) } } } + } - @ViewBuilder - private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { - let email = email.value as String - let isSelected = selectedEmails.contains(email) - #if os(iOS) - if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { - Checkbox(isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), label: { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) - } - - }) - } else { - Checkbox(isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), label: { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) - } - - }) - } - #else - Checkbox(isOn: Binding( - get: { isSelected }, - set: { _ in onContactClick(email: email) } - ), label: { - Row(contact.givenName + " " + contact.familyName, subtitle: email) { - Avatar(firstName: contact.givenName, lastName: contact.familyName) + @ViewBuilder + private func contactsRows(data: [CNContact]) -> some View { + if !data.isEmpty { + HStack(spacing: .zero) { + Text("Contacts") + Spacer() + } + .title3() + .onSurfaceSecondaryForeground() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) + .padding(.top, viewModel.lastSelectedEmails.isEmpty ? .zero : .small) + + ForEach(data, id: \.identifier) { contact in + let emails = contact.emailAddresses + if !emails.isEmpty { + ForEach(emails, id: \.identifier) { email in + emailRow(email: email, contact: contact) } - - }) - #endif + } + } } + } - private func onDoneAction() { - if viewModel.searchText.isEmail { - if !selection.contains(viewModel.searchText) { - selection.append(viewModel.searchText) + @ViewBuilder + private func emailRow(email: CNLabeledValue, contact: CNContact) -> some View { + let email = email.value as String + let isSelected = selectedEmails.contains(email) + #if os(iOS) + if let avatarThumbnailData = contact.thumbnailImageData, let avatarThumbnail = UIImage(data: avatarThumbnailData) { + Checkbox(isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), label: { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName, avatar: Image(uiImage: avatarThumbnail)) } - if !viewModel.lastSelectedEmails.contains(viewModel.searchText) { - viewModel.lastSelectedEmails.append(viewModel.searchText) + }) + } else { + Checkbox(isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), label: { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) } + + }) + } + #else + Checkbox(isOn: Binding( + get: { isSelected }, + set: { _ in onContactClick(email: email) } + ), label: { + Row(contact.givenName + " " + contact.familyName, subtitle: email) { + Avatar(firstName: contact.givenName, lastName: contact.familyName) } - if !selectedEmails.isEmpty { - for email in selectedEmails where !selection.contains(email) { - selection.append(email) - } + }) + #endif + } - for email in selectedEmails where !viewModel.lastSelectedEmails.contains(email) { - viewModel.lastSelectedEmails.append(email) - } + private func onDoneAction() { + if viewModel.searchText.isEmail { + if !selection.contains(viewModel.searchText) { + selection.append(viewModel.searchText) } - dismiss() + if !viewModel.lastSelectedEmails.contains(viewModel.searchText) { + viewModel.lastSelectedEmails.append(viewModel.searchText) + } } - private func onContactClick(email: String) { - let isSelected = selectedEmails.contains(email) - if isSelected { - selectedEmails.remove(email) - } else { - selectedEmails.append(email) + if !selectedEmails.isEmpty { + for email in selectedEmails where !selection.contains(email) { + selection.append(email) + } + + for email in selectedEmails where !viewModel.lastSelectedEmails.contains(email) { + viewModel.lastSelectedEmails.append(email) } } - @ViewBuilder - private func placeholder() -> some View { - #if os(watchOS) - ProgressView() - #else - LoaderOverlayView() - #endif + dismiss() + } + + private func onContactClick(email: String) { + let isSelected = selectedEmails.contains(email) + if isSelected { + selectedEmails.remove(email) + } else { + selectedEmails.append(email) } } + + @ViewBuilder + private func placeholder() -> some View { + #if os(watchOS) + ProgressView() + #else + LoaderOverlayView() + #endif + } +} #endif // struct ContactsPickerView_Previews: PreviewProvider { // static var previews: some View { diff --git a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift index 243dca3..2cdd47d 100644 --- a/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift +++ b/Sources/OversizeContactsKit/ContactsPicker/EmailPickerViewModel.swift @@ -4,7 +4,7 @@ // #if canImport(Contacts) - @preconcurrency import Contacts +@preconcurrency import Contacts #endif import Factory import OversizeContactsService @@ -13,53 +13,53 @@ import OversizeModels import SwiftUI #if !os(tvOS) - @MainActor - class EmailPickerViewModel: ObservableObject { - @Injected(\.contactsService) private var contactsService: ContactsService - @Published var state = ContactsPickerViewModelState.initial - @Published var searchText: String = .init() +@MainActor +class EmailPickerViewModel: ObservableObject { + @Injected(\.contactsService) private var contactsService: ContactsService + @Published var state = ContactsPickerViewModelState.initial + @Published var searchText: String = .init() - @AppStorage("AppState.LastSelectedEmails") var lastSelectedEmails: [String] = .init() + @AppStorage("AppState.LastSelectedEmails") var lastSelectedEmails: [String] = .init() - func fetchData() async { - state = .loading - let status = await contactsService.requestAccess() - switch status { - case .success: - - let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] - let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) - switch result { - case let .success(data): - log("✅ CNContact fetched") - state = .result(data) - case let .failure(error): - log("❌ CNContact not fetched (\(error.title))") - state = .error(error) - } + func fetchData() async { + state = .loading + let status = await contactsService.requestAccess() + switch status { + case .success: + let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactEmailAddressesKey, CNContactThumbnailImageDataKey] + let result = await contactsService.fetchContacts(keysToFetch: keys as [CNKeyDescriptor]) + switch result { + case let .success(data): + log("✅ CNContact fetched") + state = .result(data) case let .failure(error): + log("❌ CNContact not fetched (\(error.title))") state = .error(error) } + + case let .failure(error): + state = .error(error) } + } - func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { - for contact in contacts where !contact.emailAddresses.isEmpty { - for emailAddress in contact.emailAddresses { - let emailAddressString = emailAddress.value as String - if emailAddressString == email { - return contact - } + func getContactFromEmail(email: String, contacts: [CNContact]) -> CNContact? { + for contact in contacts where !contact.emailAddresses.isEmpty { + for emailAddress in contact.emailAddresses { + let emailAddressString = emailAddress.value as String + if emailAddressString == email { + return contact } } - return nil } + return nil } +} - enum ContactsPickerViewModelState { - case initial - case loading - case result([CNContact]) - case error(AppError) - } +enum ContactsPickerViewModelState { + case initial + case loading + case result([CNContact]) + case error(AppError) +} #endif diff --git a/Sources/OversizeKit/AdsKit/AdView.swift b/Sources/OversizeKit/AdsKit/AdView.swift index b2e4836..df6acf4 100644 --- a/Sources/OversizeKit/AdsKit/AdView.swift +++ b/Sources/OversizeKit/AdsKit/AdView.swift @@ -33,16 +33,16 @@ public struct AdView: View { case let .result(appAd): #if os(iOS) - Surface { - isShowProduct.toggle() - } label: { - premiumBanner(appAd: appAd) - } - .surfaceContentMargins(.xSmall) - .appStoreOverlay(isPresent: $isShowProduct, appId: appAd.appStoreId) + Surface { + isShowProduct.toggle() + } label: { + premiumBanner(appAd: appAd) + } + .surfaceContentMargins(.xSmall) + .appStoreOverlay(isPresent: $isShowProduct, appId: appAd.appStoreId) #else - EmptyView() + EmptyView() #endif case .loading, .error: @@ -57,13 +57,17 @@ public struct AdView: View { $0 .resizable() .frame(width: 64, height: 64) - .mask(RoundedRectangle(cornerRadius: .large, - style: .continuous)) + .mask(RoundedRectangle( + cornerRadius: .large, + style: .continuous + )) .overlay( - RoundedRectangle(cornerRadius: 16, - style: .continuous) - .stroke(lineWidth: 1) - .opacity(0.15) + RoundedRectangle( + cornerRadius: 16, + style: .continuous + ) + .stroke(lineWidth: 1) + .opacity(0.15) ) .onTapGesture { isShowProduct.toggle() diff --git a/Sources/OversizeKit/DeeplinkKit/DeeplinkModifier.swift b/Sources/OversizeKit/DeeplinkKit/DeeplinkModifier.swift new file mode 100644 index 0000000..a259629 --- /dev/null +++ b/Sources/OversizeKit/DeeplinkKit/DeeplinkModifier.swift @@ -0,0 +1,30 @@ +// +// Copyright © 2024 Alexander Romanov +// DeeplinkModifier.swift, created on 12.11.2024 +// + +import SwiftUI + +public struct DeeplinkModifier: ViewModifier { + private let pub = NotificationCenter.default.publisher(for: NSNotification.Name("Deeplink")) + private var onReceive: (URL) -> Void + + public init(onReceive: @escaping (URL) -> Void) { + self.onReceive = onReceive + } + + public func body(content: Content) -> some View { + content + .onReceive(pub) { output in + if let userInfo = output.userInfo, let info = userInfo["link"] as? String, let url = URL(string: info) { + onReceive(url) + } + } + } +} + +public extension View { + func onDeeplink(perform action: @escaping (URL) -> Void) -> some View { + modifier(DeeplinkModifier(onReceive: action)) + } +} diff --git a/Sources/OversizeKit/LauncherKit/Launcher.swift b/Sources/OversizeKit/LauncherKit/Launcher.swift index 51a704f..88f9a97 100644 --- a/Sources/OversizeKit/LauncherKit/Launcher.swift +++ b/Sources/OversizeKit/LauncherKit/Launcher.swift @@ -39,7 +39,7 @@ public struct Launcher: View { .systemServices() #if os(macOS) .frame(width: 840, height: 672) - // .interactiveDismissDisabled(!viewModel.appStateService.isCompletedOnbarding) + // .interactiveDismissDisabled(!viewModel.appStateService.isCompletedOnbarding) #endif } .onChange(of: viewModel.appStateService.isCompletedOnbarding) { _, isCompletedOnbarding in @@ -142,9 +142,9 @@ private extension View { item: Binding, onDismiss: (() -> Void)? = nil, @ViewBuilder content: @escaping (Item) -> some View ) -> some View where Item: Identifiable { #if os(macOS) - sheet(item: item, onDismiss: onDismiss, content: content) + sheet(item: item, onDismiss: onDismiss, content: content) #else - fullScreenCover(item: item, onDismiss: onDismiss, content: content) + fullScreenCover(item: item, onDismiss: onDismiss, content: content) #endif } } diff --git a/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift b/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift index 8899600..d3305d2 100644 --- a/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift +++ b/Sources/OversizeKit/LauncherKit/LauncherViewModel.swift @@ -10,7 +10,7 @@ import OversizeStoreService import OversizeUI import SwiftUI #if canImport(LocalAuthentication) - import LocalAuthentication +import LocalAuthentication #endif import Factory @@ -36,12 +36,12 @@ public final class LauncherViewModel: ObservableObject { var isShowLockscreen: Bool { if FeatureFlags.secure.lookscreen ?? false { if settingsService.pinCodeEnabend || settingsService.biometricEnabled, authState != .unlocked { - return true + true } else { - return false + false } } else { - return false + false } } @@ -56,10 +56,10 @@ extension LauncherViewModel { case specialOffer(event: Components.Schemas.SpecialOffer) public var id: Int { switch self { - case .onboarding: return 0 - case .payWall: return 1 - case .rate: return 2 - case .specialOffer: return 3 + case .onboarding: 0 + case .payWall: 1 + case .rate: 2 + case .specialOffer: 3 } } } @@ -152,9 +152,9 @@ public extension LauncherViewModel { func checkDateInSelectedPeriod(startDate: Date, endDate: Date) -> Bool { if startDate < endDate { - return (startDate ... endDate).contains(Date()) + (startDate ... endDate).contains(Date()) } else { - return false + false } } diff --git a/Sources/OversizeKit/LauncherKit/SplashScreen.swift b/Sources/OversizeKit/LauncherKit/SplashScreen.swift index 8b70845..e098184 100644 --- a/Sources/OversizeKit/LauncherKit/SplashScreen.swift +++ b/Sources/OversizeKit/LauncherKit/SplashScreen.swift @@ -13,14 +13,16 @@ struct SplashScreen: View { Color.accent #if os(iOS) - if let appImage = Info.app.iconName { - Image(uiImage: UIImage(named: appImage) ?? UIImage()) - .resizable() - .frame(width: 128, height: 128) - .mask(RoundedRectangle(cornerRadius: 28, - style: .continuous)) - .padding(.top, Space.xxLarge) - } + if let appImage = Info.app.iconName { + Image(uiImage: UIImage(named: appImage) ?? UIImage()) + .resizable() + .frame(width: 128, height: 128) + .mask(RoundedRectangle( + cornerRadius: 28, + style: .continuous + )) + .padding(.top, Space.xxLarge) + } #endif } diff --git a/Sources/OversizeKit/LockscreenKit/LockscreenView.swift b/Sources/OversizeKit/LockscreenKit/LockscreenView.swift index cfb01ef..03ede68 100644 --- a/Sources/OversizeKit/LockscreenKit/LockscreenView.swift +++ b/Sources/OversizeKit/LockscreenKit/LockscreenView.swift @@ -14,8 +14,8 @@ public enum LockscreenViewState { public struct LockscreenView: View { #if os(iOS) - @Environment(\.verticalSizeClass) var verticalSizeClass: UserInterfaceSizeClass? - @Environment(\.horizontalSizeClass) var horizontalSizeClass: UserInterfaceSizeClass? + @Environment(\.verticalSizeClass) var verticalSizeClass: UserInterfaceSizeClass? + @Environment(\.horizontalSizeClass) var horizontalSizeClass: UserInterfaceSizeClass? #endif @Environment(\.scenePhase) var scenePhase: ScenePhase @@ -47,31 +47,32 @@ public struct LockscreenView: View { private var isShowTitle: Bool { #if os(iOS) - if horizontalSizeClass == .compact, verticalSizeClass == .regular { - return true - } else if horizontalSizeClass == .regular, verticalSizeClass == .compact { - return false - } else if horizontalSizeClass == .regular, verticalSizeClass == .regular { - return true - } else { - return true - } - #else + if horizontalSizeClass == .compact, verticalSizeClass == .regular { + return true + } else if horizontalSizeClass == .regular, verticalSizeClass == .compact { + return false + } else if horizontalSizeClass == .regular, verticalSizeClass == .regular { return true + } else { + return true + } + #else + return true #endif } - public init(pinCode: Binding, - state: Binding = .constant(.locked), - maxCount: Int = 4, - title: String? = nil, - errorText: String? = nil, - pinCodeEnabled: Bool = true, - biometricEnabled: Bool = false, - biometricType: BiometricType = .faceID, - action: (() -> Void)? = nil, - biometricAction: (() -> Void)? = nil) - { + public init( + pinCode: Binding, + state: Binding = .constant(.locked), + maxCount: Int = 4, + title: String? = nil, + errorText: String? = nil, + pinCodeEnabled: Bool = true, + biometricEnabled: Bool = false, + biometricType: BiometricType = .faceID, + action: (() -> Void)? = nil, + biometricAction: (() -> Void)? = nil + ) { _pinCode = pinCode _state = state self.maxCount = maxCount @@ -116,16 +117,18 @@ public struct LockscreenView: View { if let appImage = Info.app.iconName { #if os(iOS) - Image(uiImage: UIImage(named: appImage) ?? UIImage()) - .resizable() - .frame(width: 96, height: 96) - .mask(RoundedRectangle(cornerRadius: 26, - style: .continuous)) + Image(uiImage: UIImage(named: appImage) ?? UIImage()) + .resizable() + .frame(width: 96, height: 96) + .mask(RoundedRectangle( + cornerRadius: 26, + style: .continuous + )) #else - Text(biometricType.rawValue) - .title2(.bold) - .foregroundColor(.onSurfacePrimary) + Text(biometricType.rawValue) + .title2(.bold) + .foregroundColor(.onSurfacePrimary) #endif @@ -139,18 +142,18 @@ public struct LockscreenView: View { #if os(iOS) - Button { biometricAction?() } label: { - HStack(spacing: .xSmall) { - biometricImage() - .padding(.leading, 2) + Button { biometricAction?() } label: { + HStack(spacing: .xSmall) { + biometricImage() + .padding(.leading, 2) - Text("Open with \(biometricType.rawValue)") - } - .padding(.horizontal, .xxxSmall) + Text("Open with \(biometricType.rawValue)") } - .buttonStyle(.tertiary(infinityWidth: false)) - .controlBorderShape(.capsule) - .controlSize(.small) + .padding(.horizontal, .xxxSmall) + } + .buttonStyle(.tertiary(infinityWidth: false)) + .controlBorderShape(.capsule) + .controlSize(.small) #endif Spacer() @@ -285,9 +288,12 @@ public struct LockscreenView: View { .offset(x: leftOffset) // .animation(Animation.easeInOut(duration: 1).delay(0.2 * Double(number))) .scaleEffect(shouldAnimate ? 0.5 : 1) - .animation(Animation.easeInOut(duration: 0.5) - .repeatForever() - .delay(number == 0 ? 0 : 0.5 * Double(number)), value: shouldAnimate) + .animation( + Animation.easeInOut(duration: 0.5) + .repeatForever() + .delay(number == 0 ? 0 : 0.5 * Double(number)), + value: shouldAnimate + ) } } .onReceive(timer) { _ in diff --git a/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift b/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift index 0da5cbe..a48ca82 100644 --- a/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift +++ b/Sources/OversizeKit/SettingsKit/SettingsRouter/ResolveRouter.swift @@ -52,13 +52,13 @@ extension SettingsScreen: @preconcurrency RoutableView { WebView(url: url) case let .sendMail(to: to, subject: subject, content: content): #if os(iOS) - MailView( - to: to, - subject: subject, - content: content - ) + MailView( + to: to, + subject: subject, + content: content + ) #else - EmptyView() + EmptyView() #endif } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift index d852126..bcfffa2 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift @@ -15,7 +15,7 @@ import SwiftUI // swiftlint:disable all #if canImport(MessageUI) - import MessageUI +import MessageUI #endif public struct AboutView: View { @@ -42,42 +42,42 @@ public struct AboutView: View { var oppacity: CGFloat { if offset < 0 { - return 1 + 1 } else if offset > 500 { - return 0 + 0 } else { - return Double(1 / (offset * 0.01)) + Double(1 / (offset * 0.01)) } } var blur: CGFloat { if offset < 0 { - return 0 + 0 } else { - return Double(offset * 0.05) + Double(offset * 0.05) } } #if os(iOS) - let scale = UIScreen.main.scale + let scale = UIScreen.main.scale #else - let scale: CGFloat = 2 + let scale: CGFloat = 2 #endif public var body: some View { #if os(iOS) - Page(L10n.Settings.about) { - list - .surfaceContentRowMargins() - .task { - await viewModel.fetchApps() - } - } - .backgroundSecondary() + Page(L10n.Settings.about) { + list + .surfaceContentRowMargins() + .task { + await viewModel.fetchApps() + } + } + .backgroundSecondary() #else - list - .navigationTitle(L10n.Settings.about) + list + .navigationTitle(L10n.Settings.about) #endif } @@ -101,13 +101,17 @@ public struct AboutView: View { $0 .resizable() .frame(width: 74, height: 74) - .mask(RoundedRectangle(cornerRadius: .large, - style: .continuous)) + .mask(RoundedRectangle( + cornerRadius: .large, + style: .continuous + )) .overlay( - RoundedRectangle(cornerRadius: 16, - style: .continuous) - .stroke(lineWidth: 1) - .opacity(0.15) + RoundedRectangle( + cornerRadius: 16, + style: .continuous + ) + .stroke(lineWidth: 1) + .opacity(0.15) ) }, placeholder: { @@ -215,42 +219,42 @@ public struct AboutView: View { } #if os(iOS) - if MFMailComposeViewController.canSendMail(), - let mail = Info.links?.company.email, - let appVersion = Info.app.verstion, - let appName = Info.app.name, - let device = Info.app.device, - let appBuild = Info.app.build, - let systemVersion = Info.app.system - { - let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" - let subject = "Feedback" - - Row(L10n.About.suggestIdea) { - isShowMail.toggle() - } leading: { - ideaSettingsIcon.icon() - } + if MFMailComposeViewController.canSendMail(), + let mail = Info.links?.company.email, + let appVersion = Info.app.verstion, + let appName = Info.app.name, + let device = Info.app.device, + let appBuild = Info.app.build, + let systemVersion = Info.app.system + { + let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" + let subject = "Feedback" + + Row(L10n.About.suggestIdea) { + isShowMail.toggle() + } leading: { + ideaSettingsIcon.icon() + } - .buttonStyle(.row) - .sheet(isPresented: $isShowMail) { - MailView(to: mail, subject: subject, content: contentPreText) - } + .buttonStyle(.row) + .sheet(isPresented: $isShowMail) { + MailView(to: mail, subject: subject, content: contentPreText) } + } #endif #if os(iOS) - if let shareUrl = Info.url.appInstallShare, let id = Info.app.appStoreID, !id.isEmpty { - Row(L10n.Settings.shareApplication) { - isSharePresented.toggle() - } leading: { - shareSettingsIcon.icon() - } - .sheet(isPresented: $isSharePresented) { - ActivityViewController(activityItems: [shareUrl]) - .presentationDetents([.medium, .large]) - } + if let shareUrl = Info.url.appInstallShare, let id = Info.app.appStoreID, !id.isEmpty { + Row(L10n.Settings.shareApplication) { + isSharePresented.toggle() + } leading: { + shareSettingsIcon.icon() } + .sheet(isPresented: $isSharePresented) { + ActivityViewController(activityItems: [shareUrl]) + .presentationDetents([.medium, .large]) + } + } #endif } } @@ -496,33 +500,33 @@ public struct AboutView: View { var rateSettingsIcon: Image { switch iconStyle { case .line: - return Image.Base.heart + Image.Base.heart case .fill: - return Image.Base.Heart.fill + Image.Base.Heart.fill case .twoTone: - return Image.Base.Heart.TwoTone.fill + Image.Base.Heart.TwoTone.fill } } var ideaSettingsIcon: Image { switch iconStyle { case .line: - return Image.Electricity.lamp + Image.Electricity.lamp case .fill: - return Image.Electricity.Lamp.fill + Image.Electricity.Lamp.fill case .twoTone: - return Image.Electricity.Lamp.TwoTone.fill + Image.Electricity.Lamp.TwoTone.fill } } var shareSettingsIcon: Image { switch iconStyle { case .line: - return Image.Base.send + Image.Base.send case .fill: - return Image.Base.Send.fill + Image.Base.Send.fill case .twoTone: - return Image.Base.Send.TwoTone.fill + Image.Base.Send.TwoTone.fill } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift b/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift index bd8491f..c722787 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/FeedbackView.swift @@ -4,7 +4,7 @@ // #if canImport(MessageUI) - import MessageUI +import MessageUI #endif import OversizeComponents import OversizeLocalizable @@ -58,33 +58,33 @@ public struct FeedbackView: View { VStack(alignment: .leading) { #if os(iOS) - if MFMailComposeViewController.canSendMail(), - let mail = Info.links?.company.email, - let appVersion = Info.app.verstion, - let appName = Info.app.name, - let device = Info.app.device, - let appBuild = Info.app.build, - let systemVersion = Info.app.system - { - let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" - let subject = "Feedback" + if MFMailComposeViewController.canSendMail(), + let mail = Info.links?.company.email, + let appVersion = Info.app.verstion, + let appName = Info.app.name, + let device = Info.app.device, + let appBuild = Info.app.build, + let systemVersion = Info.app.system + { + let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" + let subject = "Feedback" - Row(L10n.Settings.feedbakAuthor) { - router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) - } leading: { - mailIcon.icon() - } - } else { - // Send author - if let sendMailUrl = Info.url.developerSendMail { - Link(destination: sendMailUrl) { - Row(L10n.Settings.feedbakAuthor) { - mailIcon.icon() - } + Row(L10n.Settings.feedbakAuthor) { + router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) + } leading: { + mailIcon.icon() + } + } else { + // Send author + if let sendMailUrl = Info.url.developerSendMail { + Link(destination: sendMailUrl) { + Row(L10n.Settings.feedbakAuthor) { + mailIcon.icon() } - .buttonStyle(.row) } + .buttonStyle(.row) } + } #endif // Telegramm chat @@ -104,33 +104,33 @@ public struct FeedbackView: View { var heartIcon: Image { switch iconStyle { case .line: - return Image.Brands.appStore + Image.Brands.appStore case .fill: - return Image.Brands.AppStore.fill + Image.Brands.AppStore.fill case .twoTone: - return Image.Brands.AppStore.twoTone + Image.Brands.AppStore.twoTone } } var mailIcon: Image { switch iconStyle { case .line: - return Image.Email.email + Image.Email.email case .fill: - return Image.Email.Email.fill + Image.Email.Email.fill case .twoTone: - return Image.Email.Email.twoTone + Image.Email.Email.twoTone } } var chatIcon: Image { switch iconStyle { case .line: - return Image.Brands.telegram + Image.Brands.telegram case .fill: - return Image.Brands.Telegram.fill + Image.Brands.Telegram.fill case .twoTone: - return Image.Brands.Telegram.twoTone + Image.Brands.Telegram.twoTone } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift b/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift index ee5cae7..991ca77 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/OurResorsesView.swift @@ -4,7 +4,7 @@ // #if canImport(MessageUI) - import MessageUI +import MessageUI #endif import OversizeComponents import OversizeLocalizable @@ -53,22 +53,22 @@ public struct OurResorsesView: View { var figmaIcon: Image { switch iconStyle { case .line: - return Image.Brands.figma + Image.Brands.figma case .fill: - return Image.Brands.figma + Image.Brands.figma case .twoTone: - return Image.Brands.figma + Image.Brands.figma } } var githubIcon: Image { switch iconStyle { case .line: - return Image.Brands.github + Image.Brands.github case .fill: - return Image.Brands.github + Image.Brands.github case .twoTone: - return Image.Brands.github + Image.Brands.github } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift b/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift index d0aa8cc..441e1e2 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/SupportView.swift @@ -4,7 +4,7 @@ // #if canImport(MessageUI) - import MessageUI +import MessageUI #endif import OversizeComponents import OversizeLocalizable @@ -49,33 +49,33 @@ public struct SupportView: View { SectionView { VStack(alignment: .leading) { #if os(iOS) - if MFMailComposeViewController.canSendMail(), - let mail = Info.links?.company.email, - let appVersion = Info.app.verstion, - let appName = Info.app.name, - let device = Info.app.device, - let appBuild = Info.app.build, - let systemVersion = Info.app.system - { - let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" - let subject = "Support" + if MFMailComposeViewController.canSendMail(), + let mail = Info.links?.company.email, + let appVersion = Info.app.verstion, + let appName = Info.app.name, + let device = Info.app.device, + let appBuild = Info.app.build, + let systemVersion = Info.app.system + { + let contentPreText = "\n\n\n\n\n\n————————————————\nApp: \(appName) \(appVersion) (\(appBuild))\nDevice: \(device), \(systemVersion)\nLocale: \(Info.app.language ?? "Not init")" + let subject = "Support" - Row("Contact Us") { - router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) - } leading: { - mailIcon.icon() - } - } else { - // Send author - if let sendMailUrl = Info.url.developerSendMail { - Link(destination: sendMailUrl) { - Row("Contact Us") { - mailIcon.icon() - } + Row("Contact Us") { + router.present(.sendMail(to: mail, subject: subject, content: contentPreText)) + } leading: { + mailIcon.icon() + } + } else { + // Send author + if let sendMailUrl = Info.url.developerSendMail { + Link(destination: sendMailUrl) { + Row("Contact Us") { + mailIcon.icon() } - .buttonStyle(.row) } + .buttonStyle(.row) } + } #endif // Telegramm chat @@ -95,33 +95,33 @@ public struct SupportView: View { var heartIcon: Image { switch iconStyle { case .line: - return Image.Brands.appStore + Image.Brands.appStore case .fill: - return Image.Brands.AppStore.fill + Image.Brands.AppStore.fill case .twoTone: - return Image.Brands.AppStore.twoTone + Image.Brands.AppStore.twoTone } } var mailIcon: Image { switch iconStyle { case .line: - return Image.Email.email + Image.Email.email case .fill: - return Image.Email.Email.fill + Image.Email.Email.fill case .twoTone: - return Image.Email.Email.twoTone + Image.Email.Email.twoTone } } var chatIcon: Image { switch iconStyle { case .line: - return Image.Brands.telegram + Image.Brands.telegram case .fill: - return Image.Brands.Telegram.fill + Image.Brands.Telegram.fill case .twoTone: - return Image.Brands.Telegram.twoTone + Image.Brands.Telegram.twoTone } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift index 89946c5..2747f82 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/AppearanceSettingView.swift @@ -17,7 +17,7 @@ public struct AppearanceSettingView: View { @Environment(\.isPremium) var isPremium: Bool #if os(iOS) - @StateObject var iconSettings = AppIconSettings() + @StateObject var iconSettings = AppIconSettings() #endif private let columns = [ @@ -28,33 +28,33 @@ public struct AppearanceSettingView: View { public var body: some View { #if os(iOS) - Page(L10n.Settings.apperance) { - iOSSettings - .surfaceContentRowMargins() - } - .backgroundSecondary() + Page(L10n.Settings.apperance) { + iOSSettings + .surfaceContentRowMargins() + } + .backgroundSecondary() #else - macSettings + macSettings #endif } #if os(iOS) - private var iOSSettings: some View { - LazyVStack(alignment: .leading, spacing: 0) { - apperance + private var iOSSettings: some View { + LazyVStack(alignment: .leading, spacing: 0) { + apperance - accentColor + accentColor - advanded + advanded - if iconSettings.iconNames.count > 1 { - appIcon - } + if iconSettings.iconNames.count > 1 { + appIcon } - .preferredColorScheme(theme.appearance.colorScheme) - .accentColor(theme.accentColor) } + .preferredColorScheme(theme.appearance.colorScheme) + .accentColor(theme.accentColor) + } #endif private var macSettings: some View { @@ -101,57 +101,59 @@ public struct AppearanceSettingView: View { } #if os(iOS) - private var accentColor: some View { - SectionView("Accent color") { - ColorSelector(selection: theme.$accentColor) - } + private var accentColor: some View { + SectionView("Accent color") { + ColorSelector(selection: theme.$accentColor) } + } #endif #if os(iOS) - private var appIcon: some View { - SectionView("App icon") { - LazyVGrid(columns: columns, spacing: 24) { - ForEach(0 ..< iconSettings.iconNames.count, id: \.self) { index in - HStack { - Image(uiImage: UIImage(named: iconSettings.iconNames[index] - ?? "AppIcon") ?? UIImage()) - .renderingMode(.original) - .resizable() - .scaledToFit() - .frame(width: 78, height: 78) - .cornerRadius(18) - .overlay( - RoundedRectangle(cornerRadius: 20) - .stroke(index == iconSettings.currentIndex ? Color.accent : Color.border, - lineWidth: index == iconSettings.currentIndex ? 3 : 1) - ) - .onTapGesture { - if index != 0, isPremium == false { - router.present(.premium) - } else { - let defaultIconIndex = iconSettings.iconNames - .firstIndex(of: UIApplication.shared.alternateIconName) ?? 0 - if defaultIconIndex != index { - // swiftlint:disable line_length - UIApplication.shared.setAlternateIconName(iconSettings.iconNames[index]) { error in - if let error { - log(error.localizedDescription) - } else { - log("Success! You have changed the app icon.") - } + private var appIcon: some View { + SectionView("App icon") { + LazyVGrid(columns: columns, spacing: 24) { + ForEach(0 ..< iconSettings.iconNames.count, id: \.self) { index in + HStack { + Image(uiImage: UIImage(named: iconSettings.iconNames[index] + ?? "AppIcon") ?? UIImage()) + .renderingMode(.original) + .resizable() + .scaledToFit() + .frame(width: 78, height: 78) + .cornerRadius(18) + .overlay( + RoundedRectangle(cornerRadius: 20) + .stroke( + index == iconSettings.currentIndex ? Color.accent : Color.border, + lineWidth: index == iconSettings.currentIndex ? 3 : 1 + ) + ) + .onTapGesture { + if index != 0, isPremium == false { + router.present(.premium) + } else { + let defaultIconIndex = iconSettings.iconNames + .firstIndex(of: UIApplication.shared.alternateIconName) ?? 0 + if defaultIconIndex != index { + // swiftlint:disable line_length + UIApplication.shared.setAlternateIconName(iconSettings.iconNames[index]) { error in + if let error { + log(error.localizedDescription) + } else { + log("Success! You have changed the app icon.") } } } } - } - .padding(3) + } } + .padding(3) } - .padding() } + .padding() } + } #endif private var advanded: some View { @@ -197,59 +199,59 @@ public struct AppearanceSettingView: View { var textIcon: Image { switch iconStyle { case .line: - return Image.Editor.Font.square + Image.Editor.Font.square case .fill: - return Image.Editor.Font.Square.fill + Image.Editor.Font.Square.fill case .twoTone: - return Image.Editor.Font.Square.TwoTone.fill + Image.Editor.Font.Square.TwoTone.fill } } var borderIcon: Image { switch iconStyle { case .line: - return Image.Design.verticalMirror + Image.Design.verticalMirror case .fill: - return Image.Editor.Font.Square.fill + Image.Editor.Font.Square.fill case .twoTone: - return Image.Editor.Font.Square.TwoTone.fill + Image.Editor.Font.Square.TwoTone.fill } } var radiusIcon: Image { switch iconStyle { case .line: - return Image.Design.path + Image.Design.path case .fill: - return Image.Design.Path.fill + Image.Design.Path.fill case .twoTone: - return Image.Design.Path.twoTone + Image.Design.Path.twoTone } } } #if os(iOS) - @MainActor - public class AppIconSettings: ObservableObject { - public var iconNames: [String?] = [nil] - @Published public var currentIndex = 0 +@MainActor +public class AppIconSettings: ObservableObject { + public var iconNames: [String?] = [nil] + @Published public var currentIndex = 0 - public init() { - getAlternateIconNames() + public init() { + getAlternateIconNames() - if let currentIcon = UIApplication.shared.alternateIconName { - currentIndex = iconNames.firstIndex(of: currentIcon) ?? 0 - } + if let currentIcon = UIApplication.shared.alternateIconName { + currentIndex = iconNames.firstIndex(of: currentIcon) ?? 0 } + } - private func getAlternateIconNames() { - if let iconCount = FeatureFlags.app.alternateAppIcons, iconCount != 0 { - for index in 1 ... iconCount { - iconNames.append("AlternateAppIcon\(index)") - } + private func getAlternateIconNames() { + if let iconCount = FeatureFlags.app.alternateAppIcons, iconCount != 0 { + for index in 1 ... iconCount { + iconNames.append("AlternateAppIcon\(index)") } } } +} #endif struct SettingsThemeView_Previews: PreviewProvider { diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift index 6a41ab4..3a16be0 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/BorderSettingView.swift @@ -45,27 +45,27 @@ public struct BorderSettingView: View { if theme.borderApp { VStack(spacing: Space.small.rawValue) { #if os(iOS) || os(macOS) - Surface { - VStack(spacing: Space.xxSmall.rawValue) { - HStack { - Text("Size") - .subheadline() - .foregroundColor(.onSurfacePrimary) - - Spacer() - - Text(String(format: "%.1f", theme.borderSize) + " px") - .subheadline() - .foregroundColor(.onSurfacePrimary) - } - - Slider(value: theme.$borderSize, in: 0.5 ... 2, step: 0.5) + Surface { + VStack(spacing: Space.xxSmall.rawValue) { + HStack { + Text("Size") + .subheadline() + .foregroundColor(.onSurfacePrimary) + + Spacer() + + Text(String(format: "%.1f", theme.borderSize) + " px") + .subheadline() + .foregroundColor(.onSurfacePrimary) } + + Slider(value: theme.$borderSize, in: 0.5 ... 2, step: 0.5) } - .surfaceStyle(.secondary) - .surfaceContentMargins(.small) - .padding(.horizontal, Space.medium) - .padding(.bottom, Space.xxSmall) + } + .surfaceStyle(.secondary) + .surfaceContentMargins(.small) + .padding(.horizontal, Space.medium) + .padding(.bottom, Space.xxSmall) #endif diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift index ad9c8cf..8112526 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/FontSettingView.swift @@ -50,39 +50,45 @@ public struct FontSettingView: View { } private var titleSelector: some View { - GridSelect(FontDesignType.allCases, selection: theme.$fontTitle, - content: { fontStyle, _ in - HStack { - VStack(alignment: .leading, spacing: 8) { - Text("Aa") - .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) - .foregroundColor(.onSurfacePrimary) - - Text(fontStyle.rawValue.capitalizingFirstLetter()) - .font(.system(size: 16, weight: .medium, design: fontStyle.system)) - .foregroundColor(.onSurfacePrimary) - } - Spacer() - }.padding() - }).gridSelectStyle(.default(selected: .graySurface)) + GridSelect( + FontDesignType.allCases, + selection: theme.$fontTitle, + content: { fontStyle, _ in + HStack { + VStack(alignment: .leading, spacing: 8) { + Text("Aa") + .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) + .foregroundColor(.onSurfacePrimary) + + Text(fontStyle.rawValue.capitalizingFirstLetter()) + .font(.system(size: 16, weight: .medium, design: fontStyle.system)) + .foregroundColor(.onSurfacePrimary) + } + Spacer() + }.padding() + } + ).gridSelectStyle(.default(selected: .graySurface)) } private var paragraphSelector: some View { - GridSelect(FontDesignType.allCases, selection: theme.$fontParagraph, - content: { fontStyle, _ in - HStack { - VStack(alignment: .leading, spacing: 8) { - Text("Aa") - .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) - .foregroundColor(.onSurfacePrimary) - - Text(fontStyle.rawValue.capitalizingFirstLetter()) - .font(.system(size: 16, weight: .medium, design: fontStyle.system)) - .foregroundColor(.onSurfacePrimary) - } - Spacer() - }.padding() - }).gridSelectStyle(.default(selected: .graySurface)) + GridSelect( + FontDesignType.allCases, + selection: theme.$fontParagraph, + content: { fontStyle, _ in + HStack { + VStack(alignment: .leading, spacing: 8) { + Text("Aa") + .font(.system(size: 34, weight: .heavy, design: fontStyle.system)) + .foregroundColor(.onSurfacePrimary) + + Text(fontStyle.rawValue.capitalizingFirstLetter()) + .font(.system(size: 16, weight: .medium, design: fontStyle.system)) + .foregroundColor(.onSurfacePrimary) + } + Spacer() + }.padding() + } + ).gridSelectStyle(.default(selected: .graySurface)) } private var otherSelector: some View { diff --git a/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift b/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift index 1d63b74..e7129e7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Apperance/RadiusSettingView.swift @@ -28,23 +28,23 @@ public struct RadiusSettingView: View { VStack(spacing: .zero) { VStack(spacing: Space.small.rawValue) { #if os(iOS) || os(macOS) - VStack(spacing: Space.xxSmall.rawValue) { - HStack { - Text("Size") - .subheadline() - .foregroundColor(.onSurfacePrimary) + VStack(spacing: Space.xxSmall.rawValue) { + HStack { + Text("Size") + .subheadline() + .foregroundColor(.onSurfacePrimary) - Spacer() + Spacer() - Text(String(format: "%.0f", theme.radius) + " px") - .subheadline() - .foregroundColor(.onSurfacePrimary) - } - - Slider(value: theme.$radius, in: 0 ... 12, step: 4) + Text(String(format: "%.0f", theme.radius) + " px") + .subheadline() + .foregroundColor(.onSurfacePrimary) } - .padding(.horizontal, Space.medium) - .padding(.bottom, Space.xxSmall) + + Slider(value: theme.$radius, in: 0 ... 12, step: 4) + } + .padding(.horizontal, Space.medium) + .padding(.bottom, Space.xxSmall) #endif } diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift index c0484ee..a2710de 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/PINCode/SetPINCodeView.swift @@ -35,32 +35,35 @@ public struct SetPINCodeView: View { private func stateView(state: SetPINCodeViewState) -> some View { switch state { case .oldPINField: - LockscreenView(pinCode: $viewModel.oldCodeField, - state: $viewModel.authState, - maxCount: viewModel.maxCount, - title: L10n.Security.oldPINCode, - errorText: viewModel.errorText) - { + LockscreenView( + pinCode: $viewModel.oldCodeField, + state: $viewModel.authState, + maxCount: viewModel.maxCount, + title: L10n.Security.oldPINCode, + errorText: viewModel.errorText + ) { viewModel.chekOldPINCode() } biometricAction: {} case .newPINField: - LockscreenView(pinCode: $viewModel.newPinCodeField, - state: $viewModel.authState, - maxCount: viewModel.maxCount, - title: L10n.Security.newPINCode, - errorText: viewModel.errorText) - { + LockscreenView( + pinCode: $viewModel.newPinCodeField, + state: $viewModel.authState, + maxCount: viewModel.maxCount, + title: L10n.Security.newPINCode, + errorText: viewModel.errorText + ) { viewModel.checkNewPINCode() } biometricAction: {} case .confirmNewPINField: - LockscreenView(pinCode: $viewModel.confirmNewCodeField, - state: $viewModel.authState, - maxCount: viewModel.maxCount, - title: L10n.Security.confirmPINCode, - errorText: viewModel.errorText) - { + LockscreenView( + pinCode: $viewModel.confirmNewCodeField, + state: $viewModel.authState, + maxCount: viewModel.maxCount, + title: L10n.Security.confirmPINCode, + errorText: viewModel.errorText + ) { Task { let result = await viewModel.checkConfirmNewPINCode() switch result { diff --git a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift index dc09593..6256ce7 100644 --- a/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/Security/SecuritySettingsView.swift @@ -146,13 +146,13 @@ extension SecuritySettingsView { private var biometricImageName: String { switch biometricService.biometricType { case .none: - return "" + "" case .touchID: - return "touchid" + "touchid" case .faceID: - return "faceid" + "faceid" case .opticID: - return "opticid" + "opticid" } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift index 22fd90d..e207769 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift @@ -31,12 +31,12 @@ public struct SettingsView: View { public var body: some View { #if os(iOS) - Page(L10n.Settings.title) { - iOSSettings - }.backgroundSecondary() + Page(L10n.Settings.title) { + iOSSettings + }.backgroundSecondary() #else - macSettings + macSettings #endif } @@ -44,26 +44,26 @@ public struct SettingsView: View { // iOS Settings #if os(iOS) - extension SettingsView { - private var iOSSettings: some View { - VStack(alignment: .center, spacing: 0) { - if let stoteKit = FeatureFlags.app.storeKit { - if stoteKit { - SectionView { - PrmiumBannerRow() - } - .surfaceContentMargins(.zero) +extension SettingsView { + private var iOSSettings: some View { + VStack(alignment: .center, spacing: 0) { + if let stoteKit = FeatureFlags.app.storeKit { + if stoteKit { + SectionView { + PrmiumBannerRow() } + .surfaceContentMargins(.zero) } - Group { - app - help - about - } - .surfaceContentRowMargins() } + Group { + app + help + about + } + .surfaceContentRowMargins() } } +} #endif extension SettingsView { @@ -136,66 +136,66 @@ extension SettingsView { var apperanceSettingsIcon: Image { switch iconStyle { case .line: - return Image.Design.paintingPalette + Image.Design.paintingPalette case .fill: - return Image.Design.PaintingPalette.fill + Image.Design.PaintingPalette.fill case .twoTone: - return Image.Design.PaintingPalette.twoTone + Image.Design.PaintingPalette.twoTone } } var cloudKitIcon: Image { switch iconStyle { case .line: - return Image.Weather.cloud2 + Image.Weather.cloud2 case .fill: - return Image.Weather.Cloud.Square.fill + Image.Weather.Cloud.Square.fill case .twoTone: - return Image.Weather.Cloud.Square.twoTone + Image.Weather.Cloud.Square.twoTone } } var securityIcon: Image { switch iconStyle { case .line: - return Image.Base.lock + Image.Base.lock case .fill: - return Image.Base.Lock.fill + Image.Base.Lock.fill case .twoTone: - return Image.Base.Lock.TwoTone.fill + Image.Base.Lock.TwoTone.fill } } var soundIcon: Image { switch iconStyle { case .line: - return Image.Base.volumeUp + Image.Base.volumeUp case .fill: - return Image.Base.VolumeUp.fill + Image.Base.VolumeUp.fill case .twoTone: - return Image.Base.VolumeUp.TwoTone.fill + Image.Base.VolumeUp.TwoTone.fill } } var vibrationIcon: Image { switch iconStyle { case .line: - return Image.Mobile.vibration + Image.Mobile.vibration case .fill: - return Image.Mobile.Vibration.fill + Image.Mobile.Vibration.fill case .twoTone: - return Image.Mobile.Vibration.twoTone + Image.Mobile.Vibration.twoTone } } var notificationsIcon: Image { switch iconStyle { case .line: - return Image.Base.notification + Image.Base.notification case .fill: - return Image.Base.Notification.fill + Image.Base.Notification.fill case .twoTone: - return Image.Base.Notification.TwoTone.fill + Image.Base.Notification.TwoTone.fill } } @@ -205,7 +205,7 @@ extension SettingsView { VStack(alignment: .leading) { Row("Get help") { #if os(iOS) - router.present(.support, detents: [.medium]) + router.present(.support, detents: [.medium]) #endif } leading: { helpIcon.icon() @@ -215,7 +215,7 @@ extension SettingsView { Row("Send feedback") { #if os(iOS) - router.present(.feedback, detents: [.medium]) + router.present(.feedback, detents: [.medium]) #endif } leading: { chatIcon.icon() @@ -229,66 +229,66 @@ extension SettingsView { var heartIcon: Image { switch iconStyle { case .line: - return Image.Base.heart + Image.Base.heart case .fill: - return Image.Base.Heart.fill + Image.Base.Heart.fill case .twoTone: - return Image.Base.Heart.TwoTone.fill + Image.Base.Heart.TwoTone.fill } } var mailIcon: Image { switch iconStyle { case .line: - return Image.Base.message + Image.Base.message case .fill: - return Image.Base.Message.fill + Image.Base.Message.fill case .twoTone: - return Image.Base.Message.TwoTone.fill + Image.Base.Message.TwoTone.fill } } var chatIcon: Image { switch iconStyle { case .line: - return Image.Base.chat + Image.Base.chat case .fill: - return Image.Base.Chat.fill + Image.Base.Chat.fill case .twoTone: - return Image.Base.Chat.twoTone + Image.Base.Chat.twoTone } } var infoIcon: Image { switch iconStyle { case .line: - return Image.Base.Info.circle + Image.Base.Info.circle case .fill: - return Image.Base.Info.Circle.fill + Image.Base.Info.Circle.fill case .twoTone: - return Image.Base.Info.Circle.twoTone + Image.Base.Info.Circle.twoTone } } var oversizeIcon: Image { switch iconStyle { case .line: - return Image.Brands.oversize + Image.Brands.oversize case .fill: - return Image.Brands.Oversize.fill + Image.Brands.Oversize.fill case .twoTone: - return Image.Brands.Oversize.TwoTone.fill + Image.Brands.Oversize.TwoTone.fill } } var helpIcon: Image { switch iconStyle { case .line: - return Image.Alert.Help.circle + Image.Alert.Help.circle case .fill: - return Image.Alert.Help.Circle.fill + Image.Alert.Help.Circle.fill case .twoTone: - return Image.Alert.Help.Circle.twoTone + Image.Alert.Help.Circle.twoTone } } @@ -308,13 +308,13 @@ extension SettingsView { var soundsAndVibrationTitle: String { if FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.soundsAndVibration + L10n.Settings.soundsAndVibration } else if FeatureFlags.app.sounds.valueOrFalse, !FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.sounds + L10n.Settings.sounds } else if !FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.vibration + L10n.Settings.vibration } else { - return "" + "" } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift index 6465b3a..fa1549c 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SoundAndVibration/SoundsAndVibrationsSettingsView.swift @@ -25,13 +25,13 @@ public struct SoundsAndVibrationsSettingsView: View { private var title: String { if FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.soundsAndVibration + L10n.Settings.soundsAndVibration } else if FeatureFlags.app.sounds.valueOrFalse, !FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.sounds + L10n.Settings.sounds } else if !FeatureFlags.app.sounds.valueOrFalse, FeatureFlags.app.vibration.valueOrFalse { - return L10n.Settings.vibration + L10n.Settings.vibration } else { - return "" + "" } } } @@ -70,11 +70,11 @@ extension SoundsAndVibrationsSettingsView { var vibrationIcon: Image { switch iconStyle { case .line: - return Image.Mobile.vibration + Image.Mobile.vibration case .fill: - return Image.Mobile.Vibration.fill + Image.Mobile.Vibration.fill case .twoTone: - return Image.Mobile.Vibration.twoTone + Image.Mobile.Vibration.twoTone } } } diff --git a/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift index 6a42b66..b8042c3 100644 --- a/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/iCloud/iCloudSettingsView.swift @@ -48,9 +48,10 @@ extension iCloudSettingsView { if FeatureFlags.secure.CVVCodes.valueOrFalse { Switch(isOn: $settingsService.cloudKitCVVEnabled) { - Row(L10n.Security.iCloudSyncCVVDescriptionCloudKit, - subtitle: settingsService.cloudKitCVVEnabled ? L10n.Security.iCloudSyncCVVDescriptionCloudKit : L10n.Security.iCloudSyncCVVDescriptionLocal) - { + Row( + L10n.Security.iCloudSyncCVVDescriptionCloudKit, + subtitle: settingsService.cloudKitCVVEnabled ? L10n.Security.iCloudSyncCVVDescriptionCloudKit : L10n.Security.iCloudSyncCVVDescriptionLocal + ) { Image.Security.cloudLock .icon() .frame(width: 24, height: 24) diff --git a/Sources/OversizeKit/StateKit/LoadingViewState.swift b/Sources/OversizeKit/StateKit/LoadingViewState.swift index 05176b8..4ae0315 100644 --- a/Sources/OversizeKit/StateKit/LoadingViewState.swift +++ b/Sources/OversizeKit/StateKit/LoadingViewState.swift @@ -17,33 +17,42 @@ public extension LoadingViewState { var isLoading: Bool { switch self { case .loading, .idle: - return true + true default: - return false + false } } var result: Result? { switch self { case let .result(result): - return result + result default: - return nil + nil + } + } + + var error: AppError? { + switch self { + case let .error(error): + error + default: + nil } } static func == (lhs: LoadingViewState, rhs: LoadingViewState) -> Bool { switch (lhs, rhs) { case (.idle, .idle): - return true + true case (.loading, .loading): - return true + true case (.result, .result): - return true + true case (.error, .error): - return true + true default: - return false + false } } } diff --git a/Sources/OversizeKit/StateKit/ResultExtension.swift b/Sources/OversizeKit/StateKit/ResultExtension.swift new file mode 100644 index 0000000..e3423e7 --- /dev/null +++ b/Sources/OversizeKit/StateKit/ResultExtension.swift @@ -0,0 +1,34 @@ +// +// Copyright © 2024 Alexander Romanov +// File.swift, created on 27.11.2024 +// + +import Foundation +import OversizeModels + +public extension Result { + var failureError: Failure? { + switch self { + case let .failure(error): error + case .success: nil + } + } + + var successResult: Success? { + switch self { + case .failure: nil + case let .success(value): value + } + } +} + +public extension Result { + var isFailure: Bool { !isSuccess } + + var isSuccess: Bool { + switch self { + case .failure: false + case .success: true + } + } +} diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductView.swift index 96e6aed..ef6de0f 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductView.swift @@ -6,35 +6,35 @@ import SwiftUI #if os(iOS) - public struct AppStoreProductViewControllerRepresentable: UIViewControllerRepresentable { - public typealias UIViewControllerType = AppStoreProductViewController +public struct AppStoreProductViewControllerRepresentable: UIViewControllerRepresentable { + public typealias UIViewControllerType = AppStoreProductViewController - private var isPresentStoreProduct: Binding - private let appId: String + private var isPresentStoreProduct: Binding + private let appId: String - public init(isPresentStoreProduct: Binding, appId: String) { - self.isPresentStoreProduct = isPresentStoreProduct - self.appId = appId - } + public init(isPresentStoreProduct: Binding, appId: String) { + self.isPresentStoreProduct = isPresentStoreProduct + self.appId = appId + } - public func makeUIViewController(context _: Context) -> UIViewControllerType { - let viewController = AppStoreProductViewController(isPresentStoreProduct: isPresentStoreProduct, appId: appId) - return viewController - } + public func makeUIViewController(context _: Context) -> UIViewControllerType { + let viewController = AppStoreProductViewController(isPresentStoreProduct: isPresentStoreProduct, appId: appId) + return viewController + } - public func updateUIViewController(_ uiViewController: UIViewControllerType, context _: Context) { - if isPresentStoreProduct.wrappedValue { - uiViewController.presentStoreProduct() - } + public func updateUIViewController(_ uiViewController: UIViewControllerType, context _: Context) { + if isPresentStoreProduct.wrappedValue { + uiViewController.presentStoreProduct() } } +} - public extension View { - func appStoreOverlay(isPresent: Binding, appId: String) -> some View { - background { - AppStoreProductViewControllerRepresentable(isPresentStoreProduct: isPresent, appId: appId) - .frame(width: 0, height: 0) - } +public extension View { + func appStoreOverlay(isPresent: Binding, appId: String) -> some View { + background { + AppStoreProductViewControllerRepresentable(isPresentStoreProduct: isPresent, appId: appId) + .frame(width: 0, height: 0) } } +} #endif diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift index 1928817..5b63ee2 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/AppStoreProduct/AppStoreProductViewController.swift @@ -4,62 +4,62 @@ // #if os(iOS) - import StoreKit - import SwiftUI - import UIKit +import StoreKit +import SwiftUI +import UIKit - public class AppStoreProductViewController: UIViewController { - private var isPresentStoreProduct: Binding - private let appId: String +public class AppStoreProductViewController: UIViewController { + private var isPresentStoreProduct: Binding + private let appId: String - public init(isPresentStoreProduct: Binding, appId: String) { - self.isPresentStoreProduct = isPresentStoreProduct - self.appId = appId + public init(isPresentStoreProduct: Binding, appId: String) { + self.isPresentStoreProduct = isPresentStoreProduct + self.appId = appId - super.init(nibName: nil, bundle: nil) - } + super.init(nibName: nil, bundle: nil) + } - @available(*, unavailable) - required init?(coder _: NSCoder) { - fatalError("init(coder:) has not been implemented") - } + @available(*, unavailable) + required init?(coder _: NSCoder) { + fatalError("init(coder:) has not been implemented") + } - override public func viewDidLoad() { - super.viewDidLoad() - } + override public func viewDidLoad() { + super.viewDidLoad() + } - override public func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - } + override public func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + } - override public func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - } + override public func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + } - func presentStoreProduct() { - let storeProductViewController = SKStoreProductViewController() - storeProductViewController.delegate = self + func presentStoreProduct() { + let storeProductViewController = SKStoreProductViewController() + storeProductViewController.delegate = self - let parameters = [SKStoreProductParameterITunesItemIdentifier: appId] - storeProductViewController.loadProduct(withParameters: parameters) { status, error in - if status { - self.present(storeProductViewController, animated: true, completion: nil) - } else { - if let error { - print("Error: \(error.localizedDescription)") - } + let parameters = [SKStoreProductParameterITunesItemIdentifier: appId] + storeProductViewController.loadProduct(withParameters: parameters) { status, error in + if status { + self.present(storeProductViewController, animated: true, completion: nil) + } else { + if let error { + print("Error: \(error.localizedDescription)") } } + } - DispatchQueue.main.async { - self.isPresentStoreProduct.wrappedValue = false - } + DispatchQueue.main.async { + self.isPresentStoreProduct.wrappedValue = false } } +} - extension AppStoreProductViewController: @preconcurrency SKStoreProductViewControllerDelegate { - public func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) { - viewController.dismiss(animated: true) - } +extension AppStoreProductViewController: @preconcurrency SKStoreProductViewControllerDelegate { + public func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) { + viewController.dismiss(animated: true) } +} #endif diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift index b579acd..3a86e4e 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift @@ -26,49 +26,49 @@ public struct StoreInstuctinsView: View { public var body: some View { ScrollViewReader { value in #if os(iOS) - PageView { offset = $0 } content: { - Group { - switch viewModel.state { - case .initial, .loading: - contentPlaceholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) - } + PageView { offset = $0 } content: { + Group { + switch viewModel.state { + case .initial, .loading: + contentPlaceholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) } - .paddingContent(.horizontal) - } - .backgroundLinerGradient(LinearGradient(colors: [.backgroundPrimary, .backgroundSecondary], startPoint: .top, endPoint: .center)) - .titleLabel { - PremiumLabel(image: Resource.Store.zap, text: Info.store.subscriptionsName, size: .medium) - } - .trailingBar { - BarButton(.close) } - .bottomToolbar(style: .none) { - VStack(spacing: .zero) { - StorePaymentButtonBar(trialNotification: true) { - isShowAllPlans = true - DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { - withAnimation { - value.scrollTo(10, anchor: .top) - } + .paddingContent(.horizontal) + } + .backgroundLinerGradient(LinearGradient(colors: [.backgroundPrimary, .backgroundSecondary], startPoint: .top, endPoint: .center)) + .titleLabel { + PremiumLabel(image: Resource.Store.zap, text: Info.store.subscriptionsName, size: .medium) + } + .trailingBar { + BarButton(.close) + } + .bottomToolbar(style: .none) { + VStack(spacing: .zero) { + StorePaymentButtonBar(trialNotification: true) { + isShowAllPlans = true + DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { + withAnimation { + value.scrollTo(10, anchor: .top) } } - .environmentObject(viewModel) - } - } - .onChange(of: isPremium) { _, status in - if status { - dismiss() } + .environmentObject(viewModel) } - .task { - await viewModel.fetchData() + } + .onChange(of: isPremium) { _, status in + if status { + dismiss() } + } + .task { + await viewModel.fetchData() + } #else - EmptyView() + EmptyView() #endif } } @@ -196,28 +196,36 @@ public struct StoreInstuctinsView: View { .padding(.small) .background { Circle() - .fill(LinearGradient(gradient: Gradient( + .fill(LinearGradient( + gradient: Gradient( colors: [Color(hex: "EAAB44"), Color(hex: "D24A44"), Color(hex: "9C5BA2"), Color(hex: "4B5B94")]), - startPoint: .topLeading, endPoint: .bottomTrailing)) + startPoint: .topLeading, + endPoint: .bottomTrailing + )) } - TextBox(title: "Today: Get welcome offer", - subtitle: "Unlock all access to functions", - spacing: .xxxSmall) - .textBoxSize(.small) - .padding(.top, 6) + TextBox( + title: "Today: Get welcome offer", + subtitle: "Unlock all access to functions", + spacing: .xxxSmall + ) + .textBoxSize(.small) + .padding(.top, 6) } HStack { Capsule() - .fill(LinearGradient(gradient: Gradient( + .fill(LinearGradient( + gradient: Gradient( colors: [Color(hex: "EAAB44"), Color(hex: "D24A44"), Color(hex: "9C5BA2")]), - startPoint: .topLeading, endPoint: .trailing)) + startPoint: .topLeading, + endPoint: .trailing + )) .frame(width: 4, height: 15) .padding(.vertical, .xxxSmall) .padding(.leading, .medium) @@ -234,11 +242,13 @@ public struct StoreInstuctinsView: View { .shadowElevaton(.z2) } - TextBox(title: "Day 5", - subtitle: "Get a reminder about when your trial", - spacing: .xxxSmall) - .textBoxSize(.small) - .padding(.top, 6) + TextBox( + title: "Day 5", + subtitle: "Get a reminder about when your trial", + spacing: .xxxSmall + ) + .textBoxSize(.small) + .padding(.top, 6) } HStack { @@ -260,11 +270,13 @@ public struct StoreInstuctinsView: View { .shadowElevaton(.z2) } - TextBox(title: "Day 7", - subtitle: "Tou will be charged on this day, cancel anytime beforel", - spacing: .xxxSmall) - .textBoxSize(.small) - .padding(.top, 6) + TextBox( + title: "Day 7", + subtitle: "Tou will be charged on this day, cancel anytime beforel", + spacing: .xxxSmall + ) + .textBoxSize(.small) + .padding(.top, 6) } } .frame(maxWidth: .infinity) diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift index e2c0f39..57107e3 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift @@ -35,24 +35,24 @@ public struct StoreSpecialOfferView: View { public var body: some View { #if os(iOS) - Group { - if #available(iOS 16.0, *) { - newPage - } else { - oldPage - } + Group { + if #available(iOS 16.0, *) { + newPage + } else { + oldPage } + } - .onChange(of: isPremium) { _, status in - if status { - dismiss() - } - } - .task { - await viewModel.fetchData() + .onChange(of: isPremium) { _, status in + if status { + dismiss() } + } + .task { + await viewModel.fetchData() + } #else - EmptyView() + EmptyView() #endif } @@ -169,11 +169,11 @@ public struct StoreSpecialOfferView: View { var imageSize: CGFloat { if screenSize.height > 830 { - return 200 + 200 } else if screenSize.height > 700 { - return 160 + 160 } else { - return 64 + 64 } } @@ -314,33 +314,33 @@ public struct StoreSpecialOfferView: View { var badgeText: String { if let badge = event.badge { - return textPrepere(badge) + textPrepere(badge) } else { - return "" + "" } } var headline: String { if let headline = event.headline { - return textPrepere(headline) + textPrepere(headline) } else { - return "" + "" } } var titleColor: Color { if let accentColor = event.accentColor { - return Color(hex: accentColor) + Color(hex: accentColor) } else { - return Color.onBackgroundPrimary + Color.onBackgroundPrimary } } var description: String { if let description = event.description { - return textPrepere(description) + textPrepere(description) } else { - return "" + "" } } diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift index 861a886..03faf0e 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift @@ -13,32 +13,32 @@ import OversizeUI import SwiftUI #if os(iOS) - public struct StoreView: View { - @StateObject private var viewModel: StoreViewModel - @Environment(\.presentationMode) private var presentationMode - @Environment(\.verticalSizeClass) private var verticalSizeClass - @Environment(\.isPortrait) private var isPortrait - private var isClosable = true - @State var isShowFireworks = false - - public init() { - _viewModel = StateObject(wrappedValue: StoreViewModel()) - } +public struct StoreView: View { + @StateObject private var viewModel: StoreViewModel + @Environment(\.presentationMode) private var presentationMode + @Environment(\.verticalSizeClass) private var verticalSizeClass + @Environment(\.isPortrait) private var isPortrait + private var isClosable = true + @State var isShowFireworks = false + + public init() { + _viewModel = StateObject(wrappedValue: StoreViewModel()) + } - public var body: some View { - Page { - Group { - switch viewModel.state { - case .initial, .loading: - contentPlaceholder() - case let .result(data): - content(data: data) - case let .error(error): - ErrorView(error) - } + public var body: some View { + Page { + Group { + switch viewModel.state { + case .initial, .loading: + contentPlaceholder() + case let .result(data): + content(data: data) + case let .error(error): + ErrorView(error) } - .paddingContent(.horizontal) } + .paddingContent(.horizontal) + } // .backgroundLinerGradient(LinearGradient(colors: [.backgroundPrimary, .backgroundSecondary], startPoint: .top, endPoint: .center)) // .titleLabel { // PremiumLabel(image: Resource.Store.zap, text: Info.store.subscriptionsName, size: .medium) @@ -55,131 +55,131 @@ import SwiftUI // BarButton(.close) // } // } - .bottomToolbar(style: .none) { - if !viewModel.isPremium { - StorePaymentButtonBar() - .environmentObject(viewModel) - } - } - .overlay { - if isShowFireworks { - Fireworks() - } + .bottomToolbar(style: .none) { + if !viewModel.isPremium { + StorePaymentButtonBar() + .environmentObject(viewModel) } - .task { - await viewModel.fetchData() + } + .overlay { + if isShowFireworks { + Fireworks() } } + .task { + await viewModel.fetchData() + } + } - var titleText: String { - if viewModel.isPremium { - return "You are all set!" - } else { - return "Upgrade to \(Info.store.subscriptionsName)" - } + var titleText: String { + if viewModel.isPremium { + "You are all set!" + } else { + "Upgrade to \(Info.store.subscriptionsName)" } + } - var subtitleText: String { - if viewModel.isPremium { - return "Thank you for use to \(Info.store.subscriptionsName).\nHere's what is now unlocked." - } else { - return "Remove ads and unlock all features" - } + var subtitleText: String { + if viewModel.isPremium { + "Thank you for use to \(Info.store.subscriptionsName).\nHere's what is now unlocked." + } else { + "Remove ads and unlock all features" } + } - @ViewBuilder - private func contentPlaceholder() -> some View { - VStack(spacing: .medium) { - VStack(spacing: .xxSmall) { - Text(titleText) - .title() - .foregroundColor(.onSurfacePrimary) - - Text(subtitleText) - .headline() - .foregroundColor(.onSurfaceSecondary) - } - .multilineTextAlignment(.center) + @ViewBuilder + private func contentPlaceholder() -> some View { + VStack(spacing: .medium) { + VStack(spacing: .xxSmall) { + Text(titleText) + .title() + .foregroundColor(.onSurfacePrimary) + + Text(subtitleText) + .headline() + .foregroundColor(.onSurfaceSecondary) + } + .multilineTextAlignment(.center) - HStack(spacing: .xSmall) { - ForEach(0 ..< 3, id: \.self) { _ in - RoundedRectangle(cornerRadius: .small) - .fillSurfaceSecondary() - .frame(height: 180) - } + HStack(spacing: .xSmall) { + ForEach(0 ..< 3, id: \.self) { _ in + RoundedRectangle(cornerRadius: .small) + .fillSurfaceSecondary() + .frame(height: 180) } - - StoreFeaturesView() - .environmentObject(viewModel) } + + StoreFeaturesView() + .environmentObject(viewModel) } + } - @ViewBuilder - private func content(data: StoreKitProducts) -> some View { - VStack(spacing: .medium) { - VStack(spacing: .xxSmall) { - Text(titleText) - .title() - .foregroundColor(.onSurfacePrimary) - - Text(subtitleText) - .headline() - .foregroundColor(.onSurfaceSecondary) - } - .multilineTextAlignment(.center) - - if !viewModel.isPremium { - HStack(spacing: .xSmall) { - ForEach(viewModel.availableSubscriptions /* data.autoRenewable */ ) { product in - if !product.isOffer { - StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { - viewModel.selectedProduct = product - } - .storeProductStyle(.collumn) - } - } - ForEach(data.nonConsumable) { product in + @ViewBuilder + private func content(data: StoreKitProducts) -> some View { + VStack(spacing: .medium) { + VStack(spacing: .xxSmall) { + Text(titleText) + .title() + .foregroundColor(.onSurfacePrimary) + + Text(subtitleText) + .headline() + .foregroundColor(.onSurfaceSecondary) + } + .multilineTextAlignment(.center) + + if !viewModel.isPremium { + HStack(spacing: .xSmall) { + ForEach(viewModel.availableSubscriptions /* data.autoRenewable */ ) { product in + if !product.isOffer { StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { viewModel.selectedProduct = product } .storeProductStyle(.collumn) } } + ForEach(data.nonConsumable) { product in + StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { + viewModel.selectedProduct = product + } + .storeProductStyle(.collumn) + } } + } - StoreFeaturesView() - .environmentObject(viewModel) + StoreFeaturesView() + .environmentObject(viewModel) - SubscriptionPrivacyView(products: data) + SubscriptionPrivacyView(products: data) - if !viewModel.isPremium { - productsLust(data: data) - .padding(.bottom, 170) - } + if !viewModel.isPremium { + productsLust(data: data) + .padding(.bottom, 170) } - .onAppear { - Task { - // When this view appears, get the latest subscription status. - await viewModel.updateSubscriptionStatus(products: data) - } + } + .onAppear { + Task { + // When this view appears, get the latest subscription status. + await viewModel.updateSubscriptionStatus(products: data) } - .onChange(of: data.purchasedAutoRenewable) { _, _ in - Task { - // When `purchasedSubscriptions` changes, get the latest subscription status. - await viewModel.updateSubscriptionStatus(products: data) - } + } + .onChange(of: data.purchasedAutoRenewable) { _, _ in + Task { + // When `purchasedSubscriptions` changes, get the latest subscription status. + await viewModel.updateSubscriptionStatus(products: data) } - .onChange(of: viewModel.isPremium) { _, status in - isShowFireworks = status - DispatchQueue.main.asyncAfter(deadline: .now() + 30) { - isShowFireworks = false - } + } + .onChange(of: viewModel.isPremium) { _, status in + isShowFireworks = status + DispatchQueue.main.asyncAfter(deadline: .now() + 30) { + isShowFireworks = false } } + } - @ViewBuilder - private func productsLust(data: StoreKitProducts) -> some View { - VStack(spacing: .small) { + @ViewBuilder + private func productsLust(data: StoreKitProducts) -> some View { + VStack(spacing: .small) { // VStack { // if let currentSubscription = viewModel.currentSubscription { // VStack { @@ -195,47 +195,47 @@ import SwiftUI // } // } - ForEach(viewModel.availableSubscriptions /* data.autoRenewable */ ) { product in - if !product.isOffer { - StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { - viewModel.selectedProduct = product - } - } - } - ForEach(data.nonConsumable) { product in + ForEach(viewModel.availableSubscriptions /* data.autoRenewable */ ) { product in + if !product.isOffer { StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { viewModel.selectedProduct = product + } + } + } + ForEach(data.nonConsumable) { product in + StoreProductView(product: product, products: data, isSelected: .constant(viewModel.selectedProduct == product)) { + viewModel.selectedProduct = product // Task { // await viewModel.buy(product: product) // } - } } } } + } - public func closable(_ isClosable: Bool = true) -> StoreView { - var control = self - control.isClosable = isClosable - return control - } + public func closable(_ isClosable: Bool = true) -> StoreView { + var control = self + control.isClosable = isClosable + return control } +} - struct StoreView_Previews: PreviewProvider { - static var previews: some View { - StoreView() - } +struct StoreView_Previews: PreviewProvider { + static var previews: some View { + StoreView() } +} #else - public struct StoreView: View { - public init() {} +public struct StoreView: View { + public init() {} - public var body: some View { - Text("Store") - } + public var body: some View { + Text("Store") + } - public func closable(_: Bool = true) -> StoreView { - let control = self - return control - } + public func closable(_: Bool = true) -> StoreView { + let control = self + return control } +} #endif diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift index 346fe95..d5c7758 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift @@ -24,7 +24,7 @@ public class StoreViewModel: ObservableObject { @Injected(\.storeKitService) var storeKitService: StoreKitService #if !os(tvOS) - @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol + @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol #endif @Published var state = State.initial @@ -44,9 +44,9 @@ public class StoreViewModel: ObservableObject { var availableSubscriptions: [Product] { if case let .result(products) = state { - return products.autoRenewable.filter { $0.id != currentSubscription?.id } + products.autoRenewable.filter { $0.id != currentSubscription?.id } } else { - return [] + [] } } @@ -132,9 +132,9 @@ extension StoreViewModel { var isHaveSale: Bool { if monthSubscriptionProduct != nil, yearSubscriptionProduct != nil { - return true + true } else { - return false + false } } @@ -305,23 +305,23 @@ extension StoreViewModel { func addTrialNotification(product: Product) async { #if !os(tvOS) - if product.type == .autoRenewable, product.subscription?.introductoryOffer != nil { - do { - try await localNotificationService.requestAuthorization() - if let trialDaysCount = product.trialDaysCount { - let timeInterval = TimeInterval((trialDaysCount - 2) * 24 * 60 * 60) - let notificationTime = Date().addingTimeInterval(timeInterval) - let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) - await localNotificationService.schedule(localNotification: .init( - id: UUID(), - title: "Trial ends soon", - body: "Subscription ends in 2 days", - dateComponents: dateComponents, - repeats: false - )) - } - } catch {} - } + if product.type == .autoRenewable, product.subscription?.introductoryOffer != nil { + do { + try await localNotificationService.requestAuthorization() + if let trialDaysCount = product.trialDaysCount { + let timeInterval = TimeInterval((trialDaysCount - 2) * 24 * 60 * 60) + let notificationTime = Date().addingTimeInterval(timeInterval) + let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) + await localNotificationService.schedule(localNotification: .init( + id: UUID(), + title: "Trial ends soon", + body: "Subscription ends in 2 days", + dateComponents: dateComponents, + repeats: false + )) + } + } catch {} + } #endif } } diff --git a/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift b/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift index 7fa7602..798332b 100644 --- a/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift +++ b/Sources/OversizeKit/StoreKit/ViewModifier/PremiumBlockOverlay.swift @@ -30,10 +30,12 @@ public struct PremiumBlockOverlay: ViewModifier { ZStack { content - LinearGradient(colors: [.surfacePrimary.opacity(0), .surfacePrimary, .surfacePrimary], - startPoint: .top, - endPoint: .bottom) - .ignoresSafeArea() + LinearGradient( + colors: [.surfacePrimary.opacity(0), .surfacePrimary, .surfacePrimary], + startPoint: .top, + endPoint: .bottom + ) + .ignoresSafeArea() VStack(spacing: .xxSmall) { VStack(spacing: .xxSmall) { diff --git a/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift b/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift index 9e71cad..1ca74d8 100644 --- a/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift +++ b/Sources/OversizeKit/StoreKit/Views/BuyButtonStyle.swift @@ -36,7 +36,7 @@ public struct PaymentButtonStyle: ButtonStyle { @Environment(\.controlBorderShape) var controlBorderShape: ControlBorderShape @Environment(\.isBordered) var isBordered: Bool #if !os(tvOS) - @Environment(\.controlSize) var controlSize: ControlSize + @Environment(\.controlSize) var controlSize: ControlSize #endif private let isInfinityWidth: Bool? @@ -84,39 +84,39 @@ public struct PaymentButtonStyle: ButtonStyle { private var horizontalPadding: Space { #if os(tvOS) - return .medium + return .medium #else - switch controlSize { - case .mini: - return .xxSmall - case .small: - return .small - case .regular: - return .small - case .large, .extraLarge: - return .medium - @unknown default: - return .zero - } + switch controlSize { + case .mini: + return .xxSmall + case .small: + return .small + case .regular: + return .small + case .large, .extraLarge: + return .medium + @unknown default: + return .zero + } #endif } private var verticalPadding: Space { #if os(tvOS) - return .medium + return .medium #else - switch controlSize { - case .mini: - return .xxSmall - case .small: - return .xxSmall - case .regular: - return .small - case .large, .extraLarge: - return .medium - @unknown default: - return .zero - } + switch controlSize { + case .mini: + return .xxSmall + case .small: + return .xxSmall + case .regular: + return .small + case .large, .extraLarge: + return .medium + @unknown default: + return .zero + } #endif } @@ -130,15 +130,15 @@ public struct PaymentButtonStyle: ButtonStyle { private var maxWidth: CGFloat? { #if os(tvOS) - return nil + return nil #else - if isInfinityWidth == nil, controlSize == .regular { - return .infinity - } else if let infinity = isInfinityWidth, infinity == true { - return .infinity - } else { - return nil - } + if isInfinityWidth == nil, controlSize == .regular { + return .infinity + } else if let infinity = isInfinityWidth, infinity == true { + return .infinity + } else { + return nil + } #endif } } diff --git a/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift b/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift index 7818f76..126a327 100644 --- a/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift +++ b/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift @@ -44,25 +44,28 @@ public struct PrmiumBannerRow: View { HStack(spacing: Space.small) { HStack { #if os(iOS) - Resource.Store.zap - .padding(.horizontal, Space.xxSmall) - .padding(.vertical, Space.xxSmall) + Resource.Store.zap + .padding(.horizontal, Space.xxSmall) + .padding(.vertical, Space.xxSmall) #endif #if os(macOS) - Resource.Store.zap - .padding(.horizontal, Space.xxSmall) - .padding(.vertical, Space.xxSmall) + Resource.Store.zap + .padding(.horizontal, Space.xxSmall) + .padding(.vertical, Space.xxSmall) #endif } .background( RoundedRectangle(cornerRadius: Radius.medium.rawValue, style: .continuous) - .fill(LinearGradient(gradient: Gradient( + .fill(LinearGradient( + gradient: Gradient( colors: [Color(hex: "EAAB44"), Color(hex: "D24A44"), Color(hex: "9C5BA2"), Color(hex: "4B5B94")]), - startPoint: .topLeading, endPoint: .bottomTrailing)) + startPoint: .topLeading, + endPoint: .bottomTrailing + )) ) Text(Info.store.subscriptionsName) @@ -99,12 +102,12 @@ public extension PrmiumBannerRow { HStack { HStack(alignment: .center, spacing: Space.xxSmall) { #if os(iOS) - Resource.Store.zap - .colorMultiply(Color(hex: "B75375")) + Resource.Store.zap + .colorMultiply(Color(hex: "B75375")) #endif #if os(macOS) - Resource.Store.zap + Resource.Store.zap #endif Text(Info.store.subscriptionsName) @@ -136,12 +139,15 @@ public extension PrmiumBannerRow { .padding(.vertical, Space.large) .background( RoundedRectangle(cornerRadius: Radius.medium.rawValue, style: .continuous) - .fill(LinearGradient(gradient: Gradient( + .fill(LinearGradient( + gradient: Gradient( colors: [Color(hex: "EAAB44"), Color(hex: "D24A44"), Color(hex: "9C5BA2"), Color(hex: "4B5B94")]), - startPoint: .topLeading, endPoint: .bottomTrailing))) + startPoint: .topLeading, + endPoint: .bottomTrailing + ))) } } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift index d192629..7cab4b5 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeatureDetailView.swift @@ -25,38 +25,38 @@ public struct StoreFeatureDetailView: View { public var body: some View { GeometryReader { geometry in #if os(iOS) - VStack(spacing: .zero) { - TabView(selection: $selection) { - ForEach(Info.store.features) { feature in - fetureItem(feature, geometry: geometry) - .padding(.bottom, isPremium ? .large : .zero) - .tag(feature) - } + VStack(spacing: .zero) { + TabView(selection: $selection) { + ForEach(Info.store.features) { feature in + fetureItem(feature, geometry: geometry) + .padding(.bottom, isPremium ? .large : .zero) + .tag(feature) } - .tabViewStyle(.page(indexDisplayMode: isPremium ? .always : .never)) - .indexViewStyle(.page(backgroundDisplayMode: isPremium ? .always : .never)) + } + .tabViewStyle(.page(indexDisplayMode: isPremium ? .always : .never)) + .indexViewStyle(.page(backgroundDisplayMode: isPremium ? .always : .never)) - if !isPremium { - StorePaymentButtonBar() - .environmentObject(viewModel) - } + if !isPremium { + StorePaymentButtonBar() + .environmentObject(viewModel) } - .overlay(alignment: .topTrailing) { - Button { - dismiss() - } label: { - IconDeprecated( - .xMini, - color: selection.screenURL != nil ? .onPrimary : .onSurfaceTertiary - ) - .padding(.xxSmall) - .background { - Circle() - .fill(.ultraThinMaterial) - } - .padding(.small) + } + .overlay(alignment: .topTrailing) { + Button { + dismiss() + } label: { + IconDeprecated( + .xMini, + color: selection.screenURL != nil ? .onPrimary : .onSurfaceTertiary + ) + .padding(.xxSmall) + .background { + Circle() + .fill(.ultraThinMaterial) } + .padding(.small) } + } #endif } } @@ -85,10 +85,12 @@ public struct StoreFeatureDetailView: View { if let urlString = feature.screenURL, let url = URL(string: urlString) { ScreenMockup(url: url) .frame(maxWidth: 60 + (geometry.size.height * 0.2)) - .padding(feature.topScreenAlignment ?? true ? .top : .bottom, - feature.topScreenAlignment ?? true - ? (geometry.size.height * 0.1) - 24 - : (geometry.size.height * 0.1) + 12) + .padding( + feature.topScreenAlignment ?? true ? .top : .bottom, + feature.topScreenAlignment ?? true + ? (geometry.size.height * 0.1) - 24 + : (geometry.size.height * 0.1) + 12 + ) } } } @@ -159,9 +161,9 @@ public struct StoreFeatureDetailView: View { func backgroundColor(feature: PlistConfiguration.Store.StoreFeature) -> Color { if let color = feature.backgroundColor { - return Color(hex: color) + Color(hex: color) } else { - return Color.accent + Color.accent } } } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift index 3b20f80..6096fa1 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesLargeView.swift @@ -31,10 +31,12 @@ struct StoreFeaturesLargeView: View { VStack(spacing: .zero) { RoundedRectangle(cornerRadius: .medium, style: .continuous) .fill( - LinearGradient(gradient: Gradient(colors: [Color(hex: feature.backgroundColor != nil ? feature.backgroundColor : "637DFA"), - Color(hex: feature.backgroundColor != nil ? feature.backgroundColor : "872BFF")]), - startPoint: .topLeading, - endPoint: .bottomTrailing) + LinearGradient( + gradient: Gradient(colors: [Color(hex: feature.backgroundColor != nil ? feature.backgroundColor : "637DFA"), + Color(hex: feature.backgroundColor != nil ? feature.backgroundColor : "872BFF")]), + startPoint: .topLeading, + endPoint: .bottomTrailing + ) ) .frame(height: 310) .overlay(alignment: feature.topScreenAlignment ?? true ? .top : .bottom) { @@ -44,8 +46,10 @@ struct StoreFeaturesLargeView: View { if let urlString = feature.screenURL, let url = URL(string: urlString) { ScreenMockup(url: url) .frame(maxWidth: 204) - .padding(feature.topScreenAlignment ?? true ? .top : .bottom, - feature.topScreenAlignment ?? true ? 40 : 70) + .padding( + feature.topScreenAlignment ?? true ? .top : .bottom, + feature.topScreenAlignment ?? true ? 40 : 70 + ) } } } @@ -131,9 +135,9 @@ struct StoreFeaturesLargeView: View { func backgroundColor(feature: PlistConfiguration.Store.StoreFeature) -> Color { if let color = feature.backgroundColor { - return Color(hex: color) + Color(hex: color) } else { - return Color.accent + Color.accent } } } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift index c20fc1a..a9bffd3 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreFeaturesView.swift @@ -54,9 +54,9 @@ struct StoreFeaturesView: View { func backgroundColor(feature: PlistConfiguration.Store.StoreFeature) -> Color { if let color = feature.backgroundColor { - return Color(hex: color) + Color(hex: color) } else { - return Color.accent + Color.accent } } } diff --git a/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift b/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift index 42ad0df..b8619cf 100644 --- a/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift +++ b/Sources/OversizeKit/StoreKit/Views/StorePaymentButtonBar.swift @@ -65,14 +65,14 @@ struct StorePaymentButtonBar: View { var backgroundView: some View { Group { #if os(iOS) - RoundedRectangle(cornerRadius: 16, style: .continuous) - .fill(.ultraThinMaterial) - .overlay { - RoundedRectangle(cornerRadius: 16, style: .continuous) - .strokeBorder(Color.black.opacity(0.05), lineWidth: 0.5) - } + RoundedRectangle(cornerRadius: 16, style: .continuous) + .fill(.ultraThinMaterial) + .overlay { + RoundedRectangle(cornerRadius: 16, style: .continuous) + .strokeBorder(Color.black.opacity(0.05), lineWidth: 0.5) + } #else - EmptyView() + EmptyView() #endif } } diff --git a/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift b/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift index a10a81c..580f472 100644 --- a/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift +++ b/Sources/OversizeKit/StoreKit/Views/StoreProductView.swift @@ -29,9 +29,9 @@ public struct StoreProductView: View { var isHaveIntroductoryOffer: Bool { if product.type == .autoRenewable, product.subscription?.introductoryOffer != nil { - return true + true } else { - return false + false } } @@ -41,9 +41,9 @@ public struct StoreProductView: View { var isHaveSale: Bool { if monthSubscriptionProduct != nil, product.subscription?.subscriptionPeriod.unit == .year { - return true + true } else { - return false + false } } @@ -271,22 +271,22 @@ public struct StoreProductView: View { .padding(.vertical, .xxSmall) #if os(iOS) - if isHaveSale, !isPurchased { - Text("Save " + saleProcent + "%") - .caption2(.bold) - .foregroundColor(.onPrimary) - .padding(.vertical, .xxxSmall) - .frame(maxWidth: .infinity) - .background { - RoundedRectangle(cornerRadius: 2, style: .continuous) - .fill(Color.success) - .cornerRadius(8, corners: [.bottomLeft, .bottomRight]) - } - .padding(.horizontal, 2) - .padding(.bottom, 2) - } + if isHaveSale, !isPurchased { + Text("Save " + saleProcent + "%") + .caption2(.bold) + .foregroundColor(.onPrimary) + .padding(.vertical, .xxxSmall) + .frame(maxWidth: .infinity) + .background { + RoundedRectangle(cornerRadius: 2, style: .continuous) + .fill(Color.success) + .cornerRadius(8, corners: [.bottomLeft, .bottomRight]) + } + .padding(.horizontal, 2) + .padding(.bottom, 2) + } #else - EmptyView() + EmptyView() #endif } .frame(maxHeight: .infinity) @@ -322,23 +322,23 @@ public struct StoreProductView: View { var labelBackground: some View { Group { #if os(iOS) - if isHaveIntroductoryOffer, type == .row { - RoundedRectangle(cornerRadius: 4, style: .continuous) - .fill(Color.surfacePrimary) - .cornerRadius(10, corners: [.bottomLeft, .bottomRight]) - } else { - RoundedRectangle(cornerRadius: 10, style: .continuous) - .fill(Color.surfacePrimary) - .overlay { - if type == .collumn, !isSelected { - RoundedRectangle(cornerRadius: 12, style: .continuous) - .strokeBorder(Color.backgroundTertiary, lineWidth: 2) - .padding(-2) - } + if isHaveIntroductoryOffer, type == .row { + RoundedRectangle(cornerRadius: 4, style: .continuous) + .fill(Color.surfacePrimary) + .cornerRadius(10, corners: [.bottomLeft, .bottomRight]) + } else { + RoundedRectangle(cornerRadius: 10, style: .continuous) + .fill(Color.surfacePrimary) + .overlay { + if type == .collumn, !isSelected { + RoundedRectangle(cornerRadius: 12, style: .continuous) + .strokeBorder(Color.backgroundTertiary, lineWidth: 2) + .padding(-2) } - } + } + } #else - EmptyView() + EmptyView() #endif } } @@ -354,50 +354,50 @@ public struct StoreProductView: View { var backgroundStrokeBorderColor: Color { if isPurchased { - return .success + .success } else if isSelected { - return Palette.blue.color + Palette.blue.color } else { switch type { case .row: - return .backgroundTertiary + .backgroundTertiary case .collumn: - return .surfaceSecondary + .surfaceSecondary } } } var topLabelbackgroundColor: Color { if isPurchased { - return .success + .success } else if isSelected { - return Palette.blue.color + Palette.blue.color } else { - return .surfaceSecondary + .surfaceSecondary } } var topLabelForegroundColor: Color { if isPurchased || isSelected { - return .onPrimary + .onPrimary } else { - return Palette.violet.color + Palette.violet.color } } var descriptionForegroundColor: Color { if isPurchased || product.type != .autoRenewable { - return .onSurfaceSecondary + .onSurfaceSecondary } else { - return .warning + .warning } } var descriptionFontWeight: Font.Weight { if isPurchased || product.type != .autoRenewable { - return .regular + .regular } else { - return .semibold + .semibold } } diff --git a/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift b/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift index 6b8ec96..7a16f08 100644 --- a/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift +++ b/Sources/OversizeKit/StoreKit/Views/SubscriptionPrivacyView.swift @@ -28,42 +28,42 @@ struct SubscriptionPrivacyView: View { .foregroundColor(Color.onSurfaceSecondary) #if os(iOS) - HStack(spacing: .xxSmall) { - Button("Restore") { - Task { - try? await AppStore.sync() - } + HStack(spacing: .xxSmall) { + Button("Restore") { + Task { + try? await AppStore.sync() } + } - Text("•") + Text("•") - if let privacyUrl = Info.url.appPrivacyPolicyUrl { - Button { - isShowPrivacy.toggle() - } label: { - Text("Privacy") - } - .sheet(isPresented: $isShowPrivacy) { - WebView(url: privacyUrl) - } + if let privacyUrl = Info.url.appPrivacyPolicyUrl { + Button { + isShowPrivacy.toggle() + } label: { + Text("Privacy") + } + .sheet(isPresented: $isShowPrivacy) { + WebView(url: privacyUrl) } + } - Text("•") + Text("•") - if let termsOfUde = Info.url.appTermsOfUseUrl { - Button { - isShowTerms.toggle() - } label: { - Text("Terms") - } - .sheet(isPresented: $isShowTerms) { - WebView(url: termsOfUde) - } + if let termsOfUde = Info.url.appTermsOfUseUrl { + Button { + isShowTerms.toggle() + } label: { + Text("Terms") + } + .sheet(isPresented: $isShowTerms) { + WebView(url: termsOfUde) } } - .subheadline(.bold) - .foregroundColor(Color.onSurfaceTertiary) - .padding(.top, .xxxSmall) + } + .subheadline(.bold) + .foregroundColor(Color.onSurfaceTertiary) + .padding(.top, .xxxSmall) #endif } .multilineTextAlignment(.center) diff --git a/Sources/OversizeKit/SystemKit/ErrorView/ErrorView.swift b/Sources/OversizeKit/SystemKit/ErrorView/ErrorView.swift index fa471dc..5724e6c 100644 --- a/Sources/OversizeKit/SystemKit/ErrorView/ErrorView.swift +++ b/Sources/OversizeKit/SystemKit/ErrorView/ErrorView.swift @@ -26,11 +26,13 @@ public struct ErrorView: View { public var body: some View { VStack { Spacer() - ContentView(image: error.image, - title: error.title, - subtitle: error.subtitle, - primaryButton: contenButtonType) - .multilineTextAlignment(.center) + ContentView( + image: error.image, + title: error.title, + subtitle: error.subtitle, + primaryButton: contenButtonType + ) + .multilineTextAlignment(.center) Spacer() } .paddingContent() @@ -42,7 +44,7 @@ public struct ErrorView: View { case .appSettings: return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) case let .tryAgain(action: action): @@ -58,7 +60,7 @@ public struct ErrorView: View { if type == .notAccess || type == .noAccount { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -68,7 +70,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -82,7 +84,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -92,7 +94,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -102,7 +104,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -112,7 +114,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -122,7 +124,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { @@ -132,7 +134,7 @@ public struct ErrorView: View { if type == .notAccess { return .accent(L10n.Button.goToSettings, action: { #if os(iOS) - UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) + UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!) #endif }) } else { diff --git a/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift b/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift new file mode 100644 index 0000000..286f2a3 --- /dev/null +++ b/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift @@ -0,0 +1,117 @@ +// +// Copyright © 2024 Alexander Romanov +// ErrorButtnType.swift, created on 15.11.2024 +// + +import OversizeLocalizable +import OversizeModels +import OversizeResources +import OversizeUI +import SwiftUI + +public struct SuccessView: View where C: View, A: View { + private let image: Image? + private let title: String + private let subtitle: String? + private let closeAction: (() -> Void)? + private let actions: Group? + private let content: C? + + public init( + image: Image? = nil, + title: String, + subtitle: String? = nil, + closeAction: (() -> Void)? = nil, + @ViewBuilder actions: @escaping () -> A, + @ViewBuilder content: () -> C + ) { + self.image = image + self.title = title + self.subtitle = subtitle + self.closeAction = closeAction + self.actions = Group { actions() } + self.content = content() + } + + public var body: some View { + #if os(macOS) + HStack(spacing: .medium) { + VStack(alignment: .center, spacing: .large) { + Spacer() + if let image { + image + .resizable() + .frame(width: 64, height: 64, alignment: .bottom) + } else { + Image.Illustration.Status.success + .resizable() + .frame(width: 64, height: 64, alignment: .bottom) + } + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + + if actions != nil { + VStack(spacing: .small) { + actions + .controlSize(.large) + } + .frame(width: 200) + } + + Spacer() + } + .frame(maxWidth: .infinity, alignment: .center) + + if let content { + Surface { + content + } + .surfaceClip(true) + .surfaceStyle(.secondary) + .surfaceContentMargins(.zero) + } + } + .paddingContent() + #else + VStack(alignment: .center, spacing: .large) { + Spacer() + if let image { + image + .frame(width: 218, height: 218, alignment: .bottom) + } else { + Illustration.Objects.Check.medium + .frame(width: 218, height: 218, alignment: .bottom) + } + TextBox( + title: title, + subtitle: subtitle, + spacing: .xxSmall + ) + .multilineTextAlignment(.center) + Spacer() + + if let content { + VStack { + content + + Spacer() + } + } + + if actions != nil { + VStack(spacing: .small) { + actions + .controlSize(.large) + } + .padding(.top, .xxSmall) + } + } + .paddingContent() + + #endif + } +} diff --git a/Sources/OversizeLocationKit/AddressField/AddressField.swift b/Sources/OversizeLocationKit/AddressField/AddressField.swift index 2582a24..4ffad85 100644 --- a/Sources/OversizeLocationKit/AddressField/AddressField.swift +++ b/Sources/OversizeLocationKit/AddressField/AddressField.swift @@ -32,26 +32,26 @@ public struct AddressField: View { var isSlectedAddress: Bool { if let seletedAddress, !seletedAddress.isEmpty { - return true + true } else { - return false + false } } var addressText: String { if isSlectedAddress { - return seletedAddress ?? "Address selected" + seletedAddress ?? "Address selected" } else if let seletedLocation { - return "Сoordinates: \(seletedLocation.latitude), \(seletedLocation.longitude)" + "Сoordinates: \(seletedLocation.latitude), \(seletedLocation.longitude)" } else { - return "Address" + "Address" } } public var body: some View { Button { #if !os(watchOS) - isShowPicker.toggle() + isShowPicker.toggle() #endif } label: { VStack(alignment: .leading, spacing: .xSmall) { @@ -98,11 +98,11 @@ public struct AddressField: View { private var fieldOffset: CGFloat { switch fieldPlaceholderPosition { case .default: - return 0 + 0 case .adjacent: - return 0 + 0 case .overInput: - return !isSlectedAddress ? 0 : 10 + !isSlectedAddress ? 0 : 10 } } } diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift index c46b204..6bd633b 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPicker.swift @@ -12,226 +12,225 @@ import OversizeUI import SwiftUI #if !os(watchOS) - public struct AddressPicker: View { - @Environment(\.dismiss) private var dismiss - @StateObject private var viewModel = AddressPickerViewModel() - @FocusState private var isFocusSearth - - @Binding private var seletedAddress: String? - @Binding private var seletedLocation: CLLocationCoordinate2D? - @Binding private var seletedPlace: LocationAddress? - - public init( - address: Binding = .constant(nil), - location: Binding = .constant(nil), - place: Binding = .constant(nil) - ) { - _seletedAddress = address - _seletedLocation = location - _seletedPlace = place - } +public struct AddressPicker: View { + @Environment(\.dismiss) private var dismiss + @StateObject private var viewModel = AddressPickerViewModel() + @FocusState private var isFocusSearth + + @Binding private var seletedAddress: String? + @Binding private var seletedLocation: CLLocationCoordinate2D? + @Binding private var seletedPlace: LocationAddress? + + public init( + address: Binding = .constant(nil), + location: Binding = .constant(nil), + place: Binding = .constant(nil) + ) { + _seletedAddress = address + _seletedLocation = location + _seletedPlace = place + } - public var body: some View { - PageView("Location") { - LazyVStack(spacing: .zero) { - if viewModel.appError != nil { - currentLocation - } + public var body: some View { + PageView("Location") { + LazyVStack(spacing: .zero) { + if viewModel.appError != nil { + currentLocation + } - if viewModel.searchTerm.isEmpty, !viewModel.lastSearchAddresses.isEmpty { - HStack(spacing: .zero) { - Text("Recent") - Spacer() - } - .title3() - .onSurfaceSecondaryForeground() - .padding(.vertical, .xxSmall) - .paddingContent(.horizontal) - - recentResults - } else { - results + if viewModel.searchTerm.isEmpty, !viewModel.lastSearchAddresses.isEmpty { + HStack(spacing: .zero) { + Text("Recent") + Spacer() } + .title3() + .onSurfaceSecondaryForeground() + .padding(.vertical, .xxSmall) + .paddingContent(.horizontal) + + recentResults + } else { + results } } - .leadingBar { - BarButton(.close) - } - .topToolbar { - TextField("Search places or addresses", text: $viewModel.searchTerm) - .submitScope(viewModel.searchTerm.count < 2) - .textFieldStyle(.default) - .focused($isFocusSearth) - .submitLabel(.done) - .onSubmit { - if viewModel.searchTerm.count > 2 { - viewModel.isSaveFromSearth = true - seletedAddress = viewModel.searchTerm - Task { - let coordinate = try? await viewModel.locationService.fetchCoordinateFromAddress(viewModel.searchTerm) - if let coordinate { - let address = try? await viewModel.locationService.fetchAddressFromLocation(coordinate) - seletedLocation = coordinate - seletedPlace = address - } else { - seletedPlace = nil - seletedLocation = nil - } - viewModel.isSaveFromSearth = false - saveToHistory() - dismiss() + } + .leadingBar { + BarButton(.close) + } + .topToolbar { + TextField("Search places or addresses", text: $viewModel.searchTerm) + .submitScope(viewModel.searchTerm.count < 2) + .textFieldStyle(.default) + .focused($isFocusSearth) + .submitLabel(.done) + .onSubmit { + if viewModel.searchTerm.count > 2 { + viewModel.isSaveFromSearth = true + seletedAddress = viewModel.searchTerm + Task { + let coordinate = try? await viewModel.locationService.fetchCoordinateFromAddress(viewModel.searchTerm) + if let coordinate { + let address = try? await viewModel.locationService.fetchAddressFromLocation(coordinate) + seletedLocation = coordinate + seletedPlace = address + } else { + seletedPlace = nil + seletedLocation = nil } + viewModel.isSaveFromSearth = false + saveToHistory() + dismiss() } } - .overlay(alignment: .trailing) { - if viewModel.isSaveFromSearth { - ProgressView() - .padding(.trailing, .xSmall) - } - } - } - // .scrollDismissesKeyboard(.immediately) - .task(priority: .background) { - do { - try await viewModel.updateCurrentPosition() - if viewModel.isSaveCurentPositon { - onSaveCurrntPosition() + } + .overlay(alignment: .trailing) { + if viewModel.isSaveFromSearth { + ProgressView() + .padding(.trailing, .xSmall) } - } catch {} - } - .onAppear { - isFocusSearth = true - } + } } - - private var currentLocation: some View { - Row("Current Location") { - if viewModel.isFetchUpdatePositon { - viewModel.isSaveCurentPositon = true - } else { + // .scrollDismissesKeyboard(.immediately) + .task(priority: .background) { + do { + try await viewModel.updateCurrentPosition() + if viewModel.isSaveCurentPositon { onSaveCurrntPosition() } - } leading: { - IconDeprecated(.navigation) - .iconOnSurface() + } catch {} + } + .onAppear { + isFocusSearth = true + } + } + + private var currentLocation: some View { + Row("Current Location") { + if viewModel.isFetchUpdatePositon { + viewModel.isSaveCurentPositon = true + } else { + onSaveCurrntPosition() } - .padding(.bottom, viewModel.searchTerm.isEmpty ? .small : .zero) - .loading(viewModel.isSaveCurentPositon) + } leading: { + IconDeprecated(.navigation) + .iconOnSurface() } + .padding(.bottom, viewModel.searchTerm.isEmpty ? .small : .zero) + .loading(viewModel.isSaveCurentPositon) + } - private var recentResults: some View { - ForEach(viewModel.lastSearchAddresses.reversed()) { address in + private var recentResults: some View { + ForEach(viewModel.lastSearchAddresses.reversed()) { address in - Row(address.address ?? address.place?.address ?? "Latitude: \(address.location?.latitude ?? 0), longitude:longitude \(address.location?.longitude ?? 0)") { - if let latitude = address.location?.latitude, let longitude = address.location?.longitude { - onCompleteSearth(seletedAddress: address.address, seletedLocation: CLLocationCoordinate2D(latitude: latitude, longitude: longitude), seletedPlace: address.place, saveToHistory: false) - } else { - onCompleteSearth(seletedAddress: address.address, seletedLocation: nil, seletedPlace: address.place, saveToHistory: false) - } - } leading: { - IconDeprecated(.mapPin) - .iconOnSurface() + Row(address.address ?? address.place?.address ?? "Latitude: \(address.location?.latitude ?? 0), longitude:longitude \(address.location?.longitude ?? 0)") { + if let latitude = address.location?.latitude, let longitude = address.location?.longitude { + onCompleteSearth(seletedAddress: address.address, seletedLocation: CLLocationCoordinate2D(latitude: latitude, longitude: longitude), seletedPlace: address.place, saveToHistory: false) + } else { + onCompleteSearth(seletedAddress: address.address, seletedLocation: nil, seletedPlace: address.place, saveToHistory: false) } - .rowClearButton { - if let fooOffset = viewModel.lastSearchAddresses.firstIndex(where: { $0.id == address.id }) { - viewModel.lastSearchAddresses.remove(at: fooOffset) - } + } leading: { + IconDeprecated(.mapPin) + .iconOnSurface() + } + .rowClearButton { + if let fooOffset = viewModel.lastSearchAddresses.firstIndex(where: { $0.id == address.id }) { + viewModel.lastSearchAddresses.remove(at: fooOffset) } } } + } - private var results: some View { - ForEach(viewModel.locationResults, id: \.self) { location in + private var results: some View { + ForEach(viewModel.locationResults, id: \.self) { location in - Row(location.title, subtitle: location.subtitle) { - reverseGeo(location: location) - } leading: { - IconDeprecated(.mapPin) - .iconOnSurface() - } + Row(location.title, subtitle: location.subtitle) { + reverseGeo(location: location) + } leading: { + IconDeprecated(.mapPin) + .iconOnSurface() } } + } - func reverseGeo(location: MKLocalSearchCompletion) { - let searchRequest = MKLocalSearch.Request(completion: location) - let search = MKLocalSearch(request: searchRequest) - var coordinateK: CLLocationCoordinate2D? - search.start { response, error in - if error == nil, let coordinate = response?.mapItems.first?.placemark.coordinate { - coordinateK = coordinate - } + func reverseGeo(location: MKLocalSearchCompletion) { + let searchRequest = MKLocalSearch.Request(completion: location) + let search = MKLocalSearch(request: searchRequest) + var coordinateK: CLLocationCoordinate2D? + search.start { response, error in + if error == nil, let coordinate = response?.mapItems.first?.placemark.coordinate { + coordinateK = coordinate + } - if let c = coordinateK { - let location = CLLocation(latitude: c.latitude, longitude: c.longitude) - CLGeocoder().reverseGeocodeLocation(location) { placemarks, error in + if let c = coordinateK { + let location = CLLocation(latitude: c.latitude, longitude: c.longitude) + CLGeocoder().reverseGeocodeLocation(location) { placemarks, error in - guard let placemark = placemarks?.first else { - let errorString = error?.localizedDescription ?? "Unexpected Error" - print("Unable to reverse geocode, \(errorString)") - return - } + guard let placemark = placemarks?.first else { + let errorString = error?.localizedDescription ?? "Unexpected Error" + print("Unable to reverse geocode, \(errorString)") + return + } - let reversedGeoLocation = LocationAddress(with: placemark) + let reversedGeoLocation = LocationAddress(with: placemark) - let address = "\(reversedGeoLocation.streetName) \(reversedGeoLocation.streetNumber)".capitalizingFirstLetter() - onCompleteSearth(seletedAddress: address, seletedLocation: c, seletedPlace: reversedGeoLocation) - } + let address = "\(reversedGeoLocation.streetName) \(reversedGeoLocation.streetNumber)".capitalizingFirstLetter() + onCompleteSearth(seletedAddress: address, seletedLocation: c, seletedPlace: reversedGeoLocation) } } } + } - func onCompleteSearth(seletedAddress: String?, seletedLocation: CLLocationCoordinate2D?, seletedPlace: LocationAddress?, saveToHistory: Bool = true) { - if let seletedAddress { - self.seletedAddress = seletedAddress - } else { - self.seletedAddress = seletedPlace?.address - } - self.seletedLocation = seletedLocation - self.seletedPlace = seletedPlace - if saveToHistory { - self.saveToHistory() - } - dismiss() + func onCompleteSearth(seletedAddress: String?, seletedLocation: CLLocationCoordinate2D?, seletedPlace: LocationAddress?, saveToHistory: Bool = true) { + if let seletedAddress { + self.seletedAddress = seletedAddress + } else { + self.seletedAddress = seletedPlace?.address } - - private func onSaveCurrntPosition() { - Task { - let address = try? await viewModel.locationService.fetchAddressFromLocation(viewModel.currentLocation) - if let address { - seletedAddress = address.address - seletedPlace = address - } else { - seletedAddress = nil - seletedPlace = nil - } - seletedLocation = viewModel.currentLocation - saveToHistory() - dismiss() - } + self.seletedLocation = seletedLocation + self.seletedPlace = seletedPlace + if saveToHistory { + self.saveToHistory() } + dismiss() + } - func saveToHistory() { - let lastSearth: SearchHistoryAddress - if let seletedLocation { - lastSearth = SearchHistoryAddress( - id: UUID().uuidString, - address: seletedAddress, - location: SearchHistoryLocationCoordinate(coordinate: seletedLocation), - place: seletedPlace - ) + private func onSaveCurrntPosition() { + Task { + let address = try? await viewModel.locationService.fetchAddressFromLocation(viewModel.currentLocation) + if let address { + seletedAddress = address.address + seletedPlace = address } else { - lastSearth = SearchHistoryAddress( - id: UUID().uuidString, - address: seletedAddress, - location: nil, - place: seletedPlace - ) + seletedAddress = nil + seletedPlace = nil } - viewModel.lastSearchAddresses.append(lastSearth) + seletedLocation = viewModel.currentLocation + saveToHistory() + dismiss() } + } - private func onDoneAction() { - dismiss() + func saveToHistory() { + let lastSearth = if let seletedLocation { + SearchHistoryAddress( + id: UUID().uuidString, + address: seletedAddress, + location: SearchHistoryLocationCoordinate(coordinate: seletedLocation), + place: seletedPlace + ) + } else { + SearchHistoryAddress( + id: UUID().uuidString, + address: seletedAddress, + location: nil, + place: seletedPlace + ) } + viewModel.lastSearchAddresses.append(lastSearth) + } + + private func onDoneAction() { + dismiss() } +} #endif diff --git a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift index 6db6c07..d6d5b23 100644 --- a/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift +++ b/Sources/OversizeLocationKit/AddressPicker/AddressPickerViewModel.swift @@ -12,76 +12,76 @@ import OversizeModels import SwiftUI #if !os(watchOS) - @MainActor - class AddressPickerViewModel: NSObject, ObservableObject { - @Injected(\.locationService) var locationService: LocationServiceProtocol +@MainActor +class AddressPickerViewModel: NSObject, ObservableObject { + @Injected(\.locationService) var locationService: LocationServiceProtocol - @Published var locationResults: [MKLocalSearchCompletion] = .init() - @Published var searchTerm: String = .init() - @AppStorage("AppState.LastSearchAddresses") var lastSearchAddresses: [SearchHistoryAddress] = .init() + @Published var locationResults: [MKLocalSearchCompletion] = .init() + @Published var searchTerm: String = .init() + @AppStorage("AppState.LastSearchAddresses") var lastSearchAddresses: [SearchHistoryAddress] = .init() - @Published var currentLocation: CLLocationCoordinate2D = .init(latitude: 0, longitude: 0) + @Published var currentLocation: CLLocationCoordinate2D = .init(latitude: 0, longitude: 0) - @Published var isFetchUpdatePositon: Bool = .init(false) - @Published var isSaveCurentPositon: Bool = .init(false) - @Published var isSaveFromSearth: Bool = .init(false) + @Published var isFetchUpdatePositon: Bool = .init(false) + @Published var isSaveCurentPositon: Bool = .init(false) + @Published var isSaveFromSearth: Bool = .init(false) - private var cancellables: Set = [] + private var cancellables: Set = [] - private var searchCompleter = MKLocalSearchCompleter() - private var currentPromise: ((Result<[MKLocalSearchCompletion], Error>) -> Void)? + private var searchCompleter = MKLocalSearchCompleter() + private var currentPromise: ((Result<[MKLocalSearchCompletion], Error>) -> Void)? - @State var appError: AppError? + @State var appError: AppError? - override init() { - super.init() - searchCompleter.delegate = self - searchCompleter.resultTypes = MKLocalSearchCompleter.ResultType([.address]) + override init() { + super.init() + searchCompleter.delegate = self + searchCompleter.resultTypes = MKLocalSearchCompleter.ResultType([.address]) - $searchTerm - .debounce(for: .seconds(0.2), scheduler: RunLoop.main) - .removeDuplicates() - .flatMap { currentSearchTerm in - self.searchTermToResults(searchTerm: currentSearchTerm) - } - .sink(receiveCompletion: { _ in - // Handle error - }, receiveValue: { results in - self.locationResults = results - }) - .store(in: &cancellables) - } - - func searchTermToResults(searchTerm: String) -> Future<[MKLocalSearchCompletion], Error> { - Future { promise in - self.searchCompleter.queryFragment = searchTerm - self.currentPromise = promise + $searchTerm + .debounce(for: .seconds(0.2), scheduler: RunLoop.main) + .removeDuplicates() + .flatMap { currentSearchTerm in + self.searchTermToResults(searchTerm: currentSearchTerm) } - } + .sink(receiveCompletion: { _ in + // Handle error + }, receiveValue: { results in + self.locationResults = results + }) + .store(in: &cancellables) } - extension AddressPickerViewModel: @preconcurrency MKLocalSearchCompleterDelegate { - func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { - currentPromise?(.success(completer.results)) + func searchTermToResults(searchTerm: String) -> Future<[MKLocalSearchCompletion], Error> { + Future { promise in + self.searchCompleter.queryFragment = searchTerm + self.currentPromise = promise } + } +} - func completer(_: MKLocalSearchCompleter, didFailWithError _: Error) {} +extension AddressPickerViewModel: @preconcurrency MKLocalSearchCompleterDelegate { + func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) { + currentPromise?(.success(completer.results)) } - extension AddressPickerViewModel { - func updateCurrentPosition() async throws { - let status = locationService.permissionsStatus() - switch status { - case .success: - isFetchUpdatePositon = true - let currentPosition = try await locationService.currentLocation() - guard let newLocation = currentPosition else { return } - currentLocation = newLocation - print("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") - isFetchUpdatePositon = false - case let .failure(error): - appError = error - } + func completer(_: MKLocalSearchCompleter, didFailWithError _: Error) {} +} + +extension AddressPickerViewModel { + func updateCurrentPosition() async throws { + let status = locationService.permissionsStatus() + switch status { + case .success: + isFetchUpdatePositon = true + let currentPosition = try await locationService.currentLocation() + guard let newLocation = currentPosition else { return } + currentLocation = newLocation + print("📍 Location: \(newLocation.latitude), \(newLocation.longitude)") + isFetchUpdatePositon = false + case let .failure(error): + appError = error } } +} #endif diff --git a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift index e36b40d..cd525b3 100644 --- a/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift +++ b/Sources/OversizeLocationKit/MapCoordinateView/MapCoordinateView.swift @@ -8,155 +8,155 @@ import OversizeUI import SwiftUI #if !os(watchOS) - public struct MapCoordinateView: View { - @Environment(\.screenSize) var screenSize - @Environment(\.openURL) var openURL - @StateObject var viewModel: MapCoordinateViewModel +public struct MapCoordinateView: View { + @Environment(\.screenSize) var screenSize + @Environment(\.openURL) var openURL + @StateObject var viewModel: MapCoordinateViewModel - public init(_ location: CLLocationCoordinate2D, annotation: String? = nil) { - _viewModel = StateObject(wrappedValue: MapCoordinateViewModel(location: location, annotation: annotation)) - } + public init(_ location: CLLocationCoordinate2D, annotation: String? = nil) { + _viewModel = StateObject(wrappedValue: MapCoordinateViewModel(location: location, annotation: annotation)) + } - public var body: some View { - VStack(spacing: 0) { - if #available(iOS 16.0, *) { - mapView - .ignoresSafeArea() - .safeAreaInset(edge: .top) { - ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { - BarButton(.back) - }, trailingBar: { - BarButton(.icon(.map, action: { - viewModel.isShowRoutePickerSheet.toggle() - })) - }) - .background(.thickMaterial, ignoresSafeAreaEdges: .top) - } - #if os(iOS) - .toolbar(.hidden, for: .tabBar) - #endif - } else { - mapView - .safeAreaInset(edge: .top) { - ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { - BarButton(.back) - }, trailingBar: { - BarButton(.icon(.map, action: { - viewModel.isShowRoutePickerSheet.toggle() - })) - }) - } - } - } - .sheet(isPresented: $viewModel.isShowRoutePickerSheet) { - routeSheetView - .presentationDetents([.height(260)]) + public var body: some View { + VStack(spacing: 0) { + if #available(iOS 16.0, *) { + mapView + .ignoresSafeArea() + .safeAreaInset(edge: .top) { + ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { + BarButton(.back) + }, trailingBar: { + BarButton(.icon(.map, action: { + viewModel.isShowRoutePickerSheet.toggle() + })) + }) + .background(.thickMaterial, ignoresSafeAreaEdges: .top) + } + #if os(iOS) + .toolbar(.hidden, for: .tabBar) + #endif + } else { + mapView + .safeAreaInset(edge: .top) { + ModalNavigationBar(title: viewModel.annotation ?? "", largeTitle: false, leadingBar: { + BarButton(.back) + }, trailingBar: { + BarButton(.icon(.map, action: { + viewModel.isShowRoutePickerSheet.toggle() + })) + }) + } } } + .sheet(isPresented: $viewModel.isShowRoutePickerSheet) { + routeSheetView + .presentationDetents([.height(260)]) + } + } - var mapView: some View { - ZStack(alignment: .trailing) { - Map(coordinateRegion: region, showsUserLocation: true, userTrackingMode: $viewModel.userTrackingMode, annotationItems: viewModel.annotations) { - MapMarker(coordinate: $0.coordinate) - } - controlButtons + var mapView: some View { + ZStack(alignment: .trailing) { + Map(coordinateRegion: region, showsUserLocation: true, userTrackingMode: $viewModel.userTrackingMode, annotationItems: viewModel.annotations) { + MapMarker(coordinate: $0.coordinate) } + controlButtons } + } - private var region: Binding { - Binding { - viewModel.region - } set: { region in - DispatchQueue.main.async { - viewModel.region = region - } + private var region: Binding { + Binding { + viewModel.region + } set: { region in + DispatchQueue.main.async { + viewModel.region = region } } + } - var controlButtons: some View { - VStack { - Spacer() - VStack(spacing: .zero) { - Button { - viewModel.zoomIn() - } label: { - IconDeprecated(.plus) - .onSurfaceSecondaryForeground() - .padding(.xxSmall) - } - - Button { - viewModel.zoomOut() - } label: { - IconDeprecated(.minus) - .onSurfaceSecondaryForeground() - .padding(.xxSmall) - } - } - .background { - Capsule() - .fillSurfacePrimary() - .shadowElevaton(.z1) - } - Spacer() - } - .overlay(alignment: .bottomTrailing, content: { + var controlButtons: some View { + VStack { + Spacer() + VStack(spacing: .zero) { Button { - viewModel.positionInLocation() - + viewModel.zoomIn() } label: { - IconDeprecated(.navigation) + IconDeprecated(.plus) .onSurfaceSecondaryForeground() .padding(.xxSmall) } - .background { - Capsule() - .fillSurfacePrimary() - .shadowElevaton(.z1) + + Button { + viewModel.zoomOut() + } label: { + IconDeprecated(.minus) + .onSurfaceSecondaryForeground() + .padding(.xxSmall) } - }) - .padding(.trailing, 16) - .padding(.bottom, screenSize.safeAreaBottom) + } + .background { + Capsule() + .fillSurfacePrimary() + .shadowElevaton(.z1) + } + Spacer() } + .overlay(alignment: .bottomTrailing, content: { + Button { + viewModel.positionInLocation() - var routeSheetView: some View { - PageView("Route") { - SectionView { - Row("Apple Maps") { - onTapAppleMaps() - } - Row("Google Maps") { - onTapGoogleMaps() - } + } label: { + IconDeprecated(.navigation) + .onSurfaceSecondaryForeground() + .padding(.xxSmall) + } + .background { + Capsule() + .fillSurfacePrimary() + .shadowElevaton(.z1) + } + }) + .padding(.trailing, 16) + .padding(.bottom, screenSize.safeAreaBottom) + } + + var routeSheetView: some View { + PageView("Route") { + SectionView { + Row("Apple Maps") { + onTapAppleMaps() + } + Row("Google Maps") { + onTapGoogleMaps() } } - .leadingBar(leadingBar: { - BarButton(.close) - }) - .backgroundSecondary() - .disableScrollShadow(true) - .surfaceContentRowMargins() } + .leadingBar(leadingBar: { + BarButton(.close) + }) + .backgroundSecondary() + .disableScrollShadow(true) + .surfaceContentRowMargins() + } - func onTapAppleMaps() { - #if !os(tvOS) - let placemark = MKPlacemark(coordinate: viewModel.location, addressDictionary: nil) - let mapItem = MKMapItem(placemark: placemark) - mapItem.name = viewModel.annotation - mapItem.openInMaps() - viewModel.isShowRoutePickerSheet.toggle() - #endif - } + func onTapAppleMaps() { + #if !os(tvOS) + let placemark = MKPlacemark(coordinate: viewModel.location, addressDictionary: nil) + let mapItem = MKMapItem(placemark: placemark) + mapItem.name = viewModel.annotation + mapItem.openInMaps() + viewModel.isShowRoutePickerSheet.toggle() + #endif + } - func onTapGoogleMaps() { - guard let url = URL(string: "comgooglemaps://?saddr=\(viewModel.location.latitude),\(viewModel.location.longitude)") else { return } - openURL(url) - } + func onTapGoogleMaps() { + guard let url = URL(string: "comgooglemaps://?saddr=\(viewModel.location.latitude),\(viewModel.location.longitude)") else { return } + openURL(url) } +} - struct MapCoordinateView_Previews: PreviewProvider { - static var previews: some View { - MapCoordinateView(.init(latitude: 100, longitude: 100)) - } +struct MapCoordinateView_Previews: PreviewProvider { + static var previews: some View { + MapCoordinateView(.init(latitude: 100, longitude: 100)) } +} #endif diff --git a/Sources/OversizeNoticeKit/NoticeListViewModel.swift b/Sources/OversizeNoticeKit/NoticeListViewModel.swift index 0862c48..1749bd5 100644 --- a/Sources/OversizeNoticeKit/NoticeListViewModel.swift +++ b/Sources/OversizeNoticeKit/NoticeListViewModel.swift @@ -92,9 +92,9 @@ public final class NoticeListViewModel: ObservableObject { private func checkDateInSelectedPeriod(startDate: Date, endDate: Date) -> Bool { if startDate < endDate { - return (startDate ... endDate).contains(Date()) + (startDate ... endDate).contains(Date()) } else { - return false + false } } diff --git a/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift b/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift index 94d24ed..2f0a503 100644 --- a/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift +++ b/Sources/OversizeNotificationKit/LocalNotificationSetScreenViewModel.swift @@ -10,76 +10,76 @@ import OversizeNotificationService import SwiftUI #if !os(tvOS) - @MainActor - class LocalNotificationSetScreenViewModel: ObservableObject { - @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol - @Published var state = State.initial +@MainActor +class LocalNotificationSetScreenViewModel: ObservableObject { + @Injected(\.localNotificationService) var localNotificationService: LocalNotificationServiceProtocol + @Published var state = State.initial - public let id: UUID - private let date: Date - private let title: String - private let body: String - private let userInfo: [AnyHashable: Any]? + public let id: UUID + private let date: Date + private let title: String + private let body: String + private let userInfo: [AnyHashable: Any]? - init( - id: UUID, - date: Date, - title: String, - body: String, - userInfo: [AnyHashable: Any]? = nil - ) { - self.id = id - self.date = date - self.title = title - self.body = body - self.userInfo = userInfo - } + init( + id: UUID, + date: Date, + title: String, + body: String, + userInfo: [AnyHashable: Any]? = nil + ) { + self.id = id + self.date = date + self.title = title + self.body = body + self.userInfo = userInfo + } - func setNotification(timeBefore: LocalNotificationTime) async { - let notificationTime = date.addingTimeInterval(timeBefore.timeInterval) - let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) + func setNotification(timeBefore: LocalNotificationTime) async { + let notificationTime = date.addingTimeInterval(timeBefore.timeInterval) + let dateComponents = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: notificationTime) - let stringUserInfo = userInfo?.reduce(into: [String: String]()) { result, pair in - if let key = pair.key as? String, let value = pair.value as? String { - result[key] = value - } + let stringUserInfo = userInfo?.reduce(into: [String: String]()) { result, pair in + if let key = pair.key as? String, let value = pair.value as? String { + result[key] = value } - - await localNotificationService.schedule(localNotification: .init( - id: id, - title: title, - body: body, - dateComponents: dateComponents, - repeats: false, - userInfo: stringUserInfo - )) } - func fetchPandingNotification() async -> Bool { - let ids = await localNotificationService.fetchPendingIds() - return ids.contains(id.uuidString) - } + await localNotificationService.schedule(localNotification: .init( + id: id, + title: title, + body: body, + dateComponents: dateComponents, + repeats: false, + userInfo: stringUserInfo + )) + } - func deleteNotification() { - localNotificationService.removeRequest(withIdentifier: id.uuidString) - } + func fetchPandingNotification() async -> Bool { + let ids = await localNotificationService.fetchPendingIds() + return ids.contains(id.uuidString) + } - func requestAccsess() async { - let result = await localNotificationService.requestAccess() - switch result { - case .success: - state = .result - case let .failure(error): - state = .error(error) - } - } + func deleteNotification() { + localNotificationService.removeRequest(withIdentifier: id.uuidString) } - extension LocalNotificationSetScreenViewModel { - enum State { - case initial - case result - case error(AppError) + func requestAccsess() async { + let result = await localNotificationService.requestAccess() + switch result { + case .success: + state = .result + case let .failure(error): + state = .error(error) } } +} + +extension LocalNotificationSetScreenViewModel { + enum State { + case initial + case result + case error(AppError) + } +} #endif diff --git a/Sources/OversizeNotificationKit/LocalNotificationView.swift b/Sources/OversizeNotificationKit/LocalNotificationView.swift index e574636..206c842 100644 --- a/Sources/OversizeNotificationKit/LocalNotificationView.swift +++ b/Sources/OversizeNotificationKit/LocalNotificationView.swift @@ -10,107 +10,107 @@ import SwiftUI import UserNotifications #if !os(tvOS) - public struct LocalNotificationView: View { - @Environment(\.dismiss) var dismiss - @Binding private var selection: LocalNotificationTime - @State private var isPendingNotification: Bool = false - @StateObject var viewModel: LocalNotificationSetScreenViewModel - private let saveAction: ((UUID?) -> Void)? +public struct LocalNotificationView: View { + @Environment(\.dismiss) var dismiss + @Binding private var selection: LocalNotificationTime + @State private var isPendingNotification: Bool = false + @StateObject var viewModel: LocalNotificationSetScreenViewModel + private let saveAction: ((UUID?) -> Void)? - public init( - _ selection: Binding, - id: UUID, - title: String, - body: String, - date: Date, - userInfo: [AnyHashable: Any]? = nil, - saveAction: ((UUID?) -> Void)? = nil - ) { - _viewModel = StateObject(wrappedValue: LocalNotificationSetScreenViewModel( - id: id, - date: date, - title: title, - body: body, - userInfo: userInfo - )) - _selection = selection - self.saveAction = saveAction - } + public init( + _ selection: Binding, + id: UUID, + title: String, + body: String, + date: Date, + userInfo: [AnyHashable: Any]? = nil, + saveAction: ((UUID?) -> Void)? = nil + ) { + _viewModel = StateObject(wrappedValue: LocalNotificationSetScreenViewModel( + id: id, + date: date, + title: title, + body: body, + userInfo: userInfo + )) + _selection = selection + self.saveAction = saveAction + } - public var body: some View { - switch viewModel.state { - case .initial: - contnent - .task { - await viewModel.requestAccsess() - } - case .result: - contnent - .task { - let pendingStatus = await viewModel.fetchPandingNotification() - if pendingStatus { - isPendingNotification = true - } - } - case let .error(error): - PageView("Notification") { - ErrorView(error) + public var body: some View { + switch viewModel.state { + case .initial: + contnent + .task { + await viewModel.requestAccsess() } - .leadingBar { - BarButton(.close) + case .result: + contnent + .task { + let pendingStatus = await viewModel.fetchPandingNotification() + if pendingStatus { + isPendingNotification = true + } } + case let .error(error): + PageView("Notification") { + ErrorView(error) + } + .leadingBar { + BarButton(.close) } } + } - public var contnent: some View { - // let notificationDate = viewModel.date.addingTimeInterval(selection.timeInterval) - PageView("Notification") { - VStack(spacing: .zero) { - SectionView { - LazyVStack(spacing: .zero) { - ForEach(LocalNotificationTime.allCases) { notificationTime in + public var contnent: some View { + // let notificationDate = viewModel.date.addingTimeInterval(selection.timeInterval) + PageView("Notification") { + VStack(spacing: .zero) { + SectionView { + LazyVStack(spacing: .zero) { + ForEach(LocalNotificationTime.allCases) { notificationTime in // let notificationDate = viewModel.date.addingTimeInterval(notificationTime.timeInterval) // if notificationDate viewModel.date { - Radio(notificationTime.title, isOn: selection.id == notificationTime.id) { - selection = notificationTime - } - // } + Radio(notificationTime.title, isOn: selection.id == notificationTime.id) { + selection = notificationTime } + // } } } - .surfaceContentRowMargins() - if isPendingNotification { - SectionView { - VStack(spacing: .zero) { - Row("Delete notification") { - viewModel.deleteNotification() - saveAction?(nil) - isPendingNotification = false - dismiss() - } trailing: { - IconDeprecated(.trash) - .iconColor(Color.error) - } + } + .surfaceContentRowMargins() + if isPendingNotification { + SectionView { + VStack(spacing: .zero) { + Row("Delete notification") { + viewModel.deleteNotification() + saveAction?(nil) + isPendingNotification = false + dismiss() + } trailing: { + IconDeprecated(.trash) + .iconColor(Color.error) } } - .surfaceContentRowMargins() } + .surfaceContentRowMargins() } } - .backgroundSecondary() - .leadingBar { - BarButton(.close) - } - .trailingBar { - BarButton(.accent("Done", action: { - Task { - await viewModel.setNotification(timeBefore: selection) - saveAction?(viewModel.id) - isPendingNotification = true - dismiss() - } - })) - } + } + .backgroundSecondary() + .leadingBar { + BarButton(.close) + } + .trailingBar { + BarButton(.accent("Done", action: { + Task { + await viewModel.setNotification(timeBefore: selection) + saveAction?(viewModel.id) + isPendingNotification = true + dismiss() + } + })) } } +} #endif diff --git a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift index 3ace115..6fa17ac 100644 --- a/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift +++ b/Sources/OversizeNotificationKit/Model/LocalNotificationAlertsTimes.swift @@ -11,46 +11,46 @@ public enum LocalNotificationTime: CaseIterable, Equatable, Identifiable, @unche public var title: String { switch self { case .oneMinuteBefore: - return "1 minute before" + "1 minute before" case .fiveMinutesBefore: - return "5 minutes before" + "5 minutes before" case .tenMinutesBefore: - return "10 minutes before" + "10 minutes before" case .thirtyMinutesBefore: - return "30 minutes before" + "30 minutes before" case .oneHourBefore: - return "1 hour before" + "1 hour before" case .twoHoursBefore: - return "2 hours before" + "2 hours before" case .oneDayBefore: - return "1 day before" + "1 day before" case .twoDaysBefore: - return "2 days before" + "2 days before" case .oneWeekBefore: - return "1 week before" + "1 week before" } } public var timeInterval: TimeInterval { switch self { case .oneMinuteBefore: - return -1 * 60 + -1 * 60 case .fiveMinutesBefore: - return -5 * 60 + -5 * 60 case .tenMinutesBefore: - return -10 * 60 + -10 * 60 case .thirtyMinutesBefore: - return -30 * 60 + -30 * 60 case .oneHourBefore: - return -1 * 60 * 60 + -1 * 60 * 60 case .twoHoursBefore: - return -2 * 60 * 60 + -2 * 60 * 60 case .oneDayBefore: - return -1 * 24 * 60 * 60 + -1 * 24 * 60 * 60 case .twoDaysBefore: - return -2 * 24 * 60 * 60 + -2 * 24 * 60 * 60 case .oneWeekBefore: - return -7 * 24 * 60 * 60 + -7 * 24 * 60 * 60 } } diff --git a/Sources/OversizeOnboardingKit/OnboardingView.swift b/Sources/OversizeOnboardingKit/OnboardingView.swift index 9b0235b..48974fc 100644 --- a/Sources/OversizeOnboardingKit/OnboardingView.swift +++ b/Sources/OversizeOnboardingKit/OnboardingView.swift @@ -41,17 +41,17 @@ public struct OnboardView: View where A: View, C: View { private func topButtons() -> some View { HStack { #if os(iOS) - if helpAction != nil { - Button { - helpAction?() - } label: { - Text("Help") - } - .buttonStyle(.tertiary) - .controlBorderShape(.capsule) - .accent() - .controlSize(.mini) + if helpAction != nil { + Button { + helpAction?() + } label: { + Text("Help") } + .buttonStyle(.tertiary) + .controlBorderShape(.capsule) + .accent() + .controlSize(.mini) + } #endif Spacer() @@ -75,57 +75,57 @@ public struct OnboardView: View where A: View, C: View { private func bottomButtons() -> some View { #if os(iOS) - HStack(spacing: .small) { - if let backAction { - Button { - backAction() - } label: { - Image.Base.arrowLeft.icon() - } - .buttonStyle(.quaternary) - .accentColor(.secondary) + HStack(spacing: .small) { + if let backAction { + Button { + backAction() + } label: { + Image.Base.arrowLeft.icon() } + .buttonStyle(.quaternary) + .accentColor(.secondary) + } - VStack(spacing: .xxxSmall) { - actions - } + VStack(spacing: .xxxSmall) { + actions } - .padding(.medium) + } + .padding(.medium) #else - HStack(spacing: .xSmall) { - if let helpAction { - Button("Help", action: helpAction) - .help("Help") - #if !os(tvOS) - .controlSize(.extraLarge) - .buttonStyle(.bordered) - #endif - } - - Spacer() - - if let backAction { - Button( - "Back", - action: backAction - ) - #if !os(tvOS) + HStack(spacing: .xSmall) { + if let helpAction { + Button("Help", action: helpAction) + .help("Help") + #if !os(tvOS) .controlSize(.extraLarge) - #endif .buttonStyle(.bordered) - } + #endif + } - actions + Spacer() + + if let backAction { + Button( + "Back", + action: backAction + ) #if !os(tvOS) .controlSize(.extraLarge) #endif - .buttonStyle(.borderedProminent) - } - .padding(.small) - .background(Color.surfacePrimary) - .overlay(alignment: .top) { - Separator() + .buttonStyle(.bordered) } + + actions + #if !os(tvOS) + .controlSize(.extraLarge) + #endif + .buttonStyle(.borderedProminent) + } + .padding(.small) + .background(Color.surfacePrimary) + .overlay(alignment: .top) { + Separator() + } #endif } } diff --git a/Sources/OversizePhotoKit/PhotoOptionsView.swift b/Sources/OversizePhotoKit/PhotoOptionsView.swift index 904582c..9e68b6d 100644 --- a/Sources/OversizePhotoKit/PhotoOptionsView.swift +++ b/Sources/OversizePhotoKit/PhotoOptionsView.swift @@ -64,19 +64,19 @@ public struct PhotoOptionsView: View where A: View { SectionView { VStack { #if !os(tvOS) - if #available(iOS 16.0, *) { - ShareLink( - item: photo, - preview: SharePreview( - "Photo", - image: photo.image - ) - ) { - Row("Share") { - Image.Base.upload - } + if #available(iOS 16.0, *) { + ShareLink( + item: photo, + preview: SharePreview( + "Photo", + image: photo.image + ) + ) { + Row("Share") { + Image.Base.upload } } + } #endif actions } From a4d36d80fd151197a5e313b31919b51a5fe01b3e Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Thu, 26 Dec 2024 00:42:19 +0300 Subject: [PATCH 38/39] Fix --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index c9f467a..1795262 100644 --- a/Package.swift +++ b/Package.swift @@ -32,7 +32,7 @@ let developmentDependencies: [PackageDescription.Package.Dependency] = [ .package(url: "https://github.com/hmlongco/Factory.git", .upToNextMajor(from: "2.1.3")), ] -var dependencies: [PackageDescription.Package.Dependency] = developmentDependencies +var dependencies: [PackageDescription.Package.Dependency] = remoteDependencies if ProcessInfo.processInfo.environment["BUILD_MODE"] == "DEV" { dependencies = developmentDependencies From d4c40e361e743808594bda2692ac74836814d07f Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Thu, 26 Dec 2024 00:58:43 +0300 Subject: [PATCH 39/39] Fix tvOS --- Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift b/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift index 286f2a3..ecdd563 100644 --- a/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift +++ b/Sources/OversizeKit/SystemKit/SuccessView/SuccessView.swift @@ -105,7 +105,9 @@ public struct SuccessView: View where C: View, A: View { if actions != nil { VStack(spacing: .small) { actions + #if !os(tvOS) .controlSize(.large) + #endif } .padding(.top, .xxSmall) }

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 literal 296480 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�oT_4sb1NSs=235i^tGwcn(1p1vQ@Kb zG_}PV>f0c)`bPT3`X>6O`eyp(`WE_@`d0eZz*PsX25>cjs|8$b;OYQZ7r1)B)d#LY zMBg@!?6YxXI}x%CRb-oFBHKP6*<3)jFCp6xxJD|n0})yMprlm&AUq_%HKus4aqNV* zdX88>To1(U2>nRlngZ7>T|Y`c8o1`bwaPhe$LlA>xSdGcwjc?R0PO(toU9qhG6E2OPF`N8maE*BQ7jz;y-gdEmMM_X2P)M)aS?x!n{Srs+Q; zZo8}8_Ed*yL-VoC1#I^cw)=qVp<;U=TTgpTe}ahpUVj|8UcmKE*Pqm%0Di*fgs#422{)^5Bmknz<27xs&Nd^O(SoG+e5-fD>a;iiaCE-kD7zZ{v!{y2vEb9XUx!^To-8=j|Sb#CT;m(>lu z447IY&CnaTS=lYC8wMJN#B9M}vIXyC(+%poj4(_@=WQ5i0K+K5Xu}x8Si>uZafb1R z3BbJv+-%_H05=!7G~m*K%K&a3aPxs%5HU=OId8+%SkP^lK}I0DsE*6(942~*kCRvb z`%FOIud5rVTMJm_xv-94Dr3O5JkZyS2unf2ea7)q+D-0h1hpaBY58)3!PBwgG zSW92>F|JN=@8jx}VI8hcam%t=ono%20^DTy4BfY3vtf&2D{w1-!`E7wVffszjokMt z;6BXrc-ycGee&)^pFD5ufrpZ3)oHPA%!q|8n{;SE?)w`ox;L@tpymBqyFRV!8C`~1 z960gly1VXszag4NqnY6#A^Q;_yN)d9vINViw%GTE^Mvei!wJJl!zsgQ!w-fth93=Q z4d;ME&x@li47~B*`V_eJz-<6-BXFC5+Z-`mh$H)REZ#O;A!N6xetVl5Z|}_~Hs|AQ zV-gZ;#6_yDabk@e5^Lm*0)2q{47kr@Ph1!&YqZ6C+o&@d5h|nJhzk_kf%_ueXfm3C z`x3aXiQF975o2^1G22Fl(P?xU(IM>sZYOYGWf;9iA3=zd!n^YvLgPb824lfQvZ}b3 zK2@`S^`+~~d)X~R-rj={8Vh03!ihz1xW_Gj>(`nuE;w-QQ0;ot>SaP`ENXm=8aah5 z*B-Q7#$sf-Fdtz8geLzBYR^1rERB_zX2w!P?mi^fSd7U1CZUpAqk^$El54DJtYoZg ztYWNctY)lktYNHa#96KVz#RbYAaI9(I}F?r;En?K9dO5h`#xf<6C>ByAm(h1O^Dp% zD!C^!o$XKg=;i{t9SB|Q*%KUP#L%riATqdoCO@?B&n8K+PqPbOq960%bXS)46MpwGmq zXDf_v7~hH^JCl(8nUI}I$X-gQq#`@pxR{WgW1MSDGo~9ejPs21jSGwmjf;T04BW54 zT>(X68Hhehm+Fu$Q=0^cN%w-p1v}ox4RA8U+KoLjeCH*13aH|(C#Yl!}$tz20e=z^nTTd;N->!QX+6%^?h`$u$C7dSU1>)})AGzk|IU;J(Nv&k4#->ibE3es+>XsTqY41551{K-NYrmCiDM0*(c_8p&ZTcg{;0Ap~h-`tSS z%RLl7FIP!zisq(PQHD(|iQz}GX+O0_d(#WZu<2P-2h($=j;2ng&ZaJ=uBPWr-GDC) zd=cOu1->Zo*z2jlKL$MZ`QyMBkCd?ny36T|sCIO6$a z`r&oal?L>GzE@w&Hsg(55>^GX%f$b>BmQsoUfuB~zpi-xG~urY_3hBRZnvJD`$dy> zn1C1_1^g2#!(+1xmQ9mQQwiT!O;dn>68NXmO|O}z0bdIEGC7Cuo2FSYeBUB`OOyQG zA$*@s#8+lj1yH_?p1i0=_ozb%3u6 zd_Can1K%KG`YMj^p4cRn>082A-ORx^jZaeX&*nSeTyVgr2;S4ct9v<2KavABn9kwn z0){@oH;z7=;3SpR7*c!t7tFofNz&$!L#Y63C}TPm~NT= zF#QR9OW<1p-#Wwem+21i*arBvdCsF*NHUnkM9B6(7AjM2Pu2C)_f6QmaZ6*Gq%td5 zRFhcrjmn1~QFd0m0NXeHKDnh)n;ATt^=1<`ve|$mUj7*z@tVyz;^o_CHR9D&kN1q( zX{J27Of$2a$nAjSn$2YS+9y~(wMNKX6v;J*&B^A6%mvL4n;$V3G8Z-%F{8ij2z)2t zI|JVZ_^!Y|4?KF~7l3~e`0f#NN{n3dsQzSnz9w@)la#^D{3`HcR83L_H}f<}p%3tQ8$<8d6a9&#_VrulcgWDq zGQSP{IN-;po8L9R2mA!!@3$S{0oFs*FG)Agk4bnQNq8bja3M)}Qi5SL6;S67%}dQI z&;^;_H!m|U2OfVe3|gmVm_IPDBp37=@YC|%1+7KDvM$lDB&D9dI&5K$qHny|_V$&p z$L=Q=gx7$Yv$zKIIol@xf{P8-ELzd?`Oi3wZ49cYuEvc>JC%I&`}*Gb-QFEC#sZhr!PuFCD@D7Q(eac*fMhTy&HO0Ju45wthVH-S$F zJ|o@yhZ)1PdB8_i8-mLTc;#$Y6X7XpTTU=42 zWpR?xT5^B>ECEY6N~|SB#8RS-dzra7v6e!X5=gA2u%(FQQA<%viY3+Zn5CHIaZ7RF z(dexJ{sZ7w0>29Q4}o6|{71ll4E&mi<%t-vmQt}54@+4hR!y|QW47n`ipQpWSDW*$ z)>0dhwcuD<&9q^ukI3FL>9?hsg%a^vngjo7ngs__>mMxiv$VCeM?qQI(I{jCjzTQY z(kNtOR-=%LYgA2jvCxh;rkUk=QsHJ)p#`r8q-uYkK2>YA>%fI}Xbm*{bke3#ODyv!KV{lV+I%Jno&yHpQJPj||HKQsF#O;a*bV zLQ>(rtW?ORs+HciVDv^RTuv(7Pb!RteEaUH!jCMQNrfL<)>zhB)>%HWd}>*5*ap@k2CI-5${e`%_VwEREB!jTew}$$p6|XCqaLe_MU}*&pSQZPee1ls zx5k`XKlVzCuJtpc9;?o3jB;x=5VyY)w^zt}oWB>hR=YKfCmgH}tJCVTx~(3o*XpzS ztpRJ$8Up?|;I9JzJMhAV?s{8P@jJXAyNl0YQ`ZsCPwvpHJj>j`*o@`kETQ zZm9NYrMI?T97U+Vh()_67X9d!e_GdY%_?iw43or%Z?(LOdN1ohJQ8B*8x>-i76l6kHo9gbckbA@|B;aFvMIJV-aAvH z+V5kn<54V1Z7U{%b%S8N?~xGe6zgjkIa#NIfceug|M=f8(op~9H>|NOZ&up!COET^ zp;}|MmA1TD=UC@j)2!*%4C_4WeCq=1LhB+B@ZCHhctP-i;0GZ9LJ))y2w@PCBi8tq zH|w%k&|{@7Z^A>W)qEr#^av&XeHJtCr);dW$-lUyIJM}}No#LG3p1n4?#*`1tUv5fr{M3a^+F2}mF0p9+&r9sQqjyc(MeENoKkyUzfyW8J%j5@&C;9<#wAwSjTW?UMX4dOO?GxElQfvHW zQz+!QV@t9XurW5)#%VU&1e<7+Y%&N>f`BNN0--brPlHf~@=FV4K_~}8c@Qcrv1wu< zkIi7x+e}hdMq{%QycJb=tI*arp#f$s##Ixcbw0s4KWwpukziXg2$kXl+a5-OC55>l zDYhas*@}1W^#-9bA{>Z!yDioBI10t~n5`HHRY9nhZYypp0YY^U>gE{2woDC*C4{S zT3EDpV$s)T9^c@pRq^xTf->Awg!Z7J*3grm=MO>O8y?o8Sbc+ zTG*b!P{!8M*2>n}*2dP>h5=ne5E_Bd7=$JuGzFnqG?cM*uswJ8bgR%D1a#;Bv!`2a zJ#4+Pv6R}jUeQpd#eG8=+d$i33}tMCKxma+C}VrsHZp1yZ6nAiw#lX&)INB{HVs1= z+c?{J+XUN0+a%j$+pD%IwyCz)K)~*J288w?JPSex5U@Ktg3t+s&LDJ&*rvzr;hV8p zMBCeB4ZEt=u$wxIC=AHAgt=e|7m+1g48rrOC0vS@@SbzowpF%|$OwLDTMfbsAiS7v z``ESygzg~p%{e2u-nN;H;0D`9+a?ftfY1|!UKzG6wyk6Y(JuGNdn335E!)mS%eHA* z<7Ew6)j9m?p-DIP4w+nmjNoo8`gLN_Th8sth9;GIyjp#1vF5{m#+^zkOM7kmsgd{L z)RoW=r><-VaOz6vpVibA=T<9yXTyZO7{}PYCu9c_vIod=V$P7iSx&Xa8QZTI$Jl!poGLLKqIh2oOes084CF;@n;n ztJ-eR)Q#;AB6pNZ?igTdfiNL9b@O^Yyg3iAT}F8AI8`w^4zFE@@ahLK7wALzpe{xq znbR?LtKE+F-);k8Y?|Ex!YlWggo#VV?y>t(Ty`%havUns9w0@I&q|TZUuva-cHG{! z!2YoP5qlwfVS5ofjz}hgFbRaoAYf2D1%#k;E`AmjD`F+ToY zjN6;q+oM~yH?udlx3IUgx3agkx3Raix3i-|o(aNRAj|^cZ4ll8;aw2k17S7@b3m9I zu|FHb+ukWQ!(e}&;7(KFo~O<*EY1fz7r@56ZfW*GAf&5c4@I!;FX;!-2LwzGf{`sf zae(4bc^hRPLn=ZuJwMGp7K8;42=@g0WKva%eG3eE|sgz3+pt420z%tN`Hy5LSY) z3WN_qSRJu1ic4{6T#745iXW*`T%$_yvwSJ$f)qE96gPtKu`0zaQ6D39#hinfWDe5} zPL4hAdYLcnU!gYaJM23_SPR0sbo(y*ZV*r>8}1{?2cPt}@3S9>sdhi9_EQqzAyO^w zuJ~KLV=@g>HF(T^5+h6d_x9uV6CmJEh4JO)4ErhjX^JejfROk1k=QRJ8SEDm!^Ki9 zm$xWdsoIe>)haA~qK-B(ezit1^e#epIDBxfmtb=p#AZ!QW3lP2pVFw7<)n9?I3k2-w zuR+)oafmT$9h%s<&S4;Gzfq~(mpQIGo{w$LW9#rCwhliCd*j$TLfMV$9EBW|c-K+b zQ3QlJ^TFa5T@y zbq-9_>&PNeZ~0RDN7vF-n!D^3erE5r{uW4|0~7T+vPjhXe7&JnM_sC1cKZ2Odlsl! z@tI8e95o!2sMk@GqUd87MLX(H6#acxQ8fQq96(1SN7E>>jwXcc2}IUG`QEVF-|d`Q zqqU=hElu!@jx@sj1_(Fv9`i-W?&3txxo!ISgMXE*UwFdVLS?kx8Z!y=rC9X+#G;4W%=vNq zsA}8iKiBQWcYa#^ADFLjtcnr4l8F5yn?_SxY^~!nB6gkQ6UV2H^^OgWjgC!@&5kXO ztsvY6;V%&GfS3eg0T3AwSr9o8c@Tw&ToF{0{I?jQpfT&4#TyR_jQ469W=b*jp zpsTAKbaj=eBR4}=SBd(p+)RPusswL2{vv4qaQx}G4Wbc56Nu&v#~o)9LMvK8wB|Xq zPBF>gloCn&IC5v^;35r{M%uF@MoOX25L%}Oi)s^#K3cl!vfaIFhu=SP<>#`(e0`>G zb{d@KD6~!!LMz${TDrOmo9!NM*6DO6BeYJJ)9v&)y-uIg?+iGD&X6+ron=5wj#KL_ zpPip|R&&-wVK}QhYk*h~#D~+JwVbsL(GH14lUJ`jQgLCW zz{oQd%6WeI^~_!RIyt)%eJRc^7-xv7NT0JC(f3#aeJ1XixXE(%bYiMr9Lzd<6SB13 z<6f228iSmp2-(5TAt110mKp@J^^A$5Ybj5j-@~>4dT-vqEgC6 zoTKB&j*BBZiI6R)B3mI7**f{i<^r;_2-&wmEUzN_Ube{2b1o!g=Q|gGi1<`WcP?@+ z2C*`T)pE?sI+r;=h)H$@Nwx~9Zxuz% zi1S(?*3Ns*KSy}CCBj?Px!yJWsmd!Rv>U#^Y@gF#5$9iG(H)6J-*I&=(#BOy9Q|C% z_R3%W_Vr!PcRBaOko}sFt(#4wsV#QEd6JMl=se^+>^$N;>io`m%=x|Zxbp;v^+9X^ zVnYxcfrw_a35ZQWYzAU;5L-l?r{c)|7)SO3A=^?#wsj`5UGkC51!Qj!vNu6&r6T)h zcF4L|mw>`>aV{Lzv;nbgx=VCPAhrYX*&IXGrE?kSOY{^NQ(6y~i2~y+(|T|zaRIs< zE=t(za=KhDjORLlh>Um4aCu#nuvhE^V&^;Ym=5PN~x8^k^!_KmnI z#gKJXi;ZSowFudMDzXFA(QN)LHMx*Y%+&&kb+rVsf1FrXn{0`F&V`9Z(p()u9GK?n z4C0{saH{gu&DEVCe1RYwOc3@U2!~`fIu&=SmHN2`#zZ)PL`XNUxO$KXha@;#wZ<^l zI1=H@uHmi`u8}TqjdG24jd6{2y#nIPAPxs{1c)O+#K>j#EX5sWJLTx3q|_=KGDD_ZzO+q{2BMj#pKfjw%$ZC8g2_nA$X_f{)C_ zM%QB364GG=#EEGxjKnaj$b+0~b**qkXX#R0D=B`PjFP%nVjWddYh4(;;dsOK35jsZ z1Ju~!+C?JV>iW#}xoewiyXymAi^I=gl9l}M-}0@s3{aTx-Q~XKB&OfAihf? zG(M_|o*YRJfIA(yC|6llj6EbGMr16?N737X$h9i#P5!OnY)0S ziz?C0k`gnrsif9W+%{CATjSQcb#A@e;5NEVZnN9swt_exL>wqB1aT3FI7~v4mVk&a z^FD~nB5r$3iEejHiEckBak;9*4>FbbQN9v$UWx9as6;n<$`x@Xx{GD!l-*CcOQQU4Ipj=aTAD}LEI8?w~MQ= zLtKTONrhWg6@H$n!f*0bmP0>F|2c;bHC}6NR5Wuq=U(WJT{`NfOGm}M*)*EkVk_Kq z>8Sey_e%FF_lNG)?vLCbyVtnax)IlJLEI1G0T2&@cnHM9ARYnnD2TWyb}ZtKUpngE zBvy4}mJT;vIx2pzLVJSthl{wo0L1*eRB~ZJ=ca2%-TOd1u2M_aj>=}?27Q3p7+svC z=Ur}(x#{Xr_xJAOAf5#ARJ!}5`xJ<$LHsf2xIOEpt4H1EXax8JjsV>kX#{vCs}Z19 z&CKEc)lGMgy05r@b6*AVEQseoJfGpd=BB$x#S0)_%zJL}?ooFZcaLsAaQ4!LiS=5% z_ekd-+x>8fE@AQD-J_l??jD`>;?GCcpKBn!wd+vpVLje^cjRiLnqSrxFOs=ClVI-Rtzwh@ z4lEDiH4v|Zcmu?nOFX`q&-H|alb&Q63VR+VfYpmtM7mf7qyo{=u%yj*ygBc9J#?q2 zrzD8#-6|fsQ}mvvvpf|%7{;Y}5Qy7pp2{HpbsuO|p;Y%!mJTMxLwAabcTid$+G8dq zB}mJpU#nJX=%G7BJ&in#Jxx4KJQc8}{uyuv_Or{Zd=^>eU1D;{W#_Ho=_v&GD}*_ZrZ%6Q<2~XBLlJ z%_<#w4(!mc9{xkw-wK*tdWicU{!oAJE*{FTrquRC?-Z5f`yTJ`^zz_BWtyiqNSf@9 zcX$SRhQtV`J4Gd3Hr=4U%LotMDe4*N0naGUXwMkWSkEh-ah~y>2_P9jGJ<3R$qbSO zBr8ZZknA8iKypSr@jFF5Q)5%D9=cOha>aeKH`cBWW;{ zO&ztyHqT!2GTS|0c)s-P@a*(_<=N%g?fKfX$MX$H$sj!hQbCX&2I&!y3V~D@By<~( zf>acwlqH^haW8Waz0BdLm-&vQn5s&#Sk%jujd__G|2{eXPi27eTqNaQ0_ibTxxZxV zkgj=dqMAI{JvTsl9Hipuo?D(jKq>*!llRf^gO3BfNnSQ8b1y?Orwkrmo@8D!LFOj5 zeq6O)#jD47(yQ@my*iLkaHT*ho#8cjjTlc#PlHq@&*Mq2Bgx=(CN8gAi?q9wJfUWx z_ZsuhH<-D7S%3AXSSx@LciUxt{*XThdz!#iG>qK1GK! zrK z-n-+!&s^qx`X_I1w1M6}AT^8IKyQDvfs&GxDk`kp)UF=p9f9KT zzU&CQrxm(!#iWiRrWO&DU$9pmUYXeeSklJNK`y=y?~0(dA=dLE>1AiV(6iy(CesRu|sLFyIpu8U*4AvTNc z-9p&*RbT?1T4D!gd%Dc!#ikIWc|{C&VH2aXvAMtxq6qM`Tk;t)cTd5nG?$XYd() zCZE}7@mYN~pWWvG2~F`RkVbri;?>DZPsRHd*cLGCs<|;VbLI zn06{iuciAc_zNt@tO~;9BUoD)-mS$u%ku9B6->iX;w)*=T z`WpE#mU{!FH$j@2;cM!nt^U$mAkE5i+I_gy-aYqcveebMn+lRo*OO52aPJtZ?~_jU3`xB55pbs=!yL2!Mwi1rx?w5u)F z!#9|~?dj{~>+S2~>+9?1>+c)j8|Xtj`5s8KL7D^7T#(X0N(U(eq(DSbp+NC2n5>X_3n94CIy>=X--bBfkP^aqLmp_^{g3 z@AxQy^S$fCZe0Qr5;ez%9s52=D{_w7`92Exd<%%$Wkl^_qIP+f)Q(f%Y`G72i)Hv$ z_&)Hh1nC2i@VP3(_n~h!QTriCtMi`PPZ7oSiH`TBS(o*kwSLdJ$xAx?@??tzMC~Rl zx;e3E({-m_TYtLBQ|nKU*L_#`%x`z8{mi!=8;xn^+eXyVUJu`5qIUT`somu}MAYu~ zeeK)h`^LA|x6k*jZ@=$=?;uEPL0ShA{zIRFv>v1lAZ-L`6G)pu+7j^{j#GOqPVGse zR^96%eXdfwC*RxVg15!_yfoiskkqXnzTc4Ad#*V7Zuuy7^Znub6Qpe*ZBO_8<+}sY z7a;Ajf6`6YzU&-(?x2-24z?EqS~r{U!WQ_)CJc52SBF z+7HqJkdWR(ARPwj2uMdk`Yz&sDu%1SObl0l1;X{1>ST|rxL(Z1HRo~l*F#+WI6wG( z+{yYIWrwT3rN0g8!r#h|6Hg~VI+^Zo>u(3rDUfg%LAGm34=~t``%3?F{?7Cz9m&C- zMhENfLJszatQ;&mMy=G{kGX6!{5||V{k=f?5u~#qoy+j|@%JUh&x3R!?-?J0;0{d$ z_l=}^&kjndRBr5~CkJ@Xm269lzl=qPCl+lxs?7K9`c*R~7n&hkul-l$`@_8)tbd~a4I*}uf3p8o{}lgJ|7-qf{^|Z1{?|eJ8Khr8LNop= zNLN7m4Wz3e{SMMKkgiAkZ^nszJ2sy6&n9ATsKnmN9M9g#M>ZFb#RR))ehg`Es>rU$ z7TJ&eYjOF(k8_KEr1>#w`tv@Zs)E|!-%Nr^@oyrhahn9Sl>~)*LjIl~Ef`TNec|63 zQ{fI&p`4UWCAG#k{_jYId;RaX^crvcSGpIsY8&{#MS5+um@>Q4%D#WlZ&3_eSovOm?*{blbKoY6&4#;TybvI}H4$R3crAp1b}gB*wi;<-2ig<{c5fO2uj zK~;sx@#sZ_A0AAT|H0>1r?|f zs0s2zAQwyz)DF}E`C*WY=GcHE&@g~G*D?Z)0*wPrKz;<|LLe8;2s8^c$6!P*0`jAI z9*hLqB^d(GBt{qoCobCl<=Kjd(!R^MYI|lFWv~i#z@pD37F}L&)@{$4s%@rKwYA+p zZ)D}nU?k8v@O+Hgu0(AL0r&z@o0>?irk&a|y#jrsz9Z0ws4bRFCAG%jz-Xd&NMLB- zrNFSj%Yos65rL5b2#f-`ILIYHegfo@AU_E*LRkvr(jY$#a+yeAOw4x##>c6hOw^WD zsV%QkTRWfHT%h)CqV^q-%c<1jnaz331@B<`V9Ie^`HnsctNlDbKr?QE1%ZViR{*(U zdSG!N0&*pgFdHUP=(i z;!=Xc7sjPDDP6Dqn}e%%X<%Fb=3UTt2fm3hyN8&qL(EbV6KuA>2Z?Hn9SoczW)B4p z2aW`e2EGd%3w$3q9yk#=335G<>x0|?OPMR*K`uz^t3f`9fqQF^ z+oT7jAcpR3LB_-nImB#GA2iXI7>L<+$ZXI|%s!JPv$f(13_6228Hdp$j^e@ z0p#a0g1(@inC%F1r#xpiSTM;Dd^nNWpU?M6-!ih=(TP`o>vrkP3)_*|U|}p;B(Z40 z*%v+$#@Bl3wf7e6pSIk#HIvz3O0Zaz+2CWuY!_rUXeMT#xfip+Cxexc+2B*bQo+)} zr-NmJWrO8{<%1Q1*j~?r+zsRxKzS2OkOzP~Fg@5ch}}B~WZX&d z0P}a*QmxY0BZy}iGJ-vWy@Du_!5|L-d1ywkZ?GTH_Y%m%@}9n-h}27oNOdoEbn?!2 zwOXw{e#Snn{4bOaCpa97jz}!JwcobpV?V4}a_SEGi&5i6O!ut*{G)q~x0eKwA<3XMP@zX|RoXx{{RX5K@47)d;mNTT7&$8ERFX%HDzq90-zOIBKDou4bA?(nMlY)89@Bl@+jpTo8T^47`4q(&vnb9uLvhC2S;ZNl1}cIV zgVEbWn+1O&Xx}Ah@r)`}yGLvsyc)bi(Ec907Q7z35xg0^75pRkXYh9LFOX-0jOfk< zISu4=kTXD@2l9N77l6Dl5=x3e8{$H|aEsA|B!YI43N0EM%(LOcJuC9cd}?!^+K?To z4LLww9H%zqMruPI=0eC5!fC7iqHv{`FGUI#M%qc{{^ z5AudcsCHbI^D&)Xok?@K|MNPH1i@EtDS02+gzlLJL9*LyJO-LH-8hy&&%c`CE|pgM0w^n;;(q z`4Gs5K|Zo1v?Px1a^Ym?13Fe2`jFr~s=|8=13{3_M~_v?SMveR1%UCQth5kf_?-&y zws7j2z*vltCj%MG;8GH|hjuO6yLWe^~ zK*m|SQy`zt2z?hiM)>{!@|nEH_XlM1Od^w2I+nY+QD5!qiuzU!tca!%1|%beN6hI*=~|T`vvtm0US3ncY>Ep8w9F z(6C$2o}D|z6DK@yu7j{PY{14+YKQf7T2lV?zNaO_wy*<(qOcw0-?BR`8TN()QG*!v zlR^BQ4B}-ni0AHQ5W@w-#W0KsKOBA}Tqs;PTqOKxxM(;foEm-%jA<6`j4D**Y$~ZWx`**F!jf>0aL;hBaPM%RaNlshaR2at@WAjO zP&A-uLD7Mt2gLx25fl?BW>74kSV6HZ3CB+)gz-c|cm%oS@F)_aT@|BiWu2ug^)&EKTgfW93& zSHaXc>Jg7_ojO0)p>OJ-Zk_r+-`@CeLV@1hI}GXCms0IC?%Z!c_x?@#_v(vzbso#6 zVAEbhs&?x~6|3~>*}reE?%g~0-5dTe$q-(h=$VT&c*}Tla{bE_UwY%+fy-aGgHAlW z28*suEZTolkJNpoYuy-Eb@$OdCtf|8>BPgIhBs0puSX}YB%>1#ZwhY)phpky2=5Gk72Xxz9sU}WM?fhAN?}lnfbu9PMPnX)ANuqC z;R7*`uB4zlR~`eUSgv^V?7en&{{DWM6I6K~51*ozJE7DDB^8}|x>8@M2docR@5tqC zJ9X>Vv2V8?-FkND*XPfVVoFC3;zVl)oLm&Okz6DhIjamxmGtD4Pr?{{8_Lvf^q=E|L5s z2{0wOB!vXk(7Pv>qL83^g8oeGR<%;OWXz$Kkz78xLUKh=Fm9;@O6`o~%E?u5e5BL? zrSAV>?>zvcsJg!KneG!!8fLJJUj3n5uTBqT9~Vj~ApQN)6P1q(^& zs93O}sECRRqQ(Li?7b^Ctp9Uob~a^`5Pb3D``*7kPnO-8JNMqX_nh-P?cRIF?IYbt zN~0SUEH5|A{ORzvSz~8B{8scAYtJ3p6Gf|TEEdfVE_%z~BmdaFBRBcZ#3B3EuQ9i5 z5UQJ?nJVcO{`)6OCrgoY;)&AjYCu08#lx$Yvu zwHE_3L*-gPuGKB4B;9h{5P_MA!764Z;a!V%kviE|=*VI5x+`_7fSC z05k8jsW-aobvFh4ztDFqn3bAE&FD`4d9OL}Mf%4>_19*!z&7mV_ zY2ss@gsAkPdI2d>AEpo2N9ZH`DIqF-BB4ZeZw_X)KSae`_aA_qegM%MkP!7oV6O5LqTV7CqT<{^0#yE| zDt&sV-i<`4cL8&CgWdzoH78N^{Pd(x)elA@)Ta?5ycUTt?1i&{V0qT(ef!Pv7fidA@)Sj)ur>)ZLHY^Z{x;`dhH*t-(bP47Lw=y}cxPaE9->7d=xVDjS?Ok0AnmS_J^}7k%?$Gbl-=V)#f0urj{%-v}`g`^F0dqGn z_W*M*F!+5pF!uxV05A^%gZ|Zrcj)i;v+cuv*w{zD2K`&WJaH0!RjK4%{Rf1u zME(1O8TTPwog~zx|4fhC5{3ozUl2;%-;F1}*Z)B%@dy2J{g3*e^gru=(f_JHq5n<) zJ20qCKLgAGV4el$Ibfa#<{&Wm`Y!-;c!&N^g%S<4LWzcOLWwV`l=!kriO2q<#M4iS zhB%}|Lp(4q`6m1-Aj2BQ8zvYE3=<8L43iC03{wr$4AX&m5199X`2d&? zf%yoSkAe9Fm`{QE44BV%7-sqzc8;R)8A=GlexWk#*8z?1#D5(7FK}!%;n*5rP^XiP zVZ$Qi*r)>$zeOD|oDU(}NI(uhnXeE#lGMq**Z_oYml^7T`39J88x6}1Xi$C!%+IHf zZ&w=7GuC9d!f>Tw6)@ie^8+x)n+&TBR};Sd5tyIOJm0QEW?Uc4jLl7ZUs$m>|LiN` z7O%YZqRi=pZ*Rh)HwPEx=yb=4EGxDGwe3pZ+L*+XL!i)uwjn@ zYxo10KY{rRn7@IgfTbaHHLxMTh5{P~Z1_&YUO)HlV+I@c8=eYb4bLF|vJrm%Wur09 z2W$ecxCa2R1OMaUe}RW_-`xhoYrsaTJbV;+*zgATJoy7Q3PO)4pUA@v>b$>a_>l1M z`-TsIWq@TH4Iddk29^U>a}qtU`*xe*3&Yn64S$6+%#ssW4BsLRvqCTp$B$Ec_M_of z!uUTKem499tQOc9U}KvMCk($KKicj4a`oA( z#CwqOjp0}{BDm=NTc-~=zHtP7Z|d>~!tQ#oHo*ACXrmTG=|;xL8aX3x6pR{RdjOjV zEOJsWV0#1GM-HVMHGro^cFEUwrS<$7KtZ6UB!5} z5x4DVFx~@fZigaKrKksudlZ5AFcFC4bQR+wg3Q5({HRYnVLXTyo^hY?N#lOwQ^u!_ z&lnFFpEW*bL=|Hsu%mz-4eS_T#{!!V>^NY@13LlOf*r;~ep&cZXmVr@O2Su(BvemV zVW$AygPcK+>fwLqtNaV$P2&ed5Pk^kBvlZ8f`V|s(2&aq3^iiX{UF>nI(iVWlTkYy zq)zrX#_x%g`quazuv3AZ)@b~}cpTX2z@EPIRgAwH{~%KBgz-1y@4(Igb|$d1nv8!M z{~}TiMfaIMU&Vylo2disZN~GsnD5Oo8y-9V?!PL}n@^)uGeu)jCRnQVn(#vHfcJ8# zHPf}XM4gCU5s+#o-lQcwD4H}xJ0|C=n8?l(YzJHH@U(wsOo^u6GUJ+h5ymCwt915| z`b3h+hKy?(Xc}bFne--u$!Ic}%qEKo^_6+RmI6B;*fL-d^%ekI4lH6`1+bMnOm>BF zO-{u%WAYNlRnJ#p1Lv#Y?zwx3&KVqNukn@pifb|c-BFOf24nbR$|}kh7F88$J5U(# zHc7P2s$Ar&E-J;G*#SX;d{RYT#iFvBvbp6x%mfIo1(Rr7$KkPzF1VIrl4Dy?TU6_l zD(B6s@zr)z6J~M-N|j^sKxeOXy3!I%naH;$L@@Py6;m$qt+K~V6r=7jL(WH11Hz^; zrg2Ccrm-dzz%{_uHk!tpPz2WjyX3Ulbfzh$=?c|OBUHPH5a3KgwTpvox&be$G+1Qv zA*-9_nu<*&z%B*$d|)qVGR-rU5>~$u*o)4%O=qe={;dq=-?yoylh$1@BL9xO4N>bX zpN=A|UX4X-f{Sw39s0h=mLIb7?YX13YVIDDfn^u~xFkJ~O0J|L6OMqPg?4`h7CfgsE1G^H~D}cRnr|Bv` z>s}l2zG)4yKTPWg^QxH~>}vF@0(%pt6d>+y`j3B4zgx!CMEG|Tuxd7kX)E$?rwesV zcbV=X%)85UH?UU&drhP1UekTRUJLB{)86@ZrOzJtm~X>wsMY?Db8iy{5+q zAFc&<-I?dZr;)jy31+Srzx?1r{ge@nJEWnWJB&*oCw%xE7JWXr=m&>NzopiVc21?7 zU~dL?1F*LMdn>TF0eidbkTJbaRx6r5@;hWUDytRQ#{c6EnXcD8baQQk>1)$>I9SX` z)3>tq(Qs0SjOk|+y6zfGzX03RmGxoz(@YTznPmE#h(nUkVS1Th2=39+aYm6j!W@H2 zj5*RAWsWv8X4cG^d9z^Fn6<#71ltDec3^h^yAxPMr8|MW3)o%2-o3*dt4Km~4|Afq zX9#QVP2}J`s(*SnuulNHk4VA)k`w*~>%(kDDQHFy-MxP6!)!+>XcoEW$se%y$A*e+?B3HR3(e=4Gf@_rhnk0((SLyMxQBt= z(`3#vXA@b7bouBRmxbn0l*T+dSirq^+q0Ugi?Tnu?!0B6tU2<=5|oAJd@MRHxadpE zZh3s@j@&EmI`Q(c9+sC|j=?Y&m?sk^6wQ-}BKH_Fp?NA{!pDP{Fh=-BH_V~zo1&ef zPEw(HuFS;dBErNZtE02$)hFhgYf+~$mzmEsFEE#z7n&>Beda3jdFE;}s;f@}`wXxL zfPEI&=YV})jx`+w_7Jcy0DE|+xz5kYOCz(*7ewNjt>%jfFRRHNY%^Klz`g?^g9$r- z{-08F`jr~ti`KVVo=M=5N5u~jF|Zfu&*|n zZ!sfkV!-O?X|qbqjpoe?F>fNo{5m1Vt%R751QT<rqK8cP zU3l|dqsHEMWa!eZxBcl1XhY_G=4Vl{F+XYEZ+^=BwD}n`GT*zvz6b34zq;rN|>@%zQ(|#{7n?*nDzQ#m4-e z`2$pJ%s4Ecb*0#tKQ(`$$i&ZyO#Gq?GF1EWo%wg7*nDsP!F=5OqxmQE&*opuznV{& ze*^X_V7~_T8(_Z$79DZl1N#H8$ASG3*q?To|4_uCg;FxzEMY_#{;VoCzxp%XxUm1^ z;OUoxmROX7mN;O4@vAi!-1E$TXf-+f)_-UhN4>TOU`J=&UKjV`2W=kd( z%?d8Maiw(s#8sn=Ytp{D^@8P*+JG3eddI7FdDz2X=mHtFCbrmEd}DN49T~ue`F#SMA70_h(Jn`M%L*bE}K0 zmj-^1DpQw~Tc%rPQE82q8J3yAF~G5nmf0w)IZjChh?`$oQ|l{Hl>6aI+l5+hUUrVW zUP+pwbRi47kfrp{ZwHiA7tO29s$96RtagmArUrem>id^iaEWSz#RnYUU?~MoAV3h) zriIC6zQtKVGjir`Op=_4LmLcas_a`8Z4`T>rEt5R}WlcSwn=`wU+CE>jPZhM$7e< zwZQcQ4g-jVT8-RhcA4z^N20~beCkrTmhn-^<0cC(RM>90*|NcMi{)0!ZI;_D8!Zi% zM&SAbHvqUK;06LW2sj;Zdf*Je8Mj+D5%jZcwQRF&$A5Ps_HibHeZV2jxPh~fuO7rc zB3px9{w;xt;Ftl4D*XRB@?d$0fZM~snN@Im6v551os!5O8CtxDAE@M~s&n|141cBbhqQ`=Z_Imx&%S3kg)jO9zs-Ki{AgTU--4jxq-AFC( zTgcA32t^+fDDol{X`P7QVJ`>accJ!dc}p@0a%Hq0(C?=(GzS5$ax|$Zk z7yY8o4*-g2`VvJ`j9~d1!jZ31>n*xrW0d|Vx4$QJupH%9ix%^fSyzZD2Pt591oudLjMSa<61rblmH*AwN${KBDtSoRDz-0oL1>8geBceQNo^gtJRYpzT$E~uirp?8y@}e3< z2YVOgCl*zg`f8Orx+q>C3madFIys{&i;GB56l=G2P!z~|>bwrJ8mY70Y z98%lJCacM6wpxH21sry2Onu&DWnd;N^MGn{Cu7iRz&jhJDSiZ2hRa2U3qfRTfbgx! z)>Kq^tf-CTH(1kv8%KyKfhbK$nYg)Axi1No1$lQUWmUQLY*Ggj=> zr{=W!t(3{Ljx5ynQ{LTA!tF_|$vVn9nwoR6Vu;h(lP9)+Se=!z)+tolHfz3hoOQf) zg0;Xp(K^XG8MsNn;pY_KrUEw&xaq*n0B+_s>(mg&I^8W@Z)ZE4vA@yU8ZVB5}yOiC&(!j0Y_5!z(bAz8U zF6e|h3*^Ltag}8iwb-~i*ymaoP-(bL6dD#h*>B5QVXagyC?r}LBQ0aYl)lN30?a)}e_Dv<6`LM2VCtSrZ^RO?E`vI^CKZ(U}sZ`=DztSj1HxZJu@ zxiI+xr#;Dek@}ifS+64^eYN#!>owMEfjbwt1;CX9w{VknjrDr#TI)LCDuAm5t_rxt z|M!V>V;e^Fi*DswYrH7b#`_B@3VA?~#|D>GW*mdU6eL z)%7Uh3s9K;869%_N9U;{y3M*1A=|p$x&ydc;OZK!cUaB9EkY?8EJ8bIU9IOnE3OW1 zO_2{;A49Xw`jGWu>mKVP)<>;-fm;gP1;AYd+%n(*xJ$NJAGbbX-DiE$y5IT~aF+tN z8n|nKL%ZQ7;AHX+*v;1G6s6((Lakf1o69RpQFq93=OlZ)Ihmp>!v7}Jh%G&OMXBiGpo%gwogQaqc8-{y=5~>avc(Knwp+|d&rMIwaU~}wyV6@%bX2LR zKB%HJPcqhkZ{ zPRkX&?o5}Mk&%-jW_faxy~(b$F1MYIdkG(oocoahZiV*VGz^$yeyoQ3Um-Rbq zZ|nEgAE+rIN!FjNKNo7Xz9m&f6(tj^iz>(ldR4X4$_N6EDA&g>rxKeVS z+QCvAF1Kj1&9{}=5ahQ5hxoL!$yRP#XhVFz1GsyDdw{ra`eO%B-yoZzq8Dj`uNV#7 znu6l_K1E$C)FyXSV02MUEqYW-@X2g6YEa)HHdp3S36W%8TvS^;Kfl0|G=+R2e!gZKo?vgg*tU!iB(bt& zl%~eKjbOP;Axp3=S18ceXaj1F^27?;GEy?4VNvAGSW@lD<+dx8o}d)Op4{7LTV=Zn zxch*+|D-*^eq3w2&bDS6_M}FhQs8zMY6quhrewI?SuT|Gsac{oB{@w@_qwyiY*#9R zqBF&lC8Biq8F>V+v@rT=Sf>tuHHGnPUvO}4eR_0$}+Yn0#3 z{?-xuvCYDN-ezHLN^)v;iZ@ft&dkUZy%{-(z1gWw(VOhd%}UGgW@UT5>TqqaZKl$; z+itPlYP-#LyKSSb!PaPNvTXwHLEs(&?qT5e0QU%Rj{=7}%wxbkzTLLPw$--Hw%xYF zw$pZp?M@p`^Ao`B1MW%S_5+8?%+tU<1Ka`No+X2RmfM??jcA!BB6_BZ-pu4oF)ckU zT})2P@?>Ubrl)1+W)>Dzp}V(sQM(aDH-i)ZOTj-8|GZwO$K}p(d(xb)oWg}g#g#Qn zlz)@~C$r`8q`5qLiPR|zIY3_`i^z`)1)YP1gXA2+B%1uLTPxgqO zWK>zaSwwkB_GXJI>AAVN>1nyCDOstVKKwtJGwtBi9B*=3dU}@VOm*WJWv6(=%&c6m zn46rN>&ozEWG824blP%`Cl^&KSE}fACugIEgAb==q^F7*?(ED|x6_rKo8IZe|2C-= zYRzN@aZbn#x>B58R18ya0-dfb{|i;t_}N941$$)9{^Mtd^-Yv^yA*cct6co`kJQ5W zz{Mw&i{oE=Vh&13f64vI#UJ-f*gGk3@frEzpV8EqkIxERd`>BOBH`X_lXGSQ zMOXb+;9djnb>NNwcNDlcfWv)2rkB;^l$Vv3Ay}i$R4cpOFgjLN>>GzNXkKOYLe!;N zU(TyRq$sZTk)TJr8&k@v(HBSDdRpa)g6vU~i>k|Td**g^tL~XXZLCrZ*Oy0uKjnD?Q3BT3A+&9*Kn3{TYMtzj6{!K=IgKes*x>oRUSgCGz`;?Min`L{E}M zGHQ|S9(JWl$&<^*5%E1;`Nx%P4@k(r?4f9N+y1swcG?~S+}pq%1MVH*-rZymvxnOw z?5J|S2i*I>eE{5tMBWkoH3I`Yi^^)3PVkWk+{Ch4GDkgwZcHW-OtJ_h_*QqP-7#741Fkz3jb#`xrPhTRv@yxX9km9tI>}iU!Pk+<9rT$QY`59%WNQWP3*f%2 z&nu>q3?WpKtoPcTHhX?dNch~U^0Jy*r}I@hBs45MB9fV^mqW>w71Q)Zgqrc!M15^# z)l_}uToP-niKXbvHp(E5T92dMO6dU^-T#l`pSXE53wlk^pJ<>jyN zf<_w?8^HI;`eNcXN2g{+E$S9?>uP;9^&$1q^`X-W>WYhfz7k)_D+xV>#9n=fCbYn} zvL<J{p3>O<-)>Ral2>Nw5O zF?3(rK-*~tokkC#N77^H33MrauJZaJwDK?I@&D`phej`qY7p2x_QB|`LGn+wr`UVj z)9mRo6QCiEg8ftAz6I{PE%vk6kL^S3=dd5M$ROWC=vv@@0PZ;X61tW!$DppMc;eD3 zlmRCxgmxAdGId=ODO6Cql!%m*l$?kPwOmp+EJ}HE8BXmZ6hMm{F{1oN#ID&BD@%%& zCKc5txjcitPDNsjriX8A5fS?$*C!6UNI*fRYY$J zdV(@j(mZ00CoRS0P08_QC1<10C(t?K55^NQ^3=X4QonUSTixpK@}?!Fr6;+P)0|1^ zPG=JNpDWd!mgI7#rU#^8xqT5T@b-oF3VWr!%6^``+FoO?wbubp0Z#)T0(>a&VZet2 z9|3$M@KJb9uYHMqsr`KW1@;T=7vUT&Lp6hs2EGdT^MJ1f9v@$fQ^lW8=17Y#P=JB| zu|rcE(LyORQqsdV(`+W+OqPpT6Bz0QO^7z#qug@s!)PfR<{%jJSi8ONzzoZ zeRJzdOG!3K+!)`&%Ic-VaU`bx8gx2_4;)$`zrfdLZnyOSKF_)Ut_=4 zew}@d{d(XT;91}~;CbK$;5EQ&fsff{UuR!$zrlW^{U-a(_6_!1fR6>fAMpKww*j95 z{BYo>0AEB#!74kSNlaOd9LoogOv;l2uOs=Bgm5raKVRUU8e~y}(t#UNCiZ_p6^U`w zC>LdQPBR=&MyXP&Q39g6KnKQF)}oGALt@*?*Fa^Mj1wp&-&Utgl7~`_83lJDK;i0! zB*8^;k?quR-fF)Cl_L8#`*!;d`%d8FfR6`00r(!9n4$K&?7NtuWXlyk5%``Y9Tvwg zUI|Odyqvj|XnwMzA%-|30{thK5ve9sU}PL)SnUh0Ohy(Nhip@75h{6r%~MJEU7A2up+;%mMlRg zGDT6+$kh4CrOA%_-xCLOH_I1l=N3+^9iBDWm4dO~mNszw-6<_UTQx}_z9!Y*T;b$` zLXWGZoID=|$dMJLEty`0-QY=;grB$LNkW_L2knRKFW3*;Uj%*t@JYZUqYVOHx7q$O z$^5dvYJUxQy`1sIn}D~<+=qmorRL!gDw~M7sb~)^@+ZIv3Y+CuAUl?kw8D}?tpO|O zqGV158D}h~!E&nbBW)09_CqhaC)Kn%`!V~wgd5)h-q2uw4|t=T8%N5Lph8WC+&}fb zKeB(^CcI|<%#OL_>eF8WZw?$8WdFwg9XeS_6mN8c{d?dofiSWCNBhrsD}<@vB7cx! z>3IPOv5GF|MfRi%JT9k{Y)?vaCSRn+TCxd>%|B$l3trh&{l0;6ouZY}I1&6vkeIC@$Fog==i0!BQnqFOvA0S_Nf1mZB?(qw`e>lC{{dp1 z67DKVLqVPD5M%w+B_@cy5zE9LVxrhn>;-%(@M*xO13!3^*hlOu_7hPZI1Bi5fFBBc z*1wKrYQGGk35i@Z0)KXcXa;@=VUbP&3(eY!wjgv`%-ZcNm)K{Z-ej{YR_$wwRT~$d z&_gw7Nh&tc3KjDvp|)~?uOhe1S6-snj50%`MpP{aCltvd;~YjWe2Ub_tgEf9#AgWP zw@AjC`Y0`h7IIj9L~~ERSMOHV@W%Sk=Dz*<59r8jMdLZ6y1Hm-WB;TUyR|1jNVl;* z93L_mX9pr&a=9i$|0Jy6tZT5;N7jccCPDkY6eDS*owO8M2QAf1BqJw-gn!K1-;+mGzSoHbJ&P))DyTYYIdwDQ>WkFNXe+-) z9iiT!-l0CHzCfG#d+HCwR-V?ryz-M$x!l-kJ$@VA2)RXI6nfcmn?Wvvr=PK7m zRF3`(*Pc&}YK&qUqoV`LQ6tOghAo~Wzp`%F%A@j^jZrauq#>h5PntTTq_k?Oe>_w_ zgP{Ble4eik#$fSmG8iaHvKz!9z~`KFFfwp3FkR_n3TQ6!{;0O2VKhnqd^EO2@G%L! z`V1IE)KIRS8rsOPYMhfKQWceBGE`A@fv=jlot4yi)J@U##dS+J{WI*n@ns)jL$UFV zOdQrY##d5SG_I_8fv=kAaQ+(U<{pVXPoc(xL~G?57$POQ``E81=HH5sC2@_+z|K0- ztkWC1TOYpI9+j>xZZz8(E!F^CwJ6`H~}AEfut z`{_dpX$BN)|LSFxVCffBg3T4jpzb3M7e|PB;z)6nI2!m7z~=!!68KTThyYU`-+miFjXDZRCWO zGQ1`WK-4c1vonVW6jFbA#XKY!sMd)g=?YX|GRrHA7u2-VH5CDc^%XB54s*YVmgT4V ziZjI`g8j3^*;3txInnYfRIH2SXqtM4Z9KX$m zx(;5?s;jQXHyB-1S5Z8_KtY5FzIi^pSgcsPE-W>oXpt|k0u4W0b+S~gC2QOyxmL`{ zEX|sa$%FWeJQ7NbU%scR)yk-#x-G+~?5h*YskarSw?1o{dv0p_+_coWiW^TnPj=&> zRozC{P4%|bbj3RHd@>Y^#KqzgaVhXqfu9Eabl_)f8uXfYp?J|C+#nt$`Apzv;g^41 z4eAEGTqdq067_Q6XE%sf0AF}giMkpk>NO{qsB`jT`urY{s1!|wP@z;96;2!6VCwtK+(bMRe zbP?^N%jj~tlCGu~(dX0k^d4o8Yre2BOwOL*zFpqMeiO_o;OoTuG|T$v-8K@Em+^k__U_R5F#)y-q28Nu!cBQ|Z)T?8{ly*`4%dw%QYd1?4sE zeojW9m{(TXOr1jwrG|BXMCUI4M(IN)mD5ONQRuesaI#zbz_ek_)NpD9Hq#B7Rcaqe zahu3|p*w8!6eV;~GjU8&Sw%Ct$MUIh-Kj|?B5K*ETBXVfWY7wzi8yGJsL7plyQ2y0 z=-TwaseHInV=C$$(@$jxe^GiglbYQmzvQgR6L5n;U$r*0nVLftq3^G|JVGt{x>2dD zgeq;MeAK*7Uo1|g2a=XhUUoilLutdCsWR$Z?0vUqrd;jx!f62#Z>B2IS9xA{Dp4k7 z?&80dUe{2w8!?bs*GaEus(sGF1J9e$7rLZ-ttgeBPsON2biwrein*0V)#NnCX6hp9 zVrp6Ud%Ntzvy=*fh|lHJC7twkdOj|A$QYN04xwi1QtGl(>FY`&pst`W9l1kxnvz>Y zB121?G1|KtbYTYT&-_IwM`fs2%Y{D?~O~_t1 zck&XgWddS=I=7flQd>zp^-;~#t<-JZdpo7kjZ}=nL8F?{Mc#BOk8URXvW42(jlMQh z+o>JsfbTX_&Ryb{Id@WApntolyU~H)?K&2HeoT4C`>3Q%XvW-+1N%THot>@@<)pk; zUz;%#;Nk9dTWRSL>aj-59N61QE9kOT+ZpStU5xHfZA3Hm1ho$htW%)Jo=Rg+k=J?} zgBdRBKqn2hgRFKxo2loh=dtN-jHuG$A&T2fy+9qt7GI<=;j2SNYu8A-pUvnfYCe@V zUnTO5p_^ncl&jNr0<7!zX5c%0N_~cnbbBtoAdP&9Znn-FiB*Y>n539-hEd;U>Kn{u`K~+7 zsL~HlBqHkd57bYM)N$&^?!S^2b;Vz(U$M1r(6-XZZ)ARcr~c@qksw<7i~9Q%s;6lb zc610G+Uc0JZvg$55#1Xtx&L$&l_N_lIvQDBUeD}XoaA>XG}A055b>un^e&}V4FV5( zQE?PIWVqI#NynjYrdw?&RrjEKHPVT6&rYkBbJfnrsHQf$8C^bovGVTDCf%PZ-Hd+U zB+7-p-$9);fmvI@WQr~s^`eYzEd)GU{;hbY(P!68>oFhe6kgcm$2;0QaU%MMnrSO- zqwU?FltrH?z=X~(S0ko@;TqLWCZ%QM*k;;8d+FrvjGW4KgO&M7r8YETs#$s`t+dhs z0)m7-i$1%1Z7EHhplQD0O6`X-DVKxj56q=@FfDwjFb|`#DJo zcwkQ5D0+1FyD)c2rqYG6)a*@kK0OY*Fus!xwAP+le{ZG>=!w{9w+VYPYO(YbdTKY? zX{M*sGft)MS!lP>v*|*7k2#&x-@&Z6Vi+QBP}QyR6GSsTmoBDDPGv+<6-0?o&qF%} zlN;xEDlI#L%Vzpq4C{2OIi;0_q?HOXZ=JktGhIcWcPcfaMbt#s(siBI*jmG*7t>4V zrKd7F1xmj!AS8bweG$&n#q_dH`rfLgR$nK|wipfc^6s^)G`NDGz@_wMoix><9Brmo z(pO+3-KOkS)MJ}5D7PBl>S`LjmmSKs4x4I4f$c>0EcrL_qLU~~Ge-Q@oXUHzMKgn5 zN8>uh4m;CMj5O0X(l^mJpUQ;JP{#KbqE5>W6Z+N}n7*uT?a_=ejg53ecg9c=-pk(I zsMOem)-%0{-i(8}rIX%w#6lfiYo@o++q?H#O4~aXKPA&l--*$fUELp#MIWQDiLn1Y zL=fFe--o^5-D&Sn3A>x=2QV)5Q1|;XcS(uTmpxR@X8IBOQS8fJ`mxi~8`RL+1pu4r zC+L0M>z~rC{i<;~tC@b9eg+@y2BXPD5_0=zS2ohm(T5u8=jnqT#Oml5=)=L$x(50s zrRA4pZ!W6kz0j?nLgi2e7*-!nkESOh+7zP$y#fW>mBW?L4QU69ugM9 zhiF4gAe!4!JaBZOE-5TS9h*><&2)@_NX-A)kdD4`o98hZ;i% zhYkzP3!NFdAhb4gS?K!E&7r$P9|?Ub^hoF@q2Gr78v18gd{|Q0pfFq5IbmbMCWjS< zm4=mv)rGALyCH02*!Hm9VF$zB4Lct8S9oN2?{G`FJN&Hh%<#PMQQ;HAOT!n1FAHB8 zzB+tU_@3}b!=Da68vbeccj3Q8&=E{TzX*Foa>O|iSrOACN+YTwE{RwZu_0np#IA^k zA`V8p8S!DnR}tSwMn%R&_KkEzo)bAda&%;I2T79?(3ZY1SOmysP<4^ShSO#%cR% z2Wr!_qqGyXrP@W>W!lTM*JvBH_h|QM_iGPpKi2*j6B-j86B}cQ@x}~^$&Ja6nHN(X zb8*b&F*nC-kGVJI!I;A_Z^nEW^K)!?tPq@~4B#@-(LK5`%~;+ap7@&;|y_Wal_-r#Z8H;h+7)BJZ@dwrno!f9*El)cQo$9xNqW)$Ndqn ziSHk8inqsS#ZQedim#2oB>t-S8{+SZ-yeT0{>%6u6Cx9OBn(K*@7Jz(bUOF^bgYzn<#WZQ>en9WEvouNT(>KNtAoMsYnZhT=== z<%1-9omYo@RgS|oObc;ET{T%-S4$4U@m0^7C+9NZ#tC@6LJcSayYyrklyiahjiRM(nw7Rjl);vVslc72okMLN(ZK1%X(+jKl|v)%Q;3n{fe zE-+3w#Zk zp@C#`N%SRPY`@x9l7%VVrRc^EL{IXv(W!$w6N!i9*n0po)H+`hn@OE71HY(&O2xG> zSY;ogjMb1l34gjQQOuMSI(6?L@rd{)p~s`*8^A9CerY4g_a%wGq=JM%1*366fv-f# ziNJiesS^Ts{B94jz$TFKuXgHv@oU_IUi?7(Q2a>zSo}o%RQyc*T>L`(Qv3?|3xK~6 z_=|wQ82Dwt*8>m0F9-e-;8y^D=}z$*N)o>lzZZWHkBdKwKZ!q!zlgsAe;MwG$YX?l zCGZ%bzY^k~hxnHu{%wdq2Jt6IzmwFwhL+_V1-L%1Hc#Ex1lL|<`fxQXZUnXvR}7Zb zRFcGGUm8)=j`G3@v*OrmRaHJtzv`E%aj+W2E z!f|ZZ4>ci0SEZCwZ_CRBOWH07Ks8ZG6!6ffb*jjMoP4gA%>UjzKL zz+bmTN|bs^z3{V72n+lg;ID`Hd&rmg=Lo^I8CL%Wx5{EGf8I)*GEgJ%jgdF-B4+5! z@(({wpUY#LK@wO-A=Ak#LHZ$;)|HnKS{;WgyC(R~!>nj|lU?E@)nY<}yxW&#l&mO5 zC6i>9EWo2=UI+a8Cdn368dVBBIlq(~VTyzmONJ(+#@_*d&Z$3z2rU_zRfS6w( zb`ZplhS)lYy#r#8KpYKmHi(-Hamyj@PKbL0;=>`{1@W^W{)&3bQE84;B+ZqIkvK{u zpEOS@mF7!j(z((C{I*a+1nH%2a@Z!=gfjx|Ye**YTz;6NmCgAtUKO2GH{JK;nohMb} zOV&uWQXQQlEtZy0QzYC&OWS_yq1i2I$7Hu76aoS9I02XUVw$f{xsFdR#CUy6ak9RT z2&(*fYMm|jfZu>Sl=8O$-#~!$=D1~lEC0PBZ!+0Sx=6a1!u4gi?(EijWZ~gtWdGTI zplw#($iOHqmoTE+(WZrs(h7ox9o<40moAeomsU=%!eLNW@dCdQ_}dG$`Tt;>QZ(5+ z-N#w!9xJi<-VYUyg+II7hp;OEoCl|2x-`Yk9s^!I5lY&JyGv`swGreG z!k&V#r{~(?Xr*-1laA9~ZSJx8CxW21N zdRsasy#qX|fO~*{q)B>DdOu_s@Q(t&_l$2_Eq#WuE3&vV1m4eKCl!`R;C;p zs-VfCb;LMueKlHA&jEiBN!XF#=s{^5iR{OYUejA(bCL|Gz#kwxEAY>DFhGvJj(%t+ z;{dgYdj+iIN5>VFRW~~NlY#28jM{;ukjovtfPWs3d*+{Q6%$bJ8%PI%Kcw`h6Hlif z(;Zd?(+~SGJ@=ns`lLKZ8%S>jM-G<)M=up>Pg~`(X6^7gh9YV>k{v0IR7aX4-7(m4 zmg8*45XU*dHv|6)@UH@oYfE1T{s{0#fqw(|H-Ud^hhvz68jft`IAq5Nf*NnjmMOvw zo;zm6WdZo@zmvyWA>rvd4%smoVZ(uXMwXVm+^e|XwJ!?D0oK}4YFScnJi@E@QE)TN<1%;a_k8jf1W z5(EuLonw(>G4LM&|1t2NG&z&lxf#XKUO^%yE=nec|AfOTQH4*$mAK?E0{_i#>lH(S~t+L?XNCf|H zz<;X>{%`)d;NL_QY<6sRY;kOLY;&N_`5o{-0RJQKKLh`33k2LjNkqbaPn<>1qV?4- zUhY4V#g7;FL_SUmAIBv|a_K-?O1r02@%?~O{wJlpnz*jseI(*nQrj;O(pRo6C<{z2 z_=JK2C%T0KPb(J{6p);@v`G>f>X_oR~)Z8UUR(eIN~_!c*F6g<1G+q5JEr* z1tAQCa1bIuhy)=DglG_$9gbsuoO<7nQy(Kv35o}GD+s)bQ$o-G%$w7HGMwW$!KoiX z;8dLYg`5m`AmX>E1BUYJI;Pia{gY3=p2AZ zEhHlD7#ayu|JoT+JB?0@j8slDB9(yYik&{unJ`DMPCKC$gknyYV=Zna@0AufQ>anS zG!O>LC}skopNwJ|^}RqawgEBcVCPu`#GL0KhzWWS2KYft=>LyF%$bSSi!;la?aToo z34}o)=mOB?bji>q4D>^n*6;5^&sQ7NvYKW1z&(j&qs9*^RCFC&}O; z82sQtqKW^|Eg0;7Q%?*E^zR=EVdo4d9(1?EInz1IIonz2oZ~EV&UF?$OPoFs%ph1m zu!3L%!48550#1el1Sbft9nMlk2s;-jE+%Is5yEc2u^@Q;E+%2?xYTnz%wnY<&(=@G$e zoa>1QzTUakxef$m^>h#hH#u)`-bh67Ss_H?$=OO0{&cn_ZLC6JR1PCKR7}X+Z_b7sP zxGXAXlSFY6U2P*|okwILE95CcR?a35NZO9%uk$^nQbqo%8(aA0FjYe2aD7j|7*>u) zJ4H{t^9v_#IjMyu8{Nd&f4y%+;kCJaoWKTHs26h;cI9+}i7kW7xT&SAP^vhOP91?ZJ zZ-Z_ie?+-udMcj*;p*z`>W5tH>f^#l@N5tY8(sZf13;Jq!o1U_-@5cJGYVIi!DV!z z?o7z zQ-X`uKCw`GB|Y!g%d-!^_0oH*@xWuhe(y?m;m$j#-@48s!WA=@QwBXj^jm#r`mHO| zm4^uut}Iu!E60`V8ty`AR0hJiAS?i(9E61+RLIA_yGFalgfL{c%bw`p6e>YD4^MJa zcDz&$jPet1jWoTo5|`&G`*Q{^l57Ve#xh9|2J=9A2k!VCg;_-vi*SEjlJBBD`SI^v z9r2El>h_hB^*q&OB|bI5$Tih914oJ(>6%WCe;2Awdi=Yq$W@GcaJZ17svDT85SmoK zYi0=^8;7|vc&1L2~23Iuc&B5WKn_f}mJ^n}1capl zoN-;IK*ISl&Zv;kK6Fn_ld%EwX5`3yVoNl432qnald6<1EJ!K%8sDdr7O|H$ZEv~JuZLaMg;HX>*!sQ@b0RpOiSGA1L9kN4BSfM)L z60$H`sn(aX2orUJFxhpFGM;iG82a{NS`}8dK=329>j9`GKGt&RbSi# z1AWA4_Y*|#BX*PG7<4_ZRIo~}p!H&+fDRxRXlre`o>i=^tNl}X(LcAgg1mJ8-LbIa zj-a=0eWlf)DM?PQ7hG?k+Tc3udeQZg>t$E7>lN3luGd_zyNp{2yQ;9*i351(>y53aO2G={0*{=5@r=!~NAyFGPsA|Kl5RwN1I$Q=5sde9f zibF9b7Y3s8D7`R^_y3^c@B@)T$3eieu@r9n85IZfb(BQ@fPEPWntZgV4S(Wpe5f}3 z<@y_h+d#Oz(M`KUK-dUE<7o@vxFg*RHsX%LsK3yFQGfGRjQX=jI*8e2fvdd3wEcRxzw?jNi@M5lfG!LSQ+_O93*oql5Am%C8W za1X?ygMy15GTnFK&3BC&d*6|vOSj(kr!$~vxD9SQstsPG%_Pk}GP%E)eb^N`stMeg@Qr&J_bpy^~=npgD{ytEj+KtZF=l z#kbh6V7bq7pChXc?jf?;aQ8{o26whQ7u5zgI@Ip%N^NkDa*vhO2KN}EHta^V!Mqh! zH>AQ{v(=nH^=!h9VQ5;hve%qBIPcLt*|F9=)jdsG;GRt769*%P-TndrLG&RRN*}2o z*xteDE_BanaWFm(0y^$wC?yU?nR(sw&|T;*bb}fkv(4l;Z+b`YjQv4ew+Z+>mVFC^FZ|sqR)X~^x1xV+wt)?jNZLx)w1vb z_Z~V%fa-ZHdN8Z2xQIY|au?8k z#QhF|wxjMh+;6(ya=-092Etn)ybS_=c?X1dL3mGrw)crW?Ec6PZSTwGFbML&Sf?G@ zx&o)J?A?>w(kirl?fy=Iwr^!<`{3lz_Ots}0&Ty5@KKl0_9vc5L@Z+W-vrt|L1;5B zBG8r`1Z_b!peMqy))VE4mKJzeY8(MB%;ZDh`VNH82ykhbdR=?q@@PET7U22@gwNXp zm!}5;mnYHF)6)xtFF^PTgs%g@<%v*?t1tc5S#Q5nxvY)-@fA&BbY9TcqcNS<_za(NscJa*FK_INyAPqHV)lj^}S{~m-NKtQ$qM-YAj z;b#zV&VL2r1PH(F@C;U9%5#nq__kosK(sXzTuE=|<`K7=~+o>6rxrGSc6To@KhsCc`7|sp7THx3Ysv`gg1F=Jhg~Znh4ND zo^hP=TtI0&7Y2jRm52Ak9}UAzTfVt(>-kBOXCqE|mSNHQ;G%DQak*HKKBjQ}lI(f; z347NEaLRLu=Q3GFdM-s7sfq4l#BgL?LR`2S!bx*CP(HJ)oxh_0qaqY%|- zh!EBE1Pvz(QB8fHAR)Tmb3;IgYI=Z%4-%rcV#b^2HqY&zjh+TiBWMKBXh9PTnt0G8 zw20HyvN+Xf{NgmeWh2K{&LG9F<=G+I44N3lW@xqNqhF?ab}0qolmhC`q5+B9QRJ(` z%mdG(vK-bV`sMIH%oQX4E*x?He5e@*4#nG7<7j!+R$p7awO{n^^Spp&g6B!ke$P{$ zr#;Vj4tSpRJm-1dbI@}LG`&F68#H}D(-$=TK+_*I13;4mnt`Ah1RC8=&tbp(ZH{=~ z^C~eDJV#IhYvglr(CMWyVzL)#T(X^@Is1Q~6#joIbmsYl2y9&bXix?A7k)c|dmcSt zvYilmq?HHE^S$RsBCvn(90!dFH0DOnPoAGaV*!or^a)b!)2Wqdw z>qbgpMtWVuOwgpC)J*WEc?YAJ;7te3SzVb4-l5)183Mf-1OkV2L4!dE=N;i#>mBJG zB`xrd@s7n%k!HS(aAQF;R7SWm(2Q;$EAo!_P9PBH*ocg$83`Ipy>A;U@=nEAk$0MR zx_5?mrgxTiHfSgN~8t@oUH;OMCOyoW_g<=4(~h# z8ZntfPRQ;wVB}q(6wLJ({2vC40&pqU+BQh!y-)$hQGQ@t{?84R|51>r^=P$ZcY809 zv%5883bp@NbWC1N5ku&gb7KRKVzeQ@BLxen9Kv4-n{9iSAN*|3PIx|SoCOc(R1e;B zV;y%LUwii*8-}2zrJ~YX-ggx2I7YDJ|6}hw;G-z||G(1vZKH@FA|O4XUGM#9f*>e0 zh7cg6l0p#>zVt3ln$i+#=pE^xh@un`0YOAXnt&iGBDVi$ZtoJp5gzpk=K23#{QSN1 zK-k-x`OfUTcV=g1*~FLJBKFXR8FRH$qEr2k_iLqM(+5N7qm(8Wp_zWsziQOg)!|T$x`z5Wbxn0Gb!~MW zbzOBmb$vDNUNQdgA=OY)5vhieYB;GzWU3n|s!=x)$_T0gCDl5nnvp@( zjHbfXsc;RZnyHUfllQaH)gGuujeEvX0oACRK{Y~kE=;IiatIYJkISuadA5EvI8dj4 zLH#0{G<6#_ZX3psYHYf?ofS%Qjbx%@FB-JERy`G_tQTJx1!5z<(eDC+E`*13Ca;QFznMUp`@u8#o(%7de ztex>KTe_-F!=Zgc51lzLBC1zsZ_Lsv1ytpC?roiA8ubA6AirtU1DR>2JtShGrn%>W z#@c$krY$k9Z?ylHwNhA<{Q%vlM}$vTk5Z2gi&c+Mk7K&QeoD~IGE&X->t-LRupdxP z-KZz3CuQqq5vgX~uN(DruI*Cw8|oSAnd({U+3Gp!H%T>{RQNfURP#x-kW}fU%E)q# zdY5GDO$up5uZ?EK^Q3FL$*!A7KRYBeqB?OGiJc@vt{teOvuA zsWy{pOS<|O^<7e-@3V{PC{GqgssGdzgj_V7<_S#!QoT*8ZKT?sp(&&(%;d6zRQbP| zj;0i+(v%K0#?g5(QLckt$JF$*@l?p-fLt^@4i!QVjZ5x&Ir3@GlwtZEB`RFFbUjNh z8d+1`uVYO)ren65PO*lp<2NWb9cwCU{3}}9X{spfu3tCTNrg>ya_UCYK+`Z=H%Cad|9;(QwCLSvbQ-85DnSOov?r@}7;O|&KnLeTWk^wjjy z#AteJVl{D^cuj%^o!R50`jk{BNOh7_r%3e~sZNvX45>aR)!9rdlyBs9%|SSs)k>F+u&_cxy7Z;BkGyfkE(f&S!6Q~ z-4c3eDWO82n5mutub&u@rtYkFW?N*N26O%}-%7KCIpNwvA_gafv?ifWco$B1PjdiH zcvo`}PT;Hgo$x!UFpX(1`>P7uzuf19Lz=_cPWXjX*bgV?!xhbO=7di*Cp0HDr!=2w z&=P!4svk)8BdKna3bz^A+vaG_Doy<@rKv~fDY#VTKYJnQgNup}e)<=D@U!9r>@4IT z*h+r1K6qd#?oq-YiW2ZzvwTU2-wN6%w52h}L0dpuP+Le_SX)F}R9j42Tw6k0Qd^2t zxWo99c#ildh%Z2VLE;M$Uzo5JBwv*HVk@*|6g6nYB424`Hpf9*9&+G|2jsw)WOE$& za{f6EeAWMZe)#`tj)V3&s6<_0 z{%@G0eSuSH+l2aIoTkl&Nl$pmjsV3vcnqqdW_v$l)2t2To8^2Apl{z>9168{wOmHe|Dv{5Cj+UVdqAHFgs zI1pdu5v}vdeU`$1p6>jY*7;}?wU~~GSq|DhY?cH6^naY?pzW`H6|)?)1Bid-VY3{x zL$t&Ea@G>$%s=~(I+%;)Lj0^98$Mk-UOOQyRy&Dn!~Beg_kR%Ika(<*g`Zmtt$Dwm zwNtgzvh>V{6ORW;IrXfa4Lxh;Xy4SnrJbvtr=3qcuISptqn)ise0}1>vbt>AbpHw- zzE*GrkBBX)u~7Ce%UQd^FK52)qnEQ*nfb>z2*^3<(aQM&fly}sY4>VBLO)5nPy3Gc zUG0ADd)foq_q88r4{EXXeIw%04mKfPO*~pbm`+E$o_GWC#!T&@fDAt_>Jq9$g`YAN znu02{uvr6mpsq=~HK5y%XPIt}g7t~Odt~d@Y5qfCl?JC0$D_bmB`Ch#P z&JUJ$%2JiCw2t@7U8iDl_n~2}whD4D(JME(>&oe#^f$%23alw^_K;8D6&s-!vi}hd zUegk2=4vIU#YLw);1Q0lYWQ?rHC^?vSY1_JP1ZiA`P=7C#6RzEpVNr%aDM}>tD~!% z-9W!Ye5?B#XkA0hzt%O2S`*)f_!o(9M?BlrN|{rw)BC$l{0qUZQ-#1@ zn{A?dvRAYu$0YR3F|4MuD2;jBU}OIGb{!3TZFtVzMuWf2xwU9u`ypK`e}9R8InX5c z`)5t^U*1DB*8pU9nsn{`ohH6x1fPGY@%Nl`9dzB{30+5BCtYV<7hP9fgzgnxq^_GT ziulgNcOkwj@whE}h4@I~yAhAycPBnNQx~mxLKmYf%+bX&PxJ_SqE}#H4*!2}H>Lcy zgl-@#p&LYe&wwR#LtqJUO0g0QDm)SoSCpSwk63i0bYsyT=|=0u5FbN)?{wWb-FV_- ziSLtVn$S(wO@}6QQ*={x(}<5FKA!l54BZ>L8B7z2#3$vyCg!5;pBLKpb7ALy9JJJ1 z?~T~bzu!7C@>8aXg*Y@l^w4f)_dLDiYOAfw)+Y4Y|Mj-Fvo*0;w~PgO2^NI%$yg97 zvb`P(kI#KUsBX1xouY}gOcQKFACaxh$7e!U=I7eDhTOI5w!#YAblYKtow{Aj3b_Bq zUHb^){rmjzxZ%d;H91GsbbEFCvaK+bc+51*dE2ggpIPAp-9g=lx{q{+h)0KHAn}8V ze~tJd*;Y8JH1gPtR@qv*Y;Y7Q&^YE)!l%mZ`Jlkl?n52??cXuN zMa2l%=f^*S_79im`$>0O z_p|Pf?ibx%;ztrciulpQqxBd|{5ay#c1$3CBJqISM(xmpqGfB9I$~NE07nJe68dV1{F+2cR~4?WdnU>J$tgN ze_CIK_^HHCOV?M`KTG^{;%DU9h?u^nz7A{K>g#K>o8~vzXvB0jA~rCjZ41n_)i=;% zpe{q-P~S+8F6vC;XAwU;L$B6rm_N{ry_xU+(3?4x-V!Q>&drLi7#-$mGkWRh8y#!? zHU$3A+i|EP^w3|XB*=C5*dwOBey~!?X#3?Xf9TzMj0oc4ir&j?F!v!5V;e%}Y-f~4 zHG-cXmA#Evt!TEHm?1SL6s^ilfm`e=O*;xmX}Og!45<-}(azaq<6`WU4jvnbe) zk?h^OV+vi$0|uG&3Cgk9pV0qaog7C7bfi!5uh-$11=s6jEvgB|@$c=z7C7w#SDWfb zC^}p9-*s@ZJyG>(Wf)1 zZ4XLqXRw3w{$r&*0;R2GN<;bV2r6wOd&pA)8{U*)^99&S19WljnJ%E;uHVIswnM*@ z_+7;BPS@|&?;#%lzc25MwqO4~`;zzA{rz6t-`B3kHhlR#_xpSOVf`^?v?KbX`j3f! zhxm7i-=CrXM1Pza?LFcT3=Iv942=y< z3~J&(C;lw)Ul4ze_%Dh7iukXIKTkZy@h@Z=w2DX!MnxnBD-+4ZphzwUMe@UAk>tHd z3@srN!}G*n3W&t;0z^{9%7rng__GiR`;pZ%GQ4bHdp8?87&;Pvh4^pN4V?`b2E9uB z^*r;4p_?I^wTkr(-C56wO`@vO8?9pTu#i?U&@(c`8WQ0V18%wv3B-R#{0-u7W*CwT zeV9kSC;nExd&JP6QyB(?%Av-%Wd}aEWIMI+^Nb(Mb{#Ym9x)8Up@TyYT~lNB?@w)Y zb(-QT+xgQ)Lov@enE#=M;eL-8hB1%)_>hQUbMS{X#}RzF2mf=3X$<4TryC|3CWXZs z#v7&>rjk&dnMNo<{2gW*{8cDQLh&5CWgDg&-te2IB&wHCnD}3UronqZ{To{v-h^ok zZyDwq<{9Q278n*1f0y{*h{vfp5}qKTV76%%DPv>52FAvobT<$7`m$a?n`1D|uw41T z@BRl>Ni^4H-T%oMak1WH@X%VmNB}*l^77iQ%~6Q^N@oN|I2DgwiCGAwfj~Pl7;# zNP%SUqTYyabacp z6}XPe5SKH4WWVvv@QVQt?9&Z*4Zo65frKa14Zj=Ez*HomQl4qdSkPDmUt%nT?vU^l zxz@c}P> z`|e7g^nF9!XU6^bL(H`cy$?WRM(l!Ze84W)HRgT0y~voR11Ha2^68W{W#7rtn6av{ zx?f|)YS5Ta4H|n!Wa94{B7W?{)bib;MO^oVnRW%?16S_ba!G&k3 z%IH$s`r5&^zMQ+cf3JhAcJ?8n3XE?VTl(!J)XPIV1x|gRiUQ6tc2%6y@W1N>{WIr0 zFgn@7F-9xGY5b2nL3x=he<#S;%a{Ut7-NjRjj_f!W4tlJm}pEg_Aw@tpe8{>0-T^D zK~I8#1S1J163ir6GL5NmVJhCCJ7D_oax5d#yKRoNWgoivG&{*9hVxZyj!P5 z3Qfdy1zq)5qI5bX(}5aT8vev7kuP zX~UPbtT-ZW+nj8D>@@oK?rCS-&GgZd>Ei;^N9Y`LbaNiu{)W2a0Nn9`@gUrBz<7wc z1JC{8j;>@NQfe# zI|ub~ySzHb&kX!^BqEm}-*HJ75fxvdSh` zW0)G6*cuyCBU57%;z)>3H>pjyA4nh}l^G*XmhhX5CM(*1lgVT@Sx87EA&G=O877;_ z&f0(6grwwq`)~4bDpS+YM!i|pW?`2*+LkQ8eX;!1XX~Y*{WrD1p)ErX-S9$(o|PnD zolVvIC9dR-%*$&3O|4CBS&&~~#!Q1Tiw%Y`3rx-3n5GV<&iF)ucBW3u82w-jtZl`j z|EUk?a6G8h4bg=uDtx*r+SDT~))Zxm!SfdZPu`)6F(ka|*F`!BqwatHVu~}xXFY!r zMvyQtsEgp6(@ZJQg(=mPX6kF|XX z371}hO6-w-a5os!A=6RT${jWxAz=myGt*5Un~sq%iv--~=27RvbkcO1HH`I5cyS8} zv(Ye?{}Byi(J~px?sA<oCf9 zp+?z~`RC03by}^=j3_u{XtApAGWmRuLvMv1T37E{eK@Jvv#U;Ybn6YFCRxwXwR{8KDpNQZe z-X@1=#r!6;GS@sWEY|#{c_GuvZNFANC*iPPE4N8F9io**=Ed1sIYq*e5Us3WT3Kmc zWnOJwV_s`sN5WAOaD(y*37?X1f`pUVTG?2vCwo->G27j!G~U}>#ofG3j+xR~-If15 z%4OcEh~@adCYHmBSTLUsy@CjS?7u0NhllANwS20m<;?$9`V_gGGM{I1`OJLUe8&8_ z`K1j8+6xwmI%r{wnu~fIz^!vr~ z9P`T$uto9FY&h$y-27sxZ)xE7izS@-<)?>y;y*XeA%?MN!>3#H7DHI9MQbs`Fk)3^ z7!g&#KSd0G6${^Q7>mtf&oYcykc6x$V!^>Mix-Bm_$*B=%`D9=Ei5fbxJ$xsB;eE> ziBFJNAj>e8)`}FericY6h}qfBmMJgB#7F1svsl_G59)tc9@MwBSt~L_LzJx*OR`@pVvz_w-xK9`i6zZ46fUv!we+*} zw+yhnY8hx5WEpIE%`$|^@FNi0QTX%fqjs3MUkQOLxmEhX81mXV4}EMwsk zQ4F|5l!Go2t2}l|-n+yy6E3mLB2fys#DWQ+fw@~401M3Bx_1D~l5SbdRFYv?L}FPI z@y8{Wr6iUo5nJcy(X$lGO3PZNl2w+~mNg_+An{2OD`r^MS=K`(;!`A6%72yM0lDP? z56E{_{kCGn4*S8?XCkUJG#>56RI(F??g~{&!!b2m)?MS>b zysN0>9jHWn8e%9j5h^M4a;_>lXgQ>)Bw}uI&e1Q+H%uZIEEg@8ESD`;EZ>q?gT$I7 z)*`VEiFHY=mo1U&ekX{}1t)Jk8%)0cnL*B5@rUXpD3aTLk%+bbt*(l-s3MZEe`yRX zr$`CYOxB|N>Gbcv`SXlTGm?5THad0`lPj@70o~+5*w4) zghVxo8WLd+9f^7p4I~;ft(6tESgR^yVAdK;Ey3-=L`z@{Onkgqm@-)^ETvasKYLng zuf*gOjFKx0Zk>2}U*Mmk@JCN#TzBl7ga;iV|J*M*GO0yOLUf9M$jjOoX0f7Vf}4d| zu@gGXQmiKfW?_R4{-3zem5t%77ONd?nAK`U8*e4imTq-eog~^x%)8yftUhZCsKwgU z+RTc!%RwT(!IfccX?>ol#Z6-V?-pjoZk5&t>{h9JdCg1p?C#TB-PV;gkKEBfE!GY= zv}34R^f#-N9P^ed?)Aphu4|2|saa~VcCo&~g4`94=|vwN)0aDi$Mi*Z=Kh%8+QS;- zSBte5Qw!TItlTNc2%iaECixfI<`BnNlftK4ldUOXvDPGOU*?!pe@CSwi7ow(NhR^+ z`yFE)V0|^)G3`mjq~e^8u@1$CFjle-vkte8u#P0L6^Sp9*p|c>No<#;7wZ`R1ADP` z@PU1zt-`YH@Tv6_Yq(BWPm-TEE#NfL>D^1Z8K{Rxt|9V&^IhIgwqvUtx= zy>i$ZlfK)`eDVtpy&HPy<{isdo<89?J7q@mpO!a0=gRiU?>0`c!=KC!DG!NQ1fOfu z8sY?7(eUZE;JFuae|0&6ke>R5opH|X`WHmhG zH-Se;*$%Ne6o-t6;PXFKewWzXwimEhzs+Ow+I+UAwq~~GwidRQw&!iFY^_NgMdD}@ z$B;Od#Bn5!CvgIa6G@yz;_D<%USVsa2*uXEgu(W5jdu%_v~^-inG#gWG%ARpjCoY@ z8SFPEF8{yhmH)3c>$mlWf^4xQP7Nr?mH-9S_^i}H29+#E1y3qJvm9hgv-L+~XX|V0 zN8)r6-$=I&u%Y#sLE>9^Huz;5V#9Ls4BJo}*@lrglf+ph&d#unu#IF!K~tFj8;#i} za4OrxP)&@;+>$=%`xf79jJ`V2G`{{i7{xXjhfWDSbkov~Reo6Ddt$wI*ycj3w`BKF zY}0Ks{SLOxU=C&*jn%k;{zl1MXTRCz+7@B6e%n0TeA@!sLR-2mgT(nHE+BCsiRmQb zuZ#Sf_1l(~u-cXfH|rM{v(5S;_$5P|Vx!}iSqHaua&%w3vpyxPV`5@Fdciq=*%m!y z*77?N(-OL)lUy`Pv0y#C z^695?esk-XgoNnsflmeQJ!~6n?48^tn%Oq7&HBY9|8cW^+YTFcB3fwMN#e4HZPssl z$M&Az>bCvN>X{EI19X6LY3oC!eh5-OVmlfZ+hDit6DIW&eyQ&u5gUZxDjwe$>^VL{kK3P6JdQ4>-{WbI#^d+qGPsZ0 zy`jmrx4oER@9hzMex=3lYB957X@?yP3p~ zNIaHj^0hnc9>~}3w7cvW3p_;PVG@sI*u8cilkZUyKhF2=oV^vNvbPR3>al$ZnrCX- z-WgT(?J~nI?Pt4u+S}sL7efzCDKk3hOkLaZHJwW@8)35T&g#zDU$S>(L4KJH4}OB- z!QwU9DxUqh4-eX3u}Aq;VeiIN@hMbMye4#w&x8&SKA^b`v4p*M_;h=mJw7bf-rJr8 zOGupG5*JB4#Vmopir?IC344k?HQN$jlZa_yIlF%LS78bJK>Hy3VEb$KA@-ppo+j~g z63>!&j>IoX{3^>5_Tfs~ek1&$Bj>=#SvpA@kKe%o-j|I}s1`x6!T4tKW~3-!Pyw!%HO`l zuAPCNjQuzJpNd5OU=sNg5|MARXH1PAAd$b&8iz>5Q6zl2qnM+3SgfOnqZBq0km@k0 zNIXde{8FhyQknZV5^$&-yk9D8zci^7Nd<#a32s8;z;5P?9pxPr98WqbI-Vk_5J^Qy zDn?Rql1gUz#PPI$3WHQQIEA5hNQ>DvI<+k}$Bs_8f9FZXD~@V@g-AvJD}^}f`4PfVEtDcX6;O&)IiM7&)?=mQy;2;JP>Q1)NtFUhaYREYr9LQikU<4cuwg;} z&n&4p;vCojGu;vINFeEHlB%RTk{o?VdWNLu@~mg#=wNUBQGvm{l^ za13+|f+D2qB-O}wML33YD#wV>c7NXTGoO?k-}I$PD^97`_PFx`6yX?+L&t<3y8p%2 zS6@3}KRUjJap&0%VrG^i9OE66m?G*sCSq7nstHAuVvAx6o)1w(Kq`*u4*x)6JI4%2 zMXLRfPeky4y+san%RIPcfny=uGS9Jyxuu=oEe4Y6`Q6fvBwdJGmO7SYyG27%{SddT zW^P&ISnF8lSnt?C5**Zkq(&q)CP|&`7Ui8YQh4yW(^DZ$XvniF$9Bag4gWivysOxx z$=|ifA;l)zydTT@k2bj{6!-Y!xZ)3eo{nYxt+Xh{IO+JB8RL}WGskJi8OP_2vyLwu z=Nw-;z9Pv;l8GcUNfwfZ~X<7iG&3zAx9I3=gdobfzKt@7O&&Zjt)vr?!C zzMS{IDrvCmn<;&UT%3CHv;J^~vkDGwv)tt|< zAXi66OnLzwv05*qBUWR9!>O#xkvay(w1q0 zoXUWf#9r=N`u#3h2e!Z~Gy`K$&W=j&rfaZwll2_LnV66o8I_un-M{#6hqj!`nj9%A z;EsPd7w$p#`}ZU^JV!RO|8`GwvhCqi7UM{G;+KD^@%zJ>=47jIoPC}Boc)~xoUb|u zItMuiJ704SA*m-xy-127sW(ZnB*l>wPZI7|6G=+SbOu)8I7b$BRoqvgq?4_}k@^Jv zk;2}rT=W|A$7_%Mk@x;^vSm2VStKO~{NZHFaEgmX?lABe#J`@C{mk}9x|6NLab`Fd zk(5eOTDo(I6XnyFq(OP-kCjfg4#&C5x!Spgq<$pzCuu;2bDfi|!;xMkX<+{Q1M6^{ z4_JqD;KZeC-;Qhf(%hQS7rT6OtpW1~*5NoGunuQ-?02VkUT#%v)}d1!2gT2QE88D? zoopSBb071^VECirRrsSQwzUkAKu{Y8oys~KCtHUj4S_Z)UWGRBnNV#!sM*bKVOe7n zDvwVgkCV<*kjH7~8P?bE&x@0$kc8=QkO#U(*j*~;zW>fIoaeIp8WTwx5tK)89LsqD zeGTVD=OyQ5=N0F-B#k6#G)ZGg8b{KEY;RomKZ1}(1-wzNb+5$K#8ydc*1`kSajSX~ z_7{-GP>BWpnbKKX@%umapQPaYRq0-g|C`+lS0SZ)F)5%3JhQPE4puVTw+pma(HkItVK+>_OAOTksNI*~tm%+DGxCRw&~i=`O1a4f8^hmgboRTy9rWNWkTBd0ptJq?43E(xMDkGgosa zfyE>($#)63+HfjY+t8lDr{PtN=A*8iQ$HEIclW+FMw=%H^oKC4;cL)*7> zV9!qzUgk?>Nx;?7)rAGQ6O+I)NI+z75-1#zy98WOt{(VAfp)HFCIL2k3M-oN;^c@2 zNFbLs^ra}=JLCPBAqH?Igim)Rx%z~~x>8)Jtov}%-+kCg5@trh0H;XWet-AD)z8&G z>+!hsHc8lyD`)q?^%}Ylt|6|WE^-ZX4R?(oX)Q_XN!m!#W|Fp$v^7fuuF=X3|GMA} ze}%03WhO2EGvOR_saz8jZ*0iD6XBYooD(zI*qbXO_(#}@aHT7Tz+5x`WU4`VXNbSp ziMTgJ_ef*8B8?ppd_E^h@yJTo7Uq#vuGOwJuC=apuJx`Bu8pouE>wtJB<&_?4@szT z`$&3+q<2Z$PttoN9msTT4R~aSvZ&v+hk4}vphpe{7xhb@KJHEAeQ&~rr8Em&M@af0 zD3W6kNs$@Y)e_JXY;Fqsk*$%>T%WTR?zHO+NgtB*QM&7_>kE<&k#vM^vajU{&-KE?j`W12^zg5r` zz%FEa*en`xO^SIuo=?uwUV>1gp3!yPtMfaX;g(>VB4_&q+en`jVut zNjgu`g)FPMYbcU98|Yk=54NRjs428};jW_yj@^9^@WO(p{3dJnN{qhq*_=7w+Ni5pIlM{7TYqB>kS@9_=2(eDMcKf9AU{+^=&g z_vBCsoVY#b=Vqz)?F$^Vz7K)aJPREa`3ZDXq+6_`awYeUihF@OLorM`3?mnWVWeBEqjDw0$ynx*OY;)yl1#W{ zrF#`zvc|m@Jro%`#QZ^WS(5SoM7X2@$ZWA1ItCEMLQ z+&kU7+`HX-NG?Wl36e{ZT!v&7$$Yj;-tjm5a`9lpUnwN<_uhglk2>7%D<3NPFryq& zjwu~H@gwY}xWDi_L>2=M$-~zT2cy9Txq^T8Yc}WK?(fZIcU9aM{34O%fBXWl2aT@< zlk#_yrP$=M`v+!|EADUISKZg#*WKT_Z@6!|zjxmvxg5#mNv=ThlO$Ip`6-eskzASN zr%A4o>HaZblRHXx#r+#>B4d#z`;X*jgWVOm{$riwy-qwOpc79?lB))E;wi(rD|gXd z0aTze?g!bAESY%9dMcpR@|5$SNUM=tJ>B!92ZdULNlgMMWEs$Rb9$D`&{9!;oI zmXEGc`}x)OVZ$y}uYWOd;VtOLqsO6!&_gRueW&fH70uQyzB^01wD_DBS^DvqJvP5g zJXR)?u!lqp>neknde+VTJ?$~x5BA`H4pEKA7e3w7%+ow9*3;7SJW~x`dIi9q6`{b;n1>#I=rzij7Xb=N?>9jHicxlK@$(OxEfe%%*a9px5GwRUD)L7aZdm zq&UVBaLlWZwx6QpGyK6J%C?JVxMCMu1fQ=7@_WTI$}6yd4(jw@U=lv@T zOESfDcr2DjAeLoJEXzr585GM(CYEUs%Ns>z&=YJ|+9!TvLt()k$UGZ7Y(ceWqh}Mz ztw?U2?%CqmO7aUNx6M1V?DY6wlvv-ho0+8z+Q}lBFiU}gxtirY&p~FE1D^LiACUYa z$?ZsPpW*q?^AR)4OC-OX|7Q6Fx;P%Hiv`O@-Yq(*>GTb|OaGcur&%p#mXkR2ROq1z z%j(*V3th*jwmy7z)854$vdwbF^MzuTv&<|V9}=+${=w~Um!!DJsOVnUy)HVrR_#!a zT!cq1d#=DES3TF5M@IWS5>IkhzemQ992?@18=jll9*H42BE%!NnMZ#1-0}S4x$F7W z^Bc*pklc;r?j-jhxhKiJvOV&r(&|SBTm6dnwUYM;G9U_XA;l(953`B4xN_d;;CUZm zkHuS2u}SZMP4aMGm!K){?HWATCiliETPfbEic;e8bhnv*m@2nE{ydG%93)2q>XvN#i-(L|f7r9#*H+GfTb9($NHZjX9-WR+tq5<=^ z@wO#-AjyN$z3sg1Nghn{kUaB>x0AOkYbEP@yD+c3hE}q2Q+TD=wA{Sn?e6UbuXv-q zJ-ld(hLTJq56kezczZLi3@3R+zI(;nhf{fzLuE1UHT#6j<1MC)E->ikbB9k3hF834 zIJ9r*p-sCqp1SN@)A8HCadzHZ=%_l&E8YR#L4L1z2QsgWdPv0Z5G?oRID%J21!lSi zwlxe9jCVx%bnhtd=&)Gt2=6%Wc#6st?+))y?=J6d?;h`7?>>@IbhAmuUB{awzeVy~ zlIM{;pX3E3FU<5}BQf@$_x(U?{}F5L(}S)3qO8__&EwYo5w!NFS!;iWPZE@WngCG(5wC**=_v=?`783U-Vugc`?aL(!E!_-;%tP`=}W_W+}{={1D6(q0B|CakVG{?V(HpjG-o9^4zdidtjPhFO>T5ew=DVx>~AbBUryB7HzKBv#+!|29tlJ}5| zr#A=KW@$d%)Qvl;7QZ@(5lI92glD8`(2DMJdJL)^CmPJyr?x^DN95 z2-r8Y_VGFu>O9GU=xgI^>wB>do*e8a`CXFVp;B!l`1X0JyRiOjE4m~Ex0-$b@5Kwu zzorhBRR>>ZPM2P%TAk`t%15P|ru(|o!BF#iRH{YxCU!Y;68vO0UlgZXuwZD@V_avh zi?4?dySSHy#Bx;Swpgzdo9^qyy^`BM;%0}{_vSGP-6NEb=B&K2zPLc;MepSZ$sgWR zc@Ha5O=eL=m*%7F%G+0|yodgN>bc@5D%Q)196_@Z%DpC^2J33uxG{- z8cvJbl(+E!dM7KDr`ks*$3!Ap{@FZiFU6ELk^S07#-*_>5i92W*TB`@HVU)!@miT2 z|H$IpHZeIBnMJh=KIKZ$amOx#CO#9vG14< zwcs+zS4f7SuabO?T^FKO;YNQ9Nx^lhdM7(~_gR zV=N#gF)o_LC$N^loxn2N9oJMUvQR&_qy4YJO2z$d&g1Lkc6{rmt{3rdIZj?Lw}V?o zr$%;4?6ODceZSC$(!2Gr%l4xDZ)acjKlpxr&~l&$M8}Lky%kR&o1t0MFriBWWY+8impV@VcU4^nQt!lQ{SNc!Dv!BJl zli*oU4>SY@U%c~UvTlO-Ho>t?4uB89ha9J_2@p568z5flrU0=~BQ|QpMvd60 z+k$ogbwb?>^agPt0U$nV#7B+zs1YA^e}EXM=K*}T8hKVDZ))UA{U^t1N`rFXN$?av z{m`I1H27}Ki=Y#T1o#e3JV*q60M4md54MB%0n)EI2ylMQr{F5M1@Il(Qa}X+AOn1# zwgRXFPzSXdpaTYA0?50z8R!6zM{Q4ld}@&fZ9niTKpAU?00P6oWPmhjr-K;)Wuq$z z$^afnpe!g4P-MF-gKx}x@ds!(IJL9#88(E5JO#Gfb;7{g3(|s_!1y~x*Ono zfO?@vTJ=b)9_iF0oqCjq{t!T{^A!1`dG3;3zl-j)OA**N@>GKspRahp`Z-34GuM z@G?LwjGY1Mu<;duyciJ+;{Y%XyajMg8+U`f;2p3Z;5&^dd*g=y`86H^AA?T->Vfej z_zWN&Mx?`d5nKXS0P=7A3H%Ix;W!i0WhxCsAcJzC0zjQKRROg?eGm>Bg2q4%P+v`U z-~?{a1|W_mO2zOa+LgX#qeRVM0tzOTbEiyqXRILZg)a?bV7M_x&p2Oq`MQ+-RXPq1NaHI3?gU< z+JS!HO@MOljL&u{1gZfWumcBZ1zrS5Zx@t7mo6XzL;|G0%TSO3)&k_K%NFo9K$^QC z&0Ub@E=Y41T$f#t)-GQIq^-+MfcSL9cXmZR=~@hw00NLeSx_E436PGiso)JT53B$< ze^;Ep>jwbm?)oYC0^rRUuDPzQtq#37IMIg-)mpSg0 zQXmYp0sR3!`^t838vM+02r(B~5EKSQ0S^$5$frPMPz4}gktnms8lWbq4Kx7xi8KQ% zZ~+hS0pu|fd5ateW&)%&5^0S@S|gFxNW?aB6<7n-feqkuj_XziAZFckzzqP`9H{#!-{OMsNb$<+$$80DQJPzP$S|Fdv`{yCXi`5ufgePj}>_JMz&T`RKkM z8~`ZW?jM3f;0QqMx_<@EgA3qWfHtE0ci<++MVAH*0Lm&F>5ayBMkBq^sE5%lK`ZbA zcm*IW(Mg~m7yt%>!C(X!1;zlBYxD$wI7eUNxE{rT0GaiIh|2?*YT>x?D@h(6NdK?7j0Lrk(H{c?; z46Xv?yT|tc<=W#mxC0RHo+#U%sJA^)r+N+o3&48-@#<9^)BgXdL5vC_L>RifVlwW+G__udV8T|t=7#La+#|1IS}M@)(ai#_s|9 z0It_~lu7&vaGv85(!pY|3?NPks{uZnfEXog0owrLlYq}ByaSNdgb%<+;0QPd(2gaX z0%yP%;46UopMWw?Ks`>l4sHU}uY}v+7w{YSlj9N#fWn{{C<)2{)VD+#AkK*uL1lnC zl2{Eq2Wo?Q0C7re1k^wWi~w~e5oMQ%*d=;FGk_Q-wgzoMd(Z)N1`(heKshJ&00~2%mXOjB$RK`QjiH&fwf=* zKzS#<4R(Ot0Og&8@=kgmdVT&>O^qB#;97f&pL<7y^cYkzfo!dG$eg^+9>{L3#C=0Z>ML76Zhx4`P{I z6CiEL8lVG4fHF)*Y?D!L$y>lSj!Uruq%q}rfO?hE7O>wR03QIvIt8&#Z4aVAG(dV& zk>1pA!O!3qfS9HtrfJAq8tPvf{yi-YB!WxeM{pY;{%JV2?`VLu_eI+K&H`_8T))Nu z@$2URsPp~2U?bQI-U0go%D+F-+#hM~k2Lp3n)@To{jY<&;5UGD3_#fqm<&*d2h0Zx z0qWYTPXUzSt93v<5DwVy*8#-lRmA4itsFP7HbCqKB6b5&wgXYN1CfS-N5L_09Gv91 zLHPGUZh*87LU|8Dx(00rNavt~;3IH^;|6yFh{fPOAO-XVh|6HaWiaA0_zpl^UPF1m zHWr|aUz-S!han=U0;+;);5o1WtO9EQ(mn)n8d?K10!;wYK2#5e1Ds>%R4^UPF$Bo6mjg0|F&sd~qY!WyHE&!C(SauBZJhcllFjp;9YQl<6fTy7K5c=Ily;KM)^;!4p5&aUU z7vT8GAA?T-Vl)}~pYjsu4tjuI0C}2%m`u3^egwAx+JLF=1AJ!cN$?r?oa3h9v(xa| zY543ke0CZ>JMA*~3H%K3xoN*~+;qf#dJMq7Pe;6_Blgo#KGSc2@4*iM-}6R)FcORg zV*vs>1NonU>taR?P!rSva{%%>19_dX0wAt4k=L1s=S;+NrW)utZdPF+0+honoM#rU zhgnG9ETnH1(l-m~n}zhv9s=-PvnK(R!R%=qH>W(nIp-jLb83OQU>(>65dS%d|D63C z_hutt1$N*B9`FG;0TACeQFq?Nb@7%F_&_tz0<;420Mh@~DzFBu=eW7Gfd(M`a}B@@ zjssj%bI*ed0C|{)yw0-#TqE-wzzwznq-ov(fHcheh~wttd*|bO=i__l<9p}hd*^=x z5cm0r`+US={vD26&OGmv=N4-y1 z0RbT1=`%nESPW2B>6sjtQ3D`e8BGB4n4t%Ma@?X)pbX%F1ZILoU122PP;2c06mLLyH?tVYuO0N}fqBHc@o?xl$9QpA5L;=dH}Um5{k0|>@aq+=<{Xc_Xf z4EbG#^ejsP69M9~Y&Licp!}C15zCN|WgEaIfHGXR9Ux!JkgsLP*RprOQSd1^1<90I55ZyZF*puRg45szxCKy#nYY0m@GJO(<5r*?R}=t8bHEK^ z0KRj@8i4q%z%{?J0?>jN0n)wl6%YlYK>|QLRwDf?2ZNztI2Z{KmzBuFN}O-yEHD== z02yEzKtfio1}M*!hrmtnJIAd;+EyWLtB|%;sAH>CKmZbW7SsTU=PJ~zRVILPTjc;v zK?~3dpbo72ujR4(2Pk?&8HW4HP)WfwX%eBbE+ARR-TZ^=<{SY8+Yd-;~6KfI2wWq-q za1Ef2tm6RUxvmH(4iMLMD6e(pKm||{I03$69j@th^TA568z2_z4uX^5TYz(}`w9Ha zaq9~KoNs+ePzK&pV1b3M+vzBbT+<^XwIk1|@1db<84&=GV2D6{oZ0N30481Ndv zwYz>eKpCzd4aR|q;B|m^Nf0-L~baEIeI;5#=U#v2g74Ji8!OTl~KJV3fP z+yJ-0j{tRfBjT~K7(n_rBK;c?myIHjL3vOe)C6@veSk9G*a)D$ZR`vp0lsS^(!Mbk zB!DD<^4f?zY#afQ-i=7>Mx=G)n*eogV>(z2kiLzZ!8_m-I0L=_Ux9DHC4iW3M4j7s z6Z`;fbKEARcN5aP3F+O0^ln0WHzB>7kpE4Uz|){As0L~PTrZoD)=h}#CVc0n55e~w zw;5%%xd~_sknYU`z#uRLApM&W_s!G58(=1w4N%uN&jZNE=2c)lKpAY_3U-1$0QuRx zA6(|RErkKnxaCQJv~8&Zo&~5ITk3&u&=52Roxvoq2H<>KaE>jA%a+psWw-?~*jfK_`Ivw>1tR-&^s$Tc?2O z0D0Xy2h0V?=hh6c1S|(D!Cvq#cn`b}4uV7A2>2L$0!{#=eJj$w^=FQIyBt7z-bNnZ z9tv>2xAD2RuW;Np)WK~vKo~$QwxLY6X@C{@Ky%O%v<7X!ivao976p0%)V*y9AO-XV z$j`QcU>4X8kj8CD-!`Og+c9twdtfYLw)J5UF9 zxB$+(qZvS6cOb7j+5+TrM+bno?T7%~KtJ#*7zADei06*sU=$bw#(|08b$~M6u^Jo# z-*enfeCJLr=mJp3ccOfE?gog(&I{l&xC*X=+u%=*+lBP+Li%?h{kw{TlAts|Omi1lvddv`hTB&Y;Xj=QS@ zq2qEM7^y2f*xqjbk{O=dfi>F=eB^-0#nFw#~G}E2(?Rw!kW^YR=B&c9=NwK{f6l`Y!-9SYuEyQWhuYm=EBzC{jmL*XP6rdJA!X8>?HOX z7R7lkVy9s;?$ZCRig~Qx$hA@n|?Bp=Vk!|-GE^vuxuJJcdf?!WP+}9rWwZ}a7q$U$t$xcq} zZci<|v1dNZ*nnB=F^fGXxWXgU+^gnZH?UXTz3T3@qrGWJPe$x&Z*lB?uey8dP@gYo zfU(ZmwR1ODbk z5QHZnA&Ge#J%s!A!n5!WImv@Q!VB;T4Uj!t_V5;XE4)3jhj*qQ1Ccpg-f(%ti4ib{Fm&2*1r;?j!g9w~%wcocmLfnsj6!GxoV( z_WiQ&x6l1~sZ1Npa{p2e@-PSv__qf>rWHe&!>{-^2YzEE_J3eIZtcJ>%=5rL_H&9T z&T|QKJ|K5Qh-AnXAzOrO5#EZ(j$9FPMHHh1vPHOyi28hi*+!UcL`!6j_=cYJq7UX9 zVZIUaMhxR8)?K8 z4=%(k4sOQI4*tb9B8bG>2kr3SSQk@gjNfy-RwDgW}4*FkVJM0^sGn72tr3heag2h^q~-aNXIi$QSg4ea+= zMa<%u--lzJ=t4L8FqGkp#CLg2566CB20vpa$L6DtW4{u{5oAAhiYWejOZH>3AB*7; z{{+EtnUBkRT;AjI9#4(?JD!0|JOGa$&Y-KBOd7kmpQo>e7IwnDLp`nDZHPJ|oi^Z=5loGv;#UpCE{O zizK+csGJl>&8Ui0;&arC`U3NaQZvfkMX4F3W>hbRF%$ho&Eh zs6&11=rKT;j$hsyXDJ2vxF6x+2ytT$!4~)9r-W64uUIkUP(Q zUU`p#e8Cu&q23iWt{me87r4z!)Qna$IwfgPH(I~Z`i<6aw0@)Y6#XF|4vPVA% zf~zTz=c*pB_D8*|{_g74Ah`Ah@9-{Wajg)ADNQBZ+co*G$$zajdbp;CYYk|P9WX3 zPt=T2Ge*BLhfz1?Bz^~C&fwY7yrzAV}f8D#+^?F^e z*Y$c`uh;9M&+Co&lIFC+w{^WQW_jJMUU#e4hcSXtjOGVqzb^ar-#CCgH}rVJE^erI z!{6Po-y44sMKm$o#J%14n-{zaf}0`Y@g|Azz1_@!+q;>K9OR-RwXma`vfq^bW;0q~ zUpLM6W>55Rb2zfz9E+?sCo`3w@SWXU!XLP;n+G|9ySi!CH_iIyIWBUAYurHIo4%1- z^4^m7Rs!U`^%mxSD;ef~D>Zt!RTOi+CC@E8zU97esdwAo-Of#A%>1?+yWNFv=z-ba z9>MpF;YY?Z5q;dA%R&~jj8&{bKesnv-nX9wL9C3ivc)FFZerz%%|uq*Mr=;xh&9vL zAlxF?#g=i zeY|udGDF~J#)YJ8MUcHJ>1&837F|UZ{B+v1oyL{&-<+zirn|z z*!^X!U=?P6e+OagW-ofUZ|3(;bDm2?!Ww}arR z%uiF0nsj6!2L*T^Jv`OJ)1rKceLgjlr@pnPHK|Jj8qoxOJe`G{Pwo5ZN>(G=(?5~z zsccWZ|I~dwJm|e;0~URXFm4+%sbEY{Y=egYCco* z*(KC{rtY&_#1hASUI)SRB;+D5cJ*AZ&p$w)&x=!vk1)6AdVXF7`+DAjR+#1Uc66W< zUFb%4?DKhVWPLsjyLo;Zz5JUMclED-`>${MU%UG^lDjOu-7l(=D7&n68<(rt}%c``-?Y{O#OWAP2XHka4t@%ktyIK?Gya+^EEp@-KGc^!m;_$1^ll9P(G zq~}8#(T+}Zp&Q@w9ewG~SjI7n`7C5H%UI1iHn5S+Tn$1YZ}@+c2!$$8la{omGky30 zHA8BK=Av#$-Oy5&vy$K0Mg*7nukLkjaff?6F5D^bl_ao6tkNo$O{m z2RXt~9tENJDanRh@#TvD9)&1QDP)LW4zr9eXMAtQ--3Ga)rfx$bBS*r@m~a?1j$h| zftm^Qn; zGqv!IBvLPt8i{7$h7&Eo3=)N*W+F8c={b>}6RDd>zlrplNWY2nn@CTIo&}-AZ}K)t zNr65SrzaEcFR@!lTng_du7h1A{sO%wZiYS++gIYRa2tugW+)@Dv&5qr%Qz-7nW_B5 zOzbrApU9f{c@TQbn{QR5J-*Sm?Dws3J8OLgTD@n~YnH?mnh}|X|%xo56 z4$1tkBwN9Hwy~34>}5X@9O5jOh{o=c-9|6T?&Fq|C#NVCkS%#NWJ@kra=DVbv*Zmi z*W?}O#Q@|n7nkgosW(qY^EMg6MOrggVc9g=7QXJzXzTFhQu@o1%!Zn`pf>%K(Wq=)~w8NBk zn9>eYCM5-_u*Z}|sDnOJy1|s2vHw)@adW9EVIQeF@-^L%Kb3n+H5~a<$)9QrzME8b znraqv`5$^nwG6vU^*j1Wb(japm^vQvrIs(XY^m)hwQQ+nOYQyCc`1fjrY?v3NL`s4 z)I#>u^=QB#ypcMRD6V53ss9Z^Y4npOCAm>E%?Ic`O?lKyV@GK|Ma?vyqh=a4)3imu zX-1*PG2cdMnjdXcEur*f4a}mLpnXAt4j;?kgh$Qu)lOY z=*4%~Rk{uALauajr8B>D$2rRdWJnjywIGyU&h*|)-wO58tC4;z=91n#(%X6ZKTtEh zn(6hMJ_2>qAH&_IKaKsQzey}ld5JzVyg@<|lZ0esr2yW|pw|p~&7ju|dd*N9eP(Dt zBfg|LJ?V{EX6T1+IKyCuF_Q0*JA>RA#4Ldu>5G|X8H8D9naC96&mw=8+2|pQ9U_Wv_>CCVOkz(}^zhpcj4UhwRxmv6n;0mHjxUxWHx1 zFMA9(f>4eWRKlEdsFy>H9OH1mIcBhkKT$J>nmHm+H;1}8^qNDjIsESAI8Q83dCBV_ zl=BVrnA5kFGYR&TGb?@@a#p~*IjiEgA?Ih*rY`!-*$BJJ=?-%Cq&Iz#FQ+@rIT&}H za|ELp!w<-wa~a{>2|~HNnX4#`8HhX1wHdi{UB)bOUB^ChJ>WSncol?l2k0TUTh8s4 zbEhFanb1e>cPLABWX~;oZugtpTeGsrUd{^O$KK zZ|2#^#UPYdpLugo5xMiavAmt=g8X^SKJQS5Gm`JoLtZn_JAC+4GrqJ~xtY1ZJLZH1g(iBl#vUiK$FS5BdJUw~|kucQaBB_1^V&?=Hq(-i;=f zI3Dmf?j?T$5+Q$n`SYhl5Bc?wKPUNc_xXM6`Q2mw;*_EcddS}&@8p*)znjQE8NWyQ zXW?e^n{ECT{LWwOVlVqSh}`*ojRH+*!#51a{tCFg0zb17H4CU& zU?=JpP`5w?hwz;jIEI}S(DQrxd{3Y6>GM5(zNgRk(vY4^WF-FiK3~w7FX@Bc-`mXjAoPBKTJQU}@AqaJ>yYhz{l5R-zqy2r@89Ncp70dk#`~{= zkpD?6R4^&Nfr55YFaxp{l(nF&1@j-&3K>TqTC*LFj{wl%O%+F@TLriGJ}jrXWXWvXG%h3&bpJr}M=Lu4x4loou8e1-ecAG0nz z1oJLD0&^*B-i3c)9Lq4z!txYxdqs+(UJ-v+WH#niMD`-)QN%ooT<0d{U&LIByySHd zD*6WTc@upUbq_@|;U0=+ClBwUpP~h+gMAg1v8ZfCN8(#8Dp%3TxW}S1n1vig&9dl| zAXF?p>J?L?n7I^lU&TH{=3-x?W-&F3>A9G?#nde}mLHjb-=|{pSb%*Ma~H)nu!(K# zU>AF^w_;a#%D>pvhavR&VM6Tc!=$7jHR*6C9~Pz<#VJW?%2EM&Kdj0p)W9x3tc~m+ z>it8v|6wGLf>3euD_)-F*hg`*C@y#LUs=j>*6|nH*@-z7-^YF;ID?xjei{2KZg<6F ziQ|6YKOu{}CCX6+xk|`Yq81Hk#FsR~eU%uES(P}8dL`5-8IJ@cBQu3iv!t3O^;=Ti zlIoV!YsuQwr9N%=ik{e4$>EG*4E9xW0&bz?T>i&G7UO11u3#0b*~7IURLX8j<-(jx znOUjMe1rO>dgCri4Pq$XDm9Tg%wqw+Vy>mkwbY-OWhrwkWsao|bDWcyX(|1ex`mr8 z{Wi%+NgCW}=}crLJ2I8dOMdLL^v6`DD&|t!yi1#RY2S2dvng%vrN6*UmzKNqG&bVR z(yxM0ncRFz2foK#%9uwP_grQzf3TIkgmZv{=%Gv`7lMoxP^~e(wer6V;h%H?;|zJCgLsJS6MSCTMRYJs##XgW%XQE-Lm>EtKYKv zEvw(MdMewQJ`7|q!_a5hF}RDe91NT;b1hSWx zy}az@WiLMw`OCYz^6sv@yDPtxjXeO>Xmy7eS~(V*KV*$Ve96At!lw z7xS)AiZYa=BC=MfiXBvF#sFsGW-6TGQ4p$VCKcaA{fg#M(JU&a!ChDMR>i#7XT=hf zrYsfsnA$YOJSw)~E9|qPxl}Zlisn*rDCSU6?-li4QSTLhV-;(VrQ)A##vNDOfn8R# z%Zk2%isvzxigr-ZY%0cZ1GA}khqxg0v2XI@0?6}mcc!7<$NuhPyRT$km1M6}3G=A* zDK)5%xm0S2{FUUd)Db;Y(nFAXMcY)T`p}s*GU?yE#N8$FYMd=2ztgW?e=8D)LwP z8$DEggM_?AQc{r?y;RLaNxnqBsP7ZUG|LWf24)=J7 zKC3;&%&NT#LZ5_4M@BM}6|?*#Cwa(6e%_}Lg{egsCgIIbPGRq#X2)(nZGl;QI+D@+ zz&NHem-#Hf&3&qePnWWu&6vlh?(Wk)gcHFb?5TQE?4f!NawA*y0u8Q;ka4ON|D6K@;>@ zqZMs&w>5e(4DZ&Mgk2rvoT-N0sE}^4L#{Y zf827-A?Ty#cI2#i6yH+KQ^;2H0%C4KMF#%+*GYZm~X9Qq{MyK%8cx_vXhg~ z@J6k8I8u9-?M#HEX|#y0z71)(}` zkbs2veW~N_>Le!%?zxV;tCJ6RSLXwY@*#St(+hW1=X+$UBU>H0>P*EqRc8i^S;hvo zvV&dhY71a{nlNAnswEzy9IUYs$18$S$7`? za1(XiL0vu9eHn!6sar1|Z<3fK=(C<()w8R5?x3DKs8<;Ks#lznxYc@PsldlnrW*EH zuLd3Xp5=J6p1IbygZg$*zX^RYi~4S<{{L9SVt!{MoB4}v=%Kz{)jz@s%%lEU?5=(^ zG29434eY5wKJ1~vN0djl232rl4cu4*`)Oc?4H{y04OVj$^&0$F<2f&aP(!#(bao6u{+ z?dY@N9>R&>Fju*boi)789q#dvM?B#f|6-?KWJ1<2n&Ztc7P6naL8y`aHhK@a8<|C; z1~fwcMs4_-u6#oe^w6j`!x_yFjAsh=*Jvg`^CxF9!$$HoisJ#YHF}C{jbv-={l>}3 zLN4->pZ6(731n|<&W+2_9&a?>gxNH91C67(hJG494?<0nqGl5{o8&;4`p@*jJMQxQ!;m_=#D}<`?F%fL~d{GFGq(J8g1^J3;8n z6nOK?FBr&t?Dxxym_^h0B*e`&O+s3-k)536Mh{Kjr8s3UkERuIcTMfD>1WiUGvl#` zrt&qFujwLWYbsk)*_z7M)cZ}tFvF&&h~hk#xXvwPZ)$f|Nn$)Ha z^=OEDZQg{Yw4fDj7{XlSY3@E+BtpFw{;q{vZZQd&TWnwxf3b~yL~;y0w9rF~Gq~p# z?zx3;uEkx}DVP zaVu@lVcu=!Z!3RWci#2}w|K%cUhp~ywR?m3C+*xwJNs%UYdf=U*NZ;%V+_+-&Pv=!yLFg#yG{JXcEZ?0IP$iWw_P;Xa3AgD zZFh$_+<3dcd5pXGDh;xJ)d+8X^$WYuXZttFgWT=?PPDI0UF2_X?(MD!DM_IhaV zX4;!;`ymWx6#8gy5AB!WCfm#2-kr4HhPT?w-d^_h2Z-W4GW-7$54D%Ky}a$8@|>5L zcZXzTrZDn%C_!n;V%8mG?ogFak-dZL9n8Cf`{>XSGw;v^c{`YU2XpW69cIvB0E2Mn z9c1lbrX9T5F&EX*XUB2;hTI)}ryWml8u>e#eaBej?b z&dVV5bwE5aU|(Nn2}*+lPFDn%zF5G3s_} zNgF!Qi7vQ_ZiCQsH+^=~XSXHjvztD{ zk-xkA-3MTI-G?!f(Trs=vUlIeX13z3?z`E?e$H?XnY%ycDgW{+2=xdNpM=po%S?`o_g;&6214d%bw$z#8iG_7G~XZ9)IvB_Stg_=F)Qq zX47*wdoi1y5gg)n5c)PT@_hR_-=f~P{_b1*|JJ;E$==I6dYMPBeB{TTdznkGa_FI# z9(q-#Dt6kdA&qHD3tBM<`Fl-dGSl!@ui4CHKEGqWy|%H7J%l4`uOl4e1XnTd-uBn~ zEs~Og)TARLcG>$Ka*~I4k+pXv%)56rKE=#?n|bfL)JOK-viG+0-p%O8O#b3x5c=*7 z)cVf9{mxDJ{~iy0w;tKPJI8DBX1wG z?qjBX+R=mW=*s|xGMrJki9X)%V~%}%6Ma^)nsscz9{bpTAG7RZmVNeNZhgJcw=y+p zf;;Q$d+V#8z9X4|ntj#mt5#pN`fkDu`feu-_4?|$?@3N`mJ3`Wnrl1@Lj5vOoJRC! zGWOkXA?o*A#wym}e*1Z=pS=AdInF7fIFH%(^R4xJiaGW($Nq2N4*I*}{$|=g8CfYn z1u9V$yY6q-{q4GcT^b-$e|zrVoSw+nzYqN|>;8i=@BYIvm;UD6e=I+;6!Yva&j9x~ zpa|*>@OJ}##=Hi|KEON%n8$z^Zeacc%w@m}UIn3nA>#8UiAYN(^e`|xd2nw7-=iRP z=t_TvA=f~;2Ku%Jn(e@8%wQI?+0Bz6G$=jl4N_xJMa*T8c?@dI*Qhy2%|Sy@caXY+ z^g8HACNPP4EWmd<$gT$2)gXNi+Qts-ZIHVdbb>4V_pV+C>2=WSAT;<55}?n)Z(~=3 zQ<8@KyiXwtQxtbIxD;h5O9ej0?GA2*tb^UrU~dk-6@-Q)rx^9J9y`#y^fSS70R3185J_Sn}j`x@3AH#@8k zb~kJw_BCuK-W|3Y-|sMc8fH(!{z9L_!Z5R8;Y4tmtHj_&hneNDJKW;|e`A-!p7J~h z4Ns4(!@tCv!{@V?+d*hVV%|mW5oR%>E)9@>L`ym%|A=n%pcmiKmr=Om5#yP}bo4U9 z9gncT5q34=0{^`u+lYre!aPU3!1pvVz+6YB;vMqhwnn?navP$WC}; zr1^|AmyyRXi;-qA@;)zv(5MusIZDk@_BBe~QR8MV>R==yYLDl(3iZ}d`@^E+~l z{(}wd!EKE`$$2gjO$>Lq$3yIH^phYo#!Sa}V@yxXX3QAuV~m}TSR7jAZ(J&#j!oSNer zq3$?!$LV)mTl70lzvJ{YZX{#*kqNkianqT}&n#mD5qNjpQBH6gy^gzpKF3|fzQ)Hl@keall$Bf6Gw`5p$aGKkReD5?1g#Yxx6xOn4N8CdxVSO%n4qvQ3n2qHGgo zo9O+C`6)p;DpHwh)S?cuPi#mdhT@Hh$2pIAOniZvOw!M!G~`3gNor2=ZB9~mlDd=h zIq4H>P!qR0$(|++LfuIt_@1$hL!XnTU|*B$Ym#qk(rVVRoHV-$wm%xla~)DMH$Lc9z9H{#OJuZDP}UIG5VO&oc@eP z_9<>{%4EDXMfNGOPx*xv*wYl5r^q`+-YN1r^wH>dmQ7g3z=q=yRHH zblPC#p614;EnzwGPc!>z+t@)EyV1imGoN;nGo0fh`j~b#2u%-2itN+f$aJ?i-CNUT zpDz3KTok1^GEbLxy1dinon99=IQw-Su=mOn(@JeoBcvKe_v#2B6+g{_dx1L1>1(%*alD z-sb~~;9h1_rW&8}8NQ<#pQDc%Eoe)7I?;_D=x4@v_iinlsg$sppyM&Qy2iF-~wA--7@4OK4^+ zPkG7fAT;X@5|WrCBqJ*Y@a`2;P~XSuCe`kd7ObDQ-g&FM*R`p^&aoHdxC z3}+;xk$slzvzD?Cd4AU8&u06xdO!QSpMPc(r?`Y!{2ap#?(>X)c@>0a2gD-*sYp*I z^e{Uod3YE7%>IPV$T)i-Lm0;Q$TeH8+2fhRJXYYhXtvqTmS?sbn{CFkeG9Yq6M;F; zeiDS{cwd_MOnA3|v{J<}$IY-SoYfyKNx^uR$l^uj}l#Be$e|7ab=LN5W&@XSG z&tDSpHg@$(O7fDQ_b7;4{iP@$Qi4)^L^&$Z40HZPo?m<~znJY@_2&A!x%NA^D>BcW z%1_KA>+Kl6vMYSuMBd{ zlWX3`)S*7^eO?FbYo0vwx?^wi`ZI_j*xkJ4cw^qnAT<9?Qez(T?PGos%2O9L=c_sY zE7YB@?)-1)fj!Otj!{fu3F^+*>wLY=U&jXYIsY%VV^{O{aFz>P;tE%}&MjiO%Y7d5 zCnz|Af&iv^$Z8TPTD4ozr7JKEC`JuK)#KL%qS3w&n_ z#xjnHOy&=cVh;=KdcjR(TM)-%{2nZ@p9N;P;B^pMXm$&~#EmReZ=o6s7qOV%F@uFi zP;;T03-!EE-G%Bd)bGN3=y#!h7wKuyo7l^u3}hlJ`dpNoe7N03Zgf#qyt}A5cD1N2 zdR^2BeJ=Wjp7@4d1i~Nh_Uo8LPcgR5@icx~nl;>lrPz~7^f6r8Y<`?8zEZ1T;wsPr2cf0jU78BLF4gPO%w$8KOLJpaOAAntO4!%ZPpFPtUFues)};Yo zAoo(amo}$Av)GDnWtq7yvx8-|u-j!nvXnKL!!o}s%Qg{41c!;_IHx$nS@f{%7I(OZ z{VjXUKS5}D8f0Id7jG?p4|82^U(1VA67yXy|MGgY#Eh4>rxV@i&bRc&+?P*gG0RxN z@2q7#=Dpm!mv3VyyD{hGGA=jg<(G*jh8x@>mN@Ps`)_veTOs86trs&B$9B1Cq| zA@>ToSJb37jc7$%zM><3A6A&{3Vo~?z)(i;J?6b)0{U6uj#jw;6=u6a#uc)yxQ)A5 zA=e7CT;V=eyu|OrN;y`#gO$w~gnBF0SZOXR?Qo?Xu9SJ@QPf~fV|u9AJ#IwFzt_tdzR-3 zH>-0X`)b)&%f4Fn)di7%bpl^WEd4)(p;jjf)7e5=iJ^)lpIE!S%MS-pwBFx%BT zxD|xfWTq_Ytx;pmSD48fvshy{YbK%Q8a3A}VhQT5S%qHL=yi?TU9+2goIr1Du5p9g z+~q!h2cfkAzTLG6urvQ1r_frxuT4QJ@=*Q2*7<(dndv(HultO~bfr7r;ttmJV<57u8_p=k z@FVlF&vn1D1anzu-s{YJo!P82n|0>C&Ud|TGjgwc5`_N9gg5_a#rG^{KR1KWdUIKy zjFhAy9q;fi1$duA=wW?PD&QX0SLIXmvA!0a>4WU+2Qv(Bt(Seh?CZxfhk3}nUf%Wc zu9tVc-=OtdaU<))ILbvH^OS!v>kVeT!K^o!^#-%vkQ95|kQ%u+6hzJqa&GvL5|rj6 z%2N^9H^{!>6ROjmQJCe12z*0-rp3SgvmGN?z;?p%Z~iYS#uT6T})DSf{skx~WT~K$E``Yv!?rW3Un|{DfHvPm5W}*HjJK3~>P5gzvH-)i> zW1QqPXF1O$%wW?so&}-Jeor>bvbjFrFqyfy+s*24Hs{T&u>Z|};H}NOFwf2QzS$d_ zPjCe_H{akkcd?tzFM`mP#3UmHcE81&TQZZ4?0i63>e2x7*zzUKX+>M?eT(^QF`q4R zZW+mF#_}U(vt<%fnT{E4`I$NBXUi7MV9To@^p`jPszPTbu#$t^!X5ne7L#|@-PVarW*T<4bvANsozL&A#qPH5 zWk2$4J;EuXu)D1nxg3PHCB_@un(-Aqac|qqW1AUl`-Ro0xlPS&yHR(Wy4wyD$#G6% zXWJeGq3v&??smOyPfjY*qR;J_$wm%xQyTl)UY?4$%wxw@u5*hx^s?g-PlC|S zjFg}too2jKy`5@=nMv5&q(T2-AEIWMnqm44Q#VZA zFujH~!0m=Lp(9_@7dH?#1bv3tQP^0@TaI_b^ctquuy7){Oo^~I@jqR3w_jxXHg{$acw;uMqK|;)VkF0xA z;v3tO4!5@_A7;L%IyL#6dNialO=&@E>~K#9G z|335H_a)8n*1ooUh5Y-zV+1nqlX;)J+&6`3{DhhBTf!gg=ODg`eaAS-8P4JR*ms3% z+~5VTgHU(~x&8N{Lg9&!Ib7!O9$iBZbUFl9w z1~8J*jK$3NoB4jf0sE&g4|CnGhyBa>owcmzPfqYp5IPVaGd&>Rfn>Og18K>C`5ws6 z`;?|4m8nK`eCG%1^97AD>jP$bz#9in;T8|rRuDR9 zKL_PGSR1oFsNO+;chG(hJ`X~NWIp7^4&}m)9eS4{l%X8*ACmu&xg64i|L#)gP)+;Z`8E#ygtz>+mqLf;vw&Z*vqO3~B<~?v56ODy5XZ2$L#K)2CXa*A z;kR&Ghf`pGhtrXfEWATb+|psW56gR4-oursg3O2Q^6+Pv`(blGT#p8P!MB+6VR;Up z;YAQSqTUgIcSJu&^m62XEN3OFS<4o7vll%a(Zdn*K5`gyJ#v|=Tql+|eD6p84nmRg zM;1fQ$WN$&Y?1CQvJvhqvN`4&>D!3>0sD%)fO?T?9DS2Sq$C^mbyUrxY96hMx<}PL zs^6n^(eF|H9@W!PJ388nehgqRBN)XPymxdKi_z!NZMd(a`aQaj0~{ifO9B)HA zy7C?JA0NmNhBK1ynToqRJ{#Z6@rCH+_%eROj*i>O@&DeD>%c+$L<6PrXlVdSZU3{=zMvvcuD6aa!)vxyZ}A6rl{|sEFLBtMMr{Xhbvgak>re?sRAD z@ANl}<9EDs+I^jt?etzEa9^k0*Xd(i;Tmr1wE3R?msdgPjC(pG_nEgb+cPOh#YcGK zjMqvB9M>JiU)fx9^Ct+Vo;%}h3Okehtu$K9VTMODo4Y)w9=0bkIBrkLf~ zKIrr8WZb}6{hs}qUzpEA-2T~RtiZg_n(^8FnDbe4K5HIl&H3yJP7}pBE^-;OIxF`% zS37y5)1{4UArkp6o#ZrTed#=xFq2EyxWO%AgV1H)-sOCJ zMpq{DC+Bz`gsx=7JzS}PSzK|?S3bc#TxmixTF{zyw5KDzaSK-lF_cm0<;stYXEpBj z%2}=;*A=<0+~xs~_=jiw8-${BV_wmHP%m1IXfugkz;Eb3Is!GL)r{6}w7SviM(Z^? zmN@S7ItX2T1G~CvPgm2S&#P|iYIfYjRX29k&aQrpcdzR8s$Q?Qqz!g;Ri9VCrW-xz z#aPBMfk{kZIy3p1In3jK*yq(9$a*av-n>?wZ*XhZ?DpDGZ z^?O^txAl8lzqj>tyEns`$P}hCliAG09o*LQ?KP~!-fnMV3)|SiNgf5ESo?`Bh?&QB zr9VSZKXw#9Fdp|7>#bO`j$Og;tYtlJBGznU_u&>|%`w&-V=rQruOpqY zvwPn#m|^_DIA$@I`FQ8vQkJt4ySulI2%^#7J^Q(5R`=p~fL`zY!*gB+q5o5K-|;@y z{U5+D*TJz5j*-1*R#w@2#W`lOGRjJ1WRq30M@E?;2?^P|vLz!T*;FEXbIkjB|MC3m z=KXoS$L06W@A1ulA|u}I2r`ldId98(I~RE=Kq1WF_G^^H{%*g4o!#!u3^sEvh=gFW9lz!8pNhj&h5u6Hva-`!Vn zTX)^oUAN%B%M|Z!S;|uvH+HurZs~3Z%=hjG^r8=Tc6T6yS%f$4J`UpDi$@B~;+|RD zGlP3&sE3;O)V!zGJ+vwlzl^M3F;=JLS2A5^3=?_iz}(u6B-f)VRHG4Z;T|5D>7%Z6rxyc|`_WK_^9kSMjYltoc#jj27Q1?E9*@o7 zv3?&nM$N}+KJJ9NkJWwbCLVu8U+nF%n|Q3}$9jIO=f}Q-$7b~SYgVG~$7|4cTsm^$ zt+-b)_c-sxmF5k~(f~E%)QnRzPR%$q-cvJv`Znz`ho@cWMi0#Q>1d`S=TkYK%K6mJ zpDtk;ZuhCWPmd$pQ<v-c>YX0ee7mi z^k6VU8No}$SB4#fyqo|I?Gv) zp2MyD$YD+)LwK8eJPX2zNRp8ry+!Ch!kZDD_!#vgX7d#b_=d%Nhj$`=U=6$2%P$QS326 z9qb{29VD2@64qfJ2{vFR3HBgsf_?1g1TrQ#iJS@k;udlw_sk@!#OU$B=*dx?}U(q1C<9O)(^FC%Z{HEsrB zBKZ;(qd2l9dY!HeU=Z#i(J;(4(GKiBkv9@~BaxmHCq=)B^_w^~wa`oArZl4^lbOqW z7V<4iS;k&|<9Gf*&cru@FiC(}CQ&=9Na;Y zRqW>oR|B6NY9&=CsX9s3N%{&IDNQx(BxxP&Bxx)S@J3RzNNN{Jy_M8kNqy%@N1>Ob z-?Ng{ti@cC9^eq>pVa)5ntw9ABuh^L3Q?3dsEoIhc{^Es-l07o&>uTUHiY4P%4d9y z*(FQ|LLxDbAvH3U`#^F6u@3o}(g3 zgIPqWAC-;V$8Zc>_A%BD1@6>WHz4s^yI zQ<`N;vrK7!Dcwy<{iK}0WTx^3GnvCY7H~cYQ>CCTqcO+SA(imIr#8#f?ke>;E^-w! zOl^j#Uj|`xB9fxt=qzN%?L`--6m}k63;jmxH(K`SHpm<;Yjkfu#=S+4LB{B1tY8&u zvFB)ej^2hHMDJt|b`dRC^aboW`VyCsG1^X|?K@i5Xj!A}JKBEIBt*_MrSTo4F~c+i zn8*y4V+LtX@Lv$7El4qH5<@f0Jgr%$l|QZgY29twfqa5K(&{7ac-&Ij&-o5D)5@7H znhcmzx}3aIc^PW?BE!gRN|!;2tHp8$JF zZ!hWXHho%NAro2gcKUqiD?=H|Q-`KB$Br`CQ3kWgpw|p`m7x#)8N?8V^<`=mb0Bh{DXJ1*hiMscq@yyvUn?tx3YLE zi?_1aeHOdVQjU7mrx9<_3~y!eRu=ou(w>e?#cZ-1=W-BcO^%vb{oSnH7>Ik!Dpywf z$vU1%%wRTOv4C&*mTes2Y7l0VH=EgHD~vs6D?w@OGnNXskONzTkR?ZGgz%Fyzf6guZh#BYH z#a@2lG*|c!J>o|d$y6J4<1JhJ$2%Y=FCHqTtvV}E)6U+W_Oa2d16lS8y52&%UQ{Oe#gG@-{WBr7Vu{an0tX$tYrh6*~$qn@H_|$21Ep5A-M~+ zp)1{yu}~lSGl(IK!%hoLW(qPD`jT19LG40+AV*9Ce#j)R_=2X;v>*}FyJ7ll>KIT@}8+E-=w=d>a zcN$+~M|Ib;2{WqecIxio7Y=ZkBbZw~w_Z<=^}JcHEYORSm3E@BDpBz6U>Sjz@BW3RFD#p=6$6gen_ ze(QI_9oN@Wec9`u;y>iBFL#6ZB*dLH$c-CoP!NB=K^baNhkB^jz)du86AjF_TH-6_2PI89xm{G$^T;UowvB!q@d4#)ZC|4u7 z8p+j2u11MThS@esO&kQE?j6ovGMkqn(`K?;va( z5A$yvNfPwmSpSXn-&p^RGoVJ}8Z@CRLz&H2xR1sQ`4;!l*nKp17mdxMv3WE$kH)_Q zVH5S5WJawfuMg)Y{GpvImB@;au0X?mcHI{4{yDVKmS%o?ENi!f6Ff3Iva#d zWpA31qIjoiDc+zQ6{$jXYVjsAG<_F0)YSV;-$%Ws?x<-Gdf}Fu_G18pn85~4V@Gf2 zK)tv9y|>4*lsz2gDEfH&1Q+;^>)hfl4|o)W&Ek_7`)w9Q8q%W|zbza#D?=;fYbIMW zH{R?c`Xf`bkFk?x6PeA|*mE=cXl5VHR%1rZHnN$mTnfVG-e_(<&CR8GEbVv?J8rJu z=HpSbxth)Gxw*Q{)ouPA-?I|`4mAInL+G>lP3)|NTWawtMR<*pyiQpvP?>7zt3?~^ zp@luPu+tW1*`gcs&_fIFw9rEfJ+#n63q7>hi}|+r6T4_}j*FOWi^oCOQg1EIu4OrD zQy2Sg*?^XKr=@pVeu#Ot9L;oQpx>5r`4_#kw5OJjcoKxIWNxKKD_L8q(MpY0YP3?L zm0M}mkAc`pt6_YCnyu7qrDiKVwOYV8EXKXGTE+@~K%cD+b2A9vNsYO^(~KdQ|2x~c z!1Ew%oe+1^+TFBHfu37uCntHxM?nhVhFbduT35k0(7F!ws82)m(E4+}Vj=e2dI`%h z|JHJ~Udv8?;{>NTi#)9_bCny|LF+p~*d`<1Xk(Xc`eGJszQ8=%m_Zvox6w}iX^9u+4cc@(=dV#tzy>kQ;rq)mPiX6r%*C(PP{4yoH&ywdc02X-9iH;_bHH zZu>p@YOAld>)6N^wy~ds9OfwcYWs*Mn0vbby|t60ogD4tXeURzH>g2v+*`X?yxq=h z+qsW+?xS5lCgL92nRPo^+AR#ich!4Wy>|=nDn+n^cV&9_8jpkUz2u}Mnsj8qjlY)- zJAcp4-^-7`|6XOPARXD*)axnJF469ZJN^xH_@>h0~yM2K4lE! zn8;-2v4LN3108R08+~-tM@M~he8!6)>=X|>?39J<s!(bVj`o)cD|YrZR`6Y(>ov)coK#)cru+5A^zhUOza`MQ-Dp?-~-H zNc7k>1*wR}x7W2Wu{1<)UG>(r1@_+6oVvQ@t{sr2>u}7?@A-y)&o}Hkfk|w~9=e)+ z*FQLkEL~;kDofX!+~FP%gRolyQlsB)uaJrC$l`Z=L%-u2b}Nn9cdJQl>e3jQy2;c{ zrf!}168F(<3+B>ImTtS)i%i`PVou#;>n2+_*}BQrO_px|&+?cjJmX~$ei#q)`Y<7h zNJ?^|D1;mzcE?^mT!&qD_h-8oqz-o1eIyg{XSz@03w)E^m#~Z#tYR(e@r`uf$FCeh z*6y-)m$m!<>%R!X9%j@dKSgn)Jxbw5dsLz-HK>IQJ$hj#J$9p>-{K8>+{8`vhzr7= z^7hPtnmyI*Y3@DM?Wu0h*C|7JDiVWx=xNqHyU>jud_-Rc@EKzm$3*nqb1M4oIfLaK z;J+a3m6QU=+p7`ot(W?}+*>bu?bU(Kc&k@GK4lbRnZRVGV4l6c#~gdD!5n*SVH-cQ zgCm$@uSeK%FW*BiJN_sn0f|ULa`GbAM|S*?S$t#`ADQt-X8chVs$;$%)uAcPX-R83 z;wC;C%n*k233EBY`5^2a5P{kEPE0bQNKG2jQ;ZUn#twShL2vu*?fu?w@-}AG+pPSq zZ`k`iyxseKKA=B?kfFB>e&aXn{Vhvb#tO`(_hF854EcKBzUl=)Zy=SdEzt@Wy~5yiRrOdO&mDr91i=pymKI{f2KiK&=7au$b>y zj(P*O;r<8gU^n~tm4oPgz&}Aa(0&JIrz)*+w*$v85%mX7!|e>5!#un-P~L%CFwcS8 z*@d|d{DnXGn=4%925w;BeI5}Pgo6^{%|QjJODqj(f?fx?>p|{%khu=hv)}R!2Mu93 z`W`fjv5aRrvJH}L(AO-&90sjr1Di32K}R^pMf5%Bau5!-)4}#Q*j*1!Pe$?~*Wkj~ z@8IuHXYe7^7<`NqoZ>7O(C=WkGuZ76zRs;6{5TW)KeXXNOdv6=pHS9SyOEA^yw|y$)H5+ZkdfLw@9EcCrUGh8#!UA@UB9 zcgQ8|XUH||XQ+D~s^6hysX}#X@h0{%)Lw?ZO>>ebgV`o!<0gAl@22hA)_j8yY?jwTFMhD$H`YIr@#>aJV@RKgeN@ z;tqz}`-u2Nl7!@#e{tRLWzM)S(WfWtXz+|Rk7N0C*1wXKw zwQOJ$Tky^&KeK~f_@4aMZ}@3$YSIPuKK1uL{hhl(IMVHpG>egDF)}OJDL`?|W~AAS zEJJxJQkMoaMh_#+Wu&=`Y=?eE4r3uQjx>Xj@{Kfuk?vsRcH|oA_D3G)FaE=KIr0|& z&lATpUIyW3@ra-h-uP@N?(VbcnDJ-du?9VVrk~H${7lWyE~D;e>V9^IdpzWE5RP&W zqw-USdeo;8Z_y0>jCzN*48Sdp^6sb+jKuq+>}J$dzG4C2uo!tpEoUWL(eo%hkJ9s~ z(_G;i{@oZQ*C>6CPE0cFVRULTl8=HErWo#WbY-gIE=S8dTHev}j&8vb&hY>}j(*CE zARJ?UW8$OdF-b^HN}@@J`eW1|QyjY(7quz^B;%SUVZ}3;xX5!^r6Oe8aJS^DkyG)-1-};1*^vPTq0yj+1wsnT#`&ab_|u z4X@FJc66jOAJBtd^r0WJjkB9^vzW_#{P6Xf+9zTpJ(oUoHUs6F9V{^Sx@xy~)_^N={)!NerIN)gO(Vo7|{ z6U*YRCdx9g8m(x9TodhaqWMlV--+Gm%O{w_#4(I#5>uGYmwdxw%z2_YPu$N5?0n)G z&T}saCj~@c7LyW@75OH~H%Y!p@=bC}ld4mbIyA*zCfUoR*2p#KL+oeLN4WXP>iJFJ zaB^aj@j2!=c@68?#8&KSvOP`S%|3qR5J#}1$^UT;cRATSC*Q?)HTnNqaRsbI*-kOrDP}vx z9Z#9de7;8hDSsi`6uX{c*Hi3z%8S7NizsG0)hwo_AqV*}->K$1^)=q092K#9zu6m3 zHP5NunEE4bcj_@NV-{2OKUKfeQlsWHHK*l8-D&Dh^X*J4PAS~gG&`I29{QU01v8n$ zJmjCYh$Spz1>T$HR;HQTwBPuhKlqc2+{8Sm>2=y8>|omS!2c^OAyLRSJuR;w$8EE-GRjg$@zUS$C_yxJ9pTs>+KNo~w=<^Hp zzUW17`td9Xzf4S4%<9YB=T+=`8d~@tz&Rx`+ z8;=MQG7taJb7U#=kQ-0R#z{kiUB?nB(l+^0Mb!mrHq zE3^FS9fq=yU$_y3^OB*Ld9|_Ic};km=Ey(q1KiF$w=>Ud=b7z1vz=$Q^F}icJB) z2l)-(!NNZ{$r;XbA9G$9$5Y(ZHvthOz#hLzf_wTV1!n!tn|#P*%@-he)>vwTB)Lg9Q;u5I4 zSlz`Hs6VlMO9#8!S{2fNwFe(YzlyITA=|MDN#(feXI zwphL;`d<|n`CRuv;FP|j-l2ve|DKZmvv?o-{5YR`7_JbAmg$h*~@+o z@*8Ho>^Sl+yUbN?V9v`P@EG;KPfuBDVV2*=(vYS!qb2Xql>rRn6Z|{#{TL=Ql`ojV zEOz3J<@#Tq4LvTeL>1oTZS=Za&E;w?S8KUi%f~Z`DNIMb<%?Ltcj$Y$zL)EJ`8w=v z`2p-DAavaXbGrF<(7aRj%rQl^#v@Gt-IG6;W2Mii+@OHSO=5BVsFoPMu2{6Wqi ziuw?TioRVk9o?AAY2uX_?XA4%w!`6x$xd9Gg@UvtITLsF-lMh z@2~RCs*m`RO`HwF)e*?J+Addjz-(5V$!arMZ6>SDWc3^tu>`lV+HI_M8>?6I6T6Uq z^?nX>6nk8Kf+s<^COx^4YmHoM>~2j-eE(}IQiW>N;6v3ZHpe)cA^Vi8N_53vyWdngk7(-kG0-k zdkV8!dx1EfVdv{)@%y~tx$-vzrYLs5&hFP$MX&4RS=Wso*vmTK z&^lSx&BYAXxx;ntaNQc#V`uBO@(Twr>vd+m?mT~SiOWH_z8&VcUfuP*=!1J&FZYI2 zq`~|)WF!mOaX%aKVxAicA@7Fj)WRG$)Fp-nG{P-yFxw5yG2ad5yI~+R*@jFT-PT6+ zHu`%T&3fZF+|b5VtYrgw+PDLA-)Qa|&3&V}Z#4IfC-IGKyv9xL@Q^t4veEaj$*ecI zp-u8_l55jj_%~paOq<@tzBhHozBkFRX*zqkf_j_O*qjQx+ngDBH{hANnWQc6{w8wW{X?eqW3K_ZqfS|y>I!5VSK_!MkC9Xm8@nR8`;f1%zumdZ#j*u zTV&lL>lQQGa-T<-`&K<~)$`V&3`gHvp9bN!L}WqMZEk6sTiPb`Hn+6REp01KDc+zQ z=DN*Xx5>QiZJN^xv)yKI+uGBK_xS+%w=G7_ZRYl)o&9JQKkD^IclYB=d?SAUHvDl1 z`ucG%zj2Z?oaZktVFy3z>qkBP_>7l9_)~l$@h$(94EcYmhipH!rY-N$8Ta&4H@Y)~ zaZF)4GnkEe|FnoDe8=}355k|l@pFD&qaqD4i=XxXvwnXbjG8~I`SWDd{aM|gXEBF) zEZ_(B1>tsCw)?Z&-QD)jnZ}p+^V{b#pM`A2e72j^WD>)PIRFg zz3GSCdj>Ov#du@SlOXgPw&7m0*qaOU*sGVl<%mViy=v}#7j^flyH}5UKcpugF#>(= z)yrNtwbxDUbyIuY)Ly&VtGB&++pD*|SGmD$?(vW~^tjJ{_N5{X>B&eIvLo9*+4dDj z@B7|B#(gc2X`f#A>2+TZ^tW#u6ZxEJe201O+sroXZr?$E<0!}Zi%VQa&V7$CpMB4H z8HB&+^Os4e`O8$??EVboMV9>)v4{QDsl}VbV21k}<3{&4$L#j^#O(I>!EW{s#BTP> zzJC~>Fp^Px!%pP-H8F)z?^l2CR~dd?haP@C%{eaeH`jT9@8DN`{Hl*%^>M(ra3BTI zq(ct}vXX<`=;uH+IwIqN{>XRWW6a>dr^t1{ogc9G1B-Cm2i*37)yQ+e9UO262i(Dd zUAXZBw}SAXHx5>%F3tD=dpp<{Js;GM-<=Kp)@*pt&JL=3P~C&RmxJrs#1{7RUl1M& z$%V{^3Q&lmxRXPrcmumR)P%Qb!8^3&Jvv|?hX!HxhlZoSL;5>3mI+K^4)a*RH@Kfe z2XQ}#%>K}EE^vd}+{Nqn#97{`D(~kDYb9glF`0zv~2ch4d z4S&hRQ%2SalRHFv9 zc$0d_cf_8Kn8%S7==sR~AUvwxQGf5Kc^)0iOul9jOZbj8Y{e}c-Huy0>K2arcj2g+ z9X-Wa^lC$8geLG5Wz^$G!yEE#Y@m-zqU7aV$!P58touLvIp4ArGd;T;+0V*;R`#>&v9q&wcGi1m&G+mXo(ADL z`OcZyIkP#Z-Z_8ooE+!e;dygEZ{FwAVczF6;fBr^rWnQ1&-vFWLrv-uiyqE5r8%w8 z&w2NC-rmp4==WShzvmkIJ=gHOT<3SNn|+wadGk2`AP6tGr3GS|7u9qt9;#gJFf%f<3kqAE3z z;iBFy>g}Q|7rW4n9>{aio-Phx5TEin)A*8E%w;|cS%m&C%6U=$7xjPf6f#}Bid+|O z@r;*2_*XpQla*H~!fTYo?*6JyE#Bm9TJR2Sk?}7X|B~^qKD-FRzmt+2H~M#KX0rtI z@;j~J-#giZJOA4r{yxl6j`Js{xs93q{eVZrA@ASn|Ks1Gf6Vfq1VrMS_$M#s_|N-{ z!=3%3-ar1{B{RR|hAuTh?n`oCdXEl#NIwQLn4yfoj4zq-r7xJt92W2mi&=^uF8#+t zp7J~h|CQ}ux&D>w-y|d>6Zt7haZ2$9_W!T_|10;u=KF6Qdf|}5X( zv75_wa`_ThxQ0BJ?{FWxxh&TexvnHezgMD=>53dz^mxS$U8zn(?BGgMn&W1!48y;T zS3YA5@?DYdihNh(yYf9NS)7Q{nrlr{I3I@xy#ESyqbpeWF!mO$wgiY zPzX7%n%!0Nzv{lP)+3e%H0CYdM&7HfXpQ^1`Y|$I{h7al@S6UwsdvrayVjkFEMqMj z*vwXBzjlb<_#HQT&3vz&;xgB{g&wY%?X@Skt84nXo)h!DF5`9CuAAd^xvtA~UH{iR z@;)EX4YRy%PS^iKz3Xb+NR7GNFpnDrseqa{)VyIoH`KkM?v0kbgI;gEOHYPiS2sp7 z8h3SL5>uGQLU!^Gdbx3x8{Fm|4~gSh5Z+9S@A9TQzL}LA7p+R4rG$aS+SHK+1#lbqo^_IA^(Z<@``2RshKTM0-+ zQc@t_E%|QAcPkfa-P+2J*!?a2-mXt8%;;5kGBG-L) zecxT**Y|yQeg9<;`VH35Z?J|BQjvxtl%pb5s7^zgVBQbR`#~qV(2X9*_&~-7GCmj? zgbx!EjlDihPex|51T%YRW)F8_9}n&0;Q*etjzGN12 z`I<%O<*}JRc1Mq|BH!Z|K^P}jTzn$&J;s@9oVog~)iCZA%rx#JrlDS(8gXV4XJ2vq z(0|+&)QnRzPQP*LK2i6HUZ3doiEsT$axzl@J9|=$66oP1oYET>Vf7*-|yhA@eWfWtXfLu@I^4qQ9Q@Nhn)$M^hn5ANovyLoyj2%o9< ztOK2RpRPO%!sii~`SVOZqLo_d1>lmUe6oQ2si)yZJN^(d7roCUD`7o z8K3XMTwdt=g?caiy%%=;!tK0R$ws#DBR?bii=)`}i$6KdIWBO6yO`;V$2fj;%!>c zigvW8Bc18Tr;K476Pe0%W-yDT9O4#tdBFeQeaeddu|L_}J0@;Y)xRG>1|s7W2_Q6Dpnc#AG{qdPtMh`#h^AcGmoa6Vx^Kk;`E z5nrbG<`ZAN`2Jq}DXhYr-!9OOa|3Eraz zeX#EYvL%o!fm{jfKEY>9=WCYoJu6wwCblAXg6-_&dJvJ&8wo36mkG@xVQ0)Ep>vLOmv2!+JKd7dwlLAR&oKMii+@%PZ*1Z?r~4+E1kYMA}cJ-Xg2v zrXt-^WJ_Ap4mTdz37I18DAJB1?ITj(k@}9*cjQ+rV+C?Wu4Ny``IFO}!`u_a!;L43 zBnj!sNM^E8h@!lPoQbMXom$l4SJX^ouZhlZK8Q#xXW|bT$!NwgkL`bhjZh)5!Hl5)I*86;VZKbyo&B{k=yawly_3;da+ zZF!du=uJNc@-f30!6al&Dr-_%lg{I77NLI9{aofgPk9kUBs0roW|=H0DM*F;O(sLK zin!HeW{^z1WNIYaj2le08+nsmLd|4qCi5*MQ#YBq$=y)$1SG@ir~ccXE9v*LU*v3}6Q9IKsUkB89vuvXTq+Qxu>GuTc_jrEr%i8qk=gG^Z7< zG0znJF~<}`F~=067{hqnK#I9+z|EwvzZB=V$Uo>k#Z_)_JBWx%jBh3?iqx26)GK5} z#;9VLL6lrkW)NitQDzWj22s^%NE76Yk~8W<1~CMCj{1bj$P_i7g}B2gJBf04QSL6v z-9_0=)Or3w&L}yf>?rCHaXbqmQp%cA)|9fQG{=;BPWc69oYKBidLxzmsdDlQImR*k3C9OVtJ6d8+R8zK%O+s=~5=}aaQk+t}K{+a7PigHZZBv@liZ;lZ zwga89E5897k#-<bG6DNYKb0?-$sA-&FKc>P z({E%m+xUs?cqhI5>CH6#el7wpoa{4$Y9PH z%r}GiX7C+kFy9PzpP@PpX-aeSkf9yz>4bhVe8y5_%;1(X{K(JjMy?EUWiZ91 zWHsxsmrUlHX)k)sbdcZherCO7b~~A)NKGNiP@YPdapw9o;w_q?@60{vjr+~)elyFI zS*FY~Wu6p7WJya-a$|p43LsOKtsKG4WpQ&^PT^b2a)H13m;boVtso+6e9SznoLQ4% zR#{UbYt}TRBLkVpLRri&>&MK){bf}zo4=P$Z`tZ%mf7UbCVw{hvkhPb{@uxDm)SmN z8ecM#Z&`-@W?O|j%C-r;WOGZ|E@F?_<;yNtcD-kR1(~v&LH0c4ryw$9H^=Pem3;~7 zWmhBn5q{?k@@9XAnmN?Wq2C{~1hdtzwBZocYu!kIXcoIb9^bO=pgj_jOkP3UqX%9Jb zVb?hepwFCd@-{7ahqeqv?>XH{PPdYCGIN>FLd-g+j5&W|2fNwFasI^jl=Ey5k;@Eo z=_^-zI`TgDkn3g;kvoEfBqkYAm|t%5%WW^Y?Im|s%rAFo%1{n-%njbkEqm~S52IEOvt`-jWu zC7)jM=_TJi9tIKl?IV9`^p)Q}^4mv#`^cZ20@z7@JIP-j`SROG{u<%Mo#ij zkixi)LT;mw+=Y4}TcOXe^Frg1sn8e9WDZ{;L!n=I8blP%jCzIDC|rYDG(g_MJy5f- znuR~bz6z^b*c}ztXJPX#JRP$wyo&W~WD7sDgWc@q5A3b*lOUov#khD=3vvWJuW z%YVpKui|ezveH1TBar9DL&&6BN5BZAARoopE zcL&8~Dn1*xReS;dZ$ohziXRFhN(7i+3H3^-QQ}SPwuGIQkher1)GVQ93H_EBkGdt? zRtbHUn87TTvYsv2WeK}1v75c@=K!a<&$A$+WEQfMi@X$|5PB-9r;>Uq8B0T&@HYA@ z`3`nd(oRasRy&JUPj>3zstTISMrR{99X_=7(&*V5iAeIB!YJrk8^$4Hi;*VpBE!#%xG zkP?)p4CTv2Up@%nq2vL)h(Nh z6r>`WoK!$xWj{jxvTB!=zwA&(U`}O6v#dVL%23uG z%GyKO6X><99hB8;SvxO#i#yy8BFf29&Q8kdt6UCpQye=gSCtynrZwhV?nBJETyKW+ zDWe$67nn!6Z&}LsY+@@vu|0?=uWtEz#L|Gq$Xfm!_jpJg&v+R`R4}^=2}ndzr*e+9WKl%zCo;C3pQZ3S;uXvHArAxDKvK}1FMD*AgBWvSQ=Jye{EJ}S;+ zHs)Q?oGY4hMRTsW9z9jug4?fnkl*+n_g?WddZ~CJh^Q2Se@80GS4pl)uTvJ8DpkiF zReBTis3b$BewbUO{is*z|26LMfEPhTWqB)SMa{};R@QIjQm9+GJo>C$g=)B`%57+m zZ=~}3d`J&Iq7Qag`73^62fNWz)O8St{F4W&5dYKb2nw5mn-mg!K4E zs$@aFD!H(uDt1)Gj;h#4m2y->#wu;;hCEf|snQpDs(j8gzQp%cnWjN+qV+`YvtHxyJ@jYu; z&nD!lVa7GgxW+I1%0V6m5jDM0vkva6rdibNg?ZF8gPMA-sh^r^)>O0RD%7p1Zp|%h z!~SZzv6^nGrXAHvOhII>Rg4mprVQn&L{(bSns&6O6J6+v8?H41v#&K8{ngT6EjLul z4b}RBg?!5rmZ85|zwtYNVE(nP@PNlWrtPEG(pDN zGS-%{_WS(HJ=CuKh$lfr9rshmKI+V54rW&8YZf769U1GazzplGWdjE|jM>$ZyUuak zex1{t;{t!?FoL$L!}IZYjo2V%$=UzGKdy@0e@cvf`~@hD8y^X*2r8Nx$Q<3s7zHF(wYu*<^w*Y4`$rR9W?qFcim_S-e~kRh-e%i zyK8I~jq_3z{Wh+TnvKo^e8PP6)!3ahb|;P9Nn^WcEPvy_xWpCQ zOcU=liNxHRB*!iLZ-_)RNlRAjqe(&RqKREJ(QlJd=&?x+YGLP1-ljdB=z?5LcS}+vijk5fT0w$ET80EkCRk<^iXe()+LtIA2&E(`{(p z47XyZ(r=>lj?z2Id+?6ZJWO;8a1Ju00E6BNLr`}4|u#WX?U?U&# zF?QjpP>Y;7-g{nX7X9Y7+9U?#J(}n!{Rl;CYp2R6lWw-}yVs z!w5VxcxJc_&kdd%VCDo<}#1x)XIL$}q|>PDFOmEO90U=83u-pGJOBeo+olesMXkB8w=)xDt89 z5826A9K?Lled8&9=2y%Y%@@z{7yo2=JAzTjyd8(U+Pg4U`v8-f!oy7Cah_y0C4oLq zVb=CV+_L?E&FEjdg>7u-3uM}wv;79SwtjEzFInEntQ(Kschm9Qt|j65ojkf{na@I= z=QZTe$)S4#ed<>8Ht(<&`E>g@pXEdL8+wAJe1?qD^^8GZk{psdC3i}9Gr&{^(V3(# z$^OY)X)ez&54$J*NlVc2q_gQ|%$4Mk|9_s2UIyJHE1duU From 72798b30c5760b96150c4259a3ffc7427a099b3f Mon Sep 17 00:00:00 2001 From: Alexander Romanov Date: Sun, 19 May 2024 15:04:03 +0300 Subject: [PATCH 12/39] Upd --- .../UserInterfaceState.xcuserstate | Bin 297544 -> 298398 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index d373d042e3c67a60cb3aef0cda17ab96d420dda1..0f0b007d471118e955b0f8c6e567551c2020fbfa 100644 GIT binary patch literal 298398 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