mirror of
https://github.com/immich-app/immich.git
synced 2026-02-04 17:01:13 +03:00
* platform clients * uppercase http method * fix hot reload * custom user agent * init before app launch * set defaults * move to bootstrap * unrelated change * disable disk cache by default * optimized decoding * remove incremental * android impl * memory optimization * lock approach is slower on ios * conditional cronet * clarify parameter * enable disk cache * set user agent * flutter-side decode * optimized http * fixed locking * refactor * potential race conditions * embedded cronet * refactor, fix capacity handling * fast path for known content length * ios optimizations * re-enable cache * formatting * bump concurrency * clear cache button * fix eviction race condition * add extra cancellation check * tighten dispose * better error handling * fix disposal --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
66 lines
2.8 KiB
Swift
66 lines
2.8 KiB
Swift
import BackgroundTasks
|
|
import Flutter
|
|
import network_info_plus
|
|
import path_provider_foundation
|
|
import permission_handler_apple
|
|
import photo_manager
|
|
import shared_preferences_foundation
|
|
import UIKit
|
|
|
|
@main
|
|
@objc class AppDelegate: FlutterAppDelegate {
|
|
override func application(
|
|
_ application: UIApplication,
|
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
|
) -> Bool {
|
|
// Required for flutter_local_notification
|
|
if #available(iOS 10.0, *) {
|
|
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
|
|
}
|
|
|
|
GeneratedPluginRegistrant.register(with: self)
|
|
let controller: FlutterViewController = window?.rootViewController as! FlutterViewController
|
|
AppDelegate.registerPlugins(with: controller.engine)
|
|
BackgroundServicePlugin.register(with: self.registrar(forPlugin: "BackgroundServicePlugin")!)
|
|
|
|
BackgroundServicePlugin.registerBackgroundProcessing()
|
|
BackgroundWorkerApiImpl.registerBackgroundWorkers()
|
|
|
|
BackgroundServicePlugin.setPluginRegistrantCallback { registry in
|
|
if !registry.hasPlugin("org.cocoapods.path-provider-foundation") {
|
|
PathProviderPlugin.register(with: registry.registrar(forPlugin: "org.cocoapods.path-provider-foundation")!)
|
|
}
|
|
|
|
if !registry.hasPlugin("org.cocoapods.photo-manager") {
|
|
PhotoManagerPlugin.register(with: registry.registrar(forPlugin: "org.cocoapods.photo-manager")!)
|
|
}
|
|
|
|
if !registry.hasPlugin("org.cocoapods.shared-preferences-foundation") {
|
|
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "org.cocoapods.shared-preferences-foundation")!)
|
|
}
|
|
|
|
if !registry.hasPlugin("org.cocoapods.permission-handler-apple") {
|
|
PermissionHandlerPlugin.register(with: registry.registrar(forPlugin: "org.cocoapods.permission-handler-apple")!)
|
|
}
|
|
|
|
if !registry.hasPlugin("org.cocoapods.network-info-plus") {
|
|
FPPNetworkInfoPlusPlugin.register(with: registry.registrar(forPlugin: "org.cocoapods.network-info-plus")!)
|
|
}
|
|
}
|
|
|
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
|
}
|
|
|
|
public static func registerPlugins(with engine: FlutterEngine) {
|
|
NativeSyncApiImpl.register(with: engine.registrar(forPlugin: NativeSyncApiImpl.name)!)
|
|
LocalImageApiSetup.setUp(binaryMessenger: engine.binaryMessenger, api: LocalImageApiImpl())
|
|
RemoteImageApiSetup.setUp(binaryMessenger: engine.binaryMessenger, api: RemoteImageApiImpl())
|
|
BackgroundWorkerFgHostApiSetup.setUp(binaryMessenger: engine.binaryMessenger, api: BackgroundWorkerApiImpl())
|
|
ConnectivityApiSetup.setUp(binaryMessenger: engine.binaryMessenger, api: ConnectivityApiImpl())
|
|
}
|
|
|
|
public static func cancelPlugins(with engine: FlutterEngine) {
|
|
(engine.valuePublished(byPlugin: NativeSyncApiImpl.name) as? NativeSyncApiImpl)?.detachFromEngine()
|
|
}
|
|
}
|