diff --git a/.gitignore b/.gitignore
index 09360f3..13840ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+compressed/
+
# Miscellaneous
*.class
*.log
@@ -31,6 +33,9 @@
.pub/
/build/
+personal_info.*
+credential.json
+
# Web related
# Symbolication related
diff --git a/README.md b/README.md
index fd95d2a..00c6f54 100644
--- a/README.md
+++ b/README.md
@@ -1,61 +1,102 @@
-# flutter_rust_bridge_template
+# Booky
-This repository serves as a template for Flutter projects calling into native Rust
-libraries via `flutter_rust_bridge`.
+Booky is an application to help publish second-hand book.
+It enable taking multiple picture of the book(s). Add books state (brand new, worn out), add the weight (for shipping), then extract the ISBN from the barcode in the pictures to have additional metadata by scrapping some website.
-## Getting Started
+Metadata include:
+- Title
+- Author
+- Blurb. A book blurb is a short promotional description, whereas a synopsis summarizes the twists, turns, and conclusion of the story.
+- Keywords or genres
-To begin, ensure that you have a working installation of the following items:
-- [Flutter SDK](https://docs.flutter.dev/get-started/install)
-- [Rust language](https://rustup.rs/)
-- `flutter_rust_bridge_codegen` [cargo package](https://cjycode.com/flutter_rust_bridge/integrate/deps.html#build-time-dependencies)
-- Appropriate [Rust targets](https://rust-lang.github.io/rustup/cross-compilation.html) for cross-compiling to your device
-- For Android targets:
- - Install [cargo-ndk](https://github.com/bbqsrc/cargo-ndk#installing)
- - Install [Android NDK 22](https://github.com/android/ndk/wiki/Unsupported-Downloads#r22b), then put its path in one of the `gradle.properties`, e.g.:
+## Enrichment
+### Example using Babelio as source
+#### Input
+```rust
+let isbn = 9782266071529;
```
-echo "ANDROID_NDK=.." >> ~/.gradle/gradle.properties
-```
-
-- For iOS targets:
- - Install [cargo-xcode](https://gitlab.com/kornelski/cargo-xcode#installation)
-- [Web dependencies](http://cjycode.com/flutter_rust_bridge/template/setup_web.html) for the Web
-
-Then go ahead and run `flutter run` (for web, run `dart run flutter_rust_bridge:serve` instead). When you're ready, refer to our documentation
-[here](https://fzyzcjy.github.io/flutter_rust_bridge/index.html) to learn how to write and use binding code.
-
-Once you have edited `api.rs` to incorporate your own Rust code, the bridge files `bridge_definitions.dart` and `bridge_generated.dart` are generated using the following command (note: append ` --wasm` to add web support):
-### Windows
-```
-flutter_rust_bridge_codegen --rust-input native\src\api.rs --dart-output .\lib\bridge_generated.dart --dart-decl-output .\lib\bridge_definitions.dart
+#### Output
+```rust
+BookMetaData {
+ title: "Le nom de la bête",
+ author: {
+ surname: "Daniel",
+ name: "Easterman",
+ },
+ blurb: "Janvier 1999. Peu à peu, les pays arabes ont sombré dans l'intégrisme. Les attentats terroristes se multiplient en Europe attisant la haine et le racisme. Au Caire, un coup d'état fomenté par les fondamentalistes permet à leur chef Al-Kourtoubi de s'installer au pouvoir et d'instaurer la terreur. Le réseau des agents secrets britanniques en Égypte ayant été anéanti, Michael Hunt est obligé de reprendre du service pour enquêter sur place. Aidé par son frère Paul, prêtre catholique et agent du Vatican, il apprend que le Pape doit se rendre à Jérusalem pour participer à une conférence œcuménique. Au courant de ce projet, le chef des fondamentalistes a prévu d'enlever le saint père.Dans ce récit efficace et à l'action soutenue, le héros lutte presque seul contre des groupes fanatiques puissants et sans grand espoir de réussir. Comme dans tous ses autres livres, Daniel Easterman, spécialiste de l'islam, part du constat que le Mal est puissant et il dénonce l'intolérance et les nationalismes qui engendrent violence et chaos.--Claude Mesplède
\t\t",
+ key_words: [
+ "roman", "fantastique", "policier historique", "romans policiers et polars", "thriller", "terreur", "action", "démocratie", "mystique", "islam", "intégrisme religieux", "catholicisme", "religion", "terrorisme", "extrémisme", "egypte", "médias", "thriller religieux", "littérature irlandaise", "irlande"
+ ],
+}
```
-### Linux/MacOS/any other Unix
-```
-flutter_rust_bridge_codegen --rust-input native/src/api.rs --dart-output ./lib/bridge_generated.dart --dart-decl-output ./lib/bridge_definitions.dart
+### Sources
+
+| Source | Metadata (in addition to title and authors) | Notes |
+|-------------------------------------------------------|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Babelio](https://www.babelio.com/) | blurb, keyword | No API available. No plan to build one.
Babelio seem to block the IP if it detect this bot is doing some scrapping |
+| [Decitre](https://www.decitre.fr/) | blurb, keywords in commentaries | |
+| [GoodReads](https://www.goodreads.com/) | blurb, genres in english | An API was available, but GoodRead does not create new developer key. [See this](https://help.goodreads.com/s/article/Does-Goodreads-support-the-use-of-APIs) |
+| [Google Books](https://www.google.fr/books/) | blurb, genres | [A real API](https://developers.google.com/books/docs/overview) is available to look up a book by ISBN
Some book can't be search by ISBN, even though a search by title can find them, and they display the right ISBN |
+| [ISBSearcher](https://www.isbnsearcher.com/) | blurb, main category in english | |
+| [Label Emmaus](https://www.label-emmaus.co/) | blurb, genres | |
+| [OpenLibrary](https://openlibrary.org/) | blurb are not translated | Its is based on physical books, it is not really a book database |
+| [Chasse Aux Livre](https://www.chasse-aux-livres.fr/) | price only | it is not possible to parse with Selenium |
+| [AbeBooks](https://www.abebooks.fr/) | Seems to have good french blurb | |
+| [Fnac](https://www.fnac.com/) | blurb, second-hand price | |
+| [Librarie Kleber](https://www.librairie-kleber.com/) | blurb, price | |
+| [JustBooks](https://www.justbooks.fr/) | blurb (seldom), prices | |
+
+#### GoogleBooks
+GoogleBooks has some inconsistencies:
+https://www.googleapis.com/books/v1/volumes?q=isbn:9782744170812
+says te publishedDate is 2004.
+But https://www.googleapis.com/books/v1/volumes/DQUFSQAACAAJ
+says the publishedDate is 2005.
+
+In the first response, we don't have a publisher, in the second we have.
+In the first response, the title use a big C for "Cité", but in the second, it use a small 'c'
+
+## Contributing
+### Build the barcode detector binary
+Clone the 3 OpenCV repo:
+- https://github.com/opencv/opencv.git (main repo)
+- https://github.com/pixelshot91/open_cv_barcode_book_metadata_finder
+ (fork of https://github.com/opencv/opencv_contrib.git)
+ Contain the barcode contrib module
+- https://github.com/opencv/opencv_extra.git (optionnal, contain the test data to test OpenCV)
+
+```shell
+$ cd /
+$ mkdir build
+$ cd build/
+build/ $ cmake -DOPENCV_EXTRA_MODULES_PATH=/modules ..
```
-## Scaffolding in existing projects
-
-If you would like to generate boilerplate for using `flutter_rust_bridge` in your existing projects,
-check out the [`flutter_rust_bridge` brick](https://brickhub.dev/bricks/flutter_rust_bridge/)
-for more details.
-
-## Disclaimer
-
-This template is not affiliated with flutter_rust_bridge. Please file issues and PRs related to the template here,
-not flutter_rust_bridge.
-
-## License
-
-Copyright 2022 Viet Dinh.
-
-This template is licensed under either of
-- [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) ([LICENSE-APACHE](LICENSE-APACHE))
-- [MIT license](https://opensource.org/licenses/MIT) ([LICENSE-MIT](LICENSE-MIT))
-
-at your option.
+You can test the barcode module with:
+```shell
+build/ $ make opencv_test_barcode
+build/ $ OPENCV_TEST_DATA_PATH=/testdata/ bin/opencv_test_barcode
+```
-The [SPDX](https://spdx.dev/) license identifier for this project is `MIT OR Apache-2.0`.
+### Install the rust/android toolchain
+#### flutter_rust_bridge_template
+Follow the instruction of flutter_rust_bridge_template. Here is an extract
+
+> To begin, ensure that you have a working installation of the following items:
+> - [Flutter SDK](https://docs.flutter.dev/get-started/install)
+> - [Rust language](https://rustup.rs/)
+> - `flutter_rust_bridge_codegen` [cargo package](https://cjycode.com/flutter_rust_bridge/integrate/deps.html#build-time-dependencies)
+> - Appropriate [Rust targets](https://rust-lang.github.io/rustup/cross-compilation.html) for cross-compiling to your device
+> - For Android targets:
+> - Install [cargo-ndk](https://github.com/bbqsrc/cargo-ndk#installing)
+> - Install [Android NDK 22](https://github.com/android/ndk/wiki/Unsupported-Downloads#r22b), then put its path in one of the `gradle.properties`, e.g.:
+>
+> ```
+> echo "ANDROID_NDK=.." >> ~/.gradle/gradle.properties
+> ```
+
+#### super_native_extension
+Follow this tutorial: https://pub.dev/packages/super_clipboard
\ No newline at end of file
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..b433bc3
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,28 @@
+# TODO
+
+* [ ] ISBNDecoding: Delete an image
+* [ ] ISBNDecoding: Pan and zoom on an image
+* [ ] ISBNDecoding: Check the ISBN checksum
+* [ ] BUG: BundleList fail to refresh after: autoMetadata download
+* [ ] BUG: BundleList show autoMetadata from other bundle when some bundle are deleted
+* [ ] MetadataCollecting: Disable 'Validate Metadatas' button if price field is empty
+* [ ] AdEditing: Disable 'Mark as published' if the title is empty
+* [ ] Search with Selenium in headless mode
+
+# DONE
+
+* [x] Add the ISBNs in the ad description for better indexing
+* [x] Show LBC weight category instead of weight in grams
+* [x] Better price suggestion. Take into account shipping cost
+* [x] BundleSelection: Delete some bundle
+* [x] BundleSelection: Show icons to represent how much metadata is available
+* [x] ISBNDecoding: Show barcode zone, add and remove barcode
+* [x] BundleSelection: Automatically update bundle list when a bundle is removed or added by the app
+* [x] BundleSelection: Allow manual refresh if the bundle list has been modified by external device
+* [x] Launch the scrapping asynchronously to avoid waiting for the provider (notably BooksPrice)
+* [x] Camera: Grab the ISBN in real-time with ML Kit (add a minimum repetition of about 20 to avoid false ISBN detection)
+* [x] MetadataCollecting: Price auto fill
+* [x] MetadataCollecting: Add back the keywords
+* [x] MetadataCollecting: Create multiple textFieldController when multiple ISBN
+* [x] Navigate between enrichment and camera
+* [x] Compress the images to upload them quicker
\ No newline at end of file
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 61b6c4d..456dfc6 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,29 +1,19 @@
-# 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-lang.github.io/linter/lints/index.html.
- #
- # 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
+ use_key_in_widget_constructors: false
+ avoid_print: false
+ prefer_single_quotes: true
+ prefer_interpolation_to_compose_strings: false
+ prefer_is_empty: false
+ avoid_function_literals_in_foreach_calls: false
+analyzer:
+ enable-experiment:
+ - records
+ - patterns
+ - sealed-class
+ language:
+ strict-casts: true
+ strict-inference: true
+ strict-raw-types: true
\ No newline at end of file
diff --git a/android/app/build.gradle b/android/app/build.gradle
index c1b36a9..48a4c02 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -27,7 +27,7 @@ apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion flutter.compileSdkVersion
- ndkVersion flutter.ndkVersion
+ ndkVersion "25.2.9519653"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
@@ -47,7 +47,7 @@ android {
applicationId "com.example.flutter_rust_bridge_template"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
- minSdkVersion flutter.minSdkVersion
+ minSdkVersion 23
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
@@ -87,12 +87,12 @@ dependencies {
environment ANDROID_NDK_HOME: "$ANDROID_NDK"
commandLine 'cargo', 'ndk',
// the 2 ABIs below are used by real Android devices
- '-t', 'armeabi-v7a',
+// '-t', 'armeabi-v7a',
'-t', 'arm64-v8a',
// the below 2 ABIs are usually used for Android simulators,
// add or remove these ABIs as needed.
- '-t', 'x86',
- '-t', 'x86_64',
+// '-t', 'x86',
+// '-t', 'x86_64',
'-o', '../android/app/src/main/jniLibs', 'build'
if (profileMode != null) {
args profileMode
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index d555ba0..91be786 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
-
+
diff --git a/android/gradle.properties b/android/gradle.properties
index 94adc3a..ddbbffb 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,3 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
+ANDROID_NDK=/home/julien/Android/Sdk/ndk/
diff --git a/ios/.gitignore b/ios/.gitignore
deleted file mode 100644
index 7a7f987..0000000
--- a/ios/.gitignore
+++ /dev/null
@@ -1,34 +0,0 @@
-**/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/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
deleted file mode 100644
index 9625e10..0000000
--- a/ios/Flutter/AppFrameworkInfo.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- App
- CFBundleIdentifier
- io.flutter.flutter.app
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- App
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- MinimumOSVersion
- 11.0
-
-
diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig
deleted file mode 100644
index 592ceee..0000000
--- a/ios/Flutter/Debug.xcconfig
+++ /dev/null
@@ -1 +0,0 @@
-#include "Generated.xcconfig"
diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig
deleted file mode 100644
index 592ceee..0000000
--- a/ios/Flutter/Release.xcconfig
+++ /dev/null
@@ -1 +0,0 @@
-#include "Generated.xcconfig"
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
deleted file mode 100644
index b7d7efb..0000000
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,560 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 54;
- objects = {
-
-/* Begin PBXBuildFile section */
- 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
- 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
- 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
- 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 */; };
- A3671AD929957A9600604FF0 /* libnative_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A3671AD529957A8000604FF0 /* libnative_static.a */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- A3671AD229957A8000604FF0 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = A3671ACD29957A7F00604FF0 /* native.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = CA603EE7FF4DEAC3B2E0A336;
- remoteInfo = "native-cdylib";
- };
- A3671AD429957A8000604FF0 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = A3671ACD29957A7F00604FF0 /* native.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = CA60F0FEBE702969E816930C;
- remoteInfo = "native-staticlib";
- };
- A3671AD629957A8A00604FF0 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = A3671ACD29957A7F00604FF0 /* native.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = CA60F0FEBE701C83950DBC35;
- remoteInfo = "native-staticlib";
- };
-/* 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 = ""; };
- 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 = ""; };
- A3671ACD29957A7F00604FF0 /* native.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = native.xcodeproj; path = ../native/native.xcodeproj; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 97C146EB1CF9000F007C117D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- A3671AD929957A9600604FF0 /* libnative_static.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 9740EEB11CF90186004384FC /* Flutter */ = {
- isa = PBXGroup;
- children = (
- 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
- 9740EEB21CF90195004384FC /* Debug.xcconfig */,
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
- 9740EEB31CF90195004384FC /* Generated.xcconfig */,
- );
- name = Flutter;
- sourceTree = "";
- };
- 97C146E51CF9000F007C117D = {
- isa = PBXGroup;
- children = (
- A3671ACD29957A7F00604FF0 /* native.xcodeproj */,
- 9740EEB11CF90186004384FC /* Flutter */,
- 97C146F01CF9000F007C117D /* Runner */,
- 97C146EF1CF9000F007C117D /* Products */,
- A3671AD829957A9600604FF0 /* Frameworks */,
- );
- sourceTree = "";
- };
- 97C146EF1CF9000F007C117D /* Products */ = {
- isa = PBXGroup;
- children = (
- 97C146EE1CF9000F007C117D /* Runner.app */,
- );
- 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 = "";
- };
- A3671ACE29957A7F00604FF0 /* Products */ = {
- isa = PBXGroup;
- children = (
- A3671AD329957A8000604FF0 /* native.dylib */,
- A3671AD529957A8000604FF0 /* libnative_static.a */,
- );
- name = Products;
- sourceTree = "";
- };
- A3671AD829957A9600604FF0 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- );
- name = Frameworks;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 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 = (
- A3671AD729957A8A00604FF0 /* PBXTargetDependency */,
- );
- name = Runner;
- productName = Runner;
- productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 97C146E61CF9000F007C117D /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 1300;
- ORGANIZATIONNAME = "";
- TargetAttributes = {
- 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;
- productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = A3671ACE29957A7F00604FF0 /* Products */;
- ProjectRef = A3671ACD29957A7F00604FF0 /* native.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 97C146ED1CF9000F007C117D /* Runner */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- A3671AD329957A8000604FF0 /* native.dylib */ = {
- isa = PBXReferenceProxy;
- fileType = "compiled.mach-o.dylib";
- path = native.dylib;
- remoteRef = A3671AD229957A8000604FF0 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- A3671AD529957A8000604FF0 /* libnative_static.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = libnative_static.a;
- remoteRef = A3671AD429957A8000604FF0 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 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 = (
- );
- 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 */
- 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 */
- A3671AD729957A8A00604FF0 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "native-staticlib";
- targetProxy = A3671AD629957A8A00604FF0 /* 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;
- 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;
- 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 = 11.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)";
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterRustBridgeTemplate;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Profile;
- };
- 97C147031CF9000F007C117D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- 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;
- 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 = 11.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;
- 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;
- 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 = 11.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)";
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterRustBridgeTemplate;
- 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)";
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterRustBridgeTemplate;
- 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 */
- 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 */
- };
- rootObject = 97C146E61CF9000F007C117D /* Project object */;
-}
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a..0000000
--- a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c..0000000
--- a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted file mode 100644
index c87d15a..0000000
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 1d526a1..0000000
--- a/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c..0000000
--- a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift
deleted file mode 100644
index 1958642..0000000
--- a/ios/Runner/AppDelegate.swift
+++ /dev/null
@@ -1,14 +0,0 @@
-import UIKit
-import Flutter
-
-@UIApplicationMain
-@objc class AppDelegate: FlutterAppDelegate {
- override func application(
- _ application: UIApplication,
- didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
- ) -> Bool {
- print("dummy_value=\(dummy_method_to_enforce_bundling())");
- GeneratedPluginRegistrant.register(with: self)
- return super.application(application, didFinishLaunchingWithOptions: launchOptions)
- }
-}
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index d36b1fa..0000000
--- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "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/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
deleted file mode 100644
index dc9ada4..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
deleted file mode 100644
index 7353c41..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
deleted file mode 100644
index 797d452..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
deleted file mode 100644
index 6ed2d93..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
deleted file mode 100644
index 4cd7b00..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
deleted file mode 100644
index fe73094..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
deleted file mode 100644
index 321773c..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
deleted file mode 100644
index 797d452..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
deleted file mode 100644
index 502f463..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
deleted file mode 100644
index 0ec3034..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
deleted file mode 100644
index 0ec3034..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
deleted file mode 100644
index e9f5fea..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
deleted file mode 100644
index 84ac32a..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
deleted file mode 100644
index 8953cba..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
deleted file mode 100644
index 0467bf1..0000000
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
deleted file mode 100644
index 0bedcf2..0000000
--- a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "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/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
deleted file mode 100644
index 9da19ea..0000000
Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
deleted file mode 100644
index 9da19ea..0000000
Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
deleted file mode 100644
index 9da19ea..0000000
Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and /dev/null differ
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
deleted file mode 100644
index 89c2725..0000000
--- a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# 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/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard
deleted file mode 100644
index f2e259c..0000000
--- a/ios/Runner/Base.lproj/LaunchScreen.storyboard
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard
deleted file mode 100644
index f3c2851..0000000
--- a/ios/Runner/Base.lproj/Main.storyboard
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
deleted file mode 100644
index 182d522..0000000
--- a/ios/Runner/Info.plist
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- $(DEVELOPMENT_LANGUAGE)
- CFBundleDisplayName
- Flutter Rust Bridge Template
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- flutter_rust_bridge_template
- 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
-
- UIViewControllerBasedStatusBarAppearance
-
- CADisableMinimumFrameDurationOnPhone
-
- UIApplicationSupportsIndirectInputEvents
-
-
-
diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h
deleted file mode 100644
index ffb33c6..0000000
--- a/ios/Runner/Runner-Bridging-Header.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#import "GeneratedPluginRegistrant.h"
-#import "bridge_generated.h"
diff --git a/ios/Runner/bridge_generated.h b/ios/Runner/bridge_generated.h
deleted file mode 100644
index ae8c386..0000000
--- a/ios/Runner/bridge_generated.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#include
-#include
-#include
-typedef struct _Dart_Handle* Dart_Handle;
-
-typedef struct DartCObject DartCObject;
-
-typedef int64_t DartPort;
-
-typedef bool (*DartPostCObjectFnType)(DartPort port_id, void *message);
-
-typedef struct DartCObject *WireSyncReturn;
-
-void store_dart_post_cobject(DartPostCObjectFnType ptr);
-
-Dart_Handle get_dart_object(uintptr_t ptr);
-
-void drop_dart_object(uintptr_t ptr);
-
-uintptr_t new_dart_opaque(Dart_Handle handle);
-
-intptr_t init_frb_dart_api_dl(void *obj);
-
-void wire_platform(int64_t port_);
-
-void wire_rust_release_mode(int64_t port_);
-
-void free_WireSyncReturn(WireSyncReturn ptr);
-
-static int64_t dummy_method_to_enforce_bundling(void) {
- int64_t dummy_var = 0;
- dummy_var ^= ((int64_t) (void*) wire_platform);
- dummy_var ^= ((int64_t) (void*) wire_rust_release_mode);
- dummy_var ^= ((int64_t) (void*) free_WireSyncReturn);
- dummy_var ^= ((int64_t) (void*) store_dart_post_cobject);
- dummy_var ^= ((int64_t) (void*) get_dart_object);
- dummy_var ^= ((int64_t) (void*) drop_dart_object);
- dummy_var ^= ((int64_t) (void*) new_dart_opaque);
- return dummy_var;
-}
\ No newline at end of file
diff --git a/justfile b/justfile
index 77f38c2..9faa856 100644
--- a/justfile
+++ b/justfile
@@ -1,16 +1,15 @@
-default: gen lint
+default: gen fmt
gen:
flutter pub get
flutter_rust_bridge_codegen \
--rust-input native/src/api.rs \
--dart-output lib/bridge_generated.dart \
- --c-output ios/Runner/bridge_generated.h \
--dart-decl-output lib/bridge_definitions.dart \
- --wasm
- cp ios/Runner/bridge_generated.h macos/Runner/bridge_generated.h
+ # --wasm
+ # cp ios/Runner/bridge_generated.h macos/Runner/bridge_generated.h
-lint:
+fmt:
cd native && cargo fmt
dart format .
diff --git a/lib/bridge_definitions.dart b/lib/bridge_definitions.dart
index fadd6b6..4e08b92 100644
--- a/lib/bridge_definitions.dart
+++ b/lib/bridge_definitions.dart
@@ -1,31 +1,144 @@
// AUTO GENERATED FILE, DO NOT EDIT.
-// Generated by `flutter_rust_bridge`@ 1.62.1.
-// ignore_for_file: non_constant_identifier_names, unused_element, duplicate_ignore, directives_ordering, curly_braces_in_flow_control_structures, unnecessary_lambdas, slash_for_doc_comments, prefer_const_literals_to_create_immutables, implicit_dynamic_list_literal, duplicate_import, unused_import, unnecessary_import, prefer_single_quotes, prefer_const_constructors, use_super_parameters, always_use_package_imports, annotate_overrides, invalid_use_of_protected_member, constant_identifier_names, invalid_use_of_internal_member
+// Generated by `flutter_rust_bridge`@ 1.68.0.
+// ignore_for_file: non_constant_identifier_names, unused_element, duplicate_ignore, directives_ordering, curly_braces_in_flow_control_structures, unnecessary_lambdas, slash_for_doc_comments, prefer_const_literals_to_create_immutables, implicit_dynamic_list_literal, duplicate_import, unused_import, unnecessary_import, prefer_single_quotes, prefer_const_constructors, use_super_parameters, always_use_package_imports, annotate_overrides, invalid_use_of_protected_member, constant_identifier_names, invalid_use_of_internal_member, prefer_is_empty, unnecessary_const
-import 'bridge_generated.io.dart'
- if (dart.library.html) 'bridge_generated.web.dart';
import 'dart:convert';
import 'dart:async';
import 'package:meta/meta.dart';
import 'package:flutter_rust_bridge/flutter_rust_bridge.dart';
abstract class Native {
- Future platform({dynamic hint});
+ Future detectBarcodeInImage(
+ {required String imgPath, dynamic hint});
- FlutterRustBridgeTaskConstMeta get kPlatformConstMeta;
+ FlutterRustBridgeTaskConstMeta get kDetectBarcodeInImageConstMeta;
- Future rustReleaseMode({dynamic hint});
+ Future getMetadataFromIsbns(
+ {required List isbns, required String path, dynamic hint});
- FlutterRustBridgeTaskConstMeta get kRustReleaseModeConstMeta;
+ FlutterRustBridgeTaskConstMeta get kGetMetadataFromIsbnsConstMeta;
+
+ Future> getAutoMetadataFromBundle(
+ {required String path, dynamic hint});
+
+ FlutterRustBridgeTaskConstMeta get kGetAutoMetadataFromBundleConstMeta;
+
+ Future getMetadataFromProvider(
+ {required ProviderEnum provider, required String isbn, dynamic hint});
+
+ FlutterRustBridgeTaskConstMeta get kGetMetadataFromProviderConstMeta;
+
+ Future publishAd(
+ {required Ad ad, required LbcCredential credential, dynamic hint});
+
+ FlutterRustBridgeTaskConstMeta get kPublishAdConstMeta;
+}
+
+class Ad {
+ String title;
+ String description;
+ int priceCent;
+ final int weightGrams;
+ List imgsPath;
+
+ Ad({
+ required this.title,
+ required this.description,
+ required this.priceCent,
+ required this.weightGrams,
+ required this.imgsPath,
+ });
}
-enum Platform {
- Unknown,
- Android,
- Ios,
- Windows,
- Unix,
- MacIntel,
- MacApple,
- Wasm,
+class Author {
+ final String firstName;
+ final String lastName;
+
+ const Author({
+ required this.firstName,
+ required this.lastName,
+ });
+}
+
+class BarcodeDetectResult {
+ final String value;
+ final List corners;
+
+ const BarcodeDetectResult({
+ required this.value,
+ required this.corners,
+ });
+}
+
+class BarcodeDetectResults {
+ final List results;
+
+ const BarcodeDetectResults({
+ required this.results,
+ });
+}
+
+class BookMetaDataFromProvider {
+ String? title;
+ List authors;
+ String? blurb;
+ List keywords;
+ Float32List marketPrice;
+
+ BookMetaDataFromProvider({
+ this.title,
+ required this.authors,
+ this.blurb,
+ required this.keywords,
+ required this.marketPrice,
+ });
+}
+
+class ISBNMetadataPair {
+ final String isbn;
+ final List metadatas;
+
+ const ISBNMetadataPair({
+ required this.isbn,
+ required this.metadatas,
+ });
+}
+
+class LbcCredential {
+ String lbcToken;
+ String datadomeCookie;
+
+ LbcCredential({
+ required this.lbcToken,
+ required this.datadomeCookie,
+ });
+}
+
+class Point {
+ final int x;
+ final int y;
+
+ const Point({
+ required this.x,
+ required this.y,
+ });
+}
+
+enum ProviderEnum {
+ Babelio,
+ GoogleBooks,
+ BooksPrice,
+ AbeBooks,
+ LesLibraires,
+ JustBooks,
+}
+
+class ProviderMetadataPair {
+ final ProviderEnum provider;
+ final BookMetaDataFromProvider? metadata;
+
+ const ProviderMetadataPair({
+ required this.provider,
+ this.metadata,
+ });
}
diff --git a/lib/bridge_generated.dart b/lib/bridge_generated.dart
index 7501e4b..dbf52bc 100644
--- a/lib/bridge_generated.dart
+++ b/lib/bridge_generated.dart
@@ -1,14 +1,19 @@
// AUTO GENERATED FILE, DO NOT EDIT.
-// Generated by `flutter_rust_bridge`@ 1.62.1.
-// ignore_for_file: non_constant_identifier_names, unused_element, duplicate_ignore, directives_ordering, curly_braces_in_flow_control_structures, unnecessary_lambdas, slash_for_doc_comments, prefer_const_literals_to_create_immutables, implicit_dynamic_list_literal, duplicate_import, unused_import, unnecessary_import, prefer_single_quotes, prefer_const_constructors, use_super_parameters, always_use_package_imports, annotate_overrides, invalid_use_of_protected_member, constant_identifier_names, invalid_use_of_internal_member
+// Generated by `flutter_rust_bridge`@ 1.68.0.
+// ignore_for_file: non_constant_identifier_names, unused_element, duplicate_ignore, directives_ordering, curly_braces_in_flow_control_structures, unnecessary_lambdas, slash_for_doc_comments, prefer_const_literals_to_create_immutables, implicit_dynamic_list_literal, duplicate_import, unused_import, unnecessary_import, prefer_single_quotes, prefer_const_constructors, use_super_parameters, always_use_package_imports, annotate_overrides, invalid_use_of_protected_member, constant_identifier_names, invalid_use_of_internal_member, prefer_is_empty, unnecessary_const
import "bridge_definitions.dart";
import 'dart:convert';
import 'dart:async';
import 'package:meta/meta.dart';
import 'package:flutter_rust_bridge/flutter_rust_bridge.dart';
-import 'bridge_generated.io.dart'
- if (dart.library.html) 'bridge_generated.web.dart';
+
+import 'dart:convert';
+import 'dart:async';
+import 'package:meta/meta.dart';
+import 'package:flutter_rust_bridge/flutter_rust_bridge.dart';
+
+import 'dart:ffi' as ffi;
class NativeImpl implements Native {
final NativePlatform _platform;
@@ -19,36 +24,101 @@ class NativeImpl implements Native {
factory NativeImpl.wasm(FutureOr module) =>
NativeImpl(module as ExternalLibrary);
NativeImpl.raw(this._platform);
- Future platform({dynamic hint}) {
+ Future detectBarcodeInImage(
+ {required String imgPath, dynamic hint}) {
+ var arg0 = _platform.api2wire_String(imgPath);
return _platform.executeNormal(FlutterRustBridgeTask(
- callFfi: (port_) => _platform.inner.wire_platform(port_),
- parseSuccessData: _wire2api_platform,
- constMeta: kPlatformConstMeta,
- argValues: [],
+ callFfi: (port_) =>
+ _platform.inner.wire_detect_barcode_in_image(port_, arg0),
+ parseSuccessData: _wire2api_barcode_detect_results,
+ constMeta: kDetectBarcodeInImageConstMeta,
+ argValues: [imgPath],
hint: hint,
));
}
- FlutterRustBridgeTaskConstMeta get kPlatformConstMeta =>
+ FlutterRustBridgeTaskConstMeta get kDetectBarcodeInImageConstMeta =>
const FlutterRustBridgeTaskConstMeta(
- debugName: "platform",
- argNames: [],
+ debugName: "detect_barcode_in_image",
+ argNames: ["imgPath"],
);
- Future rustReleaseMode({dynamic hint}) {
+ Future getMetadataFromIsbns(
+ {required List isbns, required String path, dynamic hint}) {
+ var arg0 = _platform.api2wire_StringList(isbns);
+ var arg1 = _platform.api2wire_String(path);
return _platform.executeNormal(FlutterRustBridgeTask(
- callFfi: (port_) => _platform.inner.wire_rust_release_mode(port_),
+ callFfi: (port_) =>
+ _platform.inner.wire_get_metadata_from_isbns(port_, arg0, arg1),
+ parseSuccessData: _wire2api_unit,
+ constMeta: kGetMetadataFromIsbnsConstMeta,
+ argValues: [isbns, path],
+ hint: hint,
+ ));
+ }
+
+ FlutterRustBridgeTaskConstMeta get kGetMetadataFromIsbnsConstMeta =>
+ const FlutterRustBridgeTaskConstMeta(
+ debugName: "get_metadata_from_isbns",
+ argNames: ["isbns", "path"],
+ );
+
+ Future> getAutoMetadataFromBundle(
+ {required String path, dynamic hint}) {
+ var arg0 = _platform.api2wire_String(path);
+ return _platform.executeNormal(FlutterRustBridgeTask(
+ callFfi: (port_) =>
+ _platform.inner.wire_get_auto_metadata_from_bundle(port_, arg0),
+ parseSuccessData: _wire2api_list_isbn_metadata_pair,
+ constMeta: kGetAutoMetadataFromBundleConstMeta,
+ argValues: [path],
+ hint: hint,
+ ));
+ }
+
+ FlutterRustBridgeTaskConstMeta get kGetAutoMetadataFromBundleConstMeta =>
+ const FlutterRustBridgeTaskConstMeta(
+ debugName: "get_auto_metadata_from_bundle",
+ argNames: ["path"],
+ );
+
+ Future getMetadataFromProvider(
+ {required ProviderEnum provider, required String isbn, dynamic hint}) {
+ var arg0 = api2wire_provider_enum(provider);
+ var arg1 = _platform.api2wire_String(isbn);
+ return _platform.executeNormal(FlutterRustBridgeTask(
+ callFfi: (port_) =>
+ _platform.inner.wire_get_metadata_from_provider(port_, arg0, arg1),
+ parseSuccessData: _wire2api_opt_box_autoadd_book_meta_data_from_provider,
+ constMeta: kGetMetadataFromProviderConstMeta,
+ argValues: [provider, isbn],
+ hint: hint,
+ ));
+ }
+
+ FlutterRustBridgeTaskConstMeta get kGetMetadataFromProviderConstMeta =>
+ const FlutterRustBridgeTaskConstMeta(
+ debugName: "get_metadata_from_provider",
+ argNames: ["provider", "isbn"],
+ );
+
+ Future publishAd(
+ {required Ad ad, required LbcCredential credential, dynamic hint}) {
+ var arg0 = _platform.api2wire_box_autoadd_ad(ad);
+ var arg1 = _platform.api2wire_box_autoadd_lbc_credential(credential);
+ return _platform.executeNormal(FlutterRustBridgeTask(
+ callFfi: (port_) => _platform.inner.wire_publish_ad(port_, arg0, arg1),
parseSuccessData: _wire2api_bool,
- constMeta: kRustReleaseModeConstMeta,
- argValues: [],
+ constMeta: kPublishAdConstMeta,
+ argValues: [ad, credential],
hint: hint,
));
}
- FlutterRustBridgeTaskConstMeta get kRustReleaseModeConstMeta =>
+ FlutterRustBridgeTaskConstMeta get kPublishAdConstMeta =>
const FlutterRustBridgeTaskConstMeta(
- debugName: "rust_release_mode",
- argNames: [],
+ debugName: "publish_ad",
+ argNames: ["ad", "credential"],
);
void dispose() {
@@ -56,19 +126,543 @@ class NativeImpl implements Native {
}
// Section: wire2api
+ String _wire2api_String(dynamic raw) {
+ return raw as String;
+ }
+
+ List _wire2api_StringList(dynamic raw) {
+ return (raw as List).cast();
+ }
+
+ Author _wire2api_author(dynamic raw) {
+ final arr = raw as List;
+ if (arr.length != 2)
+ throw Exception('unexpected arr length: expect 2 but see ${arr.length}');
+ return Author(
+ firstName: _wire2api_String(arr[0]),
+ lastName: _wire2api_String(arr[1]),
+ );
+ }
+
+ BarcodeDetectResult _wire2api_barcode_detect_result(dynamic raw) {
+ final arr = raw as List;
+ if (arr.length != 2)
+ throw Exception('unexpected arr length: expect 2 but see ${arr.length}');
+ return BarcodeDetectResult(
+ value: _wire2api_String(arr[0]),
+ corners: _wire2api_list_point(arr[1]),
+ );
+ }
+
+ BarcodeDetectResults _wire2api_barcode_detect_results(dynamic raw) {
+ final arr = raw as List;
+ if (arr.length != 1)
+ throw Exception('unexpected arr length: expect 1 but see ${arr.length}');
+ return BarcodeDetectResults(
+ results: _wire2api_list_barcode_detect_result(arr[0]),
+ );
+ }
+
+ BookMetaDataFromProvider _wire2api_book_meta_data_from_provider(dynamic raw) {
+ final arr = raw as List;
+ if (arr.length != 5)
+ throw Exception('unexpected arr length: expect 5 but see ${arr.length}');
+ return BookMetaDataFromProvider(
+ title: _wire2api_opt_String(arr[0]),
+ authors: _wire2api_list_author(arr[1]),
+ blurb: _wire2api_opt_String(arr[2]),
+ keywords: _wire2api_StringList(arr[3]),
+ marketPrice: _wire2api_float_32_list(arr[4]),
+ );
+ }
+
bool _wire2api_bool(dynamic raw) {
return raw as bool;
}
+ BookMetaDataFromProvider _wire2api_box_autoadd_book_meta_data_from_provider(
+ dynamic raw) {
+ return _wire2api_book_meta_data_from_provider(raw);
+ }
+
+ double _wire2api_f32(dynamic raw) {
+ return raw as double;
+ }
+
+ Float32List _wire2api_float_32_list(dynamic raw) {
+ return raw as Float32List;
+ }
+
int _wire2api_i32(dynamic raw) {
return raw as int;
}
- Platform _wire2api_platform(dynamic raw) {
- return Platform.values[raw];
+ ISBNMetadataPair _wire2api_isbn_metadata_pair(dynamic raw) {
+ final arr = raw as List;
+ if (arr.length != 2)
+ throw Exception('unexpected arr length: expect 2 but see ${arr.length}');
+ return ISBNMetadataPair(
+ isbn: _wire2api_String(arr[0]),
+ metadatas: _wire2api_list_provider_metadata_pair(arr[1]),
+ );
+ }
+
+ List _wire2api_list_author(dynamic raw) {
+ return (raw as List).map(_wire2api_author).toList();
+ }
+
+ List _wire2api_list_barcode_detect_result(dynamic raw) {
+ return (raw as List).map(_wire2api_barcode_detect_result).toList();
+ }
+
+ List _wire2api_list_isbn_metadata_pair(dynamic raw) {
+ return (raw as List).map(_wire2api_isbn_metadata_pair).toList();
+ }
+
+ List _wire2api_list_point(dynamic raw) {
+ return (raw as List).map(_wire2api_point).toList();
+ }
+
+ List _wire2api_list_provider_metadata_pair(
+ dynamic raw) {
+ return (raw as List)
+ .map(_wire2api_provider_metadata_pair)
+ .toList();
+ }
+
+ String? _wire2api_opt_String(dynamic raw) {
+ return raw == null ? null : _wire2api_String(raw);
+ }
+
+ BookMetaDataFromProvider?
+ _wire2api_opt_box_autoadd_book_meta_data_from_provider(dynamic raw) {
+ return raw == null
+ ? null
+ : _wire2api_box_autoadd_book_meta_data_from_provider(raw);
+ }
+
+ Point _wire2api_point(dynamic raw) {
+ final arr = raw as List;
+ if (arr.length != 2)
+ throw Exception('unexpected arr length: expect 2 but see ${arr.length}');
+ return Point(
+ x: _wire2api_u16(arr[0]),
+ y: _wire2api_u16(arr[1]),
+ );
+ }
+
+ ProviderEnum _wire2api_provider_enum(dynamic raw) {
+ return ProviderEnum.values[raw as int];
+ }
+
+ ProviderMetadataPair _wire2api_provider_metadata_pair(dynamic raw) {
+ final arr = raw as List;
+ if (arr.length != 2)
+ throw Exception('unexpected arr length: expect 2 but see ${arr.length}');
+ return ProviderMetadataPair(
+ provider: _wire2api_provider_enum(arr[0]),
+ metadata: _wire2api_opt_box_autoadd_book_meta_data_from_provider(arr[1]),
+ );
+ }
+
+ int _wire2api_u16(dynamic raw) {
+ return raw as int;
+ }
+
+ int _wire2api_u8(dynamic raw) {
+ return raw as int;
+ }
+
+ Uint8List _wire2api_uint_8_list(dynamic raw) {
+ return raw as Uint8List;
+ }
+
+ void _wire2api_unit(dynamic raw) {
+ return;
}
}
// Section: api2wire
+@protected
+int api2wire_i32(int raw) {
+ return raw;
+}
+
+@protected
+int api2wire_provider_enum(ProviderEnum raw) {
+ return api2wire_i32(raw.index);
+}
+
+@protected
+int api2wire_u8(int raw) {
+ return raw;
+}
+
+// Section: finalizer
+
+class NativePlatform extends FlutterRustBridgeBase {
+ NativePlatform(ffi.DynamicLibrary dylib) : super(NativeWire(dylib));
+
+// Section: api2wire
+
+ @protected
+ ffi.Pointer api2wire_String(String raw) {
+ return api2wire_uint_8_list(utf8.encoder.convert(raw));
+ }
+
+ @protected
+ ffi.Pointer api2wire_StringList(List raw) {
+ final ans = inner.new_StringList_0(raw.length);
+ for (var i = 0; i < raw.length; i++) {
+ ans.ref.ptr[i] = api2wire_String(raw[i]);
+ }
+ return ans;
+ }
+
+ @protected
+ ffi.Pointer api2wire_box_autoadd_ad(Ad raw) {
+ final ptr = inner.new_box_autoadd_ad_0();
+ _api_fill_to_wire_ad(raw, ptr.ref);
+ return ptr;
+ }
+
+ @protected
+ ffi.Pointer api2wire_box_autoadd_lbc_credential(
+ LbcCredential raw) {
+ final ptr = inner.new_box_autoadd_lbc_credential_0();
+ _api_fill_to_wire_lbc_credential(raw, ptr.ref);
+ return ptr;
+ }
+
+ @protected
+ ffi.Pointer api2wire_uint_8_list(Uint8List raw) {
+ final ans = inner.new_uint_8_list_0(raw.length);
+ ans.ref.ptr.asTypedList(raw.length).setAll(0, raw);
+ return ans;
+ }
// Section: finalizer
+
+// Section: api_fill_to_wire
+
+ void _api_fill_to_wire_ad(Ad apiObj, wire_Ad wireObj) {
+ wireObj.title = api2wire_String(apiObj.title);
+ wireObj.description = api2wire_String(apiObj.description);
+ wireObj.price_cent = api2wire_i32(apiObj.priceCent);
+ wireObj.weight_grams = api2wire_i32(apiObj.weightGrams);
+ wireObj.imgs_path = api2wire_StringList(apiObj.imgsPath);
+ }
+
+ void _api_fill_to_wire_box_autoadd_ad(
+ Ad apiObj, ffi.Pointer wireObj) {
+ _api_fill_to_wire_ad(apiObj, wireObj.ref);
+ }
+
+ void _api_fill_to_wire_box_autoadd_lbc_credential(
+ LbcCredential apiObj, ffi.Pointer wireObj) {
+ _api_fill_to_wire_lbc_credential(apiObj, wireObj.ref);
+ }
+
+ void _api_fill_to_wire_lbc_credential(
+ LbcCredential apiObj, wire_LbcCredential wireObj) {
+ wireObj.lbc_token = api2wire_String(apiObj.lbcToken);
+ wireObj.datadome_cookie = api2wire_String(apiObj.datadomeCookie);
+ }
+}
+
+// ignore_for_file: camel_case_types, non_constant_identifier_names, avoid_positional_boolean_parameters, annotate_overrides, constant_identifier_names
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+
+/// generated by flutter_rust_bridge
+class NativeWire implements FlutterRustBridgeWireBase {
+ @internal
+ late final dartApi = DartApiDl(init_frb_dart_api_dl);
+
+ /// Holds the symbol lookup function.
+ final ffi.Pointer Function(String symbolName)
+ _lookup;
+
+ /// The symbols are looked up in [dynamicLibrary].
+ NativeWire(ffi.DynamicLibrary dynamicLibrary)
+ : _lookup = dynamicLibrary.lookup;
+
+ /// The symbols are looked up with [lookup].
+ NativeWire.fromLookup(
+ ffi.Pointer Function(String symbolName)
+ lookup)
+ : _lookup = lookup;
+
+ void store_dart_post_cobject(
+ DartPostCObjectFnType ptr,
+ ) {
+ return _store_dart_post_cobject(
+ ptr,
+ );
+ }
+
+ late final _store_dart_post_cobjectPtr =
+ _lookup>(
+ 'store_dart_post_cobject');
+ late final _store_dart_post_cobject = _store_dart_post_cobjectPtr
+ .asFunction();
+
+ Object get_dart_object(
+ int ptr,
+ ) {
+ return _get_dart_object(
+ ptr,
+ );
+ }
+
+ late final _get_dart_objectPtr =
+ _lookup>(
+ 'get_dart_object');
+ late final _get_dart_object =
+ _get_dart_objectPtr.asFunction