2020-07-19 04:12:32 +02:00
|
|
|
// Copyright © 2020 Metabolist. All rights reserved.
|
2020-07-19 04:06:12 +02:00
|
|
|
|
2021-01-30 02:14:22 +01:00
|
|
|
import AVKit
|
|
|
|
import Kingfisher
|
|
|
|
import ServiceLayer
|
2020-07-19 04:06:12 +02:00
|
|
|
import SwiftUI
|
2020-09-01 09:33:49 +02:00
|
|
|
import ViewModels
|
2020-07-19 04:06:12 +02:00
|
|
|
|
|
|
|
@main
|
|
|
|
struct MetatextApp: App {
|
2020-08-12 09:24:39 +02:00
|
|
|
@UIApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate
|
2021-01-30 02:14:22 +01:00
|
|
|
private let environment = AppEnvironment.live(
|
|
|
|
userNotificationCenter: .current(),
|
|
|
|
reduceMotion: { UIAccessibility.isReduceMotionEnabled })
|
|
|
|
|
|
|
|
init() {
|
|
|
|
try? AVAudioSession.sharedInstance().setCategory(.ambient, mode: .default)
|
|
|
|
try? ImageCacheConfiguration(environment: environment).configure()
|
|
|
|
}
|
2020-08-12 09:24:39 +02:00
|
|
|
|
2020-07-19 04:06:12 +02:00
|
|
|
var body: some Scene {
|
|
|
|
WindowGroup {
|
2020-08-09 13:27:38 +02:00
|
|
|
RootView(
|
2020-09-01 09:33:49 +02:00
|
|
|
// swiftlint:disable force_try
|
|
|
|
viewModel: try! RootViewModel(
|
2021-01-30 02:14:22 +01:00
|
|
|
environment: environment,
|
2020-09-01 09:33:49 +02:00
|
|
|
registerForRemoteNotifications: appDelegate.registerForRemoteNotifications))
|
|
|
|
// swiftlint:enable force_try
|
2020-07-19 04:06:12 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-01-30 02:14:22 +01:00
|
|
|
|
|
|
|
private extension MetatextApp {
|
|
|
|
static let imageCacheName = "Images"
|
|
|
|
static let imageCacheDirectoryURL = FileManager.default.containerURL(
|
|
|
|
forSecurityApplicationGroupIdentifier: AppEnvironment.appGroup)?
|
|
|
|
.appendingPathComponent("Library")
|
|
|
|
.appendingPathComponent("Caches")
|
|
|
|
}
|