diff --git a/geocoding_darwin/.gitignore b/geocoding_darwin/.gitignore new file mode 100644 index 0000000..ebf83a0 --- /dev/null +++ b/geocoding_darwin/.gitignore @@ -0,0 +1,34 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +build/ + diff --git a/geocoding_darwin/.metadata b/geocoding_darwin/.metadata new file mode 100644 index 0000000..407aca7 --- /dev/null +++ b/geocoding_darwin/.metadata @@ -0,0 +1,33 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "fcf2c11572af6f390246c056bc905eca609533a0" + channel: "stable" + +project_type: plugin + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: ios + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: macos + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/geocoding_darwin/CHANGELOG.md b/geocoding_darwin/CHANGELOG.md new file mode 100644 index 0000000..41cc7d8 --- /dev/null +++ b/geocoding_darwin/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* TODO: Describe initial release. diff --git a/geocoding_darwin/CONTRIBUTING.md b/geocoding_darwin/CONTRIBUTING.md new file mode 100644 index 0000000..fa0aa35 --- /dev/null +++ b/geocoding_darwin/CONTRIBUTING.md @@ -0,0 +1,65 @@ +# Contributing to `geocoding_darwin` + +Please start by taking a look at the general guide to contributing to the `baseflow/flutter-geocoding` repo: +https://github.com/baseflow/flutter-geocoding/blob/main/CONTRIBUTING.md + +## Package Structure + +This plugin serves as a platform implementation plugin as outlined in [federated plugins](https://docs.flutter.dev/packages-and-plugins/developing-packages#federated-plugins). +The sections below will provide an overview of how this plugin implements this portion with iOS and +macOS. + +For making changes to this package, please take a look at [changing federated plugins](https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changing-federated-plugins). + +### Quick Overview + +This plugin implements the platform interface provided by `geocoding_platform_interface` using +the native CLGeocoding APIs (pre iOS 26) or MapKit APIs (post iOS 26) to convert location +information into addresses and vice versa. + +#### SDK Wrappers + +To access native APIS, this plugins uses Dart wrappers of the native library. The native library is +wrapped using using the `ProxyApi` feature from the `pigeon` package. + +The wrappers for the native library can be updated and modified by changing `pigeons/clgeocoder.dart` +or `pigeons/mapkit.dart`. + +The generated files are located at: +* `lib/src/common/clgeocoder.g.dart` +* `lib/src/common/mapkit.g.dart` +* `darwin/Sources/CLGeocoder/CLGeocoderLibrary.g.swift` +* `darwin/Sources/MapKit/MapKitLibrary.g.swift` + +To update the wrapper, follow the steps below: + +##### 1. Make changes to the respective pigeon file that matches the native SDK + +* CLGeocoder Dependency: https://developer.apple.com/documentation/corelocation/clgeocoder +* MapKit Dependency: https://developer.apple.com/documentation/mapkit +* Pigeon files to update: + * `pigeons/clgeocoder.dart` for updates on the native CLGeocoder SDK (deprecated as of iOS 26) + * `pigeons/mapkit.dart` for updated on the native MapKit SDK + + +##### 2. Run the code generator from the terminal + +After applying the updates, generate the code to update the implementations: + +* `dart run pigeon --input pigeons/clgeocoder.dart` +* `dart run pigeon --input pigeons/mapkit.dart` + +##### 3. Update the generated APIs in native code + +Running the `flutter build` command from step 1 again should provide build errors and indicate what +needs to be done. Alternatively, it can be easier to update native code with the platform's specific +IDE: + +Open `example/ios/` or `example/macos/` in Xcode. + +##### 4. Write API tests + +Assuming a non-static method or constructor was added to the native wrapper, a native test will need +to be added. + +Tests location: `darwin/Tests` \ No newline at end of file diff --git a/geocoding_darwin/LICENSE b/geocoding_darwin/LICENSE new file mode 100644 index 0000000..bd6192f --- /dev/null +++ b/geocoding_darwin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Baseflow + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/geocoding_darwin/README.md b/geocoding_darwin/README.md new file mode 100644 index 0000000..8d6edbc --- /dev/null +++ b/geocoding_darwin/README.md @@ -0,0 +1,37 @@ +# geocoding\_darwin + +The Apple Geocoding implementation of [`geocoding`][1]. + +## Usage + +This package is [endorsed][2], which means you can simply use `geocoding` +normally. This package will be automatically included in your app when you do, +so you do not need to add it to your `pubspec.yaml`. + +However, if you `import` this package to use any of its APIs directly, you +should add it to your `pubspec.yaml` as usual. + +### External Native API + +The plugin also provides a native API accessible by the native code of iOS applications or packages. +This API follows the convention of breaking changes of the Dart API, which means that any changes to +the class that are not backwards compatible will only be made with a major version change of the +plugin. Native code other than this external API does not follow breaking change conventions, so +app or plugin clients should not use any other native APIs. + +The API can be accessed by importing the native plugin `geocoding_darwin`: + +Dart: + +```dart +import 'package:geocoding_darwin/geocoding_darwin.dart'; +``` + +Then you will have access to the native classes `CLGeocoder` and `MapKit`. + +## Contributing + +For information on contributing to this plugin, see [`CONTRIBUTING.md`](CONTRIBUTING.md). + +[1]: https://pub.dev/packages/geocoding +[2]: https://flutter.dev/to/endorsed-federated-plugin \ No newline at end of file diff --git a/geocoding_darwin/analysis_options.yaml b/geocoding_darwin/analysis_options.yaml new file mode 100644 index 0000000..2856055 --- /dev/null +++ b/geocoding_darwin/analysis_options.yaml @@ -0,0 +1,10 @@ +include: package:flutter_lints/flutter.yaml + +analyzer: + exclude: + # Ignore generated files + - "**/*.g.dart" + - "lib/src/generated/*.dart" +linter: + rules: + - public_member_api_docs diff --git a/geocoding_darwin/darwin/.gitignore b/geocoding_darwin/darwin/.gitignore new file mode 100644 index 0000000..9ef6335 --- /dev/null +++ b/geocoding_darwin/darwin/.gitignore @@ -0,0 +1,41 @@ +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +.DS_Store +*.swp +profile + +DerivedData/ +build/ +GeneratedPluginRegistrant.h +GeneratedPluginRegistrant.m + +.build/ +.swiftpm/ + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +/Flutter/Generated.xcconfig +/Flutter/ephemeral/ +/Flutter/flutter_export_environment.sh diff --git a/geocoding_darwin/darwin/geocoding_darwin.podspec b/geocoding_darwin/darwin/geocoding_darwin.podspec new file mode 100644 index 0000000..009766e --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin.podspec @@ -0,0 +1,37 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint geocoding_darwin.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'geocoding_darwin' + s.version = '0.0.1' + s.summary = 'Flutter Geocoding.' + s.description = <<-DESC +A Flutter plugin to convert an address into geocoordinates (geocoding) and reverse. +Downloaded by pub (not CocoaPods). + DESC + s.homepage = 'http://github.com/baseflow/flutter-geocoding' + s.license = { :type => 'MIT', :file => '../LICENSE' } + s.author = { 'Baseflow' => 'hello@baseflow.com' } + s.source = { :http => 'https://github.com/baseflow/flutter-geocoding/tree/main/geocoding_darwin' } + s.source_files = 'geocoding_darwin/Sources/geocoding_darwin/**/*.swift' + s.ios.dependency 'Flutter' + s.osx.dependency 'FlutterMacOS' + s.ios.deployment_target = '12.0' + s.osx.deployment_target = '10.15' + + # Flutter.framework does not contain a i386 slice. + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } + s.xcconfig = { + 'LIBRARY_SEARCH_PATHS' => '$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift', + 'LD_RUNPATH_SEARCH_PATHS' => '/usr/lib/swift', + } + s.swift_version = '5.0' + + # If your plugin requires a privacy manifest, for example if it uses any + # required reason APIs, update the PrivacyInfo.xcprivacy file to describe your + # plugin's privacy impact, and then uncomment this line. For more information, + # see https://developer.apple.com/documentation/bundleresources/privacy_manifest_files + s.resource_bundles = {'geocoding_darwin_privacy' => ['geocoding_darwin/Sources/geocoding_darwin/PrivacyInfo.xcprivacy']} +end + diff --git a/geocoding_darwin/darwin/geocoding_darwin/.swiftpm/xcode/xcuserdata/maurits.xcuserdatad/xcschemes/xcschememanagement.plist b/geocoding_darwin/darwin/geocoding_darwin/.swiftpm/xcode/xcuserdata/maurits.xcuserdatad/xcschemes/xcschememanagement.plist index 0cf3fba..7a10324 100644 --- a/geocoding_darwin/darwin/geocoding_darwin/.swiftpm/xcode/xcuserdata/maurits.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/geocoding_darwin/darwin/geocoding_darwin/.swiftpm/xcode/xcuserdata/maurits.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ geocoding-darwin.xcscheme_^#shared#^_ orderHint - 2 + 1 geocoding_darwin.xcscheme_^#shared#^_ diff --git a/geocoding_darwin/darwin/geocoding_darwin/Package.swift b/geocoding_darwin/darwin/geocoding_darwin/Package.swift new file mode 100644 index 0000000..6a5c02a --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Package.swift @@ -0,0 +1,25 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "geocoding_darwin", + platforms: [ + .iOS("12.0"), + .macOS("10.15") + ], + products: [ + .library(name: "geocoding-darwin", targets: ["geocoding_darwin"]) + ], + dependencies: [], + targets: [ + .target( + name: "geocoding_darwin", + dependencies: [], + resources: [ + .process("PrivacyInfo.xcprivacy"), + ], + ) + ] +) \ No newline at end of file diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLFloorProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLFloorProxyApiDelegate.swift new file mode 100644 index 0000000..7b8771d --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLFloorProxyApiDelegate.swift @@ -0,0 +1,11 @@ +import CoreLocation + +/// ProxyApi implementation for `CLFloor`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class CLFloorProxyApiDelegate: PigeonApiDelegateCLFloor { + func level(pigeonApi: PigeonApiCLFloor, pigeonInstance: CLFloor) throws -> Int64 { + return Int64(pigeonInstance.level) + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLGeocoderLibrary.g.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLGeocoderLibrary.g.swift new file mode 100644 index 0000000..10badc0 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLGeocoderLibrary.g.swift @@ -0,0 +1,1781 @@ +// Autogenerated from Pigeon (v25.5.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon + +import Foundation +import CoreLocation +import Contacts + +#if os(iOS) + import Flutter +#elseif os(macOS) + import FlutterMacOS +#else + #error("Unsupported platform.") +#endif + +/// Error class for passing custom error details to Dart side. +final class PigeonError: Error { + let code: String + let message: String? + let details: Sendable? + + init(code: String, message: String?, details: Sendable?) { + self.code = code + self.message = message + self.details = details + } + + var localizedDescription: String { + return + "PigeonError(code: \(code), message: \(message ?? ""), details: \(details ?? "")" + } +} + +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)", + "\(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(_ value: Any?) -> T? { + if value is NSNull { return nil } + return value as! T? +} + +/// Handles the callback when an object is deallocated. +protocol CLGeocoderLibraryPigeonInternalFinalizerDelegate: AnyObject { + /// Invoked when the strong reference of an object is deallocated in an `InstanceManager`. + func onDeinit(identifier: Int64) +} + + +// Attaches to an object to receive a callback when the object is deallocated. +internal final class CLGeocoderLibraryPigeonInternalFinalizer { + internal static let associatedObjectKey = malloc(1)! + + private let identifier: Int64 + // Reference to the delegate is weak because the callback should be ignored if the + // `InstanceManager` is deallocated. + internal weak var delegate: CLGeocoderLibraryPigeonInternalFinalizerDelegate? + + private init(identifier: Int64, delegate: CLGeocoderLibraryPigeonInternalFinalizerDelegate) { + self.identifier = identifier + self.delegate = delegate + } + + internal static func attach( + to instance: AnyObject, identifier: Int64, delegate: CLGeocoderLibraryPigeonInternalFinalizerDelegate + ) { + let finalizer = CLGeocoderLibraryPigeonInternalFinalizer(identifier: identifier, delegate: delegate) + objc_setAssociatedObject(instance, associatedObjectKey, finalizer, .OBJC_ASSOCIATION_RETAIN) + } + + static func detach(from instance: AnyObject) { + let finalizer = objc_getAssociatedObject(instance, associatedObjectKey) as? CLGeocoderLibraryPigeonInternalFinalizer + if let finalizer = finalizer { + finalizer.delegate = nil + objc_setAssociatedObject(instance, associatedObjectKey, nil, .OBJC_ASSOCIATION_ASSIGN) + } + } + + deinit { + delegate?.onDeinit(identifier: identifier) + } +} + + +/// Maintains instances used to communicate with the corresponding objects in Dart. +/// +/// Objects stored in this container are represented by an object in Dart that is also stored in +/// an InstanceManager with the same identifier. +/// +/// When an instance is added with an identifier, either can be used to retrieve the other. +/// +/// Added instances are added as a weak reference and a strong reference. When the strong +/// reference is removed and the weak reference is deallocated,`CLGeocoderLibraryPigeonInternalFinalizerDelegate.onDeinit` +/// is called with the instance's identifier. However, if the strong reference is removed and then the identifier is +/// retrieved with the intention to pass the identifier to Dart (e.g. by calling `identifierWithStrongReference`), +/// the strong reference to the instance is re-added. The strong reference will then need to be removed manually +/// again. +/// +/// Accessing and inserting to an InstanceManager is thread safe. +final class CLGeocoderLibraryPigeonInstanceManager { + // Identifiers are locked to a specific range to avoid collisions with objects + // created simultaneously from Dart. + // Host uses identifiers >= 2^16 and Dart is expected to use values n where, + // 0 <= n < 2^16. + private static let minHostCreatedIdentifier: Int64 = 65536 + + private let lockQueue = DispatchQueue(label: "CLGeocoderLibraryPigeonInstanceManager") + private let identifiers: NSMapTable = NSMapTable( + keyOptions: [.weakMemory, .objectPointerPersonality], valueOptions: .strongMemory) + private let weakInstances: NSMapTable = NSMapTable( + keyOptions: .strongMemory, valueOptions: [.weakMemory, .objectPointerPersonality]) + private let strongInstances: NSMapTable = NSMapTable( + keyOptions: .strongMemory, valueOptions: [.strongMemory, .objectPointerPersonality]) + private let finalizerDelegate: CLGeocoderLibraryPigeonInternalFinalizerDelegate + private var nextIdentifier: Int64 = minHostCreatedIdentifier + + public init(finalizerDelegate: CLGeocoderLibraryPigeonInternalFinalizerDelegate) { + self.finalizerDelegate = finalizerDelegate + } + + /// Adds a new instance that was instantiated from Dart. + /// + /// The same instance can be added multiple times, but each identifier must be unique. This allows + /// two objects that are equivalent (e.g. conforms to `Equatable`) to both be added. + /// + /// - Parameters: + /// - instance: the instance to be stored + /// - identifier: the identifier to be paired with instance. This value must be >= 0 and unique + func addDartCreatedInstance(_ instance: AnyObject, withIdentifier identifier: Int64) { + lockQueue.async { + self.addInstance(instance, withIdentifier: identifier) + } + } + + /// Adds a new instance that was instantiated from the host platform. + /// + /// - Parameters: + /// - instance: the instance to be stored. This must be unique to all other added instances. + /// - Returns: the unique identifier (>= 0) stored with instance + func addHostCreatedInstance(_ instance: AnyObject) -> Int64 { + assert(!containsInstance(instance), "Instance of \(instance) has already been added.") + var identifier: Int64 = -1 + lockQueue.sync { + identifier = nextIdentifier + nextIdentifier += 1 + self.addInstance(instance, withIdentifier: identifier) + } + return identifier + } + + /// Removes `instanceIdentifier` and its associated strongly referenced instance, if present, from the manager. + /// + /// - Parameters: + /// - instanceIdentifier: the identifier paired to an instance. + /// - Returns: removed instance if the manager contains the given identifier, otherwise `nil` if + /// the manager doesn't contain the value + func removeInstance(withIdentifier instanceIdentifier: Int64) throws -> T? { + var instance: AnyObject? = nil + lockQueue.sync { + instance = strongInstances.object(forKey: NSNumber(value: instanceIdentifier)) + strongInstances.removeObject(forKey: NSNumber(value: instanceIdentifier)) + } + return instance as? T + } + + /// Retrieves the instance associated with identifier. + /// + /// - Parameters: + /// - instanceIdentifier: the identifier associated with an instance + /// - Returns: the instance associated with `instanceIdentifier` if the manager contains the value, otherwise + /// `nil` if the manager doesn't contain the value + func instance(forIdentifier instanceIdentifier: Int64) -> T? { + var instance: AnyObject? = nil + lockQueue.sync { + instance = weakInstances.object(forKey: NSNumber(value: instanceIdentifier)) + } + return instance as? T + } + + private func addInstance(_ instance: AnyObject, withIdentifier identifier: Int64) { + assert(identifier >= 0) + assert( + weakInstances.object(forKey: identifier as NSNumber) == nil, + "Identifier has already been added: \(identifier)") + identifiers.setObject(NSNumber(value: identifier), forKey: instance) + weakInstances.setObject(instance, forKey: NSNumber(value: identifier)) + strongInstances.setObject(instance, forKey: NSNumber(value: identifier)) + CLGeocoderLibraryPigeonInternalFinalizer.attach(to: instance, identifier: identifier, delegate: finalizerDelegate) + } + + /// Retrieves the identifier paired with an instance. + /// + /// If the manager contains a strong reference to `instance`, it will return the identifier + /// associated with `instance`. If the manager contains only a weak reference to `instance`, a new + /// strong reference to `instance` will be added and will need to be removed again with `removeInstance`. + /// + /// If this method returns a nonnull identifier, this method also expects the Dart + /// `CLGeocoderLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart instance the + /// identifier is associated with. + /// + /// - Parameters: + /// - instance: an instance that may be stored in the manager + /// - Returns: the identifier associated with `instance` if the manager contains the value, otherwise + /// `nil` if the manager doesn't contain the value + func identifierWithStrongReference(forInstance instance: AnyObject) -> Int64? { + var identifier: Int64? = nil + lockQueue.sync { + if let existingIdentifier = identifiers.object(forKey: instance)?.int64Value { + strongInstances.setObject(instance, forKey: NSNumber(value: existingIdentifier)) + identifier = existingIdentifier + } + } + return identifier + } + + /// Whether this manager contains the given `instance`. + /// + /// - Parameters: + /// - instance: the instance whose presence in this manager is to be tested + /// - Returns: whether this manager contains the given `instance` + func containsInstance(_ instance: AnyObject) -> Bool { + var containsInstance = false + lockQueue.sync { + containsInstance = identifiers.object(forKey: instance) != nil + } + return containsInstance + } + + /// Removes all of the instances from this manager. + /// + /// The manager will be empty after this call returns. + func removeAllObjects() throws { + lockQueue.sync { + let weakInstancesEnumerator = weakInstances.objectEnumerator()! + while let instance = weakInstancesEnumerator.nextObject() { + CLGeocoderLibraryPigeonInternalFinalizer.detach(from: instance as AnyObject) + } + identifiers.removeAllObjects() + weakInstances.removeAllObjects() + strongInstances.removeAllObjects() + nextIdentifier = CLGeocoderLibraryPigeonInstanceManager.minHostCreatedIdentifier + } + } + + /// The number of instances stored as a strong reference. + /// + /// For debugging and testing purposes. + internal var strongInstanceCount: Int { + var count: Int = 0 + lockQueue.sync { + count = strongInstances.count + } + return count + } + + /// The number of instances stored as a weak reference. + /// + /// For debugging and testing purposes. NSMapTables that store keys or objects as weak + /// reference will be reclaimed non-deterministically. + internal var weakInstanceCount: Int { + var count: Int = 0 + lockQueue.sync { + count = weakInstances.count + } + return count + } +} + + +private class CLGeocoderLibraryPigeonInstanceManagerApi { + /// The codec used for serializing messages. + var codec: FlutterStandardMessageCodec { CLGeocoderLibraryPigeonCodec.shared } + + /// Handles sending and receiving messages with Dart. + unowned let binaryMessenger: FlutterBinaryMessenger + + init(binaryMessenger: FlutterBinaryMessenger) { + self.binaryMessenger = binaryMessenger + } + + /// Sets up an instance of `CLGeocoderLibraryPigeonInstanceManagerApi` to handle messages through the `binaryMessenger`. + static func setUpMessageHandlers(binaryMessenger: FlutterBinaryMessenger, instanceManager: CLGeocoderLibraryPigeonInstanceManager?) { + let codec = CLGeocoderLibraryPigeonCodec.shared + let removeStrongReferenceChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.PigeonInternalInstanceManager.removeStrongReference", binaryMessenger: binaryMessenger, codec: codec) + if let instanceManager = instanceManager { + removeStrongReferenceChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let identifierArg = args[0] as! Int64 + do { + let _: AnyObject? = try instanceManager.removeInstance(withIdentifier: identifierArg) + reply(wrapResult(nil)) + } catch { + reply(wrapError(error)) + } + } + } else { + removeStrongReferenceChannel.setMessageHandler(nil) + } + let clearChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.PigeonInternalInstanceManager.clear", binaryMessenger: binaryMessenger, codec: codec) + if let instanceManager = instanceManager { + clearChannel.setMessageHandler { _, reply in + do { + try instanceManager.removeAllObjects() + reply(wrapResult(nil)) + } catch { + reply(wrapError(error)) + } + } + } else { + clearChannel.setMessageHandler(nil) + } + } + + /// Sends a message to the Dart `InstanceManager` to remove the strong reference of the instance associated with `identifier`. + func removeStrongReference(identifier identifierArg: Int64, completion: @escaping (Result) -> Void) { + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.PigeonInternalInstanceManager.removeStrongReference" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([identifierArg] 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(())) + } + } + } +} +protocol CLGeocoderLibraryPigeonProxyApiDelegate { + /// An implementation of [PigeonApiCLFloor] used to add a new Dart instance of + /// `CLFloor` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiCLFloor(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLFloor + /// An implementation of [PigeonApiCLGeocoder] used to add a new Dart instance of + /// `CLGeocoder` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiCLGeocoder(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLGeocoder + /// An implementation of [PigeonApiCLLocation] used to add a new Dart instance of + /// `CLLocation` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiCLLocation(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLLocation + /// An implementation of [PigeonApiCLLocationCoordinate2D] used to add a new Dart instance of + /// `CLLocationCoordinate2D` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiCLLocationCoordinate2D(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLLocationCoordinate2D + /// An implementation of [PigeonApiCLLocationSourceInformation] used to add a new Dart instance of + /// `CLLocationSourceInformation` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiCLLocationSourceInformation(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLLocationSourceInformation + /// An implementation of [PigeonApiCLPlacemark] used to add a new Dart instance of + /// `CLPlacemark` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiCLPlacemark(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLPlacemark + /// An implementation of [PigeonApiCNPostalAddress] used to add a new Dart instance of + /// `CNPostalAddress` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiCNPostalAddress(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCNPostalAddress + /// An implementation of [PigeonApiLocale] used to add a new Dart instance of + /// `Locale` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiLocale(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiLocale + /// An implementation of [PigeonApiNSObject] used to add a new Dart instance of + /// `NSObject` to the Dart `InstanceManager` and make calls to Dart. + func pigeonApiNSObject(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiNSObject +} + +open class CLGeocoderLibraryPigeonProxyApiRegistrar { + let binaryMessenger: FlutterBinaryMessenger + let apiDelegate: CLGeocoderLibraryPigeonProxyApiDelegate + let instanceManager: CLGeocoderLibraryPigeonInstanceManager + /// Whether APIs should ignore calling to Dart. + public var ignoreCallsToDart = false + private var _codec: FlutterStandardMessageCodec? + var codec: FlutterStandardMessageCodec { + if _codec == nil { + _codec = FlutterStandardMessageCodec( + readerWriter: CLGeocoderLibraryPigeonInternalProxyApiCodecReaderWriter(pigeonRegistrar: self)) + } + return _codec! + } + + private class InstanceManagerApiFinalizerDelegate: CLGeocoderLibraryPigeonInternalFinalizerDelegate { + let api: CLGeocoderLibraryPigeonInstanceManagerApi + + init(_ api: CLGeocoderLibraryPigeonInstanceManagerApi) { + self.api = api + } + + public func onDeinit(identifier: Int64) { + api.removeStrongReference(identifier: identifier) { + _ in + } + } + } + + init(binaryMessenger: FlutterBinaryMessenger, apiDelegate: CLGeocoderLibraryPigeonProxyApiDelegate) { + self.binaryMessenger = binaryMessenger + self.apiDelegate = apiDelegate + self.instanceManager = CLGeocoderLibraryPigeonInstanceManager( + finalizerDelegate: InstanceManagerApiFinalizerDelegate( + CLGeocoderLibraryPigeonInstanceManagerApi(binaryMessenger: binaryMessenger))) + } + + func setUp() { + CLGeocoderLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger: binaryMessenger, instanceManager: instanceManager) + PigeonApiCLGeocoder.setUpMessageHandlers(binaryMessenger: binaryMessenger, api: apiDelegate.pigeonApiCLGeocoder(self)) + PigeonApiCLLocation.setUpMessageHandlers(binaryMessenger: binaryMessenger, api: apiDelegate.pigeonApiCLLocation(self)) + PigeonApiLocale.setUpMessageHandlers(binaryMessenger: binaryMessenger, api: apiDelegate.pigeonApiLocale(self)) + PigeonApiNSObject.setUpMessageHandlers(binaryMessenger: binaryMessenger, api: apiDelegate.pigeonApiNSObject(self)) + } + func tearDown() { + CLGeocoderLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger: binaryMessenger, instanceManager: nil) + PigeonApiCLGeocoder.setUpMessageHandlers(binaryMessenger: binaryMessenger, api: nil) + PigeonApiCLLocation.setUpMessageHandlers(binaryMessenger: binaryMessenger, api: nil) + PigeonApiLocale.setUpMessageHandlers(binaryMessenger: binaryMessenger, api: nil) + PigeonApiNSObject.setUpMessageHandlers(binaryMessenger: binaryMessenger, api: nil) + } +} +private class CLGeocoderLibraryPigeonInternalProxyApiCodecReaderWriter: FlutterStandardReaderWriter { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + + private class CLGeocoderLibraryPigeonInternalProxyApiCodecReader: CLGeocoderLibraryPigeonCodecReader { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + + init(data: Data, pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar) { + self.pigeonRegistrar = pigeonRegistrar + super.init(data: data) + } + + override func readValue(ofType type: UInt8) -> Any? { + switch type { + case 128: + let identifier = self.readValue() + let instance: AnyObject? = pigeonRegistrar.instanceManager.instance( + forIdentifier: identifier is Int64 ? identifier as! Int64 : Int64(identifier as! Int32)) + if instance == nil { + print("Failed to find instance with identifier: \(identifier!)") + } + return instance + default: + return super.readValue(ofType: type) + } + } + } + + private class CLGeocoderLibraryPigeonInternalProxyApiCodecWriter: CLGeocoderLibraryPigeonCodecWriter { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + + init(data: NSMutableData, pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar) { + self.pigeonRegistrar = pigeonRegistrar + super.init(data: data) + } + + override func writeValue(_ value: Any) { + if value is [Any] || value is Bool || value is Data || value is [AnyHashable: Any] || value is Double || value is FlutterStandardTypedData || value is Int64 || value is String || value is KeyValueObservingOptions || value is KeyValueChange || value is KeyValueChangeKey { + super.writeValue(value) + return + } + + + if let instance = value as? CLFloor { + pigeonRegistrar.apiDelegate.pigeonApiCLFloor(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if let instance = value as? CLGeocoder { + pigeonRegistrar.apiDelegate.pigeonApiCLGeocoder(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if let instance = value as? CLLocation { + pigeonRegistrar.apiDelegate.pigeonApiCLLocation(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if let instance = value as? CLLocationCoordinate2DWrapper { + pigeonRegistrar.apiDelegate.pigeonApiCLLocationCoordinate2D(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if #available(iOS 15.0.0, macOS 12.0.0, *), let instance = value as? CLLocationSourceInformation { + pigeonRegistrar.apiDelegate.pigeonApiCLLocationSourceInformation(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if let instance = value as? CLPlacemark { + pigeonRegistrar.apiDelegate.pigeonApiCLPlacemark(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if let instance = value as? CNPostalAddress { + pigeonRegistrar.apiDelegate.pigeonApiCNPostalAddress(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if let instance = value as? LocaleWrapper { + pigeonRegistrar.apiDelegate.pigeonApiLocale(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if let instance = value as? NSObject { + pigeonRegistrar.apiDelegate.pigeonApiNSObject(pigeonRegistrar).pigeonNewInstance( + pigeonInstance: instance + ) { _ in } + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance as AnyObject)!) + return + } + + + if let instance = value as AnyObject?, pigeonRegistrar.instanceManager.containsInstance(instance) + { + super.writeByte(128) + super.writeValue( + pigeonRegistrar.instanceManager.identifierWithStrongReference(forInstance: instance)!) + } else { + print("Unsupported value: \(value) of \(type(of: value))") + assert(false, "Unsupported value for CLGeocoderLibraryPigeonInternalProxyApiCodecWriter") + } + + } + } + + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar) { + self.pigeonRegistrar = pigeonRegistrar + } + + override func reader(with data: Data) -> FlutterStandardReader { + return CLGeocoderLibraryPigeonInternalProxyApiCodecReader(data: data, pigeonRegistrar: pigeonRegistrar) + } + + override func writer(with data: NSMutableData) -> FlutterStandardWriter { + return CLGeocoderLibraryPigeonInternalProxyApiCodecWriter(data: data, pigeonRegistrar: pigeonRegistrar) + } +} + +/// The values that can be returned in a change dictionary. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvalueobservingoptions. +enum KeyValueObservingOptions: Int { + /// Indicates that the change dictionary should provide the new attribute + /// value, if applicable. + case newValue = 0 + /// Indicates that the change dictionary should contain the old attribute + /// value, if applicable. + case oldValue = 1 + /// If specified, a notification should be sent to the observer immediately, + /// before the observer registration method even returns. + case initialValue = 2 + /// Whether separate notifications should be sent to the observer before and + /// after each change, instead of a single notification after the change. + case priorNotification = 3 +} + +/// The kinds of changes that can be observed. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvaluechange. +enum KeyValueChange: Int { + /// Indicates that the value of the observed key path was set to a new value. + case setting = 0 + /// Indicates that an object has been inserted into the to-many relationship + /// that is being observed. + case insertion = 1 + /// Indicates that an object has been removed from the to-many relationship + /// that is being observed. + case removal = 2 + /// Indicates that an object has been replaced in the to-many relationship + /// that is being observed. + case replacement = 3 + /// The value is not recognized by the wrapper. + case unknown = 4 +} + +/// The keys that can appear in the change dictionary. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvaluechangekey. +enum KeyValueChangeKey: Int { + /// If the value of the `KeyValueChangeKey.kind` entry is + /// `KeyValueChange.insertion`, `KeyValueChange.removal`, or + /// `KeyValueChange.replacement`, the value of this key is a Set object that + /// contains the indexes of the inserted, removed, or replaced objects. + case indexes = 0 + /// An object that contains a value corresponding to one of the + /// `KeyValueChange` enum, indicating what sort of change has occurred. + case kind = 1 + /// If the value of the `KeyValueChange.kind` entry is + /// `KeyValueChange.setting, and `KeyValueObservingOptions.newValue` was + /// specified when the observer was registered, the value of this key is the + /// new value for the attribute. + case newValue = 2 + /// If the `KeyValueObservingOptions.priorNotification` option was specified + /// when the observer was registered this notification is sent prior to a + /// change. + case notificationIsPrior = 3 + /// If the value of the `KeyValueChange.kind` entry is + /// `KeyValueChange.setting`, and `KeyValueObservingOptions.old` was specified + /// when the observer was registered, the value of this key is the value + /// before the attribute was changed. + case oldValue = 4 + /// The value is not recognized by the wrapper. + case unknown = 5 +} + +private class CLGeocoderLibraryPigeonCodecReader: FlutterStandardReader { + override func readValue(ofType type: UInt8) -> Any? { + switch type { + case 129: + let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) + if let enumResultAsInt = enumResultAsInt { + return KeyValueObservingOptions(rawValue: enumResultAsInt) + } + return nil + case 130: + let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) + if let enumResultAsInt = enumResultAsInt { + return KeyValueChange(rawValue: enumResultAsInt) + } + return nil + case 131: + let enumResultAsInt: Int? = nilOrValue(self.readValue() as! Int?) + if let enumResultAsInt = enumResultAsInt { + return KeyValueChangeKey(rawValue: enumResultAsInt) + } + return nil + default: + return super.readValue(ofType: type) + } + } +} + +private class CLGeocoderLibraryPigeonCodecWriter: FlutterStandardWriter { + override func writeValue(_ value: Any) { + if let value = value as? KeyValueObservingOptions { + super.writeByte(129) + super.writeValue(value.rawValue) + } else if let value = value as? KeyValueChange { + super.writeByte(130) + super.writeValue(value.rawValue) + } else if let value = value as? KeyValueChangeKey { + super.writeByte(131) + super.writeValue(value.rawValue) + } else { + super.writeValue(value) + } + } +} + +private class CLGeocoderLibraryPigeonCodecReaderWriter: FlutterStandardReaderWriter { + override func reader(with data: Data) -> FlutterStandardReader { + return CLGeocoderLibraryPigeonCodecReader(data: data) + } + + override func writer(with data: NSMutableData) -> FlutterStandardWriter { + return CLGeocoderLibraryPigeonCodecWriter(data: data) + } +} + +class CLGeocoderLibraryPigeonCodec: FlutterStandardMessageCodec, @unchecked Sendable { + static let shared = CLGeocoderLibraryPigeonCodec(readerWriter: CLGeocoderLibraryPigeonCodecReaderWriter()) +} + +protocol PigeonApiDelegateCLFloor { + /// The logical floor of the building. + func level(pigeonApi: PigeonApiCLFloor, pigeonInstance: CLFloor) throws -> Int64 +} + +protocol PigeonApiProtocolCLFloor { +} + +final class PigeonApiCLFloor: PigeonApiProtocolCLFloor { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateCLFloor + ///An implementation of [NSObject] used to access callback methods + var pigeonApiNSObject: PigeonApiNSObject { + return pigeonRegistrar.apiDelegate.pigeonApiNSObject(pigeonRegistrar) + } + + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateCLFloor) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + ///Creates a Dart instance of CLFloor and attaches it to [pigeonInstance]. + func pigeonNewInstance(pigeonInstance: CLFloor, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let levelArg = try! pigeonDelegate.level(pigeonApi: self, pigeonInstance: pigeonInstance) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.CLFloor.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg, levelArg] 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(())) + } + } + } + } +} +protocol PigeonApiDelegateCLGeocoder { + /// Creates a [CLGeocoder]. + func pigeonDefaultConstructor(pigeonApi: PigeonApiCLGeocoder) throws -> CLGeocoder + /// Submits a forward-geocoding requesting using the specified address string + /// and locale information. + func geocodeAddressString(pigeonApi: PigeonApiCLGeocoder, pigeonInstance: CLGeocoder, address: String, locale: LocaleWrapper?, completion: @escaping (Result<[CLPlacemark]?, Error>) -> Void) + /// Submits a forward-geocoding requesting using the specified locale and + /// Contacts framework information. + func geocodePostalAddress(pigeonApi: PigeonApiCLGeocoder, pigeonInstance: CLGeocoder, postalAddress: CNPostalAddress, locale: LocaleWrapper?, completion: @escaping (Result<[CLPlacemark]?, Error>) -> Void) + /// Submits a reverse-geocoding request for the specified location. + func reverseGeocodeLocation(pigeonApi: PigeonApiCLGeocoder, pigeonInstance: CLGeocoder, location: CLLocation, locale: LocaleWrapper?, completion: @escaping (Result<[CLPlacemark]?, Error>) -> Void) +} + +protocol PigeonApiProtocolCLGeocoder { +} + +final class PigeonApiCLGeocoder: PigeonApiProtocolCLGeocoder { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateCLGeocoder + ///An implementation of [NSObject] used to access callback methods + var pigeonApiNSObject: PigeonApiNSObject { + return pigeonRegistrar.apiDelegate.pigeonApiNSObject(pigeonRegistrar) + } + + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateCLGeocoder) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + static func setUpMessageHandlers(binaryMessenger: FlutterBinaryMessenger, api: PigeonApiCLGeocoder?) { + let codec: FlutterStandardMessageCodec = + api != nil + ? FlutterStandardMessageCodec( + readerWriter: CLGeocoderLibraryPigeonInternalProxyApiCodecReaderWriter(pigeonRegistrar: api!.pigeonRegistrar)) + : FlutterStandardMessageCodec.sharedInstance() + let pigeonDefaultConstructorChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLGeocoder.pigeon_defaultConstructor", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + pigeonDefaultConstructorChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonIdentifierArg = args[0] as! Int64 + do { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( +try api.pigeonDelegate.pigeonDefaultConstructor(pigeonApi: api), +withIdentifier: pigeonIdentifierArg) + reply(wrapResult(nil)) + } catch { + reply(wrapError(error)) + } + } + } else { + pigeonDefaultConstructorChannel.setMessageHandler(nil) + } + let geocodeAddressStringChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLGeocoder.geocodeAddressString", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + geocodeAddressStringChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLGeocoder + let addressArg = args[1] as! String + let localeArg: LocaleWrapper? = nilOrValue(args[2]) + api.pigeonDelegate.geocodeAddressString(pigeonApi: api, pigeonInstance: pigeonInstanceArg, address: addressArg, locale: localeArg) { result in + switch result { + case .success(let res): + reply(wrapResult(res)) + case .failure(let error): + reply(wrapError(error)) + } + } + } + } else { + geocodeAddressStringChannel.setMessageHandler(nil) + } + let geocodePostalAddressChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLGeocoder.geocodePostalAddress", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + geocodePostalAddressChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLGeocoder + let postalAddressArg = args[1] as! CNPostalAddress + let localeArg: LocaleWrapper? = nilOrValue(args[2]) + api.pigeonDelegate.geocodePostalAddress(pigeonApi: api, pigeonInstance: pigeonInstanceArg, postalAddress: postalAddressArg, locale: localeArg) { result in + switch result { + case .success(let res): + reply(wrapResult(res)) + case .failure(let error): + reply(wrapError(error)) + } + } + } + } else { + geocodePostalAddressChannel.setMessageHandler(nil) + } + let reverseGeocodeLocationChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLGeocoder.reverseGeocodeLocation", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + reverseGeocodeLocationChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLGeocoder + let locationArg = args[1] as! CLLocation + let localeArg: LocaleWrapper? = nilOrValue(args[2]) + api.pigeonDelegate.reverseGeocodeLocation(pigeonApi: api, pigeonInstance: pigeonInstanceArg, location: locationArg, locale: localeArg) { result in + switch result { + case .success(let res): + reply(wrapResult(res)) + case .failure(let error): + reply(wrapError(error)) + } + } + } + } else { + reverseGeocodeLocationChannel.setMessageHandler(nil) + } + } + + ///Creates a Dart instance of CLGeocoder and attaches it to [pigeonInstance]. + func pigeonNewInstance(pigeonInstance: CLGeocoder, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.CLGeocoder.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg] 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(())) + } + } + } + } +} +protocol PigeonApiDelegateCLLocation { + /// Creates a [CLLocation] based on the supplied coordinates. + func pigeonDefaultConstructor(pigeonApi: PigeonApiCLLocation, latitude: Double, longitude: Double) throws -> CLLocation + /// The geographical coordinate information. + func getCoordinate(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> CLLocationCoordinate2DWrapper + /// The altitude above mean sea level associated with a location, measured in + /// meters. + func getAltitude(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double + /// The altitude as a height above the World Geodetic System 1984 (WGS84) + /// ellipsoid, measured in meters. + func getEllipsoidalAltitude(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double + /// The logical floor of the building in which the user is located. + func getFloor(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> CLFloor? + /// The time at which this location was determined (in seconds since epoch). + func getTimestamp(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Int64 + /// Information about the source that provides the location. + @available(iOS 15.0.0, macOS 12.0.0, *) + func getSourceInformation(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> CLLocationSourceInformation? + /// The radius of uncertainty for the location, measured in meters. + func getHorizontalAccuracy(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double + /// The validity of the altitude values, and their estimated uncertainty, + /// measured in meters. + func getVerticalAccuracy(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double + /// The instantaneous speed of the device, measured in meters per second. + func getSpeed(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double + /// The accuracy of the speed value, measured in meters per second. + func getSpeedAccuracy(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double + /// The direction in which the device is traveling, measured in degrees and + /// relative to due north. + func getCourse(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double + /// The accuracy of the course value, measured in degrees. + func getCourseAccuracy(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double + /// Returns the distance (measured in meters) from the current object’s + /// location to the specified location. + func distance(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation, from: CLLocation) throws -> Double +} + +protocol PigeonApiProtocolCLLocation { +} + +final class PigeonApiCLLocation: PigeonApiProtocolCLLocation { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateCLLocation + ///An implementation of [NSObject] used to access callback methods + var pigeonApiNSObject: PigeonApiNSObject { + return pigeonRegistrar.apiDelegate.pigeonApiNSObject(pigeonRegistrar) + } + + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateCLLocation) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + static func setUpMessageHandlers(binaryMessenger: FlutterBinaryMessenger, api: PigeonApiCLLocation?) { + let codec: FlutterStandardMessageCodec = + api != nil + ? FlutterStandardMessageCodec( + readerWriter: CLGeocoderLibraryPigeonInternalProxyApiCodecReaderWriter(pigeonRegistrar: api!.pigeonRegistrar)) + : FlutterStandardMessageCodec.sharedInstance() + let pigeonDefaultConstructorChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.pigeon_defaultConstructor", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + pigeonDefaultConstructorChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonIdentifierArg = args[0] as! Int64 + let latitudeArg = args[1] as! Double + let longitudeArg = args[2] as! Double + do { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( +try api.pigeonDelegate.pigeonDefaultConstructor(pigeonApi: api, latitude: latitudeArg, longitude: longitudeArg), +withIdentifier: pigeonIdentifierArg) + reply(wrapResult(nil)) + } catch { + reply(wrapError(error)) + } + } + } else { + pigeonDefaultConstructorChannel.setMessageHandler(nil) + } + let getCoordinateChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getCoordinate", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getCoordinateChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getCoordinate(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getCoordinateChannel.setMessageHandler(nil) + } + let getAltitudeChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getAltitude", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getAltitudeChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getAltitude(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getAltitudeChannel.setMessageHandler(nil) + } + let getEllipsoidalAltitudeChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getEllipsoidalAltitude", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getEllipsoidalAltitudeChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getEllipsoidalAltitude(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getEllipsoidalAltitudeChannel.setMessageHandler(nil) + } + let getFloorChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getFloor", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getFloorChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getFloor(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getFloorChannel.setMessageHandler(nil) + } + let getTimestampChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getTimestamp", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getTimestampChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getTimestamp(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getTimestampChannel.setMessageHandler(nil) + } + if #available(iOS 15.0.0, macOS 12.0.0, *) { + let getSourceInformationChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getSourceInformation", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getSourceInformationChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getSourceInformation(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getSourceInformationChannel.setMessageHandler(nil) + } + } else { + let getSourceInformationChannel = FlutterBasicMessageChannel( + name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getSourceInformation", + binaryMessenger: binaryMessenger, codec: codec) + if api != nil { + getSourceInformationChannel.setMessageHandler { message, reply in + reply(wrapError(FlutterError(code: "PigeonUnsupportedOperationError", + message: "Call to getSourceInformation requires @available(iOS 15.0.0, macOS 12.0.0, *).", + details: nil + ))) + } + } else { + getSourceInformationChannel.setMessageHandler(nil) + } + } + let getHorizontalAccuracyChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getHorizontalAccuracy", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getHorizontalAccuracyChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getHorizontalAccuracy(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getHorizontalAccuracyChannel.setMessageHandler(nil) + } + let getVerticalAccuracyChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getVerticalAccuracy", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getVerticalAccuracyChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getVerticalAccuracy(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getVerticalAccuracyChannel.setMessageHandler(nil) + } + let getSpeedChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getSpeed", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getSpeedChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getSpeed(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getSpeedChannel.setMessageHandler(nil) + } + let getSpeedAccuracyChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getSpeedAccuracy", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getSpeedAccuracyChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getSpeedAccuracy(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getSpeedAccuracyChannel.setMessageHandler(nil) + } + let getCourseChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getCourse", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getCourseChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getCourse(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getCourseChannel.setMessageHandler(nil) + } + let getCourseAccuracyChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.getCourseAccuracy", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getCourseAccuracyChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + do { + let result = try api.pigeonDelegate.getCourseAccuracy(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getCourseAccuracyChannel.setMessageHandler(nil) + } + let distanceChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.CLLocation.distance", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + distanceChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! CLLocation + let fromArg = args[1] as! CLLocation + do { + let result = try api.pigeonDelegate.distance(pigeonApi: api, pigeonInstance: pigeonInstanceArg, from: fromArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + distanceChannel.setMessageHandler(nil) + } + } + + ///Creates a Dart instance of CLLocation and attaches it to [pigeonInstance]. + func pigeonNewInstance(pigeonInstance: CLLocation, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.CLLocation.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg] 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(())) + } + } + } + } +} +protocol PigeonApiDelegateCLLocationCoordinate2D { + /// The latitude in degrees. + func latitude(pigeonApi: PigeonApiCLLocationCoordinate2D, pigeonInstance: CLLocationCoordinate2DWrapper) throws -> Double + /// The longitude in degrees. + func longitude(pigeonApi: PigeonApiCLLocationCoordinate2D, pigeonInstance: CLLocationCoordinate2DWrapper) throws -> Double +} + +protocol PigeonApiProtocolCLLocationCoordinate2D { +} + +final class PigeonApiCLLocationCoordinate2D: PigeonApiProtocolCLLocationCoordinate2D { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateCLLocationCoordinate2D + ///An implementation of [NSObject] used to access callback methods + var pigeonApiNSObject: PigeonApiNSObject { + return pigeonRegistrar.apiDelegate.pigeonApiNSObject(pigeonRegistrar) + } + + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateCLLocationCoordinate2D) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + ///Creates a Dart instance of CLLocationCoordinate2D and attaches it to [pigeonInstance]. + func pigeonNewInstance(pigeonInstance: CLLocationCoordinate2DWrapper, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let latitudeArg = try! pigeonDelegate.latitude(pigeonApi: self, pigeonInstance: pigeonInstance) + let longitudeArg = try! pigeonDelegate.longitude(pigeonApi: self, pigeonInstance: pigeonInstance) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.CLLocationCoordinate2D.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg, latitudeArg, longitudeArg] 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(())) + } + } + } + } +} +protocol PigeonApiDelegateCLLocationSourceInformation { + /// A Boolean value that indicates whether the system receives the location + /// from an external accessory. + @available(iOS 15.0.0, macOS 12.0.0, *) + func isProducedByAccessory(pigeonApi: PigeonApiCLLocationSourceInformation, pigeonInstance: CLLocationSourceInformation) throws -> Bool + /// A Boolean value that indicates whether the system generates the location + /// using on-device software simulation. + @available(iOS 15.0.0, macOS 12.0.0, *) + func isSimulatedBySoftware(pigeonApi: PigeonApiCLLocationSourceInformation, pigeonInstance: CLLocationSourceInformation) throws -> Bool +} + +protocol PigeonApiProtocolCLLocationSourceInformation { +} + +final class PigeonApiCLLocationSourceInformation: PigeonApiProtocolCLLocationSourceInformation { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateCLLocationSourceInformation + ///An implementation of [NSObject] used to access callback methods + var pigeonApiNSObject: PigeonApiNSObject { + return pigeonRegistrar.apiDelegate.pigeonApiNSObject(pigeonRegistrar) + } + + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateCLLocationSourceInformation) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + ///Creates a Dart instance of CLLocationSourceInformation and attaches it to [pigeonInstance]. + @available(iOS 15.0.0, macOS 12.0.0, *) + func pigeonNewInstance(pigeonInstance: CLLocationSourceInformation, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let isProducedByAccessoryArg = try! pigeonDelegate.isProducedByAccessory(pigeonApi: self, pigeonInstance: pigeonInstance) + let isSimulatedBySoftwareArg = try! pigeonDelegate.isSimulatedBySoftware(pigeonApi: self, pigeonInstance: pigeonInstance) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.CLLocationSourceInformation.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg, isProducedByAccessoryArg, isSimulatedBySoftwareArg] 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(())) + } + } + } + } +} +protocol PigeonApiDelegateCLPlacemark { + /// The [CLLocation] containing latitude and longitude information. + func location(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> CLLocation? + /// The name of the placemark. + func name(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// The street address associated with the placemark. + func thoroughfare(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// Additional street-level information for the placemark. + func subThoroughfare(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// The city associated with the placemark. + func locality(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// Additional city-level information for the placemark. + func subLocality(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// The state or province associated with the placemark. + func administrativeArea(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// Additional administrative area information for the placemark. + func subAdministrativeArea(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// The postal code associated with the placemark. + func postalCode(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// The abbreviated country or region name. + func isoCountryCode(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// The name of the country or region associated with the placemark. + func country(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? + /// The postal address associated with the location, formatted for use with the Contacts framework. + func postalAddress(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> CNPostalAddress? +} + +protocol PigeonApiProtocolCLPlacemark { +} + +final class PigeonApiCLPlacemark: PigeonApiProtocolCLPlacemark { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateCLPlacemark + ///An implementation of [NSObject] used to access callback methods + var pigeonApiNSObject: PigeonApiNSObject { + return pigeonRegistrar.apiDelegate.pigeonApiNSObject(pigeonRegistrar) + } + + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateCLPlacemark) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + ///Creates a Dart instance of CLPlacemark and attaches it to [pigeonInstance]. + func pigeonNewInstance(pigeonInstance: CLPlacemark, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let locationArg = try! pigeonDelegate.location(pigeonApi: self, pigeonInstance: pigeonInstance) + let nameArg = try! pigeonDelegate.name(pigeonApi: self, pigeonInstance: pigeonInstance) + let thoroughfareArg = try! pigeonDelegate.thoroughfare(pigeonApi: self, pigeonInstance: pigeonInstance) + let subThoroughfareArg = try! pigeonDelegate.subThoroughfare(pigeonApi: self, pigeonInstance: pigeonInstance) + let localityArg = try! pigeonDelegate.locality(pigeonApi: self, pigeonInstance: pigeonInstance) + let subLocalityArg = try! pigeonDelegate.subLocality(pigeonApi: self, pigeonInstance: pigeonInstance) + let administrativeAreaArg = try! pigeonDelegate.administrativeArea(pigeonApi: self, pigeonInstance: pigeonInstance) + let subAdministrativeAreaArg = try! pigeonDelegate.subAdministrativeArea(pigeonApi: self, pigeonInstance: pigeonInstance) + let postalCodeArg = try! pigeonDelegate.postalCode(pigeonApi: self, pigeonInstance: pigeonInstance) + let isoCountryCodeArg = try! pigeonDelegate.isoCountryCode(pigeonApi: self, pigeonInstance: pigeonInstance) + let countryArg = try! pigeonDelegate.country(pigeonApi: self, pigeonInstance: pigeonInstance) + let postalAddressArg = try! pigeonDelegate.postalAddress(pigeonApi: self, pigeonInstance: pigeonInstance) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.CLPlacemark.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg, locationArg, nameArg, thoroughfareArg, subThoroughfareArg, localityArg, subLocalityArg, administrativeAreaArg, subAdministrativeAreaArg, postalCodeArg, isoCountryCodeArg, countryArg, postalAddressArg] 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(())) + } + } + } + } +} +protocol PigeonApiDelegateCNPostalAddress { + /// The street name in a postal address. + func street(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String + /// The city name in a postal address. + func city(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String + /// The state name in a postal address. + func state(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String + /// The postal code in a postal address. + func postalCode(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String + /// The country or region name in a postal address. + func country(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String + /// The ISO country code for the country or region in a postal address, using + /// the ISO 3166-1 alpha-2 standard. + func isoCountryCode(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String + /// The subadministrative area (such as a county or other region) in a postal + /// address. + func subAdministrativeArea(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String + /// Additional information associated with the location, typically defined at + /// the city or town level, in a postal address. + func subLocality(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String +} + +protocol PigeonApiProtocolCNPostalAddress { +} + +final class PigeonApiCNPostalAddress: PigeonApiProtocolCNPostalAddress { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateCNPostalAddress + ///An implementation of [NSObject] used to access callback methods + var pigeonApiNSObject: PigeonApiNSObject { + return pigeonRegistrar.apiDelegate.pigeonApiNSObject(pigeonRegistrar) + } + + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateCNPostalAddress) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + ///Creates a Dart instance of CNPostalAddress and attaches it to [pigeonInstance]. + func pigeonNewInstance(pigeonInstance: CNPostalAddress, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let streetArg = try! pigeonDelegate.street(pigeonApi: self, pigeonInstance: pigeonInstance) + let cityArg = try! pigeonDelegate.city(pigeonApi: self, pigeonInstance: pigeonInstance) + let stateArg = try! pigeonDelegate.state(pigeonApi: self, pigeonInstance: pigeonInstance) + let postalCodeArg = try! pigeonDelegate.postalCode(pigeonApi: self, pigeonInstance: pigeonInstance) + let countryArg = try! pigeonDelegate.country(pigeonApi: self, pigeonInstance: pigeonInstance) + let isoCountryCodeArg = try! pigeonDelegate.isoCountryCode(pigeonApi: self, pigeonInstance: pigeonInstance) + let subAdministrativeAreaArg = try! pigeonDelegate.subAdministrativeArea(pigeonApi: self, pigeonInstance: pigeonInstance) + let subLocalityArg = try! pigeonDelegate.subLocality(pigeonApi: self, pigeonInstance: pigeonInstance) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg, streetArg, cityArg, stateArg, postalCodeArg, countryArg, isoCountryCodeArg, subAdministrativeAreaArg, subLocalityArg] 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(())) + } + } + } + } +} +protocol PigeonApiDelegateLocale { + /// Creates a [Locale] matching the given identifier. + func pigeonDefaultConstructor(pigeonApi: PigeonApiLocale, identifier: String) throws -> LocaleWrapper + /// The identifier of the locale. + func getIdentifier(pigeonApi: PigeonApiLocale, pigeonInstance: LocaleWrapper) throws -> String +} + +protocol PigeonApiProtocolLocale { +} + +final class PigeonApiLocale: PigeonApiProtocolLocale { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateLocale + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateLocale) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + static func setUpMessageHandlers(binaryMessenger: FlutterBinaryMessenger, api: PigeonApiLocale?) { + let codec: FlutterStandardMessageCodec = + api != nil + ? FlutterStandardMessageCodec( + readerWriter: CLGeocoderLibraryPigeonInternalProxyApiCodecReaderWriter(pigeonRegistrar: api!.pigeonRegistrar)) + : FlutterStandardMessageCodec.sharedInstance() + let pigeonDefaultConstructorChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.Locale.pigeon_defaultConstructor", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + pigeonDefaultConstructorChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonIdentifierArg = args[0] as! Int64 + let identifierArg = args[1] as! String + do { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( +try api.pigeonDelegate.pigeonDefaultConstructor(pigeonApi: api, identifier: identifierArg), +withIdentifier: pigeonIdentifierArg) + reply(wrapResult(nil)) + } catch { + reply(wrapError(error)) + } + } + } else { + pigeonDefaultConstructorChannel.setMessageHandler(nil) + } + let getIdentifierChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.Locale.getIdentifier", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + getIdentifierChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! LocaleWrapper + do { + let result = try api.pigeonDelegate.getIdentifier(pigeonApi: api, pigeonInstance: pigeonInstanceArg) + reply(wrapResult(result)) + } catch { + reply(wrapError(error)) + } + } + } else { + getIdentifierChannel.setMessageHandler(nil) + } + } + + ///Creates a Dart instance of Locale and attaches it to [pigeonInstance]. + func pigeonNewInstance(pigeonInstance: LocaleWrapper, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.Locale.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg] 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(())) + } + } + } + } +} +protocol PigeonApiDelegateNSObject { + func pigeonDefaultConstructor(pigeonApi: PigeonApiNSObject) throws -> NSObject + /// Registers the observer object to receive KVO notifications for the key + /// path relative to the object receiving this message. + func addObserver(pigeonApi: PigeonApiNSObject, pigeonInstance: NSObject, observer: NSObject, keyPath: String, options: [KeyValueObservingOptions]) throws + /// Stops the observer object from receiving change notifications for the + /// property specified by the key path relative to the object receiving this + /// message. + func removeObserver(pigeonApi: PigeonApiNSObject, pigeonInstance: NSObject, observer: NSObject, keyPath: String) throws +} + +protocol PigeonApiProtocolNSObject { + /// Informs the observing object when the value at the specified key path + /// relative to the observed object has changed. + func observeValue(pigeonInstance pigeonInstanceArg: NSObject, keyPath keyPathArg: String?, object objectArg: NSObject?, change changeArg: [KeyValueChangeKey: Any?]?, completion: @escaping (Result) -> Void) +} + +final class PigeonApiNSObject: PigeonApiProtocolNSObject { + unowned let pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar + let pigeonDelegate: PigeonApiDelegateNSObject + init(pigeonRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar, delegate: PigeonApiDelegateNSObject) { + self.pigeonRegistrar = pigeonRegistrar + self.pigeonDelegate = delegate + } + static func setUpMessageHandlers(binaryMessenger: FlutterBinaryMessenger, api: PigeonApiNSObject?) { + let codec: FlutterStandardMessageCodec = + api != nil + ? FlutterStandardMessageCodec( + readerWriter: CLGeocoderLibraryPigeonInternalProxyApiCodecReaderWriter(pigeonRegistrar: api!.pigeonRegistrar)) + : FlutterStandardMessageCodec.sharedInstance() + let pigeonDefaultConstructorChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.NSObject.pigeon_defaultConstructor", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + pigeonDefaultConstructorChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonIdentifierArg = args[0] as! Int64 + do { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( +try api.pigeonDelegate.pigeonDefaultConstructor(pigeonApi: api), +withIdentifier: pigeonIdentifierArg) + reply(wrapResult(nil)) + } catch { + reply(wrapError(error)) + } + } + } else { + pigeonDefaultConstructorChannel.setMessageHandler(nil) + } + let addObserverChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.NSObject.addObserver", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + addObserverChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! NSObject + let observerArg = args[1] as! NSObject + let keyPathArg = args[2] as! String + let optionsArg = args[3] as! [KeyValueObservingOptions] + do { + try api.pigeonDelegate.addObserver(pigeonApi: api, pigeonInstance: pigeonInstanceArg, observer: observerArg, keyPath: keyPathArg, options: optionsArg) + reply(wrapResult(nil)) + } catch { + reply(wrapError(error)) + } + } + } else { + addObserverChannel.setMessageHandler(nil) + } + let removeObserverChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.geocoding_darwin.NSObject.removeObserver", binaryMessenger: binaryMessenger, codec: codec) + if let api = api { + removeObserverChannel.setMessageHandler { message, reply in + let args = message as! [Any?] + let pigeonInstanceArg = args[0] as! NSObject + let observerArg = args[1] as! NSObject + let keyPathArg = args[2] as! String + do { + try api.pigeonDelegate.removeObserver(pigeonApi: api, pigeonInstance: pigeonInstanceArg, observer: observerArg, keyPath: keyPathArg) + reply(wrapResult(nil)) + } catch { + reply(wrapError(error)) + } + } + } else { + removeObserverChannel.setMessageHandler(nil) + } + } + + ///Creates a Dart instance of NSObject and attaches it to [pigeonInstance]. + func pigeonNewInstance(pigeonInstance: NSObject, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + } else if pigeonRegistrar.instanceManager.containsInstance(pigeonInstance as AnyObject) { + completion(.success(())) + } else { + let pigeonIdentifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstance as AnyObject) + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.NSObject.pigeon_newInstance" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonIdentifierArg] 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(())) + } + } + } + } + /// Informs the observing object when the value at the specified key path + /// relative to the observed object has changed. + func observeValue(pigeonInstance pigeonInstanceArg: NSObject, keyPath keyPathArg: String?, object objectArg: NSObject?, change changeArg: [KeyValueChangeKey: Any?]?, completion: @escaping (Result) -> Void) { + if pigeonRegistrar.ignoreCallsToDart { + completion( + .failure( + PigeonError( + code: "ignore-calls-error", + message: "Calls to Dart are being ignored.", details: ""))) + return + } + let binaryMessenger = pigeonRegistrar.binaryMessenger + let codec = pigeonRegistrar.codec + let channelName: String = "dev.flutter.pigeon.geocoding_darwin.NSObject.observeValue" + let channel = FlutterBasicMessageChannel(name: channelName, binaryMessenger: binaryMessenger, codec: codec) + channel.sendMessage([pigeonInstanceArg, keyPathArg, objectArg, changeArg] 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(())) + } + } + } + +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLGeocoderProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLGeocoderProxyApiDelegate.swift new file mode 100644 index 0000000..447bcd4 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLGeocoderProxyApiDelegate.swift @@ -0,0 +1,48 @@ +import CoreLocation +import Contacts + +/// ProxyApi implementation for `CLGeocoder`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class CLGeocoderProxyApiDelegate: PigeonApiDelegateCLGeocoder { + func pigeonDefaultConstructor(pigeonApi: PigeonApiCLGeocoder) throws -> CLGeocoder { + return CLGeocoder() + } + + func geocodeAddressString(pigeonApi: PigeonApiCLGeocoder, pigeonInstance: CLGeocoder, address: String, locale: LocaleWrapper?, completion: @escaping (Result<[CLPlacemark]?, any Error>) -> Void) { + pigeonInstance.geocodeAddressString(address, in: nil, preferredLocale: locale?.value) { placemarks, error in + if error != nil { + let error = PigeonError(code: "GeocodeAddressError", message: "Failed to geocode address.", details: error! as NSError) + completion(.failure(error)) + return + } + + completion(.success(placemarks)) + } + } + + func geocodePostalAddress(pigeonApi: PigeonApiCLGeocoder, pigeonInstance: CLGeocoder, postalAddress: CNPostalAddress, locale: LocaleWrapper?, completion: @escaping (Result<[CLPlacemark]?, any Error>) -> Void) { + pigeonInstance.geocodePostalAddress(postalAddress, preferredLocale: locale?.value) { placemarks, error in + if error != nil { + let error = PigeonError(code: "GeocodeAddressError", message: "Failed to geocode address.", details: error! as NSError) + completion(.failure(error)) + return + } + + completion(.success(placemarks)) + } + } + + func reverseGeocodeLocation(pigeonApi: PigeonApiCLGeocoder, pigeonInstance: CLGeocoder, location: CLLocation, locale: LocaleWrapper?, completion: @escaping (Result<[CLPlacemark]?, any Error>) -> Void) { + pigeonInstance.reverseGeocodeLocation(location, preferredLocale: locale?.value) { placemarks, error in + if error != nil { + let error = PigeonError(code: "GeocodeAddressError", message: "Failed to geocode address.", details: error! as NSError) + completion(.failure(error)) + return + } + + completion(.success(placemarks)) + } + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationCoordinate2DProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationCoordinate2DProxyApiDelegate.swift new file mode 100644 index 0000000..e0e64d1 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationCoordinate2DProxyApiDelegate.swift @@ -0,0 +1,17 @@ +import CoreLocation + +/// ProxyApi implementation for `CLLocationCoordinate2D`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class CLLocationCoordinate2DProxyApiDelegate: PigeonApiDelegateCLLocationCoordinate2D { + func latitude(pigeonApi: PigeonApiCLLocationCoordinate2D, pigeonInstance: CLLocationCoordinate2DWrapper) throws + -> Double { + return pigeonInstance.value.latitude + } + + func longitude(pigeonApi: PigeonApiCLLocationCoordinate2D, pigeonInstance: CLLocationCoordinate2DWrapper) throws + -> Double { + return pigeonInstance.value.longitude + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationProxyApiDelegate.swift new file mode 100644 index 0000000..3e1d147 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationProxyApiDelegate.swift @@ -0,0 +1,76 @@ +import CoreLocation + +/// ProxyApi implementation for `CLLocation`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class CLLocationProxyApiDelegate: PigeonApiDelegateCLLocation { + func pigeonDefaultConstructor(pigeonApi: PigeonApiCLLocation, latitude: Double, longitude: Double) throws -> CLLocation { + return CLLocation(latitude: latitude, longitude: longitude) + } + + func getCoordinate(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> CLLocationCoordinate2DWrapper { + return CLLocationCoordinate2DWrapper(pigeonInstance.coordinate) + } + + func getAltitude(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double { + return pigeonInstance.altitude + } + + func getEllipsoidalAltitude(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double { + if #available(iOS 15.0, macOS 12.0, *) { + return pigeonInstance.ellipsoidalAltitude + } else { + throw (pigeonApi.pigeonRegistrar as! ProxyApiRegistrar).createUnsupportedVersionError( + method: "CLLocation.ellipsoidalAltitude", + versionRequirements: "iOS 15.0, macOS 12.0") + } + } + + func getFloor(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> CLFloor? { + return pigeonInstance.floor + } + + func getTimestamp(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Int64 { + return Int64(pigeonInstance.timestamp.timeIntervalSince1970 * 1000) + } + + @available(iOS 15.0, macOS 12.0, *) + func getSourceInformation(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> CLLocationSourceInformation? { + return pigeonInstance.sourceInformation + } + + func getHorizontalAccuracy(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double { + return pigeonInstance.horizontalAccuracy + } + + func getVerticalAccuracy(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double { + return pigeonInstance.verticalAccuracy + } + + func getSpeed(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double { + return pigeonInstance.speed + } + + func getSpeedAccuracy(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double { + return pigeonInstance.speedAccuracy + } + + func getCourse(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double { + return pigeonInstance.course + } + + func getCourseAccuracy(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation) throws -> Double { + if #available(iOS 13.4, macOS 10.15.4, *) { + return pigeonInstance.courseAccuracy + } else { + throw (pigeonApi.pigeonRegistrar as! ProxyApiRegistrar).createUnsupportedVersionError( + method: "CLLocation.sourceInformation", + versionRequirements: "iOS 13.4, macOS 10.15.4") + } + } + + func distance(pigeonApi: PigeonApiCLLocation, pigeonInstance: CLLocation, from: CLLocation) throws -> Double { + return pigeonInstance.distance(from: from) + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationSourceInformationProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationSourceInformationProxyApiDelegate.swift new file mode 100644 index 0000000..db15c82 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationSourceInformationProxyApiDelegate.swift @@ -0,0 +1,17 @@ +import CoreLocation + +/// ProxyApi implementation for `CLLocationSourceInformation`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class CLLocationSourceInformationProxyApiDelegate: PigeonApiDelegateCLLocationSourceInformation { + @available(iOS 15.0, macOS 12.0, *) + func isProducedByAccessory(pigeonApi: PigeonApiCLLocationSourceInformation, pigeonInstance: CLLocationSourceInformation) throws -> Bool { + return pigeonInstance.isProducedByAccessory + } + + @available(iOS 15.0, macOS 12.0, *) + func isSimulatedBySoftware(pigeonApi: PigeonApiCLLocationSourceInformation, pigeonInstance: CLLocationSourceInformation) throws -> Bool { + return pigeonInstance.isSimulatedBySoftware + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLPlacemarkProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLPlacemarkProxyApiDelegate.swift new file mode 100644 index 0000000..5b5722b --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLPlacemarkProxyApiDelegate.swift @@ -0,0 +1,58 @@ +import CoreLocation +import Contacts + +/// ProxyApi implementation for `CLPlacemark`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class CLPlacemarkProxyApiDelegate: PigeonApiDelegateCLPlacemark { + + func location(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> CLLocation? { + return pigeonInstance.location + } + + func name(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.name + } + + func thoroughfare(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.thoroughfare + } + + func subThoroughfare(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.subThoroughfare + } + + func locality(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.locality + } + + func subLocality(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.subLocality + } + + func administrativeArea(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + pigeonInstance.administrativeArea + } + + func subAdministrativeArea(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.subAdministrativeArea + } + + func postalCode(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.postalCode + } + + func isoCountryCode(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.isoCountryCode + } + + func country(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> String? { + return pigeonInstance.country + } + + func postalAddress(pigeonApi: PigeonApiCLPlacemark, pigeonInstance: CLPlacemark) throws -> CNPostalAddress? { + return pigeonInstance.postalAddress + } + +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CNPostalAddressProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CNPostalAddressProxyApiDelegate.swift new file mode 100644 index 0000000..76bd5fc --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CNPostalAddressProxyApiDelegate.swift @@ -0,0 +1,39 @@ +import Contacts + +/// ProxyApi implementation for `CNPostalAddress`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class CNPostalAddressProxyApiDelegate: PigeonApiDelegateCNPostalAddress { + func street(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String { + return pigeonInstance.street + } + + func city(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String { + return pigeonInstance.city + } + + func state(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String { + return pigeonInstance.state + } + + func postalCode(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String { + return pigeonInstance.postalCode + } + + func country(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String { + return pigeonInstance.country + } + + func isoCountryCode(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String { + return pigeonInstance.isoCountryCode + } + + func subAdministrativeArea(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String { + return pigeonInstance.subAdministrativeArea + } + + func subLocality(pigeonApi: PigeonApiCNPostalAddress, pigeonInstance: CNPostalAddress) throws -> String { + return pigeonInstance.subLocality + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/LocaleProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/LocaleProxyApiDelegate.swift new file mode 100644 index 0000000..4d51366 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/LocaleProxyApiDelegate.swift @@ -0,0 +1,16 @@ +import Foundation + +/// ProxyApi implementation for `Locale`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class LocaleProxyApiDelegate: PigeonApiDelegateLocale { + + func pigeonDefaultConstructor(pigeonApi: PigeonApiLocale, identifier: String) throws -> LocaleWrapper { + return LocaleWrapper(Locale(identifier: identifier)) + } + + func getIdentifier(pigeonApi: PigeonApiLocale, pigeonInstance: LocaleWrapper) throws -> String { + return pigeonInstance.value.identifier + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/NSObjectProxyApiDelegate.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/NSObjectProxyApiDelegate.swift new file mode 100644 index 0000000..49e3986 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/NSObjectProxyApiDelegate.swift @@ -0,0 +1,107 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import Foundation + +/// Implementation of `NSObject` that calls to Dart in callback methods. +class NSObjectImpl: NSObject { + let api: PigeonApiProtocolNSObject + unowned let registrar: ProxyApiRegistrar + + init(api: PigeonApiProtocolNSObject, registrar: ProxyApiRegistrar) { + self.api = api + self.registrar = registrar + } + + static func handleObserveValue( + withApi api: PigeonApiProtocolNSObject, registrar: ProxyApiRegistrar, instance: NSObject, + forKeyPath keyPath: String?, + of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer? + ) { + let wrapperKeys: [KeyValueChangeKey: Any]? + if change != nil { + let keyValueTuples = change!.map { key, value in + let newKey: KeyValueChangeKey + switch key { + case .kindKey: + newKey = .kind + case .indexesKey: + newKey = .indexes + case .newKey: + newKey = .newValue + case .oldKey: + newKey = .oldValue + case .notificationIsPriorKey: + newKey = .notificationIsPrior + default: + newKey = .unknown + } + + return (newKey, value) + } + + wrapperKeys = Dictionary(uniqueKeysWithValues: keyValueTuples) + } else { + wrapperKeys = nil + } + + registrar.dispatchOnMainThread { onFailure in + api.observeValue( + pigeonInstance: instance, keyPath: keyPath, object: object as? NSObject, change: wrapperKeys + ) { result in + if case .failure(let error) = result { + onFailure("NSObject.observeValue", error) + } + } + } + } + + override func observeValue( + forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, + context: UnsafeMutableRawPointer? + ) { + NSObjectImpl.handleObserveValue( + withApi: api, registrar: registrar, instance: self as NSObject, forKeyPath: keyPath, + of: object, change: change, + context: context) + } +} + +/// ProxyApi implementation for `NSObject`. +/// +/// This class may handle instantiating native object instances that are attached to a Dart instance +/// or handle method calls on the associated native class or an instance of that class. +class NSObjectProxyApiDelegate: PigeonApiDelegateNSObject { + func pigeonDefaultConstructor(pigeonApi: PigeonApiNSObject) throws -> NSObject { + return NSObjectImpl(api: pigeonApi, registrar: pigeonApi.pigeonRegistrar as! ProxyApiRegistrar) + } + + func addObserver( + pigeonApi: PigeonApiNSObject, pigeonInstance: NSObject, observer: NSObject, keyPath: String, + options: [KeyValueObservingOptions] + ) throws { + var nativeOptions: NSKeyValueObservingOptions = [] + + for option in options { + switch option { + case .newValue: + nativeOptions.insert(.new) + case .oldValue: + nativeOptions.insert(.old) + case .initialValue: + nativeOptions.insert(.initial) + case .priorNotification: + nativeOptions.insert(.prior) + } + } + + pigeonInstance.addObserver(observer, forKeyPath: keyPath, options: nativeOptions, context: nil) + } + + func removeObserver( + pigeonApi: PigeonApiNSObject, pigeonInstance: NSObject, observer: NSObject, keyPath: String + ) throws { + pigeonInstance.removeObserver(observer, forKeyPath: keyPath) + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/ProxyApiRegistrar.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/ProxyApiRegistrar.swift new file mode 100644 index 0000000..0c59fb1 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/ProxyApiRegistrar.swift @@ -0,0 +1,92 @@ +import Foundation + +#if os(iOS) + import Flutter + import UIKit +#elseif os(macOS) + import FlutterMacOS + import Foundation +#else + #error("Unsupported platform.") +#endif + +/// Implementation of the `CLGeocoderLibraryPigeonProxyApiRegistrar` that provides any addition resources needed by API implementations. +open class ProxyApiRegistrar: CLGeocoderLibraryPigeonProxyApiRegistrar { + init( + binaryMessenger: FlutterBinaryMessenger + ) { + super.init(binaryMessenger: binaryMessenger, apiDelegate: ProxyApiDelegate()) + } + + /// Creates an error when a method is called on an unsupported version. + func createUnsupportedVersionError(method: String, versionRequirements: String) -> PigeonError { + return PigeonError( + code: "FWFUnsupportedVersionError", + message: createUnsupportedVersionMessage(method, versionRequirements: versionRequirements), + details: nil) + } + + /// Creates the error message when a method is called on an unsupported version. + func createUnsupportedVersionMessage(_ method: String, versionRequirements: String) -> String { + return "`\(method)` requires \(versionRequirements)." + } + + // Creates an assertion failure when a Flutter method receives an error from Dart. + fileprivate func assertFlutterMethodFailure(_ error: PigeonError, methodName: String) { + assertionFailure( + "\(String(describing: error)): Error returned from calling \(methodName): \(String(describing: error.message))" + ) + } + + /// Handles calling a Flutter method on the main thread. + func dispatchOnMainThread( + execute work: @escaping ( + _ onFailure: @escaping (_ methodName: String, _ error: PigeonError) -> Void + ) -> Void + ) { + DispatchQueue.main.async { + work { methodName, error in + self.assertFlutterMethodFailure(error, methodName: methodName) + } + } + } +} + +/// Implementation of `CLGeocoderLibraryPigeonProxyApiDelegate` that provides each ProxyApi delegate implementation. +class ProxyApiDelegate: CLGeocoderLibraryPigeonProxyApiDelegate { + func pigeonApiCLGeocoder(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLGeocoder { + return PigeonApiCLGeocoder(pigeonRegistrar: registrar, delegate: CLGeocoderProxyApiDelegate()) + } + + func pigeonApiCLLocation(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLLocation { + return PigeonApiCLLocation(pigeonRegistrar: registrar, delegate: CLLocationProxyApiDelegate()) + } + + func pigeonApiCLLocationCoordinate2D(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLLocationCoordinate2D { + return PigeonApiCLLocationCoordinate2D(pigeonRegistrar: registrar, delegate: CLLocationCoordinate2DProxyApiDelegate()) + } + + func pigeonApiCLLocationSourceInformation(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLLocationSourceInformation { + return PigeonApiCLLocationSourceInformation(pigeonRegistrar: registrar, delegate: CLLocationSourceInformationProxyApiDelegate()) + } + + func pigeonApiCLPlacemark(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLPlacemark { + return PigeonApiCLPlacemark(pigeonRegistrar: registrar, delegate: CLPlacemarkProxyApiDelegate()) + } + + func pigeonApiCNPostalAddress(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCNPostalAddress { + return PigeonApiCNPostalAddress(pigeonRegistrar: registrar, delegate: CNPostalAddressProxyApiDelegate()) + } + + func pigeonApiLocale(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiLocale { + return PigeonApiLocale(pigeonRegistrar: registrar, delegate: LocaleProxyApiDelegate()) + } + + func pigeonApiNSObject(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiNSObject { + return PigeonApiNSObject(pigeonRegistrar: registrar, delegate: NSObjectProxyApiDelegate()) + } + + func pigeonApiCLFloor(_ registrar: CLGeocoderLibraryPigeonProxyApiRegistrar) -> PigeonApiCLFloor { + return PigeonApiCLFloor(pigeonRegistrar: registrar, delegate: CLFloorProxyApiDelegate()) + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/StructWrappers.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/StructWrappers.swift new file mode 100644 index 0000000..4d4e236 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/StructWrappers.swift @@ -0,0 +1,26 @@ +import CoreLocation +import Foundation + +/// Wrapper around `Locale`. +/// +/// Since `Locale` is a struct, it is pass by value instead of pass by reference. This makes +/// it not possible to modify the properties of a struct with the typical ProxyAPI system. +class LocaleWrapper { + var value: Locale + + init(_ value: Locale) { + self.value = value + } +} + +/// Wrapper around `CLLocationCoordinate2D`. +/// +/// Since `CLLocationCoordinates2D` is a struct, it is pass by value instead of pass by reference. This makes +/// it not possible to modify the properties of a struct with the typical ProxyAPI system. +class CLLocationCoordinate2DWrapper { + var value: CLLocationCoordinate2D + + init(_ value: CLLocationCoordinate2D) { + self.value = value + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/GeocodingDarwinPlugin.swift b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/GeocodingDarwinPlugin.swift new file mode 100644 index 0000000..42487a2 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/GeocodingDarwinPlugin.swift @@ -0,0 +1,32 @@ +#if os(iOS) + import Flutter +#elseif os(macOS) + import FlutterMacOS +#else + #error("Unsupported platform.") +#endif + +public class GeocodingDarwinPlugin: NSObject, FlutterPlugin { + var proxyApiRegistrar: ProxyApiRegistrar? + + init(binaryMessenger: FlutterBinaryMessenger) { + proxyApiRegistrar = ProxyApiRegistrar(binaryMessenger: binaryMessenger) + proxyApiRegistrar?.setUp() + } + + public static func register(with registrar: FlutterPluginRegistrar) { +#if os(iOS) + let binaryMessenger = registrar.messenger() +#else + let binaryMessenger = registrar.messenger +#endif + let plugin = GeocodingDarwinPlugin(binaryMessenger: binaryMessenger) + registrar.publish(plugin) + } + + public func detachFromEngine(for registrar: any FlutterPluginRegistrar) { + proxyApiRegistrar!.ignoreCallsToDart = true + proxyApiRegistrar!.tearDown() + proxyApiRegistrar = nil + } +} diff --git a/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/PrivacyInfo.xcprivacy b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..a34b7e2 --- /dev/null +++ b/geocoding_darwin/darwin/geocoding_darwin/Sources/geocoding_darwin/PrivacyInfo.xcprivacy @@ -0,0 +1,14 @@ + + + + + NSPrivacyTrackingDomains + + NSPrivacyAccessedAPITypes + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/geocoding_darwin/example/.gitignore b/geocoding_darwin/example/.gitignore new file mode 100644 index 0000000..79c113f --- /dev/null +++ b/geocoding_darwin/example/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/geocoding_darwin/example/README.md b/geocoding_darwin/example/README.md new file mode 100644 index 0000000..828b728 --- /dev/null +++ b/geocoding_darwin/example/README.md @@ -0,0 +1,16 @@ +# geocoding_darwin_example + +Demonstrates how to use the geocoding_darwin plugin. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/geocoding_darwin/example/analysis_options.yaml b/geocoding_darwin/example/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/geocoding_darwin/example/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/geocoding_darwin/example/ios/.gitignore b/geocoding_darwin/example/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/geocoding_darwin/example/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-Info.plist b/geocoding_darwin/example/ios/Flutter/AppFrameworkInfo.plist similarity index 66% rename from geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-Info.plist rename to geocoding_darwin/example/ios/Flutter/AppFrameworkInfo.plist index 8928a8d..7c56964 100644 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-Info.plist +++ b/geocoding_darwin/example/ios/Flutter/AppFrameworkInfo.plist @@ -3,24 +3,24 @@ CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} + en CFBundleExecutable - ${EXECUTABLE_NAME} + App CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} + io.flutter.flutter.app CFBundleInfoDictionaryVersion 6.0 CFBundleName - ${PRODUCT_NAME} + App CFBundlePackageType FMWK CFBundleShortVersionString - 0.0.1 + 1.0 CFBundleSignature ???? CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + 1.0 + MinimumOSVersion + 12.0 diff --git a/geocoding_darwin/example/ios/Flutter/Debug.xcconfig b/geocoding_darwin/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/geocoding_darwin/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/geocoding_darwin/example/ios/Flutter/Release.xcconfig b/geocoding_darwin/example/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/geocoding_darwin/example/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/geocoding_darwin/example/ios/Runner.xcodeproj/project.pbxproj b/geocoding_darwin/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..53f8c22 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,657 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0EEBE935AC6351396941E417 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 34BAF830DA2761A8E2E100A0 /* Pods */ = { + isa = PBXGroup; + children = ( + ); + path = Pods; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + 34BAF830DA2761A8E2E100A0 /* Pods */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + 0EEBE935AC6351396941E417 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7624MWN53C; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7624MWN53C; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7624MWN53C; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/geocoding_darwin/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/geocoding_darwin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/geocoding_darwin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..c3fedb2 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/geocoding_darwin/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/geocoding_darwin/example/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/geocoding_darwin/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/geocoding_darwin/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/geocoding_darwin/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/geocoding_darwin/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/geocoding_darwin/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/geocoding_darwin/example/ios/Runner/AppDelegate.swift b/geocoding_darwin/example/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..6266644 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@main +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000..dc9ada4 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000..7353c41 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000..6ed2d93 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000..4cd7b00 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000..fe73094 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000..321773c Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000..797d452 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000..502f463 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000..0ec3034 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000..e9f5fea Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000..84ac32a Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000..8953cba Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000..0467bf1 Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/geocoding_darwin/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/geocoding_darwin/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/geocoding_darwin/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/geocoding_darwin/example/ios/Runner/Base.lproj/Main.storyboard b/geocoding_darwin/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/geocoding_darwin/example/ios/Runner/Info.plist b/geocoding_darwin/example/ios/Runner/Info.plist new file mode 100644 index 0000000..ff90666 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Geocoding Darwin + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + geocoding_darwin_example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/geocoding_darwin/example/ios/Runner/Runner-Bridging-Header.h b/geocoding_darwin/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/geocoding_darwin/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/geocoding_darwin/example/ios/RunnerTests/RunnerTests.swift b/geocoding_darwin/example/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..945da26 --- /dev/null +++ b/geocoding_darwin/example/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,27 @@ +import Flutter +import UIKit +import XCTest + + +@testable import geocoding_darwin + +// This demonstrates a simple unit test of the Swift portion of this plugin's implementation. +// +// See https://developer.apple.com/documentation/xctest for more information about using XCTest. + +class RunnerTests: XCTestCase { + + func testGetPlatformVersion() { + let plugin = GeocodingDarwinPlugin() + + let call = FlutterMethodCall(methodName: "getPlatformVersion", arguments: []) + + let resultExpectation = expectation(description: "result block must be called.") + plugin.handle(call) { result in + XCTAssertEqual(result as! String, "iOS " + UIDevice.current.systemVersion) + resultExpectation.fulfill() + } + waitForExpectations(timeout: 1) + } + +} diff --git a/geocoding_darwin/example/lib/main.dart b/geocoding_darwin/example/lib/main.dart new file mode 100644 index 0000000..9315870 --- /dev/null +++ b/geocoding_darwin/example/lib/main.dart @@ -0,0 +1,235 @@ +import 'package:baseflow_plugin_template/baseflow_plugin_template.dart'; +import 'package:flutter/material.dart'; +import 'package:geocoding_darwin/geocoding_darwin.dart'; + +/// Defines the main theme color. +final MaterialColor themeMaterialColor = + BaseflowPluginExample.createMaterialColor( + const Color.fromRGBO(48, 49, 60, 1), + ); + +void main() { + runApp(const GeocodeWidget()); +} + +/// Example [Widget] showing the use of the Geocode plugin +class GeocodeWidget extends StatefulWidget { + /// Constructs the [GeocodeWidget] class + const GeocodeWidget({super.key}); + + /// Utility method to create a page with the Baseflow templating. + static ExamplePage createPage() { + return ExamplePage(Icons.location_on, (context) => const GeocodeWidget()); + } + + @override + State createState() => _GeocodeWidgetState(); +} + +class _GeocodeWidgetState extends State { + final TextEditingController _addressController = TextEditingController(); + final TextEditingController _latitudeController = TextEditingController(); + final TextEditingController _longitudeController = TextEditingController(); + String _output = ''; + Locale? _locale; + final GeocodingDarwin _geocoding = GeocodingDarwin( + GeocodingDarwinCreationParams(), + ); + + @override + void initState() { + _addressController.text = 'Gronausestraat 710, Enschede'; + _latitudeController.text = '52.2165157'; + _longitudeController.text = '6.9437819'; + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return BaseflowPluginExample( + pluginName: 'geocoding_darwin', + githubURL: 'https://github.com/Baseflow/flutter-geocoding', + pubDevURL: 'https://pub.dev/packages/geocoding', + pages: [ + ExamplePage(Icons.location_on, (BuildContext context) { + return Scaffold( + backgroundColor: Theme.of(context).colorScheme.surface, + body: Padding( + padding: EdgeInsets.symmetric(horizontal: 24, vertical: 24), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + DropdownMenu( + leadingIcon: Icon(Icons.language, color: Colors.white), + hintText: 'Locale', + initialSelection: Localizations.localeOf(context), + dropdownMenuEntries: >[ + DropdownMenuEntry( + value: Localizations.localeOf(context), + label: 'Default locale', + ), + DropdownMenuEntry( + value: Locale('en_US'), + label: 'English (US)', + ), + DropdownMenuEntry( + value: Locale('nl_NL'), + label: 'Nederlands (NL)', + ), + ], + onSelected: (Locale? value) => + setState(() => _locale = value), + ), + ], + ), + const Padding(padding: EdgeInsets.only(top: 32)), + Row( + children: [ + Expanded( + child: TextField( + autocorrect: false, + controller: _latitudeController, + style: Theme.of(context).textTheme.bodyMedium, + decoration: const InputDecoration( + hintText: 'Latitude', + ), + keyboardType: TextInputType.number, + ), + ), + const SizedBox(width: 20), + Expanded( + child: TextField( + autocorrect: false, + controller: _longitudeController, + style: Theme.of(context).textTheme.bodyMedium, + decoration: const InputDecoration( + hintText: 'Longitude', + ), + keyboardType: TextInputType.number, + ), + ), + ], + ), + const Padding(padding: EdgeInsets.only(top: 8)), + Center( + child: ElevatedButton( + child: const Text('Look up address'), + onPressed: () { + final latitude = double.parse(_latitudeController.text); + final longitude = double.parse( + _longitudeController.text, + ); + + _geocoding + .placemarkFromCoordinates( + latitude, + longitude, + locale: _locale, + ) + .then((placemarks) { + var output = 'No results found.'; + if (placemarks.isNotEmpty) { + output = placemarks[0].toDisplayString(); + } + + setState(() { + _output = output; + }); + }); + }, + ), + ), + const Padding(padding: EdgeInsets.only(top: 32)), + TextField( + autocorrect: false, + controller: _addressController, + style: Theme.of(context).textTheme.bodyMedium, + decoration: const InputDecoration(hintText: 'Address'), + keyboardType: TextInputType.text, + ), + const Padding(padding: EdgeInsets.only(top: 8)), + Center( + child: ElevatedButton( + child: const Text('Look up location'), + onPressed: () { + _geocoding + .locationFromAddress(_addressController.text) + .then((locations) { + var output = 'No results found.'; + if (locations.isNotEmpty) { + output = locations[0].toDisplayString(); + } + + setState(() { + _output = output; + }); + }); + }, + ), + ), + const Padding(padding: EdgeInsets.only(top: 8)), + Center( + child: ElevatedButton( + child: const Text('Is present'), + onPressed: () { + _geocoding.isPresent().then((isPresent) { + var output = isPresent + ? "Geocoder is present" + : "Geocoder is not present"; + setState(() { + _output = output; + }); + }); + }, + ), + ), + const Padding(padding: EdgeInsets.only(top: 8)), + Expanded( + child: SingleChildScrollView( + child: SizedBox( + width: MediaQuery.of(context).size.width, + child: Text(_output), + ), + ), + ), + ], + ), + ), + ); + }), + ], + ); + } +} + +extension _PlacemarkExtensions on Placemark { + String toDisplayString() { + return ''' + Name: $name, + Street: $street, + ISO Country Code: $isoCountryCode, + Country: $country, + Postal code: $postalCode, + Administrative area: $administrativeArea, + Subadministrative area: $subAdministrativeArea, + Locality: $locality, + Sublocality: $subLocality, + Thoroughfare: $thoroughfare, + Subthoroughfare: $subThoroughfare'''; + } +} + +extension _LocationExtensions on Location { + String toDisplayString() { + return ''' + Latitude: $latitude, + Longitude: $longitude, + Timestamp: $timestamp'''; + } +} diff --git a/geocoding_darwin/example/macos/.gitignore b/geocoding_darwin/example/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/geocoding_darwin/example/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/geocoding_darwin/example/macos/Flutter/Flutter-Debug.xcconfig b/geocoding_darwin/example/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/geocoding_darwin/example/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/geocoding_darwin/example/macos/Flutter/Flutter-Release.xcconfig b/geocoding_darwin/example/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/geocoding_darwin/example/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/geocoding_darwin/example/macos/Flutter/GeneratedPluginRegistrant.swift b/geocoding_darwin/example/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..f392551 --- /dev/null +++ b/geocoding_darwin/example/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import geocoding_darwin +import url_launcher_macos + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + GeocodingDarwinPlugin.register(with: registry.registrar(forPlugin: "GeocodingDarwinPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) +} diff --git a/geocoding_darwin/example/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/geocoding_darwin/example/macos/Flutter/ephemeral/Flutter-Generated.xcconfig index 419a43f..125f74e 100644 --- a/geocoding_darwin/example/macos/Flutter/ephemeral/Flutter-Generated.xcconfig +++ b/geocoding_darwin/example/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -2,10 +2,12 @@ FLUTTER_ROOT=/Users/maurits/development/flutter FLUTTER_APPLICATION_PATH=/Users/maurits/sources/Baseflow/Internal/Flutter/geocoding/geocoding_darwin/example COCOAPODS_PARALLEL_CODE_SIGN=true +FLUTTER_TARGET=/Users/maurits/sources/Baseflow/Internal/Flutter/geocoding/geocoding_darwin/example/lib/main.dart FLUTTER_BUILD_DIR=build FLUTTER_BUILD_NAME=1.0.0 FLUTTER_BUILD_NUMBER=1 +DART_DEFINES=RkxVVFRFUl9WRVJTSU9OPTMuMzIuNQ==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049ZmNmMmMxMTU3Mg==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049ZGQ5M2RlNmZiMQ==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My44LjE= DART_OBFUSCATION=false TRACK_WIDGET_CREATION=true TREE_SHAKE_ICONS=false -PACKAGE_CONFIG=.dart_tool/package_config.json +PACKAGE_CONFIG=/Users/maurits/sources/Baseflow/Internal/Flutter/geocoding/geocoding_darwin/example/.dart_tool/package_config.json diff --git a/geocoding_darwin/example/macos/Pods/Local Podspecs/FlutterMacOS.podspec.json b/geocoding_darwin/example/macos/Pods/Local Podspecs/FlutterMacOS.podspec.json deleted file mode 100644 index 7e9c0ae..0000000 --- a/geocoding_darwin/example/macos/Pods/Local Podspecs/FlutterMacOS.podspec.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "FlutterMacOS", - "version": "1.0.0", - "summary": "A UI toolkit for beautiful and fast apps.", - "homepage": "https://flutter.dev", - "license": { - "type": "BSD" - }, - "authors": { - "Flutter Dev Team": "flutter-dev@googlegroups.com" - }, - "source": { - "git": "https://github.com/flutter/engine", - "tag": "1.0.0" - }, - "platforms": { - "osx": "10.14" - }, - "vendored_frameworks": "path/to/nothing" -} diff --git a/geocoding_darwin/example/macos/Pods/Local Podspecs/geocoding_darwin.podspec.json b/geocoding_darwin/example/macos/Pods/Local Podspecs/geocoding_darwin.podspec.json deleted file mode 100644 index 96ab233..0000000 --- a/geocoding_darwin/example/macos/Pods/Local Podspecs/geocoding_darwin.podspec.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "geocoding_darwin", - "version": "0.0.1", - "summary": "Flutter Geocoding.", - "description": "A Flutter plugin to convert an address into geocoordinates (geocoding) and reverse.\nDownloaded by pub (not CocoaPods).", - "homepage": "http://github.com/baseflow/flutter-geocoding", - "license": { - "file": "../LICENSE" - }, - "authors": { - "Baseflow": "hello@baseflow.com" - }, - "source": { - "http": "https://github.com/baseflow/flutter-geocoding/tree/main/geocoding_darwin" - }, - "source_files": "geocoding_darwin/Sources/geocoding_darwin/**/*.swift", - "ios": { - "dependencies": { - "Flutter": [] - } - }, - "osx": { - "dependencies": { - "FlutterMacOS": [] - } - }, - "platforms": { - "ios": "12.0", - "osx": "10.15" - }, - "pod_target_xcconfig": { - "DEFINES_MODULE": "YES", - "EXCLUDED_ARCHS[sdk=iphonesimulator*]": "i386" - }, - "xcconfig": { - "LIBRARY_SEARCH_PATHS": "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift", - "LD_RUNPATH_SEARCH_PATHS": "/usr/lib/swift" - }, - "swift_versions": "5.0", - "resource_bundles": { - "geocoding_darwin_privacy": [ - "geocoding_darwin/Sources/geocoding_darwin/PrivacyInfo.xcprivacy" - ] - }, - "swift_version": "5.0" -} diff --git a/geocoding_darwin/example/macos/Pods/Local Podspecs/url_launcher_macos.podspec.json b/geocoding_darwin/example/macos/Pods/Local Podspecs/url_launcher_macos.podspec.json deleted file mode 100644 index 253dcf2..0000000 --- a/geocoding_darwin/example/macos/Pods/Local Podspecs/url_launcher_macos.podspec.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "url_launcher_macos", - "version": "0.0.1", - "summary": "Flutter macos plugin for launching a URL.", - "description": "A macOS implementation of the url_launcher plugin.", - "homepage": "https://github.com/flutter/packages/tree/main/packages/url_launcher/url_launcher_macos", - "license": { - "type": "BSD", - "file": "../LICENSE" - }, - "authors": { - "Flutter Team": "flutter-dev@googlegroups.com" - }, - "source": { - "http": "https://github.com/flutter/packages/tree/main/packages/url_launcher/url_launcher_macos" - }, - "source_files": "url_launcher_macos/Sources/url_launcher_macos/**/*.swift", - "resource_bundles": { - "url_launcher_macos_privacy": [ - "url_launcher_macos/Sources/url_launcher_macos/Resources/PrivacyInfo.xcprivacy" - ] - }, - "dependencies": { - "FlutterMacOS": [] - }, - "platforms": { - "osx": "10.14" - }, - "pod_target_xcconfig": { - "DEFINES_MODULE": "YES" - }, - "swift_versions": "5.0", - "swift_version": "5.0" -} diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/project.pbxproj b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index 1c57789..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2309 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXAggregateTarget section */ - CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 624022EE1C2EAB1C3CC38699E1368C5F /* Build configuration list for PBXAggregateTarget "FlutterMacOS" */; - buildPhases = ( - ); - dependencies = ( - ); - name = FlutterMacOS; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 03FF65672874530A3E9AE6BAB1764A4A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EE00D34B275026D4656C738BED5A001 /* Cocoa.framework */; }; - 095F7C9901A6838C745E4DF7925F0F5A /* CLLocationCoordinate2DProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759C5E0F874B8132C0AF01F20A50B84E /* CLLocationCoordinate2DProxyApiDelegate.swift */; }; - 0D476B81483EC90FC9E8DE5209D22AA3 /* messages.g.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53CFD6992476496154D225587959BC0F /* messages.g.swift */; }; - 0EFB405150F9F2865C4555DF395C7182 /* Pods-Runner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E794494AB90477BA94C681E994ADF341 /* Pods-Runner-dummy.m */; }; - 1EBCE5591489EF6DAD7D59A94E49079C /* NSObjectProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15E946AA29BAE6D8401B09B1EE807356 /* NSObjectProxyApiDelegate.swift */; }; - 2FA6BAD23885E4439E663A37A5898244 /* geocoding_darwin-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B16837BC52BD69BF3A17A3DE214BA534 /* geocoding_darwin-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4589AAB6DC0D5EC8A9EA40B6B49902A2 /* CLGeocoderProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38EBB97AAB79D7896F589237563A863 /* CLGeocoderProxyApiDelegate.swift */; }; - 5C7F9EAFDB90060C821153417349B450 /* CNPostalAddressProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13E6D05C5A2DDDD26608D19E262D8B8A /* CNPostalAddressProxyApiDelegate.swift */; }; - 62B18FC2F6A040D1F9396AEAFDBC0CDC /* geocoding_darwin-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C5759C423CB3CEB5F828516C6CB6794 /* geocoding_darwin-dummy.m */; }; - 682F4861647FA61FB08CD684DE9788DD /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 2933666BC6FDEE2A987943364994FAA0 /* PrivacyInfo.xcprivacy */; }; - 6BF8B124D89139C22CE0ED92FCD22A7F /* CLLocationProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A66A97598EA245DB1532F4D3A1F00F9 /* CLLocationProxyApiDelegate.swift */; }; - 7090D389867C8720355B275C48F0E4FC /* LocaleProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26D2461BEBF1FC71697BD5A775B65A12 /* LocaleProxyApiDelegate.swift */; }; - 7D00F4C3985A38E0E3CE1FC4734B36C4 /* geocoding_darwin-geocoding_darwin_privacy in Resources */ = {isa = PBXBuildFile; fileRef = 773BB3F48EBAD4DC2DB0D056B5B15FC7 /* geocoding_darwin-geocoding_darwin_privacy */; }; - 8677B0AEA4C26B53EC584C2203C07319 /* GeocodingDarwinPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EDCBAAD01E092FDEBB62660BB941000 /* GeocodingDarwinPlugin.swift */; }; - 8A227308B98ADBD034FB6A15FE92707B /* CLLocationSourceInformationProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8946116902E9E5934A29D0385447936 /* CLLocationSourceInformationProxyApiDelegate.swift */; }; - AB3CBAF0C34944A0C73FEF82CD2AE42D /* url_launcher_macos-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C8884B3FA5A1794028A7F7D1B4C723A /* url_launcher_macos-dummy.m */; }; - B375EA128E6579366091BAA390BBDD34 /* Pods-RunnerTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D3DB54C128E3D88C0C9C7DDEA475ED7 /* Pods-RunnerTests-dummy.m */; }; - BB25AC6305C51351CA44B80314E15A08 /* CLPlacemarkProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D6CE57908ADB8E108FB86F459D589E7 /* CLPlacemarkProxyApiDelegate.swift */; }; - BB54D69A6341C1EC8F55F9EF858DF1E8 /* CLGeocoderLibrary.g.swift in Sources */ = {isa = PBXBuildFile; fileRef = 155AB05CDEDF87A6B573D51B8AA8EFBF /* CLGeocoderLibrary.g.swift */; }; - BCF54605CC227A3EDE2F1953B154E0C6 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EE00D34B275026D4656C738BED5A001 /* Cocoa.framework */; }; - C159D4A74274CEEDB2E8C74E9FD29910 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EE00D34B275026D4656C738BED5A001 /* Cocoa.framework */; }; - C261667EACA671BEAF2922BF7F3D055E /* CLFloorProxyApiDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 551BF44311DA9AB81D823D82E6183769 /* CLFloorProxyApiDelegate.swift */; }; - C65AC7C1D279FC94F060ACC6305B7B30 /* UrlLauncherPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97F03951397C926D8D1AF855F672DB46 /* UrlLauncherPlugin.swift */; }; - CE8B3A192CB093F6FACB51CC426795E1 /* url_launcher_macos-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 799DCBE1C68E7072A408C68F158627C5 /* url_launcher_macos-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF4D5B0DCB2388216F7EDF7AB24DD9DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EE00D34B275026D4656C738BED5A001 /* Cocoa.framework */; }; - D09323093D9CD260C4FCFC0617B09534 /* StructWrappers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEC565D1F85B0E7E45C05FB423ECCDC /* StructWrappers.swift */; }; - D39918B7FC72A72510B34D14E50ABE6A /* ProxyApiRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7849D33367C7DC4617E4CC20CD5E715 /* ProxyApiRegistrar.swift */; }; - E9F14B48B4D1EDF3C12DA322312C7DD0 /* url_launcher_macos-url_launcher_macos_privacy in Resources */ = {isa = PBXBuildFile; fileRef = 1C017A23A0627698026BC47D53596E76 /* url_launcher_macos-url_launcher_macos_privacy */; }; - EB2DC96CDCF638AB89007D2DB0F3119A /* Pods-RunnerTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E9B12BCE5540D02A80250C3EC16D399 /* Pods-RunnerTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F02D569924A7312ACAEB3B66B837EE65 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 640D3F45DD60E2FE36264D9C17AB44D4 /* PrivacyInfo.xcprivacy */; }; - F130ADE9AECDF886C2F6D37BCADB5AA3 /* Pods-Runner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 499E3722E8DACDC2AAA6C15AD1796520 /* Pods-Runner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 446B514A88FADAEB68B66DD3B79D750C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CA272E8348BAB4CE0B0C804FB7B818C4; - remoteInfo = FlutterMacOS; - }; - 5BA05EE69CE7601D0858876E3F19F4BE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CA272E8348BAB4CE0B0C804FB7B818C4; - remoteInfo = FlutterMacOS; - }; - 68D75B52376F9B2EE56CD3EFE9C610BF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CD7AE32C2F3A14031FB4B912CABCC791; - remoteInfo = "url_launcher_macos-url_launcher_macos_privacy"; - }; - 8AF2D52036BBD51A7FB6CD41009713C9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8B74B458B450D74B75744B87BD747314; - remoteInfo = "Pods-Runner"; - }; - 9C6BBAA2BBB92A642D8D5B0BD7223791 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 21B495F40BC6839AED63A77677F8DD42; - remoteInfo = "geocoding_darwin-geocoding_darwin_privacy"; - }; - A700F678F0FDCECBBD59D74613AA7839 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 18785DB831C0FA5904C6F1414D53CB5B; - remoteInfo = url_launcher_macos; - }; - AFE579245895A7FEA9E396852ACD608C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 041709380401F170CB24C6ABF2AA6F95; - remoteInfo = geocoding_darwin; - }; - D706C894401B3917C2185B783AB716DC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = CA272E8348BAB4CE0B0C804FB7B818C4; - remoteInfo = FlutterMacOS; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 03E8AD2E8B75443E12D3D3BD12A9900E /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - 0AFB643DA4919253F749E2836A5AAFDC /* Pods-Runner-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Runner-Info.plist"; sourceTree = ""; }; - 11AA7018F95317D959D9D2E76CBB2377 /* Pods-RunnerTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-RunnerTests-acknowledgements.markdown"; sourceTree = ""; }; - 13E6D05C5A2DDDD26608D19E262D8B8A /* CNPostalAddressProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CNPostalAddressProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CNPostalAddressProxyApiDelegate.swift; sourceTree = ""; }; - 155AB05CDEDF87A6B573D51B8AA8EFBF /* CLGeocoderLibrary.g.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CLGeocoderLibrary.g.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLGeocoderLibrary.g.swift; sourceTree = ""; }; - 15E946AA29BAE6D8401B09B1EE807356 /* NSObjectProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NSObjectProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/NSObjectProxyApiDelegate.swift; sourceTree = ""; }; - 19ACAFE0FB711947E6D7EA1A0138B052 /* geocoding_darwin.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = geocoding_darwin.modulemap; sourceTree = ""; }; - 1A66A97598EA245DB1532F4D3A1F00F9 /* CLLocationProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CLLocationProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationProxyApiDelegate.swift; sourceTree = ""; }; - 1B136F41D5B5FAE96EA576E768A5771D /* Pods-Runner-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Runner-acknowledgements.plist"; sourceTree = ""; }; - 1C017A23A0627698026BC47D53596E76 /* url_launcher_macos-url_launcher_macos_privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "url_launcher_macos-url_launcher_macos_privacy"; path = url_launcher_macos_privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 1C7DBB879059596A1DE89F18B85392D4 /* geocoding_darwin-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "geocoding_darwin-Info.plist"; sourceTree = ""; }; - 1DEC565D1F85B0E7E45C05FB423ECCDC /* StructWrappers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StructWrappers.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/StructWrappers.swift; sourceTree = ""; }; - 22DF090618411C2A8AE1DB1DF6CA5F6E /* url_launcher_macos.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = url_launcher_macos.podspec; path = "../../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/macos/url_launcher_macos.podspec"; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 26D2461BEBF1FC71697BD5A775B65A12 /* LocaleProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LocaleProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/LocaleProxyApiDelegate.swift; sourceTree = ""; }; - 2782D8881DA2A7833FC6C99D4499424D /* url_launcher_macos.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = url_launcher_macos.modulemap; sourceTree = ""; }; - 2933666BC6FDEE2A987943364994FAA0 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = "../../../../../../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/macos/url_launcher_macos/Sources/url_launcher_macos/Resources/PrivacyInfo.xcprivacy"; sourceTree = ""; }; - 3286FCD502AC5EF7D70294F85382020D /* FlutterMacOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FlutterMacOS.release.xcconfig; sourceTree = ""; }; - 3CE0D7E7EED92B6B056FA34311BF98D2 /* FlutterMacOS.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = FlutterMacOS.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 3EDCBAAD01E092FDEBB62660BB941000 /* GeocodingDarwinPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GeocodingDarwinPlugin.swift; path = ../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/GeocodingDarwinPlugin.swift; sourceTree = ""; }; - 499E3722E8DACDC2AAA6C15AD1796520 /* Pods-Runner-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Runner-umbrella.h"; sourceTree = ""; }; - 4B45BE6CD7260048939E186553261531 /* geocoding_darwin-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "geocoding_darwin-prefix.pch"; sourceTree = ""; }; - 4D3DB54C128E3D88C0C9C7DDEA475ED7 /* Pods-RunnerTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-RunnerTests-dummy.m"; sourceTree = ""; }; - 4FD66118D2EEC962532D1868A73ADE23 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = "../../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/LICENSE"; sourceTree = ""; }; - 53CFD6992476496154D225587959BC0F /* messages.g.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = messages.g.swift; path = "../../../../../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/macos/url_launcher_macos/Sources/url_launcher_macos/messages.g.swift"; sourceTree = ""; }; - 551BF44311DA9AB81D823D82E6183769 /* CLFloorProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CLFloorProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLFloorProxyApiDelegate.swift; sourceTree = ""; }; - 640D3F45DD60E2FE36264D9C17AB44D4 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = ../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-Runner"; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6B8003E0A47993199F4B4587155DA7EC /* geocoding_darwin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = geocoding_darwin.release.xcconfig; sourceTree = ""; }; - 6C3345B1B3CAEDF5B03B1F731FDC492E /* Pods-RunnerTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-RunnerTests"; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6DCF8974CC24D8F5D5DF38BC74704C60 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = ../../../../../../../../LICENSE; sourceTree = ""; }; - 728A5ED1DD60BAC8C8F382A87B976F84 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 74F87FF9A7FF0B11663318DA51C97B54 /* geocoding_darwin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = geocoding_darwin.debug.xcconfig; sourceTree = ""; }; - 759C5E0F874B8132C0AF01F20A50B84E /* CLLocationCoordinate2DProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CLLocationCoordinate2DProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationCoordinate2DProxyApiDelegate.swift; sourceTree = ""; }; - 773BB3F48EBAD4DC2DB0D056B5B15FC7 /* geocoding_darwin-geocoding_darwin_privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "geocoding_darwin-geocoding_darwin_privacy"; path = geocoding_darwin_privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 773BFCE41424EB8EBB72EF3F6A5FB719 /* Pods-Runner-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Runner-frameworks.sh"; sourceTree = ""; }; - 799DCBE1C68E7072A408C68F158627C5 /* url_launcher_macos-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "url_launcher_macos-umbrella.h"; sourceTree = ""; }; - 79F83F4D505FA40C1CD18A8029181D59 /* Pods-RunnerTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RunnerTests-acknowledgements.plist"; sourceTree = ""; }; - 7C8884B3FA5A1794028A7F7D1B4C723A /* url_launcher_macos-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "url_launcher_macos-dummy.m"; sourceTree = ""; }; - 7D6CE57908ADB8E108FB86F459D589E7 /* CLPlacemarkProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CLPlacemarkProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLPlacemarkProxyApiDelegate.swift; sourceTree = ""; }; - 7E5269FD7D95ACE61E872A4706410BE5 /* geocoding_darwin.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = geocoding_darwin.podspec; path = ../../../../../../../../darwin/geocoding_darwin.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 8C5759C423CB3CEB5F828516C6CB6794 /* geocoding_darwin-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "geocoding_darwin-dummy.m"; sourceTree = ""; }; - 97F03951397C926D8D1AF855F672DB46 /* UrlLauncherPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UrlLauncherPlugin.swift; path = "../../../../../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/macos/url_launcher_macos/Sources/url_launcher_macos/UrlLauncherPlugin.swift"; sourceTree = ""; }; - 9B10EFEC4825FC47757F55718F1425F6 /* url_launcher_macos.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = url_launcher_macos.release.xcconfig; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9E9B12BCE5540D02A80250C3EC16D399 /* Pods-RunnerTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-RunnerTests-umbrella.h"; sourceTree = ""; }; - 9EE00D34B275026D4656C738BED5A001 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; - A38EBB97AAB79D7896F589237563A863 /* CLGeocoderProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CLGeocoderProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLGeocoderProxyApiDelegate.swift; sourceTree = ""; }; - AC8FE152530FBDCE460186B326C1A8FB /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - B00A5ECAED4CA0C16FF7C65365BC0334 /* Pods-RunnerTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-RunnerTests-Info.plist"; sourceTree = ""; }; - B0BD57AB3672E53828D11C2A3368023A /* Pods-RunnerTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-RunnerTests.modulemap"; sourceTree = ""; }; - B16837BC52BD69BF3A17A3DE214BA534 /* geocoding_darwin-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "geocoding_darwin-umbrella.h"; sourceTree = ""; }; - B1AEEF86AC83B16D42E9C5ABE1397477 /* ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist"; sourceTree = ""; }; - B703785507B22BAF0B800737429577EC /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.release.xcconfig"; sourceTree = ""; }; - C0C9A074EEF12F27AC2F536567F9FAE1 /* url_launcher_macos */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = url_launcher_macos; path = url_launcher_macos.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C24C1A035F22D24883C6F1876F274C6F /* Pods-Runner.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Runner.modulemap"; sourceTree = ""; }; - C50FD10CD19FF6999637BA5ECAF1681B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - C7507681ACE20E3B7FEC49A0AA8C2DB4 /* url_launcher_macos.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = url_launcher_macos.debug.xcconfig; sourceTree = ""; }; - CE6A710DF7D1B84E3EC9CF3C75960D6F /* url_launcher_macos-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "url_launcher_macos-Info.plist"; sourceTree = ""; }; - D8946116902E9E5934A29D0385447936 /* CLLocationSourceInformationProxyApiDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CLLocationSourceInformationProxyApiDelegate.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/CLLocationSourceInformationProxyApiDelegate.swift; sourceTree = ""; }; - D8A7DA456C014100EF89AC4B0129C57D /* geocoding_darwin */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = geocoding_darwin; path = geocoding_darwin.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E0B111549F8604073F021997993C079C /* ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist"; sourceTree = ""; }; - E556A8185F03C5CA02B03576BC75EB1C /* url_launcher_macos-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "url_launcher_macos-prefix.pch"; sourceTree = ""; }; - E736E0C9C5B73D27B8865E363E2108AC /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - E794494AB90477BA94C681E994ADF341 /* Pods-Runner-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Runner-dummy.m"; sourceTree = ""; }; - ECDF6AA713870989438BA93B395DC557 /* Pods-Runner-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Runner-acknowledgements.markdown"; sourceTree = ""; }; - F7849D33367C7DC4617E4CC20CD5E715 /* ProxyApiRegistrar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ProxyApiRegistrar.swift; path = ../../../../../../../../../../../../darwin/geocoding_darwin/Sources/geocoding_darwin/CLGeocoder/ProxyApiRegistrar.swift; sourceTree = ""; }; - FE4877F8C64A6FB73F1233520E577E74 /* FlutterMacOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FlutterMacOS.debug.xcconfig; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 5225B45F604A684FC71548C5818501A8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C159D4A74274CEEDB2E8C74E9FD29910 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 73FE10251AE863A3A09AFB37BE1CF12D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 754F817C794A6A9617C915BFC19B082B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 82602350B07A35D5E815A8A065D8618E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CF4D5B0DCB2388216F7EDF7AB24DD9DA /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - EAC0834F7252D8143E0E41335E53F3B8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 03FF65672874530A3E9AE6BAB1764A4A /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - EB4636B20D0358DA3F52CF34798AC0A3 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BCF54605CC227A3EDE2F1953B154E0C6 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 019A403EFEE46148130EDBA4249ED1E6 /* sources */ = { - isa = PBXGroup; - children = ( - 26BE66D4E2DE1AB59D4428699275D340 /* Baseflow */, - ); - name = sources; - path = sources; - sourceTree = ""; - }; - 02B30BC65737530B2F5D41D942356157 /* Flutter */ = { - isa = PBXGroup; - children = ( - 2A4EA9F96816C4B9B0EABDB10DBDE613 /* ephemeral */, - ); - name = Flutter; - path = Flutter; - sourceTree = ""; - }; - 0FB6DE325ED888BE061D6B6C1DD50F4C /* .symlinks */ = { - isa = PBXGroup; - children = ( - 1C0B359E83DD44FB0D7E9705160604FD /* plugins */, - ); - name = .symlinks; - path = .symlinks; - sourceTree = ""; - }; - 0FF617DFB4ADC0C9D5B189F95D7FFF2B /* Sources */ = { - isa = PBXGroup; - children = ( - EF7EE6A67F0E21562D5CF09FD5866F4C /* geocoding_darwin */, - ); - name = Sources; - path = Sources; - sourceTree = ""; - }; - 109E4082BF1E32FAB1C8039377546C2C /* geocoding_darwin */ = { - isa = PBXGroup; - children = ( - 6C7A2CAF1F27D61313599E28F50BA424 /* example */, - ); - name = geocoding_darwin; - path = geocoding_darwin; - sourceTree = ""; - }; - 10D6DE92A12FC289B2A775E8C875DB30 /* url_launcher_macos */ = { - isa = PBXGroup; - children = ( - BA8478F6252EE48AB8BF67DB098D3C94 /* Sources */, - ); - name = url_launcher_macos; - path = url_launcher_macos; - sourceTree = ""; - }; - 1606912FF35F078481627DBC6262C49E /* plugins */ = { - isa = PBXGroup; - children = ( - A5D3EC28FFD312A51AFF2E817A3E0E6C /* url_launcher_macos */, - ); - name = plugins; - path = plugins; - sourceTree = ""; - }; - 19ECCB0CF1BA1D1FF38C0698DC0673AF /* Internal */ = { - isa = PBXGroup; - children = ( - EF1492C79A791E3C10F5A06B8025152A /* Flutter */, - ); - name = Internal; - path = Internal; - sourceTree = ""; - }; - 1C0B359E83DD44FB0D7E9705160604FD /* plugins */ = { - isa = PBXGroup; - children = ( - BEEA4534E6141577BF7C5C7E75B8AB8C /* geocoding_darwin */, - ); - name = plugins; - path = plugins; - sourceTree = ""; - }; - 1D762729D25761ED9F2C6B11E731921B /* .. */ = { - isa = PBXGroup; - children = ( - B5E3291ECBE9200971638FE42F4C160A /* .. */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - 20CC7D2A27DDB0133EEDDDAA4921AC17 /* Baseflow */ = { - isa = PBXGroup; - children = ( - 6AF869BD6939096EAADB62D558696D45 /* Internal */, - ); - name = Baseflow; - path = Baseflow; - sourceTree = ""; - }; - 26BE66D4E2DE1AB59D4428699275D340 /* Baseflow */ = { - isa = PBXGroup; - children = ( - 19ECCB0CF1BA1D1FF38C0698DC0673AF /* Internal */, - ); - name = Baseflow; - path = Baseflow; - sourceTree = ""; - }; - 295B735DDA64075F1BD8F6D6879E7BC8 /* url_launcher_macos */ = { - isa = PBXGroup; - children = ( - 53CFD6992476496154D225587959BC0F /* messages.g.swift */, - 97F03951397C926D8D1AF855F672DB46 /* UrlLauncherPlugin.swift */, - ); - name = url_launcher_macos; - path = url_launcher_macos; - sourceTree = ""; - }; - 2A4EA9F96816C4B9B0EABDB10DBDE613 /* ephemeral */ = { - isa = PBXGroup; - children = ( - 0FB6DE325ED888BE061D6B6C1DD50F4C /* .symlinks */, - ); - name = ephemeral; - path = ephemeral; - sourceTree = ""; - }; - 2B4240E5DC0BD3422577BC21DE11695A /* .. */ = { - isa = PBXGroup; - children = ( - 66E6902B7126366468047984245DA9E1 /* .. */, - ); - name = ..; - path = "../../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.2/macos/url_launcher_macos/Sources"; - sourceTree = ""; - }; - 2DB8426A477BA92773F00012EBA84D53 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - E806A4F97D48F5FD3B4CA1BC617EA1F5 /* Pods-Runner */, - 537E840C4F4E30B706FD9D64B15C53A7 /* Pods-RunnerTests */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - 31831944CF445C1512E0B80315987A0A /* macos */ = { - isa = PBXGroup; - children = ( - A9CA56C0779419EE64016DE0337D2E48 /* Flutter */, - ); - name = macos; - path = macos; - sourceTree = ""; - }; - 38B681AC879E116B8B8C4CF751C58233 /* Support Files */ = { - isa = PBXGroup; - children = ( - 19ACAFE0FB711947E6D7EA1A0138B052 /* geocoding_darwin.modulemap */, - 8C5759C423CB3CEB5F828516C6CB6794 /* geocoding_darwin-dummy.m */, - 1C7DBB879059596A1DE89F18B85392D4 /* geocoding_darwin-Info.plist */, - 4B45BE6CD7260048939E186553261531 /* geocoding_darwin-prefix.pch */, - B16837BC52BD69BF3A17A3DE214BA534 /* geocoding_darwin-umbrella.h */, - 74F87FF9A7FF0B11663318DA51C97B54 /* geocoding_darwin.debug.xcconfig */, - 6B8003E0A47993199F4B4587155DA7EC /* geocoding_darwin.release.xcconfig */, - B1AEEF86AC83B16D42E9C5ABE1397477 /* ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist */, - ); - name = "Support Files"; - path = "../../../../../../Pods/Target Support Files/geocoding_darwin"; - sourceTree = ""; - }; - 41C5DAB1034E75752830C8ECE344B615 /* sources */ = { - isa = PBXGroup; - children = ( - 20CC7D2A27DDB0133EEDDDAA4921AC17 /* Baseflow */, - ); - name = sources; - path = sources; - sourceTree = ""; - }; - 42B815904FF9BEEDA397E0244E0C6E2B /* geocoding */ = { - isa = PBXGroup; - children = ( - F6A3C08BEECA6E478DA5E9EE79485A86 /* geocoding_darwin */, - ); - name = geocoding; - path = geocoding; - sourceTree = ""; - }; - 4795B0663A0BFD66334E723EBB599BB3 /* .. */ = { - isa = PBXGroup; - children = ( - 6456C2A22AC65E74E6747D06F4453DE3 /* .. */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - 48ABCE93B92DF9B236D9C02A6A82C4C0 /* Sources */ = { - isa = PBXGroup; - children = ( - 9E67D4538ED003B097D449DBDAB266F9 /* url_launcher_macos */, - ); - name = Sources; - path = Sources; - sourceTree = ""; - }; - 52C740662085D1384F8E4CB178D3FF88 /* .. */ = { - isa = PBXGroup; - children = ( - 4795B0663A0BFD66334E723EBB599BB3 /* .. */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - 537E840C4F4E30B706FD9D64B15C53A7 /* Pods-RunnerTests */ = { - isa = PBXGroup; - children = ( - B0BD57AB3672E53828D11C2A3368023A /* Pods-RunnerTests.modulemap */, - 11AA7018F95317D959D9D2E76CBB2377 /* Pods-RunnerTests-acknowledgements.markdown */, - 79F83F4D505FA40C1CD18A8029181D59 /* Pods-RunnerTests-acknowledgements.plist */, - 4D3DB54C128E3D88C0C9C7DDEA475ED7 /* Pods-RunnerTests-dummy.m */, - B00A5ECAED4CA0C16FF7C65365BC0334 /* Pods-RunnerTests-Info.plist */, - 9E9B12BCE5540D02A80250C3EC16D399 /* Pods-RunnerTests-umbrella.h */, - 03E8AD2E8B75443E12D3D3BD12A9900E /* Pods-RunnerTests.debug.xcconfig */, - E736E0C9C5B73D27B8865E363E2108AC /* Pods-RunnerTests.profile.xcconfig */, - AC8FE152530FBDCE460186B326C1A8FB /* Pods-RunnerTests.release.xcconfig */, - ); - name = "Pods-RunnerTests"; - path = "Target Support Files/Pods-RunnerTests"; - sourceTree = ""; - }; - 55F702389CEA80581968DBE4EBB5EBCB /* ephemeral */ = { - isa = PBXGroup; - children = ( - B119384DB7E55C23AC8E214F4B05080B /* .symlinks */, - ); - name = ephemeral; - path = ephemeral; - sourceTree = ""; - }; - 57AA2F45492B72399DE7A8E23979D06D /* macos */ = { - isa = PBXGroup; - children = ( - E5F62E9CB56044739BF0FD5D561A5563 /* Flutter */, - ); - name = macos; - path = macos; - sourceTree = ""; - }; - 594489EB895AB59958C3D8CBB47D4DE1 /* .symlinks */ = { - isa = PBXGroup; - children = ( - D55DF77862EFD03A253A3C62A738E461 /* plugins */, - ); - name = .symlinks; - path = .symlinks; - sourceTree = ""; - }; - 6456C2A22AC65E74E6747D06F4453DE3 /* .. */ = { - isa = PBXGroup; - children = ( - B795C67BD9147771FAE6394B3917F8A0 /* example */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - 653FCB8F0D5FFC375F37EB5FC5B01AF1 /* Support Files */ = { - isa = PBXGroup; - children = ( - FE4877F8C64A6FB73F1233520E577E74 /* FlutterMacOS.debug.xcconfig */, - 3286FCD502AC5EF7D70294F85382020D /* FlutterMacOS.release.xcconfig */, - ); - name = "Support Files"; - path = "../../Pods/Target Support Files/FlutterMacOS"; - sourceTree = ""; - }; - 66E6902B7126366468047984245DA9E1 /* .. */ = { - isa = PBXGroup; - children = ( - 8568592E6F9CBBEF6AB378DEF0353386 /* .. */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - 68872F30B54C07092C10E7F79170F772 /* macos */ = { - isa = PBXGroup; - children = ( - 10D6DE92A12FC289B2A775E8C875DB30 /* url_launcher_macos */, - ); - name = macos; - path = macos; - sourceTree = ""; - }; - 68E582F7C0D58A49899C67FBB9A7B6FB /* geocoding */ = { - isa = PBXGroup; - children = ( - 109E4082BF1E32FAB1C8039377546C2C /* geocoding_darwin */, - ); - name = geocoding; - path = geocoding; - sourceTree = ""; - }; - 6AF869BD6939096EAADB62D558696D45 /* Internal */ = { - isa = PBXGroup; - children = ( - 91E9A73B7CE0E1864D5E76E3E24012A9 /* Flutter */, - ); - name = Internal; - path = Internal; - sourceTree = ""; - }; - 6C7A2CAF1F27D61313599E28F50BA424 /* example */ = { - isa = PBXGroup; - children = ( - 31831944CF445C1512E0B80315987A0A /* macos */, - ); - name = example; - path = example; - sourceTree = ""; - }; - 6CF8013CA832F8AB5DDAE0156C97FD88 /* OS X */ = { - isa = PBXGroup; - children = ( - 9EE00D34B275026D4656C738BED5A001 /* Cocoa.framework */, - ); - name = "OS X"; - sourceTree = ""; - }; - 7475902EA0EAC702F9F7B72DC30B2CBE /* .. */ = { - isa = PBXGroup; - children = ( - A34A1B6AE6AA9BF3142BC150F52B6DDC /* .. */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - 7ABDA0C943E6D0161076F66E07F62F59 /* .. */ = { - isa = PBXGroup; - children = ( - 52C740662085D1384F8E4CB178D3FF88 /* .. */, - ); - name = ..; - path = ../../../../../../../../darwin/geocoding_darwin/Sources; - sourceTree = ""; - }; - 853B65B2645645CCAD467D093F493F40 /* .. */ = { - isa = PBXGroup; - children = ( - 019A403EFEE46148130EDBA4249ED1E6 /* sources */, - ); - name = ..; - path = .; - sourceTree = ""; - }; - 8568592E6F9CBBEF6AB378DEF0353386 /* .. */ = { - isa = PBXGroup; - children = ( - 7475902EA0EAC702F9F7B72DC30B2CBE /* .. */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - 8FEB3F6219D76DA125D1486C99899AC7 /* .. */ = { - isa = PBXGroup; - children = ( - 1D762729D25761ED9F2C6B11E731921B /* .. */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - 91E9A73B7CE0E1864D5E76E3E24012A9 /* Flutter */ = { - isa = PBXGroup; - children = ( - 42B815904FF9BEEDA397E0244E0C6E2B /* geocoding */, - ); - name = Flutter; - path = Flutter; - sourceTree = ""; - }; - 98B742FF86CF498CD127683E6302497C /* FlutterMacOS */ = { - isa = PBXGroup; - children = ( - 9C5D7FB2F930504D93709C63985DFF2E /* Pod */, - 653FCB8F0D5FFC375F37EB5FC5B01AF1 /* Support Files */, - ); - name = FlutterMacOS; - path = ../Flutter/ephemeral; - sourceTree = ""; - }; - 9C5D7FB2F930504D93709C63985DFF2E /* Pod */ = { - isa = PBXGroup; - children = ( - 3CE0D7E7EED92B6B056FA34311BF98D2 /* FlutterMacOS.podspec */, - ); - name = Pod; - sourceTree = ""; - }; - 9D3461B40CD149EE468CDCB6C318D1C8 /* macos */ = { - isa = PBXGroup; - children = ( - FCAC4ABAB03240EA2C9E446B43BAF269 /* url_launcher_macos */, - ); - name = macos; - path = macos; - sourceTree = ""; - }; - 9E67D4538ED003B097D449DBDAB266F9 /* url_launcher_macos */ = { - isa = PBXGroup; - children = ( - DF76DDE80C7D3B38C4A0FF947816C217 /* Resources */, - ); - name = url_launcher_macos; - path = url_launcher_macos; - sourceTree = ""; - }; - A34A1B6AE6AA9BF3142BC150F52B6DDC /* .. */ = { - isa = PBXGroup; - children = ( - 8FEB3F6219D76DA125D1486C99899AC7 /* .. */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - A5D3EC28FFD312A51AFF2E817A3E0E6C /* url_launcher_macos */ = { - isa = PBXGroup; - children = ( - 9D3461B40CD149EE468CDCB6C318D1C8 /* macos */, - ); - name = url_launcher_macos; - path = url_launcher_macos; - sourceTree = ""; - }; - A7B96D3A2E3FA9DAEF1DC2ED6B0FCCE2 /* example */ = { - isa = PBXGroup; - children = ( - 57AA2F45492B72399DE7A8E23979D06D /* macos */, - ); - name = example; - path = example; - sourceTree = ""; - }; - A7C6E8C8CE452BB08B621E62EDB72D1B /* geocoding_darwin */ = { - isa = PBXGroup; - children = ( - 7ABDA0C943E6D0161076F66E07F62F59 /* .. */, - C736140043E8C25FC41A29BC27ABE5D6 /* Pod */, - 38B681AC879E116B8B8C4CF751C58233 /* Support Files */, - ); - name = geocoding_darwin; - path = ../Flutter/ephemeral/.symlinks/plugins/geocoding_darwin/darwin; - sourceTree = ""; - }; - A9CA56C0779419EE64016DE0337D2E48 /* Flutter */ = { - isa = PBXGroup; - children = ( - 55F702389CEA80581968DBE4EBB5EBCB /* ephemeral */, - ); - name = Flutter; - path = Flutter; - sourceTree = ""; - }; - B006CC91915780E0FCC36149225B6195 /* Pod */ = { - isa = PBXGroup; - children = ( - 4FD66118D2EEC962532D1868A73ADE23 /* LICENSE */, - 22DF090618411C2A8AE1DB1DF6CA5F6E /* url_launcher_macos.podspec */, - ); - name = Pod; - sourceTree = ""; - }; - B119384DB7E55C23AC8E214F4B05080B /* .symlinks */ = { - isa = PBXGroup; - children = ( - 1606912FF35F078481627DBC6262C49E /* plugins */, - ); - name = .symlinks; - path = .symlinks; - sourceTree = ""; - }; - B5E3291ECBE9200971638FE42F4C160A /* .. */ = { - isa = PBXGroup; - children = ( - 853B65B2645645CCAD467D093F493F40 /* .. */, - 41C5DAB1034E75752830C8ECE344B615 /* sources */, - ); - name = ..; - path = ..; - sourceTree = ""; - }; - B795C67BD9147771FAE6394B3917F8A0 /* example */ = { - isa = PBXGroup; - children = ( - E9754E1E950E0627D1958B54F1699BDE /* macos */, - ); - name = example; - path = example; - sourceTree = ""; - }; - BA8478F6252EE48AB8BF67DB098D3C94 /* Sources */ = { - isa = PBXGroup; - children = ( - 295B735DDA64075F1BD8F6D6879E7BC8 /* url_launcher_macos */, - ); - name = Sources; - path = Sources; - sourceTree = ""; - }; - BEEA4534E6141577BF7C5C7E75B8AB8C /* geocoding_darwin */ = { - isa = PBXGroup; - children = ( - DCBCFE9DDED2E515B7913C2CE9F0636C /* darwin */, - ); - name = geocoding_darwin; - path = geocoding_darwin; - sourceTree = ""; - }; - BFD59B83966DD11A11A556B3535F3D8B /* Products */ = { - isa = PBXGroup; - children = ( - D8A7DA456C014100EF89AC4B0129C57D /* geocoding_darwin */, - 773BB3F48EBAD4DC2DB0D056B5B15FC7 /* geocoding_darwin-geocoding_darwin_privacy */, - 669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */, - 6C3345B1B3CAEDF5B03B1F731FDC492E /* Pods-RunnerTests */, - C0C9A074EEF12F27AC2F536567F9FAE1 /* url_launcher_macos */, - 1C017A23A0627698026BC47D53596E76 /* url_launcher_macos-url_launcher_macos_privacy */, - ); - name = Products; - sourceTree = ""; - }; - C3E5DC7C67F69DECA0DEA95CA253111A /* url_launcher_macos */ = { - isa = PBXGroup; - children = ( - 2B4240E5DC0BD3422577BC21DE11695A /* .. */, - B006CC91915780E0FCC36149225B6195 /* Pod */, - DA6AAC407EEA1DD84BBF0DBCC29CC745 /* Support Files */, - ); - name = url_launcher_macos; - path = ../Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos; - sourceTree = ""; - }; - C736140043E8C25FC41A29BC27ABE5D6 /* Pod */ = { - isa = PBXGroup; - children = ( - 7E5269FD7D95ACE61E872A4706410BE5 /* geocoding_darwin.podspec */, - 6DCF8974CC24D8F5D5DF38BC74704C60 /* LICENSE */, - ); - name = Pod; - sourceTree = ""; - }; - CF1408CF629C7361332E53B88F7BD30C = { - isa = PBXGroup; - children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - F7A6F16A26BDB27C5141066F0F3AC6BC /* Development Pods */, - E0A1E60606E0BF6E2E10F1F01350DFE8 /* Frameworks */, - BFD59B83966DD11A11A556B3535F3D8B /* Products */, - 2DB8426A477BA92773F00012EBA84D53 /* Targets Support Files */, - ); - sourceTree = ""; - }; - D55DF77862EFD03A253A3C62A738E461 /* plugins */ = { - isa = PBXGroup; - children = ( - F621D7A39174E3039E54AB3685353C57 /* url_launcher_macos */, - ); - name = plugins; - path = plugins; - sourceTree = ""; - }; - D69D9CFD22D0C834BA790D92C06CF064 /* CLGeocoder */ = { - isa = PBXGroup; - children = ( - 551BF44311DA9AB81D823D82E6183769 /* CLFloorProxyApiDelegate.swift */, - 155AB05CDEDF87A6B573D51B8AA8EFBF /* CLGeocoderLibrary.g.swift */, - A38EBB97AAB79D7896F589237563A863 /* CLGeocoderProxyApiDelegate.swift */, - 759C5E0F874B8132C0AF01F20A50B84E /* CLLocationCoordinate2DProxyApiDelegate.swift */, - 1A66A97598EA245DB1532F4D3A1F00F9 /* CLLocationProxyApiDelegate.swift */, - D8946116902E9E5934A29D0385447936 /* CLLocationSourceInformationProxyApiDelegate.swift */, - 7D6CE57908ADB8E108FB86F459D589E7 /* CLPlacemarkProxyApiDelegate.swift */, - 13E6D05C5A2DDDD26608D19E262D8B8A /* CNPostalAddressProxyApiDelegate.swift */, - 26D2461BEBF1FC71697BD5A775B65A12 /* LocaleProxyApiDelegate.swift */, - 15E946AA29BAE6D8401B09B1EE807356 /* NSObjectProxyApiDelegate.swift */, - F7849D33367C7DC4617E4CC20CD5E715 /* ProxyApiRegistrar.swift */, - 1DEC565D1F85B0E7E45C05FB423ECCDC /* StructWrappers.swift */, - ); - name = CLGeocoder; - path = CLGeocoder; - sourceTree = ""; - }; - DA6AAC407EEA1DD84BBF0DBCC29CC745 /* Support Files */ = { - isa = PBXGroup; - children = ( - E0B111549F8604073F021997993C079C /* ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist */, - 2782D8881DA2A7833FC6C99D4499424D /* url_launcher_macos.modulemap */, - 7C8884B3FA5A1794028A7F7D1B4C723A /* url_launcher_macos-dummy.m */, - CE6A710DF7D1B84E3EC9CF3C75960D6F /* url_launcher_macos-Info.plist */, - E556A8185F03C5CA02B03576BC75EB1C /* url_launcher_macos-prefix.pch */, - 799DCBE1C68E7072A408C68F158627C5 /* url_launcher_macos-umbrella.h */, - C7507681ACE20E3B7FEC49A0AA8C2DB4 /* url_launcher_macos.debug.xcconfig */, - 9B10EFEC4825FC47757F55718F1425F6 /* url_launcher_macos.release.xcconfig */, - ); - name = "Support Files"; - path = "../../../../../../Pods/Target Support Files/url_launcher_macos"; - sourceTree = ""; - }; - DCBCFE9DDED2E515B7913C2CE9F0636C /* darwin */ = { - isa = PBXGroup; - children = ( - E81CEC63EFDEF2FA5F107D7EE190A9D9 /* geocoding_darwin */, - ); - name = darwin; - path = darwin; - sourceTree = ""; - }; - DF76DDE80C7D3B38C4A0FF947816C217 /* Resources */ = { - isa = PBXGroup; - children = ( - 2933666BC6FDEE2A987943364994FAA0 /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - path = Resources; - sourceTree = ""; - }; - E0A1E60606E0BF6E2E10F1F01350DFE8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 6CF8013CA832F8AB5DDAE0156C97FD88 /* OS X */, - ); - name = Frameworks; - sourceTree = ""; - }; - E5F62E9CB56044739BF0FD5D561A5563 /* Flutter */ = { - isa = PBXGroup; - children = ( - E761C0DFA1323730B0CBA7D3870AB02C /* ephemeral */, - ); - name = Flutter; - path = Flutter; - sourceTree = ""; - }; - E761C0DFA1323730B0CBA7D3870AB02C /* ephemeral */ = { - isa = PBXGroup; - children = ( - 594489EB895AB59958C3D8CBB47D4DE1 /* .symlinks */, - ); - name = ephemeral; - path = ephemeral; - sourceTree = ""; - }; - E806A4F97D48F5FD3B4CA1BC617EA1F5 /* Pods-Runner */ = { - isa = PBXGroup; - children = ( - C24C1A035F22D24883C6F1876F274C6F /* Pods-Runner.modulemap */, - ECDF6AA713870989438BA93B395DC557 /* Pods-Runner-acknowledgements.markdown */, - 1B136F41D5B5FAE96EA576E768A5771D /* Pods-Runner-acknowledgements.plist */, - E794494AB90477BA94C681E994ADF341 /* Pods-Runner-dummy.m */, - 773BFCE41424EB8EBB72EF3F6A5FB719 /* Pods-Runner-frameworks.sh */, - 0AFB643DA4919253F749E2836A5AAFDC /* Pods-Runner-Info.plist */, - 499E3722E8DACDC2AAA6C15AD1796520 /* Pods-Runner-umbrella.h */, - 728A5ED1DD60BAC8C8F382A87B976F84 /* Pods-Runner.debug.xcconfig */, - C50FD10CD19FF6999637BA5ECAF1681B /* Pods-Runner.profile.xcconfig */, - B703785507B22BAF0B800737429577EC /* Pods-Runner.release.xcconfig */, - ); - name = "Pods-Runner"; - path = "Target Support Files/Pods-Runner"; - sourceTree = ""; - }; - E81CEC63EFDEF2FA5F107D7EE190A9D9 /* geocoding_darwin */ = { - isa = PBXGroup; - children = ( - 0FF617DFB4ADC0C9D5B189F95D7FFF2B /* Sources */, - ); - name = geocoding_darwin; - path = geocoding_darwin; - sourceTree = ""; - }; - E9754E1E950E0627D1958B54F1699BDE /* macos */ = { - isa = PBXGroup; - children = ( - 02B30BC65737530B2F5D41D942356157 /* Flutter */, - ); - name = macos; - path = macos; - sourceTree = ""; - }; - EF1492C79A791E3C10F5A06B8025152A /* Flutter */ = { - isa = PBXGroup; - children = ( - 68E582F7C0D58A49899C67FBB9A7B6FB /* geocoding */, - ); - name = Flutter; - path = Flutter; - sourceTree = ""; - }; - EF7EE6A67F0E21562D5CF09FD5866F4C /* geocoding_darwin */ = { - isa = PBXGroup; - children = ( - 3EDCBAAD01E092FDEBB62660BB941000 /* GeocodingDarwinPlugin.swift */, - 640D3F45DD60E2FE36264D9C17AB44D4 /* PrivacyInfo.xcprivacy */, - D69D9CFD22D0C834BA790D92C06CF064 /* CLGeocoder */, - ); - name = geocoding_darwin; - path = geocoding_darwin; - sourceTree = ""; - }; - F621D7A39174E3039E54AB3685353C57 /* url_launcher_macos */ = { - isa = PBXGroup; - children = ( - 68872F30B54C07092C10E7F79170F772 /* macos */, - ); - name = url_launcher_macos; - path = url_launcher_macos; - sourceTree = ""; - }; - F6A3C08BEECA6E478DA5E9EE79485A86 /* geocoding_darwin */ = { - isa = PBXGroup; - children = ( - A7B96D3A2E3FA9DAEF1DC2ED6B0FCCE2 /* example */, - ); - name = geocoding_darwin; - path = geocoding_darwin; - sourceTree = ""; - }; - F7A6F16A26BDB27C5141066F0F3AC6BC /* Development Pods */ = { - isa = PBXGroup; - children = ( - 98B742FF86CF498CD127683E6302497C /* FlutterMacOS */, - A7C6E8C8CE452BB08B621E62EDB72D1B /* geocoding_darwin */, - C3E5DC7C67F69DECA0DEA95CA253111A /* url_launcher_macos */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - FCAC4ABAB03240EA2C9E446B43BAF269 /* url_launcher_macos */ = { - isa = PBXGroup; - children = ( - 48ABCE93B92DF9B236D9C02A6A82C4C0 /* Sources */, - ); - name = url_launcher_macos; - path = url_launcher_macos; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 091DF20B694E8304AA1806638F82E02F /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - CE8B3A192CB093F6FACB51CC426795E1 /* url_launcher_macos-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8E4C3A4020EC3FACA49D07B924B7C067 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - F130ADE9AECDF886C2F6D37BCADB5AA3 /* Pods-Runner-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DD8C9942EA1F2A00E982FE316428E95A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2FA6BAD23885E4439E663A37A5898244 /* geocoding_darwin-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FC4DA9BD27A4914E75F803590E4C4B8B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - EB2DC96CDCF638AB89007D2DB0F3119A /* Pods-RunnerTests-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 041709380401F170CB24C6ABF2AA6F95 /* geocoding_darwin */ = { - isa = PBXNativeTarget; - buildConfigurationList = 894E59F2224DC04AB8FBC72F67FDC884 /* Build configuration list for PBXNativeTarget "geocoding_darwin" */; - buildPhases = ( - DD8C9942EA1F2A00E982FE316428E95A /* Headers */, - 1BD97503EBB197C69EB5E08761B0689D /* Sources */, - 82602350B07A35D5E815A8A065D8618E /* Frameworks */, - 399144FE18AC6CA6FD8B78FFEFE240CC /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 2C3B3CBDDA7ECB03B014CCAFDDE7EEB3 /* PBXTargetDependency */, - 6A476E81BE61151F7E0E8AE84CC4DF59 /* PBXTargetDependency */, - ); - name = geocoding_darwin; - productName = geocoding_darwin; - productReference = D8A7DA456C014100EF89AC4B0129C57D /* geocoding_darwin */; - productType = "com.apple.product-type.framework"; - }; - 18785DB831C0FA5904C6F1414D53CB5B /* url_launcher_macos */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4FF450190D69A230E20E7B300ACDB0E7 /* Build configuration list for PBXNativeTarget "url_launcher_macos" */; - buildPhases = ( - 091DF20B694E8304AA1806638F82E02F /* Headers */, - 2F64E77C103C3280EF51963B8D6A17C2 /* Sources */, - EB4636B20D0358DA3F52CF34798AC0A3 /* Frameworks */, - A168BD838724731476C50E09762A7E6C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - B4E6468FA90DB8033CC38FAF30D2C17F /* PBXTargetDependency */, - 8DF959C20A8668E5FD3A5BF30C277200 /* PBXTargetDependency */, - ); - name = url_launcher_macos; - productName = url_launcher_macos; - productReference = C0C9A074EEF12F27AC2F536567F9FAE1 /* url_launcher_macos */; - productType = "com.apple.product-type.framework"; - }; - 21B495F40BC6839AED63A77677F8DD42 /* geocoding_darwin-geocoding_darwin_privacy */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2E483D01CF6895378DC29D21F4F855BE /* Build configuration list for PBXNativeTarget "geocoding_darwin-geocoding_darwin_privacy" */; - buildPhases = ( - D19AD9043B50DA6EB374D24E8A454F93 /* Sources */, - 73FE10251AE863A3A09AFB37BE1CF12D /* Frameworks */, - 9F66A4EC26C70649B1FA0ECCA63A1167 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "geocoding_darwin-geocoding_darwin_privacy"; - productName = geocoding_darwin_privacy; - productReference = 773BB3F48EBAD4DC2DB0D056B5B15FC7 /* geocoding_darwin-geocoding_darwin_privacy */; - productType = "com.apple.product-type.bundle"; - }; - 3232F0C0E7C65B232832393F9ADDD8C3 /* Pods-RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = D52099AA1537D0F3745166E1889F6CA3 /* Build configuration list for PBXNativeTarget "Pods-RunnerTests" */; - buildPhases = ( - FC4DA9BD27A4914E75F803590E4C4B8B /* Headers */, - 001CCB0FEA80CD1C6BF534C6D9C6283A /* Sources */, - EAC0834F7252D8143E0E41335E53F3B8 /* Frameworks */, - 4A765108DEAFDEBF078F71CDDBE3414E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 0BBC79BFF4DCA13CA3F260CB1F4629AB /* PBXTargetDependency */, - ); - name = "Pods-RunnerTests"; - productName = Pods_RunnerTests; - productReference = 6C3345B1B3CAEDF5B03B1F731FDC492E /* Pods-RunnerTests */; - productType = "com.apple.product-type.framework"; - }; - 8B74B458B450D74B75744B87BD747314 /* Pods-Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4D05E2F15D12D66695F3DD64906A8953 /* Build configuration list for PBXNativeTarget "Pods-Runner" */; - buildPhases = ( - 8E4C3A4020EC3FACA49D07B924B7C067 /* Headers */, - C377A5C6AD20205FEE45B18E2562DBEC /* Sources */, - 5225B45F604A684FC71548C5818501A8 /* Frameworks */, - E504F24509A5A9518D21A0411B7C82CA /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - AA099357E28985E74AE80A0A48FAC60D /* PBXTargetDependency */, - 3C5BA9131533C8C60B1F74047FE65802 /* PBXTargetDependency */, - 28A5C657486AC0023C6527FBF25A2B6B /* PBXTargetDependency */, - ); - name = "Pods-Runner"; - productName = Pods_Runner; - productReference = 669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */; - productType = "com.apple.product-type.framework"; - }; - CD7AE32C2F3A14031FB4B912CABCC791 /* url_launcher_macos-url_launcher_macos_privacy */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4788107DB7F698C0FCD1A840C508A837 /* Build configuration list for PBXNativeTarget "url_launcher_macos-url_launcher_macos_privacy" */; - buildPhases = ( - 552BBF8DD56236D228DA81F73F983389 /* Sources */, - 754F817C794A6A9617C915BFC19B082B /* Frameworks */, - 542C43AEEFA73E565E1B10C5EE657271 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "url_launcher_macos-url_launcher_macos_privacy"; - productName = url_launcher_macos_privacy; - productReference = 1C017A23A0627698026BC47D53596E76 /* url_launcher_macos-url_launcher_macos_privacy */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BFDFE7DC352907FC980B868725387E98 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1600; - LastUpgradeCheck = 1600; - }; - buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 12.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = CF1408CF629C7361332E53B88F7BD30C; - minimizedProjectReferenceProxies = 0; - preferredProjectObjectVersion = 77; - productRefGroup = BFD59B83966DD11A11A556B3535F3D8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */, - 041709380401F170CB24C6ABF2AA6F95 /* geocoding_darwin */, - 21B495F40BC6839AED63A77677F8DD42 /* geocoding_darwin-geocoding_darwin_privacy */, - 8B74B458B450D74B75744B87BD747314 /* Pods-Runner */, - 3232F0C0E7C65B232832393F9ADDD8C3 /* Pods-RunnerTests */, - 18785DB831C0FA5904C6F1414D53CB5B /* url_launcher_macos */, - CD7AE32C2F3A14031FB4B912CABCC791 /* url_launcher_macos-url_launcher_macos_privacy */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 399144FE18AC6CA6FD8B78FFEFE240CC /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7D00F4C3985A38E0E3CE1FC4734B36C4 /* geocoding_darwin-geocoding_darwin_privacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4A765108DEAFDEBF078F71CDDBE3414E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 542C43AEEFA73E565E1B10C5EE657271 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 682F4861647FA61FB08CD684DE9788DD /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F66A4EC26C70649B1FA0ECCA63A1167 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F02D569924A7312ACAEB3B66B837EE65 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A168BD838724731476C50E09762A7E6C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E9F14B48B4D1EDF3C12DA322312C7DD0 /* url_launcher_macos-url_launcher_macos_privacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E504F24509A5A9518D21A0411B7C82CA /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 001CCB0FEA80CD1C6BF534C6D9C6283A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B375EA128E6579366091BAA390BBDD34 /* Pods-RunnerTests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1BD97503EBB197C69EB5E08761B0689D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C261667EACA671BEAF2922BF7F3D055E /* CLFloorProxyApiDelegate.swift in Sources */, - BB54D69A6341C1EC8F55F9EF858DF1E8 /* CLGeocoderLibrary.g.swift in Sources */, - 4589AAB6DC0D5EC8A9EA40B6B49902A2 /* CLGeocoderProxyApiDelegate.swift in Sources */, - 095F7C9901A6838C745E4DF7925F0F5A /* CLLocationCoordinate2DProxyApiDelegate.swift in Sources */, - 6BF8B124D89139C22CE0ED92FCD22A7F /* CLLocationProxyApiDelegate.swift in Sources */, - 8A227308B98ADBD034FB6A15FE92707B /* CLLocationSourceInformationProxyApiDelegate.swift in Sources */, - BB25AC6305C51351CA44B80314E15A08 /* CLPlacemarkProxyApiDelegate.swift in Sources */, - 5C7F9EAFDB90060C821153417349B450 /* CNPostalAddressProxyApiDelegate.swift in Sources */, - 62B18FC2F6A040D1F9396AEAFDBC0CDC /* geocoding_darwin-dummy.m in Sources */, - 8677B0AEA4C26B53EC584C2203C07319 /* GeocodingDarwinPlugin.swift in Sources */, - 7090D389867C8720355B275C48F0E4FC /* LocaleProxyApiDelegate.swift in Sources */, - 1EBCE5591489EF6DAD7D59A94E49079C /* NSObjectProxyApiDelegate.swift in Sources */, - D39918B7FC72A72510B34D14E50ABE6A /* ProxyApiRegistrar.swift in Sources */, - D09323093D9CD260C4FCFC0617B09534 /* StructWrappers.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2F64E77C103C3280EF51963B8D6A17C2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0D476B81483EC90FC9E8DE5209D22AA3 /* messages.g.swift in Sources */, - AB3CBAF0C34944A0C73FEF82CD2AE42D /* url_launcher_macos-dummy.m in Sources */, - C65AC7C1D279FC94F060ACC6305B7B30 /* UrlLauncherPlugin.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 552BBF8DD56236D228DA81F73F983389 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C377A5C6AD20205FEE45B18E2562DBEC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0EFB405150F9F2865C4555DF395C7182 /* Pods-Runner-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D19AD9043B50DA6EB374D24E8A454F93 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 0BBC79BFF4DCA13CA3F260CB1F4629AB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Runner"; - target = 8B74B458B450D74B75744B87BD747314 /* Pods-Runner */; - targetProxy = 8AF2D52036BBD51A7FB6CD41009713C9 /* PBXContainerItemProxy */; - }; - 28A5C657486AC0023C6527FBF25A2B6B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = url_launcher_macos; - target = 18785DB831C0FA5904C6F1414D53CB5B /* url_launcher_macos */; - targetProxy = A700F678F0FDCECBBD59D74613AA7839 /* PBXContainerItemProxy */; - }; - 2C3B3CBDDA7ECB03B014CCAFDDE7EEB3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FlutterMacOS; - target = CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */; - targetProxy = 446B514A88FADAEB68B66DD3B79D750C /* PBXContainerItemProxy */; - }; - 3C5BA9131533C8C60B1F74047FE65802 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = geocoding_darwin; - target = 041709380401F170CB24C6ABF2AA6F95 /* geocoding_darwin */; - targetProxy = AFE579245895A7FEA9E396852ACD608C /* PBXContainerItemProxy */; - }; - 6A476E81BE61151F7E0E8AE84CC4DF59 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "geocoding_darwin-geocoding_darwin_privacy"; - target = 21B495F40BC6839AED63A77677F8DD42 /* geocoding_darwin-geocoding_darwin_privacy */; - targetProxy = 9C6BBAA2BBB92A642D8D5B0BD7223791 /* PBXContainerItemProxy */; - }; - 8DF959C20A8668E5FD3A5BF30C277200 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "url_launcher_macos-url_launcher_macos_privacy"; - target = CD7AE32C2F3A14031FB4B912CABCC791 /* url_launcher_macos-url_launcher_macos_privacy */; - targetProxy = 68D75B52376F9B2EE56CD3EFE9C610BF /* PBXContainerItemProxy */; - }; - AA099357E28985E74AE80A0A48FAC60D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FlutterMacOS; - target = CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */; - targetProxy = D706C894401B3917C2185B783AB716DC /* PBXContainerItemProxy */; - }; - B4E6468FA90DB8033CC38FAF30D2C17F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FlutterMacOS; - target = CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */; - targetProxy = 5BA05EE69CE7601D0858876E3F19F4BE /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 07AD40A4677FB80E95DF81E94F42B5EE /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E736E0C9C5B73D27B8865E363E2108AC /* Pods-RunnerTests.profile.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - INFOPLIST_FILE = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Profile; - }; - 0AE172D8F2A4843BFACAD21A0ED26541 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; - 27CCA1D346CF695153E0B9C4B4E5B627 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3286FCD502AC5EF7D70294F85382020D /* FlutterMacOS.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = NO; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.14; - SDKROOT = macosx; - }; - name = Profile; - }; - 2C2309A39CD7D28EB97512CBFE934003 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6B8003E0A47993199F4B4587155DA7EC /* geocoding_darwin.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - GCC_PREFIX_HEADER = "Target Support Files/geocoding_darwin/geocoding_darwin-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/geocoding_darwin/geocoding_darwin-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/geocoding_darwin/geocoding_darwin.modulemap"; - PRODUCT_MODULE_NAME = geocoding_darwin; - PRODUCT_NAME = geocoding_darwin; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 2F978137B584D9C9A45EC9A374859E7B /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9B10EFEC4825FC47757F55718F1425F6 /* url_launcher_macos.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - COMBINE_HIDPI_IMAGES = YES; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_macos"; - IBSC_MODULE = url_launcher_macos; - INFOPLIST_FILE = "Target Support Files/url_launcher_macos/ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.14; - PRODUCT_NAME = url_launcher_macos_privacy; - SDKROOT = macosx; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 4D76D2BDCED0BA4F5C54E5373904BE43 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 74F87FF9A7FF0B11663318DA51C97B54 /* geocoding_darwin.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - GCC_PREFIX_HEADER = "Target Support Files/geocoding_darwin/geocoding_darwin-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/geocoding_darwin/geocoding_darwin-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/geocoding_darwin/geocoding_darwin.modulemap"; - PRODUCT_MODULE_NAME = geocoding_darwin; - PRODUCT_NAME = geocoding_darwin; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 5513041B72307E3042AE88B7518E63AC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6B8003E0A47993199F4B4587155DA7EC /* geocoding_darwin.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - COMBINE_HIDPI_IMAGES = YES; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geocoding_darwin"; - IBSC_MODULE = geocoding_darwin; - INFOPLIST_FILE = "Target Support Files/geocoding_darwin/ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - PRODUCT_NAME = geocoding_darwin_privacy; - SDKROOT = macosx; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 56497A60AD00A65BB67F4548C5068C0E /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9B10EFEC4825FC47757F55718F1425F6 /* url_launcher_macos.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - COMBINE_HIDPI_IMAGES = YES; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_macos"; - IBSC_MODULE = url_launcher_macos; - INFOPLIST_FILE = "Target Support Files/url_launcher_macos/ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.14; - PRODUCT_NAME = url_launcher_macos_privacy; - SDKROOT = macosx; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Profile; - }; - 5A458F5B4327B634EA44B348BF63FF58 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3286FCD502AC5EF7D70294F85382020D /* FlutterMacOS.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = NO; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.14; - SDKROOT = macosx; - }; - name = Release; - }; - 7240A8579D4E173D4895EA679806EC07 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AC8FE152530FBDCE460186B326C1A8FB /* Pods-RunnerTests.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - INFOPLIST_FILE = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 808E544862838153672EA12FCC127D9A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - 8E2C2630603A7530835FAC2720EFC5FB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C7507681ACE20E3B7FEC49A0AA8C2DB4 /* url_launcher_macos.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - GCC_PREFIX_HEADER = "Target Support Files/url_launcher_macos/url_launcher_macos-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/url_launcher_macos/url_launcher_macos-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.14; - MODULEMAP_FILE = "Target Support Files/url_launcher_macos/url_launcher_macos.modulemap"; - PRODUCT_MODULE_NAME = url_launcher_macos; - PRODUCT_NAME = url_launcher_macos; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 8EEC78D2E4358983F6DCCFD6D2591858 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9B10EFEC4825FC47757F55718F1425F6 /* url_launcher_macos.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - GCC_PREFIX_HEADER = "Target Support Files/url_launcher_macos/url_launcher_macos-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/url_launcher_macos/url_launcher_macos-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.14; - MODULEMAP_FILE = "Target Support Files/url_launcher_macos/url_launcher_macos.modulemap"; - PRODUCT_MODULE_NAME = url_launcher_macos; - PRODUCT_NAME = url_launcher_macos; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Profile; - }; - 9847E36DB3EE64730CFBC2CE8B5984A4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 728A5ED1DD60BAC8C8F382A87B976F84 /* Pods-Runner.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A83EE7BD279A10E9D315B282FE6C3BC7 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C50FD10CD19FF6999637BA5ECAF1681B /* Pods-Runner.profile.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Profile; - }; - AF5B76B31CAF4546B42C34718BA67232 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_PROFILE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Profile; - }; - B19C1A9D448F4AC85E1E450B01C6E78A /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6B8003E0A47993199F4B4587155DA7EC /* geocoding_darwin.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - COMBINE_HIDPI_IMAGES = YES; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geocoding_darwin"; - IBSC_MODULE = geocoding_darwin; - INFOPLIST_FILE = "Target Support Files/geocoding_darwin/ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - PRODUCT_NAME = geocoding_darwin_privacy; - SDKROOT = macosx; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Profile; - }; - BE96E2DE848706C3D3A92C5FF8E252E2 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9B10EFEC4825FC47757F55718F1425F6 /* url_launcher_macos.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - GCC_PREFIX_HEADER = "Target Support Files/url_launcher_macos/url_launcher_macos-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/url_launcher_macos/url_launcher_macos-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.14; - MODULEMAP_FILE = "Target Support Files/url_launcher_macos/url_launcher_macos.modulemap"; - PRODUCT_MODULE_NAME = url_launcher_macos; - PRODUCT_NAME = url_launcher_macos; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - CCCBDF5B3DFCD03DBF3FD7A0A21439A7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B703785507B22BAF0B800737429577EC /* Pods-Runner.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D6D9ADD603376414D6A1C5CE40940469 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 74F87FF9A7FF0B11663318DA51C97B54 /* geocoding_darwin.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - COMBINE_HIDPI_IMAGES = YES; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geocoding_darwin"; - IBSC_MODULE = geocoding_darwin; - INFOPLIST_FILE = "Target Support Files/geocoding_darwin/ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - PRODUCT_NAME = geocoding_darwin_privacy; - SDKROOT = macosx; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - DBF005E23D7BB5F768B6F37BF522182F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C7507681ACE20E3B7FEC49A0AA8C2DB4 /* url_launcher_macos.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - COMBINE_HIDPI_IMAGES = YES; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_macos"; - IBSC_MODULE = url_launcher_macos; - INFOPLIST_FILE = "Target Support Files/url_launcher_macos/ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.14; - PRODUCT_NAME = url_launcher_macos_privacy; - SDKROOT = macosx; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - E3492020E6C8FFFAA75EF20124A3E54A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 03E8AD2E8B75443E12D3D3BD12A9900E /* Pods-RunnerTests.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - INFOPLIST_FILE = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F3813F9251DE3DEA56EC26564DB0139F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE4877F8C64A6FB73F1233520E577E74 /* FlutterMacOS.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = NO; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 10.14; - SDKROOT = macosx; - }; - name = Debug; - }; - FEBC906B895DDBC9C96C88BF4D664E65 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6B8003E0A47993199F4B4587155DA7EC /* geocoding_darwin.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - FRAMEWORK_SEARCH_PATHS = ( - "\"/Users/maurits/development/flutter/bin/cache/artifacts/engine/darwin-x64-release/FlutterMacOS.xcframework/macos-arm64_x86_64\"", - "$(inherited)", - ); - GCC_PREFIX_HEADER = "Target Support Files/geocoding_darwin/geocoding_darwin-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/geocoding_darwin/geocoding_darwin-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MODULEMAP_FILE = "Target Support Files/geocoding_darwin/geocoding_darwin.modulemap"; - PRODUCT_MODULE_NAME = geocoding_darwin; - PRODUCT_NAME = geocoding_darwin; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Profile; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 2E483D01CF6895378DC29D21F4F855BE /* Build configuration list for PBXNativeTarget "geocoding_darwin-geocoding_darwin_privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D6D9ADD603376414D6A1C5CE40940469 /* Debug */, - B19C1A9D448F4AC85E1E450B01C6E78A /* Profile */, - 5513041B72307E3042AE88B7518E63AC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4788107DB7F698C0FCD1A840C508A837 /* Build configuration list for PBXNativeTarget "url_launcher_macos-url_launcher_macos_privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DBF005E23D7BB5F768B6F37BF522182F /* Debug */, - 56497A60AD00A65BB67F4548C5068C0E /* Profile */, - 2F978137B584D9C9A45EC9A374859E7B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 808E544862838153672EA12FCC127D9A /* Debug */, - AF5B76B31CAF4546B42C34718BA67232 /* Profile */, - 0AE172D8F2A4843BFACAD21A0ED26541 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4D05E2F15D12D66695F3DD64906A8953 /* Build configuration list for PBXNativeTarget "Pods-Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9847E36DB3EE64730CFBC2CE8B5984A4 /* Debug */, - A83EE7BD279A10E9D315B282FE6C3BC7 /* Profile */, - CCCBDF5B3DFCD03DBF3FD7A0A21439A7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4FF450190D69A230E20E7B300ACDB0E7 /* Build configuration list for PBXNativeTarget "url_launcher_macos" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8E2C2630603A7530835FAC2720EFC5FB /* Debug */, - 8EEC78D2E4358983F6DCCFD6D2591858 /* Profile */, - BE96E2DE848706C3D3A92C5FF8E252E2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 624022EE1C2EAB1C3CC38699E1368C5F /* Build configuration list for PBXAggregateTarget "FlutterMacOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F3813F9251DE3DEA56EC26564DB0139F /* Debug */, - 27CCA1D346CF695153E0B9C4B4E5B627 /* Profile */, - 5A458F5B4327B634EA44B348BF63FF58 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 894E59F2224DC04AB8FBC72F67FDC884 /* Build configuration list for PBXNativeTarget "geocoding_darwin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4D76D2BDCED0BA4F5C54E5373904BE43 /* Debug */, - FEBC906B895DDBC9C96C88BF4D664E65 /* Profile */, - 2C2309A39CD7D28EB97512CBFE934003 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D52099AA1537D0F3745166E1889F6CA3 /* Build configuration list for PBXNativeTarget "Pods-RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E3492020E6C8FFFAA75EF20124A3E54A /* Debug */, - 07AD40A4677FB80E95DF81E94F42B5EE /* Profile */, - 7240A8579D4E173D4895EA679806EC07 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; -} diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/FlutterMacOS.xcscheme b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/FlutterMacOS.xcscheme deleted file mode 100644 index 7c07e83..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/FlutterMacOS.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/Pods-Runner.xcscheme b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/Pods-Runner.xcscheme deleted file mode 100644 index 2eb6216..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/Pods-Runner.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/Pods-RunnerTests.xcscheme b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/Pods-RunnerTests.xcscheme deleted file mode 100644 index ce8b385..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/Pods-RunnerTests.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/geocoding_darwin-geocoding_darwin_privacy.xcscheme b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/geocoding_darwin-geocoding_darwin_privacy.xcscheme deleted file mode 100644 index b82693a..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/geocoding_darwin-geocoding_darwin_privacy.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/geocoding_darwin.xcscheme b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/geocoding_darwin.xcscheme deleted file mode 100644 index 5bc558e..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/geocoding_darwin.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/url_launcher_macos-url_launcher_macos_privacy.xcscheme b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/url_launcher_macos-url_launcher_macos_privacy.xcscheme deleted file mode 100644 index a09484d..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/url_launcher_macos-url_launcher_macos_privacy.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/url_launcher_macos.xcscheme b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/url_launcher_macos.xcscheme deleted file mode 100644 index c3a6caf..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/url_launcher_macos.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/xcschememanagement.plist b/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 217efc0..0000000 --- a/geocoding_darwin/example/macos/Pods/Pods.xcodeproj/xcuserdata/maurits.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,46 +0,0 @@ - - - - - SchemeUserState - - FlutterMacOS.xcscheme - - isShown - - - Pods-Runner.xcscheme - - isShown - - - Pods-RunnerTests.xcscheme - - isShown - - - geocoding_darwin-geocoding_darwin_privacy.xcscheme - - isShown - - - geocoding_darwin.xcscheme - - isShown - - - url_launcher_macos-url_launcher_macos_privacy.xcscheme - - isShown - - - url_launcher_macos.xcscheme - - isShown - - - - SuppressBuildableAutocreation - - - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.debug.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.debug.xcconfig deleted file mode 100644 index 222fc41..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.debug.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CODE_SIGN_IDENTITY = -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FlutterMacOS -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.release.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.release.xcconfig deleted file mode 100644 index 222fc41..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.release.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CODE_SIGN_IDENTITY = -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FlutterMacOS -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-Info.plist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-Info.plist deleted file mode 100644 index 19cf209..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.markdown b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.markdown deleted file mode 100644 index 91dd95e..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.markdown +++ /dev/null @@ -1,57 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## geocoding_darwin - -MIT License - -Copyright (c) 2018 Baseflow - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -## url_launcher_macos - -Copyright 2013 The Flutter Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Generated by CocoaPods - https://cocoapods.org diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.plist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.plist deleted file mode 100644 index 963f939..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.plist +++ /dev/null @@ -1,93 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - MIT License - -Copyright (c) 2018 Baseflow - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - Title - geocoding_darwin - Type - PSGroupSpecifier - - - FooterText - Copyright 2013 The Flutter Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - License - BSD - Title - url_launcher_macos - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-dummy.m b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-dummy.m deleted file mode 100644 index 0b73bc1..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_Runner : NSObject -@end -@implementation PodsDummy_Pods_Runner -@end diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-input-files.xcfilelist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-input-files.xcfilelist deleted file mode 100644 index 05ebcad..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh -${BUILT_PRODUCTS_DIR}/geocoding_darwin/geocoding_darwin.framework -${BUILT_PRODUCTS_DIR}/url_launcher_macos/url_launcher_macos.framework \ No newline at end of file diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-output-files.xcfilelist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-output-files.xcfilelist deleted file mode 100644 index aee643b..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/geocoding_darwin.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_macos.framework \ No newline at end of file diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-input-files.xcfilelist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-input-files.xcfilelist deleted file mode 100644 index 05ebcad..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh -${BUILT_PRODUCTS_DIR}/geocoding_darwin/geocoding_darwin.framework -${BUILT_PRODUCTS_DIR}/url_launcher_macos/url_launcher_macos.framework \ No newline at end of file diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-output-files.xcfilelist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-output-files.xcfilelist deleted file mode 100644 index aee643b..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/geocoding_darwin.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_macos.framework \ No newline at end of file diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist deleted file mode 100644 index 05ebcad..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh -${BUILT_PRODUCTS_DIR}/geocoding_darwin/geocoding_darwin.framework -${BUILT_PRODUCTS_DIR}/url_launcher_macos/url_launcher_macos.framework \ No newline at end of file diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-output-files.xcfilelist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-output-files.xcfilelist deleted file mode 100644 index aee643b..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/geocoding_darwin.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_macos.framework \ No newline at end of file diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh deleted file mode 100755 index 57a5442..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh +++ /dev/null @@ -1,192 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" -BCSYMBOLMAP_DIR="BCSymbolMaps" - - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink -f "${source}")" - fi - - if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then - # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied - find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do - echo "Installing $f" - install_bcsymbolmap "$f" "$destination" - rm "$f" - done - rmdir "${source}/${BCSYMBOLMAP_DIR}" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures from the dSYM. - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - if [[ $STRIP_BINARY_RETVAL == 0 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - mkdir -p "${DWARF_DSYM_FOLDER_PATH}" - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=1 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=0 -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/geocoding_darwin/geocoding_darwin.framework" - install_framework "${BUILT_PRODUCTS_DIR}/url_launcher_macos/url_launcher_macos.framework" -fi -if [[ "$CONFIGURATION" == "Profile" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/geocoding_darwin/geocoding_darwin.framework" - install_framework "${BUILT_PRODUCTS_DIR}/url_launcher_macos/url_launcher_macos.framework" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/geocoding_darwin/geocoding_darwin.framework" - install_framework "${BUILT_PRODUCTS_DIR}/url_launcher_macos/url_launcher_macos.framework" -fi -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-umbrella.h b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-umbrella.h deleted file mode 100644 index 80f15ff..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double Pods_RunnerVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_RunnerVersionString[]; - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig deleted file mode 100644 index ea89ba5..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig +++ /dev/null @@ -1,16 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin/geocoding_darwin.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos/url_launcher_macos.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/../Frameworks' '@loader_path/Frameworks' "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "geocoding_darwin" -framework "url_launcher_macos" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/FlutterMacOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "-F${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.modulemap b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.modulemap deleted file mode 100644 index d2cf6f6..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_Runner { - umbrella header "Pods-Runner-umbrella.h" - - export * - module * { export * } -} diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig deleted file mode 100644 index ea89ba5..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig +++ /dev/null @@ -1,16 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin/geocoding_darwin.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos/url_launcher_macos.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/../Frameworks' '@loader_path/Frameworks' "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "geocoding_darwin" -framework "url_launcher_macos" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/FlutterMacOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "-F${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig deleted file mode 100644 index ea89ba5..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig +++ /dev/null @@ -1,16 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin/geocoding_darwin.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos/url_launcher_macos.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/../Frameworks' '@loader_path/Frameworks' "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "geocoding_darwin" -framework "url_launcher_macos" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/FlutterMacOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "-F${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist deleted file mode 100644 index 19cf209..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-acknowledgements.markdown b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-acknowledgements.markdown deleted file mode 100644 index 102af75..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-acknowledgements.markdown +++ /dev/null @@ -1,3 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: -Generated by CocoaPods - https://cocoapods.org diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-acknowledgements.plist b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-acknowledgements.plist deleted file mode 100644 index 7acbad1..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-acknowledgements.plist +++ /dev/null @@ -1,29 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-dummy.m b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-dummy.m deleted file mode 100644 index a664d4a..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_RunnerTests : NSObject -@end -@implementation PodsDummy_Pods_RunnerTests -@end diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-umbrella.h b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-umbrella.h deleted file mode 100644 index edfc7f8..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double Pods_RunnerTestsVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_RunnerTestsVersionString[]; - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig deleted file mode 100644 index 9266441..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin/geocoding_darwin.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos/url_launcher_macos.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift -LIBRARY_SEARCH_PATHS = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "geocoding_darwin" -framework "url_launcher_macos" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap deleted file mode 100644 index c3d99a7..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_RunnerTests { - umbrella header "Pods-RunnerTests-umbrella.h" - - export * - module * { export * } -} diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig deleted file mode 100644 index 9266441..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin/geocoding_darwin.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos/url_launcher_macos.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift -LIBRARY_SEARCH_PATHS = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "geocoding_darwin" -framework "url_launcher_macos" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig deleted file mode 100644 index 9266441..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin/geocoding_darwin.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos/url_launcher_macos.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift -LIBRARY_SEARCH_PATHS = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "geocoding_darwin" -framework "url_launcher_macos" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist b/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist deleted file mode 100644 index e22a9aa..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/ResourceBundle-geocoding_darwin_privacy-geocoding_darwin-Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 0.0.1 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-Info.plist b/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-Info.plist deleted file mode 100644 index 8928a8d..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.0.1 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-dummy.m b/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-dummy.m deleted file mode 100644 index ec4f35b..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_geocoding_darwin : NSObject -@end -@implementation PodsDummy_geocoding_darwin -@end diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-prefix.pch b/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-prefix.pch deleted file mode 100644 index 082f8af..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-umbrella.h b/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-umbrella.h deleted file mode 100644 index 78ec060..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double geocoding_darwinVersionNumber; -FOUNDATION_EXPORT const unsigned char geocoding_darwinVersionString[]; - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.debug.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.debug.xcconfig deleted file mode 100644 index 1376cee..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.debug.xcconfig +++ /dev/null @@ -1,18 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CODE_SIGN_IDENTITY = -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin -DEFINES_MODULE = YES -EXCLUDED_ARCHS[sdk=iphonesimulator*] = i386 -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral/.symlinks/plugins/geocoding_darwin/darwin -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.modulemap b/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.modulemap deleted file mode 100644 index c69b37e..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module geocoding_darwin { - umbrella header "geocoding_darwin-umbrella.h" - - export * - module * { export * } -} diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.release.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.release.xcconfig deleted file mode 100644 index 1376cee..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/geocoding_darwin/geocoding_darwin.release.xcconfig +++ /dev/null @@ -1,18 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CODE_SIGN_IDENTITY = -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/geocoding_darwin -DEFINES_MODULE = YES -EXCLUDED_ARCHS[sdk=iphonesimulator*] = i386 -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/ $(SDKROOT)/usr/lib/swift -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral/.symlinks/plugins/geocoding_darwin/darwin -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist b/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist deleted file mode 100644 index e22a9aa..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/ResourceBundle-url_launcher_macos_privacy-url_launcher_macos-Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 0.0.1 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-dummy.m b/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-dummy.m deleted file mode 100644 index 40b90f0..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_url_launcher_macos : NSObject -@end -@implementation PodsDummy_url_launcher_macos -@end diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-prefix.pch b/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-prefix.pch deleted file mode 100644 index 082f8af..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-umbrella.h b/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-umbrella.h deleted file mode 100644 index bcacf5a..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double url_launcher_macosVersionNumber; -FOUNDATION_EXPORT const unsigned char url_launcher_macosVersionString[]; - diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.debug.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.debug.xcconfig deleted file mode 100644 index 1549b49..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.debug.xcconfig +++ /dev/null @@ -1,16 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CODE_SIGN_IDENTITY = -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos -DEFINES_MODULE = YES -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.modulemap b/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.modulemap deleted file mode 100644 index 6317545..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module url_launcher_macos { - umbrella header "url_launcher_macos-umbrella.h" - - export * - module * { export * } -} diff --git a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.release.xcconfig b/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.release.xcconfig deleted file mode 100644 index 1549b49..0000000 --- a/geocoding_darwin/example/macos/Pods/Target Support Files/url_launcher_macos/url_launcher_macos.release.xcconfig +++ /dev/null @@ -1,16 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CODE_SIGN_IDENTITY = -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/url_launcher_macos -DEFINES_MODULE = YES -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/geocoding_darwin/example/macos/Runner.xcodeproj/project.pbxproj b/geocoding_darwin/example/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..42c3025 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,730 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* geocoding_darwin_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = geocoding_darwin_example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 02464DC4B22221A691E25E06 /* Pods */ = { + isa = PBXGroup; + children = ( + ); + path = Pods; + sourceTree = ""; + }; + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + 02464DC4B22221A691E25E06 /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* geocoding_darwin_example.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* geocoding_darwin_example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/geocoding_darwin_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/geocoding_darwin_example"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/geocoding_darwin_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/geocoding_darwin_example"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/geocoding_darwin_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/geocoding_darwin_example"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/geocoding_darwin/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/geocoding_darwin/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/geocoding_darwin/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/geocoding_darwin/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..4be1b4c --- /dev/null +++ b/geocoding_darwin/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/geocoding_darwin/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/geocoding_darwin/example/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/geocoding_darwin/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/geocoding_darwin/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/geocoding_darwin/example/macos/Runner/AppDelegate.swift b/geocoding_darwin/example/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..b3c1761 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } +} diff --git a/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000..82b6f9d Binary files /dev/null and b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png differ diff --git a/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000..13b35eb Binary files /dev/null and b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png differ diff --git a/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000..0a3f5fa Binary files /dev/null and b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png differ diff --git a/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000..bdb5722 Binary files /dev/null and b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png differ diff --git a/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000..f083318 Binary files /dev/null and b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png differ diff --git a/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000..326c0e7 Binary files /dev/null and b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png differ diff --git a/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000..2f1632c Binary files /dev/null and b/geocoding_darwin/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png differ diff --git a/geocoding_darwin/example/macos/Runner/Base.lproj/MainMenu.xib b/geocoding_darwin/example/macos/Runner/Base.lproj/MainMenu.xib new file mode 100644 index 0000000..80e867a --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/Base.lproj/MainMenu.xib @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/geocoding_darwin/example/macos/Runner/Configs/AppInfo.xcconfig b/geocoding_darwin/example/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..d157db5 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = geocoding_darwin_example + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.baseflow.geocoding.geocodingDarwinExample + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2025 com.baseflow.geocoding. All rights reserved. diff --git a/geocoding_darwin/example/macos/Runner/Configs/Debug.xcconfig b/geocoding_darwin/example/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/geocoding_darwin/example/macos/Runner/Configs/Release.xcconfig b/geocoding_darwin/example/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/geocoding_darwin/example/macos/Runner/Configs/Warnings.xcconfig b/geocoding_darwin/example/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/geocoding_darwin/example/macos/Runner/DebugProfile.entitlements b/geocoding_darwin/example/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/geocoding_darwin/example/macos/Runner/Info.plist b/geocoding_darwin/example/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/geocoding_darwin/example/macos/Runner/MainFlutterWindow.swift b/geocoding_darwin/example/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/geocoding_darwin/example/macos/Runner/Release.entitlements b/geocoding_darwin/example/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/geocoding_darwin/example/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/geocoding_darwin/example/macos/RunnerTests/RunnerTests.swift b/geocoding_darwin/example/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..3a64fe0 --- /dev/null +++ b/geocoding_darwin/example/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,28 @@ +import Cocoa +import FlutterMacOS +import XCTest + + +@testable import geocoding_darwin + +// This demonstrates a simple unit test of the Swift portion of this plugin's implementation. +// +// See https://developer.apple.com/documentation/xctest for more information about using XCTest. + +class RunnerTests: XCTestCase { + + func testGetPlatformVersion() { + let plugin = GeocodingDarwinPlugin() + + let call = FlutterMethodCall(methodName: "getPlatformVersion", arguments: []) + + let resultExpectation = expectation(description: "result block must be called.") + plugin.handle(call) { result in + XCTAssertEqual(result as! String, + "macOS " + ProcessInfo.processInfo.operatingSystemVersionString) + resultExpectation.fulfill() + } + waitForExpectations(timeout: 1) + } + +} diff --git a/geocoding_darwin/example/pubspec.yaml b/geocoding_darwin/example/pubspec.yaml new file mode 100644 index 0000000..e998881 --- /dev/null +++ b/geocoding_darwin/example/pubspec.yaml @@ -0,0 +1,26 @@ +name: geocoding_darwin_example +description: "Demonstrates how to use the geocoding_darwin plugin." +publish_to: "none" # Remove this line if you wish to publish to pub.dev + +environment: + sdk: ^3.8.1 + +dependencies: + baseflow_plugin_template: ^2.1.2 + flutter: + sdk: flutter + + geocoding_darwin: + path: ../ + cupertino_icons: ^1.0.8 + url_launcher: ^6.3.1 + +dev_dependencies: + integration_test: + sdk: flutter + flutter_test: + sdk: flutter + flutter_lints: ^5.0.0 + +flutter: + uses-material-design: true diff --git a/geocoding_darwin/lib/geocoding_darwin.dart b/geocoding_darwin/lib/geocoding_darwin.dart new file mode 100644 index 0000000..63c75a4 --- /dev/null +++ b/geocoding_darwin/lib/geocoding_darwin.dart @@ -0,0 +1,2 @@ +export 'src/geocoding_darwin.dart'; +export 'src/geocoding_darwin_factory.dart'; diff --git a/geocoding_darwin/lib/src/clgeocoder/clgeocoder.g.dart b/geocoding_darwin/lib/src/clgeocoder/clgeocoder.g.dart new file mode 100644 index 0000000..24abb22 --- /dev/null +++ b/geocoding_darwin/lib/src/clgeocoder/clgeocoder.g.dart @@ -0,0 +1,2321 @@ +// Autogenerated from Pigeon (v25.5.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon +// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers + +import 'dart:async'; +import 'dart:io' show Platform; +import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; + +import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/services.dart'; +import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; + +PlatformException _createConnectionError(String channelName) { + return PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); +} + +List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { + if (empty) { + return []; + } + if (error == null) { + return [result]; + } + return [error.code, error.message, error.details]; +} +/// An immutable object that serves as the base class for all ProxyApis and +/// can provide functional copies of itself. +/// +/// All implementers are expected to be [immutable] as defined by the annotation +/// and override [pigeon_copy] returning an instance of itself. +@immutable +abstract class PigeonInternalProxyApiBaseClass { + /// Construct a [PigeonInternalProxyApiBaseClass]. + PigeonInternalProxyApiBaseClass({ + this.pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) : pigeon_instanceManager = + pigeon_instanceManager ?? PigeonInstanceManager.instance; + + /// Sends and receives binary data across the Flutter platform barrier. + /// + /// If it is null, the default BinaryMessenger will be used, which routes to + /// the host platform. + @protected + final BinaryMessenger? pigeon_binaryMessenger; + + /// Maintains instances stored to communicate with native language objects. + final PigeonInstanceManager pigeon_instanceManager; + + /// Instantiates and returns a functionally identical object to oneself. + /// + /// Outside of tests, this method should only ever be called by + /// [PigeonInstanceManager]. + /// + /// Subclasses should always override their parent's implementation of this + /// method. + @protected + PigeonInternalProxyApiBaseClass pigeon_copy(); +} + +/// Maintains instances used to communicate with the native objects they +/// represent. +/// +/// Added instances are stored as weak references and their copies are stored +/// as strong references to maintain access to their variables and callback +/// methods. Both are stored with the same identifier. +/// +/// When a weak referenced instance becomes inaccessible, +/// [onWeakReferenceRemoved] is called with its associated identifier. +/// +/// If an instance is retrieved and has the possibility to be used, +/// (e.g. calling [getInstanceWithWeakReference]) a copy of the strong reference +/// is added as a weak reference with the same identifier. This prevents a +/// scenario where the weak referenced instance was released and then later +/// returned by the host platform. +class PigeonInstanceManager { + /// Constructs a [PigeonInstanceManager]. + PigeonInstanceManager({required void Function(int) onWeakReferenceRemoved}) { + this.onWeakReferenceRemoved = (int identifier) { + _weakInstances.remove(identifier); + onWeakReferenceRemoved(identifier); + }; + _finalizer = Finalizer(this.onWeakReferenceRemoved); + } + + // Identifiers are locked to a specific range to avoid collisions with objects + // created simultaneously by the host platform. + // Host uses identifiers >= 2^16 and Dart is expected to use values n where, + // 0 <= n < 2^16. + static const int _maxDartCreatedIdentifier = 65536; + + /// The default [PigeonInstanceManager] used by ProxyApis. + /// + /// On creation, this manager makes a call to clear the native + /// InstanceManager. This is to prevent identifier conflicts after a host + /// restart. + static final PigeonInstanceManager instance = _initInstance(); + + // Expando is used because it doesn't prevent its keys from becoming + // inaccessible. This allows the manager to efficiently retrieve an identifier + // of an instance without holding a strong reference to that instance. + // + // It also doesn't use `==` to search for identifiers, which would lead to an + // infinite loop when comparing an object to its copy. (i.e. which was caused + // by calling instanceManager.getIdentifier() inside of `==` while this was a + // HashMap). + final Expando _identifiers = Expando(); + final Map> _weakInstances = + >{}; + final Map _strongInstances = {}; + late final Finalizer _finalizer; + int _nextIdentifier = 0; + + /// Called when a weak referenced instance is removed by [removeWeakReference] + /// or becomes inaccessible. + late final void Function(int) onWeakReferenceRemoved; + + static PigeonInstanceManager _initInstance() { + if (Platform.environment['FLUTTER_TEST'] == 'true') { + return PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + } + WidgetsFlutterBinding.ensureInitialized(); + final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); + // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. + api.clear(); + final PigeonInstanceManager instanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (int identifier) { + api.removeStrongReference(identifier); + }, + ); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); + CLFloor.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CLGeocoder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CLLocation.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CLLocationCoordinate2D.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CLLocationSourceInformation.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CLPlacemark.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CNPostalAddress.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Locale.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + NSObject.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + return instanceManager; + } + + /// Adds a new instance that was instantiated by Dart. + /// + /// In other words, Dart wants to add a new instance that will represent + /// an object that will be instantiated on the host platform. + /// + /// Throws assertion error if the instance has already been added. + /// + /// Returns the randomly generated id of the [instance] added. + int addDartCreatedInstance(PigeonInternalProxyApiBaseClass instance) { + assert(getIdentifier(instance) == null); + + final int identifier = _nextUniqueIdentifier(); + _identifiers[instance] = identifier; + _weakInstances[identifier] = + WeakReference(instance); + _finalizer.attach(instance, identifier, detach: instance); + + final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); + _identifiers[copy] = identifier; + _strongInstances[identifier] = copy; + return identifier; + } + + /// Removes the instance, if present, and call [onWeakReferenceRemoved] with + /// its identifier. + /// + /// Returns the identifier associated with the removed instance. Otherwise, + /// `null` if the instance was not found in this manager. + /// + /// This does not remove the strong referenced instance associated with + /// [instance]. This can be done with [remove]. + int? removeWeakReference(PigeonInternalProxyApiBaseClass instance) { + final int? identifier = getIdentifier(instance); + if (identifier == null) { + return null; + } + + _identifiers[instance] = null; + _finalizer.detach(instance); + onWeakReferenceRemoved(identifier); + + return identifier; + } + + /// Removes [identifier] and its associated strongly referenced instance, if + /// present, from the manager. + /// + /// Returns the strong referenced instance associated with [identifier] before + /// it was removed. Returns `null` if [identifier] was not associated with + /// any strong reference. + /// + /// Throws an `AssertionError` if the weak referenced instance associated with + /// [identifier] is not removed first. This can be done with + /// [removeWeakReference]. + T? remove(int identifier) { + final T? instance = _weakInstances[identifier]?.target as T?; + assert( + instance == null, + 'A strong instance with identifier $identifier is being removed despite the weak reference still existing: $instance', + ); + return _strongInstances.remove(identifier) as T?; + } + + /// Retrieves the instance associated with identifier. + /// + /// The value returned is chosen from the following order: + /// + /// 1. A weakly referenced instance associated with identifier. + /// 2. If the only instance associated with identifier is a strongly + /// referenced instance, a copy of the instance is added as a weak reference + /// with the same identifier. Returning the newly created copy. + /// 3. If no instance is associated with identifier, returns null. + /// + /// This method also expects the host `InstanceManager` to have a strong + /// reference to the instance the identifier is associated with. + T? getInstanceWithWeakReference(int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; + + if (weakInstance == null) { + final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; + if (strongInstance != null) { + final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); + _identifiers[copy] = identifier; + _weakInstances[identifier] = WeakReference(copy); + _finalizer.attach(copy, identifier, detach: copy); + return copy as T; + } + return strongInstance as T?; + } + + return weakInstance as T; + } + + /// Retrieves the identifier associated with instance. + int? getIdentifier(PigeonInternalProxyApiBaseClass instance) { + return _identifiers[instance]; + } + + /// Adds a new instance that was instantiated by the host platform. + /// + /// In other words, the host platform wants to add a new instance that + /// represents an object on the host platform. Stored with [identifier]. + /// + /// Throws assertion error if the instance or its identifier has already been + /// added. + void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { + assert(!containsIdentifier(identifier)); + assert(getIdentifier(instance) == null); + assert(identifier >= 0); + + _identifiers[instance] = identifier; + _strongInstances[identifier] = instance; + } + + /// Whether this manager contains the given [identifier]. + bool containsIdentifier(int identifier) { + return _weakInstances.containsKey(identifier) || + _strongInstances.containsKey(identifier); + } + + int _nextUniqueIdentifier() { + late int identifier; + do { + identifier = _nextIdentifier; + _nextIdentifier = (_nextIdentifier + 1) % _maxDartCreatedIdentifier; + } while (containsIdentifier(identifier)); + return identifier; + } +} + +/// Generated API for managing the Dart and native `PigeonInstanceManager`s. +class _PigeonInternalInstanceManagerApi { + /// Constructor for [_PigeonInternalInstanceManagerApi]. + _PigeonInternalInstanceManagerApi({BinaryMessenger? binaryMessenger}) + : pigeonVar_binaryMessenger = binaryMessenger; + + final BinaryMessenger? pigeonVar_binaryMessenger; + + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + static void setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? binaryMessenger, + PigeonInstanceManager? instanceManager, + }) { + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.geocoding_darwin.PigeonInternalInstanceManager.removeStrongReference', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.PigeonInternalInstanceManager.removeStrongReference was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.PigeonInternalInstanceManager.removeStrongReference was null, expected non-null int.'); + try { + (instanceManager ?? PigeonInstanceManager.instance) + .remove(arg_identifier!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + Future removeStrongReference(int identifier) async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.PigeonInternalInstanceManager.removeStrongReference'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([identifier]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Clear the native `PigeonInstanceManager`. + /// + /// This is typically called after a hot restart. + Future clear() async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.PigeonInternalInstanceManager.clear'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } +} + +class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } +} + + +/// The values that can be returned in a change dictionary. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvalueobservingoptions. +enum KeyValueObservingOptions { + /// Indicates that the change dictionary should provide the new attribute + /// value, if applicable. + newValue, + /// Indicates that the change dictionary should contain the old attribute + /// value, if applicable. + oldValue, + /// If specified, a notification should be sent to the observer immediately, + /// before the observer registration method even returns. + initialValue, + /// Whether separate notifications should be sent to the observer before and + /// after each change, instead of a single notification after the change. + priorNotification, +} + +/// The kinds of changes that can be observed. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvaluechange. +enum KeyValueChange { + /// Indicates that the value of the observed key path was set to a new value. + setting, + /// Indicates that an object has been inserted into the to-many relationship + /// that is being observed. + insertion, + /// Indicates that an object has been removed from the to-many relationship + /// that is being observed. + removal, + /// Indicates that an object has been replaced in the to-many relationship + /// that is being observed. + replacement, + /// The value is not recognized by the wrapper. + unknown, +} + +/// The keys that can appear in the change dictionary. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvaluechangekey. +enum KeyValueChangeKey { + /// If the value of the `KeyValueChangeKey.kind` entry is + /// `KeyValueChange.insertion`, `KeyValueChange.removal`, or + /// `KeyValueChange.replacement`, the value of this key is a Set object that + /// contains the indexes of the inserted, removed, or replaced objects. + indexes, + /// An object that contains a value corresponding to one of the + /// `KeyValueChange` enum, indicating what sort of change has occurred. + kind, + /// If the value of the `KeyValueChange.kind` entry is + /// `KeyValueChange.setting, and `KeyValueObservingOptions.newValue` was + /// specified when the observer was registered, the value of this key is the + /// new value for the attribute. + newValue, + /// If the `KeyValueObservingOptions.priorNotification` option was specified + /// when the observer was registered this notification is sent prior to a + /// change. + notificationIsPrior, + /// If the value of the `KeyValueChange.kind` entry is + /// `KeyValueChange.setting`, and `KeyValueObservingOptions.old` was specified + /// when the observer was registered, the value of this key is the value + /// before the attribute was changed. + oldValue, + /// The value is not recognized by the wrapper. + unknown, +} + + +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else if (value is KeyValueObservingOptions) { + buffer.putUint8(129); + writeValue(buffer, value.index); + } else if (value is KeyValueChange) { + buffer.putUint8(130); + writeValue(buffer, value.index); + } else if (value is KeyValueChangeKey) { + buffer.putUint8(131); + writeValue(buffer, value.index); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 129: + final int? value = readValue(buffer) as int?; + return value == null ? null : KeyValueObservingOptions.values[value]; + case 130: + final int? value = readValue(buffer) as int?; + return value == null ? null : KeyValueChange.values[value]; + case 131: + final int? value = readValue(buffer) as int?; + return value == null ? null : KeyValueChangeKey.values[value]; + default: + return super.readValueOfType(type, buffer); + } + } +} +/// The floor of a building on which the user’s device is located. +/// +/// See https://developer.apple.com/documentation/corelocation/clfloor +class CLFloor extends NSObject { + /// Constructs [CLFloor] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CLFloor.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.level, + super.observeValue, + }) : super.pigeon_detached(); + + /// The logical floor of the building. + final int level; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CLFloor Function(int level)? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + 'dev.flutter.pigeon.geocoding_darwin.CLFloor.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLFloor.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLFloor.pigeon_newInstance was null, expected non-null int.'); + final int? arg_level = (args[1] as int?); + assert(arg_level != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLFloor.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_level!) ?? + CLFloor.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + level: arg_level!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CLFloor pigeon_copy() { + return CLFloor.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + level: level, + observeValue: observeValue, + ); + } +} + +/// An object that displays interactive web content, such as for an in-app +/// browser. +/// +/// See https://developer.apple.com/documentation/webkit/wkwebview. +class CLGeocoder extends NSObject { + /// Creates a [CLGeocoder]. + CLGeocoder({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + super.observeValue, + }) : super.pigeon_detached() { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLGeocoder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLGeocoder.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); + () async { + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [CLGeocoder] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CLGeocoder.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + super.observeValue, + }) : super.pigeon_detached(); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCLGeocoder = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CLGeocoder Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.geocoding_darwin.CLGeocoder.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLGeocoder.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLGeocoder.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CLGeocoder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Submits a forward-geocoding requesting using the specified address string + /// and locale information. + Future?> geocodeAddressString( + String address, + Locale? locale, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLGeocoder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLGeocoder.geocodeAddressString'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, address, locale]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as List?)?.cast(); + } + } + + /// Submits a forward-geocoding requesting using the specified locale and + /// Contacts framework information. + Future?> geocodePostalAddress( + CNPostalAddress postalAddress, + Locale? locale, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLGeocoder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLGeocoder.geocodePostalAddress'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, postalAddress, locale]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as List?)?.cast(); + } + } + + /// Submits a reverse-geocoding request for the specified location. + Future?> reverseGeocodeLocation( + CLLocation location, + Locale? locale, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLGeocoder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLGeocoder.reverseGeocodeLocation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, location, locale]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as List?)?.cast(); + } + } + + @override + CLGeocoder pigeon_copy() { + return CLGeocoder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + observeValue: observeValue, + ); + } +} + +/// The latitude, longitude, and course information reported by the system. +/// +/// See https://developer.apple.com/documentation/corelocation/cllocation +class CLLocation extends NSObject { + /// Creates a [CLLocation] based on the supplied coordinates. + CLLocation({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + super.observeValue, + required double latitude, + required double longitude, + }) : super.pigeon_detached() { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, latitude, longitude]); + () async { + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [CLLocation] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CLLocation.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + super.observeValue, + }) : super.pigeon_detached(); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCLLocation = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CLLocation Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocation.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocation.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CLLocation.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// The geographical coordinate information. + Future getCoordinate() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getCoordinate'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as CLLocationCoordinate2D?)!; + } + } + + /// The altitude above mean sea level associated with a location, measured in + /// meters. + Future getAltitude() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getAltitude'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + /// The altitude as a height above the World Geodetic System 1984 (WGS84) + /// ellipsoid, measured in meters. + Future getEllipsoidalAltitude() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getEllipsoidalAltitude'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + /// The logical floor of the building in which the user is located. + Future getFloor() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getFloor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as CLFloor?); + } + } + + /// The time at which this location was determined (in seconds since epoch). + Future getTimestamp() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getTimestamp'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as int?)!; + } + } + + /// Information about the source that provides the location. + Future getSourceInformation() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getSourceInformation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as CLLocationSourceInformation?); + } + } + + /// The radius of uncertainty for the location, measured in meters. + Future getHorizontalAccuracy() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getHorizontalAccuracy'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + /// The validity of the altitude values, and their estimated uncertainty, + /// measured in meters. + Future getVerticalAccuracy() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getVerticalAccuracy'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + /// The instantaneous speed of the device, measured in meters per second. + Future getSpeed() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getSpeed'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + /// The accuracy of the speed value, measured in meters per second. + Future getSpeedAccuracy() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getSpeedAccuracy'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + /// The direction in which the device is traveling, measured in degrees and + /// relative to due north. + Future getCourse() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getCourse'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + /// The accuracy of the course value, measured in degrees. + Future getCourseAccuracy() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.getCourseAccuracy'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + /// Returns the distance (measured in meters) from the current object’s + /// location to the specified location. + Future distance(CLLocation from) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCLLocation; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.CLLocation.distance'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, from]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + @override + CLLocation pigeon_copy() { + return CLLocation.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + observeValue: observeValue, + ); + } +} + +/// The latitude and longitude associated with a location, specified using the +/// WGS 84 reference frame. +/// +/// See https://developer.apple.com/documentation/corelocation/cllocationcoordinate2d +class CLLocationCoordinate2D extends NSObject { + /// Constructs [CLLocationCoordinate2D] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CLLocationCoordinate2D.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.latitude, + required this.longitude, + super.observeValue, + }) : super.pigeon_detached(); + + /// The latitude in degrees. + final double latitude; + + /// The longitude in degrees. + final double longitude; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CLLocationCoordinate2D Function( + double latitude, + double longitude, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.geocoding_darwin.CLLocationCoordinate2D.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocationCoordinate2D.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocationCoordinate2D.pigeon_newInstance was null, expected non-null int.'); + final double? arg_latitude = (args[1] as double?); + assert(arg_latitude != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocationCoordinate2D.pigeon_newInstance was null, expected non-null double.'); + final double? arg_longitude = (args[2] as double?); + assert(arg_longitude != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocationCoordinate2D.pigeon_newInstance was null, expected non-null double.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_latitude!, arg_longitude!) ?? + CLLocationCoordinate2D.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + latitude: arg_latitude!, + longitude: arg_longitude!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CLLocationCoordinate2D pigeon_copy() { + return CLLocationCoordinate2D.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + latitude: latitude, + longitude: longitude, + observeValue: observeValue, + ); + } +} + +/// Information about the source that provides a location. +/// +/// See https://developer.apple.com/documentation/corelocation/cllocationsourceinformation +class CLLocationSourceInformation extends NSObject { + /// Constructs [CLLocationSourceInformation] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CLLocationSourceInformation.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.isProducedByAccessory, + required this.isSimulatedBySoftware, + super.observeValue, + }) : super.pigeon_detached(); + + /// A Boolean value that indicates whether the system receives the location + /// from an external accessory. + final bool isProducedByAccessory; + + /// A Boolean value that indicates whether the system generates the location + /// using on-device software simulation. + final bool isSimulatedBySoftware; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CLLocationSourceInformation Function( + bool isProducedByAccessory, + bool isSimulatedBySoftware, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.geocoding_darwin.CLLocationSourceInformation.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocationSourceInformation.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocationSourceInformation.pigeon_newInstance was null, expected non-null int.'); + final bool? arg_isProducedByAccessory = (args[1] as bool?); + assert(arg_isProducedByAccessory != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocationSourceInformation.pigeon_newInstance was null, expected non-null bool.'); + final bool? arg_isSimulatedBySoftware = (args[2] as bool?); + assert(arg_isSimulatedBySoftware != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLLocationSourceInformation.pigeon_newInstance was null, expected non-null bool.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call( + arg_isProducedByAccessory!, arg_isSimulatedBySoftware!) ?? + CLLocationSourceInformation.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + isProducedByAccessory: arg_isProducedByAccessory!, + isSimulatedBySoftware: arg_isSimulatedBySoftware!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CLLocationSourceInformation pigeon_copy() { + return CLLocationSourceInformation.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + isProducedByAccessory: isProducedByAccessory, + isSimulatedBySoftware: isSimulatedBySoftware, + observeValue: observeValue, + ); + } +} + +/// A user-friendly description of a geographic coordinate, often containing the +/// name of the place, its address, and other relevant information. +/// +/// See https://developer.apple.com/documentation/corelocation/clplacemark +class CLPlacemark extends NSObject { + /// Constructs [CLPlacemark] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CLPlacemark.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + this.location, + this.name, + this.thoroughfare, + this.subThoroughfare, + this.locality, + this.subLocality, + this.administrativeArea, + this.subAdministrativeArea, + this.postalCode, + this.isoCountryCode, + this.country, + this.postalAddress, + super.observeValue, + }) : super.pigeon_detached(); + + /// The [CLLocation] containing latitude and longitude information. + final CLLocation? location; + + /// The name of the placemark. + final String? name; + + /// The street address associated with the placemark. + final String? thoroughfare; + + /// Additional street-level information for the placemark. + final String? subThoroughfare; + + /// The city associated with the placemark. + final String? locality; + + /// Additional city-level information for the placemark. + final String? subLocality; + + /// The state or province associated with the placemark. + final String? administrativeArea; + + /// Additional administrative area information for the placemark. + final String? subAdministrativeArea; + + /// The postal code associated with the placemark. + final String? postalCode; + + /// The abbreviated country or region name. + final String? isoCountryCode; + + /// The name of the country or region associated with the placemark. + final String? country; + + /// The postal address associated with the location, formatted for use with the Contacts framework. + final CNPostalAddress? postalAddress; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CLPlacemark Function( + CLLocation? location, + String? name, + String? thoroughfare, + String? subThoroughfare, + String? locality, + String? subLocality, + String? administrativeArea, + String? subAdministrativeArea, + String? postalCode, + String? isoCountryCode, + String? country, + CNPostalAddress? postalAddress, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.geocoding_darwin.CLPlacemark.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLPlacemark.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CLPlacemark.pigeon_newInstance was null, expected non-null int.'); + final CLLocation? arg_location = (args[1] as CLLocation?); + final String? arg_name = (args[2] as String?); + final String? arg_thoroughfare = (args[3] as String?); + final String? arg_subThoroughfare = (args[4] as String?); + final String? arg_locality = (args[5] as String?); + final String? arg_subLocality = (args[6] as String?); + final String? arg_administrativeArea = (args[7] as String?); + final String? arg_subAdministrativeArea = (args[8] as String?); + final String? arg_postalCode = (args[9] as String?); + final String? arg_isoCountryCode = (args[10] as String?); + final String? arg_country = (args[11] as String?); + final CNPostalAddress? arg_postalAddress = + (args[12] as CNPostalAddress?); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call( + arg_location, + arg_name, + arg_thoroughfare, + arg_subThoroughfare, + arg_locality, + arg_subLocality, + arg_administrativeArea, + arg_subAdministrativeArea, + arg_postalCode, + arg_isoCountryCode, + arg_country, + arg_postalAddress) ?? + CLPlacemark.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + location: arg_location, + name: arg_name, + thoroughfare: arg_thoroughfare, + subThoroughfare: arg_subThoroughfare, + locality: arg_locality, + subLocality: arg_subLocality, + administrativeArea: arg_administrativeArea, + subAdministrativeArea: arg_subAdministrativeArea, + postalCode: arg_postalCode, + isoCountryCode: arg_isoCountryCode, + country: arg_country, + postalAddress: arg_postalAddress, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CLPlacemark pigeon_copy() { + return CLPlacemark.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + location: location, + name: name, + thoroughfare: thoroughfare, + subThoroughfare: subThoroughfare, + locality: locality, + subLocality: subLocality, + administrativeArea: administrativeArea, + subAdministrativeArea: subAdministrativeArea, + postalCode: postalCode, + isoCountryCode: isoCountryCode, + country: country, + postalAddress: postalAddress, + observeValue: observeValue, + ); + } +} + +/// An immutable representation of the postal address for a contact. +/// +/// See https://developer.apple.com/documentation/Contacts/CNPostalAddress +class CNPostalAddress extends NSObject { + /// Constructs [CNPostalAddress] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CNPostalAddress.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.street, + required this.city, + required this.state, + required this.postalCode, + required this.country, + required this.isoCountryCode, + required this.subAdministrativeArea, + required this.subLocality, + super.observeValue, + }) : super.pigeon_detached(); + + /// The street name in a postal address. + final String street; + + /// The city name in a postal address. + final String city; + + /// The state name in a postal address. + final String state; + + /// The postal code in a postal address. + final String postalCode; + + /// The country or region name in a postal address. + final String country; + + /// The ISO country code for the country or region in a postal address, using + /// the ISO 3166-1 alpha-2 standard. + final String isoCountryCode; + + /// The subadministrative area (such as a county or other region) in a postal + /// address. + final String subAdministrativeArea; + + /// Additional information associated with the location, typically defined at + /// the city or town level, in a postal address. + final String subLocality; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CNPostalAddress Function( + String street, + String city, + String state, + String postalCode, + String country, + String isoCountryCode, + String subAdministrativeArea, + String subLocality, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null int.'); + final String? arg_street = (args[1] as String?); + assert(arg_street != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null String.'); + final String? arg_city = (args[2] as String?); + assert(arg_city != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null String.'); + final String? arg_state = (args[3] as String?); + assert(arg_state != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null String.'); + final String? arg_postalCode = (args[4] as String?); + assert(arg_postalCode != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null String.'); + final String? arg_country = (args[5] as String?); + assert(arg_country != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null String.'); + final String? arg_isoCountryCode = (args[6] as String?); + assert(arg_isoCountryCode != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null String.'); + final String? arg_subAdministrativeArea = (args[7] as String?); + assert(arg_subAdministrativeArea != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null String.'); + final String? arg_subLocality = (args[8] as String?); + assert(arg_subLocality != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.CNPostalAddress.pigeon_newInstance was null, expected non-null String.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call( + arg_street!, + arg_city!, + arg_state!, + arg_postalCode!, + arg_country!, + arg_isoCountryCode!, + arg_subAdministrativeArea!, + arg_subLocality!) ?? + CNPostalAddress.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + street: arg_street!, + city: arg_city!, + state: arg_state!, + postalCode: arg_postalCode!, + country: arg_country!, + isoCountryCode: arg_isoCountryCode!, + subAdministrativeArea: arg_subAdministrativeArea!, + subLocality: arg_subLocality!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CNPostalAddress pigeon_copy() { + return CNPostalAddress.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + street: street, + city: city, + state: state, + postalCode: postalCode, + country: country, + isoCountryCode: isoCountryCode, + subAdministrativeArea: subAdministrativeArea, + subLocality: subLocality, + observeValue: observeValue, + ); + } +} + +/// Information about linguistic, cultural, and technological conventions for +/// use in formatting data for presentation. +/// +/// See https://developer.apple.com/documentation/Foundation/Locale +class Locale extends PigeonInternalProxyApiBaseClass { + /// Creates a [Locale] matching the given identifier. + Locale({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required String identifier, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecLocale; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.Locale.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, identifier]); + () async { + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [Locale] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Locale.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecLocale = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + Locale Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + 'dev.flutter.pigeon.geocoding_darwin.Locale.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.Locale.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.Locale.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + Locale.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// The identifier of the locale. + Future getIdentifier() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecLocale; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.Locale.getIdentifier'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as String?)!; + } + } + + @override + Locale pigeon_copy() { + return Locale.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// The root class of most Objective-C class hierarchies, from which subclasses +/// inherit a basic interface to the runtime system and the ability to behave as +/// Objective-C objects. +/// +/// See https://developer.apple.com/documentation/objectivec/nsobject. +class NSObject extends PigeonInternalProxyApiBaseClass { + NSObject({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + this.observeValue, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecNSObject; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.NSObject.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); + () async { + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [NSObject] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + NSObject.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + this.observeValue, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecNSObject = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// Informs the observing object when the value at the specified key path + /// relative to the observed object has changed. + /// + /// For the associated Native object to be automatically garbage collected, + /// it is required that the implementation of this `Function` doesn't have a + /// strong reference to the encapsulating class instance. When this `Function` + /// references a non-local variable, it is strongly recommended to access it + /// with a `WeakReference`: + /// + /// ```dart + /// final WeakReference weakMyVariable = WeakReference(myVariable); + /// final NSObject instance = NSObject( + /// observeValue: (NSObject pigeon_instance, ...) { + /// print(weakMyVariable?.target); + /// }, + /// ); + /// ``` + /// + /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to + /// release the associated Native object manually. + final void Function( + NSObject pigeon_instance, + String? keyPath, + NSObject? object, + Map? change, + )? observeValue; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + NSObject Function()? pigeon_newInstance, + void Function( + NSObject pigeon_instance, + String? keyPath, + NSObject? object, + Map? change, + )? observeValue, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + 'dev.flutter.pigeon.geocoding_darwin.NSObject.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.NSObject.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.NSObject.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + NSObject.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + + { + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + 'dev.flutter.pigeon.geocoding_darwin.NSObject.observeValue', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.NSObject.observeValue was null.'); + final List args = (message as List?)!; + final NSObject? arg_pigeon_instance = (args[0] as NSObject?); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.geocoding_darwin.NSObject.observeValue was null, expected non-null NSObject.'); + final String? arg_keyPath = (args[1] as String?); + final NSObject? arg_object = (args[2] as NSObject?); + final Map? arg_change = + (args[3] as Map?) + ?.cast(); + try { + (observeValue ?? arg_pigeon_instance!.observeValue)?.call( + arg_pigeon_instance!, arg_keyPath, arg_object, arg_change); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Registers the observer object to receive KVO notifications for the key + /// path relative to the object receiving this message. + Future addObserver( + NSObject observer, + String keyPath, + List options, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecNSObject; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.NSObject.addObserver'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, observer, keyPath, options]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Stops the observer object from receiving change notifications for the + /// property specified by the key path relative to the object receiving this + /// message. + Future removeObserver( + NSObject observer, + String keyPath, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecNSObject; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.geocoding_darwin.NSObject.removeObserver'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, observer, keyPath]); + final List? pigeonVar_replyList = + await pigeonVar_sendFuture as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + NSObject pigeon_copy() { + return NSObject.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + observeValue: observeValue, + ); + } +} + diff --git a/geocoding_darwin/lib/src/clgeocoder/clgeocoder_proxy.dart b/geocoding_darwin/lib/src/clgeocoder/clgeocoder_proxy.dart new file mode 100644 index 0000000..1196874 --- /dev/null +++ b/geocoding_darwin/lib/src/clgeocoder/clgeocoder_proxy.dart @@ -0,0 +1,33 @@ +import 'clgeocoder.g.dart'; + +/// Handles constructing objects and calling static methods for the Darwin +/// CLGeocder native library. +/// +/// This class provides dependency injection for the implementations of the +/// platform interface classes. Improving the ease of unit testing and/or +/// overriding the underlying Darwin classes. +/// +/// By default each function calls the default constructor of the class it +/// intends to return. +class CLGeocoderProxy { + /// Creates a [CLGeocoderProxy]. + const CLGeocoderProxy({ + this.newCLGeocoder = CLGeocoder.new, + this.newNSObject = NSObject.new, + }); + + /// Constructs [CLGeocoder]. + final CLGeocoder Function() newCLGeocoder; + + /// Constructs [NSObject]. + final NSObject Function({ + void Function( + NSObject, + String?, + NSObject?, + Map?, + )? + observeValue, + }) + newNSObject; +} diff --git a/geocoding_darwin/lib/src/geocoding_darwin.dart b/geocoding_darwin/lib/src/geocoding_darwin.dart new file mode 100644 index 0000000..af1f04d --- /dev/null +++ b/geocoding_darwin/lib/src/geocoding_darwin.dart @@ -0,0 +1,157 @@ +import 'package:flutter/widgets.dart' as flt; +import 'package:geocoding_darwin/src/clgeocoder/clgeocoder.g.dart'; +import 'package:geocoding_darwin/src/clgeocoder/clgeocoder_proxy.dart'; +import 'package:geocoding_platform_interface/geocoding_platform_interface.dart'; + +export 'package:geocoding_platform_interface/geocoding_platform_interface.dart'; + +/// Object specifying creation parameters for a [GeocodingDarwin] instance. +@flt.immutable +class GeocodingDarwinCreationParams extends GeocodingCreationParams { + //// Creates a [GeocodingDarwinCreationParams]. + GeocodingDarwinCreationParams({ + @flt.visibleForTesting + this.coreLocationGeocoderProxy = const CLGeocoderProxy(), + @flt.visibleForTesting PigeonInstanceManager? instanceManager, + }) : _instanceManager = instanceManager ?? PigeonInstanceManager.instance; + + /// Creates a [GeocodingDarwinCreationParams] using a + /// [GeocodingCreationParams]. + GeocodingDarwinCreationParams.fromGeocodingCreationParams( + GeocodingCreationParams params, { + @flt.visibleForTesting + CLGeocoderProxy coreLocationGeocoderProxy = const CLGeocoderProxy(), + @flt.visibleForTesting PigeonInstanceManager? instanceManager, + }) : this( + coreLocationGeocoderProxy: coreLocationGeocoderProxy, + instanceManager: instanceManager, + ); + + /// Handles constructing objects and calling static method for the Core + /// Location Geocoder native library. + @flt.visibleForTesting + final CLGeocoderProxy coreLocationGeocoderProxy; + + // Maintains instances used to communicate with the native objects they + // represent. + final PigeonInstanceManager _instanceManager; +} + +/// An implementation of the [Geocoding] interface for the Darwin (iOS, macOS) +/// platforms. +class GeocodingDarwin extends Geocoding { + /// Creates a [GeocodingDarwin]. + GeocodingDarwin(GeocodingCreationParams params) + : super.implementation( + (params is GeocodingDarwinCreationParams) + ? params + : GeocodingDarwinCreationParams.fromGeocodingCreationParams(params), + ); + + late final CLGeocoder _coreLocationGeocoder = _darwinParams + .coreLocationGeocoderProxy + .newCLGeocoder(); + + GeocodingDarwinCreationParams get _darwinParams => + params as GeocodingDarwinCreationParams; + + @override + Future> locationFromAddress( + String address, { + flt.Locale? locale, + }) async { + final Locale? nativeLocale = locale != null + ? Locale(identifier: locale.toString()) + : null; + + final List? placemarks = await _coreLocationGeocoder + .geocodeAddressString(address, nativeLocale); + + if (placemarks == null) { + return []; + } + + final Iterable> futures = placemarks.map( + (CLPlacemark placemark) async => await placemark.toDartLocation(), + ); + + return (await Future.wait(futures)).nonNulls.toList(); + } + + @override + Future isPresent() => Future.value(true); + + @override + Future> placemarkFromAddress( + String address, { + flt.Locale? locale, + }) async { + final Locale? nativeLocale = locale != null + ? Locale(identifier: locale.toString()) + : null; + + final List? placemarks = await _coreLocationGeocoder + .geocodeAddressString(address, nativeLocale); + + return placemarks + ?.map((CLPlacemark placemark) => placemark.toDartPlacemark()) + .toList() ?? + []; + } + + @override + Future> placemarkFromCoordinates( + double latitude, + double longitude, { + flt.Locale? locale, + }) async { + final Locale? nativeLocale = locale != null + ? Locale(identifier: locale.toString()) + : null; + + final List? placemarks = await _coreLocationGeocoder + .reverseGeocodeLocation( + CLLocation(latitude: latitude, longitude: longitude), + nativeLocale, + ); + + return placemarks + ?.map((CLPlacemark placemark) => placemark.toDartPlacemark()) + .toList() ?? + []; + } +} + +extension _CLPlacemarkExtensions on CLPlacemark { + Placemark toDartPlacemark() => Placemark( + name: name, + street: postalAddress?.street, + isoCountryCode: isoCountryCode, + country: country, + postalCode: postalAddress?.postalCode ?? postalCode, + administrativeArea: administrativeArea, + subAdministrativeArea: subAdministrativeArea, + locality: locality, + subLocality: subLocality, + thoroughfare: thoroughfare, + subThoroughfare: subThoroughfare, + ); + + Future toDartLocation() async { + final CLLocation? localLocation = location; + + if (localLocation == null) { + return null; + } + + final CLLocationCoordinate2D coordinate = await localLocation + .getCoordinate(); + final int timestamp = await localLocation.getTimestamp(); + + return Location( + latitude: coordinate.latitude, + longitude: coordinate.longitude, + timestamp: DateTime.fromMillisecondsSinceEpoch(timestamp), + ); + } +} diff --git a/geocoding_darwin/lib/src/geocoding_darwin_factory.dart b/geocoding_darwin/lib/src/geocoding_darwin_factory.dart new file mode 100644 index 0000000..d27dc18 --- /dev/null +++ b/geocoding_darwin/lib/src/geocoding_darwin_factory.dart @@ -0,0 +1,17 @@ +import 'package:geocoding_platform_interface/geocoding_platform_interface.dart'; + +import 'geocoding_darwin.dart'; + +/// Implementation of [GeocodingPlatformFactory] for the Darwin (Apple) +/// platform. +class GeocodingDarwinFactory extends GeocodingPlatformFactory { + /// Registers this class as the default instance of the + /// [GeocodingPlatformFactory]. + static void registerWith() {} + + @override + Geocoding createGeocoding(GeocodingCreationParams params) { + // TODO: implement createGeocoding + return super.createGeocoding(params); + } +} diff --git a/geocoding_darwin/pigeons/clgeocoder.dart b/geocoding_darwin/pigeons/clgeocoder.dart new file mode 100644 index 0000000..a6e7470 --- /dev/null +++ b/geocoding_darwin/pigeons/clgeocoder.dart @@ -0,0 +1,344 @@ +// ignore_for_file: avoid_unused_constructor_parameters + +import 'package:pigeon/pigeon.dart'; + +@ConfigurePigeon( + PigeonOptions( + dartOut: 'lib/src/clgeocoder/clgeocoder.g.dart', + swiftOut: 'darwin/geocoding_darwin/Sources/CLGeocoder/CLGeocoderLibrary.g.swift', + ), +) +/// The floor of a building on which the user’s device is located. +/// +/// See https://developer.apple.com/documentation/corelocation/clfloor +@ProxyApi(swiftOptions: SwiftProxyApiOptions(import: 'CoreLocation')) +abstract class CLFloor extends NSObject { + /// The logical floor of the building. + late int level; +} + +/// An object that displays interactive web content, such as for an in-app +/// browser. +/// +/// See https://developer.apple.com/documentation/webkit/wkwebview. +@ProxyApi( + swiftOptions: SwiftProxyApiOptions( + import: 'CoreLocation', + name: 'CLGeocoder', + ), +) +abstract class CLGeocoder extends NSObject { + /// Creates a [CLGeocoder].localLocation. + CLGeocoder(); + + /// Submits a forward-geocoding requesting using the specified address string + /// and locale information. + @async + List? geocodeAddressString(String address, {Locale? locale}); + + /// Submits a forward-geocoding requesting using the specified locale and + /// Contacts framework information. + @async + List? geocodePostalAddress( + CNPostalAddress postalAddress, { + Locale? locale, + }); + + /// Submits a reverse-geocoding request for the specified location. + @async + List? reverseGeocodeLocation( + CLLocation location, { + Locale? locale, + }); +} + +/// The latitude, longitude, and course information reported by the system. +/// +/// See https://developer.apple.com/documentation/corelocation/cllocation +@ProxyApi(swiftOptions: SwiftProxyApiOptions(import: 'CoreLocation')) +abstract class CLLocation extends NSObject { + /// Creates a [CLLocation] based on the supplied coordinates. + CLLocation(double latitude, double longitude); + + /// The geographical coordinate information. + CLLocationCoordinate2D getCoordinate(); + + /// The altitude above mean sea level associated with a location, measured in + /// meters. + double getAltitude(); + + /// The altitude as a height above the World Geodetic System 1984 (WGS84) + /// ellipsoid, measured in meters. + double getEllipsoidalAltitude(); + + /// The logical floor of the building in which the user is located. + CLFloor? getFloor(); + + /// The time at which this location was determined (in seconds since epoch). + int getTimestamp(); + + /// Information about the source that provides the location. + CLLocationSourceInformation? getSourceInformation(); + + /// The radius of uncertainty for the location, measured in meters. + double getHorizontalAccuracy(); + + /// The validity of the altitude values, and their estimated uncertainty, + /// measured in meters. + double getVerticalAccuracy(); + + /// The instantaneous speed of the device, measured in meters per second. + double getSpeed(); + + /// The accuracy of the speed value, measured in meters per second. + double getSpeedAccuracy(); + + /// The direction in which the device is traveling, measured in degrees and + /// relative to due north. + double getCourse(); + + /// The accuracy of the course value, measured in degrees. + double getCourseAccuracy(); + + /// Returns the distance (measured in meters) from the current object’s + /// location to the specified location. + double distance(CLLocation from); +} + +/// The latitude and longitude associated with a location, specified using the +/// WGS 84 reference frame. +/// +/// See https://developer.apple.com/documentation/corelocation/cllocationcoordinate2d +@ProxyApi( + swiftOptions: SwiftProxyApiOptions( + import: 'CoreLocation', + name: 'CLLocationCoordinate2DWrapper', + ), +) +abstract class CLLocationCoordinate2D extends NSObject { + /// The latitude in degrees. + late double latitude; + + /// The longitude in degrees. + late double longitude; +} + +/// Information about the source that provides a location. +/// +/// See https://developer.apple.com/documentation/corelocation/cllocationsourceinformation +@ProxyApi( + swiftOptions: SwiftProxyApiOptions( + import: 'CoreLocation', + minIosApi: '15.0.0', + minMacosApi: '12.0.0', + ), +) +abstract class CLLocationSourceInformation extends NSObject { + /// A Boolean value that indicates whether the system receives the location + /// from an external accessory. + late bool isProducedByAccessory; + + /// A Boolean value that indicates whether the system generates the location + /// using on-device software simulation. + late bool isSimulatedBySoftware; +} + +/// A user-friendly description of a geographic coordinate, often containing the +/// name of the place, its address, and other relevant information. +/// +/// See https://developer.apple.com/documentation/corelocation/clplacemark +@ProxyApi(swiftOptions: SwiftProxyApiOptions(import: 'CoreLocation')) +abstract class CLPlacemark extends NSObject { + /// The [CLLocation] containing latitude and longitude information. + late CLLocation? location; + + /// The name of the placemark. + late String? name; + + /// The street address associated with the placemark. + late String? thoroughfare; + + /// Additional street-level information for the placemark. + late String? subThoroughfare; + + /// The city associated with the placemark. + late String? locality; + + /// Additional city-level information for the placemark. + late String? subLocality; + + /// The state or province associated with the placemark. + late String? administrativeArea; + + /// Additional administrative area information for the placemark. + late String? subAdministrativeArea; + + /// The postal code associated with the placemark. + late String? postalCode; + + /// The abbreviated country or region name. + late String? isoCountryCode; + + /// The name of the country or region associated with the placemark. + late String? country; + + /// The postal address associated with the location, formatted for use with the Contacts framework. + late CNPostalAddress? postalAddress; +} + +/// An immutable representation of the postal address for a contact. +/// +/// See https://developer.apple.com/documentation/Contacts/CNPostalAddress +@ProxyApi(swiftOptions: SwiftProxyApiOptions(import: 'Contacts')) +abstract class CNPostalAddress extends NSObject { + /// The street name in a postal address. + late String street; + + /// The city name in a postal address. + late String city; + + /// The state name in a postal address. + late String state; + + /// The postal code in a postal address. + late String postalCode; + + /// The country or region name in a postal address. + late String country; + + /// The ISO country code for the country or region in a postal address, using + /// the ISO 3166-1 alpha-2 standard. + late String isoCountryCode; + + /// The subadministrative area (such as a county or other region) in a postal + /// address. + late String subAdministrativeArea; + + /// Additional information associated with the location, typically defined at + /// the city or town level, in a postal address. + late String subLocality; +} + +/// Information about linguistic, cultural, and technological conventions for +/// use in formatting data for presentation. +/// +/// See https://developer.apple.com/documentation/Foundation/Locale +@ProxyApi(swiftOptions: SwiftProxyApiOptions(name: 'LocaleWrapper')) +abstract class Locale { + /// Creates a [Locale] matching the given identifier. + Locale(String identifier); + + /// The identifier of the locale. + String getIdentifier(); +} + +/// The values that can be returned in a change dictionary. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvalueobservingoptions. +enum KeyValueObservingOptions { + /// Indicates that the change dictionary should provide the new attribute + /// value, if applicable. + newValue, + + /// Indicates that the change dictionary should contain the old attribute + /// value, if applicable. + oldValue, + + /// If specified, a notification should be sent to the observer immediately, + /// before the observer registration method even returns. + initialValue, + + /// Whether separate notifications should be sent to the observer before and + /// after each change, instead of a single notification after the change. + priorNotification, +} + +/// The kinds of changes that can be observed. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvaluechange. +enum KeyValueChange { + /// Indicates that the value of the observed key path was set to a new value. + setting, + + /// Indicates that an object has been inserted into the to-many relationship + /// that is being observed. + insertion, + + /// Indicates that an object has been removed from the to-many relationship + /// that is being observed. + removal, + + /// Indicates that an object has been replaced in the to-many relationship + /// that is being observed. + replacement, + + /// The value is not recognized by the wrapper. + unknown, +} + +/// The keys that can appear in the change dictionary. +/// +/// See https://developer.apple.com/documentation/foundation/nskeyvaluechangekey. +enum KeyValueChangeKey { + /// If the value of the `KeyValueChangeKey.kind` entry is + /// `KeyValueChange.insertion`, `KeyValueChange.removal`, or + /// `KeyValueChange.replacement`, the value of this key is a Set object that + /// contains the indexes of the inserted, removed, or replaced objects. + indexes, + + /// An object that contains a value corresponding to one of the + /// `KeyValueChange` enum, indicating what sort of change has occurred. + kind, + + /// If the value of the `KeyValueChange.kind` entry is + /// `KeyValueChange.setting, and `KeyValueObservingOptions.newValue` was + /// specified when the observer was registered, the value of this key is the + /// new value for the attribute. + newValue, + + /// If the `KeyValueObservingOptions.priorNotification` option was specified + /// when the observer was registered this notification is sent prior to a + /// change. + notificationIsPrior, + + /// If the value of the `KeyValueChange.kind` entry is + /// `KeyValueChange.setting`, and `KeyValueObservingOptions.old` was specified + /// when the observer was registered, the value of this key is the value + /// before the attribute was changed. + oldValue, + + /// The value is not recognized by the wrapper. + unknown, +} + +/// The root class of most Objective-C class hierarchies, from which subclasses +/// inherit a basic interface to the runtime system and the ability to behave as +/// Objective-C objects. +/// +/// See https://developer.apple.com/documentation/objectivec/nsobject. +@ProxyApi() +abstract class NSObject { + NSObject(); + + /// Informs the observing object when the value at the specified key path + /// relative to the observed object has changed. + late void Function( + String? keyPath, + NSObject? object, + Map? change, + )? + observeValue; + + /// Registers the observer object to receive KVO notifications for the key + /// path relative to the object receiving this message. + void addObserver( + NSObject observer, + String keyPath, + List options, + ); + + /// Stops the observer object from receiving change notifications for the + /// property specified by the key path relative to the object receiving this + /// message. + void removeObserver(NSObject observer, String keyPath); +} diff --git a/geocoding_darwin/pubspec.yaml b/geocoding_darwin/pubspec.yaml new file mode 100644 index 0000000..878c1c3 --- /dev/null +++ b/geocoding_darwin/pubspec.yaml @@ -0,0 +1,35 @@ +name: geocoding_darwin +description: |- + A Flutter Geocoding plugin which provides easy geocoding and + reverse-geocoding features for iOS and macOS. +version: 0.0.1 +repository: https://github.com/baseflow/flutter-geocoding + +publish_to: none + +environment: + sdk: ^3.8.1 + flutter: ">=3.7.0" + +dependencies: + flutter: + sdk: flutter + geocoding_platform_interface: + path: ../geocoding_platform_interface + pigeon: ^25.5.0 + plugin_platform_interface: ^2.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^5.0.0 + +flutter: + plugin: + platforms: + ios: + pluginClass: GeocodingDarwinPlugin + sharedDarwinSource: true + macos: + pluginClass: GeocodingDarwinPlugin + sharedDarwinSource: true diff --git a/geocoding_platform_interface/CHANGELOG.md b/geocoding_platform_interface/CHANGELOG.md index 12d85d3..2614f1e 100644 --- a/geocoding_platform_interface/CHANGELOG.md +++ b/geocoding_platform_interface/CHANGELOG.md @@ -1,3 +1,12 @@ +## 4.0.0 + +- **BREAKING CHANGES:** + - Releases new interface making the Geocoding plugin easier to extend and + implement on different platforms. + - Moves the old interface into the `legacy` folder. This interface will + remain available but will no longer be maintained. To import the old + interface use `import 'package:geocoding_platform_interface/legacy/geocoding_platform_interface.dart`. + ## 3.2.1 - Fixed analysis warnings from `flutter analyse`. diff --git a/geocoding_platform_interface/lib/geocoding_platform_interface.dart b/geocoding_platform_interface/lib/geocoding_platform_interface.dart index 579f469..12b4a95 100644 --- a/geocoding_platform_interface/lib/geocoding_platform_interface.dart +++ b/geocoding_platform_interface/lib/geocoding_platform_interface.dart @@ -1,3 +1,3 @@ -export 'src/errors/errors.dart'; -export 'src/geocoding_platform_interface.dart'; -export 'src/models/models.dart'; +export 'src/geocoding.dart'; +export 'src/geocoding_platform_factory.dart'; +export 'src/types/types.dart'; diff --git a/geocoding_platform_interface/lib/legacy/geocoding_platform_interface.dart b/geocoding_platform_interface/lib/legacy/geocoding_platform_interface.dart new file mode 100644 index 0000000..579f469 --- /dev/null +++ b/geocoding_platform_interface/lib/legacy/geocoding_platform_interface.dart @@ -0,0 +1,3 @@ +export 'src/errors/errors.dart'; +export 'src/geocoding_platform_interface.dart'; +export 'src/models/models.dart'; diff --git a/geocoding_platform_interface/lib/src/errors/errors.dart b/geocoding_platform_interface/lib/legacy/src/errors/errors.dart similarity index 100% rename from geocoding_platform_interface/lib/src/errors/errors.dart rename to geocoding_platform_interface/lib/legacy/src/errors/errors.dart diff --git a/geocoding_platform_interface/lib/src/errors/no_result_found_exception.dart b/geocoding_platform_interface/lib/legacy/src/errors/no_result_found_exception.dart similarity index 100% rename from geocoding_platform_interface/lib/src/errors/no_result_found_exception.dart rename to geocoding_platform_interface/lib/legacy/src/errors/no_result_found_exception.dart diff --git a/geocoding_platform_interface/lib/src/geocoding_platform_interface.dart b/geocoding_platform_interface/lib/legacy/src/geocoding_platform_interface.dart similarity index 87% rename from geocoding_platform_interface/lib/src/geocoding_platform_interface.dart rename to geocoding_platform_interface/lib/legacy/src/geocoding_platform_interface.dart index c046192..9753064 100644 --- a/geocoding_platform_interface/lib/src/geocoding_platform_interface.dart +++ b/geocoding_platform_interface/lib/legacy/src/geocoding_platform_interface.dart @@ -38,11 +38,10 @@ abstract class GeocodingPlatform extends PlatformInterface { /// /// The `localeIdentifier` should be formatted using the syntax: /// [languageCode]_[countryCode] (eg. en_US or nl_NL). - Future setLocaleIdentifier( - String localeIdentifier, - ) { + Future setLocaleIdentifier(String localeIdentifier) { throw UnimplementedError( - 'setLocaleIdentifier() has not been implementated.'); + 'setLocaleIdentifier() has not been implementated.', + ); } /// Returns a list of [Location] instances found for the supplied address. @@ -51,11 +50,10 @@ abstract class GeocodingPlatform extends PlatformInterface { /// However in some situations where the supplied address could not be /// resolved into a single [Location], multiple [Location] instances may be /// returned. - Future> locationFromAddress( - String address, - ) { + Future> locationFromAddress(String address) { throw UnimplementedError( - 'locationFromAddress() has not been implementated.'); + 'locationFromAddress() has not been implementated.', + ); } /// Returns true if there is a geocoder implementation present that may return results. @@ -80,7 +78,8 @@ abstract class GeocodingPlatform extends PlatformInterface { double longitude, ) { throw UnimplementedError( - 'placemarkFromCoordinates() has not been implementated.'); + 'placemarkFromCoordinates() has not been implementated.', + ); } /// Returns a list of [Placemark] instances found for the supplied address. @@ -89,10 +88,9 @@ abstract class GeocodingPlatform extends PlatformInterface { /// However in some situations where the supplied address could not be /// resolved into a single [Placemark], multiple [Placemark] instances may be /// returned. - Future> placemarkFromAddress( - String address, - ) { + Future> placemarkFromAddress(String address) { throw UnimplementedError( - 'placemarkFromAddress() has not been implementated.'); + 'placemarkFromAddress() has not been implementated.', + ); } } diff --git a/geocoding_platform_interface/lib/src/models/location.dart b/geocoding_platform_interface/lib/legacy/src/models/location.dart similarity index 89% rename from geocoding_platform_interface/lib/src/models/location.dart rename to geocoding_platform_interface/lib/legacy/src/models/location.dart index 48dd0d6..5daf5bb 100644 --- a/geocoding_platform_interface/lib/src/models/location.dart +++ b/geocoding_platform_interface/lib/legacy/src/models/location.dart @@ -56,12 +56,14 @@ class Location { final Map locationMap = message; final timestamp = DateTime.fromMillisecondsSinceEpoch( - locationMap['timestamp'].toInt(), - isUtc: true); + locationMap['timestamp'].toInt(), + isUtc: true, + ); if (locationMap['latitude'] == null || locationMap['longitude'] == null) { throw ArgumentError( - 'The parameters latitude and longitude should not be null.'); + 'The parameters latitude and longitude should not be null.', + ); } return Location._( @@ -74,10 +76,10 @@ class Location { /// Converts the [Location] instance into a [Map] instance that can be /// serialized to JSON. Map toJson() => { - 'latitude': latitude, - 'longitude': longitude, - 'timestamp': timestamp.millisecondsSinceEpoch, - }; + 'latitude': latitude, + 'longitude': longitude, + 'timestamp': timestamp.millisecondsSinceEpoch, + }; @override String toString() { diff --git a/geocoding_platform_interface/lib/src/models/models.dart b/geocoding_platform_interface/lib/legacy/src/models/models.dart similarity index 100% rename from geocoding_platform_interface/lib/src/models/models.dart rename to geocoding_platform_interface/lib/legacy/src/models/models.dart diff --git a/geocoding_platform_interface/lib/src/models/placemark.dart b/geocoding_platform_interface/lib/legacy/src/models/placemark.dart similarity index 91% rename from geocoding_platform_interface/lib/src/models/placemark.dart rename to geocoding_platform_interface/lib/legacy/src/models/placemark.dart index e833847..b451a3b 100644 --- a/geocoding_platform_interface/lib/src/models/placemark.dart +++ b/geocoding_platform_interface/lib/legacy/src/models/placemark.dart @@ -132,18 +132,18 @@ class Placemark { /// Converts the [Placemark] instance into a [Map] instance that can be /// serialized to JSON. Map toJson() => { - 'name': name, - 'street': street, - 'isoCountryCode': isoCountryCode, - 'country': country, - 'postalCode': postalCode, - 'administrativeArea': administrativeArea, - 'subAdministrativeArea': subAdministrativeArea, - 'locality': locality, - 'subLocality': subLocality, - 'thoroughfare': thoroughfare, - 'subThoroughfare': subThoroughfare, - }; + 'name': name, + 'street': street, + 'isoCountryCode': isoCountryCode, + 'country': country, + 'postalCode': postalCode, + 'administrativeArea': administrativeArea, + 'subAdministrativeArea': subAdministrativeArea, + 'locality': locality, + 'subLocality': subLocality, + 'thoroughfare': thoroughfare, + 'subThoroughfare': subThoroughfare, + }; @override String toString() { diff --git a/geocoding_platform_interface/lib/src/geocoding.dart b/geocoding_platform_interface/lib/src/geocoding.dart new file mode 100644 index 0000000..6d2e7e7 --- /dev/null +++ b/geocoding_platform_interface/lib/src/geocoding.dart @@ -0,0 +1,97 @@ +import 'package:flutter/widgets.dart'; +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; + +import 'geocoding_platform_factory.dart'; +import 'types/types.dart'; + +/// Interface for a platform implementation of a [Geocoding] instance. +/// +/// Platform implementations should extend this class rather than implement it +/// as `geocoding` package does not consider newly added methods to be breaking +/// changes. Extending this class (using `extends`) ensures that the subclass +/// will get the default implementation, while platform implementations that +/// `implements` this interface will be broken by newly added +/// [Geocoding] methods. +abstract class Geocoding extends PlatformInterface { + /// Creates a new [PlatformWebViewController] + factory Geocoding(GeocodingCreationParams params) { + assert( + GeocodingPlatformFactory.instance != null, + 'A platform implementation for `geocoding` has not been set. Please ' + 'ensure that an implementation of `GeocodingPlatformFactory` has been ' + 'set te `GeocodingPlatformFactory.instance` before use. For unit ' + 'testing, `GeocodingPlatformFactory.instance` can be set with your own ' + 'test implementation.', + ); + final Geocoding geocoding = GeocodingPlatformFactory.instance! + .createGeocoding(params); + PlatformInterface.verify(geocoding, _token); + return geocoding; + } + + /// Used by the platform implementation to create a new [Geocoding]. + /// + /// Should only be used by platform implementations because they can't extend + /// a class that only contains a factory constructor. + @protected + Geocoding.implementation(this.params) : super(token: _token); + + static final Object _token = Object(); + + /// The parameters used to initialize the [Geocoding] instance. + final GeocodingCreationParams params; + + /// Returns a list of [Location] instances found for the supplied address. + /// + /// In most situations the returned list should only contain one entry. + /// However in some situations where the supplied address could not be + /// resolved into a single [Location], multiple [Location] instances may be + /// returned. + Future> locationFromAddress(String address, {Locale? locale}) { + throw UnimplementedError( + 'locationFromAddress() has not been implementated.', + ); + } + + /// Returns true if there is a geocoder implementation present that may return results. + /// If true, there is still no guarantee that any individual geocoding attempt will succeed. + /// + /// + /// This method is only implemented on Android, calling this on iOS always + /// returns [true]. + Future isPresent() { + throw UnimplementedError('isPresent() has not been implementated.'); + } + + /// Returns a list of [Placemark] instances found for the supplied + /// coordinates. + /// + /// In most situations the returned list should only contain one entry. + /// However in some situations where the supplied coordinates could not be + /// resolved into a single [Placemark], multiple [Placemark] instances may be + /// returned. + Future> placemarkFromCoordinates( + double latitude, + double longitude, { + Locale? locale, + }) { + throw UnimplementedError( + 'placemarkFromCoordinates() has not been implementated.', + ); + } + + /// Returns a list of [Placemark] instances found for the supplied address. + /// + /// In most situations the returned list should only contain one entry. + /// However in some situations where the supplied address could not be + /// resolved into a single [Placemark], multiple [Placemark] instances may be + /// returned. + Future> placemarkFromAddress( + String address, { + Locale? locale, + }) { + throw UnimplementedError( + 'placemarkFromAddress() has not been implementated.', + ); + } +} diff --git a/geocoding_platform_interface/lib/src/geocoding_platform_factory.dart b/geocoding_platform_interface/lib/src/geocoding_platform_factory.dart new file mode 100644 index 0000000..88c619a --- /dev/null +++ b/geocoding_platform_interface/lib/src/geocoding_platform_factory.dart @@ -0,0 +1,44 @@ +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; + +import 'geocoding.dart'; +import 'types/types.dart'; + +/// Interface for a platform specific implementation of the geocoding features. +abstract class GeocodingPlatformFactory extends PlatformInterface { + /// Creates a new [GeocodingPlatformFactory]. + GeocodingPlatformFactory() : super(token: _token); + + static final Object _token = Object(); + + static GeocodingPlatformFactory? _instance; + + /// The instance of [GeocodingPlatformFactory] to use. + /// + /// This should return a platform specific instance, which can be used to + /// access geocoding features for that platform. + static GeocodingPlatformFactory? get instance => _instance; + + /// Platform-specific plugins should set this with their own platform-specific + /// class that extends [GeocodingPlatformFactory] when they register + /// themselves. + static set instance(GeocodingPlatformFactory? instance) { + if (instance == null) { + throw AssertionError( + 'Platform interface can only be set to a non-null instance', + ); + } + + PlatformInterface.verify(instance, _token); + _instance = instance; + } + + /// Creates a new [Geocoding]. + /// + /// This function should only be called by the app-facing package. + /// Look at using [Geocoding] in `geocoding` package instead. + Geocoding createGeocoding(GeocodingCreationParams params) { + throw UnimplementedError( + 'createGeocoding is not implemented on the current platform.', + ); + } +} diff --git a/geocoding_platform_interface/lib/src/types/geocoding_creation_params.dart b/geocoding_platform_interface/lib/src/types/geocoding_creation_params.dart new file mode 100644 index 0000000..cf5b544 --- /dev/null +++ b/geocoding_platform_interface/lib/src/types/geocoding_creation_params.dart @@ -0,0 +1,39 @@ +import 'package:meta/meta.dart'; + +/// Object specifying creation parameters for creating a [Geocoding]. +/// +/// Platform specific implementations can add additional fields by extending +/// this class. +/// +/// This example demonstrates how to extend the [GeocodingCreationParams] to +/// provide additional platform specific parameters. +/// +/// When extending [GeocodingCreationParams] additional +/// parameters should always accept `null` or have a default value to prevent +/// breaking changes. +/// +/// ```dart +/// class AndroidGeocodingCreationParams extends GeocodingCreationParams { +/// AndroidGeocodingCreationParams._( +/// // This parameter prevents breaking changes later. +/// // ignore: avoid_unused_constructor_parameters +/// GeocodingCreationParams params, { +/// this.filter, +/// }) : super(); +/// +/// factory AndroidGeocodingCreationParams.fromGeocodingCreationParams( +/// GeocodingCreationParams params, { +/// String? filter, +/// }) { +/// return AndroidGeocodingCreationParams._(params, filter: filter); +/// } +/// +/// final String? filter; +/// } +/// ``` +@immutable +class GeocodingCreationParams { + /// Used by the platform implementation to create a new + /// [GeocodingCreationParams]. + const GeocodingCreationParams(); +} diff --git a/geocoding_platform_interface/lib/src/types/location.dart b/geocoding_platform_interface/lib/src/types/location.dart new file mode 100644 index 0000000..0ff6d0c --- /dev/null +++ b/geocoding_platform_interface/lib/src/types/location.dart @@ -0,0 +1,35 @@ +import 'package:meta/meta.dart'; + +/// Describes a location on earth represented by geographical coordinates.the +/// +/// Platform specific implementations can add additional fields by extending +/// this class. +@immutable +class Location { + /// Creates a [Location]. + const Location({ + required this.latitude, + required this.longitude, + required this.timestamp, + }); + + /// The latitude associated with the placemark. + final double latitude; + + /// The longitude associated with the placemark. + final double longitude; + + /// The UTC timestamp the coordinates have been requested. + final DateTime timestamp; + + @override + bool operator ==(Object other) => + other is Location && + other.latitude == latitude && + other.longitude == longitude && + other.timestamp == timestamp; + + @override + int get hashCode => + latitude.hashCode ^ longitude.hashCode ^ timestamp.hashCode; +} diff --git a/geocoding_platform_interface/lib/src/types/placemark.dart b/geocoding_platform_interface/lib/src/types/placemark.dart new file mode 100644 index 0000000..672cee4 --- /dev/null +++ b/geocoding_platform_interface/lib/src/types/placemark.dart @@ -0,0 +1,83 @@ +import 'package:meta/meta.dart'; + +/// Defines the parameters that describe a result of the (reserve)geocoding +/// action. +@immutable +class Placemark { + /// Creates a [Placemark]. + const Placemark({ + this.name, + this.street, + this.isoCountryCode, + this.country, + this.postalCode, + this.administrativeArea, + this.subAdministrativeArea, + this.locality, + this.subLocality, + this.thoroughfare, + this.subThoroughfare, + }); + + /// The name associated with the placemark. + final String? name; + + /// The street associated with the placemark. + final String? street; + + /// The abbreviated country name, according to the two letter (alpha-2) [ISO standard](https://www.iso.org/iso-3166-country-codes.html). + final String? isoCountryCode; + + /// The name of the country associated with the placemark. + final String? country; + + /// The postal code associated with the placemark. + final String? postalCode; + + /// The name of the state or province associated with the placemark. + final String? administrativeArea; + + /// Additional administrative area information for the placemark. + final String? subAdministrativeArea; + + /// The name of the city associated with the placemark. + final String? locality; + + /// Additional city-level information for the placemark. + final String? subLocality; + + /// The street address associated with the placemark. + final String? thoroughfare; + + /// Additional street address information for the placemark. + final String? subThoroughfare; + + @override + bool operator ==(Object other) => + other is Placemark && + other.administrativeArea == administrativeArea && + other.country == country && + other.isoCountryCode == isoCountryCode && + other.locality == locality && + other.name == name && + other.postalCode == postalCode && + other.street == street && + other.subAdministrativeArea == subAdministrativeArea && + other.subLocality == subLocality && + other.subThoroughfare == subThoroughfare && + other.thoroughfare == thoroughfare; + + @override + int get hashCode => + administrativeArea.hashCode ^ + country.hashCode ^ + isoCountryCode.hashCode ^ + locality.hashCode ^ + name.hashCode ^ + postalCode.hashCode ^ + street.hashCode ^ + subAdministrativeArea.hashCode ^ + subLocality.hashCode ^ + subThoroughfare.hashCode ^ + thoroughfare.hashCode; +} diff --git a/geocoding_platform_interface/lib/src/types/types.dart b/geocoding_platform_interface/lib/src/types/types.dart new file mode 100644 index 0000000..15bc468 --- /dev/null +++ b/geocoding_platform_interface/lib/src/types/types.dart @@ -0,0 +1,5 @@ +// A barrel file exporting all publicly available types. + +export 'geocoding_creation_params.dart'; +export 'location.dart'; +export 'placemark.dart'; diff --git a/geocoding_platform_interface/pubspec.yaml b/geocoding_platform_interface/pubspec.yaml index 0805f12..1e8e5bd 100644 --- a/geocoding_platform_interface/pubspec.yaml +++ b/geocoding_platform_interface/pubspec.yaml @@ -3,11 +3,11 @@ description: A common platform interface for the geocoding plugin. homepage: https://github.com/baseflow/flutter-geocoding/tree/main/geocoding_platform_interface # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 3.2.1 +version: 4.0.0 environment: - sdk: ">=3.3.0 <4.0.0" - flutter: ">=3.0.0" + sdk: ^3.8.1 + flutter: ">=3.7.0" dependencies: flutter: @@ -20,6 +20,7 @@ dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 mockito: ^5.0.0 + build_runner: ^2.5.4 diff --git a/geocoding_platform_interface/test/geocoding_platform_interface_test.dart b/geocoding_platform_interface/test/legacy/geocoding_platform_interface_test.dart similarity index 53% rename from geocoding_platform_interface/test/geocoding_platform_interface_test.dart rename to geocoding_platform_interface/test/legacy/geocoding_platform_interface_test.dart index ce0df16..a90dd0a 100644 --- a/geocoding_platform_interface/test/geocoding_platform_interface_test.dart +++ b/geocoding_platform_interface/test/legacy/geocoding_platform_interface_test.dart @@ -3,7 +3,7 @@ // found in the LICENSE file. import 'package:flutter_test/flutter_test.dart'; -import 'package:geocoding_platform_interface/geocoding_platform_interface.dart'; +import 'package:geocoding_platform_interface/legacy/geocoding_platform_interface.dart'; import 'package:mockito/mockito.dart'; import 'package:plugin_platform_interface/plugin_platform_interface.dart'; @@ -38,60 +38,61 @@ void main() { }); test( - // ignore: lines_longer_than_80_chars - 'Default implementation of locationFromAddress should throw unimplemented error', - () { - // Arrange - final geocodingPlatform = ExtendsGeocodingPlatform(); - - // Act & Assert - expect( - () => geocodingPlatform.locationFromAddress('address'), - throwsUnimplementedError, - ); - }); + // ignore: lines_longer_than_80_chars + 'Default implementation of locationFromAddress should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocodingPlatform(); + + // Act & Assert + expect( + () => geocodingPlatform.locationFromAddress('address'), + throwsUnimplementedError, + ); + }, + ); test( - // ignore: lines_longer_than_80_chars - 'Default implementation of isPresent should throw unimplemented error', - () { - // Arrange - final geocodingPlatform = ExtendsGeocodingPlatform(); - - // Act & Assert - expect( - () => geocodingPlatform.isPresent(), - throwsUnimplementedError, - ); - }); + // ignore: lines_longer_than_80_chars + 'Default implementation of isPresent should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocodingPlatform(); + + // Act & Assert + expect(() => geocodingPlatform.isPresent(), throwsUnimplementedError); + }, + ); test( - // ignore: lines_longer_than_80_chars - 'Default implementation of placemarkFromCoordinates should throw unimplemented error', - () { - // Arrange - final geocodingPlatform = ExtendsGeocodingPlatform(); - - // Act & Assert - expect( - () => geocodingPlatform.placemarkFromCoordinates(0, 0), - throwsUnimplementedError, - ); - }); + // ignore: lines_longer_than_80_chars + 'Default implementation of placemarkFromCoordinates should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocodingPlatform(); + + // Act & Assert + expect( + () => geocodingPlatform.placemarkFromCoordinates(0, 0), + throwsUnimplementedError, + ); + }, + ); test( - // ignore: lines_longer_than_80_chars - 'Default implementation of setLocale should throw unimplemented error', - () { - // Arrange - final geocodingPlatform = ExtendsGeocodingPlatform(); - - // Act & Assert - expect( - () => geocodingPlatform.setLocaleIdentifier('en_US'), - throwsUnimplementedError, - ); - }); + // ignore: lines_longer_than_80_chars + 'Default implementation of setLocale should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocodingPlatform(); + + // Act & Assert + expect( + () => geocodingPlatform.setLocaleIdentifier('en_US'), + throwsUnimplementedError, + ); + }, + ); }); } @@ -104,7 +105,6 @@ class MockGeocodingPlatform extends Mock with // ignore: prefer_mixin MockPlatformInterfaceMixin - implements - GeocodingPlatform {} + implements GeocodingPlatform {} class ExtendsGeocodingPlatform extends GeocodingPlatform {} diff --git a/geocoding_platform_interface/test/legacy/src/models/location_test.dart b/geocoding_platform_interface/test/legacy/src/models/location_test.dart new file mode 100644 index 0000000..60ef96b --- /dev/null +++ b/geocoding_platform_interface/test/legacy/src/models/location_test.dart @@ -0,0 +1,122 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:geocoding_platform_interface/legacy/geocoding_platform_interface.dart'; + +void main() { + group('hashCode tests:', () { + test( + 'hashCode hould be the same for two instances with the same values', + () { + // Arrange + final firstLocation = Location( + latitude: 0, + longitude: 0, + timestamp: DateTime.fromMillisecondsSinceEpoch((0)), + ); + final secondLocation = Location( + latitude: 0, + longitude: 0, + timestamp: DateTime.fromMillisecondsSinceEpoch((0)), + ); + + // Act & Assert + expect(firstLocation.hashCode, secondLocation.hashCode); + }, + ); + + test( + 'hashCode should not match when the latitude property is different', + () { + // Arrange + final firstLocation = Location( + latitude: 0, + longitude: 0, + timestamp: DateTime.fromMillisecondsSinceEpoch(0), + ); + final secondLocation = Location( + latitude: 1, + longitude: 0, + timestamp: DateTime.fromMillisecondsSinceEpoch(0), + ); + + // Act & Assert + expect(firstLocation.hashCode != secondLocation.hashCode, true); + }, + ); + + test( + 'hashCode should not match when the longitude property is different', + () { + // Arrange + final firstLocation = Location( + latitude: 0, + longitude: 0, + timestamp: DateTime.fromMillisecondsSinceEpoch(0), + ); + final secondLocation = Location( + latitude: 0, + longitude: 1, + timestamp: DateTime.fromMillisecondsSinceEpoch(0), + ); + + // Act & Assert + expect(firstLocation.hashCode != secondLocation.hashCode, true); + }, + ); + + test( + 'hashCode should not match when the timestamp property is different', + () { + // Arrange + final firstLocation = Location( + latitude: 0, + longitude: 0, + timestamp: DateTime.fromMillisecondsSinceEpoch(0), + ); + final secondLocation = Location( + latitude: 0, + longitude: 0, + timestamp: DateTime.fromMillisecondsSinceEpoch(1), + ); + + // Act & Assert + expect(firstLocation.hashCode != secondLocation.hashCode, true); + }, + ); + }); + + group('fromMap tests:', () { + test('fromMap should throw argument error when message is null', () { + expect(() => Location.fromMap(null), throwsArgumentError); + }); + + test( + 'fromMap throws argument error when latitude or longitude are null', + () { + final location = { + 'latitude': null, + 'longitude': null, + 'timestamp': 1615216821218, + }; + expect(() => Location.fromMap(location), throwsArgumentError); + }, + ); + }); + + group('toString tests:', () { + test('toString should list the contents of all properties', () { + final mockLocation = Location( + latitude: 52.2165157, + longitude: 6.9437819, + timestamp: DateTime.fromMillisecondsSinceEpoch(0).toUtc(), + ); + + final expected = + ''' + Latitude: ${mockLocation.latitude}, + Longitude: ${mockLocation.longitude}, + Timestamp: ${mockLocation.timestamp}'''; + + expect(mockLocation.toString(), expected); + }); + }); +} diff --git a/geocoding_platform_interface/test/legacy/src/models/placemark_test.dart b/geocoding_platform_interface/test/legacy/src/models/placemark_test.dart new file mode 100644 index 0000000..5d331b2 --- /dev/null +++ b/geocoding_platform_interface/test/legacy/src/models/placemark_test.dart @@ -0,0 +1,465 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:geocoding_platform_interface/legacy/geocoding_platform_interface.dart'; + +void main() { + group('hashCode tests:', () { + test( + 'hashCode hould be the same for two instances with the same values', + () { + // Arrange + const firstPlacemark = Placemark(); + const secondPlacemark = Placemark(); + + // Act & Assert + expect(firstPlacemark.hashCode, secondPlacemark.hashCode); + }, + ); + + test('hashCode should not match when the name property is different', () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'different test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }); + + test( + // ignore: lines_longer_than_80_chars + 'hashCode should not match when the street property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'different test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'hashCode should not match when the isoCountryCode property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'different test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + 'hashCode should not match when the country property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'different test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + 'hashCode should not match when the postalCode property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'different test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'hashCode should not match when the administrativeArea property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'different test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'hashCode should not match when the subAdministrativeArea property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'different test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'hashCode should not match when the locality property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'different test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'hashCode should not match when the subLocality property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'different test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'hashCode should not match when the thoroughfare property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'different test value', + subThoroughfare: 'test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'hashCode should not match when the subThoroughfare property is different', + () { + // Arrange + const firstPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'test value', + ); + const secondPlacemark = Placemark( + name: 'test value', + street: 'test value', + isoCountryCode: 'test value', + country: 'test value', + postalCode: 'test value', + administrativeArea: 'test value', + subAdministrativeArea: 'test value', + locality: 'test value', + subLocality: 'test value', + thoroughfare: 'test value', + subThoroughfare: 'different test value', + ); + + // Act & Assert + expect(firstPlacemark.hashCode != secondPlacemark.hashCode, true); + }, + ); + }); + + group('fromMaps tests:', () { + test('fromMaps should throw argument error when message is null', () { + expect(() => Placemark.fromMaps(null), throwsArgumentError); + }); + }); + + group('fromMap tests:', () { + test('fromMap should throw argument error when message is null', () { + expect(() => Placemark.fromMap(null), throwsArgumentError); + }); + }); + + group('toString tests:', () { + test('toString should list the contents of all properties', () { + const mockPlacemark = Placemark( + administrativeArea: 'Overijssel', + country: 'Netherlands', + isoCountryCode: 'NL', + locality: 'Enschede', + name: 'Gronausestraat', + postalCode: '', + street: 'Gronausestraat 710', + subAdministrativeArea: 'Enschede', + subLocality: 'Enschmarke', + subThoroughfare: '', + thoroughfare: 'Gronausestraat', + ); + + final expected = + ''' + Name: ${mockPlacemark.name}, + Street: ${mockPlacemark.street}, + ISO Country Code: ${mockPlacemark.isoCountryCode}, + Country: ${mockPlacemark.country}, + Postal code: ${mockPlacemark.postalCode}, + Administrative area: ${mockPlacemark.administrativeArea}, + Subadministrative area: ${mockPlacemark.subAdministrativeArea}, + Locality: ${mockPlacemark.locality}, + Sublocality: ${mockPlacemark.subLocality}, + Thoroughfare: ${mockPlacemark.thoroughfare}, + Subthoroughfare: ${mockPlacemark.subThoroughfare}'''; + + expect(mockPlacemark.toString(), expected); + }); + }); +} diff --git a/geocoding_platform_interface/test/src/geocoding_platform_factory_test.dart b/geocoding_platform_interface/test/src/geocoding_platform_factory_test.dart new file mode 100644 index 0000000..d9c72ce --- /dev/null +++ b/geocoding_platform_interface/test/src/geocoding_platform_factory_test.dart @@ -0,0 +1,71 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter_test/flutter_test.dart'; +import 'package:geocoding_platform_interface/geocoding_platform_interface.dart'; +import 'package:mockito/mockito.dart'; +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; + +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + group('$GeocodingPlatformFactory', () { + test('Default instance equals null', () { + expect(GeocodingPlatformFactory.instance, isNull); + }); + + test('Cannot be implemented with `implements`', () { + expect(() { + GeocodingPlatformFactory.instance = + ImplementsGeocodingPlatformFactory(); + // In versions of `package:plugin_platform_interface` prior to fixing + // https://github.com/flutter/flutter/issues/109339, an attempt to + // implement a platform interface using `implements` would sometimes + // throw a `NoSuchMethodError` and other times throw an + // `AssertionError`. After the issue is fixed, an `AssertionError` will + // always be thrown. For the purpose of this test, we don't really care + // what exception is thrown, so just allow any exception. + }, throwsA(anything)); + }); + + test('Can be extended', () { + GeocodingPlatformFactory.instance = ExtendsGeocodingPlatformFactory(); + }); + + test('Can be mocked with `implements`', () { + final mock = MockGeocodingPlatformFactory(); + GeocodingPlatformFactory.instance = mock; + }); + + test( + // ignore: lines_longer_than_80_chars + 'Default implementation of createGeocoding should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocodingPlatformFactory(); + + // Act & Assert + expect( + () => geocodingPlatform.createGeocoding( + const GeocodingCreationParams(), + ), + throwsUnimplementedError, + ); + }, + ); + }); +} + +class ImplementsGeocodingPlatformFactory implements GeocodingPlatformFactory { + @override + dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); +} + +class MockGeocodingPlatformFactory extends Mock + with + // ignore: prefer_mixin + MockPlatformInterfaceMixin + implements GeocodingPlatformFactory {} + +class ExtendsGeocodingPlatformFactory extends GeocodingPlatformFactory {} diff --git a/geocoding_platform_interface/test/src/geocoding_test.dart b/geocoding_platform_interface/test/src/geocoding_test.dart new file mode 100644 index 0000000..ab8cdce --- /dev/null +++ b/geocoding_platform_interface/test/src/geocoding_test.dart @@ -0,0 +1,141 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter_test/flutter_test.dart'; +import 'package:geocoding_platform_interface/geocoding_platform_interface.dart'; +import 'package:mockito/annotations.dart'; +import 'package:mockito/mockito.dart'; +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; + +import 'geocoding_test.mocks.dart'; + +@GenerateNiceMocks([MockSpec()]) +void main() { + setUp(() { + GeocodingPlatformFactory.instance = MockGeocodingPlatformFactoryWithMixin(); + }); + + test('Cannot be implemented with `implements`', () { + when( + (GeocodingPlatformFactory.instance! as MockGeocodingPlatformFactory) + .createGeocoding(any), + ).thenReturn(ImplementsGeocoding()); + + expect(() { + Geocoding(const GeocodingCreationParams()); + + // In versions of `package:plugin_platform_interface` prior to fixing + // https://github.com/flutter/flutter/issues/109339, an attempt to + // implement a platform interface using `implements` would sometimes + // throw a `NoSuchMethodError` and other times throw an + // `AssertionError`. After the issue is fixed, an `AssertionError` will + // always be thrown. For the purpose of this test, we don't really care + // what exception is thrown, so just allow any exception. + }, throwsA(anything)); + }); + + test('Can be extended', () { + const GeocodingCreationParams params = GeocodingCreationParams(); + when( + (GeocodingPlatformFactory.instance! as MockGeocodingPlatformFactory) + .createGeocoding(any), + ).thenReturn(ExtendsGeocoding(params)); + + expect(Geocoding(params), isNotNull); + }); + + test('Can be mocked with `implements`', () { + when( + (GeocodingPlatformFactory.instance! as MockGeocodingPlatformFactory) + .createGeocoding(any), + ).thenReturn(MockGeocoding()); + + expect(Geocoding(const GeocodingCreationParams()), isNotNull); + }); + + test( + // ignore: lines_longer_than_80_chars + 'Default implementation of locationFromAddress should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocoding( + const GeocodingCreationParams(), + ); + + // Act & Assert + expect( + () => geocodingPlatform.locationFromAddress('address'), + throwsUnimplementedError, + ); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'Default implementation of isPresent should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocoding( + const GeocodingCreationParams(), + ); + + // Act & Assert + expect(() => geocodingPlatform.isPresent(), throwsUnimplementedError); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'Default implementation of placemarkFromAddress should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocoding( + const GeocodingCreationParams(), + ); + + // Act & Assert + expect( + () => geocodingPlatform.placemarkFromAddress('address'), + throwsUnimplementedError, + ); + }, + ); + + test( + // ignore: lines_longer_than_80_chars + 'Default implementation of placemarkFromCoordinates should throw unimplemented error', + () { + // Arrange + final geocodingPlatform = ExtendsGeocoding( + const GeocodingCreationParams(), + ); + + // Act & Assert + expect( + () => geocodingPlatform.placemarkFromCoordinates(0.0, 0.0), + throwsUnimplementedError, + ); + }, + ); +} + +class MockGeocodingPlatformFactoryWithMixin extends MockGeocodingPlatformFactory + with + // ignore: prefer_mixin + MockPlatformInterfaceMixin {} + +class ImplementsGeocoding implements Geocoding { + @override + dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); +} + +class MockGeocoding extends Mock + with + // ignore: prefer_mixin + MockPlatformInterfaceMixin + implements Geocoding {} + +class ExtendsGeocoding extends Geocoding { + ExtendsGeocoding(super.params) : super.implementation(); +} diff --git a/geocoding_platform_interface/test/src/geocoding_test.mocks.dart b/geocoding_platform_interface/test/src/geocoding_test.mocks.dart new file mode 100644 index 0000000..aba4b61 --- /dev/null +++ b/geocoding_platform_interface/test/src/geocoding_test.mocks.dart @@ -0,0 +1,49 @@ +// Mocks generated by Mockito 5.4.4 from annotations +// in geocoding_platform_interface/test/src/geocoding_test.dart. +// Do not manually edit this file. + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:geocoding_platform_interface/src/geocoding.dart' as _i2; +import 'package:geocoding_platform_interface/src/geocoding_platform_factory.dart' + as _i3; +import 'package:geocoding_platform_interface/src/types/types.dart' as _i4; +import 'package:mockito/mockito.dart' as _i1; + +// ignore_for_file: type=lint +// ignore_for_file: avoid_redundant_argument_values +// ignore_for_file: avoid_setters_without_getters +// ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use +// ignore_for_file: deprecated_member_use_from_same_package +// ignore_for_file: implementation_imports +// ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: prefer_const_constructors +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types +// ignore_for_file: subtype_of_sealed_class + +class _FakeGeocoding_0 extends _i1.SmartFake implements _i2.Geocoding { + _FakeGeocoding_0(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); +} + +/// A class which mocks [GeocodingPlatformFactory]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockGeocodingPlatformFactory extends _i1.Mock + implements _i3.GeocodingPlatformFactory { + @override + _i2.Geocoding createGeocoding(_i4.GeocodingCreationParams? params) => + (super.noSuchMethod( + Invocation.method(#createGeocoding, [params]), + returnValue: _FakeGeocoding_0( + this, + Invocation.method(#createGeocoding, [params]), + ), + returnValueForMissingStub: _FakeGeocoding_0( + this, + Invocation.method(#createGeocoding, [params]), + ), + ) + as _i2.Geocoding); +} diff --git a/geocoding_platform_interface/test/src/models/location_test.dart b/geocoding_platform_interface/test/src/models/location_test.dart deleted file mode 100644 index cc8d975..0000000 --- a/geocoding_platform_interface/test/src/models/location_test.dart +++ /dev/null @@ -1,121 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:geocoding_platform_interface/geocoding_platform_interface.dart'; - -void main() { - group('hashCode tests:', () { - test('hashCode hould be the same for two instances with the same values', - () { - // Arrange - final firstLocation = Location( - latitude: 0, - longitude: 0, - timestamp: DateTime.fromMillisecondsSinceEpoch((0))); - final secondLocation = Location( - latitude: 0, - longitude: 0, - timestamp: DateTime.fromMillisecondsSinceEpoch((0))); - - // Act & Assert - expect( - firstLocation.hashCode, - secondLocation.hashCode, - ); - }); - - test('hashCode should not match when the latitude property is different', - () { - // Arrange - final firstLocation = Location( - latitude: 0, - longitude: 0, - timestamp: DateTime.fromMillisecondsSinceEpoch(0), - ); - final secondLocation = Location( - latitude: 1, - longitude: 0, - timestamp: DateTime.fromMillisecondsSinceEpoch(0), - ); - - // Act & Assert - expect( - firstLocation.hashCode != secondLocation.hashCode, - true, - ); - }); - - test('hashCode should not match when the longitude property is different', - () { - // Arrange - final firstLocation = Location( - latitude: 0, - longitude: 0, - timestamp: DateTime.fromMillisecondsSinceEpoch(0), - ); - final secondLocation = Location( - latitude: 0, - longitude: 1, - timestamp: DateTime.fromMillisecondsSinceEpoch(0), - ); - - // Act & Assert - expect( - firstLocation.hashCode != secondLocation.hashCode, - true, - ); - }); - - test('hashCode should not match when the timestamp property is different', - () { - // Arrange - final firstLocation = Location( - latitude: 0, - longitude: 0, - timestamp: DateTime.fromMillisecondsSinceEpoch(0), - ); - final secondLocation = Location( - latitude: 0, - longitude: 0, - timestamp: DateTime.fromMillisecondsSinceEpoch(1), - ); - - // Act & Assert - expect( - firstLocation.hashCode != secondLocation.hashCode, - true, - ); - }); - }); - - group('fromMap tests:', () { - test('fromMap should throw argument error when message is null', () { - expect(() => Location.fromMap(null), throwsArgumentError); - }); - - test('fromMap throws argument error when latitude or longitude are null', - () { - final location = { - 'latitude': null, - 'longitude': null, - 'timestamp': 1615216821218, - }; - expect(() => Location.fromMap(location), throwsArgumentError); - }); - }); - - group('toString tests:', () { - test('toString should list the contents of all properties', () { - final mockLocation = Location( - latitude: 52.2165157, - longitude: 6.9437819, - timestamp: DateTime.fromMillisecondsSinceEpoch(0).toUtc(), - ); - - final expected = ''' - Latitude: ${mockLocation.latitude}, - Longitude: ${mockLocation.longitude}, - Timestamp: ${mockLocation.timestamp}'''; - - expect(mockLocation.toString(), expected); - }); - }); -} diff --git a/geocoding_platform_interface/test/src/models/placemark_test.dart b/geocoding_platform_interface/test/src/models/placemark_test.dart deleted file mode 100644 index d1eb270..0000000 --- a/geocoding_platform_interface/test/src/models/placemark_test.dart +++ /dev/null @@ -1,484 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:geocoding_platform_interface/geocoding_platform_interface.dart'; - -void main() { - group('hashCode tests:', () { - test('hashCode hould be the same for two instances with the same values', - () { - // Arrange - const firstPlacemark = Placemark(); - const secondPlacemark = Placemark(); - - // Act & Assert - expect( - firstPlacemark.hashCode, - secondPlacemark.hashCode, - ); - }); - - test('hashCode should not match when the name property is different', () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'different test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test( - // ignore: lines_longer_than_80_chars - 'hashCode should not match when the street property is different', () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'different test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test( - // ignore: lines_longer_than_80_chars - 'hashCode should not match when the isoCountryCode property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'different test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test('hashCode should not match when the country property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'different test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test('hashCode should not match when the postalCode property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'different test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test( - // ignore: lines_longer_than_80_chars - 'hashCode should not match when the administrativeArea property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'different test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test( - // ignore: lines_longer_than_80_chars - 'hashCode should not match when the subAdministrativeArea property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'different test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test( - // ignore: lines_longer_than_80_chars - 'hashCode should not match when the locality property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'different test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test( - // ignore: lines_longer_than_80_chars - 'hashCode should not match when the subLocality property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'different test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test( - // ignore: lines_longer_than_80_chars - 'hashCode should not match when the thoroughfare property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'different test value', - subThoroughfare: 'test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - - test( - // ignore: lines_longer_than_80_chars - 'hashCode should not match when the subThoroughfare property is different', - () { - // Arrange - const firstPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'test value', - ); - const secondPlacemark = Placemark( - name: 'test value', - street: 'test value', - isoCountryCode: 'test value', - country: 'test value', - postalCode: 'test value', - administrativeArea: 'test value', - subAdministrativeArea: 'test value', - locality: 'test value', - subLocality: 'test value', - thoroughfare: 'test value', - subThoroughfare: 'different test value', - ); - - // Act & Assert - expect( - firstPlacemark.hashCode != secondPlacemark.hashCode, - true, - ); - }); - }); - - group('fromMaps tests:', () { - test('fromMaps should throw argument error when message is null', () { - expect(() => Placemark.fromMaps(null), throwsArgumentError); - }); - }); - - group('fromMap tests:', () { - test('fromMap should throw argument error when message is null', () { - expect(() => Placemark.fromMap(null), throwsArgumentError); - }); - }); - - group('toString tests:', () { - test('toString should list the contents of all properties', () { - const mockPlacemark = Placemark( - administrativeArea: 'Overijssel', - country: 'Netherlands', - isoCountryCode: 'NL', - locality: 'Enschede', - name: 'Gronausestraat', - postalCode: '', - street: 'Gronausestraat 710', - subAdministrativeArea: 'Enschede', - subLocality: 'Enschmarke', - subThoroughfare: '', - thoroughfare: 'Gronausestraat'); - - final expected = ''' - Name: ${mockPlacemark.name}, - Street: ${mockPlacemark.street}, - ISO Country Code: ${mockPlacemark.isoCountryCode}, - Country: ${mockPlacemark.country}, - Postal code: ${mockPlacemark.postalCode}, - Administrative area: ${mockPlacemark.administrativeArea}, - Subadministrative area: ${mockPlacemark.subAdministrativeArea}, - Locality: ${mockPlacemark.locality}, - Sublocality: ${mockPlacemark.subLocality}, - Thoroughfare: ${mockPlacemark.thoroughfare}, - Subthoroughfare: ${mockPlacemark.subThoroughfare}'''; - - expect(mockPlacemark.toString(), expected); - }); - }); -}