mirror of
https://github.com/immich-app/immich.git
synced 2026-04-25 10:29:56 -04:00
* chore: pump auto_route * make build * chore: use drift from pubdev (#27877) Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
419 lines
15 KiB
Swift
Generated
419 lines
15 KiB
Swift
Generated
// Autogenerated from Pigeon (v26.3.4), do not edit directly.
|
|
// See also: https://pub.dev/packages/pigeon
|
|
|
|
import Foundation
|
|
|
|
#if os(iOS)
|
|
import Flutter
|
|
#elseif os(macOS)
|
|
import FlutterMacOS
|
|
#else
|
|
#error("Unsupported platform.")
|
|
#endif
|
|
|
|
private func wrapResult(_ result: Any?) -> [Any?] {
|
|
return [result]
|
|
}
|
|
|
|
private func wrapError(_ error: Any) -> [Any?] {
|
|
if let pigeonError = error as? PigeonError {
|
|
return [
|
|
pigeonError.code,
|
|
pigeonError.message,
|
|
pigeonError.details,
|
|
]
|
|
}
|
|
if let flutterError = error as? FlutterError {
|
|
return [
|
|
flutterError.code,
|
|
flutterError.message,
|
|
flutterError.details,
|
|
]
|
|
}
|
|
return [
|
|
"\(error)",
|
|
"\(Swift.type(of: error))",
|
|
"Stacktrace: \(Thread.callStackSymbols)",
|
|
]
|
|
}
|
|
|
|
private func createConnectionError(withChannelName channelName: String) -> PigeonError {
|
|
return PigeonError(code: "channel-error", message: "Unable to establish connection on channel: '\(channelName)'.", details: "")
|
|
}
|
|
|
|
private func isNullish(_ value: Any?) -> Bool {
|
|
return value is NSNull || value == nil
|
|
}
|
|
|
|
private func nilOrValue<T>(_ value: Any?) -> T? {
|
|
if value is NSNull { return nil }
|
|
return value as! T?
|
|
}
|
|
|
|
private func doubleEqualsBackgroundWorker(_ lhs: Double, _ rhs: Double) -> Bool {
|
|
return (lhs.isNaN && rhs.isNaN) || lhs == rhs
|
|
}
|
|
|
|
private func doubleHashBackgroundWorker(_ value: Double, _ hasher: inout Hasher) {
|
|
if value.isNaN {
|
|
hasher.combine(0x7FF8000000000000)
|
|
} else {
|
|
// Normalize -0.0 to 0.0
|
|
hasher.combine(value == 0 ? 0 : value)
|
|
}
|
|
}
|
|
|
|
func deepEqualsBackgroundWorker(_ lhs: Any?, _ rhs: Any?) -> Bool {
|
|
let cleanLhs = nilOrValue(lhs) as Any?
|
|
let cleanRhs = nilOrValue(rhs) as Any?
|
|
switch (cleanLhs, cleanRhs) {
|
|
case (nil, nil):
|
|
return true
|
|
|
|
case (nil, _), (_, nil):
|
|
return false
|
|
|
|
case (let lhs as AnyObject, let rhs as AnyObject) where lhs === rhs:
|
|
return true
|
|
|
|
case is (Void, Void):
|
|
return true
|
|
|
|
case (let lhsArray, let rhsArray) as ([Any?], [Any?]):
|
|
guard lhsArray.count == rhsArray.count else { return false }
|
|
for (index, element) in lhsArray.enumerated() {
|
|
if !deepEqualsBackgroundWorker(element, rhsArray[index]) {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
|
|
case (let lhsArray, let rhsArray) as ([Double], [Double]):
|
|
guard lhsArray.count == rhsArray.count else { return false }
|
|
for (index, element) in lhsArray.enumerated() {
|
|
if !doubleEqualsBackgroundWorker(element, rhsArray[index]) {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
|
|
case (let lhsDictionary, let rhsDictionary) as ([AnyHashable: Any?], [AnyHashable: Any?]):
|
|
guard lhsDictionary.count == rhsDictionary.count else { return false }
|
|
for (lhsKey, lhsValue) in lhsDictionary {
|
|
var found = false
|
|
for (rhsKey, rhsValue) in rhsDictionary {
|
|
if deepEqualsBackgroundWorker(lhsKey, rhsKey) {
|
|
if deepEqualsBackgroundWorker(lhsValue, rhsValue) {
|
|
found = true
|
|
break
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
if !found { return false }
|
|
}
|
|
return true
|
|
|
|
case (let lhs as Double, let rhs as Double):
|
|
return doubleEqualsBackgroundWorker(lhs, rhs)
|
|
|
|
case (let lhsHashable, let rhsHashable) as (AnyHashable, AnyHashable):
|
|
return lhsHashable == rhsHashable
|
|
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
|
|
func deepHashBackgroundWorker(value: Any?, hasher: inout Hasher) {
|
|
let cleanValue = nilOrValue(value) as Any?
|
|
if let cleanValue = cleanValue {
|
|
if let doubleValue = cleanValue as? Double {
|
|
doubleHashBackgroundWorker(doubleValue, &hasher)
|
|
} else if let valueList = cleanValue as? [Any?] {
|
|
for item in valueList {
|
|
deepHashBackgroundWorker(value: item, hasher: &hasher)
|
|
}
|
|
} else if let valueList = cleanValue as? [Double] {
|
|
for item in valueList {
|
|
doubleHashBackgroundWorker(item, &hasher)
|
|
}
|
|
} else if let valueDict = cleanValue as? [AnyHashable: Any?] {
|
|
var result = 0
|
|
for (key, value) in valueDict {
|
|
var entryKeyHasher = Hasher()
|
|
deepHashBackgroundWorker(value: key, hasher: &entryKeyHasher)
|
|
var entryValueHasher = Hasher()
|
|
deepHashBackgroundWorker(value: value, hasher: &entryValueHasher)
|
|
result = result &+ ((entryKeyHasher.finalize() &* 31) ^ entryValueHasher.finalize())
|
|
}
|
|
hasher.combine(result)
|
|
} else if let hashableValue = cleanValue as? AnyHashable {
|
|
hasher.combine(hashableValue)
|
|
} else {
|
|
hasher.combine(String(describing: cleanValue))
|
|
}
|
|
} else {
|
|
hasher.combine(0)
|
|
}
|
|
}
|
|
|
|
|
|
/// Generated class from Pigeon that represents data sent in messages.
|
|
struct BackgroundWorkerSettings: Hashable {
|
|
var requiresCharging: Bool
|
|
var minimumDelaySeconds: Int64
|
|
|
|
|
|
// swift-format-ignore: AlwaysUseLowerCamelCase
|
|
static func fromList(_ pigeonVar_list: [Any?]) -> BackgroundWorkerSettings? {
|
|
let requiresCharging = pigeonVar_list[0] as! Bool
|
|
let minimumDelaySeconds = pigeonVar_list[1] as! Int64
|
|
|
|
return BackgroundWorkerSettings(
|
|
requiresCharging: requiresCharging,
|
|
minimumDelaySeconds: minimumDelaySeconds
|
|
)
|
|
}
|
|
func toList() -> [Any?] {
|
|
return [
|
|
requiresCharging,
|
|
minimumDelaySeconds,
|
|
]
|
|
}
|
|
static func == (lhs: BackgroundWorkerSettings, rhs: BackgroundWorkerSettings) -> Bool {
|
|
if Swift.type(of: lhs) != Swift.type(of: rhs) {
|
|
return false
|
|
}
|
|
return deepEqualsBackgroundWorker(lhs.requiresCharging, rhs.requiresCharging) && deepEqualsBackgroundWorker(lhs.minimumDelaySeconds, rhs.minimumDelaySeconds)
|
|
}
|
|
|
|
func hash(into hasher: inout Hasher) {
|
|
hasher.combine("BackgroundWorkerSettings")
|
|
deepHashBackgroundWorker(value: requiresCharging, hasher: &hasher)
|
|
deepHashBackgroundWorker(value: minimumDelaySeconds, hasher: &hasher)
|
|
}
|
|
}
|
|
|
|
private class BackgroundWorkerPigeonCodecReader: FlutterStandardReader {
|
|
override func readValue(ofType type: UInt8) -> Any? {
|
|
switch type {
|
|
case 129:
|
|
return BackgroundWorkerSettings.fromList(self.readValue() as! [Any?])
|
|
default:
|
|
return super.readValue(ofType: type)
|
|
}
|
|
}
|
|
}
|
|
|
|
private class BackgroundWorkerPigeonCodecWriter: FlutterStandardWriter {
|
|
override func writeValue(_ value: Any) {
|
|
if let value = value as? BackgroundWorkerSettings {
|
|
super.writeByte(129)
|
|
super.writeValue(value.toList())
|
|
} else {
|
|
super.writeValue(value)
|
|
}
|
|
}
|
|
}
|
|
|
|
private class BackgroundWorkerPigeonCodecReaderWriter: FlutterStandardReaderWriter {
|
|
override func reader(with data: Data) -> FlutterStandardReader {
|
|
return BackgroundWorkerPigeonCodecReader(data: data)
|
|
}
|
|
|
|
override func writer(with data: NSMutableData) -> FlutterStandardWriter {
|
|
return BackgroundWorkerPigeonCodecWriter(data: data)
|
|
}
|
|
}
|
|
|
|
class BackgroundWorkerPigeonCodec: FlutterStandardMessageCodec, @unchecked Sendable {
|
|
static let shared = BackgroundWorkerPigeonCodec(readerWriter: BackgroundWorkerPigeonCodecReaderWriter())
|
|
}
|
|
|
|
/// Generated protocol from Pigeon that represents a handler of messages from Flutter.
|
|
protocol BackgroundWorkerFgHostApi {
|
|
func enable() throws
|
|
func saveNotificationMessage(title: String, body: String) throws
|
|
func configure(settings: BackgroundWorkerSettings) throws
|
|
func disable() throws
|
|
}
|
|
|
|
/// Generated setup class from Pigeon to handle messages through the `binaryMessenger`.
|
|
class BackgroundWorkerFgHostApiSetup {
|
|
static var codec: FlutterStandardMessageCodec { BackgroundWorkerPigeonCodec.shared }
|
|
/// Sets up an instance of `BackgroundWorkerFgHostApi` to handle messages through the `binaryMessenger`.
|
|
static func setUp(binaryMessenger: FlutterBinaryMessenger, api: BackgroundWorkerFgHostApi?, messageChannelSuffix: String = "") {
|
|
let channelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : ""
|
|
let enableChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.enable\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
|
if let api = api {
|
|
enableChannel.setMessageHandler { _, reply in
|
|
do {
|
|
try api.enable()
|
|
reply(wrapResult(nil))
|
|
} catch {
|
|
reply(wrapError(error))
|
|
}
|
|
}
|
|
} else {
|
|
enableChannel.setMessageHandler(nil)
|
|
}
|
|
let saveNotificationMessageChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.saveNotificationMessage\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
|
if let api = api {
|
|
saveNotificationMessageChannel.setMessageHandler { message, reply in
|
|
let args = message as! [Any?]
|
|
let titleArg = args[0] as! String
|
|
let bodyArg = args[1] as! String
|
|
do {
|
|
try api.saveNotificationMessage(title: titleArg, body: bodyArg)
|
|
reply(wrapResult(nil))
|
|
} catch {
|
|
reply(wrapError(error))
|
|
}
|
|
}
|
|
} else {
|
|
saveNotificationMessageChannel.setMessageHandler(nil)
|
|
}
|
|
let configureChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.configure\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
|
if let api = api {
|
|
configureChannel.setMessageHandler { message, reply in
|
|
let args = message as! [Any?]
|
|
let settingsArg = args[0] as! BackgroundWorkerSettings
|
|
do {
|
|
try api.configure(settings: settingsArg)
|
|
reply(wrapResult(nil))
|
|
} catch {
|
|
reply(wrapError(error))
|
|
}
|
|
}
|
|
} else {
|
|
configureChannel.setMessageHandler(nil)
|
|
}
|
|
let disableChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.disable\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
|
if let api = api {
|
|
disableChannel.setMessageHandler { _, reply in
|
|
do {
|
|
try api.disable()
|
|
reply(wrapResult(nil))
|
|
} catch {
|
|
reply(wrapError(error))
|
|
}
|
|
}
|
|
} else {
|
|
disableChannel.setMessageHandler(nil)
|
|
}
|
|
}
|
|
}
|
|
/// Generated protocol from Pigeon that represents a handler of messages from Flutter.
|
|
protocol BackgroundWorkerBgHostApi {
|
|
func onInitialized() throws
|
|
func close() throws
|
|
}
|
|
|
|
/// Generated setup class from Pigeon to handle messages through the `binaryMessenger`.
|
|
class BackgroundWorkerBgHostApiSetup {
|
|
static var codec: FlutterStandardMessageCodec { BackgroundWorkerPigeonCodec.shared }
|
|
/// Sets up an instance of `BackgroundWorkerBgHostApi` to handle messages through the `binaryMessenger`.
|
|
static func setUp(binaryMessenger: FlutterBinaryMessenger, api: BackgroundWorkerBgHostApi?, messageChannelSuffix: String = "") {
|
|
let channelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : ""
|
|
let onInitializedChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.onInitialized\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
|
if let api = api {
|
|
onInitializedChannel.setMessageHandler { _, reply in
|
|
do {
|
|
try api.onInitialized()
|
|
reply(wrapResult(nil))
|
|
} catch {
|
|
reply(wrapError(error))
|
|
}
|
|
}
|
|
} else {
|
|
onInitializedChannel.setMessageHandler(nil)
|
|
}
|
|
let closeChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.close\(channelSuffix)", binaryMessenger: binaryMessenger, codec: codec)
|
|
if let api = api {
|
|
closeChannel.setMessageHandler { _, reply in
|
|
do {
|
|
try api.close()
|
|
reply(wrapResult(nil))
|
|
} catch {
|
|
reply(wrapError(error))
|
|
}
|
|
}
|
|
} else {
|
|
closeChannel.setMessageHandler(nil)
|
|
}
|
|
}
|
|
}
|
|
/// Generated protocol from Pigeon that represents Flutter messages that can be called from Swift.
|
|
protocol BackgroundWorkerFlutterApiProtocol {
|
|
func onIosUpload(isRefresh isRefreshArg: Bool, maxSeconds maxSecondsArg: Int64?, completion: @escaping (Result<Void, PigeonError>) -> Void)
|
|
func onAndroidUpload(completion: @escaping (Result<Void, PigeonError>) -> Void)
|
|
func cancel(completion: @escaping (Result<Void, PigeonError>) -> Void)
|
|
}
|
|
class BackgroundWorkerFlutterApi: BackgroundWorkerFlutterApiProtocol {
|
|
private let binaryMessenger: FlutterBinaryMessenger
|
|
private let messageChannelSuffix: String
|
|
init(binaryMessenger: FlutterBinaryMessenger, messageChannelSuffix: String = "") {
|
|
self.binaryMessenger = binaryMessenger
|
|
self.messageChannelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : ""
|
|
}
|
|
var codec: BackgroundWorkerPigeonCodec {
|
|
return BackgroundWorkerPigeonCodec.shared
|
|
}
|
|
func onIosUpload(isRefresh isRefreshArg: Bool, maxSeconds maxSecondsArg: Int64?, completion: @escaping (Result<Void, PigeonError>) -> Void) {
|
|
let channelName: String = "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFlutterApi.onIosUpload\(messageChannelSuffix)"
|
|
let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec)
|
|
channel.sendMessage([isRefreshArg, maxSecondsArg] as [Any?]) { response in
|
|
guard let listResponse = response as? [Any?] else {
|
|
completion(.failure(createConnectionError(withChannelName: channelName)))
|
|
return
|
|
}
|
|
if listResponse.count > 1 {
|
|
let code: String = listResponse[0] as! String
|
|
let message: String? = nilOrValue(listResponse[1])
|
|
let details: String? = nilOrValue(listResponse[2])
|
|
completion(.failure(PigeonError(code: code, message: message, details: details)))
|
|
} else {
|
|
completion(.success(()))
|
|
}
|
|
}
|
|
}
|
|
func onAndroidUpload(completion: @escaping (Result<Void, PigeonError>) -> Void) {
|
|
let channelName: String = "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFlutterApi.onAndroidUpload\(messageChannelSuffix)"
|
|
let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec)
|
|
channel.sendMessage(nil) { response in
|
|
guard let listResponse = response as? [Any?] else {
|
|
completion(.failure(createConnectionError(withChannelName: channelName)))
|
|
return
|
|
}
|
|
if listResponse.count > 1 {
|
|
let code: String = listResponse[0] as! String
|
|
let message: String? = nilOrValue(listResponse[1])
|
|
let details: String? = nilOrValue(listResponse[2])
|
|
completion(.failure(PigeonError(code: code, message: message, details: details)))
|
|
} else {
|
|
completion(.success(()))
|
|
}
|
|
}
|
|
}
|
|
func cancel(completion: @escaping (Result<Void, PigeonError>) -> Void) {
|
|
let channelName: String = "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFlutterApi.cancel\(messageChannelSuffix)"
|
|
let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec)
|
|
channel.sendMessage(nil) { response in
|
|
guard let listResponse = response as? [Any?] else {
|
|
completion(.failure(createConnectionError(withChannelName: channelName)))
|
|
return
|
|
}
|
|
if listResponse.count > 1 {
|
|
let code: String = listResponse[0] as! String
|
|
let message: String? = nilOrValue(listResponse[1])
|
|
let details: String? = nilOrValue(listResponse[2])
|
|
completion(.failure(PigeonError(code: code, message: message, details: details)))
|
|
} else {
|
|
completion(.success(()))
|
|
}
|
|
}
|
|
}
|
|
}
|