diff --git a/.DS_Store b/.DS_Store index da271b7..286ce13 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/flutter/.DS_Store b/flutter/.DS_Store deleted file mode 100644 index e75d9b1..0000000 Binary files a/flutter/.DS_Store and /dev/null differ diff --git a/flutter/android/.idea/.gitignore b/flutter/android/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/flutter/android/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/flutter/android/.idea/compiler.xml b/flutter/android/.idea/compiler.xml deleted file mode 100644 index b589d56..0000000 --- a/flutter/android/.idea/compiler.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/flutter/android/.idea/gradle.xml b/flutter/android/.idea/gradle.xml deleted file mode 100644 index 331ed27..0000000 --- a/flutter/android/.idea/gradle.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/flutter/android/.idea/jarRepositories.xml b/flutter/android/.idea/jarRepositories.xml deleted file mode 100644 index 85dbea4..0000000 --- a/flutter/android/.idea/jarRepositories.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/flutter/android/.idea/kotlinc.xml b/flutter/android/.idea/kotlinc.xml deleted file mode 100644 index 4515aa3..0000000 --- a/flutter/android/.idea/kotlinc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/flutter/android/.idea/misc.xml b/flutter/android/.idea/misc.xml deleted file mode 100644 index 773fe0f..0000000 --- a/flutter/android/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/flutter/android/.idea/vcs.xml b/flutter/android/.idea/vcs.xml deleted file mode 100644 index 6c0b863..0000000 --- a/flutter/android/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/flutter/ios/.DS_Store b/flutter/ios/.DS_Store deleted file mode 100644 index 84bd718..0000000 Binary files a/flutter/ios/.DS_Store and /dev/null differ diff --git a/flutter/ios/Podfile.lock b/flutter/ios/Podfile.lock deleted file mode 100644 index bc541fc..0000000 --- a/flutter/ios/Podfile.lock +++ /dev/null @@ -1,88 +0,0 @@ -PODS: - - Flutter (1.0.0) - - flutter_icmp_ping (0.0.1): - - Flutter - - flutter_inappwebview (0.0.1): - - Flutter - - flutter_inappwebview/Core (= 0.0.1) - - OrderedSet (~> 5.0) - - flutter_inappwebview/Core (0.0.1): - - Flutter - - OrderedSet (~> 5.0) - - fluttertoast (0.0.2): - - Flutter - - Toast - - libphonenumber_plugin (0.0.1): - - Flutter - - PhoneNumberKit - - OrderedSet (5.0.0) - - path_provider_ios (0.0.1): - - Flutter - - PhoneNumberKit (3.7.11): - - PhoneNumberKit/PhoneNumberKitCore (= 3.7.11) - - PhoneNumberKit/UIKit (= 3.7.11) - - PhoneNumberKit/PhoneNumberKitCore (3.7.11) - - PhoneNumberKit/UIKit (3.7.11): - - PhoneNumberKit/PhoneNumberKitCore - - shared_preferences_ios (0.0.1): - - Flutter - - Toast (4.1.1) - - url_launcher_ios (0.0.1): - - Flutter - - webview_flutter_wkwebview (0.0.1): - - Flutter - -DEPENDENCIES: - - Flutter (from `Flutter`) - - flutter_icmp_ping (from `.symlinks/plugins/flutter_icmp_ping/ios`) - - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) - - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - - libphonenumber_plugin (from `.symlinks/plugins/libphonenumber_plugin/ios`) - - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) - - shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`) - - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) - -SPEC REPOS: - trunk: - - OrderedSet - - PhoneNumberKit - - Toast - -EXTERNAL SOURCES: - Flutter: - :path: Flutter - flutter_icmp_ping: - :path: ".symlinks/plugins/flutter_icmp_ping/ios" - flutter_inappwebview: - :path: ".symlinks/plugins/flutter_inappwebview/ios" - fluttertoast: - :path: ".symlinks/plugins/fluttertoast/ios" - libphonenumber_plugin: - :path: ".symlinks/plugins/libphonenumber_plugin/ios" - path_provider_ios: - :path: ".symlinks/plugins/path_provider_ios/ios" - shared_preferences_ios: - :path: ".symlinks/plugins/shared_preferences_ios/ios" - url_launcher_ios: - :path: ".symlinks/plugins/url_launcher_ios/ios" - webview_flutter_wkwebview: - :path: ".symlinks/plugins/webview_flutter_wkwebview/ios" - -SPEC CHECKSUMS: - Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_icmp_ping: 07e508847df7fa9262d050bb0b203de074bbe517 - flutter_inappwebview: acd4fc0f012cefd09015000c241137d82f01ba62 - fluttertoast: 48c57db1b71b0ce9e6bba9f31c940ff4b001293c - libphonenumber_plugin: 48bf4078546377eedaab4aa54978cd0f6fa23072 - OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c - path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02 - PhoneNumberKit: ced55861269312a5e3bc2ef82a58d6255b1c976a - shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad - Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e - url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de - webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f - -PODFILE CHECKSUM: de47e8edb5f824045744e95e4ae955933333d4a0 - -COCOAPODS: 1.15.2 diff --git a/flutter/ios/app.ios-arm64.symbols b/flutter/ios/app.ios-arm64.symbols deleted file mode 100644 index 8503c8d..0000000 Binary files a/flutter/ios/app.ios-arm64.symbols and /dev/null differ diff --git a/flutter/pubspec.lock b/flutter/pubspec.lock deleted file mode 100644 index b438f93..0000000 --- a/flutter/pubspec.lock +++ /dev/null @@ -1,823 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - another_flushbar: - dependency: "direct main" - description: - name: another_flushbar - sha256: "19bf9520230ec40b300aaf9dd2a8fefcb277b25ecd1c4838f530566965befc2a" - url: "https://pub.dev" - source: hosted - version: "1.12.30" - another_transformer_page_view: - dependency: transitive - description: - name: another_transformer_page_view - sha256: a7cd46ede62d621c5abe7e58c7cb2745abe67b3bfec64f59b8889c93d7be7a8e - url: "https://pub.dev" - source: hosted - version: "2.0.1" - async: - dependency: transitive - description: - name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" - source: hosted - version: "2.11.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - characters: - dependency: transitive - description: - name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" - url: "https://pub.dev" - source: hosted - version: "1.3.0" - clock: - dependency: transitive - description: - name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" - source: hosted - version: "1.1.1" - collection: - dependency: transitive - description: - name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a - url: "https://pub.dev" - source: hosted - version: "1.18.0" - convert: - dependency: "direct main" - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crisp: - dependency: "direct main" - description: - name: crisp - sha256: "3e866046776d65f9745e9845e4c348fcebdf7ca067009deb4554950fd41bedad" - url: "https://pub.dev" - source: hosted - version: "0.3.1" - crypto: - dependency: "direct main" - description: - name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab - url: "https://pub.dev" - source: hosted - version: "3.0.3" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons - sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be - url: "https://pub.dev" - source: hosted - version: "1.0.5" - dio: - dependency: "direct main" - description: - name: dio - sha256: e17f6b3097b8c51b72c74c9f071a605c47bcc8893839bd66732457a5ebe73714 - url: "https://pub.dev" - source: hosted - version: "5.5.0+1" - dio_web_adapter: - dependency: transitive - description: - name: dio_web_adapter - sha256: "36c5b2d79eb17cdae41e974b7a8284fec631651d2a6f39a8a2ff22327e90aeac" - url: "https://pub.dev" - source: hosted - version: "1.0.1" - equatable: - dependency: transitive - description: - name: equatable - sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 - url: "https://pub.dev" - source: hosted - version: "2.0.5" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - ffi: - dependency: transitive - description: - name: ffi - sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 - url: "https://pub.dev" - source: hosted - version: "2.0.1" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - fluro: - dependency: "direct main" - description: - name: fluro - sha256: "66d82964a1b6967def34155de92f7bb87ee247aba53ea5dbb70e2bf206865dbc" - url: "https://pub.dev" - source: hosted - version: "2.0.4" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_easyrefresh: - dependency: "direct main" - description: - name: flutter_easyrefresh - sha256: "5d161ee5dcac34da9065116568147d742dd25fb9bff3b10024d9054b195087ad" - url: "https://pub.dev" - source: hosted - version: "2.2.2" - flutter_icmp_ping: - dependency: "direct main" - description: - name: flutter_icmp_ping - sha256: b3c2ed75d2429d32e54c04c153dd5605ffba10124a5208a9906759d4cd4822cd - url: "https://pub.dev" - source: hosted - version: "3.1.1" - flutter_inappwebview: - dependency: transitive - description: - name: flutter_inappwebview - sha256: d28043f7d2a4708bc3b1656278739d738fa0412c80121572f73e875bc1fd8ece - url: "https://pub.dev" - source: hosted - version: "5.7.2+2" - flutter_lints: - dependency: "direct dev" - description: - name: flutter_lints - sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c - url: "https://pub.dev" - source: hosted - version: "2.0.1" - flutter_localizations: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_login: - dependency: "direct main" - description: - name: flutter_login - sha256: "1f7c46d0d76081cf4c5180e3a265b1f5b1d7e48c81859f58f03a8dcd27338b85" - url: "https://pub.dev" - source: hosted - version: "5.0.0" - flutter_screenutil: - dependency: "direct main" - description: - name: flutter_screenutil - sha256: "8239210dd68bee6b0577aa4a090890342d04a136ce1c81f98ee513fc0ce891de" - url: "https://pub.dev" - source: hosted - version: "5.9.3" - flutter_svg: - dependency: "direct main" - description: - name: flutter_svg - sha256: cbf529d563dd910a249041bde2a0dfc3cf62280fcc459b85f3d614b2ab73abb3 - url: "https://pub.dev" - source: hosted - version: "0.23.0+1" - flutter_swiper_plus: - dependency: "direct main" - description: - name: flutter_swiper_plus - sha256: cf2e39b230c570f6bdb87f8a19d1c94be47441ffacb09ddc371c7a628e0dbe6a - url: "https://pub.dev" - source: hosted - version: "2.0.4" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - fluttertoast: - dependency: "direct main" - description: - name: fluttertoast - sha256: "7cc92eabe01e3f1babe1571c5560b135dfc762a34e41e9056881e2196b178ec1" - url: "https://pub.dev" - source: hosted - version: "8.1.2" - font_awesome_flutter: - dependency: transitive - description: - name: font_awesome_flutter - sha256: "959ef4add147753f990b4a7c6cccb746d5792dbdc81b1cde99e62e7edb31b206" - url: "https://pub.dev" - source: hosted - version: "10.4.0" - get: - dependency: "direct main" - description: - name: get - sha256: "2ba20a47c8f1f233bed775ba2dd0d3ac97b4cf32fc17731b3dfc672b06b0e92a" - url: "https://pub.dev" - source: hosted - version: "4.6.5" - google_fonts: - dependency: "direct main" - description: - name: google_fonts - sha256: db5efba8106bd784a92c96cfd81716f4e06baab54e37de858488e9a00a764cad - url: "https://pub.dev" - source: hosted - version: "5.0.0" - http: - dependency: transitive - description: - name: http - sha256: "4c3f04bfb64d3efd508d06b41b825542f08122d30bda4933fb95c069d22a4fa3" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - intl: - dependency: "direct main" - description: - name: intl - sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf - url: "https://pub.dev" - source: hosted - version: "0.19.0" - intl_phone_number_input: - dependency: transitive - description: - name: intl_phone_number_input - sha256: "1c4328713a9503ab26a1fdbb6b00b4cada68c18aac922b35bedbc72eff1297c3" - url: "https://pub.dev" - source: hosted - version: "0.7.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" - url: "https://pub.dev" - source: hosted - version: "10.0.4" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" - url: "https://pub.dev" - source: hosted - version: "3.0.3" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - libphonenumber_platform_interface: - dependency: transitive - description: - name: libphonenumber_platform_interface - sha256: f801f6c65523f56504b83f0890e6dad584ab3a7507dca65fec0eed640afea40f - url: "https://pub.dev" - source: hosted - version: "0.4.2" - libphonenumber_plugin: - dependency: transitive - description: - name: libphonenumber_plugin - sha256: c615021d9816fbda2b2587881019ed595ecdf54d999652d7e4cce0e1f026368c - url: "https://pub.dev" - source: hosted - version: "0.3.3" - libphonenumber_web: - dependency: transitive - description: - name: libphonenumber_web - sha256: "8186f420dbe97c3132283e52819daff1e55d60d6db46f7ea5ac42f42a28cc2ef" - url: "https://pub.dev" - source: hosted - version: "0.3.2" - lints: - dependency: transitive - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - matcher: - dependency: transitive - description: - name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb - url: "https://pub.dev" - source: hosted - version: "0.12.16+1" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" - url: "https://pub.dev" - source: hosted - version: "0.8.0" - meta: - dependency: "direct main" - description: - name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" - url: "https://pub.dev" - source: hosted - version: "1.12.0" - modal_bottom_sheet: - dependency: "direct main" - description: - name: modal_bottom_sheet - sha256: "3bba63c62d35c931bce7f8ae23a47f9a05836d8cb3c11122ada64e0b2f3d718f" - url: "https://pub.dev" - source: hosted - version: "3.0.0-pre" - nested: - dependency: transitive - description: - name: nested - sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - path: - dependency: transitive - description: - name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - path_drawing: - dependency: transitive - description: - name: path_drawing - sha256: "3bdd251dae9ffaef944450b73f168610db7e968e7b20daf0c3907f8b4aafc8a2" - url: "https://pub.dev" - source: hosted - version: "0.5.1+1" - path_parsing: - dependency: transitive - description: - name: path_parsing - sha256: ee5c47c1058ad66b4a41746ec3996af9593d0858872807bcd64ac118f0700337 - url: "https://pub.dev" - source: hosted - version: "0.2.1" - path_provider: - dependency: "direct main" - description: - name: path_provider - sha256: "050e8e85e4b7fecdf2bb3682c1c64c4887a183720c802d323de8a5fd76d372dd" - url: "https://pub.dev" - source: hosted - version: "2.0.11" - path_provider_android: - dependency: transitive - description: - name: path_provider_android - sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e - url: "https://pub.dev" - source: hosted - version: "2.0.22" - path_provider_ios: - dependency: transitive - description: - name: path_provider_ios - sha256: "03d639406f5343478352433f00d3c4394d52dac8df3d847869c5e2333e0bbce8" - url: "https://pub.dev" - source: hosted - version: "2.0.11" - path_provider_linux: - dependency: transitive - description: - name: path_provider_linux - sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 - url: "https://pub.dev" - source: hosted - version: "2.1.7" - path_provider_macos: - dependency: transitive - description: - name: path_provider_macos - sha256: "2a97e7fbb7ae9dcd0dfc1220a78e9ec3e71da691912e617e8715ff2a13086ae8" - url: "https://pub.dev" - source: hosted - version: "2.0.6" - path_provider_platform_interface: - dependency: transitive - description: - name: path_provider_platform_interface - sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76 - url: "https://pub.dev" - source: hosted - version: "2.0.5" - path_provider_windows: - dependency: transitive - description: - name: path_provider_windows - sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c - url: "https://pub.dev" - source: hosted - version: "2.1.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 - url: "https://pub.dev" - source: hosted - version: "5.4.0" - phone_numbers_parser: - dependency: transitive - description: - name: phone_numbers_parser - sha256: "62451b689d842791ed1fd5dc9eacf36ffa8bad23a78ad6cde732dc2fb222fae2" - url: "https://pub.dev" - source: hosted - version: "8.3.0" - platform: - dependency: transitive - description: - name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "2.1.8" - process: - dependency: transitive - description: - name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" - url: "https://pub.dev" - source: hosted - version: "4.2.4" - provider: - dependency: "direct main" - description: - name: provider - sha256: e1e7413d70444ea3096815a60fe5da1b11bda8a9dc4769252cc82c53536f8bcc - url: "https://pub.dev" - source: hosted - version: "6.0.4" - quiver: - dependency: transitive - description: - name: quiver - sha256: "93982981971e812c94d4a6fa3a57b89f9ec12b38b6380cd3c1370c3b01e4580e" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - shared_preferences: - dependency: "direct main" - description: - name: shared_preferences - sha256: "76917b7d4b9526b2ba416808a7eb9fb2863c1a09cf63ec85f1453da240fa818a" - url: "https://pub.dev" - source: hosted - version: "2.0.15" - shared_preferences_android: - dependency: transitive - description: - name: shared_preferences_android - sha256: "8e251f3c986002b65fed6396bce81f379fb63c27317d49743cf289fd0fd1ab97" - url: "https://pub.dev" - source: hosted - version: "2.0.14" - shared_preferences_ios: - dependency: transitive - description: - name: shared_preferences_ios - sha256: "585a14cefec7da8c9c2fb8cd283a3bb726b4155c0952afe6a0caaa7b2272de34" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - shared_preferences_linux: - dependency: transitive - description: - name: shared_preferences_linux - sha256: "28aefc1261746e7bad3d09799496054beb84e8c4ffcdfed7734e17b4ada459a5" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - shared_preferences_macos: - dependency: transitive - description: - name: shared_preferences_macos - sha256: fbb94bf296576f49be37a1496d5951796211a8db0aa22cc0d68c46440dad808c - url: "https://pub.dev" - source: hosted - version: "2.0.4" - shared_preferences_platform_interface: - dependency: transitive - description: - name: shared_preferences_platform_interface - sha256: da9431745ede5ece47bc26d5d73a9d3c6936ef6945c101a5aca46f62e52c1cf3 - url: "https://pub.dev" - source: hosted - version: "2.1.0" - shared_preferences_web: - dependency: transitive - description: - name: shared_preferences_web - sha256: a4b5bc37fe1b368bbc81f953197d55e12f49d0296e7e412dfe2d2d77d6929958 - url: "https://pub.dev" - source: hosted - version: "2.0.4" - shared_preferences_windows: - dependency: transitive - description: - name: shared_preferences_windows - sha256: "97f7ab9a7da96d9cf19581f5de520ceb529548498bd6b5e0ccd02d68a0d15eba" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - sign_in_button: - dependency: transitive - description: - name: sign_in_button - sha256: "977b9b0415d2f3909e642275dfabba7919ba8e111324641b76cae6d1acbd183e" - url: "https://pub.dev" - source: hosted - version: "3.2.0" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.99" - source_span: - dependency: transitive - description: - name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" - url: "https://pub.dev" - source: hosted - version: "1.10.0" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" - url: "https://pub.dev" - source: hosted - version: "1.11.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 - url: "https://pub.dev" - source: hosted - version: "2.1.2" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - sync_http: - dependency: "direct main" - description: - name: sync_http - sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" - url: "https://pub.dev" - source: hosted - version: "0.3.1" - synchronized: - dependency: "direct main" - description: - name: synchronized - sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" - url: "https://pub.dev" - source: hosted - version: "0.7.0" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - url_launcher: - dependency: "direct main" - description: - name: url_launcher - sha256: eb1e00ab44303d50dd487aab67ebc575456c146c6af44422f9c13889984c00f3 - url: "https://pub.dev" - source: hosted - version: "6.1.11" - url_launcher_android: - dependency: transitive - description: - name: url_launcher_android - sha256: "6f91d30ce9060c204b2dbe728adb300750fa4b228e8f7ed1b961aa1ceb728799" - url: "https://pub.dev" - source: hosted - version: "6.0.22" - url_launcher_ios: - dependency: transitive - description: - name: url_launcher_ios - sha256: "6ba7dddee26c9fae27c9203c424631109d73c8fa26cfa7bc3e35e751cb87f62e" - url: "https://pub.dev" - source: hosted - version: "6.0.17" - url_launcher_linux: - dependency: transitive - description: - name: url_launcher_linux - sha256: "360fa359ab06bcb4f7c5cd3123a2a9a4d3364d4575d27c4b33468bd4497dd094" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - url_launcher_macos: - dependency: transitive - description: - name: url_launcher_macos - sha256: a9b3ea9043eabfaadfa3fb89de67a11210d85569086d22b3854484beab8b3978 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - url_launcher_platform_interface: - dependency: transitive - description: - name: url_launcher_platform_interface - sha256: "4eae912628763eb48fc214522e58e942fd16ce195407dbf45638239523c759a6" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - url_launcher_web: - dependency: transitive - description: - name: url_launcher_web - sha256: "5669882643b96bb6d5786637cac727c6e918a790053b09245fd4513b8a07df2a" - url: "https://pub.dev" - source: hosted - version: "2.0.13" - url_launcher_windows: - dependency: transitive - description: - name: url_launcher_windows - sha256: e3c3b16d3104260c10eea3b0e34272aaa57921f83148b0619f74c2eced9b7ef1 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" - url: "https://pub.dev" - source: hosted - version: "14.2.1" - webview_flutter: - dependency: "direct main" - description: - name: webview_flutter - sha256: "392c1d83b70fe2495de3ea2c84531268d5b8de2de3f01086a53334d8b6030a88" - url: "https://pub.dev" - source: hosted - version: "3.0.4" - webview_flutter_android: - dependency: transitive - description: - name: webview_flutter_android - sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd" - url: "https://pub.dev" - source: hosted - version: "2.10.4" - webview_flutter_platform_interface: - dependency: transitive - description: - name: webview_flutter_platform_interface - sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf" - url: "https://pub.dev" - source: hosted - version: "1.9.5" - webview_flutter_wkwebview: - dependency: transitive - description: - name: webview_flutter_wkwebview - sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0 - url: "https://pub.dev" - source: hosted - version: "2.9.5" - win32: - dependency: transitive - description: - name: win32 - sha256: ca121dbbadb3e43b449053feab0cdf3f2bff93b107cacf0290e3d29f717374b6 - url: "https://pub.dev" - source: hosted - version: "3.1.2" - xdg_directories: - dependency: transitive - description: - name: xdg_directories - sha256: "11541eedefbcaec9de35aa82650b695297ce668662bbd6e3911a7fabdbde589f" - url: "https://pub.dev" - source: hosted - version: "0.2.0+2" - xml: - dependency: transitive - description: - name: xml - sha256: "80d494c09849dc3f899d227a78c30c5b949b985ededf884cb3f3bcd39f4b447a" - url: "https://pub.dev" - source: hosted - version: "5.4.1" -sdks: - dart: ">=3.3.0 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" diff --git a/flutter/uuvpn.iml b/flutter/uuvpn.iml deleted file mode 100644 index f66303d..0000000 --- a/flutter/uuvpn.iml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/flutter/LICENSE b/source/LICENSE similarity index 100% rename from flutter/LICENSE rename to source/LICENSE diff --git a/flutter/analysis_options.yaml b/source/analysis_options.yaml similarity index 100% rename from flutter/analysis_options.yaml rename to source/analysis_options.yaml diff --git a/flutter/android/.gitignore b/source/android/.gitignore similarity index 100% rename from flutter/android/.gitignore rename to source/android/.gitignore diff --git a/flutter/android/app/build.gradle b/source/android/app/build.gradle similarity index 100% rename from flutter/android/app/build.gradle rename to source/android/app/build.gradle diff --git a/flutter/android/app/profile/output-metadata.json b/source/android/app/profile/output-metadata.json similarity index 100% rename from flutter/android/app/profile/output-metadata.json rename to source/android/app/profile/output-metadata.json diff --git a/flutter/android/app/src/debug/AndroidManifest.xml b/source/android/app/src/debug/AndroidManifest.xml similarity index 100% rename from flutter/android/app/src/debug/AndroidManifest.xml rename to source/android/app/src/debug/AndroidManifest.xml diff --git a/flutter/android/app/src/main/AndroidManifest.xml b/source/android/app/src/main/AndroidManifest.xml similarity index 100% rename from flutter/android/app/src/main/AndroidManifest.xml rename to source/android/app/src/main/AndroidManifest.xml diff --git a/flutter/android/app/src/main/jniLibs/arm64-v8a/libleaf.so b/source/android/app/src/main/jniLibs/arm64-v8a/libleaf.so similarity index 100% rename from flutter/android/app/src/main/jniLibs/arm64-v8a/libleaf.so rename to source/android/app/src/main/jniLibs/arm64-v8a/libleaf.so diff --git a/flutter/android/app/src/main/jniLibs/armeabi/libleaf.so b/source/android/app/src/main/jniLibs/armeabi/libleaf.so similarity index 100% rename from flutter/android/app/src/main/jniLibs/armeabi/libleaf.so rename to source/android/app/src/main/jniLibs/armeabi/libleaf.so diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt similarity index 100% rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt diff --git a/flutter/android/app/src/main/res/drawable-v21/launch_background.xml b/source/android/app/src/main/res/drawable-v21/launch_background.xml similarity index 100% rename from flutter/android/app/src/main/res/drawable-v21/launch_background.xml rename to source/android/app/src/main/res/drawable-v21/launch_background.xml diff --git a/flutter/android/app/src/main/res/drawable/launch_background.xml b/source/android/app/src/main/res/drawable/launch_background.xml similarity index 100% rename from flutter/android/app/src/main/res/drawable/launch_background.xml rename to source/android/app/src/main/res/drawable/launch_background.xml diff --git a/flutter/android/app/src/main/res/mipmap-hdpi/app_icon.png b/source/android/app/src/main/res/mipmap-hdpi/app_icon.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-hdpi/app_icon.png rename to source/android/app/src/main/res/mipmap-hdpi/app_icon.png diff --git a/flutter/android/app/src/main/res/mipmap-hdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-hdpi/app_icon_round.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-hdpi/app_icon_round.png rename to source/android/app/src/main/res/mipmap-hdpi/app_icon_round.png diff --git a/flutter/android/app/src/main/res/mipmap-ldpi/app_icon.png b/source/android/app/src/main/res/mipmap-ldpi/app_icon.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-ldpi/app_icon.png rename to source/android/app/src/main/res/mipmap-ldpi/app_icon.png diff --git a/flutter/android/app/src/main/res/mipmap-ldpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-ldpi/app_icon_round.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-ldpi/app_icon_round.png rename to source/android/app/src/main/res/mipmap-ldpi/app_icon_round.png diff --git a/flutter/android/app/src/main/res/mipmap-mdpi/app_icon.png b/source/android/app/src/main/res/mipmap-mdpi/app_icon.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-mdpi/app_icon.png rename to source/android/app/src/main/res/mipmap-mdpi/app_icon.png diff --git a/flutter/android/app/src/main/res/mipmap-mdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-mdpi/app_icon_round.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-mdpi/app_icon_round.png rename to source/android/app/src/main/res/mipmap-mdpi/app_icon_round.png diff --git a/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon.png b/source/android/app/src/main/res/mipmap-xhdpi/app_icon.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-xhdpi/app_icon.png rename to source/android/app/src/main/res/mipmap-xhdpi/app_icon.png diff --git a/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png rename to source/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png diff --git a/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon.png b/source/android/app/src/main/res/mipmap-xxhdpi/app_icon.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon.png rename to source/android/app/src/main/res/mipmap-xxhdpi/app_icon.png diff --git a/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png rename to source/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png diff --git a/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png b/source/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png rename to source/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png diff --git a/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png similarity index 100% rename from flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png rename to source/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png diff --git a/flutter/android/app/src/main/res/values-night/styles.xml b/source/android/app/src/main/res/values-night/styles.xml similarity index 100% rename from flutter/android/app/src/main/res/values-night/styles.xml rename to source/android/app/src/main/res/values-night/styles.xml diff --git a/flutter/android/app/src/main/res/values/styles.xml b/source/android/app/src/main/res/values/styles.xml similarity index 100% rename from flutter/android/app/src/main/res/values/styles.xml rename to source/android/app/src/main/res/values/styles.xml diff --git a/flutter/android/app/src/profile/AndroidManifest.xml b/source/android/app/src/profile/AndroidManifest.xml similarity index 100% rename from flutter/android/app/src/profile/AndroidManifest.xml rename to source/android/app/src/profile/AndroidManifest.xml diff --git a/flutter/android/build.gradle b/source/android/build.gradle similarity index 100% rename from flutter/android/build.gradle rename to source/android/build.gradle diff --git a/flutter/android/gradle.properties b/source/android/gradle.properties similarity index 100% rename from flutter/android/gradle.properties rename to source/android/gradle.properties diff --git a/flutter/android/gradle/wrapper/gradle-wrapper.properties b/source/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from flutter/android/gradle/wrapper/gradle-wrapper.properties rename to source/android/gradle/wrapper/gradle-wrapper.properties diff --git a/flutter/android/settings.gradle b/source/android/settings.gradle similarity index 100% rename from flutter/android/settings.gradle rename to source/android/settings.gradle diff --git a/flutter/assets/Features.svg b/source/assets/Features.svg similarity index 100% rename from flutter/assets/Features.svg rename to source/assets/Features.svg diff --git a/flutter/assets/active.svg b/source/assets/active.svg similarity index 100% rename from flutter/assets/active.svg rename to source/assets/active.svg diff --git a/flutter/assets/flags/Germany.png b/source/assets/flags/Germany.png similarity index 100% rename from flutter/assets/flags/Germany.png rename to source/assets/flags/Germany.png diff --git a/flutter/assets/flags/Japan.png b/source/assets/flags/Japan.png similarity index 100% rename from flutter/assets/flags/Japan.png rename to source/assets/flags/Japan.png diff --git a/flutter/assets/flags/UK.png b/source/assets/flags/UK.png similarity index 100% rename from flutter/assets/flags/UK.png rename to source/assets/flags/UK.png diff --git a/flutter/assets/flags/United States.png b/source/assets/flags/United States.png similarity index 100% rename from flutter/assets/flags/United States.png rename to source/assets/flags/United States.png diff --git a/flutter/assets/flags/hk.svg b/source/assets/flags/hk.svg similarity index 100% rename from flutter/assets/flags/hk.svg rename to source/assets/flags/hk.svg diff --git a/flutter/assets/flags/jp.svg b/source/assets/flags/jp.svg similarity index 100% rename from flutter/assets/flags/jp.svg rename to source/assets/flags/jp.svg diff --git a/flutter/assets/flags/tw.svg b/source/assets/flags/tw.svg similarity index 100% rename from flutter/assets/flags/tw.svg rename to source/assets/flags/tw.svg diff --git a/flutter/assets/flags/us.svg b/source/assets/flags/us.svg similarity index 100% rename from flutter/assets/flags/us.svg rename to source/assets/flags/us.svg diff --git a/flutter/assets/font/Aquire.otf b/source/assets/font/Aquire.otf similarity index 100% rename from flutter/assets/font/Aquire.otf rename to source/assets/font/Aquire.otf diff --git a/flutter/assets/history.svg b/source/assets/history.svg similarity index 100% rename from flutter/assets/history.svg rename to source/assets/history.svg diff --git a/flutter/assets/home.svg b/source/assets/home.svg similarity index 100% rename from flutter/assets/home.svg rename to source/assets/home.svg diff --git a/flutter/assets/id.svg b/source/assets/id.svg similarity index 100% rename from flutter/assets/id.svg rename to source/assets/id.svg diff --git a/flutter/assets/logo.svg b/source/assets/logo.svg similarity index 100% rename from flutter/assets/logo.svg rename to source/assets/logo.svg diff --git a/flutter/assets/logo2.png b/source/assets/logo2.png similarity index 100% rename from flutter/assets/logo2.png rename to source/assets/logo2.png diff --git a/flutter/assets/logo2.svg b/source/assets/logo2.svg similarity index 100% rename from flutter/assets/logo2.svg rename to source/assets/logo2.svg diff --git a/flutter/assets/map.png b/source/assets/map.png similarity index 100% rename from flutter/assets/map.png rename to source/assets/map.png diff --git a/flutter/assets/map.svg b/source/assets/map.svg similarity index 100% rename from flutter/assets/map.svg rename to source/assets/map.svg diff --git a/flutter/assets/powOn.svg b/source/assets/powOn.svg similarity index 100% rename from flutter/assets/powOn.svg rename to source/assets/powOn.svg diff --git a/flutter/assets/profile.svg b/source/assets/profile.svg similarity index 100% rename from flutter/assets/profile.svg rename to source/assets/profile.svg diff --git a/flutter/assets/settings.svg b/source/assets/settings.svg similarity index 100% rename from flutter/assets/settings.svg rename to source/assets/settings.svg diff --git a/flutter/assets/text2.svg b/source/assets/text2.svg similarity index 100% rename from flutter/assets/text2.svg rename to source/assets/text2.svg diff --git a/flutter/ios/.gitattributes b/source/ios/.gitattributes similarity index 100% rename from flutter/ios/.gitattributes rename to source/ios/.gitattributes diff --git a/flutter/ios/.gitignore b/source/ios/.gitignore similarity index 100% rename from flutter/ios/.gitignore rename to source/ios/.gitignore diff --git a/source/ios/Flutter.framework/Flutter b/source/ios/Flutter.framework/Flutter new file mode 100644 index 0000000..9e7f18a Binary files /dev/null and b/source/ios/Flutter.framework/Flutter differ diff --git a/source/ios/Flutter.framework/Headers/Flutter.h b/source/ios/Flutter.framework/Headers/Flutter.h new file mode 100644 index 0000000..705dfcb --- /dev/null +++ b/source/ios/Flutter.framework/Headers/Flutter.h @@ -0,0 +1,24 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTER_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTER_H_ + +#import "FlutterAppDelegate.h" +#import "FlutterBinaryMessenger.h" +#import "FlutterCallbackCache.h" +#import "FlutterChannels.h" +#import "FlutterCodecs.h" +#import "FlutterDartProject.h" +#import "FlutterEngine.h" +#import "FlutterEngineGroup.h" +#import "FlutterHeadlessDartRunner.h" +#import "FlutterMacros.h" +#import "FlutterPlatformViews.h" +#import "FlutterPlugin.h" +#import "FlutterPluginAppLifeCycleDelegate.h" +#import "FlutterTexture.h" +#import "FlutterViewController.h" + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTER_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterAppDelegate.h b/source/ios/Flutter.framework/Headers/FlutterAppDelegate.h new file mode 100644 index 0000000..0c427c2 --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterAppDelegate.h @@ -0,0 +1,34 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERAPPDELEGATE_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERAPPDELEGATE_H_ + +#import + +#import "FlutterMacros.h" +#import "FlutterPlugin.h" + +/** + * `UIApplicationDelegate` subclass for simple apps that want default behavior. + * + * This class implements the following behaviors: + * * Status bar touches are forwarded to the key window's root view + * `FlutterViewController`, in order to trigger scroll to top. + * * Keeps the Flutter connection open in debug mode when the phone screen + * locks. + * + * App delegates for Flutter applications are *not* required to inherit from + * this class. Developers of custom app delegate classes should copy and paste + * code as necessary from FlutterAppDelegate.mm. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterAppDelegate + : UIResponder + +@property(strong, nonatomic) UIWindow* window; + +@end + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERAPPDELEGATE_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterBinaryMessenger.h b/source/ios/Flutter.framework/Headers/FlutterBinaryMessenger.h new file mode 100644 index 0000000..eb0186f --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterBinaryMessenger.h @@ -0,0 +1,106 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERBINARYMESSENGER_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERBINARYMESSENGER_H_ + +#import + +#import "FlutterMacros.h" + +NS_ASSUME_NONNULL_BEGIN +/** + * A message reply callback. + * + * Used for submitting a binary reply back to a Flutter message sender. Also used + * in for handling a binary message reply received from Flutter. + * + * @param reply The reply. + */ +typedef void (^FlutterBinaryReply)(NSData* _Nullable reply); + +/** + * A strategy for handling incoming binary messages from Flutter and to send + * asynchronous replies back to Flutter. + * + * @param message The message. + * @param reply A callback for submitting an asynchronous reply to the sender. + */ +typedef void (^FlutterBinaryMessageHandler)(NSData* _Nullable message, FlutterBinaryReply reply); + +typedef int64_t FlutterBinaryMessengerConnection; + +@protocol FlutterTaskQueue +@end + +/** + * A facility for communicating with the Flutter side using asynchronous message + * passing with binary messages. + * + * Implementated by: + * - `FlutterBasicMessageChannel`, which supports communication using structured + * messages. + * - `FlutterMethodChannel`, which supports communication using asynchronous + * method calls. + * - `FlutterEventChannel`, which supports commuication using event streams. + */ +FLUTTER_DARWIN_EXPORT +@protocol FlutterBinaryMessenger +/// TODO(gaaclarke): Remove optional when macos supports Background Platform Channels. +@optional +- (NSObject*)makeBackgroundTaskQueue; + +- (FlutterBinaryMessengerConnection) + setMessageHandlerOnChannel:(NSString*)channel + binaryMessageHandler:(FlutterBinaryMessageHandler _Nullable)handler + taskQueue:(NSObject* _Nullable)taskQueue; + +@required +/** + * Sends a binary message to the Flutter side on the specified channel, expecting + * no reply. + * + * @param channel The channel name. + * @param message The message. + */ +- (void)sendOnChannel:(NSString*)channel message:(NSData* _Nullable)message; + +/** + * Sends a binary message to the Flutter side on the specified channel, expecting + * an asynchronous reply. + * + * @param channel The channel name. + * @param message The message. + * @param callback A callback for receiving a reply. + */ +- (void)sendOnChannel:(NSString*)channel + message:(NSData* _Nullable)message + binaryReply:(FlutterBinaryReply _Nullable)callback; + +/** + * Registers a message handler for incoming binary messages from the Flutter side + * on the specified channel. + * + * Replaces any existing handler. Use a `nil` handler for unregistering the + * existing handler. + * + * @param channel The channel name. + * @param handler The message handler. + * @return An identifier that represents the connection that was just created to the channel. + */ +- (FlutterBinaryMessengerConnection)setMessageHandlerOnChannel:(NSString*)channel + binaryMessageHandler: + (FlutterBinaryMessageHandler _Nullable)handler; + +/** + * Clears out a channel's message handler if that handler is still the one that + * was created as a result of + * `setMessageHandlerOnChannel:binaryMessageHandler:`. + * + * @param connection The result from `setMessageHandlerOnChannel:binaryMessageHandler:`. + */ +- (void)cleanUpConnection:(FlutterBinaryMessengerConnection)connection; +@end +NS_ASSUME_NONNULL_END +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERBINARYMESSENGER_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterCallbackCache.h b/source/ios/Flutter.framework/Headers/FlutterCallbackCache.h new file mode 100644 index 0000000..b6e331d --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterCallbackCache.h @@ -0,0 +1,54 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERCALLBACKCACHE_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERCALLBACKCACHE_H_ + +#import + +#import "FlutterMacros.h" + +/** + * An object containing the result of `FlutterCallbackCache`'s `lookupCallbackInformation` + * method. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterCallbackInformation : NSObject +/** + * The name of the callback. + */ +@property(copy) NSString* callbackName; +/** + * The class name of the callback. + */ +@property(copy) NSString* callbackClassName; +/** + * The library path of the callback. + */ +@property(copy) NSString* callbackLibraryPath; +@end + +/** + * The cache containing callback information for spawning a + * `FlutterHeadlessDartRunner`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterCallbackCache : NSObject +/** + * Returns the callback information for the given callback handle. + * This callback information can be used when spawning a + * `FlutterHeadlessDartRunner`. + * + * @param handle The handle for a callback, provided by the + * Dart method `PluginUtilities.getCallbackHandle`. + * @return A `FlutterCallbackInformation` object which contains the name of the + * callback, the name of the class in which the callback is defined, and the + * path of the library which contains the callback. If the provided handle is + * invalid, nil is returned. + */ ++ (FlutterCallbackInformation*)lookupCallbackInformation:(int64_t)handle; + +@end + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERCALLBACKCACHE_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterChannels.h b/source/ios/Flutter.framework/Headers/FlutterChannels.h new file mode 100644 index 0000000..b88b78a --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterChannels.h @@ -0,0 +1,487 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCHANNELS_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCHANNELS_H_ + +#import "FlutterBinaryMessenger.h" +#import "FlutterCodecs.h" + +NS_ASSUME_NONNULL_BEGIN +/** + * A message reply callback. + * + * Used for submitting a reply back to a Flutter message sender. Also used in + * the dual capacity for handling a message reply received from Flutter. + * + * @param reply The reply. + */ +typedef void (^FlutterReply)(id _Nullable reply); + +/** + * A strategy for handling incoming messages from Flutter and to send + * asynchronous replies back to Flutter. + * + * @param message The message. + * @param callback A callback for submitting a reply to the sender which can be invoked from any + * thread. + */ +typedef void (^FlutterMessageHandler)(id _Nullable message, FlutterReply callback); + +/** + * A channel for communicating with the Flutter side using basic, asynchronous + * message passing. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterBasicMessageChannel : NSObject +/** + * Creates a `FlutterBasicMessageChannel` with the specified name and binary + * messenger. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * The channel uses `FlutterStandardMessageCodec` to encode and decode messages. + * + * @param name The channel name. + * @param messenger The binary messenger. + */ ++ (instancetype)messageChannelWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger; + +/** + * Creates a `FlutterBasicMessageChannel` with the specified name, binary + * messenger, and message codec. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The message codec. + */ ++ (instancetype)messageChannelWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec; + +/** + * Initializes a `FlutterBasicMessageChannel` with the specified name, binary + * messenger, and message codec. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The message codec. + */ +- (instancetype)initWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec; + +/** + * Initializes a `FlutterBasicMessageChannel` with the specified name, binary + * messenger, and message codec. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The message codec. + * @param taskQueue The FlutterTaskQueue that executes the handler (see + -[FlutterBinaryMessenger makeBackgroundTaskQueue]). + */ +- (instancetype)initWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec + taskQueue:(NSObject* _Nullable)taskQueue; + +/** + * Sends the specified message to the Flutter side, ignoring any reply. + * + * @param message The message. Must be supported by the codec of this + * channel. + */ +- (void)sendMessage:(id _Nullable)message; + +/** + * Sends the specified message to the Flutter side, expecting an asynchronous + * reply. + * + * @param message The message. Must be supported by the codec of this channel. + * @param callback A callback to be invoked with the message reply from Flutter. + */ +- (void)sendMessage:(id _Nullable)message reply:(FlutterReply _Nullable)callback; + +/** + * Registers a message handler with this channel. + * + * Replaces any existing handler. Use a `nil` handler for unregistering the + * existing handler. + * + * @param handler The message handler. + */ +- (void)setMessageHandler:(FlutterMessageHandler _Nullable)handler; + +/** + * Adjusts the number of messages that will get buffered when sending messages to + * channels that aren't fully set up yet. For example, the engine isn't running + * yet or the channel's message handler isn't set up on the Dart side yet. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param newSize The number of messages that will get buffered. + */ ++ (void)resizeChannelWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + size:(NSInteger)newSize; + +/** + * Adjusts the number of messages that will get buffered when sending messages to + * channels that aren't fully set up yet. For example, the engine isn't running + * yet or the channel's message handler isn't set up on the Dart side yet. + * + * @param newSize The number of messages that will get buffered. + */ +- (void)resizeChannelBuffer:(NSInteger)newSize; + +/** + * Defines whether the channel should show warning messages when discarding messages + * due to overflow. + * + * @param warns When false, the channel is expected to overflow and warning messages + * will not be shown. + * @param name The channel name. + * @param messenger The binary messenger. + */ ++ (void)setWarnsOnOverflow:(BOOL)warns + forChannelWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger; + +/** + * Defines whether the channel should show warning messages when discarding messages + * due to overflow. + * + * @param warns When false, the channel is expected to overflow and warning messages + * will not be shown. + */ +- (void)setWarnsOnOverflow:(BOOL)warns; + +@end + +/** + * A method call result callback. + * + * Used for submitting a method call result back to a Flutter caller. Also used in + * the dual capacity for handling a method call result received from Flutter. + * + * @param result The result. + */ +typedef void (^FlutterResult)(id _Nullable result); + +/** + * A strategy for handling method calls. + * + * @param call The incoming method call. + * @param result A callback to asynchronously submit the result of the call. + * Invoke the callback with a `FlutterError` to indicate that the call failed. + * Invoke the callback with `FlutterMethodNotImplemented` to indicate that the + * method was unknown. Any other values, including `nil`, are interpreted as + * successful results. This can be invoked from any thread. + */ +typedef void (^FlutterMethodCallHandler)(FlutterMethodCall* call, FlutterResult result); + +/** + * A constant used with `FlutterMethodCallHandler` to respond to the call of an + * unknown method. + */ +FLUTTER_DARWIN_EXPORT +extern NSObject const* FlutterMethodNotImplemented; + +/** + * A channel for communicating with the Flutter side using invocation of + * asynchronous methods. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterMethodChannel : NSObject +/** + * Creates a `FlutterMethodChannel` with the specified name and binary messenger. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * The channel uses `FlutterStandardMethodCodec` to encode and decode method calls + * and result envelopes. + * + * @param name The channel name. + * @param messenger The binary messenger. + */ ++ (instancetype)methodChannelWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger; + +/** + * Creates a `FlutterMethodChannel` with the specified name, binary messenger, and + * method codec. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The method codec. + */ ++ (instancetype)methodChannelWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec; + +/** + * Initializes a `FlutterMethodChannel` with the specified name, binary messenger, + * and method codec. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The method codec. + */ +- (instancetype)initWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec; + +/** + * Initializes a `FlutterMethodChannel` with the specified name, binary messenger, + * method codec, and task queue. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The method codec. + * @param taskQueue The FlutterTaskQueue that executes the handler (see + -[FlutterBinaryMessenger makeBackgroundTaskQueue]). + */ +- (instancetype)initWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec + taskQueue:(NSObject* _Nullable)taskQueue; + +// clang-format off +/** + * Invokes the specified Flutter method with the specified arguments, expecting + * no results. + * + * @see [MethodChannel.setMethodCallHandler](https://api.flutter.dev/flutter/services/MethodChannel/setMethodCallHandler.html) + * + * @param method The name of the method to invoke. + * @param arguments The arguments. Must be a value supported by the codec of this + * channel. + */ +// clang-format on +- (void)invokeMethod:(NSString*)method arguments:(id _Nullable)arguments; + +/** + * Invokes the specified Flutter method with the specified arguments, expecting + * an asynchronous result. + * + * @param method The name of the method to invoke. + * @param arguments The arguments. Must be a value supported by the codec of this + * channel. + * @param callback A callback that will be invoked with the asynchronous result. + * The result will be a `FlutterError` instance, if the method call resulted + * in an error on the Flutter side. Will be `FlutterMethodNotImplemented`, if + * the method called was not implemented on the Flutter side. Any other value, + * including `nil`, should be interpreted as successful results. + */ +- (void)invokeMethod:(NSString*)method + arguments:(id _Nullable)arguments + result:(FlutterResult _Nullable)callback; +/** + * Registers a handler for method calls from the Flutter side. + * + * Replaces any existing handler. Use a `nil` handler for unregistering the + * existing handler. + * + * @param handler The method call handler. + */ +- (void)setMethodCallHandler:(FlutterMethodCallHandler _Nullable)handler; + +/** + * Adjusts the number of messages that will get buffered when sending messages to + * channels that aren't fully set up yet. For example, the engine isn't running + * yet or the channel's message handler isn't set up on the Dart side yet. + */ +- (void)resizeChannelBuffer:(NSInteger)newSize; + +@end + +/** + * An event sink callback. + * + * @param event The event. + */ +typedef void (^FlutterEventSink)(id _Nullable event); + +/** + * A strategy for exposing an event stream to the Flutter side. + */ +FLUTTER_DARWIN_EXPORT +@protocol FlutterStreamHandler +/** + * Sets up an event stream and begin emitting events. + * + * Invoked when the first listener is registered with the Stream associated to + * this channel on the Flutter side. + * + * @param arguments Arguments for the stream. + * @param events A callback to asynchronously emit events. Invoke the + * callback with a `FlutterError` to emit an error event. Invoke the + * callback with `FlutterEndOfEventStream` to indicate that no more + * events will be emitted. Any other value, including `nil` are emitted as + * successful events. + * @return A FlutterError instance, if setup fails. + */ +- (FlutterError* _Nullable)onListenWithArguments:(id _Nullable)arguments + eventSink:(FlutterEventSink)events; + +/** + * Tears down an event stream. + * + * Invoked when the last listener is deregistered from the Stream associated to + * this channel on the Flutter side. + * + * The channel implementation may call this method with `nil` arguments + * to separate a pair of two consecutive set up requests. Such request pairs + * may occur during Flutter hot restart. + * + * @param arguments Arguments for the stream. + * @return A FlutterError instance, if teardown fails. + */ +- (FlutterError* _Nullable)onCancelWithArguments:(id _Nullable)arguments; +@end + +/** + * A constant used with `FlutterEventChannel` to indicate end of stream. + */ +FLUTTER_DARWIN_EXPORT +extern NSObject const* FlutterEndOfEventStream; + +/** + * A channel for communicating with the Flutter side using event streams. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterEventChannel : NSObject +/** + * Creates a `FlutterEventChannel` with the specified name and binary messenger. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterViewController`. + * + * The channel uses `FlutterStandardMethodCodec` to decode stream setup and + * teardown requests, and to encode event envelopes. + * + * @param name The channel name. + * @param messenger The binary messenger. + */ ++ (instancetype)eventChannelWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger; + +/** + * Creates a `FlutterEventChannel` with the specified name, binary messenger, + * and method codec. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The method codec. + */ ++ (instancetype)eventChannelWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec; + +/** + * Initializes a `FlutterEventChannel` with the specified name, binary messenger, + * and method codec. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The method codec. + */ +- (instancetype)initWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec; + +/** + * Initializes a `FlutterEventChannel` with the specified name, binary messenger, + * method codec and task queue. + * + * The channel name logically identifies the channel; identically named channels + * interfere with each other's communication. + * + * The binary messenger is a facility for sending raw, binary messages to the + * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`. + * + * @param name The channel name. + * @param messenger The binary messenger. + * @param codec The method codec. + * @param taskQueue The FlutterTaskQueue that executes the handler (see + -[FlutterBinaryMessenger makeBackgroundTaskQueue]). + */ +- (instancetype)initWithName:(NSString*)name + binaryMessenger:(NSObject*)messenger + codec:(NSObject*)codec + taskQueue:(NSObject* _Nullable)taskQueue; +/** + * Registers a handler for stream setup requests from the Flutter side. + * + * Replaces any existing handler. Use a `nil` handler for unregistering the + * existing handler. + * + * @param handler The stream handler. + */ +- (void)setStreamHandler:(NSObject* _Nullable)handler; +@end +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCHANNELS_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterCodecs.h b/source/ios/Flutter.framework/Headers/FlutterCodecs.h new file mode 100644 index 0000000..93e1d32 --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterCodecs.h @@ -0,0 +1,478 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCODECS_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCODECS_H_ + +#import + +#import "FlutterMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A message encoding/decoding mechanism. + */ +FLUTTER_DARWIN_EXPORT +@protocol FlutterMessageCodec +/** + * Returns a shared instance of this `FlutterMessageCodec`. + */ ++ (instancetype)sharedInstance; + +/** + * Encodes the specified message into binary. + * + * @param message The message. + * @return The binary encoding, or `nil`, if `message` was `nil`. + */ +- (NSData* _Nullable)encode:(id _Nullable)message; + +/** + * Decodes the specified message from binary. + * + * @param message The message. + * @return The decoded message, or `nil`, if `message` was `nil`. + */ +- (id _Nullable)decode:(NSData* _Nullable)message; +@end + +/** + * A `FlutterMessageCodec` using unencoded binary messages, represented as + * `NSData` instances. + * + * This codec is guaranteed to be compatible with the corresponding + * [BinaryCodec](https://api.flutter.dev/flutter/services/BinaryCodec-class.html) + * on the Dart side. These parts of the Flutter SDK are evolved synchronously. + * + * On the Dart side, messages are represented using `ByteData`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterBinaryCodec : NSObject +@end + +/** + * A `FlutterMessageCodec` using UTF-8 encoded `NSString` messages. + * + * This codec is guaranteed to be compatible with the corresponding + * [StringCodec](https://api.flutter.dev/flutter/services/StringCodec-class.html) + * on the Dart side. These parts of the Flutter SDK are evolved synchronously. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterStringCodec : NSObject +@end + +/** + * A `FlutterMessageCodec` using UTF-8 encoded JSON messages. + * + * This codec is guaranteed to be compatible with the corresponding + * [JSONMessageCodec](https://api.flutter.dev/flutter/services/JSONMessageCodec-class.html) + * on the Dart side. These parts of the Flutter SDK are evolved synchronously. + * + * Supports values accepted by `NSJSONSerialization` plus top-level + * `nil`, `NSNumber`, and `NSString`. + * + * On the Dart side, JSON messages are handled by the JSON facilities of the + * [`dart:convert`](https://api.dartlang.org/stable/dart-convert/JSON-constant.html) + * package. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterJSONMessageCodec : NSObject +@end + +/** + * A writer of the Flutter standard binary encoding. + * + * See `FlutterStandardMessageCodec` for details on the encoding. + * + * The encoding is extensible via subclasses overriding `writeValue`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterStandardWriter : NSObject +/** + * Create a `FlutterStandardWriter` who will write to \p data. + */ +- (instancetype)initWithData:(NSMutableData*)data; +/** Write a 8-bit byte. */ +- (void)writeByte:(UInt8)value; +/** Write an array of \p bytes of size \p length. */ +- (void)writeBytes:(const void*)bytes length:(NSUInteger)length; +/** Write an array of bytes contained in \p data. */ +- (void)writeData:(NSData*)data; +/** Write 32-bit unsigned integer that represents a \p size of a collection. */ +- (void)writeSize:(UInt32)size; +/** Write zero padding until data is aligned with \p alignment. */ +- (void)writeAlignment:(UInt8)alignment; +/** Write a string with UTF-8 encoding. */ +- (void)writeUTF8:(NSString*)value; +/** Introspects into an object and writes its representation. + * + * Supported Data Types: + * - NSNull + * - NSNumber + * - NSString (as UTF-8) + * - FlutterStandardTypedData + * - NSArray of supported types + * - NSDictionary of supporte types + * + * NSAsserts on failure. + */ +- (void)writeValue:(id)value; +@end + +/** + * A reader of the Flutter standard binary encoding. + * + * See `FlutterStandardMessageCodec` for details on the encoding. + * + * The encoding is extensible via subclasses overriding `readValueOfType`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterStandardReader : NSObject +/** + * Create a new `FlutterStandardReader` who reads from \p data. + */ +- (instancetype)initWithData:(NSData*)data; +/** Returns YES when the reader hasn't reached the end of its data. */ +- (BOOL)hasMore; +/** Reads a byte value and increments the position. */ +- (UInt8)readByte; +/** Reads a sequence of byte values of \p length and increments the position. */ +- (void)readBytes:(void*)destination length:(NSUInteger)length; +/** Reads a sequence of byte values of \p length and increments the position. */ +- (NSData*)readData:(NSUInteger)length; +/** Reads a 32-bit unsigned integer representing a collection size and increments the position.*/ +- (UInt32)readSize; +/** Advances the read position until it is aligned with \p alignment. */ +- (void)readAlignment:(UInt8)alignment; +/** Read a null terminated string encoded with UTF-8/ */ +- (NSString*)readUTF8; +/** + * Reads a byte for `FlutterStandardField` the decodes a value matching that type. + * + * See also: -[FlutterStandardWriter writeValue] + */ +- (nullable id)readValue; +/** + * Decodes a value matching the \p type specified. + * + * See also: + * - `FlutterStandardField` + * - `-[FlutterStandardWriter writeValue]` + */ +- (nullable id)readValueOfType:(UInt8)type; +@end + +/** + * A factory of compatible reader/writer instances using the Flutter standard + * binary encoding or extensions thereof. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterStandardReaderWriter : NSObject +/** + * Create a new `FlutterStandardWriter` for writing to \p data. + */ +- (FlutterStandardWriter*)writerWithData:(NSMutableData*)data; +/** + * Create a new `FlutterStandardReader` for reading from \p data. + */ +- (FlutterStandardReader*)readerWithData:(NSData*)data; +@end + +/** + * A `FlutterMessageCodec` using the Flutter standard binary encoding. + * + * This codec is guaranteed to be compatible with the corresponding + * [StandardMessageCodec](https://api.flutter.dev/flutter/services/StandardMessageCodec-class.html) + * on the Dart side. These parts of the Flutter SDK are evolved synchronously. + * + * Supported messages are acyclic values of these forms: + * + * - `nil` or `NSNull` + * - `NSNumber` (including their representation of Boolean values) + * - `NSString` + * - `FlutterStandardTypedData` + * - `NSArray` of supported values + * - `NSDictionary` with supported keys and values + * + * On the Dart side, these values are represented as follows: + * + * - `nil` or `NSNull`: null + * - `NSNumber`: `bool`, `int`, or `double`, depending on the contained value. + * - `NSString`: `String` + * - `FlutterStandardTypedData`: `Uint8List`, `Int32List`, `Int64List`, or `Float64List` + * - `NSArray`: `List` + * - `NSDictionary`: `Map` + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterStandardMessageCodec : NSObject +/** + * Create a `FlutterStandardMessageCodec` who will read and write to \p readerWriter. + */ ++ (instancetype)codecWithReaderWriter:(FlutterStandardReaderWriter*)readerWriter; +@end + +/** + * Command object representing a method call on a `FlutterMethodChannel`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterMethodCall : NSObject +/** + * Creates a method call for invoking the specified named method with the + * specified arguments. + * + * @param method the name of the method to call. + * @param arguments the arguments value. + */ ++ (instancetype)methodCallWithMethodName:(NSString*)method arguments:(id _Nullable)arguments; + +/** + * The method name. + */ +@property(readonly, nonatomic) NSString* method; + +/** + * The arguments. + */ +@property(readonly, nonatomic, nullable) id arguments; +@end + +/** + * Error object representing an unsuccessful outcome of invoking a method + * on a `FlutterMethodChannel`, or an error event on a `FlutterEventChannel`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterError : NSObject +/** + * Creates a `FlutterError` with the specified error code, message, and details. + * + * @param code An error code string for programmatic use. + * @param message A human-readable error message. + * @param details Custom error details. + */ ++ (instancetype)errorWithCode:(NSString*)code + message:(NSString* _Nullable)message + details:(id _Nullable)details; +/** + The error code. + */ +@property(readonly, nonatomic) NSString* code; + +/** + The error message. + */ +@property(readonly, nonatomic, nullable) NSString* message; + +/** + The error details. + */ +@property(readonly, nonatomic, nullable) id details; +@end + +/** + * Type of numeric data items encoded in a `FlutterStandardDataType`. + * + * - FlutterStandardDataTypeUInt8: plain bytes + * - FlutterStandardDataTypeInt32: 32-bit signed integers + * - FlutterStandardDataTypeInt64: 64-bit signed integers + * - FlutterStandardDataTypeFloat64: 64-bit floats + */ +typedef NS_ENUM(NSInteger, FlutterStandardDataType) { + // NOLINTBEGIN(readability-identifier-naming) + FlutterStandardDataTypeUInt8, + FlutterStandardDataTypeInt32, + FlutterStandardDataTypeInt64, + FlutterStandardDataTypeFloat32, + FlutterStandardDataTypeFloat64, + // NOLINTEND(readability-identifier-naming) +}; + +/** + * A byte buffer holding `UInt8`, `SInt32`, `SInt64`, or `Float64` values, used + * with `FlutterStandardMessageCodec` and `FlutterStandardMethodCodec`. + * + * Two's complement encoding is used for signed integers. IEEE754 + * double-precision representation is used for floats. The platform's native + * endianness is assumed. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterStandardTypedData : NSObject +/** + * Creates a `FlutterStandardTypedData` which interprets the specified data + * as plain bytes. + * + * @param data the byte data. + */ ++ (instancetype)typedDataWithBytes:(NSData*)data; + +/** + * Creates a `FlutterStandardTypedData` which interprets the specified data + * as 32-bit signed integers. + * + * @param data the byte data. The length must be divisible by 4. + */ ++ (instancetype)typedDataWithInt32:(NSData*)data; + +/** + * Creates a `FlutterStandardTypedData` which interprets the specified data + * as 64-bit signed integers. + * + * @param data the byte data. The length must be divisible by 8. + */ ++ (instancetype)typedDataWithInt64:(NSData*)data; + +/** + * Creates a `FlutterStandardTypedData` which interprets the specified data + * as 32-bit floats. + * + * @param data the byte data. The length must be divisible by 8. + */ ++ (instancetype)typedDataWithFloat32:(NSData*)data; + +/** + * Creates a `FlutterStandardTypedData` which interprets the specified data + * as 64-bit floats. + * + * @param data the byte data. The length must be divisible by 8. + */ ++ (instancetype)typedDataWithFloat64:(NSData*)data; + +/** + * The raw underlying data buffer. + */ +@property(readonly, nonatomic) NSData* data; + +/** + * The type of the encoded values. + */ +@property(readonly, nonatomic, assign) FlutterStandardDataType type; + +/** + * The number of value items encoded. + */ +@property(readonly, nonatomic, assign) UInt32 elementCount; + +/** + * The number of bytes used by the encoding of a single value item. + */ +@property(readonly, nonatomic, assign) UInt8 elementSize; +@end + +/** + * An arbitrarily large integer value, used with `FlutterStandardMessageCodec` + * and `FlutterStandardMethodCodec`. + */ +FLUTTER_DARWIN_EXPORT +FLUTTER_UNAVAILABLE("Unavailable on 2018-08-31. Deprecated on 2018-01-09. " + "FlutterStandardBigInteger was needed because the Dart 1.0 int type had no " + "size limit. With Dart 2.0, the int type is a fixed-size, 64-bit signed " + "integer. If you need to communicate larger integers, use NSString encoding " + "instead.") +@interface FlutterStandardBigInteger : NSObject +@end + +/** + * A codec for method calls and enveloped results. + * + * Method calls are encoded as binary messages with enough structure that the + * codec can extract a method name `NSString` and an arguments `NSObject`, + * possibly `nil`. These data items are used to populate a `FlutterMethodCall`. + * + * Result envelopes are encoded as binary messages with enough structure that + * the codec can determine whether the result was successful or an error. In + * the former case, the codec can extract the result `NSObject`, possibly `nil`. + * In the latter case, the codec can extract an error code `NSString`, a + * human-readable `NSString` error message (possibly `nil`), and a custom + * error details `NSObject`, possibly `nil`. These data items are used to + * populate a `FlutterError`. + */ +FLUTTER_DARWIN_EXPORT +@protocol FlutterMethodCodec +/** + * Provides access to a shared instance this codec. + * + * @return The shared instance. + */ ++ (instancetype)sharedInstance; + +/** + * Encodes the specified method call into binary. + * + * @param methodCall The method call. The arguments value + * must be supported by this codec. + * @return The binary encoding. + */ +- (NSData*)encodeMethodCall:(FlutterMethodCall*)methodCall; + +/** + * Decodes the specified method call from binary. + * + * @param methodCall The method call to decode. + * @return The decoded method call. + */ +- (FlutterMethodCall*)decodeMethodCall:(NSData*)methodCall; + +/** + * Encodes the specified successful result into binary. + * + * @param result The result. Must be a value supported by this codec. + * @return The binary encoding. + */ +- (NSData*)encodeSuccessEnvelope:(id _Nullable)result; + +/** + * Encodes the specified error result into binary. + * + * @param error The error object. The error details value must be supported + * by this codec. + * @return The binary encoding. + */ +- (NSData*)encodeErrorEnvelope:(FlutterError*)error; + +/** + * Deccodes the specified result envelope from binary. + * + * @param envelope The error object. + * @return The result value, if the envelope represented a successful result, + * or a `FlutterError` instance, if not. + */ +- (id _Nullable)decodeEnvelope:(NSData*)envelope; +@end + +/** + * A `FlutterMethodCodec` using UTF-8 encoded JSON method calls and result + * envelopes. + * + * This codec is guaranteed to be compatible with the corresponding + * [JSONMethodCodec](https://api.flutter.dev/flutter/services/JSONMethodCodec-class.html) + * on the Dart side. These parts of the Flutter SDK are evolved synchronously. + * + * Values supported as methods arguments and result payloads are + * those supported as top-level or leaf values by `FlutterJSONMessageCodec`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterJSONMethodCodec : NSObject +@end + +/** + * A `FlutterMethodCodec` using the Flutter standard binary encoding. + * + * This codec is guaranteed to be compatible with the corresponding + * [StandardMethodCodec](https://api.flutter.dev/flutter/services/StandardMethodCodec-class.html) + * on the Dart side. These parts of the Flutter SDK are evolved synchronously. + * + * Values supported as method arguments and result payloads are those supported by + * `FlutterStandardMessageCodec`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterStandardMethodCodec : NSObject +/** + * Create a `FlutterStandardMethodCodec` who will read and write to \p readerWriter. + */ ++ (instancetype)codecWithReaderWriter:(FlutterStandardReaderWriter*)readerWriter; +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCODECS_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterDartProject.h b/source/ios/Flutter.framework/Headers/FlutterDartProject.h new file mode 100644 index 0000000..5e03cb8 --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterDartProject.h @@ -0,0 +1,103 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERDARTPROJECT_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERDARTPROJECT_H_ + +#import +#import + +#import "FlutterMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A set of Flutter and Dart assets used by a `FlutterEngine` to initialize execution. + * + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterDartProject : NSObject + +/** + * Initializes a Flutter Dart project from a bundle. + * + * The bundle must either contain a flutter_assets resource directory, or set the Info.plist key + * FLTAssetsPath to override that name (if you are doing a custom build using a different name). + * + * @param bundle The bundle containing the Flutter assets directory. If nil, the App framework + * created by Flutter will be used. + */ +- (instancetype)initWithPrecompiledDartBundle:(nullable NSBundle*)bundle NS_DESIGNATED_INITIALIZER; +/** + * Unavailable - use `init` instead. + */ +- (instancetype)initFromDefaultSourceForConfiguration API_UNAVAILABLE(macos) + FLUTTER_UNAVAILABLE("Use -init instead."); + +/** + * Returns the default identifier for the bundle where we expect to find the Flutter Dart + * application. + */ ++ (NSString*)defaultBundleIdentifier; + +/** + * An NSArray of NSStrings to be passed as command line arguments to the Dart entrypoint. + * + * If this is not explicitly set, this will default to the contents of + * [NSProcessInfo arguments], without the binary name. + * + * Set this to nil to pass no arguments to the Dart entrypoint. + */ +@property(nonatomic, nullable, copy) + NSArray* dartEntrypointArguments API_UNAVAILABLE(ios); + +/** + * Returns the file name for the given asset. If the bundle with the identifier + * "io.flutter.flutter.app" exists, it will try use that bundle; otherwise, it + * will use the main bundle. To specify a different bundle, use + * `+lookupKeyForAsset:fromBundle`. + * + * @param asset The name of the asset. The name can be hierarchical. + * @return the file name to be used for lookup in the main bundle. + */ ++ (NSString*)lookupKeyForAsset:(NSString*)asset; + +/** + * Returns the file name for the given asset. + * The returned file name can be used to access the asset in the supplied bundle. + * + * @param asset The name of the asset. The name can be hierarchical. + * @param bundle The `NSBundle` to use for looking up the asset. + * @return the file name to be used for lookup in the main bundle. + */ ++ (NSString*)lookupKeyForAsset:(NSString*)asset fromBundle:(nullable NSBundle*)bundle; + +/** + * Returns the file name for the given asset which originates from the specified package. + * The returned file name can be used to access the asset in the application's main bundle. + * + * @param asset The name of the asset. The name can be hierarchical. + * @param package The name of the package from which the asset originates. + * @return the file name to be used for lookup in the main bundle. + */ ++ (NSString*)lookupKeyForAsset:(NSString*)asset fromPackage:(NSString*)package; + +/** + * Returns the file name for the given asset which originates from the specified package. + * The returned file name can be used to access the asset in the specified bundle. + * + * @param asset The name of the asset. The name can be hierarchical. + * @param package The name of the package from which the asset originates. + * @param bundle The bundle to use when doing the lookup. + * @return the file name to be used for lookup in the main bundle. + */ ++ (NSString*)lookupKeyForAsset:(NSString*)asset + fromPackage:(NSString*)package + fromBundle:(nullable NSBundle*)bundle; + +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERDARTPROJECT_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterEngine.h b/source/ios/Flutter.framework/Headers/FlutterEngine.h new file mode 100644 index 0000000..931c8de --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterEngine.h @@ -0,0 +1,462 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINE_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINE_H_ + +#import +#import + +#import "FlutterBinaryMessenger.h" +#import "FlutterDartProject.h" +#import "FlutterMacros.h" +#import "FlutterPlugin.h" +#import "FlutterTexture.h" + +@class FlutterViewController; + +NS_ASSUME_NONNULL_BEGIN + +/** + * The dart entrypoint that is associated with `main()`. This is to be used as an argument to the + * `runWithEntrypoint*` methods. + */ +// NOLINTNEXTLINE(readability-identifier-naming) +extern NSString* const FlutterDefaultDartEntrypoint; + +/** + * The default Flutter initial route ("/"). + */ +// NOLINTNEXTLINE(readability-identifier-naming) +extern NSString* const FlutterDefaultInitialRoute; + +/** + * The FlutterEngine class coordinates a single instance of execution for a + * `FlutterDartProject`. It may have zero or one `FlutterViewController` at a + * time, which can be specified via `-setViewController:`. + * `FlutterViewController`'s `initWithEngine` initializer will automatically call + * `-setViewController:` for itself. + * + * A FlutterEngine can be created independently of a `FlutterViewController` for + * headless execution. It can also persist across the lifespan of multiple + * `FlutterViewController` instances to maintain state and/or asynchronous tasks + * (such as downloading a large file). + * + * A FlutterEngine can also be used to prewarm the Dart execution environment and reduce the + * latency of showing the Flutter screen when a `FlutterViewController` is created and presented. + * See http://flutter.dev/docs/development/add-to-app/performance for more details on loading + * performance. + * + * Alternatively, you can simply create a new `FlutterViewController` with only a + * `FlutterDartProject`. That `FlutterViewController` will internally manage its + * own instance of a FlutterEngine, but will not guarantee survival of the engine + * beyond the life of the ViewController. + * + * A newly initialized FlutterEngine will not actually run a Dart Isolate until + * either `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI` is invoked. + * One of these methods must be invoked before calling `-setViewController:`. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterEngine : NSObject + +/** + * Default initializer for a FlutterEngine. + * + * Threads created by this FlutterEngine will appear as "FlutterEngine #" in + * Instruments. The prefix can be customized using `initWithName`. + * + * The engine will execute the project located in the bundle with the identifier + * "io.flutter.flutter.app" (the default for Flutter projects). + * + * A newly initialized engine will not run until either `-runWithEntrypoint:` or + * `-runWithEntrypoint:libraryURI:` is called. + * + * FlutterEngine created with this method will have allowHeadlessExecution set to `YES`. + * This means that the engine will continue to run regardless of whether a `FlutterViewController` + * is attached to it or not, until `-destroyContext:` is called or the process finishes. + */ +- (instancetype)init; + +/** + * Initialize this FlutterEngine. + * + * The engine will execute the project located in the bundle with the identifier + * "io.flutter.flutter.app" (the default for Flutter projects). + * + * A newly initialized engine will not run until either `-runWithEntrypoint:` or + * `-runWithEntrypoint:libraryURI:` is called. + * + * FlutterEngine created with this method will have allowHeadlessExecution set to `YES`. + * This means that the engine will continue to run regardless of whether a `FlutterViewController` + * is attached to it or not, until `-destroyContext:` is called or the process finishes. + * + * @param labelPrefix The label prefix used to identify threads for this instance. Should + * be unique across FlutterEngine instances, and is used in instrumentation to label + * the threads used by this FlutterEngine. + */ +- (instancetype)initWithName:(NSString*)labelPrefix; + +/** + * Initialize this FlutterEngine with a `FlutterDartProject`. + * + * If the FlutterDartProject is not specified, the FlutterEngine will attempt to locate + * the project in a default location (the flutter_assets folder in the iOS application + * bundle). + * + * A newly initialized engine will not run the `FlutterDartProject` until either + * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI:` is called. + * + * FlutterEngine created with this method will have allowHeadlessExecution set to `YES`. + * This means that the engine will continue to run regardless of whether a `FlutterViewController` + * is attached to it or not, until `-destroyContext:` is called or the process finishes. + * + * @param labelPrefix The label prefix used to identify threads for this instance. Should + * be unique across FlutterEngine instances, and is used in instrumentation to label + * the threads used by this FlutterEngine. + * @param project The `FlutterDartProject` to run. + */ +- (instancetype)initWithName:(NSString*)labelPrefix project:(nullable FlutterDartProject*)project; + +/** + * Initialize this FlutterEngine with a `FlutterDartProject`. + * + * If the FlutterDartProject is not specified, the FlutterEngine will attempt to locate + * the project in a default location (the flutter_assets folder in the iOS application + * bundle). + * + * A newly initialized engine will not run the `FlutterDartProject` until either + * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI:` is called. + * + * @param labelPrefix The label prefix used to identify threads for this instance. Should + * be unique across FlutterEngine instances, and is used in instrumentation to label + * the threads used by this FlutterEngine. + * @param project The `FlutterDartProject` to run. + * @param allowHeadlessExecution Whether or not to allow this instance to continue + * running after passing a nil `FlutterViewController` to `-setViewController:`. + */ +- (instancetype)initWithName:(NSString*)labelPrefix + project:(nullable FlutterDartProject*)project + allowHeadlessExecution:(BOOL)allowHeadlessExecution; + +/** + * Initialize this FlutterEngine with a `FlutterDartProject`. + * + * If the FlutterDartProject is not specified, the FlutterEngine will attempt to locate + * the project in a default location (the flutter_assets folder in the iOS application + * bundle). + * + * A newly initialized engine will not run the `FlutterDartProject` until either + * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI:` is called. + * + * @param labelPrefix The label prefix used to identify threads for this instance. Should + * be unique across FlutterEngine instances, and is used in instrumentation to label + * the threads used by this FlutterEngine. + * @param project The `FlutterDartProject` to run. + * @param allowHeadlessExecution Whether or not to allow this instance to continue + * running after passing a nil `FlutterViewController` to `-setViewController:`. + * @param restorationEnabled Whether state restoration is enabled. When true, the framework will + * wait for the attached view controller to provide restoration data. + */ +- (instancetype)initWithName:(NSString*)labelPrefix + project:(nullable FlutterDartProject*)project + allowHeadlessExecution:(BOOL)allowHeadlessExecution + restorationEnabled:(BOOL)restorationEnabled NS_DESIGNATED_INITIALIZER; + +/** + * Runs a Dart program on an Isolate from the main Dart library (i.e. the library that + * contains `main()`), using `main()` as the entrypoint (the default for Flutter projects), + * and using "/" (the default route) as the initial route. + * + * The first call to this method will create a new Isolate. Subsequent calls will return + * immediately and have no effect. + * + * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise. + */ +- (BOOL)run; + +/** + * Runs a Dart program on an Isolate from the main Dart library (i.e. the library that + * contains `main()`), using "/" (the default route) as the initial route. + * + * The first call to this method will create a new Isolate. Subsequent calls will return + * immediately and have no effect. + * + * @param entrypoint The name of a top-level function from the same Dart + * library that contains the app's main() function. If this is FlutterDefaultDartEntrypoint (or + * nil) it will default to `main()`. If it is not the app's main() function, that function must + * be decorated with `@pragma(vm:entry-point)` to ensure the method is not tree-shaken by the Dart + * compiler. + * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise. + */ +- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint; + +/** + * Runs a Dart program on an Isolate from the main Dart library (i.e. the library that + * contains `main()`). + * + * The first call to this method will create a new Isolate. Subsequent calls will return + * immediately and have no effect. + * + * @param entrypoint The name of a top-level function from the same Dart + * library that contains the app's main() function. If this is FlutterDefaultDartEntrypoint (or + * nil), it will default to `main()`. If it is not the app's main() function, that function must + * be decorated with `@pragma(vm:entry-point)` to ensure the method is not tree-shaken by the Dart + * compiler. + * @param initialRoute The name of the initial Flutter `Navigator` `Route` to load. If this is + * FlutterDefaultInitialRoute (or nil), it will default to the "/" route. + * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise. + */ +- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint + initialRoute:(nullable NSString*)initialRoute; + +/** + * Runs a Dart program on an Isolate using the specified entrypoint and Dart library, + * which may not be the same as the library containing the Dart program's `main()` function. + * + * The first call to this method will create a new Isolate. Subsequent calls will return + * immediately and have no effect. + * + * @param entrypoint The name of a top-level function from a Dart library. If this is + * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's + * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the + * method is not tree-shaken by the Dart compiler. + * @param uri The URI of the Dart library which contains the entrypoint method + * (example "package:foo_package/main.dart"). If nil, this will default to + * the same library as the `main()` function in the Dart program. + * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise. + */ +- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint libraryURI:(nullable NSString*)uri; + +/** + * Runs a Dart program on an Isolate using the specified entrypoint and Dart library, + * which may not be the same as the library containing the Dart program's `main()` function. + * + * The first call to this method will create a new Isolate. Subsequent calls will return + * immediately and have no effect. + * + * @param entrypoint The name of a top-level function from a Dart library. If this is + * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's + * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the + * method is not tree-shaken by the Dart compiler. + * @param libraryURI The URI of the Dart library which contains the entrypoint + * method (example "package:foo_package/main.dart"). If nil, this will + * default to the same library as the `main()` function in the Dart program. + * @param initialRoute The name of the initial Flutter `Navigator` `Route` to load. If this is + * FlutterDefaultInitialRoute (or nil), it will default to the "/" route. + * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise. + */ +- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint + libraryURI:(nullable NSString*)libraryURI + initialRoute:(nullable NSString*)initialRoute; + +/** + * Runs a Dart program on an Isolate using the specified entrypoint and Dart library, + * which may not be the same as the library containing the Dart program's `main()` function. + * + * The first call to this method will create a new Isolate. Subsequent calls will return + * immediately and have no effect. + * + * @param entrypoint The name of a top-level function from a Dart library. If this is + * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's + * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the + * method is not tree-shaken by the Dart compiler. + * @param libraryURI The URI of the Dart library which contains the entrypoint + * method (example "package:foo_package/main.dart"). If nil, this will + * default to the same library as the `main()` function in the Dart program. + * @param initialRoute The name of the initial Flutter `Navigator` `Route` to load. If this is + * FlutterDefaultInitialRoute (or nil), it will default to the "/" route. + * @param entrypointArgs Arguments passed as a list of string to Dart's entrypoint function. + * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise. + */ +- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint + libraryURI:(nullable NSString*)libraryURI + initialRoute:(nullable NSString*)initialRoute + entrypointArgs:(nullable NSArray*)entrypointArgs; + +/** + * Destroy running context for an engine. + * + * This method can be used to force the FlutterEngine object to release all resources. + * After sending this message, the object will be in an unusable state until it is deallocated. + * Accessing properties or sending messages to it will result in undefined behavior or runtime + * errors. + */ +- (void)destroyContext; + +/** + * Ensures that Flutter will generate a semantics tree. + * + * This is enabled by default if certain accessibility services are turned on by + * the user, or when using a Simulator. This method allows a user to turn + * semantics on when they would not ordinarily be generated and the performance + * overhead is not a concern, e.g. for UI testing. Note that semantics should + * never be programmatically turned off, as it would potentially disable + * accessibility services an end user has requested. + * + * This method must only be called after launching the engine via + * `-runWithEntrypoint:` or `-runWithEntryPoint:libraryURI`. + * + * Although this method returns synchronously, it does not guarantee that a + * semantics tree is actually available when the method returns. It + * synchronously ensures that the next frame the Flutter framework creates will + * have a semantics tree. + * + * You can subscribe to semantics updates via `NSNotificationCenter` by adding + * an observer for the name `FlutterSemanticsUpdateNotification`. The `object` + * parameter will be the `FlutterViewController` associated with the semantics + * update. This will asynchronously fire after a semantics tree has actually + * built (which may be some time after the frame has been rendered). + */ +- (void)ensureSemanticsEnabled; + +/** + * Sets the `FlutterViewController` for this instance. The FlutterEngine must be + * running (e.g. a successful call to `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI`) + * before calling this method. Callers may pass nil to remove the viewController + * and have the engine run headless in the current process. + * + * A FlutterEngine can only have one `FlutterViewController` at a time. If there is + * already a `FlutterViewController` associated with this instance, this method will replace + * the engine's current viewController with the newly specified one. + * + * Setting the viewController will signal the engine to start animations and drawing, and unsetting + * it will signal the engine to stop animations and drawing. However, neither will impact the state + * of the Dart program's execution. + */ +@property(nonatomic, weak) FlutterViewController* viewController; + +/** + * The `FlutterMethodChannel` used for localization related platform messages, such as + * setting the locale. + * + * Can be nil after `destroyContext` is called. + */ +@property(nonatomic, readonly, nullable) FlutterMethodChannel* localizationChannel; +/** + * The `FlutterMethodChannel` used for navigation related platform messages. + * + * Can be nil after `destroyContext` is called. + * + * @see [Navigation + * Channel](https://api.flutter.dev/flutter/services/SystemChannels/navigation-constant.html) + * @see [Navigator Widget](https://api.flutter.dev/flutter/widgets/Navigator-class.html) + */ +@property(nonatomic, readonly) FlutterMethodChannel* navigationChannel; + +/** + * The `FlutterMethodChannel` used for restoration related platform messages. + * + * Can be nil after `destroyContext` is called. + * + * @see [Restoration + * Channel](https://api.flutter.dev/flutter/services/SystemChannels/restoration-constant.html) + */ +@property(nonatomic, readonly) FlutterMethodChannel* restorationChannel; + +/** + * The `FlutterMethodChannel` used for core platform messages, such as + * information about the screen orientation. + * + * Can be nil after `destroyContext` is called. + */ +@property(nonatomic, readonly) FlutterMethodChannel* platformChannel; + +/** + * The `FlutterMethodChannel` used to communicate text input events to the + * Dart Isolate. + * + * Can be nil after `destroyContext` is called. + * + * @see [Text Input + * Channel](https://api.flutter.dev/flutter/services/SystemChannels/textInput-constant.html) + */ +@property(nonatomic, readonly) FlutterMethodChannel* textInputChannel; + +/** + * The `FlutterBasicMessageChannel` used to communicate app lifecycle events + * to the Dart Isolate. + * + * Can be nil after `destroyContext` is called. + * + * @see [Lifecycle + * Channel](https://api.flutter.dev/flutter/services/SystemChannels/lifecycle-constant.html) + */ +@property(nonatomic, readonly) FlutterBasicMessageChannel* lifecycleChannel; + +/** + * The `FlutterBasicMessageChannel` used for communicating system events, such as + * memory pressure events. + * + * Can be nil after `destroyContext` is called. + * + * @see [System + * Channel](https://api.flutter.dev/flutter/services/SystemChannels/system-constant.html) + */ +@property(nonatomic, readonly) FlutterBasicMessageChannel* systemChannel; + +/** + * The `FlutterBasicMessageChannel` used for communicating user settings such as + * clock format and text scale. + * + * Can be nil after `destroyContext` is called. + */ +@property(nonatomic, readonly) FlutterBasicMessageChannel* settingsChannel; + +/** + * The `FlutterBasicMessageChannel` used for communicating key events + * from physical keyboards + * + * Can be nil after `destroyContext` is called. + */ +@property(nonatomic, readonly) FlutterBasicMessageChannel* keyEventChannel; + +/** + * The depcreated `NSURL` of the Dart VM Service for the service isolate. + * + * This is only set in debug and profile runtime modes, and only after the + * Dart VM Service is ready. In release mode or before the Dart VM Service has + * started, it returns `nil`. + */ +@property(nonatomic, readonly, nullable) + NSURL* observatoryUrl FLUTTER_DEPRECATED("Use vmServiceUrl instead"); + +/** + * The `NSURL` of the Dart VM Service for the service isolate. + * + * This is only set in debug and profile runtime modes, and only after the + * Dart VM Service is ready. In release mode or before the Dart VM Service has + * started, it returns `nil`. + */ +@property(nonatomic, readonly, nullable) NSURL* vmServiceUrl; + +/** + * The `FlutterBinaryMessenger` associated with this FlutterEngine (used for communicating with + * channels). + */ +@property(nonatomic, readonly) NSObject* binaryMessenger; + +/** + * The `FlutterTextureRegistry` associated with this FlutterEngine (used to register textures). + */ +@property(nonatomic, readonly) NSObject* textureRegistry; + +/** + * The UI Isolate ID of the engine. + * + * This property will be nil if the engine is not running. + */ +@property(nonatomic, readonly, copy, nullable) NSString* isolateId; + +/** + * Whether or not GPU calls are allowed. + * + * Typically this is set when the app is backgrounded and foregrounded. + */ +@property(nonatomic, assign) BOOL isGpuDisabled; + +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINE_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterEngineGroup.h b/source/ios/Flutter.framework/Headers/FlutterEngineGroup.h new file mode 100644 index 0000000..fe77b31 --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterEngineGroup.h @@ -0,0 +1,115 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINEGROUP_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINEGROUP_H_ + +#import + +#import "FlutterEngine.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Options that control how a FlutterEngine should be created. */ +FLUTTER_DARWIN_EXPORT +@interface FlutterEngineGroupOptions : NSObject + +/** + * The name of a top-level function from a Dart library. If this is FlutterDefaultDartEntrypoint + * (or nil); this will default to `main()`. If it is not the app's main() function, that function + * must be decorated with `@pragma(vm:entry-point)` to ensure themethod is not tree-shaken by the + * Dart compiler. + */ +@property(nonatomic, copy, nullable) NSString* entrypoint; + +/** + * The URI of the Dart library which contains the entrypoint method. If nil, this will default to + * the same library as the `main()` function in the Dart program. + */ +@property(nonatomic, copy, nullable) NSString* libraryURI; + +/** + * The name of the initial Flutter `Navigator` `Route` to load. If this is + * FlutterDefaultInitialRoute (or nil), it will default to the "/" route. + */ +@property(nonatomic, copy, nullable) NSString* initialRoute; + +/** + * Arguments passed as a list of string to Dart's entrypoint function. + */ +@property(nonatomic, retain, nullable) NSArray* entrypointArgs; +@end + +/** + * Represents a collection of FlutterEngines who share resources which allows + * them to be created with less time const and occupy less memory than just + * creating multiple FlutterEngines. + * + * Deleting a FlutterEngineGroup doesn't invalidate existing FlutterEngines, but + * it eliminates the possibility to create more FlutterEngines in that group. + * + * @warning This class is a work-in-progress and may change. + * @see https://github.com/flutter/flutter/issues/72009 + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterEngineGroup : NSObject +- (instancetype)init NS_UNAVAILABLE; + +/** + * Initialize a new FlutterEngineGroup. + * + * @param name The name that will present in the threads shared across the + * engines in this group. + * @param project The `FlutterDartProject` that all FlutterEngines in this group + * will be executing. + */ +- (instancetype)initWithName:(NSString*)name + project:(nullable FlutterDartProject*)project NS_DESIGNATED_INITIALIZER; + +/** + * Creates a running `FlutterEngine` that shares components with this group. + * + * @param entrypoint The name of a top-level function from a Dart library. If this is + * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's + * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the + * method is not tree-shaken by the Dart compiler. + * @param libraryURI The URI of the Dart library which contains the entrypoint method. IF nil, + * this will default to the same library as the `main()` function in the Dart program. + * + * @see FlutterEngineGroup + */ +- (FlutterEngine*)makeEngineWithEntrypoint:(nullable NSString*)entrypoint + libraryURI:(nullable NSString*)libraryURI; + +/** + * Creates a running `FlutterEngine` that shares components with this group. + * + * @param entrypoint The name of a top-level function from a Dart library. If this is + * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's + * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the + * method is not tree-shaken by the Dart compiler. + * @param libraryURI The URI of the Dart library which contains the entrypoint method. IF nil, + * this will default to the same library as the `main()` function in the Dart program. + * @param initialRoute The name of the initial Flutter `Navigator` `Route` to load. If this is + * FlutterDefaultInitialRoute (or nil), it will default to the "/" route. + * + * @see FlutterEngineGroup + */ +- (FlutterEngine*)makeEngineWithEntrypoint:(nullable NSString*)entrypoint + libraryURI:(nullable NSString*)libraryURI + initialRoute:(nullable NSString*)initialRoute; + +/** + * Creates a running `FlutterEngine` that shares components with this group. + * + * @param options Options that control how a FlutterEngine should be created. + * + * @see FlutterEngineGroupOptions + */ +- (FlutterEngine*)makeEngineWithOptions:(nullable FlutterEngineGroupOptions*)options; +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINEGROUP_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterHeadlessDartRunner.h b/source/ios/Flutter.framework/Headers/FlutterHeadlessDartRunner.h new file mode 100644 index 0000000..08069ab --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterHeadlessDartRunner.h @@ -0,0 +1,97 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERHEADLESSDARTRUNNER_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERHEADLESSDARTRUNNER_H_ + +#import + +#import "FlutterBinaryMessenger.h" +#import "FlutterDartProject.h" +#import "FlutterEngine.h" +#import "FlutterMacros.h" + +/** + * A callback for when FlutterHeadlessDartRunner has attempted to start a Dart + * Isolate in the background. + * + * @param success YES if the Isolate was started and run successfully, NO + * otherwise. + */ +typedef void (^FlutterHeadlessDartRunnerCallback)(BOOL success); + +/** + * The deprecated FlutterHeadlessDartRunner runs Flutter Dart code with a null rasterizer, + * and no native drawing surface. It is appropriate for use in running Dart + * code e.g. in the background from a plugin. + * + * Most callers should prefer using `FlutterEngine` directly; this interface exists + * for legacy support. + */ +FLUTTER_DARWIN_EXPORT +FLUTTER_DEPRECATED("FlutterEngine should be used rather than FlutterHeadlessDartRunner") +@interface FlutterHeadlessDartRunner : FlutterEngine + +/** + * Initialize this FlutterHeadlessDartRunner with a `FlutterDartProject`. + * + * If the FlutterDartProject is not specified, the FlutterHeadlessDartRunner will attempt to locate + * the project in a default location. + * + * A newly initialized engine will not run the `FlutterDartProject` until either + * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI` is called. + * + * @param labelPrefix The label prefix used to identify threads for this instance. Should + * be unique across FlutterEngine instances + * @param projectOrNil The `FlutterDartProject` to run. + */ +- (instancetype)initWithName:(NSString*)labelPrefix project:(FlutterDartProject*)projectOrNil; + +/** + * Initialize this FlutterHeadlessDartRunner with a `FlutterDartProject`. + * + * If the FlutterDartProject is not specified, the FlutterHeadlessDartRunner will attempt to locate + * the project in a default location. + * + * A newly initialized engine will not run the `FlutterDartProject` until either + * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI` is called. + * + * @param labelPrefix The label prefix used to identify threads for this instance. Should + * be unique across FlutterEngine instances + * @param projectOrNil The `FlutterDartProject` to run. + * @param allowHeadlessExecution Must be set to `YES`. + */ +- (instancetype)initWithName:(NSString*)labelPrefix + project:(FlutterDartProject*)projectOrNil + allowHeadlessExecution:(BOOL)allowHeadlessExecution; + +/** + * Initialize this FlutterHeadlessDartRunner with a `FlutterDartProject`. + * + * If the FlutterDartProject is not specified, the FlutterHeadlessDartRunner will attempt to locate + * the project in a default location. + * + * A newly initialized engine will not run the `FlutterDartProject` until either + * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI` is called. + * + * @param labelPrefix The label prefix used to identify threads for this instance. Should + * be unique across FlutterEngine instances + * @param projectOrNil The `FlutterDartProject` to run. + * @param allowHeadlessExecution Must be set to `YES`. + * @param restorationEnabled Must be set to `NO`. + */ +- (instancetype)initWithName:(NSString*)labelPrefix + project:(FlutterDartProject*)projectOrNil + allowHeadlessExecution:(BOOL)allowHeadlessExecution + restorationEnabled:(BOOL)restorationEnabled NS_DESIGNATED_INITIALIZER; + +/** + * Not recommended for use - will initialize with a default label ("io.flutter.headless") + * and the default FlutterDartProject. + */ +- (instancetype)init; + +@end + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERHEADLESSDARTRUNNER_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterMacros.h b/source/ios/Flutter.framework/Headers/FlutterMacros.h new file mode 100644 index 0000000..7f53b41 --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterMacros.h @@ -0,0 +1,48 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERMACROS_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERMACROS_H_ + +#if defined(FLUTTER_FRAMEWORK) + +#define FLUTTER_DARWIN_EXPORT __attribute__((visibility("default"))) + +#else // defined(FLUTTER_SDK) + +#define FLUTTER_DARWIN_EXPORT + +#endif // defined(FLUTTER_SDK) + +#ifndef NS_ASSUME_NONNULL_BEGIN +#define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") +#define NS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") +#endif // defined(NS_ASSUME_NONNULL_BEGIN) + +/** + * Indicates that the API has been deprecated for the specified reason. Code + * that uses the deprecated API will continue to work as before. However, the + * API will soon become unavailable and users are encouraged to immediately take + * the appropriate action mentioned in the deprecation message and the BREAKING + * CHANGES section present in the Flutter.h umbrella header. + */ +#define FLUTTER_DEPRECATED(msg) __attribute__((__deprecated__(msg))) + +/** + * Indicates that the previously deprecated API is now unavailable. Code that + * uses the API will not work and the declaration of the API is only a stub + * meant to display the given message detailing the actions for the user to take + * immediately. + */ +#define FLUTTER_UNAVAILABLE(msg) __attribute__((__unavailable__(msg))) + +#if __has_feature(objc_arc) +#define FLUTTER_ASSERT_ARC +#define FLUTTER_ASSERT_NOT_ARC #error ARC must be disabled ! +#else +#define FLUTTER_ASSERT_ARC #error ARC must be enabled ! +#define FLUTTER_ASSERT_NOT_ARC +#endif + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERMACROS_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterPlatformViews.h b/source/ios/Flutter.framework/Headers/FlutterPlatformViews.h new file mode 100644 index 0000000..59ba4af --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterPlatformViews.h @@ -0,0 +1,56 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLATFORMVIEWS_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLATFORMVIEWS_H_ + +#import + +#import "FlutterCodecs.h" +#import "FlutterMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Wraps a `UIView` for embedding in the Flutter hierarchy + */ +@protocol FlutterPlatformView +/** + * Returns a reference to the `UIView` that is wrapped by this `FlutterPlatformView`. + */ +- (UIView*)view; +@end + +FLUTTER_DARWIN_EXPORT +@protocol FlutterPlatformViewFactory +/** + * Create a `FlutterPlatformView`. + * + * Implemented by iOS code that expose a `UIView` for embedding in a Flutter app. + * + * The implementation of this method should create a new `UIView` and return it. + * + * @param frame The rectangle for the newly created `UIView` measured in points. + * @param viewId A unique identifier for this `UIView`. + * @param args Parameters for creating the `UIView` sent from the Dart side of the Flutter app. + * If `createArgsCodec` is not implemented, or if no creation arguments were sent from the Dart + * code, this will be null. Otherwise this will be the value sent from the Dart code as decoded by + * `createArgsCodec`. + */ +- (NSObject*)createWithFrame:(CGRect)frame + viewIdentifier:(int64_t)viewId + arguments:(id _Nullable)args; + +/** + * Returns the `FlutterMessageCodec` for decoding the args parameter of `createWithFrame`. + * + * Only needs to be implemented if `createWithFrame` needs an arguments parameter. + */ +@optional +- (NSObject*)createArgsCodec; +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLATFORMVIEWS_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterPlugin.h b/source/ios/Flutter.framework/Headers/FlutterPlugin.h new file mode 100644 index 0000000..8ab46cf --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterPlugin.h @@ -0,0 +1,448 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGIN_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGIN_H_ + +#import +#import + +#import "FlutterBinaryMessenger.h" +#import "FlutterChannels.h" +#import "FlutterCodecs.h" +#import "FlutterPlatformViews.h" +#import "FlutterTexture.h" + +NS_ASSUME_NONNULL_BEGIN +@protocol FlutterPluginRegistrar; +@protocol FlutterPluginRegistry; + +#pragma mark - +/** + * Protocol for listener of events from the UIApplication, typically a FlutterPlugin. + */ +@protocol FlutterApplicationLifeCycleDelegate + +@optional +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `NO` if this vetos application launch. + */ +- (BOOL)application:(UIApplication*)application + didFinishLaunchingWithOptions:(NSDictionary*)launchOptions; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `NO` if this vetos application launch. + */ +- (BOOL)application:(UIApplication*)application + willFinishLaunchingWithOptions:(NSDictionary*)launchOptions; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)applicationDidBecomeActive:(UIApplication*)application; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)applicationWillResignActive:(UIApplication*)application; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)applicationDidEnterBackground:(UIApplication*)application; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)applicationWillEnterForeground:(UIApplication*)application; + +/** + Called if this has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)applicationWillTerminate:(UIApplication*)application; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings + API_DEPRECATED( + "See -[UIApplicationDelegate application:didRegisterUserNotificationSettings:] deprecation", + ios(8.0, 10.0)); + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didFailToRegisterForRemoteNotificationsWithError:(NSError*)error; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `YES` if this handles the request. + */ +- (BOOL)application:(UIApplication*)application + didReceiveRemoteNotification:(NSDictionary*)userInfo + fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didReceiveLocalNotification:(UILocalNotification*)notification + API_DEPRECATED( + "See -[UIApplicationDelegate application:didReceiveLocalNotification:] deprecation", + ios(4.0, 10.0)); + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `YES` if this handles the request. + */ +- (BOOL)application:(UIApplication*)application + openURL:(NSURL*)url + options:(NSDictionary*)options; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `YES` if this handles the request. + */ +- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `YES` if this handles the request. + */ +- (BOOL)application:(UIApplication*)application + openURL:(NSURL*)url + sourceApplication:(NSString*)sourceApplication + annotation:(id)annotation; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `YES` if this handles the request. + */ +- (BOOL)application:(UIApplication*)application + performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem + completionHandler:(void (^)(BOOL succeeded))completionHandler + API_AVAILABLE(ios(9.0)); + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `YES` if this handles the request. + */ +- (BOOL)application:(UIApplication*)application + handleEventsForBackgroundURLSession:(nonnull NSString*)identifier + completionHandler:(nonnull void (^)(void))completionHandler; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `YES` if this handles the request. + */ +- (BOOL)application:(UIApplication*)application + performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler; + +/** + * Called if this has been registered for `UIApplicationDelegate` callbacks. + * + * @return `YES` if this handles the request. + */ +- (BOOL)application:(UIApplication*)application + continueUserActivity:(NSUserActivity*)userActivity + restorationHandler:(void (^)(NSArray*))restorationHandler; +@end + +#pragma mark - +/** + * A plugin registration callback. + * + * Used for registering plugins with additional instances of + * `FlutterPluginRegistry`. + * + * @param registry The registry to register plugins with. + */ +typedef void (*FlutterPluginRegistrantCallback)(NSObject* registry); + +#pragma mark - +/** + * Implemented by the iOS part of a Flutter plugin. + * + * Defines a set of optional callback methods and a method to set up the plugin + * and register it to be called by other application components. + */ +@protocol FlutterPlugin +@required +/** + * Registers this plugin using the context information and callback registration + * methods exposed by the given registrar. + * + * The registrar is obtained from a `FlutterPluginRegistry` which keeps track of + * the identity of registered plugins and provides basic support for cross-plugin + * coordination. + * + * The caller of this method, a plugin registrant, is usually autogenerated by + * Flutter tooling based on declared plugin dependencies. The generated registrant + * asks the registry for a registrar for each plugin, and calls this method to + * allow the plugin to initialize itself and register callbacks with application + * objects available through the registrar protocol. + * + * @param registrar A helper providing application context and methods for + * registering callbacks. + */ ++ (void)registerWithRegistrar:(NSObject*)registrar; +@optional +/** + * Set a callback for registering plugins to an additional `FlutterPluginRegistry`, + * including headless `FlutterEngine` instances. + * + * This method is typically called from within an application's `AppDelegate` at + * startup to allow for plugins which create additional `FlutterEngine` instances + * to register the application's plugins. + * + * @param callback A callback for registering some set of plugins with a + * `FlutterPluginRegistry`. + */ ++ (void)setPluginRegistrantCallback:(FlutterPluginRegistrantCallback)callback; +@optional +/** + * Called if this plugin has been registered to receive `FlutterMethodCall`s. + * + * @param call The method call command object. + * @param result A callback for submitting the result of the call. + */ +- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result; +@optional +/** + * Called when a plugin is being removed from a `FlutterEngine`, which is + * usually the result of the `FlutterEngine` being deallocated. This method + * provides the opportunity to do necessary cleanup. + * + * You will only receive this method if you registered your plugin instance with + * the `FlutterEngine` via `-[FlutterPluginRegistry publish:]`. + * + * @param registrar The registrar that was used to publish the plugin. + * + */ +- (void)detachFromEngineForRegistrar:(NSObject*)registrar; +@end + +#pragma mark - +/** + * How the UIGestureRecognizers of a platform view are blocked. + * + * UIGestureRecognizers of platform views can be blocked based on decisions made by the + * Flutter Framework (e.g. When an interact-able widget is covering the platform view). + */ +typedef enum { + // NOLINTBEGIN(readability-identifier-naming) + /** + * Flutter blocks all the UIGestureRecognizers on the platform view as soon as it + * decides they should be blocked. + * + * With this policy, only the `touchesBegan` method for all the UIGestureRecognizers is guaranteed + * to be called. + */ + FlutterPlatformViewGestureRecognizersBlockingPolicyEager, + /** + * Flutter blocks the platform view's UIGestureRecognizers from recognizing only after + * touchesEnded was invoked. + * + * This results in the platform view's UIGestureRecognizers seeing the entire touch sequence, + * but never recognizing the gesture (and never invoking actions). + */ + FlutterPlatformViewGestureRecognizersBlockingPolicyWaitUntilTouchesEnded, + // NOLINTEND(readability-identifier-naming) +} FlutterPlatformViewGestureRecognizersBlockingPolicy; + +#pragma mark - +/** + * Registration context for a single `FlutterPlugin`, providing a one stop shop + * for the plugin to access contextual information and register callbacks for + * various application events. + * + * Registrars are obtained from a `FlutterPluginRegistry` which keeps track of + * the identity of registered plugins and provides basic support for cross-plugin + * coordination. + */ +@protocol FlutterPluginRegistrar +/** + * Returns a `FlutterBinaryMessenger` for creating Dart/iOS communication + * channels to be used by the plugin. + * + * @return The messenger. + */ +- (NSObject*)messenger; + +/** + * Returns a `FlutterTextureRegistry` for registering textures + * provided by the plugin. + * + * @return The texture registry. + */ +- (NSObject*)textures; + +/** + * Registers a `FlutterPlatformViewFactory` for creation of platform views. + * + * Plugins expose `UIView` for embedding in Flutter apps by registering a view factory. + * + * @param factory The view factory that will be registered. + * @param factoryId A unique identifier for the factory, the Dart code of the Flutter app can use + * this identifier to request creation of a `UIView` by the registered factory. + */ +- (void)registerViewFactory:(NSObject*)factory + withId:(NSString*)factoryId; + +/** + * Registers a `FlutterPlatformViewFactory` for creation of platform views. + * + * Plugins can expose a `UIView` for embedding in Flutter apps by registering a view factory. + * + * @param factory The view factory that will be registered. + * @param factoryId A unique identifier for the factory, the Dart code of the Flutter app can use + * this identifier to request creation of a `UIView` by the registered factory. + * @param gestureRecognizersBlockingPolicy How UIGestureRecognizers on the platform views are + * blocked. + * + */ +- (void)registerViewFactory:(NSObject*)factory + withId:(NSString*)factoryId + gestureRecognizersBlockingPolicy: + (FlutterPlatformViewGestureRecognizersBlockingPolicy)gestureRecognizersBlockingPolicy; + +/** + * Publishes a value for external use of the plugin. + * + * Plugins may publish a single value, such as an instance of the + * plugin's main class, for situations where external control or + * interaction is needed. + * + * The published value will be available from the `FlutterPluginRegistry`. + * Repeated calls overwrite any previous publication. + * + * @param value The value to be published. + */ +- (void)publish:(NSObject*)value; + +/** + * Registers the plugin as a receiver of incoming method calls from the Dart side + * on the specified `FlutterMethodChannel`. + * + * @param delegate The receiving object, such as the plugin's main class. + * @param channel The channel + */ +- (void)addMethodCallDelegate:(NSObject*)delegate + channel:(FlutterMethodChannel*)channel; + +/** + * Registers the plugin as a receiver of `UIApplicationDelegate` calls. + * + * @param delegate The receiving object, such as the plugin's main class. + */ +- (void)addApplicationDelegate:(NSObject*)delegate + NS_EXTENSION_UNAVAILABLE_IOS("Disallowed in plugins used in app extensions"); + +/** + * Returns the file name for the given asset. + * The returned file name can be used to access the asset in the application's main bundle. + * + * @param asset The name of the asset. The name can be hierarchical. + * @return the file name to be used for lookup in the main bundle. + */ +- (NSString*)lookupKeyForAsset:(NSString*)asset; + +/** + * Returns the file name for the given asset which originates from the specified package. + * The returned file name can be used to access the asset in the application's main bundle. + * + * + * @param asset The name of the asset. The name can be hierarchical. + * @param package The name of the package from which the asset originates. + * @return the file name to be used for lookup in the main bundle. + */ +- (NSString*)lookupKeyForAsset:(NSString*)asset fromPackage:(NSString*)package; +@end + +#pragma mark - +/** + * A registry of Flutter iOS plugins. + * + * Plugins are identified by unique string keys, typically the name of the + * plugin's main class. The registry tracks plugins by this key, mapping it to + * a value published by the plugin during registration, if any. This provides a + * very basic means of cross-plugin coordination with loose coupling between + * unrelated plugins. + * + * Plugins typically need contextual information and the ability to register + * callbacks for various application events. To keep the API of the registry + * focused, these facilities are not provided directly by the registry, but by + * a `FlutterPluginRegistrar`, created by the registry in exchange for the unique + * key of the plugin. + * + * There is no implied connection between the registry and the registrar. + * Specifically, callbacks registered by the plugin via the registrar may be + * relayed directly to the underlying iOS application objects. + */ +@protocol FlutterPluginRegistry +/** + * Returns a registrar for registering a plugin. + * + * @param pluginKey The unique key identifying the plugin. + */ +- (nullable NSObject*)registrarForPlugin:(NSString*)pluginKey; +/** + * Returns whether the specified plugin has been registered. + * + * @param pluginKey The unique key identifying the plugin. + * @return `YES` if `registrarForPlugin` has been called with `pluginKey`. + */ +- (BOOL)hasPlugin:(NSString*)pluginKey; + +/** + * Returns a value published by the specified plugin. + * + * @param pluginKey The unique key identifying the plugin. + * @return An object published by the plugin, if any. Will be `NSNull` if + * nothing has been published. Will be `nil` if the plugin has not been + * registered. + */ +- (nullable NSObject*)valuePublishedByPlugin:(NSString*)pluginKey; +@end + +#pragma mark - +/** + * Implement this in the `UIAppDelegate` of your app to enable Flutter plugins to register + * themselves to the application life cycle events. + * + * For plugins to receive events from `UNUserNotificationCenter`, register this as the + * `UNUserNotificationCenterDelegate`. + */ +@protocol FlutterAppLifeCycleProvider + +/** + * Called when registering a new `FlutterApplicaitonLifeCycleDelegate`. + * + * See also: `-[FlutterAppDelegate addApplicationLifeCycleDelegate:]` + */ +- (void)addApplicationLifeCycleDelegate:(NSObject*)delegate; +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGIN_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h b/source/ios/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h new file mode 100644 index 0000000..95d1e61 --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h @@ -0,0 +1,148 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGINAPPLIFECYCLEDELEGATE_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGINAPPLIFECYCLEDELEGATE_H_ + +#import "FlutterPlugin.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Propagates `UIAppDelegate` callbacks to registered plugins. + */ +FLUTTER_DARWIN_EXPORT +@interface FlutterPluginAppLifeCycleDelegate : NSObject + +/** + * Registers `delegate` to receive life cycle callbacks via this FlutterPluginAppLifeCycleDelegate + * as long as it is alive. + * + * `delegate` will only be referenced weakly. + */ +- (void)addDelegate:(NSObject*)delegate; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks. + * + * @return `NO` if any plugin vetos application launch. + */ +- (BOOL)application:(UIApplication*)application + didFinishLaunchingWithOptions:(NSDictionary*)launchOptions; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks. + * + * @return `NO` if any plugin vetos application launch. + */ +- (BOOL)application:(UIApplication*)application + willFinishLaunchingWithOptions:(NSDictionary*)launchOptions; + +/** + * Called if this plugin has been registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings + API_DEPRECATED( + "See -[UIApplicationDelegate application:didRegisterUserNotificationSettings:] deprecation", + ios(8.0, 10.0)); + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didFailToRegisterForRemoteNotificationsWithError:(NSError*)error; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didReceiveRemoteNotification:(NSDictionary*)userInfo + fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + didReceiveLocalNotification:(UILocalNotification*)notification + API_DEPRECATED( + "See -[UIApplicationDelegate application:didReceiveLocalNotification:] deprecation", + ios(4.0, 10.0)); + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until + * some plugin handles the request. + * + * @return `YES` if any plugin handles the request. + */ +- (BOOL)application:(UIApplication*)application + openURL:(NSURL*)url + options:(NSDictionary*)options; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until + * some plugin handles the request. + * + * @return `YES` if any plugin handles the request. + */ +- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until + * some plugin handles the request. + * + * @return `YES` if any plugin handles the request. + */ +- (BOOL)application:(UIApplication*)application + openURL:(NSURL*)url + sourceApplication:(NSString*)sourceApplication + annotation:(id)annotation; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks. + */ +- (void)application:(UIApplication*)application + performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem + completionHandler:(void (^)(BOOL succeeded))completionHandler + API_AVAILABLE(ios(9.0)); + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until + * some plugin handles the request. + * + * @return `YES` if any plugin handles the request. + */ +- (BOOL)application:(UIApplication*)application + handleEventsForBackgroundURLSession:(nonnull NSString*)identifier + completionHandler:(nonnull void (^)(void))completionHandler; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until + * some plugin handles the request. + * + * @returns `YES` if any plugin handles the request. + */ +- (BOOL)application:(UIApplication*)application + performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler; + +/** + * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until + * some plugin handles the request. + * + * @return `YES` if any plugin handles the request. + */ +- (BOOL)application:(UIApplication*)application + continueUserActivity:(NSUserActivity*)userActivity + restorationHandler:(void (^)(NSArray*))restorationHandler; +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGINAPPLIFECYCLEDELEGATE_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterTexture.h b/source/ios/Flutter.framework/Headers/FlutterTexture.h new file mode 100644 index 0000000..003b865 --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterTexture.h @@ -0,0 +1,62 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERTEXTURE_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERTEXTURE_H_ + +#import +#import + +#import "FlutterMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +FLUTTER_DARWIN_EXPORT +/** + * Represents a texture that can be shared with Flutter. + * + * See also: https://github.com/flutter/plugins/tree/master/packages/camera + */ +@protocol FlutterTexture +/** Copy the contents of the texture into a `CVPixelBuffer`. */ +- (CVPixelBufferRef _Nullable)copyPixelBuffer; + +/** + * Called when the texture is unregistered. + * + * Called on the raster thread. + */ +@optional +- (void)onTextureUnregistered:(NSObject*)texture; +@end + +FLUTTER_DARWIN_EXPORT +/** + * A collection of registered `FlutterTexture`'s. + */ +@protocol FlutterTextureRegistry +/** + * Registers a `FlutterTexture` for usage in Flutter and returns an id that can be used to reference + * that texture when calling into Flutter with channels. Textures must be registered on the + * platform thread. On success returns the pointer to the registered texture, else returns 0. + */ +- (int64_t)registerTexture:(NSObject*)texture; +/** + * Notifies Flutter that the content of the previously registered texture has been updated. + * + * This will trigger a call to `-[FlutterTexture copyPixelBuffer]` on the raster thread. + */ +- (void)textureFrameAvailable:(int64_t)textureId; +/** + * Unregisters a `FlutterTexture` that has previously regeistered with `registerTexture:`. Textures + * must be unregistered on the platform thread. + * + * @param textureId The result that was previously returned from `registerTexture:`. + */ +- (void)unregisterTexture:(int64_t)textureId; +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERTEXTURE_H_ diff --git a/source/ios/Flutter.framework/Headers/FlutterViewController.h b/source/ios/Flutter.framework/Headers/FlutterViewController.h new file mode 100644 index 0000000..a218fd3 --- /dev/null +++ b/source/ios/Flutter.framework/Headers/FlutterViewController.h @@ -0,0 +1,260 @@ +// 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. + +#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERVIEWCONTROLLER_H_ +#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERVIEWCONTROLLER_H_ + +#import +#include + +#import "FlutterBinaryMessenger.h" +#import "FlutterDartProject.h" +#import "FlutterEngine.h" +#import "FlutterMacros.h" +#import "FlutterPlugin.h" +#import "FlutterTexture.h" + +NS_ASSUME_NONNULL_BEGIN + +@class FlutterEngine; + +/** + * The name used for semantic update notifications via `NSNotificationCenter`. + * + * The object passed as the sender is the `FlutterViewController` associated + * with the update. + */ +FLUTTER_DARWIN_EXPORT +// NOLINTNEXTLINE(readability-identifier-naming) +extern NSNotificationName const FlutterSemanticsUpdateNotification; + +/** + * A `UIViewController` implementation for Flutter views. + * + * Dart execution, channel communication, texture registration, and plugin registration are all + * handled by `FlutterEngine`. Calls on this class to those members all proxy through to the + * `FlutterEngine` attached FlutterViewController. + * + * A FlutterViewController can be initialized either with an already-running `FlutterEngine` via the + * `initWithEngine:` initializer, or it can be initialized with a `FlutterDartProject` that will be + * used to implicitly spin up a new `FlutterEngine`. Creating a `FlutterEngine` before showing a + * FlutterViewController can be used to pre-initialize the Dart VM and to prepare the isolate in + * order to reduce the latency to the first rendered frame. See + * https://flutter.dev/docs/development/add-to-app/performance for more details on loading + * latency. + * + * Holding a `FlutterEngine` independently of FlutterViewControllers can also be used to not to lose + * Dart-related state and asynchronous tasks when navigating back and forth between a + * FlutterViewController and other `UIViewController`s. + */ +FLUTTER_DARWIN_EXPORT +#ifdef __IPHONE_13_4 +@interface FlutterViewController + : UIViewController +#else +@interface FlutterViewController : UIViewController +#endif + +/** + * Initializes this FlutterViewController with the specified `FlutterEngine`. + * + * The initialized viewcontroller will attach itself to the engine as part of this process. + * + * @param engine The `FlutterEngine` instance to attach to. Cannot be nil. + * @param nibName The NIB name to initialize this UIViewController with. + * @param nibBundle The NIB bundle. + */ +- (instancetype)initWithEngine:(FlutterEngine*)engine + nibName:(nullable NSString*)nibName + bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a new FlutterViewController and `FlutterEngine` with the specified + * `FlutterDartProject`. + * + * This will implicitly create a new `FlutterEngine` which is retrievable via the `engine` property + * after initialization. + * + * @param project The `FlutterDartProject` to initialize the `FlutterEngine` with. + * @param nibName The NIB name to initialize this UIViewController with. + * @param nibBundle The NIB bundle. + */ +- (instancetype)initWithProject:(nullable FlutterDartProject*)project + nibName:(nullable NSString*)nibName + bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER; + +/** + * Initializes a new FlutterViewController and `FlutterEngine` with the specified + * `FlutterDartProject` and `initialRoute`. + * + * This will implicitly create a new `FlutterEngine` which is retrievable via the `engine` property + * after initialization. + * + * @param project The `FlutterDartProject` to initialize the `FlutterEngine` with. + * @param initialRoute The initial `Navigator` route to load. + * @param nibName The NIB name to initialize this UIViewController with. + * @param nibBundle The NIB bundle. + */ +- (instancetype)initWithProject:(nullable FlutterDartProject*)project + initialRoute:(nullable NSString*)initialRoute + nibName:(nullable NSString*)nibName + bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER; + +/** + * Initializer that is called from loading a FlutterViewController from a XIB. + * + * See also: + * https://developer.apple.com/documentation/foundation/nscoding/1416145-initwithcoder?language=objc + */ +- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_DESIGNATED_INITIALIZER; + +/** + * Registers a callback that will be invoked when the Flutter view has been rendered. + * The callback will be fired only once. + * + * Replaces an existing callback. Use a `nil` callback to unregister the existing one. + */ +- (void)setFlutterViewDidRenderCallback:(void (^)(void))callback; + +/** + * Returns the file name for the given asset. + * The returned file name can be used to access the asset in the application's + * main bundle. + * + * @param asset The name of the asset. The name can be hierarchical. + * @return The file name to be used for lookup in the main bundle. + */ +- (NSString*)lookupKeyForAsset:(NSString*)asset; + +/** + * Returns the file name for the given asset which originates from the specified + * package. + * The returned file name can be used to access the asset in the application's + * main bundle. + * + * @param asset The name of the asset. The name can be hierarchical. + * @param package The name of the package from which the asset originates. + * @return The file name to be used for lookup in the main bundle. + */ +- (NSString*)lookupKeyForAsset:(NSString*)asset fromPackage:(NSString*)package; + +/** + * Deprecated API to set initial route. + * + * Attempts to set the first route that the Flutter app shows if the Flutter + * runtime hasn't yet started. The default is "/". + * + * This method must be called immediately after `initWithProject` and has no + * effect when using `initWithEngine` if the `FlutterEngine` has already been + * run. + * + * Setting this after the Flutter started running has no effect. See `pushRoute` + * and `popRoute` to change the route after Flutter started running. + * + * This is deprecated because it needs to be called at the time of initialization + * and thus should just be in the `initWithProject` initializer. If using + * `initWithEngine`, the initial route should be set on the engine's + * initializer. + * + * @param route The name of the first route to show. + */ +- (void)setInitialRoute:(NSString*)route + FLUTTER_DEPRECATED("Use FlutterViewController initializer to specify initial route"); + +/** + * Instructs the Flutter Navigator (if any) to go back. + */ +- (void)popRoute; + +/** + * Instructs the Flutter Navigator (if any) to push a route on to the navigation + * stack. + * + * @param route The name of the route to push to the navigation stack. + */ +- (void)pushRoute:(NSString*)route; + +/** + * The `FlutterPluginRegistry` used by this FlutterViewController. + */ +- (id)pluginRegistry; + +/** + * A wrapper around UIAccessibilityIsVoiceOverRunning(). + * + * As a C function, UIAccessibilityIsVoiceOverRunning() cannot be mocked in testing. Mock + * this class method to testing features depends on UIAccessibilityIsVoiceOverRunning(). + */ ++ (BOOL)isUIAccessibilityIsVoiceOverRunning; + +/** + * True if at least one frame has rendered and the ViewController has appeared. + * + * This property is reset to false when the ViewController disappears. It is + * guaranteed to only alternate between true and false for observers. + */ +@property(nonatomic, readonly, getter=isDisplayingFlutterUI) BOOL displayingFlutterUI; + +/** + * Specifies the view to use as a splash screen. Flutter's rendering is asynchronous, so the first + * frame rendered by the Flutter application might not immediately appear when the Flutter view is + * initially placed in the view hierarchy. The splash screen view will be used as + * a replacement until the first frame is rendered. + * + * The view used should be appropriate for multiple sizes; an autoresizing mask to + * have a flexible width and height will be applied automatically. + * + * Set to nil to remove the splash screen view. + */ +@property(strong, nonatomic, nullable) UIView* splashScreenView; + +/** + * Attempts to set the `splashScreenView` property from the `UILaunchStoryboardName` from the + * main bundle's `Info.plist` file. This method will not change the value of `splashScreenView` + * if it cannot find a default one from a storyboard or nib. + * + * @return `YES` if successful, `NO` otherwise. + */ +- (BOOL)loadDefaultSplashScreenView; + +/** + * Controls whether the created view will be opaque or not. + * + * Default is `YES`. Note that setting this to `NO` may negatively impact performance + * when using hardware acceleration, and toggling this will trigger a re-layout of the + * view. + */ +@property(nonatomic, getter=isViewOpaque) BOOL viewOpaque; + +/** + * The `FlutterEngine` instance for this view controller. This could be the engine this + * `FlutterViewController` is initialized with or a new `FlutterEngine` implicitly created if + * no engine was supplied during initialization. + */ +@property(weak, nonatomic, readonly) FlutterEngine* engine; + +/** + * The `FlutterBinaryMessenger` associated with this FlutterViewController (used for communicating + * with channels). + * + * This is just a convenient way to get the |FlutterEngine|'s binary messenger. + */ +@property(nonatomic, readonly) NSObject* binaryMessenger; + +/** + * If the `FlutterViewController` creates a `FlutterEngine`, this property + * determines if that `FlutterEngine` has `allowHeadlessExecution` set. + * + * The intention is that this is used with the XIB. Otherwise, a + * `FlutterEngine` can just be sent to the init methods. + * + * See also: `-[FlutterEngine initWithName:project:allowHeadlessExecution:]` + */ +@property(nonatomic, readonly) BOOL engineAllowHeadlessExecution; + +@end + +NS_ASSUME_NONNULL_END + +#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERVIEWCONTROLLER_H_ diff --git a/source/ios/Flutter.framework/Info.plist b/source/ios/Flutter.framework/Info.plist new file mode 100644 index 0000000..6087946 --- /dev/null +++ b/source/ios/Flutter.framework/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + Flutter + CFBundleIdentifier + io.flutter.flutter + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Flutter + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + FlutterEngine + edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4 + ClangVersion + b'Fuchsia clang version 18.0.0 (https://llvm.googlesource.com/llvm-project 725656bdd885483c39f482a01ea25d67acf39c46)' + + diff --git a/source/ios/Flutter.framework/Modules/module.modulemap b/source/ios/Flutter.framework/Modules/module.modulemap new file mode 100644 index 0000000..bf81c8a --- /dev/null +++ b/source/ios/Flutter.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module Flutter { + umbrella header "Flutter.h" + + export * + module * { export * } +} diff --git a/source/ios/Flutter.framework/PrivacyInfo.xcprivacy b/source/ios/Flutter.framework/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..d4bc7fc --- /dev/null +++ b/source/ios/Flutter.framework/PrivacyInfo.xcprivacy @@ -0,0 +1,32 @@ + + + + + NSPrivacyTracking + + NSPrivacyTrackingDomains + + NSPrivacyCollectedDataTypes + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + 0A2A.1 + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + + diff --git a/source/ios/Flutter.framework/_CodeSignature/CodeResources b/source/ios/Flutter.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..5a3ef07 --- /dev/null +++ b/source/ios/Flutter.framework/_CodeSignature/CodeResources @@ -0,0 +1,311 @@ + + + + + files + + Headers/Flutter.h + + wTPJHICwW6wxY3b87ek7ITN5kJk= + + Headers/FlutterAppDelegate.h + + zbvYFr9dywry0lMMrHuNOOaNgkY= + + Headers/FlutterBinaryMessenger.h + + ksjIMu5IPw+Q3rw2YkAx0KjxkdM= + + Headers/FlutterCallbackCache.h + + V/wkSSsyYdMoexF6wPrC3KgkL4g= + + Headers/FlutterChannels.h + + vFsZXNqjflvqKqAzsIptQaTSJho= + + Headers/FlutterCodecs.h + + sUgX1PJzkvyinL5i7nS1ro/Kd5o= + + Headers/FlutterDartProject.h + + 1Ii7W6lYWZUeB6C6rtn269jAxgA= + + Headers/FlutterEngine.h + + AqVvCbPmgWMQKrRnib05Okrjbp0= + + Headers/FlutterEngineGroup.h + + D7zmZX01a5aYqFKalkcNejJ9toU= + + Headers/FlutterHeadlessDartRunner.h + + UqnnVWwQEYYX56eu7lt6dpR3LIc= + + Headers/FlutterMacros.h + + crQ9782ULebLQfIR+MbBkjB7d+k= + + Headers/FlutterPlatformViews.h + + ocQVSiAiUMYfVtZIn48LpYTJA5w= + + Headers/FlutterPlugin.h + + EARXud6pHb7ZYP8eXPDnluMqcXk= + + Headers/FlutterPluginAppLifeCycleDelegate.h + + qWHw5VIWEa0NmJ1PMhD16nlfRKk= + + Headers/FlutterTexture.h + + 7nFruy6bmD9XHvbzEwfdTXE4Rkk= + + Headers/FlutterViewController.h + + n0oqDKaGwBHcAUY4+7F+z78onKc= + + Info.plist + + PKo6XwAFHgqwL3taNHqLZdj8jq0= + + Modules/module.modulemap + + wJV5dCKEGl+FAtDc8wJJh/fvKXs= + + PrivacyInfo.xcprivacy + + D+cqXttvC7E/uziGjFdqFabWd7A= + + icudtl.dat + + Ubat0LvE4LUgCwHeyl0Anx2vnzk= + + + files2 + + Headers/Flutter.h + + hash2 + + auaf7wPxiASCYD2ACy1dfbMJvmONwFvSz1BWYAQrrSw= + + + Headers/FlutterAppDelegate.h + + hash2 + + o0iigVsmgwmtZfSv3X7hReDNYP5rXblslDnqq2s6UQc= + + + Headers/FlutterBinaryMessenger.h + + hash2 + + EXDk4t+7qCpyQkar+q9WHqY9bcK8eyohCwGVtBJhMy8= + + + Headers/FlutterCallbackCache.h + + hash2 + + 0h9+vK5K+r8moTsiGBfs6+TM9Qog089afHAy3gbcwDU= + + + Headers/FlutterChannels.h + + hash2 + + kg195C3vZLiOn8KeFQUy7DoVuA9VZDpqoBLVn64uGaI= + + + Headers/FlutterCodecs.h + + hash2 + + ZyqlHYuZbpFevVeny9Wdl0rVFgS7szIyssSiCyaaeFM= + + + Headers/FlutterDartProject.h + + hash2 + + Y5PEW7Tws4XpVmn15X/fdaU0d76hSeF803JlgrI20qE= + + + Headers/FlutterEngine.h + + hash2 + + RAOC6nDhZdghbAzsIZgVeq6qPt+MUNTfm/vkUnhmZO4= + + + Headers/FlutterEngineGroup.h + + hash2 + + OW47bgphAFby1w8jlGCDvYQnMT3W1UAKiw5oFHtY788= + + + Headers/FlutterHeadlessDartRunner.h + + hash2 + + nmZjZpvFCXrygf4U9aPkNi8VcI7cL5AtA+CY5uUWIL0= + + + Headers/FlutterMacros.h + + hash2 + + ebBVHSZcUnAbN4hRcYq3ttt6++z1Ybc8KVSYhVToD5k= + + + Headers/FlutterPlatformViews.h + + hash2 + + 4hl+kRU4PNNKdAHvYrliObXzSjRzow9Z18oOMRZIa0o= + + + Headers/FlutterPlugin.h + + hash2 + + HqbvCHqKWTzs5GjLAwupqEIYVi9yf5CrMdMe31EOwUA= + + + Headers/FlutterPluginAppLifeCycleDelegate.h + + hash2 + + +PMn+5SDj2Vd6RU8CQIt/JYl3T+8Dhp7HImqAzocoNk= + + + Headers/FlutterTexture.h + + hash2 + + 4kb25KahvBulQiElAYv/ZSbdkhkb5F/AKRZv4IjLsOw= + + + Headers/FlutterViewController.h + + hash2 + + phm49xhui2KkRomlqtmASHuU7lmd/s3qNCQpYxC0IMc= + + + Modules/module.modulemap + + hash2 + + 0VjriRpZ7AZZaP/0mMAPMJPhi6LoMB4MhXzL5j24tGs= + + + PrivacyInfo.xcprivacy + + hash2 + + n5XX54YqS1a2btkmvW1iLSplRagn0ZhHJ4tDjVcdQhI= + + + icudtl.dat + + hash2 + + ZepykIMSjfzhwAcmupMrkaqvXkhza1ZE3TdHjl8odaw= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/source/ios/Flutter.framework/icudtl.dat b/source/ios/Flutter.framework/icudtl.dat new file mode 100644 index 0000000..466abd8 Binary files /dev/null and b/source/ios/Flutter.framework/icudtl.dat differ diff --git a/flutter/ios/Flutter/AppFrameworkInfo.plist b/source/ios/Flutter/AppFrameworkInfo.plist similarity index 100% rename from flutter/ios/Flutter/AppFrameworkInfo.plist rename to source/ios/Flutter/AppFrameworkInfo.plist diff --git a/flutter/ios/Flutter/Debug.xcconfig b/source/ios/Flutter/Debug.xcconfig similarity index 100% rename from flutter/ios/Flutter/Debug.xcconfig rename to source/ios/Flutter/Debug.xcconfig diff --git a/flutter/ios/Flutter/Release.xcconfig b/source/ios/Flutter/Release.xcconfig similarity index 100% rename from flutter/ios/Flutter/Release.xcconfig rename to source/ios/Flutter/Release.xcconfig diff --git a/flutter/ios/PacketTunnel/Info.plist b/source/ios/PacketTunnel/Info.plist similarity index 100% rename from flutter/ios/PacketTunnel/Info.plist rename to source/ios/PacketTunnel/Info.plist diff --git a/flutter/ios/PacketTunnel/PacketTunnel.entitlements b/source/ios/PacketTunnel/PacketTunnel.entitlements similarity index 100% rename from flutter/ios/PacketTunnel/PacketTunnel.entitlements rename to source/ios/PacketTunnel/PacketTunnel.entitlements diff --git a/flutter/ios/PacketTunnel/site.dat b/source/ios/PacketTunnel/site.dat similarity index 100% rename from flutter/ios/PacketTunnel/site.dat rename to source/ios/PacketTunnel/site.dat diff --git a/flutter/ios/Podfile b/source/ios/Podfile similarity index 100% rename from flutter/ios/Podfile rename to source/ios/Podfile diff --git a/flutter/ios/Runner.xcodeproj/project.pbxproj b/source/ios/Runner.xcodeproj/project.pbxproj similarity index 98% rename from flutter/ios/Runner.xcodeproj/project.pbxproj rename to source/ios/Runner.xcodeproj/project.pbxproj index 6eb3200..85bd63a 100644 --- a/flutter/ios/Runner.xcodeproj/project.pbxproj +++ b/source/ios/Runner.xcodeproj/project.pbxproj @@ -35,6 +35,7 @@ C09C70752C3E5685000F6E01 /* leaf.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0CB10F52C3275EE00A1F217 /* leaf.xcframework */; }; C09C70762C3E5685000F6E01 /* leaf.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C0CB10F52C3275EE00A1F217 /* leaf.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C09CB0812C50A09A0028C461 /* TESWT.m in Sources */ = {isa = PBXBuildFile; fileRef = C09CB0802C50A09A0028C461 /* TESWT.m */; }; + C09CB08E2C50AEB40028C461 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C09CB08D2C50AEB40028C461 /* Flutter.framework */; }; C0CB10F62C3275EE00A1F217 /* leaf.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0CB10F52C3275EE00A1F217 /* leaf.xcframework */; }; DBC6F25A26C78B1D91884CE1 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */; }; E2B5FEC68AAAE043A3080A59 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */; }; @@ -127,6 +128,7 @@ C09CB07F2C50A09A0028C461 /* TESWT.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TESWT.h; sourceTree = ""; }; C09CB0802C50A09A0028C461 /* TESWT.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TESWT.m; sourceTree = ""; }; C09CB0832C50A0DD0028C461 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + C09CB08D2C50AEB40028C461 /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Flutter.framework; sourceTree = ""; }; C0CB10F52C3275EE00A1F217 /* leaf.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = leaf.xcframework; sourceTree = ""; }; /* End PBXFileReference section */ @@ -145,6 +147,7 @@ buildActionMask = 2147483647; files = ( C0CB10F62C3275EE00A1F217 /* leaf.xcframework in Frameworks */, + C09CB08E2C50AEB40028C461 /* Flutter.framework in Frameworks */, 2FD21F2425A364B700F556E0 /* NetworkExtension.framework in Frameworks */, DBC6F25A26C78B1D91884CE1 /* Pods_Runner.framework in Frameworks */, E2B5FEC68AAAE043A3080A59 /* Pods_Runner.framework in Frameworks */, @@ -251,6 +254,7 @@ isa = PBXGroup; children = ( C0CB10F52C3275EE00A1F217 /* leaf.xcframework */, + C09CB08D2C50AEB40028C461 /* Flutter.framework */, 2FD21EF825A363AA00F556E0 /* NetworkExtension.framework */, 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */, ); @@ -568,9 +572,11 @@ CURRENT_PROJECT_VERSION = 222; DEVELOPMENT_TEAM = 26XWXKSR3B; ENABLE_BITCODE = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", + "$(PROJECT_DIR)", ); INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = UUVPN; @@ -852,9 +858,11 @@ CURRENT_PROJECT_VERSION = 222; DEVELOPMENT_TEAM = 26XWXKSR3B; ENABLE_BITCODE = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", + "$(PROJECT_DIR)", ); INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = UUVPN; @@ -897,9 +905,11 @@ CURRENT_PROJECT_VERSION = 222; DEVELOPMENT_TEAM = 26XWXKSR3B; ENABLE_BITCODE = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", + "$(PROJECT_DIR)", ); INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = UUVPN; diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/source/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to source/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/source/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to source/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/source/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to source/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/source/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 100% rename from flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to source/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/flutter/ios/Runner.xcworkspace/contents.xcworkspacedata b/source/ios/Runner.xcworkspace/contents.xcworkspacedata similarity index 100% rename from flutter/ios/Runner.xcworkspace/contents.xcworkspacedata rename to source/ios/Runner.xcworkspace/contents.xcworkspacedata diff --git a/flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/source/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to source/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/flutter/ios/Runner/AppDelegate.swift b/source/ios/Runner/AppDelegate.swift similarity index 99% rename from flutter/ios/Runner/AppDelegate.swift rename to source/ios/Runner/AppDelegate.swift index 1c5a9fe..c047f1c 100644 --- a/flutter/ios/Runner/AppDelegate.swift +++ b/source/ios/Runner/AppDelegate.swift @@ -9,7 +9,7 @@ import os _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) +// GeneratedPluginRegistrant.register(with: self) let controller : FlutterViewController = window?.rootViewController as! FlutterViewController; let vpnManagerChannel = FlutterMethodChannel.init(name: "com.vpntunnel.vpnzeus/vpn_manager", diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md similarity index 100% rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md diff --git a/flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard b/source/ios/Runner/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard rename to source/ios/Runner/Base.lproj/LaunchScreen.storyboard diff --git a/flutter/ios/Runner/Base.lproj/Main.storyboard b/source/ios/Runner/Base.lproj/Main.storyboard similarity index 100% rename from flutter/ios/Runner/Base.lproj/Main.storyboard rename to source/ios/Runner/Base.lproj/Main.storyboard diff --git a/flutter/ios/Runner/Info.plist b/source/ios/Runner/Info.plist similarity index 100% rename from flutter/ios/Runner/Info.plist rename to source/ios/Runner/Info.plist diff --git a/flutter/ios/Runner/Runner-Bridging-Header.h b/source/ios/Runner/Runner-Bridging-Header.h similarity index 100% rename from flutter/ios/Runner/Runner-Bridging-Header.h rename to source/ios/Runner/Runner-Bridging-Header.h diff --git a/flutter/ios/Runner/Runner.entitlements b/source/ios/Runner/Runner.entitlements similarity index 100% rename from flutter/ios/Runner/Runner.entitlements rename to source/ios/Runner/Runner.entitlements diff --git a/flutter/ios/Runner/TESWT.h b/source/ios/Runner/TESWT.h similarity index 100% rename from flutter/ios/Runner/TESWT.h rename to source/ios/Runner/TESWT.h diff --git a/flutter/ios/Runner/TESWT.m b/source/ios/Runner/TESWT.m similarity index 100% rename from flutter/ios/Runner/TESWT.m rename to source/ios/Runner/TESWT.m diff --git a/flutter/ios/Shared/Helpers/FileManager+Helpers.swift b/source/ios/Shared/Helpers/FileManager+Helpers.swift similarity index 100% rename from flutter/ios/Shared/Helpers/FileManager+Helpers.swift rename to source/ios/Shared/Helpers/FileManager+Helpers.swift diff --git a/flutter/ios/Shared/Helpers/URL+Helpers.swift b/source/ios/Shared/Helpers/URL+Helpers.swift similarity index 100% rename from flutter/ios/Shared/Helpers/URL+Helpers.swift rename to source/ios/Shared/Helpers/URL+Helpers.swift diff --git a/flutter/ios/Shared/LeafAdapter.swift b/source/ios/Shared/LeafAdapter.swift similarity index 100% rename from flutter/ios/Shared/LeafAdapter.swift rename to source/ios/Shared/LeafAdapter.swift diff --git a/flutter/ios/Shared/Logger.swift b/source/ios/Shared/Logger.swift similarity index 100% rename from flutter/ios/Shared/Logger.swift rename to source/ios/Shared/Logger.swift diff --git a/flutter/ios/Shared/PacketTunnelProvider.swift b/source/ios/Shared/PacketTunnelProvider.swift similarity index 100% rename from flutter/ios/Shared/PacketTunnelProvider.swift rename to source/ios/Shared/PacketTunnelProvider.swift diff --git a/flutter/ios/Shared/TunnelConfiguration.swift b/source/ios/Shared/TunnelConfiguration.swift similarity index 100% rename from flutter/ios/Shared/TunnelConfiguration.swift rename to source/ios/Shared/TunnelConfiguration.swift diff --git a/flutter/ios/Shared/VPNManager.swift b/source/ios/Shared/VPNManager.swift similarity index 100% rename from flutter/ios/Shared/VPNManager.swift rename to source/ios/Shared/VPNManager.swift diff --git a/flutter/ios/Shared/template.conf b/source/ios/Shared/template.conf similarity index 100% rename from flutter/ios/Shared/template.conf rename to source/ios/Shared/template.conf diff --git a/flutter/ios/leaf.xcframework/Info.plist b/source/ios/leaf.xcframework/Info.plist similarity index 100% rename from flutter/ios/leaf.xcframework/Info.plist rename to source/ios/leaf.xcframework/Info.plist diff --git a/flutter/ios/leaf.xcframework/ios-arm64/Headers/leaf.h b/source/ios/leaf.xcframework/ios-arm64/Headers/leaf.h similarity index 100% rename from flutter/ios/leaf.xcframework/ios-arm64/Headers/leaf.h rename to source/ios/leaf.xcframework/ios-arm64/Headers/leaf.h diff --git a/flutter/ios/leaf.xcframework/ios-arm64/Headers/module.modulemap b/source/ios/leaf.xcframework/ios-arm64/Headers/module.modulemap similarity index 100% rename from flutter/ios/leaf.xcframework/ios-arm64/Headers/module.modulemap rename to source/ios/leaf.xcframework/ios-arm64/Headers/module.modulemap diff --git a/flutter/ios/leaf.xcframework/ios-arm64/libleaf.a b/source/ios/leaf.xcframework/ios-arm64/libleaf.a similarity index 100% rename from flutter/ios/leaf.xcframework/ios-arm64/libleaf.a rename to source/ios/leaf.xcframework/ios-arm64/libleaf.a diff --git a/flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/leaf.h b/source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/leaf.h similarity index 100% rename from flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/leaf.h rename to source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/leaf.h diff --git a/flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap b/source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap similarity index 100% rename from flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap rename to source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap diff --git a/flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/libleaf.a b/source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/libleaf.a similarity index 100% rename from flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/libleaf.a rename to source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/libleaf.a diff --git a/flutter/ios/leaf.xcframework/macos-arm64_x86_64/Headers/leaf.h b/source/ios/leaf.xcframework/macos-arm64_x86_64/Headers/leaf.h similarity index 100% rename from flutter/ios/leaf.xcframework/macos-arm64_x86_64/Headers/leaf.h rename to source/ios/leaf.xcframework/macos-arm64_x86_64/Headers/leaf.h diff --git a/flutter/ios/leaf.xcframework/macos-arm64_x86_64/Headers/module.modulemap b/source/ios/leaf.xcframework/macos-arm64_x86_64/Headers/module.modulemap similarity index 100% rename from flutter/ios/leaf.xcframework/macos-arm64_x86_64/Headers/module.modulemap rename to source/ios/leaf.xcframework/macos-arm64_x86_64/Headers/module.modulemap diff --git a/flutter/ios/leaf.xcframework/macos-arm64_x86_64/libleaf.a b/source/ios/leaf.xcframework/macos-arm64_x86_64/libleaf.a similarity index 100% rename from flutter/ios/leaf.xcframework/macos-arm64_x86_64/libleaf.a rename to source/ios/leaf.xcframework/macos-arm64_x86_64/libleaf.a diff --git a/flutter/ios/misc/download_data.sh b/source/ios/misc/download_data.sh similarity index 100% rename from flutter/ios/misc/download_data.sh rename to source/ios/misc/download_data.sh diff --git a/flutter/ios/misc/download_leaf.sh b/source/ios/misc/download_leaf.sh similarity index 100% rename from flutter/ios/misc/download_leaf.sh rename to source/ios/misc/download_leaf.sh diff --git a/flutter/l10n.yaml b/source/l10n.yaml similarity index 100% rename from flutter/l10n.yaml rename to source/l10n.yaml diff --git a/flutter/lib/adapters/leaf_ffi/config.dart b/source/lib/adapters/leaf_ffi/config.dart similarity index 100% rename from flutter/lib/adapters/leaf_ffi/config.dart rename to source/lib/adapters/leaf_ffi/config.dart diff --git a/flutter/lib/channels/Platform.dart b/source/lib/channels/Platform.dart similarity index 100% rename from flutter/lib/channels/Platform.dart rename to source/lib/channels/Platform.dart diff --git a/flutter/lib/channels/vpn_manager.dart b/source/lib/channels/vpn_manager.dart similarity index 100% rename from flutter/lib/channels/vpn_manager.dart rename to source/lib/channels/vpn_manager.dart diff --git a/flutter/lib/common/StringUtils.dart b/source/lib/common/StringUtils.dart similarity index 100% rename from flutter/lib/common/StringUtils.dart rename to source/lib/common/StringUtils.dart diff --git a/flutter/lib/common/colours.dart b/source/lib/common/colours.dart similarity index 100% rename from flutter/lib/common/colours.dart rename to source/lib/common/colours.dart diff --git a/flutter/lib/common/global.dart b/source/lib/common/global.dart similarity index 100% rename from flutter/lib/common/global.dart rename to source/lib/common/global.dart diff --git a/flutter/lib/common/public.dart b/source/lib/common/public.dart similarity index 100% rename from flutter/lib/common/public.dart rename to source/lib/common/public.dart diff --git a/flutter/lib/common/screen.dart b/source/lib/common/screen.dart similarity index 100% rename from flutter/lib/common/screen.dart rename to source/lib/common/screen.dart diff --git a/flutter/lib/common/styles.dart b/source/lib/common/styles.dart similarity index 100% rename from flutter/lib/common/styles.dart rename to source/lib/common/styles.dart diff --git a/flutter/lib/constant/app_colors.dart b/source/lib/constant/app_colors.dart similarity index 100% rename from flutter/lib/constant/app_colors.dart rename to source/lib/constant/app_colors.dart diff --git a/flutter/lib/constant/app_dimens.dart b/source/lib/constant/app_dimens.dart similarity index 100% rename from flutter/lib/constant/app_dimens.dart rename to source/lib/constant/app_dimens.dart diff --git a/flutter/lib/constant/app_images.dart b/source/lib/constant/app_images.dart similarity index 100% rename from flutter/lib/constant/app_images.dart rename to source/lib/constant/app_images.dart diff --git a/flutter/lib/constant/app_strings.dart b/source/lib/constant/app_strings.dart similarity index 100% rename from flutter/lib/constant/app_strings.dart rename to source/lib/constant/app_strings.dart diff --git a/flutter/lib/constant/app_urls.dart b/source/lib/constant/app_urls.dart similarity index 100% rename from flutter/lib/constant/app_urls.dart rename to source/lib/constant/app_urls.dart diff --git a/flutter/lib/entity/login_entity.dart b/source/lib/entity/login_entity.dart similarity index 100% rename from flutter/lib/entity/login_entity.dart rename to source/lib/entity/login_entity.dart diff --git a/flutter/lib/entity/plan_entity.dart b/source/lib/entity/plan_entity.dart similarity index 100% rename from flutter/lib/entity/plan_entity.dart rename to source/lib/entity/plan_entity.dart diff --git a/flutter/lib/entity/server_entity.dart b/source/lib/entity/server_entity.dart similarity index 100% rename from flutter/lib/entity/server_entity.dart rename to source/lib/entity/server_entity.dart diff --git a/flutter/lib/entity/user_entity.dart b/source/lib/entity/user_entity.dart similarity index 100% rename from flutter/lib/entity/user_entity.dart rename to source/lib/entity/user_entity.dart diff --git a/flutter/lib/entity/user_subscribe_entity.dart b/source/lib/entity/user_subscribe_entity.dart similarity index 100% rename from flutter/lib/entity/user_subscribe_entity.dart rename to source/lib/entity/user_subscribe_entity.dart diff --git a/flutter/lib/http/api/apis.dart b/source/lib/http/api/apis.dart similarity index 100% rename from flutter/lib/http/api/apis.dart rename to source/lib/http/api/apis.dart diff --git a/flutter/lib/http/api_response.dart b/source/lib/http/api_response.dart similarity index 100% rename from flutter/lib/http/api_response.dart rename to source/lib/http/api_response.dart diff --git a/flutter/lib/http/error_interceptor.dart b/source/lib/http/error_interceptor.dart similarity index 100% rename from flutter/lib/http/error_interceptor.dart rename to source/lib/http/error_interceptor.dart diff --git a/flutter/lib/http/http.dart b/source/lib/http/http.dart similarity index 100% rename from flutter/lib/http/http.dart rename to source/lib/http/http.dart diff --git a/flutter/lib/http/http_exceptions.dart b/source/lib/http/http_exceptions.dart similarity index 100% rename from flutter/lib/http/http_exceptions.dart rename to source/lib/http/http_exceptions.dart diff --git a/flutter/lib/http/http_utils.dart b/source/lib/http/http_utils.dart similarity index 100% rename from flutter/lib/http/http_utils.dart rename to source/lib/http/http_utils.dart diff --git a/flutter/lib/l10n/app_en.arb b/source/lib/l10n/app_en.arb similarity index 100% rename from flutter/lib/l10n/app_en.arb rename to source/lib/l10n/app_en.arb diff --git a/flutter/lib/l10n/app_zh.arb b/source/lib/l10n/app_zh.arb similarity index 100% rename from flutter/lib/l10n/app_zh.arb rename to source/lib/l10n/app_zh.arb diff --git a/flutter/lib/main.dart b/source/lib/main.dart similarity index 100% rename from flutter/lib/main.dart rename to source/lib/main.dart diff --git a/flutter/lib/model/UserPreference.dart b/source/lib/model/UserPreference.dart similarity index 100% rename from flutter/lib/model/UserPreference.dart rename to source/lib/model/UserPreference.dart diff --git a/flutter/lib/model/flags.dart b/source/lib/model/flags.dart similarity index 100% rename from flutter/lib/model/flags.dart rename to source/lib/model/flags.dart diff --git a/flutter/lib/model/themeCollection.dart b/source/lib/model/themeCollection.dart similarity index 100% rename from flutter/lib/model/themeCollection.dart rename to source/lib/model/themeCollection.dart diff --git a/flutter/lib/models/app_model.dart b/source/lib/models/app_model.dart similarity index 100% rename from flutter/lib/models/app_model.dart rename to source/lib/models/app_model.dart diff --git a/flutter/lib/models/base_model.dart b/source/lib/models/base_model.dart similarity index 100% rename from flutter/lib/models/base_model.dart rename to source/lib/models/base_model.dart diff --git a/flutter/lib/models/login_model.dart b/source/lib/models/login_model.dart similarity index 100% rename from flutter/lib/models/login_model.dart rename to source/lib/models/login_model.dart diff --git a/flutter/lib/models/page_state.dart b/source/lib/models/page_state.dart similarity index 100% rename from flutter/lib/models/page_state.dart rename to source/lib/models/page_state.dart diff --git a/flutter/lib/models/plan_model.dart b/source/lib/models/plan_model.dart similarity index 100% rename from flutter/lib/models/plan_model.dart rename to source/lib/models/plan_model.dart diff --git a/flutter/lib/models/server_model.dart b/source/lib/models/server_model.dart similarity index 100% rename from flutter/lib/models/server_model.dart rename to source/lib/models/server_model.dart diff --git a/flutter/lib/models/user_model.dart b/source/lib/models/user_model.dart similarity index 100% rename from flutter/lib/models/user_model.dart rename to source/lib/models/user_model.dart diff --git a/flutter/lib/models/user_subscribe_model.dart b/source/lib/models/user_subscribe_model.dart similarity index 100% rename from flutter/lib/models/user_subscribe_model.dart rename to source/lib/models/user_subscribe_model.dart diff --git a/flutter/lib/pages/404/not_find_page.dart b/source/lib/pages/404/not_find_page.dart similarity index 100% rename from flutter/lib/pages/404/not_find_page.dart rename to source/lib/pages/404/not_find_page.dart diff --git a/flutter/lib/pages/ProOnecePage.dart b/source/lib/pages/ProOnecePage.dart similarity index 100% rename from flutter/lib/pages/ProOnecePage.dart rename to source/lib/pages/ProOnecePage.dart diff --git a/flutter/lib/pages/accountPage.dart b/source/lib/pages/accountPage.dart similarity index 100% rename from flutter/lib/pages/accountPage.dart rename to source/lib/pages/accountPage.dart diff --git a/flutter/lib/pages/crisp_page.dart b/source/lib/pages/crisp_page.dart similarity index 100% rename from flutter/lib/pages/crisp_page.dart rename to source/lib/pages/crisp_page.dart diff --git a/flutter/lib/pages/home/home_page.dart b/source/lib/pages/home/home_page.dart similarity index 100% rename from flutter/lib/pages/home/home_page.dart rename to source/lib/pages/home/home_page.dart diff --git a/flutter/lib/pages/homePage.dart b/source/lib/pages/homePage.dart similarity index 100% rename from flutter/lib/pages/homePage.dart rename to source/lib/pages/homePage.dart diff --git a/flutter/lib/pages/login/login_page.dart b/source/lib/pages/login/login_page.dart similarity index 100% rename from flutter/lib/pages/login/login_page.dart rename to source/lib/pages/login/login_page.dart diff --git a/flutter/lib/pages/my_profile.dart b/source/lib/pages/my_profile.dart similarity index 100% rename from flutter/lib/pages/my_profile.dart rename to source/lib/pages/my_profile.dart diff --git a/flutter/lib/pages/plan/plan_page.dart b/source/lib/pages/plan/plan_page.dart similarity index 100% rename from flutter/lib/pages/plan/plan_page.dart rename to source/lib/pages/plan/plan_page.dart diff --git a/flutter/lib/pages/proPage.dart b/source/lib/pages/proPage.dart similarity index 100% rename from flutter/lib/pages/proPage.dart rename to source/lib/pages/proPage.dart diff --git a/flutter/lib/pages/server_list.dart b/source/lib/pages/server_list.dart similarity index 100% rename from flutter/lib/pages/server_list.dart rename to source/lib/pages/server_list.dart diff --git a/flutter/lib/pages/webview_widget.dart b/source/lib/pages/webview_widget.dart similarity index 100% rename from flutter/lib/pages/webview_widget.dart rename to source/lib/pages/webview_widget.dart diff --git a/flutter/lib/resources/app_colors.dart b/source/lib/resources/app_colors.dart similarity index 100% rename from flutter/lib/resources/app_colors.dart rename to source/lib/resources/app_colors.dart diff --git a/flutter/lib/resources/app_constants.dart b/source/lib/resources/app_constants.dart similarity index 100% rename from flutter/lib/resources/app_constants.dart rename to source/lib/resources/app_constants.dart diff --git a/flutter/lib/resources/app_router.dart b/source/lib/resources/app_router.dart similarity index 100% rename from flutter/lib/resources/app_router.dart rename to source/lib/resources/app_router.dart diff --git a/flutter/lib/resources/app_routes.dart b/source/lib/resources/app_routes.dart similarity index 100% rename from flutter/lib/resources/app_routes.dart rename to source/lib/resources/app_routes.dart diff --git a/flutter/lib/resources/app_shape.dart b/source/lib/resources/app_shape.dart similarity index 100% rename from flutter/lib/resources/app_shape.dart rename to source/lib/resources/app_shape.dart diff --git a/flutter/lib/resources/app_strings.dart b/source/lib/resources/app_strings.dart similarity index 100% rename from flutter/lib/resources/app_strings.dart rename to source/lib/resources/app_strings.dart diff --git a/flutter/lib/resources/app_theme.dart b/source/lib/resources/app_theme.dart similarity index 100% rename from flutter/lib/resources/app_theme.dart rename to source/lib/resources/app_theme.dart diff --git a/flutter/lib/resources/app_typography.dart b/source/lib/resources/app_typography.dart similarity index 100% rename from flutter/lib/resources/app_typography.dart rename to source/lib/resources/app_typography.dart diff --git a/flutter/lib/resources/app_values.dart b/source/lib/resources/app_values.dart similarity index 100% rename from flutter/lib/resources/app_values.dart rename to source/lib/resources/app_values.dart diff --git a/flutter/lib/router/application.dart b/source/lib/router/application.dart similarity index 100% rename from flutter/lib/router/application.dart rename to source/lib/router/application.dart diff --git a/flutter/lib/router/router_handlers.dart b/source/lib/router/router_handlers.dart similarity index 100% rename from flutter/lib/router/router_handlers.dart rename to source/lib/router/router_handlers.dart diff --git a/flutter/lib/router/routers.dart b/source/lib/router/routers.dart similarity index 100% rename from flutter/lib/router/routers.dart rename to source/lib/router/routers.dart diff --git a/flutter/lib/routes/OnceNotice.dart b/source/lib/routes/OnceNotice.dart similarity index 100% rename from flutter/lib/routes/OnceNotice.dart rename to source/lib/routes/OnceNotice.dart diff --git a/flutter/lib/routes/chooseLocationRoute.dart b/source/lib/routes/chooseLocationRoute.dart similarity index 100% rename from flutter/lib/routes/chooseLocationRoute.dart rename to source/lib/routes/chooseLocationRoute.dart diff --git a/flutter/lib/routes/proRoute.dart b/source/lib/routes/proRoute.dart similarity index 100% rename from flutter/lib/routes/proRoute.dart rename to source/lib/routes/proRoute.dart diff --git a/flutter/lib/routes/settingsRoute.dart b/source/lib/routes/settingsRoute.dart similarity index 100% rename from flutter/lib/routes/settingsRoute.dart rename to source/lib/routes/settingsRoute.dart diff --git a/flutter/lib/service/plan_service.dart b/source/lib/service/plan_service.dart similarity index 100% rename from flutter/lib/service/plan_service.dart rename to source/lib/service/plan_service.dart diff --git a/flutter/lib/service/server_service.dart b/source/lib/service/server_service.dart similarity index 100% rename from flutter/lib/service/server_service.dart rename to source/lib/service/server_service.dart diff --git a/flutter/lib/service/user_service.dart b/source/lib/service/user_service.dart similarity index 100% rename from flutter/lib/service/user_service.dart rename to source/lib/service/user_service.dart diff --git a/flutter/lib/utils/common_util.dart b/source/lib/utils/common_util.dart similarity index 100% rename from flutter/lib/utils/common_util.dart rename to source/lib/utils/common_util.dart diff --git a/flutter/lib/utils/encrypt_util.dart b/source/lib/utils/encrypt_util.dart similarity index 100% rename from flutter/lib/utils/encrypt_util.dart rename to source/lib/utils/encrypt_util.dart diff --git a/flutter/lib/utils/http_util.dart b/source/lib/utils/http_util.dart similarity index 100% rename from flutter/lib/utils/http_util.dart rename to source/lib/utils/http_util.dart diff --git a/flutter/lib/utils/l10n.dart b/source/lib/utils/l10n.dart similarity index 100% rename from flutter/lib/utils/l10n.dart rename to source/lib/utils/l10n.dart diff --git a/flutter/lib/utils/message_util.dart b/source/lib/utils/message_util.dart similarity index 100% rename from flutter/lib/utils/message_util.dart rename to source/lib/utils/message_util.dart diff --git a/flutter/lib/utils/navigator_util.dart b/source/lib/utils/navigator_util.dart similarity index 100% rename from flutter/lib/utils/navigator_util.dart rename to source/lib/utils/navigator_util.dart diff --git a/flutter/lib/utils/shared_preferences_util.dart b/source/lib/utils/shared_preferences_util.dart similarity index 100% rename from flutter/lib/utils/shared_preferences_util.dart rename to source/lib/utils/shared_preferences_util.dart diff --git a/flutter/lib/utils/sliver_grid_delegate.dart b/source/lib/utils/sliver_grid_delegate.dart similarity index 100% rename from flutter/lib/utils/sliver_grid_delegate.dart rename to source/lib/utils/sliver_grid_delegate.dart diff --git a/flutter/lib/utils/sp_util.dart b/source/lib/utils/sp_util.dart similarity index 100% rename from flutter/lib/utils/sp_util.dart rename to source/lib/utils/sp_util.dart diff --git a/flutter/lib/utils/status.dart b/source/lib/utils/status.dart similarity index 100% rename from flutter/lib/utils/status.dart rename to source/lib/utils/status.dart diff --git a/flutter/lib/utils/strings.dart b/source/lib/utils/strings.dart similarity index 100% rename from flutter/lib/utils/strings.dart rename to source/lib/utils/strings.dart diff --git a/flutter/lib/utils/transfer_util.dart b/source/lib/utils/transfer_util.dart similarity index 100% rename from flutter/lib/utils/transfer_util.dart rename to source/lib/utils/transfer_util.dart diff --git a/flutter/lib/utils/typedef/enums.dart b/source/lib/utils/typedef/enums.dart similarity index 100% rename from flutter/lib/utils/typedef/enums.dart rename to source/lib/utils/typedef/enums.dart diff --git a/flutter/lib/utils/typedef/function.dart b/source/lib/utils/typedef/function.dart similarity index 100% rename from flutter/lib/utils/typedef/function.dart rename to source/lib/utils/typedef/function.dart diff --git a/flutter/lib/utils/typedef/functions.dart b/source/lib/utils/typedef/functions.dart similarity index 100% rename from flutter/lib/utils/typedef/functions.dart rename to source/lib/utils/typedef/functions.dart diff --git a/flutter/lib/utils/ui/auto_ui.dart b/source/lib/utils/ui/auto_ui.dart similarity index 100% rename from flutter/lib/utils/ui/auto_ui.dart rename to source/lib/utils/ui/auto_ui.dart diff --git a/flutter/lib/widgets/ProgressView.dart b/source/lib/widgets/ProgressView.dart similarity index 100% rename from flutter/lib/widgets/ProgressView.dart rename to source/lib/widgets/ProgressView.dart diff --git a/flutter/lib/widgets/bottom_block.dart b/source/lib/widgets/bottom_block.dart similarity index 100% rename from flutter/lib/widgets/bottom_block.dart rename to source/lib/widgets/bottom_block.dart diff --git a/flutter/lib/widgets/circle_painter.dart b/source/lib/widgets/circle_painter.dart similarity index 100% rename from flutter/lib/widgets/circle_painter.dart rename to source/lib/widgets/circle_painter.dart diff --git a/flutter/lib/widgets/connection_stats.dart b/source/lib/widgets/connection_stats.dart similarity index 100% rename from flutter/lib/widgets/connection_stats.dart rename to source/lib/widgets/connection_stats.dart diff --git a/flutter/lib/widgets/home_widget.dart b/source/lib/widgets/home_widget.dart similarity index 100% rename from flutter/lib/widgets/home_widget.dart rename to source/lib/widgets/home_widget.dart diff --git a/flutter/lib/widgets/logo_bar.dart b/source/lib/widgets/logo_bar.dart similarity index 100% rename from flutter/lib/widgets/logo_bar.dart rename to source/lib/widgets/logo_bar.dart diff --git a/flutter/lib/widgets/my_subscribe.dart b/source/lib/widgets/my_subscribe.dart similarity index 100% rename from flutter/lib/widgets/my_subscribe.dart rename to source/lib/widgets/my_subscribe.dart diff --git a/flutter/lib/widgets/plan_list.dart b/source/lib/widgets/plan_list.dart similarity index 100% rename from flutter/lib/widgets/plan_list.dart rename to source/lib/widgets/plan_list.dart diff --git a/flutter/lib/widgets/power_btn.dart b/source/lib/widgets/power_btn.dart similarity index 100% rename from flutter/lib/widgets/power_btn.dart rename to source/lib/widgets/power_btn.dart diff --git a/flutter/lib/widgets/profile_widget.dart b/source/lib/widgets/profile_widget.dart similarity index 100% rename from flutter/lib/widgets/profile_widget.dart rename to source/lib/widgets/profile_widget.dart diff --git a/flutter/lib/widgets/recent_connection_bottom_sheet.dart b/source/lib/widgets/recent_connection_bottom_sheet.dart similarity index 100% rename from flutter/lib/widgets/recent_connection_bottom_sheet.dart rename to source/lib/widgets/recent_connection_bottom_sheet.dart diff --git a/flutter/lib/widgets/sail_app_bar.dart b/source/lib/widgets/sail_app_bar.dart similarity index 100% rename from flutter/lib/widgets/sail_app_bar.dart rename to source/lib/widgets/sail_app_bar.dart diff --git a/flutter/lib/widgets/select_location.dart b/source/lib/widgets/select_location.dart similarity index 100% rename from flutter/lib/widgets/select_location.dart rename to source/lib/widgets/select_location.dart diff --git a/flutter/lib/widgets/sliding_cards.dart b/source/lib/widgets/sliding_cards.dart similarity index 100% rename from flutter/lib/widgets/sliding_cards.dart rename to source/lib/widgets/sliding_cards.dart diff --git a/flutter/lib/widgets/watermuticicel.dart b/source/lib/widgets/watermuticicel.dart similarity index 100% rename from flutter/lib/widgets/watermuticicel.dart rename to source/lib/widgets/watermuticicel.dart diff --git a/flutter/lib/widgets/waterrepper.dart b/source/lib/widgets/waterrepper.dart similarity index 100% rename from flutter/lib/widgets/waterrepper.dart rename to source/lib/widgets/waterrepper.dart diff --git a/flutter/pubspec.yaml b/source/pubspec.yaml similarity index 100% rename from flutter/pubspec.yaml rename to source/pubspec.yaml diff --git a/flutter/test/widget_test.dart b/source/test/widget_test.dart similarity index 100% rename from flutter/test/widget_test.dart rename to source/test/widget_test.dart diff --git a/flutter/timefile b/source/timefile similarity index 100% rename from flutter/timefile rename to source/timefile