From 4eae5f5200c4f7a7af2398b24662a91a6d2f64ea Mon Sep 17 00:00:00 2001 From: lianbq Date: Thu, 18 Aug 2022 17:11:26 +0800 Subject: [PATCH 01/12] add package walltconnect_dart --- packages/walletconnect_dart/.gitignore | 77 ++ packages/walletconnect_dart/.metadata | 10 + packages/walletconnect_dart/CHANGELOG.md | 43 ++ packages/walletconnect_dart/CONTRIBUTING.md | 60 ++ packages/walletconnect_dart/LICENSE | 21 + packages/walletconnect_dart/README.md | 194 +++++ .../walletconnect_dart/analysis_options.yaml | 76 ++ .../example/dapp/.gitignore | 6 + .../example/dapp/CHANGELOG.md | 3 + .../walletconnect_dart/example/dapp/README.md | 2 + .../example/dapp/analysis_options.yaml | 30 + .../example/dapp/bin/dapp.dart | 1 + .../example/dapp/lib/dapp.dart | 69 ++ .../example/dapp/pubspec.yaml | 21 + .../example/dapp/test/dapp_test.dart | 1 + .../walletconnect_dart/example/example.md | 101 +++ .../example/mobile/.gitignore | 46 ++ .../example/mobile/.metadata | 10 + .../example/mobile/README.md | 16 + .../example/mobile/analysis_options.yaml | 18 + .../example/mobile/android/.gitignore | 13 + .../example/mobile/android/app/build.gradle | 68 ++ .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 41 ++ .../com/example/example/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + .../example/mobile/android/build.gradle | 29 + .../example/mobile/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + .../example/mobile/android/settings.gradle | 11 + .../example/mobile/ios/.gitignore | 34 + .../mobile/ios/Flutter/AppFrameworkInfo.plist | 26 + .../example/mobile/ios/Flutter/Debug.xcconfig | 2 + .../mobile/ios/Flutter/Release.xcconfig | 2 + .../ios/Runner.xcodeproj/project.pbxproj | 539 ++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 +++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../mobile/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 ++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 26 + .../example/mobile/ios/Runner/Info.plist | 45 ++ .../ios/Runner/Runner-Bridging-Header.h | 1 + .../lib/algorand_transaction_tester.dart | 132 ++++ .../lib/ethereum_transaction_tester.dart | 115 +++ .../example/mobile/lib/main.dart | 217 ++++++ .../mobile/lib/transaction_tester.dart | 15 + .../example/mobile/lib/wallet.dart | 120 ++++ .../mobile/lib/wallet_connect_lifecycle.dart | 48 ++ .../example/mobile/macos/.gitignore | 7 + .../macos/Flutter/Flutter-Debug.xcconfig | 2 + .../macos/Flutter/Flutter-Release.xcconfig | 2 + .../macos/Runner.xcodeproj/project.pbxproj | 572 +++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 89 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../mobile/macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 46993 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 3276 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 1429 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 5933 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1243 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 14800 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 1874 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 339 +++++++++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + .../macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 12 + .../example/mobile/macos/Runner/Info.plist | 32 + .../macos/Runner/MainFlutterWindow.swift | 15 + .../mobile/macos/Runner/Release.entitlements | 8 + .../example/mobile/pubspec.yaml | 33 + .../example/mobile/test/widget_test.dart | 29 + .../example/mobile/web/favicon.png | Bin 0 -> 917 bytes .../example/mobile/web/icons/Icon-192.png | Bin 0 -> 5292 bytes .../example/mobile/web/icons/Icon-512.png | Bin 0 -> 8252 bytes .../mobile/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes .../mobile/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes .../example/mobile/web/index.html | 101 +++ .../example/mobile/web/manifest.json | 35 + .../example/wallet/.gitignore | 6 + .../example/wallet/CHANGELOG.md | 3 + .../example/wallet/README.md | 2 + .../example/wallet/analysis_options.yaml | 28 + .../example/wallet/bin/wallet.dart | 1 + .../example/wallet/lib/wallet.dart | 79 +++ .../example/wallet/pubspec.yaml | 21 + .../example/wallet/test/wallet_test.dart | 1 + .../walletconnect_dart/lib/src/api/api.dart | 6 + .../lib/src/api/json_rpc_request.dart | 24 + .../lib/src/api/json_rpc_request.g.dart | 23 + .../lib/src/api/json_rpc_response.dart | 30 + .../lib/src/api/json_rpc_response.g.dart | 32 + .../api/walletconnect/wc_session_request.dart | 34 + .../walletconnect/wc_session_request.g.dart | 23 + .../wc_session_request_response.dart | 48 ++ .../wc_session_request_response.g.dart | 32 + .../wc_session_update_response.dart | 39 ++ .../wc_session_update_response.g.dart | 30 + .../src/api/websocket/web_socket_message.dart | 26 + .../api/websocket/web_socket_message.g.dart | 21 + .../lib/src/crypto/cipher_box.dart | 25 + .../lib/src/crypto/crypto.dart | 2 + .../lib/src/crypto/encrypted_payload.dart | 26 + .../lib/src/crypto/encrypted_payload.g.dart | 21 + .../lib/src/crypto/wallet_connect_cipher.dart | 92 +++ .../lib/src/exceptions/error_code.dart | 55 ++ .../lib/src/exceptions/exceptions.dart | 2 + .../exceptions/wallet_connect_exception.dart | 77 ++ .../lib/src/network/network.dart | 1 + .../src/network/reconnecting_web_socket.dart | 169 +++++ .../lib/src/network/socket_transport.dart | 158 +++++ .../algorand_walletconnect_provider.dart | 73 ++ .../ethereum_walletconnect_provider.dart | 165 +++++ .../lib/src/providers/providers.dart | 3 + .../providers/wallet_connect_provider.dart | 12 + .../lib/src/session/peer_meta.dart | 24 + .../lib/src/session/peer_meta.g.dart | 22 + .../lib/src/session/session.dart | 4 + .../lib/src/session/session_status.dart | 33 + .../lib/src/session/session_storage.dart | 9 + .../src/session/wallet_connect_session.dart | 109 +++ .../src/session/wallet_connect_session.g.dart | 52 ++ .../lib/src/utils/bridge_utils.dart | 31 + .../lib/src/utils/event.dart | 6 + .../lib/src/utils/event_bus.dart | 71 ++ .../lib/src/utils/key_converter.dart | 26 + .../lib/src/walletconnect.dart | 660 ++++++++++++++++++ .../lib/walletconnect_dart.dart | 9 + packages/walletconnect_dart/pubspec.yaml | 38 + .../test/flutter_walletconnect_test.dart | 1 + 169 files changed, 6610 insertions(+) create mode 100644 packages/walletconnect_dart/.gitignore create mode 100644 packages/walletconnect_dart/.metadata create mode 100644 packages/walletconnect_dart/CHANGELOG.md create mode 100644 packages/walletconnect_dart/CONTRIBUTING.md create mode 100644 packages/walletconnect_dart/LICENSE create mode 100644 packages/walletconnect_dart/README.md create mode 100644 packages/walletconnect_dart/analysis_options.yaml create mode 100644 packages/walletconnect_dart/example/dapp/.gitignore create mode 100644 packages/walletconnect_dart/example/dapp/CHANGELOG.md create mode 100644 packages/walletconnect_dart/example/dapp/README.md create mode 100644 packages/walletconnect_dart/example/dapp/analysis_options.yaml create mode 100644 packages/walletconnect_dart/example/dapp/bin/dapp.dart create mode 100644 packages/walletconnect_dart/example/dapp/lib/dapp.dart create mode 100644 packages/walletconnect_dart/example/dapp/pubspec.yaml create mode 100644 packages/walletconnect_dart/example/dapp/test/dapp_test.dart create mode 100644 packages/walletconnect_dart/example/example.md create mode 100644 packages/walletconnect_dart/example/mobile/.gitignore create mode 100644 packages/walletconnect_dart/example/mobile/.metadata create mode 100644 packages/walletconnect_dart/example/mobile/README.md create mode 100644 packages/walletconnect_dart/example/mobile/analysis_options.yaml create mode 100644 packages/walletconnect_dart/example/mobile/android/.gitignore create mode 100644 packages/walletconnect_dart/example/mobile/android/app/build.gradle create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/debug/AndroidManifest.xml create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/AndroidManifest.xml create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/kotlin/com/example/example/MainActivity.kt create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/drawable/launch_background.xml create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/values-night/styles.xml create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/main/res/values/styles.xml create mode 100644 packages/walletconnect_dart/example/mobile/android/app/src/profile/AndroidManifest.xml create mode 100644 packages/walletconnect_dart/example/mobile/android/build.gradle create mode 100644 packages/walletconnect_dart/example/mobile/android/gradle.properties create mode 100644 packages/walletconnect_dart/example/mobile/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/walletconnect_dart/example/mobile/android/settings.gradle create mode 100644 packages/walletconnect_dart/example/mobile/ios/.gitignore create mode 100644 packages/walletconnect_dart/example/mobile/ios/Flutter/AppFrameworkInfo.plist create mode 100644 packages/walletconnect_dart/example/mobile/ios/Flutter/Debug.xcconfig create mode 100644 packages/walletconnect_dart/example/mobile/ios/Flutter/Release.xcconfig create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.pbxproj create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/AppDelegate.swift create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Base.lproj/Main.storyboard create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Info.plist create mode 100644 packages/walletconnect_dart/example/mobile/ios/Runner/Runner-Bridging-Header.h create mode 100644 packages/walletconnect_dart/example/mobile/lib/algorand_transaction_tester.dart create mode 100644 packages/walletconnect_dart/example/mobile/lib/ethereum_transaction_tester.dart create mode 100644 packages/walletconnect_dart/example/mobile/lib/main.dart create mode 100644 packages/walletconnect_dart/example/mobile/lib/transaction_tester.dart create mode 100644 packages/walletconnect_dart/example/mobile/lib/wallet.dart create mode 100644 packages/walletconnect_dart/example/mobile/lib/wallet_connect_lifecycle.dart create mode 100644 packages/walletconnect_dart/example/mobile/macos/.gitignore create mode 100644 packages/walletconnect_dart/example/mobile/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 packages/walletconnect_dart/example/mobile/macos/Flutter/Flutter-Release.xcconfig create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/project.pbxproj create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/AppDelegate.swift create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Debug.xcconfig create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Release.xcconfig create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Warnings.xcconfig create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/DebugProfile.entitlements create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Info.plist create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/MainFlutterWindow.swift create mode 100644 packages/walletconnect_dart/example/mobile/macos/Runner/Release.entitlements create mode 100644 packages/walletconnect_dart/example/mobile/pubspec.yaml create mode 100644 packages/walletconnect_dart/example/mobile/test/widget_test.dart create mode 100644 packages/walletconnect_dart/example/mobile/web/favicon.png create mode 100644 packages/walletconnect_dart/example/mobile/web/icons/Icon-192.png create mode 100644 packages/walletconnect_dart/example/mobile/web/icons/Icon-512.png create mode 100644 packages/walletconnect_dart/example/mobile/web/icons/Icon-maskable-192.png create mode 100644 packages/walletconnect_dart/example/mobile/web/icons/Icon-maskable-512.png create mode 100644 packages/walletconnect_dart/example/mobile/web/index.html create mode 100644 packages/walletconnect_dart/example/mobile/web/manifest.json create mode 100644 packages/walletconnect_dart/example/wallet/.gitignore create mode 100644 packages/walletconnect_dart/example/wallet/CHANGELOG.md create mode 100644 packages/walletconnect_dart/example/wallet/README.md create mode 100644 packages/walletconnect_dart/example/wallet/analysis_options.yaml create mode 100644 packages/walletconnect_dart/example/wallet/bin/wallet.dart create mode 100644 packages/walletconnect_dart/example/wallet/lib/wallet.dart create mode 100644 packages/walletconnect_dart/example/wallet/pubspec.yaml create mode 100644 packages/walletconnect_dart/example/wallet/test/wallet_test.dart create mode 100644 packages/walletconnect_dart/lib/src/api/api.dart create mode 100644 packages/walletconnect_dart/lib/src/api/json_rpc_request.dart create mode 100644 packages/walletconnect_dart/lib/src/api/json_rpc_request.g.dart create mode 100644 packages/walletconnect_dart/lib/src/api/json_rpc_response.dart create mode 100644 packages/walletconnect_dart/lib/src/api/json_rpc_response.g.dart create mode 100644 packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request.dart create mode 100644 packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request.g.dart create mode 100644 packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request_response.dart create mode 100644 packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request_response.g.dart create mode 100644 packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_update_response.dart create mode 100644 packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_update_response.g.dart create mode 100644 packages/walletconnect_dart/lib/src/api/websocket/web_socket_message.dart create mode 100644 packages/walletconnect_dart/lib/src/api/websocket/web_socket_message.g.dart create mode 100644 packages/walletconnect_dart/lib/src/crypto/cipher_box.dart create mode 100644 packages/walletconnect_dart/lib/src/crypto/crypto.dart create mode 100644 packages/walletconnect_dart/lib/src/crypto/encrypted_payload.dart create mode 100644 packages/walletconnect_dart/lib/src/crypto/encrypted_payload.g.dart create mode 100644 packages/walletconnect_dart/lib/src/crypto/wallet_connect_cipher.dart create mode 100644 packages/walletconnect_dart/lib/src/exceptions/error_code.dart create mode 100644 packages/walletconnect_dart/lib/src/exceptions/exceptions.dart create mode 100644 packages/walletconnect_dart/lib/src/exceptions/wallet_connect_exception.dart create mode 100644 packages/walletconnect_dart/lib/src/network/network.dart create mode 100644 packages/walletconnect_dart/lib/src/network/reconnecting_web_socket.dart create mode 100644 packages/walletconnect_dart/lib/src/network/socket_transport.dart create mode 100644 packages/walletconnect_dart/lib/src/providers/algorand_walletconnect_provider.dart create mode 100644 packages/walletconnect_dart/lib/src/providers/ethereum_walletconnect_provider.dart create mode 100644 packages/walletconnect_dart/lib/src/providers/providers.dart create mode 100644 packages/walletconnect_dart/lib/src/providers/wallet_connect_provider.dart create mode 100644 packages/walletconnect_dart/lib/src/session/peer_meta.dart create mode 100644 packages/walletconnect_dart/lib/src/session/peer_meta.g.dart create mode 100644 packages/walletconnect_dart/lib/src/session/session.dart create mode 100644 packages/walletconnect_dart/lib/src/session/session_status.dart create mode 100644 packages/walletconnect_dart/lib/src/session/session_storage.dart create mode 100644 packages/walletconnect_dart/lib/src/session/wallet_connect_session.dart create mode 100644 packages/walletconnect_dart/lib/src/session/wallet_connect_session.g.dart create mode 100644 packages/walletconnect_dart/lib/src/utils/bridge_utils.dart create mode 100644 packages/walletconnect_dart/lib/src/utils/event.dart create mode 100644 packages/walletconnect_dart/lib/src/utils/event_bus.dart create mode 100644 packages/walletconnect_dart/lib/src/utils/key_converter.dart create mode 100644 packages/walletconnect_dart/lib/src/walletconnect.dart create mode 100644 packages/walletconnect_dart/lib/walletconnect_dart.dart create mode 100644 packages/walletconnect_dart/pubspec.yaml create mode 100644 packages/walletconnect_dart/test/flutter_walletconnect_test.dart diff --git a/packages/walletconnect_dart/.gitignore b/packages/walletconnect_dart/.gitignore new file mode 100644 index 00000000..ca75dcac --- /dev/null +++ b/packages/walletconnect_dart/.gitignore @@ -0,0 +1,77 @@ +# Test development +test/development/ + +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +build/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 \ No newline at end of file diff --git a/packages/walletconnect_dart/.metadata b/packages/walletconnect_dart/.metadata new file mode 100644 index 00000000..d536721a --- /dev/null +++ b/packages/walletconnect_dart/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: f4abaa0735eba4dfd8f33f73363911d63931fe03 + channel: stable + +project_type: package diff --git a/packages/walletconnect_dart/CHANGELOG.md b/packages/walletconnect_dart/CHANGELOG.md new file mode 100644 index 00000000..3cfb7499 --- /dev/null +++ b/packages/walletconnect_dart/CHANGELOG.md @@ -0,0 +1,43 @@ +## 0.0.11 + +* Various fixes for wallet + +## 0.0.10 + +* Added eth: personal sign + +## 0.0.9 + +* Fix for signing Algorand iOS transactions + +## 0.0.8 + +* Socket reconnection improvements +* Fixed signTypeData +* Allow passing custom payload id + +## 0.0.7 + +* Added support for Ethereum + +## 0.0.6 + +* Added support for atomic transfers + +## 0.0.5 + +* Added support for session storage + +## 0.0.4 + +* Added examples +* Improved documentation + +## 0.0.3 + +* Renamed package + +## 0.0.1 + +* Initial release +* Algorand support diff --git a/packages/walletconnect_dart/CONTRIBUTING.md b/packages/walletconnect_dart/CONTRIBUTING.md new file mode 100644 index 00000000..379d3e98 --- /dev/null +++ b/packages/walletconnect_dart/CONTRIBUTING.md @@ -0,0 +1,60 @@ +# Contributing to walletconnect-dart-sdk + +👍🎉 First off, thanks for taking the time to contribute! 🎉👍 + +The following is a set of guidelines for contributing to walletconnect-dart-sdk. +These are mostly guidelines, not rules. Use your best judgment, +and feel free to propose changes to this document in a pull request. + +## Proposing a Change + +If you intend to change the public API, or make any non-trivial changes +to the implementation, we recommend filing an issue. +This lets us reach an agreement on your proposal before you put significant +effort into it. + +If you’re only fixing a bug, it’s fine to submit a pull request right away +but we still recommend to file an issue detailing what you’re fixing. +This is helpful in case we don’t accept that specific fix but want to keep +track of the issue. + +## Creating a Pull Request + +Before creating a pull request please: + +1. Fork the repository and create your branch from `master`. +1. Install all dependencies (`flutter packages get` or `pub get`). +1. Squash your commits and ensure you have a meaningful commit message. +1. If you’ve fixed a bug or added code that should be tested, add tests! +Pull Requests without 100% test coverage will not be approved. +1. Ensure the test suite passes. +1. If you've changed the public API, make sure to update/add documentation. +1. Format your code (`dartfmt -w .`). +1. Analyze your code (`dartanalyzer --fatal-infos --fatal-warnings .`). +1. Create the Pull Request. +1. Verify that all status checks are passing. + +While the prerequisites above must be satisfied prior to having your +pull request reviewed, the reviewer(s) may ask you to complete additional +design work, tests, or other changes before your pull request can be ultimately +accepted. + +## Adding an example + +Examples live in the `examples` folder. + +- For a Flutter example, add it to the `folder` list in the `examples-flutter` +step. +- For a web example, add it to the `folder` list in the `examples-web` step. +- For a pure Dart example, add it to the `folder` list in the `examples-pure` +step. + +## Getting in Touch + +If you want to just ask a question or get feedback on an idea you can post it +on Discord. + +## License + +By contributing to walletconnect-dart-sdk, you agree that your contributions will be licensed +under its [MIT license](LICENSE). \ No newline at end of file diff --git a/packages/walletconnect_dart/LICENSE b/packages/walletconnect_dart/LICENSE new file mode 100644 index 00000000..50d22e68 --- /dev/null +++ b/packages/walletconnect_dart/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) RootSoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/packages/walletconnect_dart/README.md b/packages/walletconnect_dart/README.md new file mode 100644 index 00000000..002b5135 --- /dev/null +++ b/packages/walletconnect_dart/README.md @@ -0,0 +1,194 @@ +

+ +

+ +[![pub.dev][pub-dev-shield]][pub-dev-url] +[![Effective Dart][effective-dart-shield]][effective-dart-url] +[![Stars][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![MIT License][license-shield]][license-url] + +WalletConnect is an open source protocol for connecting decentralised applications to mobile wallets +with QR code scanning or deep linking. A user can interact securely with any Dapp from their mobile +phone, making WalletConnect wallets a safer choice compared to desktop or browser extension wallets. + +## Introduction +WalletConnect connects mobile & web applications to supported mobile wallets. The WalletConnect session is started by scanning a QR code (desktop) or by clicking an application deep link (mobile). + +WalletConnect-Dart-SDK is a community SDK and port of the official WalletConnect-monorepo. + +WalletConnect-Dart currently supports: +* Algorand +* Ethereum + +You can easily add your own network by extending from `WalletConnectProvider` and implementing the required methods using `sendCustomRequest`. +An example from Binance Smart Chain can be found [here](https://docs.binance.org/walletconnect.html). +For more information regarding the implementation, check out `EthereumWalletConnectProvider` and `AlgorandWalletConnectProvider`. + +**WalletConnect lets you build:** +- Decentralized web applications and display QR codes with [qr_flutter](https://pub.dev/packages/qr_flutter) +- Mobile dApps with deep linking using [url_launcher](https://pub.dev/packages/url_launcher) +- Cross-platform wallets + +Once installed, you can simply connect your application to a wallet. + +```dart +// Create a connector +final connector = WalletConnect( + bridge: 'https://bridge.walletconnect.org', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), +); +``` + +## Usage + +### Dapps + +**Initiate connection** + +```dart +// Create a connector +final connector = WalletConnect( + bridge: 'https://bridge.walletconnect.org', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), +); + +// Subscribe to events +connector.on('connect', (session) => print(session)); +connector.on('session_update', (payload) => print(payload)); +connector.on('disconnect', (session) => print(session)); + +// Create a new session +if (!connector.connected) { + final session = await connector.createSession( + chainId: 4160, + onDisplayUri: (uri) => print(uri), + ); +} +``` + +**Sign transaction** + +```dart +final sender = Address.fromAlgorandAddress(address: session.accounts[0]); + +// Fetch the suggested transaction params +final params = await algorand.getSuggestedTransactionParams(); + +// Build the transaction +final tx = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect' + ..amount = Algo.toMicroAlgos(0.0001) + ..receiver = sender + ..suggestedParams = params) + .build(); + +// Sign the transaction +final signedBytes = await provider.signTransaction( + tx.toBytes(), + params: { + 'message': 'Optional description message', + }, +); + +// Broadcast the transaction +final txId = await algorand.sendRawTransactions( + signedBytes, + waitForConfirmation: true, +); + +// Kill the session +connector.killSession(); +``` + +### Wallets + +**Initiate connection** + +```dart +// Create a connector +final connector = WalletConnect( + uri: 'wc:8a5e5bdc-a0e4-47...TJRNmhWJmoxdFo6UDk2WlhaOyQ5N0U=', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), +); + +// Subscribe to events +connector.on('connect', (session) => print(session)); +connector.on('session_request', (payload) => print(payload)); +connector.on('disconnect', (session) => print(session)); +``` + +**Manage connection** + +```dart +// Approve session +await connector.approveSession(chainId: 4160, accounts: ['0x4292...931B3']); + +// Reject session +await connector.rejectSession(message: 'Optional error message'); + +// Update session +await connector.updateSession(SessionStatus(chainId: 4000, accounts: ['0x4292...931B3'])); +``` + +**Kill session** + +```dart +await connector.killSession(); +``` + +## Changelog + +Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. + +## Contributing & Pull Requests +Feel free to send pull requests. + +Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details. + +## Credits + +- [Tomas Verhelst](https://github.com/rootsoft) +- [Tom Friml](https://github.com/3ph) +- [juampiq6](https://github.com/juampiq6) +- [All Contributors](../../contributors) + +## License + +The MIT License (MIT). Please see [License File](LICENSE.md) for more information. + + + + +[pub-dev-shield]: https://img.shields.io/pub/v/walletconnect_dart?style=for-the-badge +[pub-dev-url]: https://pub.dev/packages/walletconnect_dart +[effective-dart-shield]: https://img.shields.io/badge/style-effective_dart-40c4ff.svg?style=for-the-badge +[effective-dart-url]: https://github.com/tenhobi/effective_dart +[stars-shield]: https://img.shields.io/github/stars/rootsoft/walletconnect-dart-sdk.svg?style=for-the-badge&logo=github&colorB=deeppink&label=stars +[stars-url]: https://packagist.org/packages/rootsoft/walletconnect-dart-sdk +[issues-shield]: https://img.shields.io/github/issues/rootsoft/walletconnect-dart-sdk.svg?style=for-the-badge +[issues-url]: https://github.com/rootsoft/walletconnect-dart-sdk/issues +[license-shield]: https://img.shields.io/github/license/rootsoft/walletconnect-dart-sdk.svg?style=for-the-badge +[license-url]: https://github.com/RootSoft/walletconnect-dart-sdk/blob/master/LICENSE \ No newline at end of file diff --git a/packages/walletconnect_dart/analysis_options.yaml b/packages/walletconnect_dart/analysis_options.yaml new file mode 100644 index 00000000..7750bef5 --- /dev/null +++ b/packages/walletconnect_dart/analysis_options.yaml @@ -0,0 +1,76 @@ +analyzer: + strong-mode: + implicit-casts: true + errors: + close_sinks: ignore + +linter: + rules: + - annotate_overrides + - avoid_empty_else + - avoid_function_literals_in_foreach_calls + - avoid_init_to_null + - avoid_null_checks_in_equality_operators + - avoid_relative_lib_imports + - avoid_renaming_method_parameters + - avoid_return_types_on_setters + - avoid_returning_null + - avoid_types_as_parameter_names + - avoid_unused_constructor_parameters + - await_only_futures + - camel_case_types + - cancel_subscriptions + - control_flow_in_finally + - curly_braces_in_flow_control_structures + - directives_ordering + - empty_catches + - empty_constructor_bodies + - empty_statements + - hash_and_equals + - implementation_imports + - invariant_booleans + - iterable_contains_unrelated_type + - library_names + - library_prefixes + - list_remove_unrelated_type + - no_adjacent_strings_in_list + - no_duplicate_case_values + - non_constant_identifier_names + - null_closures + - omit_local_variable_types + - only_throw_errors + - overridden_fields + - package_api_docs + - package_names + - package_prefixed_library_names + - prefer_adjacent_string_concatenation + - prefer_collection_literals + - prefer_conditional_assignment + - prefer_const_constructors + - prefer_contains + - prefer_equal_for_default_values + - prefer_final_fields + - prefer_initializing_formals + - prefer_interpolation_to_compose_strings + - prefer_is_empty + - prefer_is_not_empty + - prefer_single_quotes + - prefer_typing_uninitialized_variables + - recursive_getters + - slash_for_doc_comments + - test_types_in_equals + - throw_in_finally + - type_init_formals + - unawaited_futures + - unnecessary_brace_in_string_interps + - unnecessary_const + - unnecessary_getters_setters + - unnecessary_lambdas + - unnecessary_new + - unnecessary_null_aware_assignments + - unnecessary_null_in_if_null_operators + - unnecessary_statements + - unnecessary_this + - unrelated_type_equality_checks + - use_rethrow_when_possible + - valid_regexps \ No newline at end of file diff --git a/packages/walletconnect_dart/example/dapp/.gitignore b/packages/walletconnect_dart/example/dapp/.gitignore new file mode 100644 index 00000000..3c8a1572 --- /dev/null +++ b/packages/walletconnect_dart/example/dapp/.gitignore @@ -0,0 +1,6 @@ +# Files and directories created by pub. +.dart_tool/ +.packages + +# Conventional directory for build output. +build/ diff --git a/packages/walletconnect_dart/example/dapp/CHANGELOG.md b/packages/walletconnect_dart/example/dapp/CHANGELOG.md new file mode 100644 index 00000000..effe43c8 --- /dev/null +++ b/packages/walletconnect_dart/example/dapp/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- Initial version. diff --git a/packages/walletconnect_dart/example/dapp/README.md b/packages/walletconnect_dart/example/dapp/README.md new file mode 100644 index 00000000..3816eca3 --- /dev/null +++ b/packages/walletconnect_dart/example/dapp/README.md @@ -0,0 +1,2 @@ +A sample command-line application with an entrypoint in `bin/`, library code +in `lib/`, and example unit test in `test/`. diff --git a/packages/walletconnect_dart/example/dapp/analysis_options.yaml b/packages/walletconnect_dart/example/dapp/analysis_options.yaml new file mode 100644 index 00000000..dee8927a --- /dev/null +++ b/packages/walletconnect_dart/example/dapp/analysis_options.yaml @@ -0,0 +1,30 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +# Uncomment the following section to specify additional rules. + +# linter: +# rules: +# - camel_case_types + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/packages/walletconnect_dart/example/dapp/bin/dapp.dart b/packages/walletconnect_dart/example/dapp/bin/dapp.dart new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/packages/walletconnect_dart/example/dapp/bin/dapp.dart @@ -0,0 +1 @@ + diff --git a/packages/walletconnect_dart/example/dapp/lib/dapp.dart b/packages/walletconnect_dart/example/dapp/lib/dapp.dart new file mode 100644 index 00000000..125de7cc --- /dev/null +++ b/packages/walletconnect_dart/example/dapp/lib/dapp.dart @@ -0,0 +1,69 @@ +import 'package:algorand_dart/algorand_dart.dart'; +import 'package:walletconnect_dart/walletconnect_dart.dart'; + +void main() async { + // Create an Algorand instance + final algorand = _buildAlgorand(); + + // Create a connector + final connector = WalletConnect( + bridge: 'https://bridge.walletconnect.org', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), + ); + + final algo = AlgorandWalletConnectProvider(connector); + + // Check if connection is already established + final session = await connector.createSession( + chainId: 4160, + onDisplayUri: (uri) => print(uri), + ); + final sender = Address.fromAlgorandAddress(address: session.accounts[0]); + + // Fetch the suggested transaction params + final params = await algorand.getSuggestedTransactionParams(); + + // Build the transaction + final tx = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect' + ..amount = Algo.toMicroAlgos(0.0001) + ..receiver = sender + ..suggestedParams = params) + .build(); + + // Sign the transaction + final signedBytes = await algo.signTransaction( + tx.toBytes(), + params: { + 'message': 'Optional description message', + }, + ); + + // Broadcast the transaction + final txId = await algorand.sendRawTransactions( + signedBytes, + waitForConfirmation: true, + ); + print(txId); + + // Kill the session + connector.killSession(); +} + +Algorand _buildAlgorand() { + final algodClient = AlgodClient( + apiUrl: AlgoExplorer.MAINNET_ALGOD_API_URL, + ); + final indexerClient = IndexerClient( + apiUrl: AlgoExplorer.MAINNET_ALGOD_API_URL, + ); + return Algorand(algodClient: algodClient, indexerClient: indexerClient); +} diff --git a/packages/walletconnect_dart/example/dapp/pubspec.yaml b/packages/walletconnect_dart/example/dapp/pubspec.yaml new file mode 100644 index 00000000..d44f83a8 --- /dev/null +++ b/packages/walletconnect_dart/example/dapp/pubspec.yaml @@ -0,0 +1,21 @@ +name: dapp +description: Example application to create a mobile dapp +version: 1.0.0 +publish_to: 'none' + +environment: + sdk: '>=2.12.0 <3.0.0' + +dependencies: + path: ^1.8.0 + + # WalletConnect + walletconnect_dart: + path: ../../ + + # Algorand + algorand_dart: 1.0.1 + +dev_dependencies: + lints: ^1.0.0 + test: ^1.16.0 diff --git a/packages/walletconnect_dart/example/dapp/test/dapp_test.dart b/packages/walletconnect_dart/example/dapp/test/dapp_test.dart new file mode 100644 index 00000000..ab73b3a2 --- /dev/null +++ b/packages/walletconnect_dart/example/dapp/test/dapp_test.dart @@ -0,0 +1 @@ +void main() {} diff --git a/packages/walletconnect_dart/example/example.md b/packages/walletconnect_dart/example/example.md new file mode 100644 index 00000000..ebddbfc2 --- /dev/null +++ b/packages/walletconnect_dart/example/example.md @@ -0,0 +1,101 @@ +# walletconnect_dart + +WalletConnect is an open source protocol for connecting decentralised applications to mobile wallets +with QR code scanning or deep linking. A user can interact securely with any Dapp from their mobile +phone, making WalletConnect wallets a safer choice compared to desktop or browser extension wallets. + +## Getting Started + +### Installation + +You can install the package via pub.dev: + +```bash +walletconnect_dart: ^latest-version +``` + +> **Note**: walletconnect-dart requires Dart >=2.14.0 & null safety +> See the latest version on pub.dev + +## Usage +Create a ```WalletConnect``` connector and use ```createSession``` to start a new session. + +```dart +// Create a connector +final connector = WalletConnect( + bridge: 'https://bridge.walletconnect.org', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), +); + +// Set a default walletconnect provider +connector.setDefaultProvider(AlgorandWCProvider(connector)); + +// Check if connection is already established +final session = await connector.createSession( + chainId: 4160, + onDisplayUri: (uri) => print(uri), +); + + +final sender = Address.fromAlgorandAddress(address: session.accounts[0]); + +// Fetch the suggested transaction params +final params = await algorand.getSuggestedTransactionParams(); + +// Build the transaction +final transaction = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect' + ..amount = Algo.toMicroAlgos(0.0001) + ..receiver = sender + ..suggestedParams = params) + .build(); + +// Sign the transaction +final txBytes = Encoder.encodeMessagePack(transaction.toMessagePack()); +final signedBytes = await connector.signTransaction( + txBytes, + params: { + 'message': 'Optional description message', + }, +); + +// Broadcast the transaction +final txId = await algorand.sendRawTransactions( + signedBytes, + waitForConfirmation: true, +); +print(txId); + +// Kill the session +connector.killSession(); +``` + +Once installed, you can simply connect your application to the blockchain and start sending payments + +```dart +algorand.sendPayment( + account: account, + recipient: newAccount.address, + amount: Algo.toMicroAlgos(5), +); +``` + +### Algorand TestNet + +It's better and cheaper to test on Algorand TestNet before testing on Algorand MainNet. To switch to TestNet update the `AlgodClient` to use the TestNet URL. + +```dart +final algorand = Algorand( + algodClient: AlgodClient(apiUrl: AlgoExplorer.TESTNET_ALGOD_API_URL), +); +``` + +If you need Algos on TestNet, you can use the faucet: https://bank.testnet.algorand.network/ diff --git a/packages/walletconnect_dart/example/mobile/.gitignore b/packages/walletconnect_dart/example/mobile/.gitignore new file mode 100644 index 00000000..0fa6b675 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/.gitignore @@ -0,0 +1,46 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/packages/walletconnect_dart/example/mobile/.metadata b/packages/walletconnect_dart/example/mobile/.metadata new file mode 100644 index 00000000..cb12308d --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 3595343e20a61ff16d14e8ecc25f364276bb1b8b + channel: stable + +project_type: app diff --git a/packages/walletconnect_dart/example/mobile/README.md b/packages/walletconnect_dart/example/mobile/README.md new file mode 100644 index 00000000..a1356260 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/README.md @@ -0,0 +1,16 @@ +# example + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/packages/walletconnect_dart/example/mobile/analysis_options.yaml b/packages/walletconnect_dart/example/mobile/analysis_options.yaml new file mode 100644 index 00000000..35c16ebe --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/analysis_options.yaml @@ -0,0 +1,18 @@ +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/packages/walletconnect_dart/example/mobile/android/.gitignore b/packages/walletconnect_dart/example/mobile/android/.gitignore new file mode 100644 index 00000000..6f568019 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/packages/walletconnect_dart/example/mobile/android/app/build.gradle b/packages/walletconnect_dart/example/mobile/android/app/build.gradle new file mode 100644 index 00000000..56bfa9b7 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/build.gradle @@ -0,0 +1,68 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 30 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.example" + minSdkVersion 16 + targetSdkVersion 30 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/debug/AndroidManifest.xml b/packages/walletconnect_dart/example/mobile/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..c208884f --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/AndroidManifest.xml b/packages/walletconnect_dart/example/mobile/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..34dd77ef --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/packages/walletconnect_dart/example/mobile/android/app/src/main/kotlin/com/example/example/MainActivity.kt new file mode 100644 index 00000000..e793a000 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/src/main/kotlin/com/example/example/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/res/drawable-v21/launch_background.xml b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 00000000..f74085f3 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/res/drawable/launch_background.xml b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/res/values-night/styles.xml b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 00000000..449a9f93 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/main/res/values/styles.xml b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..d74aa35c --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/android/app/src/profile/AndroidManifest.xml b/packages/walletconnect_dart/example/mobile/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..c208884f --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/packages/walletconnect_dart/example/mobile/android/build.gradle b/packages/walletconnect_dart/example/mobile/android/build.gradle new file mode 100644 index 00000000..ed45c658 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/build.gradle @@ -0,0 +1,29 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/packages/walletconnect_dart/example/mobile/android/gradle.properties b/packages/walletconnect_dart/example/mobile/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/packages/walletconnect_dart/example/mobile/android/gradle/wrapper/gradle-wrapper.properties b/packages/walletconnect_dart/example/mobile/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..bc6a58af --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/packages/walletconnect_dart/example/mobile/android/settings.gradle b/packages/walletconnect_dart/example/mobile/android/settings.gradle new file mode 100644 index 00000000..44e62bcf --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/packages/walletconnect_dart/example/mobile/ios/.gitignore b/packages/walletconnect_dart/example/mobile/ios/.gitignore new file mode 100644 index 00000000..7a7f9873 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/packages/walletconnect_dart/example/mobile/ios/Flutter/AppFrameworkInfo.plist b/packages/walletconnect_dart/example/mobile/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..8d4492f9 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 9.0 + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Flutter/Debug.xcconfig b/packages/walletconnect_dart/example/mobile/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..ec97fc6f --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/walletconnect_dart/example/mobile/ios/Flutter/Release.xcconfig b/packages/walletconnect_dart/example/mobile/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..c4855bfe --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.pbxproj b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..2b480650 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,539 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 304556377094947329E387C2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A4C2584877EEB1BED9CC089 /* Pods_Runner.framework */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 13B93929D587F02C1DC4DC7D /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 4A4C2584877EEB1BED9CC089 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 52F39E76991CA42813D86EA2 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9C745C1B4D21CE2083AB063C /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 304556377094947329E387C2 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 396A6ECCF3EFD09AC00C38FB /* Pods */ = { + isa = PBXGroup; + children = ( + 9C745C1B4D21CE2083AB063C /* Pods-Runner.debug.xcconfig */, + 52F39E76991CA42813D86EA2 /* Pods-Runner.release.xcconfig */, + 13B93929D587F02C1DC4DC7D /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 8FC54EB6AA0F78053A37C1C9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4A4C2584877EEB1BED9CC089 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 396A6ECCF3EFD09AC00C38FB /* Pods */, + 8FC54EB6AA0F78053A37C1C9 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + F5A0E54A177AA179BA4F226A /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + C1CB16AF3F78D1F6C2F2FFB8 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + C1CB16AF3F78D1F6C2F2FFB8 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + F5A0E54A177AA179BA4F226A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..3db53b6e --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/AppDelegate.swift b/packages/walletconnect_dart/example/mobile/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/walletconnect_dart/example/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Base.lproj/Main.storyboard b/packages/walletconnect_dart/example/mobile/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Info.plist b/packages/walletconnect_dart/example/mobile/ios/Runner/Info.plist new file mode 100644 index 00000000..a060db61 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/packages/walletconnect_dart/example/mobile/ios/Runner/Runner-Bridging-Header.h b/packages/walletconnect_dart/example/mobile/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/packages/walletconnect_dart/example/mobile/lib/algorand_transaction_tester.dart b/packages/walletconnect_dart/example/mobile/lib/algorand_transaction_tester.dart new file mode 100644 index 00000000..9ee4bb30 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/lib/algorand_transaction_tester.dart @@ -0,0 +1,132 @@ +import 'package:algorand_dart/algorand_dart.dart'; +import 'package:mobile_dapp/transaction_tester.dart'; +import 'package:walletconnect_dart/walletconnect_dart.dart'; + +class AlgorandTransactionTester extends TransactionTester { + final Algorand algorand; + final AlgorandWalletConnectProvider provider; + + AlgorandTransactionTester._internal({ + required WalletConnect connector, + required this.algorand, + required this.provider, + }) : super(connector: connector); + + factory AlgorandTransactionTester() { + final algorand = Algorand( + algodClient: AlgodClient(apiUrl: AlgoExplorer.TESTNET_ALGOD_API_URL), + ); + + final connector = WalletConnect( + bridge: 'https://bridge.walletconnect.org', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), + ); + + final provider = AlgorandWalletConnectProvider(connector); + + return AlgorandTransactionTester._internal( + connector: connector, + algorand: algorand, + provider: provider, + ); + } + + @override + Future connect({OnDisplayUriCallback? onDisplayUri}) async { + return connector.connect(chainId: 4160, onDisplayUri: onDisplayUri); + } + + @override + Future disconnect() async { + await connector.close(forceClose: true); + } + + @override + Future signTransaction(SessionStatus session) async { + final sender = Address.fromAlgorandAddress(address: session.accounts[0]); + + // Fetch the suggested transaction params + final params = await algorand.getSuggestedTransactionParams(); + + // Build the transaction + final tx = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect' + ..amount = Algo.toMicroAlgos(0.0001) + ..receiver = sender + ..suggestedParams = params) + .build(); + + // Sign the transaction + final signedBytes = await provider.signTransaction( + tx.toBytes(), + params: { + 'message': 'Optional description message', + }, + ); + + // Broadcast the transaction + final txId = await algorand.sendRawTransactions( + signedBytes, + waitForConfirmation: true, + ); + + // Kill the session + connector.killSession(); + + return txId; + } + + @override + Future signTransactions(SessionStatus session) async { + final sender = Address.fromAlgorandAddress(address: session.accounts[0]); + + // Fetch the suggested transaction params + final params = await algorand.getSuggestedTransactionParams(); + + // Build the transaction + final tx1 = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect - 1' + ..amount = Algo.toMicroAlgos(0.0001) + ..receiver = sender + ..suggestedParams = params) + .build(); + + final tx2 = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect - 2' + ..amount = Algo.toMicroAlgos(0.0002) + ..receiver = sender + ..suggestedParams = params) + .build(); + + AtomicTransfer.group([tx1, tx2]); + + // Sign the transaction + final signedBytes = await provider.signTransactions( + [tx1.toBytes(), tx2.toBytes()], + params: { + 'message': 'Optional description message', + }, + ); + + // Broadcast the transaction + final txId = await algorand.sendRawTransactions( + signedBytes, + waitForConfirmation: true, + ); + + // Kill the session + connector.killSession(); + + return txId; + } +} diff --git a/packages/walletconnect_dart/example/mobile/lib/ethereum_transaction_tester.dart b/packages/walletconnect_dart/example/mobile/lib/ethereum_transaction_tester.dart new file mode 100644 index 00000000..be1b9247 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/lib/ethereum_transaction_tester.dart @@ -0,0 +1,115 @@ +import 'dart:typed_data'; + +import 'package:http/http.dart'; +import 'package:mobile_dapp/transaction_tester.dart'; +import 'package:walletconnect_dart/walletconnect_dart.dart'; +import 'package:web3dart/src/crypto/secp256k1.dart'; +import 'package:web3dart/web3dart.dart'; + +class WalletConnectEthereumCredentials extends CustomTransactionSender { + WalletConnectEthereumCredentials({required this.provider}); + + final EthereumWalletConnectProvider provider; + + @override + Future extractAddress() { + // TODO: implement extractAddress + throw UnimplementedError(); + } + + @override + Future sendTransaction(Transaction transaction) async { + final hash = await provider.sendTransaction( + from: transaction.from!.hex, + to: transaction.to?.hex, + data: transaction.data, + gas: transaction.maxGas, + gasPrice: transaction.gasPrice?.getInWei, + value: transaction.value?.getInWei, + nonce: transaction.nonce, + ); + + return hash; + } + + @override + Future signToSignature(Uint8List payload, + {int? chainId, bool isEIP1559 = false}) { + // TODO: implement signToSignature + throw UnimplementedError(); + } +} + +class EthereumTransactionTester extends TransactionTester { + final Web3Client ethereum; + final EthereumWalletConnectProvider provider; + + EthereumTransactionTester._internal({ + required WalletConnect connector, + required this.ethereum, + required this.provider, + }) : super(connector: connector); + + factory EthereumTransactionTester() { + final ethereum = Web3Client('https://ropsten.infura.io/', Client()); + + final connector = WalletConnect( + bridge: 'https://bridge.walletconnect.org', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), + ); + + final provider = EthereumWalletConnectProvider(connector); + + return EthereumTransactionTester._internal( + connector: connector, + ethereum: ethereum, + provider: provider, + ); + } + + @override + Future connect({OnDisplayUriCallback? onDisplayUri}) async { + return connector.connect(chainId: 3, onDisplayUri: onDisplayUri); + } + + @override + Future disconnect() async { + await connector.killSession(); + } + + @override + Future signTransaction(SessionStatus session) async { + final sender = EthereumAddress.fromHex(session.accounts[0]); + + final transaction = Transaction( + to: sender, + from: sender, + gasPrice: EtherAmount.inWei(BigInt.one), + maxGas: 100000, + value: EtherAmount.fromUnitAndValue(EtherUnit.finney, 1), + ); + + final credentials = WalletConnectEthereumCredentials(provider: provider); + + // Sign the transaction + final txBytes = await ethereum.sendTransaction(credentials, transaction); + + // Kill the session + connector.killSession(); + + return txBytes; + } + + @override + Future signTransactions(SessionStatus session) { + // TODO: implement signTransactions + throw UnimplementedError(); + } +} diff --git a/packages/walletconnect_dart/example/mobile/lib/main.dart b/packages/walletconnect_dart/example/mobile/lib/main.dart new file mode 100644 index 00000000..126a8ee3 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/lib/main.dart @@ -0,0 +1,217 @@ +import 'package:flutter/material.dart'; +import 'package:mobile_dapp/algorand_transaction_tester.dart'; +import 'package:mobile_dapp/ethereum_transaction_tester.dart'; +import 'package:mobile_dapp/transaction_tester.dart'; +import 'package:mobile_dapp/wallet_connect_lifecycle.dart'; +import 'package:qr_flutter/qr_flutter.dart'; + +void main() { + runApp(const MyApp()); +} + +enum NetworkType { + ethereum, + algorand, +} + +enum TransactionState { + disconnected, + connecting, + connected, + connectionFailed, + transferring, + success, + failed, +} + +class MyApp extends StatelessWidget { + const MyApp({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Mobile dApp', + theme: ThemeData( + primarySwatch: Colors.blue, + ), + home: const MyHomePage(title: 'WalletConnect'), + ); + } +} + +class MyHomePage extends StatefulWidget { + const MyHomePage({Key? key, required this.title}) : super(key: key); + + final String title; + + @override + State createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + String txId = ''; + String _displayUri = ''; + + static const _networks = ['Ethereum (Ropsten)', 'Algorand (Testnet)']; + NetworkType? _network = NetworkType.ethereum; + TransactionState _state = TransactionState.disconnected; + TransactionTester? _transactionTester = EthereumTransactionTester(); + + @override + Widget build(BuildContext context) { + return WalletConnectLifecycle( + connector: _transactionTester!.connector, + child: Scaffold( + appBar: AppBar( + title: Text(widget.title), + ), + body: Column( + children: [ + Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.only(left: 8), + child: Text('Select network: ', + style: Theme.of(context).textTheme.headline6), + ), + ), + Padding( + padding: const EdgeInsets.only(right: 8), + child: DropdownButton( + value: _networks[_network!.index], + items: _networks + .map( + (value) => DropdownMenuItem( + value: value, child: Text(value)), + ) + .toList(), + onChanged: _changeNetworks), + ), + ], + ), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + (_displayUri.isEmpty) + ? Padding( + padding: const EdgeInsets.only( + left: 16, + right: 16, + bottom: 16, + ), + child: Text( + 'Click on the button below to transfer ${_network == NetworkType.ethereum ? '0.0001 Eth from Ethereum' : '0.0001 Algo from the Algorand'} account connected through WalletConnect to the same account.', + style: Theme.of(context).textTheme.headline6, + textAlign: TextAlign.center, + ), + ) + : QrImage(data: _displayUri), + ElevatedButton( + onPressed: + _transactionStateToAction(context, state: _state), + child: Text( + _transactionStateToString(state: _state), + ), + ), + ElevatedButton( + onPressed: () async { + await _transactionTester?.disconnect(); + }, + child: Text( + 'Close', + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + + void _changeNetworks(String? network) { + if (network == null) return null; + final newNetworkIndex = _networks.indexOf(network); + final newNetwork = NetworkType.values[newNetworkIndex]; + + switch (newNetwork) { + case NetworkType.algorand: + _transactionTester = AlgorandTransactionTester(); + break; + case NetworkType.ethereum: + _transactionTester = EthereumTransactionTester(); + break; + } + + setState( + () => _network = newNetwork, + ); + } + + String _transactionStateToString({required TransactionState state}) { + switch (state) { + case TransactionState.disconnected: + return 'Connect!'; + case TransactionState.connecting: + return 'Connecting'; + case TransactionState.connected: + return 'Session connected, preparing transaction...'; + case TransactionState.connectionFailed: + return 'Connection failed'; + case TransactionState.transferring: + return 'Transaction in progress...'; + case TransactionState.success: + return 'Transaction successful'; + case TransactionState.failed: + return 'Transaction failed'; + } + } + + VoidCallback? _transactionStateToAction(BuildContext context, + {required TransactionState state}) { + switch (state) { + // Progress, action disabled + case TransactionState.connecting: + case TransactionState.transferring: + case TransactionState.connected: + return null; + + // Initiate the connection + case TransactionState.disconnected: + case TransactionState.connectionFailed: + return () async { + setState(() => _state = TransactionState.connecting); + final session = await _transactionTester?.connect( + onDisplayUri: (uri) => setState(() => _displayUri = uri), + ); + if (session == null) { + print('Unable to connect'); + setState(() => _state = TransactionState.failed); + return; + } + + setState(() => _state = TransactionState.connected); + Future.delayed(const Duration(seconds: 1), () async { + // Initiate the transaction + setState(() => _state = TransactionState.transferring); + + try { + await _transactionTester?.signTransaction(session); + setState(() => _state = TransactionState.success); + } catch (e) { + print('Transaction error: $e'); + setState(() => _state = TransactionState.failed); + } + }); + }; + + // Finished + case TransactionState.success: + case TransactionState.failed: + return null; + } + } +} diff --git a/packages/walletconnect_dart/example/mobile/lib/transaction_tester.dart b/packages/walletconnect_dart/example/mobile/lib/transaction_tester.dart new file mode 100644 index 00000000..80b71764 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/lib/transaction_tester.dart @@ -0,0 +1,15 @@ +import 'package:walletconnect_dart/walletconnect_dart.dart'; + +abstract class TransactionTester { + TransactionTester({required this.connector}); + + final WalletConnect connector; + + Future signTransaction(SessionStatus session); + + Future signTransactions(SessionStatus session); + + Future connect({OnDisplayUriCallback? onDisplayUri}); + + Future disconnect(); +} diff --git a/packages/walletconnect_dart/example/mobile/lib/wallet.dart b/packages/walletconnect_dart/example/mobile/lib/wallet.dart new file mode 100644 index 00000000..f98d284b --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/lib/wallet.dart @@ -0,0 +1,120 @@ +import 'package:algorand_dart/algorand_dart.dart'; +import 'package:walletconnect_dart/walletconnect_dart.dart'; + +class WalletConnector { + final Algorand algorand; + final WalletConnect connector; + final AlgorandWalletConnectProvider provider; + + const WalletConnector._internal({ + required this.algorand, + required this.connector, + required this.provider, + }); + + factory WalletConnector() { + final algorand = Algorand( + algodClient: AlgodClient(apiUrl: AlgoExplorer.TESTNET_ALGOD_API_URL), + ); + + final connector = WalletConnect( + bridge: 'https://bridge.walletconnect.org', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), + ); + + final provider = AlgorandWalletConnectProvider(connector); + + return WalletConnector._internal( + algorand: algorand, + connector: connector, + provider: provider, + ); + } + + Future signTransaction(SessionStatus session) async { + final sender = Address.fromAlgorandAddress(address: session.accounts[0]); + + // Fetch the suggested transaction params + final params = await algorand.getSuggestedTransactionParams(); + + // Build the transaction + final tx = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect' + ..amount = Algo.toMicroAlgos(0.0001) + ..receiver = sender + ..suggestedParams = params) + .build(); + + // Sign the transaction + final signedBytes = await provider.signTransaction( + tx.toBytes(), + params: { + 'message': 'Optional description message', + }, + ); + + // Broadcast the transaction + final txId = await algorand.sendRawTransactions( + signedBytes, + waitForConfirmation: true, + ); + + // Kill the session + connector.killSession(); + + return txId; + } + + Future signTransactions(SessionStatus session) async { + final sender = Address.fromAlgorandAddress(address: session.accounts[0]); + + // Fetch the suggested transaction params + final params = await algorand.getSuggestedTransactionParams(); + + // Build the transaction + final tx1 = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect - 1' + ..amount = Algo.toMicroAlgos(0.0001) + ..receiver = sender + ..suggestedParams = params) + .build(); + + final tx2 = await (PaymentTransactionBuilder() + ..sender = sender + ..noteText = 'Signed with WalletConnect - 2' + ..amount = Algo.toMicroAlgos(0.0002) + ..receiver = sender + ..suggestedParams = params) + .build(); + + AtomicTransfer.group([tx1, tx2]); + + // Sign the transaction + final signedBytes = await provider.signTransactions( + [tx1.toBytes(), tx2.toBytes()], + params: { + 'message': 'Optional description message', + }, + ); + + // Broadcast the transaction + final txId = await algorand.sendRawTransactions( + signedBytes, + waitForConfirmation: true, + ); + + // Kill the session + connector.killSession(); + + return txId; + } +} diff --git a/packages/walletconnect_dart/example/mobile/lib/wallet_connect_lifecycle.dart b/packages/walletconnect_dart/example/mobile/lib/wallet_connect_lifecycle.dart new file mode 100644 index 00000000..fd85237d --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/lib/wallet_connect_lifecycle.dart @@ -0,0 +1,48 @@ +import 'package:flutter/widgets.dart'; +import 'package:walletconnect_dart/walletconnect_dart.dart'; + +class WalletConnectLifecycle extends StatefulWidget { + final WalletConnect connector; + final Widget child; + + const WalletConnectLifecycle({ + Key? key, + required this.connector, + required this.child, + }) : super(key: key); + + @override + State createState() => _WalletConnectLifecycleState(); +} + +class _WalletConnectLifecycleState extends State + with WidgetsBindingObserver { + @override + void initState() { + WidgetsBinding.instance?.addObserver(this); + super.initState(); + } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + print('AppLifecycleState: ${state.toString()}.'); + final connector = widget.connector; + if (state == AppLifecycleState.resumed && mounted) { + if (connector.connected && !connector.bridgeConnected) { + print('Attempt to recover'); + connector.reconnect(); + } + } + } + + @override + Widget build(BuildContext context) { + return widget.child; + } + + @override + void dispose() { + WidgetsBinding.instance?.removeObserver(this); + super.dispose(); + } +} diff --git a/packages/walletconnect_dart/example/mobile/macos/.gitignore b/packages/walletconnect_dart/example/mobile/macos/.gitignore new file mode 100644 index 00000000..746adbb6 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/packages/walletconnect_dart/example/mobile/macos/Flutter/Flutter-Debug.xcconfig b/packages/walletconnect_dart/example/mobile/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 00000000..4b81f9b2 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/packages/walletconnect_dart/example/mobile/macos/Flutter/Flutter-Release.xcconfig b/packages/walletconnect_dart/example/mobile/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 00000000..5caa9d15 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/project.pbxproj b/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..cc89c878 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,572 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* example.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..ae8ff59d --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/walletconnect_dart/example/mobile/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..1d526a16 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/walletconnect_dart/example/mobile/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/AppDelegate.swift b/packages/walletconnect_dart/example/mobile/macos/Runner/AppDelegate.swift new file mode 100644 index 00000000..d53ef643 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..a2ec33f1 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..3c4935a7ca84f0976aca34b7f2895d65fb94d1ea GIT binary patch literal 46993 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 literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4cc16421680a50164ba74381b4b35ceaa0ccfc GIT binary patch literal 3276 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 N;OXk;vd$@?2>?>Ex^Vyi literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..bcbf36df2f2aaaa0a63c7dabc94e600184229d0d GIT binary patch literal 5933 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 f$KZHO*s&vt|9^w-6P?|#0pRK8NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!ItFh?!xdN1Q+aGJ{c&& zS>O>_%)r1c48n{Iv*t(u1=&kHeO=ifbFy+6aSK)V_AxLppYn8Z42d|rc6w}vOsL55 z`t&mC&y2@JTEyg!eDiFX^k#CC!jq%>erB=yHqUP0XcDOTw6ko}L zX;EmMrq(fKk*eygEuA616;0)>@A{TK|55PV@70 z$OfzS*(VJxQev3J?yY?O=ul(v`fp}?u9z`JK3ugibK>)DyCwImZOF4d{xK%%Ks1*} zv$oa)9anR%lXIBUqYnhLmT>VOzHfNP?ZwJNZ!5$s9M08RynIvaXw>@G^T9@r9^KH1 zVy??F&uuk)bH9Y4pQY!hP58i_H6 znl-NcuCpLV6ZWU;4C zu@9exF&OZi`Bovq_m%T+WhU2kvkz@^_LpycBvqm3bMpLw8X-Or5sL>0AKE1$(k_L=_Zc=CUq#=x1-QZf)G7nHu@fmsQ1eN_N3+nTEz`4HI4Z6uVlE zJH+X&det8JU?tO?upcM4Z=cV!JV;yF>FfL5Q$M|W_2Z!P`S=}Wzp|_1^#d%e?_H`> zV@%vA$+bFVqhw9`U;TfP|5|PD{||OiYdor8P*i??|NJcb%kzT_73*7WE?Ua5hAnR2 z=7WE=PhTlJ#ZeRznjTUb;`E(wkMZrj4e|Hilz-mK>9cZHQY**5TUPw~u}k;u73KI}xAx!0m-)GVia|x^d3p~s_9gh83jA&Ra<8rM%`>U3x69t&NzbwWY}7Ar?)FK#IZ0z|d0H0EkRO w3{9;}4Xg|ebq&m|3=9_N6z8I7$jwj5OsmAL;bP(Gi$Dzwp00i_>zopr02+f8CIA2c literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/packages/walletconnect_dart/example/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000000000000000000000000000000000000..e71a726136a47ed24125c7efc79d68a4a01961b4 GIT binary patch literal 14800 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/AppInfo.xcconfig b/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 00000000..cf9be60c --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = example + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.example + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2021 com.example. All rights reserved. diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Debug.xcconfig b/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 00000000..36b0fd94 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Release.xcconfig b/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 00000000..dff4f495 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Warnings.xcconfig b/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 00000000..42bcbf47 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/DebugProfile.entitlements b/packages/walletconnect_dart/example/mobile/macos/Runner/DebugProfile.entitlements new file mode 100644 index 00000000..dddb8a30 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Info.plist b/packages/walletconnect_dart/example/mobile/macos/Runner/Info.plist new file mode 100644 index 00000000..4789daa6 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/MainFlutterWindow.swift b/packages/walletconnect_dart/example/mobile/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 00000000..2722837e --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController.init() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/packages/walletconnect_dart/example/mobile/macos/Runner/Release.entitlements b/packages/walletconnect_dart/example/mobile/macos/Runner/Release.entitlements new file mode 100644 index 00000000..852fa1a4 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/packages/walletconnect_dart/example/mobile/pubspec.yaml b/packages/walletconnect_dart/example/mobile/pubspec.yaml new file mode 100644 index 00000000..69c2e457 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/pubspec.yaml @@ -0,0 +1,33 @@ +name: mobile_dapp +description: An example how to create a mobile dApp +publish_to: 'none' +version: 1.0.0+1 + +environment: + sdk: ">=2.12.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + cupertino_icons: ^1.0.2 + + # WalletConnect + walletconnect_dart: + path: ../../ + + # Algorand + algorand_dart: ^1.0.1 + + # Ethereum + web3dart: ^2.3.3 + + # URL Launcher + url_launcher: ^6.0.12 + qr_flutter: ^4.0.0 + +dev_dependencies: + flutter_test: + sdk: flutter + +flutter: + uses-material-design: true diff --git a/packages/walletconnect_dart/example/mobile/test/widget_test.dart b/packages/walletconnect_dart/example/mobile/test/widget_test.dart new file mode 100644 index 00000000..45d5dd26 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/test/widget_test.dart @@ -0,0 +1,29 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:mobile_dapp/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/packages/walletconnect_dart/example/mobile/web/favicon.png b/packages/walletconnect_dart/example/mobile/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/web/icons/Icon-192.png b/packages/walletconnect_dart/example/mobile/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/web/icons/Icon-512.png b/packages/walletconnect_dart/example/mobile/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/web/icons/Icon-maskable-192.png b/packages/walletconnect_dart/example/mobile/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/web/icons/Icon-maskable-512.png b/packages/walletconnect_dart/example/mobile/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/packages/walletconnect_dart/example/mobile/web/index.html b/packages/walletconnect_dart/example/mobile/web/index.html new file mode 100644 index 00000000..b829dda0 --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/web/index.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + example + + + + + + + diff --git a/packages/walletconnect_dart/example/mobile/web/manifest.json b/packages/walletconnect_dart/example/mobile/web/manifest.json new file mode 100644 index 00000000..096edf8f --- /dev/null +++ b/packages/walletconnect_dart/example/mobile/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "example", + "short_name": "example", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/packages/walletconnect_dart/example/wallet/.gitignore b/packages/walletconnect_dart/example/wallet/.gitignore new file mode 100644 index 00000000..3c8a1572 --- /dev/null +++ b/packages/walletconnect_dart/example/wallet/.gitignore @@ -0,0 +1,6 @@ +# Files and directories created by pub. +.dart_tool/ +.packages + +# Conventional directory for build output. +build/ diff --git a/packages/walletconnect_dart/example/wallet/CHANGELOG.md b/packages/walletconnect_dart/example/wallet/CHANGELOG.md new file mode 100644 index 00000000..effe43c8 --- /dev/null +++ b/packages/walletconnect_dart/example/wallet/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- Initial version. diff --git a/packages/walletconnect_dart/example/wallet/README.md b/packages/walletconnect_dart/example/wallet/README.md new file mode 100644 index 00000000..3816eca3 --- /dev/null +++ b/packages/walletconnect_dart/example/wallet/README.md @@ -0,0 +1,2 @@ +A sample command-line application with an entrypoint in `bin/`, library code +in `lib/`, and example unit test in `test/`. diff --git a/packages/walletconnect_dart/example/wallet/analysis_options.yaml b/packages/walletconnect_dart/example/wallet/analysis_options.yaml new file mode 100644 index 00000000..e5a52f0a --- /dev/null +++ b/packages/walletconnect_dart/example/wallet/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +# Uncomment the following section to specify additional rules. + +# linter: +# rules: +# - camel_case_types + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/packages/walletconnect_dart/example/wallet/bin/wallet.dart b/packages/walletconnect_dart/example/wallet/bin/wallet.dart new file mode 100644 index 00000000..8856b63f --- /dev/null +++ b/packages/walletconnect_dart/example/wallet/bin/wallet.dart @@ -0,0 +1 @@ +void main(List arguments) {} diff --git a/packages/walletconnect_dart/example/wallet/lib/wallet.dart b/packages/walletconnect_dart/example/wallet/lib/wallet.dart new file mode 100644 index 00000000..c38a12da --- /dev/null +++ b/packages/walletconnect_dart/example/wallet/lib/wallet.dart @@ -0,0 +1,79 @@ +import 'package:walletconnect_dart/walletconnect_dart.dart'; + +void main() async { + final connector = _buildApp(); + if (!connector.connected) { + final session = await connector.createSession( + chainId: 4160, + onDisplayUri: (uri) { + print(uri); + + _connectWallet(uri: uri); + }, + ); + + print('Session: $session'); + } + + await Future.delayed(Duration(days: 1)); +} + +WalletConnect _buildApp() { + final connector = WalletConnect( + bridge: 'https://bridge.walletconnect.org', + clientMeta: PeerMeta( + name: 'WalletConnect', + description: 'WalletConnect Developer App', + url: 'https://walletconnect.org', + icons: [ + 'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media' + ], + ), + ); + + connector.on('connect', (event) => print('Connected: $event')); + + connector.on('session_update', (payload) { + print('Payload: $payload'); + }); + + connector.on('disconnect', (event) { + print('Disconnected'); + }); + + connector.registerListeners(onSessionUpdate: (payload) { + print(payload); + }); + + return connector; +} + +void _connectWallet({required String uri}) { + final connector = WalletConnect( + uri: uri, + clientMeta: PeerMeta( + name: 'Algorand Wallet', + description: 'Unofficial Algorand wallet', + url: 'https://www.algorand.com', + icons: [ + 'https://cdn-images-1.medium.com/max/1200/1*VDrnmUI_W3GeeRClkfRPfg.png' + ], + ), + ); + + // Subscribe to session requests + connector.on('session_request', (payload) async { + await connector.approveSession(chainId: 4160, accounts: ['test']); + + await connector + .updateSession(SessionStatus(chainId: 4000, accounts: ['test2'])); + }); + + connector.on('disconnect', (message) async { + print('Wallet disconnected $message'); + }); + + connector.on('session_update', (session) async { + print('Session updated: $session'); + }); +} diff --git a/packages/walletconnect_dart/example/wallet/pubspec.yaml b/packages/walletconnect_dart/example/wallet/pubspec.yaml new file mode 100644 index 00000000..17f5d310 --- /dev/null +++ b/packages/walletconnect_dart/example/wallet/pubspec.yaml @@ -0,0 +1,21 @@ +name: wallet +description: A sample command-line application. +version: 1.0.0 +publish_to: 'none' + +environment: + sdk: '>=2.12.0 <3.0.0' + +dependencies: + path: ^1.8.0 + + # WalletConnect + walletconnect_dart: + path: ../../ + + # Algorand + algorand_dart: 0.0.2-beta.8 + +dev_dependencies: + lints: ^1.0.0 + test: ^1.16.0 diff --git a/packages/walletconnect_dart/example/wallet/test/wallet_test.dart b/packages/walletconnect_dart/example/wallet/test/wallet_test.dart new file mode 100644 index 00000000..ab73b3a2 --- /dev/null +++ b/packages/walletconnect_dart/example/wallet/test/wallet_test.dart @@ -0,0 +1 @@ +void main() {} diff --git a/packages/walletconnect_dart/lib/src/api/api.dart b/packages/walletconnect_dart/lib/src/api/api.dart new file mode 100644 index 00000000..da8e5510 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/api.dart @@ -0,0 +1,6 @@ +export 'json_rpc_request.dart'; +export 'json_rpc_response.dart'; +export 'walletconnect/wc_session_request.dart'; +export 'walletconnect/wc_session_request_response.dart'; +export 'walletconnect/wc_session_update_response.dart'; +export 'websocket/web_socket_message.dart'; diff --git a/packages/walletconnect_dart/lib/src/api/json_rpc_request.dart b/packages/walletconnect_dart/lib/src/api/json_rpc_request.dart new file mode 100644 index 00000000..0fe39340 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/json_rpc_request.dart @@ -0,0 +1,24 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'json_rpc_request.g.dart'; + +@JsonSerializable() +class JsonRpcRequest { + final int id; + @JsonKey(name: 'jsonrpc', defaultValue: '2.0') + final String rpc; + final String method; + final List? params; + + JsonRpcRequest({ + required this.id, + required this.method, + this.params, + this.rpc = '2.0', + }); + + factory JsonRpcRequest.fromJson(Map json) => + _$JsonRpcRequestFromJson(json); + + Map toJson() => _$JsonRpcRequestToJson(this); +} diff --git a/packages/walletconnect_dart/lib/src/api/json_rpc_request.g.dart b/packages/walletconnect_dart/lib/src/api/json_rpc_request.g.dart new file mode 100644 index 00000000..715976ae --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/json_rpc_request.g.dart @@ -0,0 +1,23 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'json_rpc_request.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +JsonRpcRequest _$JsonRpcRequestFromJson(Map json) => + JsonRpcRequest( + id: json['id'] as int, + method: json['method'] as String, + params: json['params'] as List?, + rpc: json['jsonrpc'] as String? ?? '2.0', + ); + +Map _$JsonRpcRequestToJson(JsonRpcRequest instance) => + { + 'id': instance.id, + 'jsonrpc': instance.rpc, + 'method': instance.method, + 'params': instance.params, + }; diff --git a/packages/walletconnect_dart/lib/src/api/json_rpc_response.dart b/packages/walletconnect_dart/lib/src/api/json_rpc_response.dart new file mode 100644 index 00000000..71cae5a8 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/json_rpc_response.dart @@ -0,0 +1,30 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'json_rpc_response.g.dart'; + +@JsonSerializable() +class JsonRpcResponse { + final int id; + final String jsonrpc; + @JsonKey(name: 'result', includeIfNull: false) + final dynamic result; + @JsonKey(name: 'error', includeIfNull: false) + final dynamic error; + + JsonRpcResponse({ + required this.id, + this.jsonrpc = '2.0', + this.result, + this.error, + }); + + factory JsonRpcResponse.fromJson(Map json) => + _$JsonRpcResponseFromJson(json); + + Map toJson() => _$JsonRpcResponseToJson(this); + + @override + String toString() { + return 'JsonRpcResponse{id: $id, jsonrpc: $jsonrpc, result: $result}'; + } +} diff --git a/packages/walletconnect_dart/lib/src/api/json_rpc_response.g.dart b/packages/walletconnect_dart/lib/src/api/json_rpc_response.g.dart new file mode 100644 index 00000000..8d29df31 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/json_rpc_response.g.dart @@ -0,0 +1,32 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'json_rpc_response.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +JsonRpcResponse _$JsonRpcResponseFromJson(Map json) => + JsonRpcResponse( + id: json['id'] as int, + jsonrpc: json['jsonrpc'] as String? ?? '2.0', + result: json['result'], + error: json['error'], + ); + +Map _$JsonRpcResponseToJson(JsonRpcResponse instance) { + final val = { + 'id': instance.id, + 'jsonrpc': instance.jsonrpc, + }; + + void writeNotNull(String key, dynamic value) { + if (value != null) { + val[key] = value; + } + } + + writeNotNull('result', instance.result); + writeNotNull('error', instance.error); + return val; +} diff --git a/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request.dart b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request.dart new file mode 100644 index 00000000..04962867 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request.dart @@ -0,0 +1,34 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:walletconnect_dart/src/session/peer_meta.dart'; + +part 'wc_session_request.g.dart'; + +/// A request sent from the dApp to the wallet containing information about the +/// peer and blockchain. +@JsonSerializable() +class WCSessionRequest { + @JsonKey(name: 'chainId') + final int? chainId; + + @JsonKey(name: 'peerId') + final String? peerId; + + @JsonKey(name: 'peerMeta') + final PeerMeta? peerMeta; + + WCSessionRequest({ + required this.chainId, + required this.peerId, + required this.peerMeta, + }); + + factory WCSessionRequest.fromJson(Map json) => + _$WCSessionRequestFromJson(json); + + Map toJson() => _$WCSessionRequestToJson(this); + + @override + String toString() { + return 'WCSessionRequest{chainId: $chainId, peerId: $peerId, peerMeta: $peerMeta}'; + } +} diff --git a/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request.g.dart b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request.g.dart new file mode 100644 index 00000000..40785b99 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request.g.dart @@ -0,0 +1,23 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'wc_session_request.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +WCSessionRequest _$WCSessionRequestFromJson(Map json) => + WCSessionRequest( + chainId: json['chainId'] as int?, + peerId: json['peerId'] as String?, + peerMeta: json['peerMeta'] == null + ? null + : PeerMeta.fromJson(json['peerMeta'] as Map), + ); + +Map _$WCSessionRequestToJson(WCSessionRequest instance) => + { + 'chainId': instance.chainId, + 'peerId': instance.peerId, + 'peerMeta': instance.peerMeta, + }; diff --git a/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request_response.dart b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request_response.dart new file mode 100644 index 00000000..47172c99 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request_response.dart @@ -0,0 +1,48 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:walletconnect_dart/src/session/peer_meta.dart'; +import 'package:walletconnect_dart/src/session/session_status.dart'; + +part 'wc_session_request_response.g.dart'; + +/// A response containing session information. +@JsonSerializable() +class WCSessionRequestResponse { + @JsonKey(name: 'approved', defaultValue: false) + final bool approved; + + @JsonKey(name: 'chainId') + final int? chainId; + + @JsonKey(name: 'accounts', defaultValue: []) + final List accounts; + + @JsonKey(name: 'peerId') + final String? peerId; + + @JsonKey(name: 'peerMeta') + final PeerMeta? peerMeta; + + WCSessionRequestResponse({ + required this.approved, + required this.chainId, + required this.accounts, + required this.peerId, + required this.peerMeta, + }); + + factory WCSessionRequestResponse.fromJson(Map json) => + _$WCSessionRequestResponseFromJson(json); + + Map toJson() => _$WCSessionRequestResponseToJson(this); + + /// Get the status of the session; + SessionStatus get status => SessionStatus( + chainId: chainId ?? 0, + accounts: accounts, + ); + + @override + String toString() { + return 'WCSessionRequestResponse{approved: $approved, chainId: $chainId, accounts: $accounts, peerId: $peerId, peerMeta: $peerMeta,}'; + } +} diff --git a/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request_response.g.dart b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request_response.g.dart new file mode 100644 index 00000000..17751061 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_request_response.g.dart @@ -0,0 +1,32 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'wc_session_request_response.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +WCSessionRequestResponse _$WCSessionRequestResponseFromJson( + Map json) => + WCSessionRequestResponse( + approved: json['approved'] as bool? ?? false, + chainId: json['chainId'] as int?, + accounts: (json['accounts'] as List?) + ?.map((e) => e as String) + .toList() ?? + [], + peerId: json['peerId'] as String?, + peerMeta: json['peerMeta'] == null + ? null + : PeerMeta.fromJson(json['peerMeta'] as Map), + ); + +Map _$WCSessionRequestResponseToJson( + WCSessionRequestResponse instance) => + { + 'approved': instance.approved, + 'chainId': instance.chainId, + 'accounts': instance.accounts, + 'peerId': instance.peerId, + 'peerMeta': instance.peerMeta, + }; diff --git a/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_update_response.dart b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_update_response.dart new file mode 100644 index 00000000..92d19861 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_update_response.dart @@ -0,0 +1,39 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'wc_session_update_response.g.dart'; + +@JsonSerializable() +class WCSessionUpdateResponse { + @JsonKey(name: 'approved', defaultValue: false) + final bool approved; + + @JsonKey(name: 'chainId', defaultValue: 0) + final int chainId; + + @JsonKey(name: 'accounts', defaultValue: []) + final List accounts; + + @JsonKey(name: 'networkId', defaultValue: 0) + final int networkId; + + @JsonKey(name: 'rpcUrl', defaultValue: '') + final String rpcUrl; + + WCSessionUpdateResponse({ + required this.approved, + required this.chainId, + required this.accounts, + required this.networkId, + required this.rpcUrl, + }); + + factory WCSessionUpdateResponse.fromJson(Map json) => + _$WCSessionUpdateResponseFromJson(json); + + Map toJson() => _$WCSessionUpdateResponseToJson(this); + + @override + String toString() { + return 'WCSessionUpdateResponse{approved: $approved, chainId: $chainId, accounts: $accounts, networkId: $networkId, rpcUrl: $rpcUrl}'; + } +} diff --git a/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_update_response.g.dart b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_update_response.g.dart new file mode 100644 index 00000000..81c2e40e --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/walletconnect/wc_session_update_response.g.dart @@ -0,0 +1,30 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'wc_session_update_response.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +WCSessionUpdateResponse _$WCSessionUpdateResponseFromJson( + Map json) => + WCSessionUpdateResponse( + approved: json['approved'] as bool? ?? false, + chainId: json['chainId'] as int? ?? 0, + accounts: (json['accounts'] as List?) + ?.map((e) => e as String) + .toList() ?? + [], + networkId: json['networkId'] as int? ?? 0, + rpcUrl: json['rpcUrl'] as String? ?? '', + ); + +Map _$WCSessionUpdateResponseToJson( + WCSessionUpdateResponse instance) => + { + 'approved': instance.approved, + 'chainId': instance.chainId, + 'accounts': instance.accounts, + 'networkId': instance.networkId, + 'rpcUrl': instance.rpcUrl, + }; diff --git a/packages/walletconnect_dart/lib/src/api/websocket/web_socket_message.dart b/packages/walletconnect_dart/lib/src/api/websocket/web_socket_message.dart new file mode 100644 index 00000000..b018d892 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/websocket/web_socket_message.dart @@ -0,0 +1,26 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'web_socket_message.g.dart'; + +@JsonSerializable() +class WebSocketMessage { + final String topic; + final String type; + final String payload; + + WebSocketMessage({ + required this.topic, + required this.type, + required this.payload, + }); + + factory WebSocketMessage.fromJson(Map json) => + _$WebSocketMessageFromJson(json); + + Map toJson() => _$WebSocketMessageToJson(this); + + @override + String toString() { + return 'WebSocketMessage{topic: $topic, type: $type, payload: $payload}'; + } +} diff --git a/packages/walletconnect_dart/lib/src/api/websocket/web_socket_message.g.dart b/packages/walletconnect_dart/lib/src/api/websocket/web_socket_message.g.dart new file mode 100644 index 00000000..3063e85c --- /dev/null +++ b/packages/walletconnect_dart/lib/src/api/websocket/web_socket_message.g.dart @@ -0,0 +1,21 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'web_socket_message.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +WebSocketMessage _$WebSocketMessageFromJson(Map json) => + WebSocketMessage( + topic: json['topic'] as String, + type: json['type'] as String, + payload: json['payload'] as String, + ); + +Map _$WebSocketMessageToJson(WebSocketMessage instance) => + { + 'topic': instance.topic, + 'type': instance.type, + 'payload': instance.payload, + }; diff --git a/packages/walletconnect_dart/lib/src/crypto/cipher_box.dart b/packages/walletconnect_dart/lib/src/crypto/cipher_box.dart new file mode 100644 index 00000000..f95a3fb9 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/crypto/cipher_box.dart @@ -0,0 +1,25 @@ +import 'dart:math'; +import 'dart:typed_data'; + +import 'package:walletconnect_dart/src/crypto/encrypted_payload.dart'; + +/// an algorithm interface for performing encryption or decryption +abstract class CipherBox { + Future encrypt({ + required Uint8List data, + required Uint8List key, + Uint8List? iv, + }); + + Future decrypt({ + required EncryptedPayload payload, + required Uint8List key, + }); + + Future verifyHmac({ + required EncryptedPayload payload, + required Uint8List key, + }); + + Future generateKey({int length = 32, Random? random}); +} diff --git a/packages/walletconnect_dart/lib/src/crypto/crypto.dart b/packages/walletconnect_dart/lib/src/crypto/crypto.dart new file mode 100644 index 00000000..d2312d6c --- /dev/null +++ b/packages/walletconnect_dart/lib/src/crypto/crypto.dart @@ -0,0 +1,2 @@ +export 'cipher_box.dart'; +export 'wallet_connect_cipher.dart'; diff --git a/packages/walletconnect_dart/lib/src/crypto/encrypted_payload.dart b/packages/walletconnect_dart/lib/src/crypto/encrypted_payload.dart new file mode 100644 index 00000000..c1634ed8 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/crypto/encrypted_payload.dart @@ -0,0 +1,26 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'encrypted_payload.g.dart'; + +@JsonSerializable() +class EncryptedPayload { + final String data; + final String hmac; + final String iv; + + EncryptedPayload({ + required this.data, + required this.hmac, + required this.iv, + }); + + factory EncryptedPayload.fromJson(Map json) => + _$EncryptedPayloadFromJson(json); + + Map toJson() => _$EncryptedPayloadToJson(this); + + @override + String toString() { + return 'EncryptedPayload{data: $data, hmac: $hmac, iv: $iv}'; + } +} diff --git a/packages/walletconnect_dart/lib/src/crypto/encrypted_payload.g.dart b/packages/walletconnect_dart/lib/src/crypto/encrypted_payload.g.dart new file mode 100644 index 00000000..6b6d1c75 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/crypto/encrypted_payload.g.dart @@ -0,0 +1,21 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'encrypted_payload.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +EncryptedPayload _$EncryptedPayloadFromJson(Map json) => + EncryptedPayload( + data: json['data'] as String, + hmac: json['hmac'] as String, + iv: json['iv'] as String, + ); + +Map _$EncryptedPayloadToJson(EncryptedPayload instance) => + { + 'data': instance.data, + 'hmac': instance.hmac, + 'iv': instance.iv, + }; diff --git a/packages/walletconnect_dart/lib/src/crypto/wallet_connect_cipher.dart b/packages/walletconnect_dart/lib/src/crypto/wallet_connect_cipher.dart new file mode 100644 index 00000000..40e60046 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/crypto/wallet_connect_cipher.dart @@ -0,0 +1,92 @@ +import 'dart:math'; +import 'dart:typed_data'; + +import 'package:convert/convert.dart'; +import 'package:cryptography/cryptography.dart'; +import 'package:walletconnect_dart/src/crypto/cipher_box.dart'; +import 'package:walletconnect_dart/src/crypto/encrypted_payload.dart'; +import 'package:walletconnect_dart/src/exceptions/wallet_connect_exception.dart'; + +/// WalletConnect protocol implementation of the encryption/decryption +/// algorithms +class WalletConnectCipher implements CipherBox { + /// Encrypt the data with the given key, and an optional nonce. + @override + Future encrypt({ + required Uint8List data, + required Uint8List key, + Uint8List? iv, + }) async { + // AES-CBC with 265 bit keys and HMAC-SHA256 authentication. + final algorithm = AesCbc.with256bits(macAlgorithm: MacAlgorithm.empty); + final secretKey = SecretKey(List.unmodifiable(key)); + final nonce = Uint8List.fromList(iv ?? algorithm.newNonce()); + + // Encrypt the data + final box = await algorithm.encrypt( + data, + secretKey: secretKey, + nonce: nonce, + ); + + final hmac = Hmac.sha256(); + final payload = Uint8List.fromList([...box.cipherText, ...box.nonce]); + final mac = await hmac.calculateMac(payload, secretKey: secretKey); + + return EncryptedPayload( + data: hex.encode(box.cipherText), + hmac: hex.encode(mac.bytes), + iv: hex.encode(box.nonce), + ); + } + + /// Decrypt the payload with the given key. + /// This also verifies the hmac. + @override + Future decrypt({ + required EncryptedPayload payload, + required Uint8List key, + }) async { + // Verify hmac + final verified = await verifyHmac(payload: payload, key: key); + if (!verified) { + throw WalletConnectException('Invalid HMAC'); + } + + final cipherText = hex.decode(payload.data); + final nonce = hex.decode(payload.iv); + + // Decrypt the payload + final algorithm = AesCbc.with256bits(macAlgorithm: MacAlgorithm.empty); + final box = SecretBox(cipherText, nonce: nonce, mac: Mac.empty); + final secretKey = SecretKey(List.unmodifiable(key)); + final data = await algorithm.decrypt(box, secretKey: secretKey); + return Uint8List.fromList(data); + } + + /// Verify the hmac and returns true if valid. + @override + Future verifyHmac({ + required EncryptedPayload payload, + required Uint8List key, + }) async { + final cipherText = Uint8List.fromList(hex.decode(payload.data)); + final iv = Uint8List.fromList(hex.decode(payload.iv)); + final unsigned = Uint8List.fromList([...cipherText, ...iv]); + + final hmacsha256 = Hmac.sha256(); + final secretKey = SecretKey(List.unmodifiable(key)); + final chmac = await hmacsha256.calculateMac(unsigned, secretKey: secretKey); + + return hex.encode(chmac.bytes) == payload.hmac; + } + + /// Generate a new random, cryptographically secure key. + @override + Future generateKey({int length = 32, Random? random}) async { + var r = random ?? Random.secure(); + return Uint8List.fromList( + List.generate(length, (i) => r.nextInt(256)), + ); + } +} diff --git a/packages/walletconnect_dart/lib/src/exceptions/error_code.dart b/packages/walletconnect_dart/lib/src/exceptions/error_code.dart new file mode 100644 index 00000000..f4ca4625 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/exceptions/error_code.dart @@ -0,0 +1,55 @@ +// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +/// Error codes defined in the [JSON-RPC 2.0 specificiation][spec]. +/// +/// These codes are generally used for protocol-level communication. Most of +/// them shouldn't be used by the application. Those that should have +/// convenience constructors in [RpcException]. +/// +/// [spec]: http://www.jsonrpc.org/specification#error_object +/// An error code indicating that invalid JSON was received by the server. +const PARSE_ERROR = -32700; + +/// An error code indicating that the request JSON was invalid according to the +/// JSON-RPC 2.0 spec. +const INVALID_REQUEST = -32600; + +/// An error code indicating that the requested method does not exist or is +/// unavailable. +const METHOD_NOT_FOUND = -32601; + +/// An error code indicating that the request parameters are invalid for the +/// requested method. +const INVALID_PARAMS = -32602; + +/// An internal JSON-RPC error. +const INTERNAL_ERROR = -32603; + +/// An unexpected error occurred on the server. +/// +/// The spec reserves the range from -32000 to -32099 for implementation-defined +/// server exceptions, but for now we only use one of those values. +const SERVER_ERROR = -32000; + +/// Returns a human-readable name for [errorCode] if it's one specified by the +/// JSON-RPC 2.0 spec. +/// +/// If [errorCode] isn't defined in the JSON-RPC 2.0 spec, returns null. +String? name(int errorCode) { + switch (errorCode) { + case PARSE_ERROR: + return 'parse error'; + case INVALID_REQUEST: + return 'invalid request'; + case METHOD_NOT_FOUND: + return 'method not found'; + case INVALID_PARAMS: + return 'invalid parameters'; + case INTERNAL_ERROR: + return 'internal error'; + default: + return null; + } +} diff --git a/packages/walletconnect_dart/lib/src/exceptions/exceptions.dart b/packages/walletconnect_dart/lib/src/exceptions/exceptions.dart new file mode 100644 index 00000000..b1ef4b0a --- /dev/null +++ b/packages/walletconnect_dart/lib/src/exceptions/exceptions.dart @@ -0,0 +1,2 @@ +export 'error_code.dart'; +export 'wallet_connect_exception.dart'; diff --git a/packages/walletconnect_dart/lib/src/exceptions/wallet_connect_exception.dart b/packages/walletconnect_dart/lib/src/exceptions/wallet_connect_exception.dart new file mode 100644 index 00000000..5ff88538 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/exceptions/wallet_connect_exception.dart @@ -0,0 +1,77 @@ +// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'error_code.dart' as error_code; + +/// An exception from a JSON-RPC server that can be translated into an error +/// response. +class WalletConnectException implements Exception { + /// The error code. + /// + /// All non-negative error codes are available for use by application + /// developers. + final int code; + + /// The error message. + /// + /// This should be limited to a concise single sentence. Further information + /// should be supplied via [data]. + final String message; + + /// Extra application-defined information about the error. + /// + /// This must be a JSON-serializable object. If it's a [Map] without a + /// `"request"` key, a copy of the request that caused the error will + /// automatically be injected. + final dynamic data; + + WalletConnectException(this.message, {this.code = 0, this.data}); + + /// An exception indicating that the method named [methodName] was not found. + /// + /// This should usually be used only by fallback handlers. + WalletConnectException.methodNotFound(String methodName) + : this( + 'Unknown method "$methodName".', + code: error_code.METHOD_NOT_FOUND, + ); + + /// An exception indicating that the parameters for the requested method were + /// invalid. + /// + /// Methods can use this to reject requests with invalid parameters. + WalletConnectException.invalidParams(String message) + : this(message, code: error_code.INVALID_PARAMS); + + /// Converts this exception into a JSON-serializable object that's a valid + /// JSON-RPC 2.0 error response. + Map serialize(request) { + Map modifiedData; + final data = this.data; + if (data is Map && !data.containsKey('request')) { + modifiedData = Map.from(data); + modifiedData['request'] = request; + } else if (data == null) { + modifiedData = {'request': request}; + } else { + modifiedData = data; + } + + var id = request is Map ? request['id'] : null; + if (id is! String && id is! num) id = null; + return { + 'jsonrpc': '2.0', + 'error': {'code': code, 'message': message, 'data': modifiedData}, + 'id': id + }; + } + + @override + String toString() { + var prefix = 'JSON-RPC error $code'; + var errorName = error_code.name(code); + if (errorName != null) prefix += ' ($errorName)'; + return '$prefix: $message'; + } +} diff --git a/packages/walletconnect_dart/lib/src/network/network.dart b/packages/walletconnect_dart/lib/src/network/network.dart new file mode 100644 index 00000000..f411dec0 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/network/network.dart @@ -0,0 +1 @@ +export 'socket_transport.dart'; diff --git a/packages/walletconnect_dart/lib/src/network/reconnecting_web_socket.dart b/packages/walletconnect_dart/lib/src/network/reconnecting_web_socket.dart new file mode 100644 index 00000000..9298fb93 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/network/reconnecting_web_socket.dart @@ -0,0 +1,169 @@ +import 'dart:async'; +import 'dart:math'; + +import 'package:web_socket_channel/web_socket_channel.dart'; + +typedef OnSocketOpen = void Function(bool reconnectAttempt); +typedef OnSocketClose = void Function(); +typedef OnMessage = void Function(dynamic data); + +class ReconnectingWebSocket { + /// The URL as resolved by the constructor. + /// This is always an absolute URL. Read only. + final String url; + + /// The number of milliseconds to delay before attempting to reconnect. + final Duration reconnectInterval; + + /// The maximum number of milliseconds to delay a reconnection attempt. + final Duration maxReconnectInterval; + + /// The rate of increase of the reconnect delay. + /// Allows reconnect attempts to back off when problems persist. + final double reconnectDecay; + + /// The maximum number of reconnection attempts to make. Unlimited if null. + final int? maxReconnectAttempts; + + /// Whether this instance should log debug messages. + final bool debug; + + /// The number of attempted reconnects since starting, or the last successful + /// connection. Read only. + int _reconnectAttempts = 0; + + /// Whether the websocket is currently connected. + bool _connected = false; + + /// Whether the app should try reconnecting. + bool _reconnecting = false; + + /// Whether the app should try to reconnect + bool _shouldReconnect = true; + + WebSocketChannel? _channel; + + StreamSubscription? _subscription; + + StreamSubscription? _reconnectSubscription; + + OnSocketOpen? onOpen; + + OnSocketClose? onClose; + + OnMessage? onMessage; + + ReconnectingWebSocket({ + required this.url, + this.reconnectInterval = const Duration(milliseconds: 1000), + this.maxReconnectInterval = const Duration(milliseconds: 30000), + this.reconnectDecay = 1.5, + this.maxReconnectAttempts, + this.debug = false, + this.onOpen, + this.onClose, + this.onMessage, + }); + + void open(bool reconnectAttempt) { + final maxReconnectAttempts = this.maxReconnectAttempts; + if (reconnectAttempt) { + if (maxReconnectAttempts != null && + _reconnectAttempts > maxReconnectAttempts) { + return; + } + } else { + _reconnectAttempts = 0; + } + + if (debug) { + print('attempt-connect'); + } + + // TODO migrate to IOWebSocketChannel? -> WebSocketChannel does not have + // TODO a way to flag for ready/connection states + // https://github.com/dart-lang/web_socket_channel/issues/25 + _channel = WebSocketChannel.connect(Uri.parse(url)); + _onOpen(reconnectAttempt); + + // Listen for messages + _subscription = _channel?.stream.listen( + _onMessage, + onError: (error) { + _onClose(); + }, + onDone: _onClose, + ); + } + + /// Send data on the WebSocket. + bool send(dynamic data) { + if (!connected) { + return false; + } + + try { + _channel?.sink.add(data); + return true; + } catch (ex) { + return false; + } + } + + /// Closes the web socket connection. + Future close({bool forceClose = false}) async { + _shouldReconnect = !forceClose; + return _channel?.sink.close(); + } + + /// Check if the socket is currently connected. + bool get connected => _connected; + + void _onOpen(bool reconnectAttempt) { + _connected = true; + _shouldReconnect = true; + onOpen?.call(reconnectAttempt); + } + + void _onClose() { + onClose?.call(); + + if (_reconnecting) { + return; + } + + _connected = false; + + if (!_shouldReconnect) { + return; + } + + _reconnecting = true; + + final timeout = reconnectInterval * pow(reconnectDecay, _reconnectAttempts); + final duration = + timeout > maxReconnectInterval ? maxReconnectInterval : timeout; + + if (debug) { + print('Reconnecting in: ${duration.inMilliseconds}'); + } + + _reconnectSubscription?.cancel(); + _reconnectSubscription = + Future.delayed(duration).asStream().listen((event) { + _subscription?.cancel(); + _reconnectAttempts++; + _reconnecting = false; + open(true); + }); + } + + void _onMessage(event) { + _reconnectAttempts = 0; + onMessage?.call(event); + } + + void dispose() { + _subscription?.cancel(); + } +} diff --git a/packages/walletconnect_dart/lib/src/network/socket_transport.dart b/packages/walletconnect_dart/lib/src/network/socket_transport.dart new file mode 100644 index 00000000..8480acf5 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/network/socket_transport.dart @@ -0,0 +1,158 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:walletconnect_dart/src/api/websocket/web_socket_message.dart'; +import 'package:walletconnect_dart/src/network/reconnecting_web_socket.dart'; +import 'package:walletconnect_dart/src/utils/event.dart'; +import 'package:walletconnect_dart/src/utils/event_bus.dart'; + +/// The transport layer used to perform JSON-RPC 2 requests. +/// A client calls methods on a server and handles the server's responses to +/// those method calls. Methods can be called with [sendRequest]. +class SocketTransport { + final String protocol; + final int version; + final String url; + final List subscriptions; + + ReconnectingWebSocket? _socket; + + final EventBus _eventBus; + + /// The transport layer used to perform JSON-RPC 2 requests. + SocketTransport({ + required this.protocol, + required this.version, + required this.url, + required this.subscriptions, + }) : _eventBus = EventBus(); + + /// Open a new connection to a web socket server. + void open({OnSocketOpen? onOpen, OnSocketClose? onClose}) { + // Connect the channel + final wsUrl = getWebSocketUrl( + url: url, + protocol: protocol, + version: version.toString(), + ); + + _socket = ReconnectingWebSocket( + url: wsUrl, + maxReconnectAttempts: 5, + debug: false, + onOpen: onOpen, + onClose: onClose, + onMessage: _socketReceive, + ); + + _socket?.open(false); + + // Queue subscriptions + _queueSubscriptions(); + } + + /// Closes the web socket connection. + Future close({bool forceClose = false}) async { + return _socket?.close(forceClose: forceClose); + } + + /// Send a given payload to the server. + /// The payload is json-encoded before sending. + bool send({ + required Map payload, + required String topic, + bool silent = false, + }) { + final data = { + 'topic': topic, + 'type': 'pub', + 'payload': json.encode(payload), + 'silent': silent, + }; + + final message = json.encode(data); + return _socket?.send(message) ?? false; + } + + /// Subscribe to a given topic. + void subscribe({required String topic}) { + final data = { + 'topic': topic, + 'type': 'sub', + 'payload': '', + 'silent': true, + }; + + final message = json.encode(data); + _socket?.send(message); + } + + /// Send an ack. + void ack({required String topic}) { + final data = { + 'topic': topic, + 'type': 'ack', + 'payload': '', + 'silent': true, + }; + + final message = json.encode(data); + _socket?.send(message); + } + + /// Listen to events. + void on(String eventName, OnEvent callback) { + _eventBus + .on>() + .where((event) => event.name == eventName) + .listen((event) => callback(event.data)); + } + + /// Check if we are currently connected with the socket. + bool get connected => _socket?.connected ?? false; + + void _socketReceive(event) { + if (event is! String) return; + + try { + final data = json.decode(event); + final message = WebSocketMessage.fromJson(data); + ack(topic: message.topic); + _eventBus.fire(Event('message', message)); + } catch (ex) { + return; + } + } + + /// Get the websocket url based on a given url. + String getWebSocketUrl({ + required String url, + required String protocol, + required String version, + }) { + url = url.startsWith('https') + ? url.replaceFirst('https', 'wss') + : url.startsWith('http') + ? url.replaceFirst('http', 'ws') + : url; + + final splitUrl = url.split('?'); + + final params = Uri.dataFromString(url).queryParameters; + final queryParams = { + ...params, + 'protocol': protocol, + 'version': version, + 'env': 'browser', + 'host': 'test', + }; + final queryString = Uri(queryParameters: queryParams).query; + return '${splitUrl[0]}?$queryString'; + } + + void _queueSubscriptions() { + for (var topic in subscriptions) { + subscribe(topic: topic); + } + } +} diff --git a/packages/walletconnect_dart/lib/src/providers/algorand_walletconnect_provider.dart b/packages/walletconnect_dart/lib/src/providers/algorand_walletconnect_provider.dart new file mode 100644 index 00000000..86048c5f --- /dev/null +++ b/packages/walletconnect_dart/lib/src/providers/algorand_walletconnect_provider.dart @@ -0,0 +1,73 @@ +import 'dart:convert'; +import 'dart:typed_data'; + +import 'package:walletconnect_dart/src/exceptions/exceptions.dart'; +import 'package:walletconnect_dart/src/providers/wallet_connect_provider.dart'; +import 'package:walletconnect_dart/src/walletconnect.dart'; + +/// A provider implementation to easily support the Algorand blockchain. +class AlgorandWalletConnectProvider extends WalletConnectProvider { + AlgorandWalletConnectProvider(WalletConnect connector) + : super(connector: connector); + + /// Signs an unsigned transaction by sending a request to the wallet. + /// Returns the signed transaction bytes. + /// Throws [WalletConnectException] if unable to sign the transaction. + Future> signTransaction( + Uint8List transaction, { + Map params = const {}, + }) async { + final txToSign = { + 'txn': base64Encode(transaction), + ...params, + }; + + return _signTransactions(requestParams: [txToSign]); + } + + /// Signs unsigned transactions by sending a request to the wallet. + /// Returns the signed transactions bytes. + /// Throws [WalletConnectException] if unable to sign the transactions. + Future> signTransactions( + List transactions, { + Map params = const {}, + }) async { + final txsToSign = transactions + .map((tx) => { + 'txn': base64Encode(tx), + ...params, + }) + .toList(); + + return _signTransactions(requestParams: txsToSign); + } + + /// Signs unsigned transactions by sending a request to the wallet. + /// Returns the signed transactions bytes. + /// Throws [WalletConnectException] if unable to sign the transactions. + Future> _signTransactions({ + required List> requestParams, + }) async { + final result = await connector.sendCustomRequest( + method: 'algo_signTxn', + params: [requestParams], + ); + + if (result == null || result is! List) { + throw WalletConnectException('Unable to sign transaction'); + } + + // Check string (from ios) + var txs = result.whereType().map(base64Decode).toList(); + + if (txs.isEmpty) { + txs = result.map((tx) => Uint8List.fromList(List.from(tx))).toList(); + } + + return txs; + } + + /// The chain id of the Algorand blockchain. + @override + int get chainId => 4160; +} diff --git a/packages/walletconnect_dart/lib/src/providers/ethereum_walletconnect_provider.dart b/packages/walletconnect_dart/lib/src/providers/ethereum_walletconnect_provider.dart new file mode 100644 index 00000000..c67bcb26 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/providers/ethereum_walletconnect_provider.dart @@ -0,0 +1,165 @@ +import 'dart:convert'; +import 'dart:typed_data'; + +import 'package:convert/convert.dart'; +import 'package:walletconnect_dart/walletconnect_dart.dart'; + +extension HexToBytes on String { + Uint8List toUint8List() => Uint8List.fromList(hex.decode(this)); +} + +/// A provider implementation to easily support the Ethereum blockchain. +class EthereumWalletConnectProvider extends WalletConnectProvider { + final int _chainId; + + EthereumWalletConnectProvider(WalletConnect connector, {int chainId = 0}) + : _chainId = chainId, + super(connector: connector); + + /// Signs method calculates an Ethereum specific signature. + /// [address] - 20B address + /// [message] - message to sign + /// + /// Returns signature. + Future sign({ + required String message, + required String address, + }) async { + final result = await connector.sendCustomRequest( + method: 'eth_sign', + params: [address, message], + ); + + return result; + } + + /// Signs method calculates an Ethereum specific signature. + /// [address] - 20B address + /// [message] - message to sign + /// [password] - The password of the account to sign data with + /// + /// Returns signature. + Future personalSign({ + required String message, + required String address, + String password = '', + }) async { + final result = await connector.sendCustomRequest( + method: 'personal_sign', + params: [message, address, password], + ); + + return result; + } + + /// Calculates an Ethereum-specific signature. + /// [address] - 20B address + /// [typedData] - message to sign containing type information, a domain separator, and data + /// + /// Returns a signature. + Future signTypeData({ + required String address, + required Map typedData, + }) async { + final encodedTypedData = jsonEncode(typedData); + + final result = await connector.sendCustomRequest( + method: 'eth_signTypedData', + params: [address, encodedTypedData], + ); + + return result; + } + + /// Creates new message call transaction or a contract creation, if the data field contains code + /// [from] - The address the transaction is send from. + /// [to] - The address the transaction is directed to. + /// [data] - The compiled code of a contract OR the hash of the invoked method signature and encoded parameters. For details see Ethereum Contract ABI + /// [gas] - (default: 90000) Integer of the gas provided for the transaction execution. It will return unused gas. + /// [gasPrice] - Integer of the gasPrice used for each paid gas (in Wei). + /// [value] - Integer of the value sent with this transaction (in Wei). + /// [nonce] - Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce. + /// + /// Returns the transaction hash, or the zero hash if the transaction is not yet available. + Future sendTransaction({ + required String from, + String? to, + Uint8List? data, + int? gas, + BigInt? gasPrice, + BigInt? value, + int? nonce, + }) async { + final result = await connector.sendCustomRequest( + method: 'eth_sendTransaction', + params: [ + { + 'from': from, + if (data != null) 'data': hex.encode(List.from(data)), + if (to != null) 'to': to, + if (gas != null) 'gas': '0x${gas.toRadixString(16)}', + if (gasPrice != null) 'gasPrice': '0x${gasPrice.toRadixString(16)}', + if (value != null) 'value': '0x${value.toRadixString(16)}', + if (nonce != null) 'nonce': '0x${nonce.toRadixString(16)}', + } + ], + ); + + return result; + } + + /// Signs a transaction that can be submitted to the network at a later time using with [eth_sendRawTransaction]. + /// [from] - The address the transaction is send from. + /// [to] - The address the transaction is directed to. + /// [data] - The compiled code of a contract OR the hash of the invoked method signature and encoded parameters. For details see Ethereum Contract ABI. + /// [gas] - (default: 90000) Integer of the gas provided for the transaction execution. It will return unused gas. + /// [gasPrice] - Integer of the gasPrice used for each paid gas (in Wei). + /// [value] - Integer of the value sent with this transaction (in Wei). + /// [nonce] - Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce. + /// + /// Returns the signed transaction data. + Future signTransaction({ + required String from, + String? to, + Uint8List? data, + int? gas, + BigInt? gasPrice, + BigInt? value, + int? nonce, + }) async { + final result = await connector.sendCustomRequest( + method: 'eth_signTransaction', + params: [ + { + 'from': from, + if (data != null) 'data': hex.encode(List.from(data)), + if (to != null) 'to': to, + if (gas != null) 'gas': '0x${gas.toRadixString(16)}', + if (gasPrice != null) 'gasPrice': '0x${gasPrice.toRadixString(16)}', + if (value != null) 'value': '0x${value.toRadixString(16)}', + if (nonce != null) 'nonce': '0x${nonce.toRadixString(16)}', + } + ], + ); + + return result; + } + + /// Creates new message call transaction or a contract creation for signed transactions. + /// [data] - The signed transaction data. + /// + /// Returns the transaction hash, or the zero hash if the transaction is not yet available. + Future sendRawTransaction({ + required Uint8List data, + }) async { + final result = await connector.sendCustomRequest( + method: 'eth_sendRawTransaction', + params: ['${hex.encode(data.toList())}'], + ); + + return result; + } + + @override + int get chainId => _chainId; +} diff --git a/packages/walletconnect_dart/lib/src/providers/providers.dart b/packages/walletconnect_dart/lib/src/providers/providers.dart new file mode 100644 index 00000000..5c71b814 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/providers/providers.dart @@ -0,0 +1,3 @@ +export 'algorand_walletconnect_provider.dart'; +export 'ethereum_walletconnect_provider.dart'; +export 'wallet_connect_provider.dart'; diff --git a/packages/walletconnect_dart/lib/src/providers/wallet_connect_provider.dart b/packages/walletconnect_dart/lib/src/providers/wallet_connect_provider.dart new file mode 100644 index 00000000..be8afb3a --- /dev/null +++ b/packages/walletconnect_dart/lib/src/providers/wallet_connect_provider.dart @@ -0,0 +1,12 @@ +import 'package:walletconnect_dart/src/walletconnect.dart'; + +/// A generic interface that can be implemented to provide various provider +/// implementations. +abstract class WalletConnectProvider { + final WalletConnect connector; + + WalletConnectProvider({required this.connector}); + + /// Get the chain id. + int get chainId; +} diff --git a/packages/walletconnect_dart/lib/src/session/peer_meta.dart b/packages/walletconnect_dart/lib/src/session/peer_meta.dart new file mode 100644 index 00000000..a994b6cd --- /dev/null +++ b/packages/walletconnect_dart/lib/src/session/peer_meta.dart @@ -0,0 +1,24 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'peer_meta.g.dart'; + +/// Meta data information. +@JsonSerializable() +class PeerMeta { + final String? url; + final String? name; + final String? description; + final List? icons; + + const PeerMeta({this.url, this.name, this.description, this.icons}); + + factory PeerMeta.fromJson(Map json) => + _$PeerMetaFromJson(json); + + Map toJson() => _$PeerMetaToJson(this); + + @override + String toString() { + return 'PeerMeta{url: $url, name: $name, description: $description, icons: $icons}'; + } +} diff --git a/packages/walletconnect_dart/lib/src/session/peer_meta.g.dart b/packages/walletconnect_dart/lib/src/session/peer_meta.g.dart new file mode 100644 index 00000000..d9482dfb --- /dev/null +++ b/packages/walletconnect_dart/lib/src/session/peer_meta.g.dart @@ -0,0 +1,22 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'peer_meta.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +PeerMeta _$PeerMetaFromJson(Map json) => PeerMeta( + url: json['url'] as String?, + name: json['name'] as String?, + description: json['description'] as String?, + icons: + (json['icons'] as List?)?.map((e) => e as String).toList(), + ); + +Map _$PeerMetaToJson(PeerMeta instance) => { + 'url': instance.url, + 'name': instance.name, + 'description': instance.description, + 'icons': instance.icons, + }; diff --git a/packages/walletconnect_dart/lib/src/session/session.dart b/packages/walletconnect_dart/lib/src/session/session.dart new file mode 100644 index 00000000..2329f2ac --- /dev/null +++ b/packages/walletconnect_dart/lib/src/session/session.dart @@ -0,0 +1,4 @@ +export 'peer_meta.dart'; +export 'session_status.dart'; +export 'session_storage.dart'; +export 'wallet_connect_session.dart'; diff --git a/packages/walletconnect_dart/lib/src/session/session_status.dart b/packages/walletconnect_dart/lib/src/session/session_status.dart new file mode 100644 index 00000000..31cf496f --- /dev/null +++ b/packages/walletconnect_dart/lib/src/session/session_status.dart @@ -0,0 +1,33 @@ +/// Information regarding the current session. +class SessionStatus { + final int chainId; + final List accounts; + final int? networkId; + final String? rpcUrl; + + SessionStatus({ + required this.chainId, + required this.accounts, + this.networkId, + this.rpcUrl, + }); + + SessionStatus copyWith({ + int? chainId, + List? accounts, + int? networkId, + String? rpcUrl, + }) { + return SessionStatus( + chainId: chainId ?? this.chainId, + accounts: accounts ?? this.accounts, + networkId: networkId ?? this.networkId, + rpcUrl: rpcUrl ?? this.rpcUrl, + ); + } + + @override + String toString() { + return 'SessionStatus{chainId: $chainId, accounts: $accounts, networkUrl: $networkId, rpcUrl: $rpcUrl}'; + } +} diff --git a/packages/walletconnect_dart/lib/src/session/session_storage.dart b/packages/walletconnect_dart/lib/src/session/session_storage.dart new file mode 100644 index 00000000..248123d9 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/session/session_storage.dart @@ -0,0 +1,9 @@ +import 'package:walletconnect_dart/src/session/wallet_connect_session.dart'; + +abstract class SessionStorage { + Future store(WalletConnectSession session); + + Future getSession(); + + Future removeSession(); +} diff --git a/packages/walletconnect_dart/lib/src/session/wallet_connect_session.dart b/packages/walletconnect_dart/lib/src/session/wallet_connect_session.dart new file mode 100644 index 00000000..e0ef162e --- /dev/null +++ b/packages/walletconnect_dart/lib/src/session/wallet_connect_session.dart @@ -0,0 +1,109 @@ +import 'dart:typed_data'; + +import 'package:convert/convert.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:walletconnect_dart/src/exceptions/exceptions.dart'; +import 'package:walletconnect_dart/src/session/peer_meta.dart'; +import 'package:walletconnect_dart/src/utils/key_converter.dart'; + +part 'wallet_connect_session.g.dart'; + +@JsonSerializable() +class WalletConnectSession { + String protocol; + int version; + bool connected; + List accounts; + int chainId; + String bridge = ''; + + @KeyConverter() + Uint8List? key; + String clientId = ''; + PeerMeta? clientMeta; + String peerId = ''; + PeerMeta? peerMeta; + int handshakeId = 0; + String handshakeTopic = ''; + int networkId = 0; + String rpcUrl = ''; + + WalletConnectSession({ + required this.accounts, + this.protocol = 'wc', + this.version = 1, + this.connected = false, + this.chainId = 0, + this.bridge = '', + this.key, + this.clientId = '', + this.clientMeta, + this.peerId = '', + this.peerMeta, + this.handshakeId = 0, + this.handshakeTopic = '', + this.networkId = 0, + this.rpcUrl = '', + }); + + factory WalletConnectSession.fromUri({ + required String uri, + required String clientId, + required PeerMeta clientMeta, + List? accounts, + }) { + final protocolSeparator = uri.indexOf(':'); + final topicSeparator = uri.indexOf('@', protocolSeparator); + final versionSeparator = uri.indexOf('?'); + final protocol = uri.substring(0, protocolSeparator); + final handshakeTopic = uri.substring(protocolSeparator + 1, topicSeparator); + + final version = uri.substring(topicSeparator + 1, versionSeparator); + final params = Uri.dataFromString(uri).queryParameters; + final bridge = params['bridge'] ?? + (throw WalletConnectException('Missing bridge param in URI')); + + final key = params['key'] ?? + (throw WalletConnectException('Missing key param in URI')); + + return WalletConnectSession( + protocol: protocol, + version: int.tryParse(version) ?? 1, + handshakeTopic: handshakeTopic, + bridge: Uri.decodeFull(bridge), + key: Uint8List.fromList(hex.decode(key)), + accounts: accounts ?? [], + clientId: clientId, + clientMeta: clientMeta, + ); + } + + /// Approve the session. + void approve(Map params) { + connected = true; + chainId = params['chainId'] ?? chainId; + accounts = params['accounts']?.cast() ?? accounts; + peerId = params['peerId'] ?? peerId; + peerMeta = params.containsKey('peerMeta') + ? PeerMeta.fromJson(params['peerMeta']) + : peerMeta; + } + + /// Reset the session. + void reset() { + connected = false; + accounts = []; + handshakeId = 0; + handshakeTopic = ''; + } + + /// Get the display uri. + String toUri() { + return '$protocol:$handshakeTopic@$version?bridge=${Uri.encodeComponent(bridge)}&key=${hex.encode(key ?? [])}'; + } + + factory WalletConnectSession.fromJson(Map json) => + _$WalletConnectSessionFromJson(json); + + Map toJson() => _$WalletConnectSessionToJson(this); +} diff --git a/packages/walletconnect_dart/lib/src/session/wallet_connect_session.g.dart b/packages/walletconnect_dart/lib/src/session/wallet_connect_session.g.dart new file mode 100644 index 00000000..8a41f09d --- /dev/null +++ b/packages/walletconnect_dart/lib/src/session/wallet_connect_session.g.dart @@ -0,0 +1,52 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'wallet_connect_session.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +WalletConnectSession _$WalletConnectSessionFromJson( + Map json) => + WalletConnectSession( + accounts: + (json['accounts'] as List).map((e) => e as String).toList(), + protocol: json['protocol'] as String? ?? 'wc', + version: json['version'] as int? ?? 1, + connected: json['connected'] as bool? ?? false, + chainId: json['chainId'] as int? ?? 0, + bridge: json['bridge'] as String? ?? '', + key: const KeyConverter().fromJson(json['key'] as String?), + clientId: json['clientId'] as String? ?? '', + clientMeta: json['clientMeta'] == null + ? null + : PeerMeta.fromJson(json['clientMeta'] as Map), + peerId: json['peerId'] as String? ?? '', + peerMeta: json['peerMeta'] == null + ? null + : PeerMeta.fromJson(json['peerMeta'] as Map), + handshakeId: json['handshakeId'] as int? ?? 0, + handshakeTopic: json['handshakeTopic'] as String? ?? '', + networkId: json['networkId'] as int? ?? 0, + rpcUrl: json['rpcUrl'] as String? ?? '', + ); + +Map _$WalletConnectSessionToJson( + WalletConnectSession instance) => + { + 'protocol': instance.protocol, + 'version': instance.version, + 'connected': instance.connected, + 'accounts': instance.accounts, + 'chainId': instance.chainId, + 'bridge': instance.bridge, + 'key': const KeyConverter().toJson(instance.key), + 'clientId': instance.clientId, + 'clientMeta': instance.clientMeta, + 'peerId': instance.peerId, + 'peerMeta': instance.peerMeta, + 'handshakeId': instance.handshakeId, + 'handshakeTopic': instance.handshakeTopic, + 'networkId': instance.networkId, + 'rpcUrl': instance.rpcUrl, + }; diff --git a/packages/walletconnect_dart/lib/src/utils/bridge_utils.dart b/packages/walletconnect_dart/lib/src/utils/bridge_utils.dart new file mode 100644 index 00000000..9461a1cb --- /dev/null +++ b/packages/walletconnect_dart/lib/src/utils/bridge_utils.dart @@ -0,0 +1,31 @@ +import 'dart:math'; + +class BridgeUtils { + static const domain = 'walletconnect.org'; + + static final bridges = 'abcdefghijklmnopqrstuvwxyz0123456789' + .split('') + .map((char) => 'https://$char.bridge.walletconnect.org') + .toList(growable: false); + + static bool shouldSelectRandomly(String url) { + final uri = Uri.parse(url); + final parts = uri.host.split('.'); + final parsedDomain = parts.sublist(parts.length - 2).join('.'); + return parsedDomain == domain; + } + + static String selectRandomBridgeUrl() { + final random = Random(); + final randomBridgeIndex = random.nextInt(bridges.length); + final x = bridges[randomBridgeIndex]; + return x; + } + + static String getBridgeUrl(String url) { + if (shouldSelectRandomly(url)) { + return selectRandomBridgeUrl(); + } + return url; + } +} diff --git a/packages/walletconnect_dart/lib/src/utils/event.dart b/packages/walletconnect_dart/lib/src/utils/event.dart new file mode 100644 index 00000000..9cc73e16 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/utils/event.dart @@ -0,0 +1,6 @@ +class Event { + final String name; + final T data; + + Event(this.name, this.data); +} diff --git a/packages/walletconnect_dart/lib/src/utils/event_bus.dart b/packages/walletconnect_dart/lib/src/utils/event_bus.dart new file mode 100644 index 00000000..abfc5ba7 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/utils/event_bus.dart @@ -0,0 +1,71 @@ +import 'dart:async'; + +/// Dispatches events to listeners using the Dart [Stream] API. The [EventBus] +/// enables decoupled applications. It allows objects to interact without +/// requiring to explicitly define listeners and keeping track of them. +/// +/// Not all events should be broadcasted through the [EventBus] but only those of +/// general interest. +/// +/// Events are normal Dart objects. By specifying a class, listeners can +/// filter events. + +typedef OnEvent = Function(T event); + +class EventBus { + final StreamController _streamController; + + /// Controller for the event bus stream. + StreamController get streamController => _streamController; + + /// Creates an [EventBus]. + /// + /// If [sync] is true, events are passed directly to the stream's listeners + /// during a [fire] call. If false (the default), the event will be passed to + /// the listeners at a later time, after the code creating the event has + /// completed. + EventBus({bool sync = false}) + : _streamController = StreamController.broadcast(sync: sync); + + /// Instead of using the default [StreamController] you can use this constructor + /// to pass your own controller. + /// + /// An example would be to use an RxDart Subject as the controller. + EventBus.customController(StreamController controller) + : _streamController = controller; + + /// Listens for events of Type [T] and its subtypes. + /// + /// The method is called like this: myEventBus.on(); + /// + /// If the method is called without a type parameter, the [Stream] contains every + /// event of this [EventBus]. + /// + /// The returned [Stream] is a broadcast stream so multiple subscriptions are + /// allowed. + /// + /// Each listener is handled independently, and if they pause, only the pausing + /// listener is affected. A paused listener will buffer events internally until + /// unpaused or canceled. So it's usually better to just cancel and later + /// subscribe again (avoids memory leak). + /// + Stream on() { + if (T == dynamic) { + return streamController.stream as Stream; + } else { + return streamController.stream.where((event) => event is T).cast(); + } + } + + /// Fires a new event on the event bus with the specified [event]. + /// + void fire(event) { + streamController.add(event); + } + + /// Destroy this [EventBus]. This is generally only in a testing context. + /// + void destroy() { + _streamController.close(); + } +} diff --git a/packages/walletconnect_dart/lib/src/utils/key_converter.dart b/packages/walletconnect_dart/lib/src/utils/key_converter.dart new file mode 100644 index 00000000..88e100d4 --- /dev/null +++ b/packages/walletconnect_dart/lib/src/utils/key_converter.dart @@ -0,0 +1,26 @@ +import 'dart:typed_data'; + +import 'package:convert/convert.dart'; +import 'package:json_annotation/json_annotation.dart'; + +class KeyConverter implements JsonConverter { + const KeyConverter(); + + @override + Uint8List? fromJson(String? json) { + if (json == null) { + return null; + } + + return Uint8List.fromList(hex.decode(json)); + } + + @override + String? toJson(Uint8List? key) { + if (key == null) { + return null; + } + + return hex.encode(key); + } +} diff --git a/packages/walletconnect_dart/lib/src/walletconnect.dart b/packages/walletconnect_dart/lib/src/walletconnect.dart new file mode 100644 index 00000000..4edbebfb --- /dev/null +++ b/packages/walletconnect_dart/lib/src/walletconnect.dart @@ -0,0 +1,660 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; +import 'dart:typed_data'; + +import 'package:stack_trace/stack_trace.dart'; +import 'package:uuid/uuid.dart'; +import 'package:walletconnect_dart/src/api/api.dart'; +import 'package:walletconnect_dart/src/crypto/crypto.dart'; +import 'package:walletconnect_dart/src/crypto/encrypted_payload.dart'; +import 'package:walletconnect_dart/src/exceptions/exceptions.dart'; +import 'package:walletconnect_dart/src/network/network.dart'; +import 'package:walletconnect_dart/src/session/session.dart'; +import 'package:walletconnect_dart/src/utils/bridge_utils.dart'; +import 'package:walletconnect_dart/src/utils/event.dart'; +import 'package:walletconnect_dart/src/utils/event_bus.dart'; + +const ethSigningMethods = [ + 'eth_sendTransaction', + 'eth_signTransaction', + 'eth_sign', + 'eth_signTypedData', + 'eth_signTypedData_v1', + 'eth_signTypedData_v2', + 'eth_signTypedData_v3', + 'eth_signTypedData_v4', + 'personal_sign', +]; + +typedef OnConnectRequest = void Function(SessionStatus status); +typedef OnSessionUpdate = void Function(WCSessionUpdateResponse response); +typedef OnDisconnect = void Function(); +typedef OnDisplayUriCallback = void Function(String uri); + +/// WalletConnect is an open source protocol for connecting decentralised +/// applications to mobile wallets with QR code scanning or deep linking. +/// +/// A user can interact securely with any Dapp from their mobile phone, +/// making WalletConnect wallets a safer choice compared to desktop or +/// browser extension wallets. +class WalletConnect { + /// The wallet connect protocol + static const protocol = 'wc'; + + /// The current wallet connect version + static const version = 1; + + /// The current active session. + final WalletConnectSession session; + + /// The storage when sessions can be stored and retrieved. + final SessionStorage? sessionStorage; + + /// Default signing methods (for Ethereum) + final List signingMethods; + + /// The socket transport layer + SocketTransport _transport; + + /// The algorithm used to encrypt/decrypt payloads + CipherBox cipherBox; + + /// The map of request ids to pending requests. + final _pendingRequests = {}; + + /// Eventbus used for internal events. + final EventBus _eventBus; + + WalletConnect._internal({ + required this.session, + required this.sessionStorage, + required this.signingMethods, + required this.cipherBox, + required SocketTransport transport, + }) : _transport = transport, + _eventBus = EventBus() { + // Init transport event handling + _initTransport(); + + // Subscribe to internal events + _subscribeToInternalEvents(); + + if (session.handshakeTopic.isNotEmpty) { + transport.subscribe(topic: session.handshakeTopic); + } + } + + /// WalletConnect is an open source protocol for connecting decentralised + /// applications to mobile wallets with QR code scanning or deep linking. + /// + /// You should provide a bridge, uri or session object. + factory WalletConnect({ + String bridge = '', + String uri = '', + WalletConnectSession? session, + SessionStorage? sessionStorage, + CipherBox? cipher, + SocketTransport? transport, + String? clientId, + PeerMeta? clientMeta, + }) { + if (bridge.isEmpty && uri.isEmpty && session == null) { + throw WalletConnectException( + 'Missing one of the required parameters: bridge / uri / session', + ); + } + + if (bridge.isNotEmpty) { + bridge = BridgeUtils.getBridgeUrl(bridge); + } + + if (uri.isNotEmpty) { + session = WalletConnectSession.fromUri( + uri: uri, + clientId: clientId ?? const Uuid().v4(), + clientMeta: clientMeta ?? const PeerMeta(), + ); + } + + session = session ?? + WalletConnectSession( + bridge: bridge, + accounts: [], + clientId: clientId ?? const Uuid().v4(), + clientMeta: clientMeta ?? const PeerMeta(), + ); + + cipher = cipher ?? WalletConnectCipher(); + + transport = transport ?? + SocketTransport( + protocol: session.protocol, + version: session.version, + url: session.bridge, + subscriptions: [session.clientId], + ); + + return WalletConnect._internal( + session: session, + sessionStorage: sessionStorage, + cipherBox: cipher, + signingMethods: [...ethSigningMethods], + transport: transport, + ); + } + + /// Registers event subscriptions. + /// https://docs.walletconnect.com/client-api#register-event-subscription + /// Supported events: connect, disconnect, session_request, session_update + void on(String eventName, OnEvent callback) { + _eventBus + .on>() + .where((event) => event.name == eventName) + .listen((event) => callback(event.data)); + } + + /// Creates a new session calling [createSession] if it doesnt exists, or returns the instantiated one. + Future connect( + {int? chainId, OnDisplayUriCallback? onDisplayUri}) async { + if (connected) { + onDisplayUri?.call(session.toUri()); + return SessionStatus( + chainId: session.chainId, + accounts: session.accounts, + ); + } + + return await createSession(chainId: chainId, onDisplayUri: onDisplayUri); + } + + /// Reconnects to the web socket server. + void reconnect() { + _transport.close(forceClose: true); + _transport.open(); + } + + /// Creates a new session between the dApp and wallet. + /// The dapp should call this method for initiating the session. + /// https://docs.walletconnect.com/client-api#create-new-session-session_request + Future createSession({ + int? chainId, + OnDisplayUriCallback? onDisplayUri, + }) async { + if (connected) { + throw WalletConnectException('Session currently connected'); + } + + // Generate encryption key + session.key = await cipherBox.generateKey(); + + final request = JsonRpcRequest( + id: payloadId, + method: 'wc_sessionRequest', + params: [ + { + 'peerId': session.clientId, + 'peerMeta': session.clientMeta, + 'chainId': chainId, + } + ], + ); + + session.handshakeId = request.id; + session.handshakeTopic = const Uuid().v4(); + + // Display the URI + final uri = session.toUri(); + onDisplayUri?.call(uri); + _eventBus.fire(Event('display_uri', uri)); + + // Send the request + final response = await _sendRequest(request, topic: session.handshakeTopic); + + // Notify listeners + await _handleSessionResponse(response); + + return WCSessionRequestResponse.fromJson(response).status; + } + + /// Approves the session requested by the peer (dApp), responding with the accounts and client's id and meta. + /// https://docs.walletconnect.com/client-api#approve-session-request-connect + Future approveSession({ + required List accounts, + required int chainId, + }) async { + if (connected) { + throw WalletConnectException('Session currently connected'); + } + + final params = { + 'approved': true, + 'chainId': chainId, + 'networkId': 0, + 'accounts': accounts, + 'rpcUrl': '', + 'peerId': session.clientId, + 'peerMeta': session.clientMeta, + }; + + final response = JsonRpcResponse( + id: session.handshakeId, + result: params, + ); + + await _sendResponse(response); + session.connected = true; + + // Notify listeners + _eventBus.fire(Event( + 'connect', + SessionStatus( + chainId: chainId, + accounts: accounts, + ), + )); + } + + /// Rejects the session requested by the peer (dApp), responding with reason message. + /// https://docs.walletconnect.com/client-api#reject-session-request-disconnect + Future rejectSession({String? message}) async { + if (connected) { + throw WalletConnectException('Session currently connected'); + } + + message = message ?? 'Session Rejected'; + + final response = JsonRpcResponse( + id: session.handshakeId, + error: { + 'code': -32000, + 'message': message, + }, + ); + + await _sendResponse(response); + session.connected = false; + + // Notify listeners + _eventBus.fire(Event('disconnect', message)); + } + + /// Updates the actual session requesting the peer to change some session data + /// Only chainId and/or accounts can be changed. + /// https://docs.walletconnect.com/client-api#update-session-session_update + Future updateSession(SessionStatus sessionStatus) async { + if (!connected) { + throw WalletConnectException('Session currently disconnected'); + } + + session.chainId = sessionStatus.chainId; + session.accounts = sessionStatus.accounts; + session.networkId = sessionStatus.networkId ?? 0; + session.rpcUrl = sessionStatus.rpcUrl ?? ''; + + final params = { + 'approved': true, + 'chainId': session.chainId, + 'networkId': session.networkId, + 'accounts': session.accounts, + 'rpcUrl': session.rpcUrl, + }; + + final request = JsonRpcRequest( + id: payloadId, + method: 'wc_sessionUpdate', + params: [params], + ); + + // Send the request + final response = await _sendRequest(request); + + // Notify listeners + await _handleSessionResponse(response); + } + + /// Approves a pending request responding with a hex encoded string + /// https://docs.walletconnect.com/client-api#approve-call-request + Future approveRequest({ + required int id, + required String result, + }) async { + final response = JsonRpcResponse( + id: id, + result: result, + ); + + return _sendResponse(response); + } + + /// Rejects a pending request specifing the error + /// https://docs.walletconnect.com/client-api#reject-call-request + Future rejectRequest({ + required int id, + String? errorMessage, + }) async { + final response = JsonRpcResponse( + id: id, + error: {'error': errorMessage}, + ); + + return _sendResponse(response); + } + + /// Send a custom request. + /// https://docs.walletconnect.com/client-api#send-custom-request + Future sendCustomRequest({ + int? id, + required String method, + required List params, + String? topic, + }) async { + final request = JsonRpcRequest( + id: id ?? payloadId, + method: method, + params: params, + ); + + return _sendRequest(request); + } + + /// Send a custom response. + Future sendCustomResponse({ + required int id, + String? result, + String? error, + }) async { + final response = JsonRpcResponse( + id: id, + result: result, + error: error, + ); + + return _sendResponse(response); + } + + /// Kill the current session. + /// https://docs.walletconnect.com/client-api#kill-session-disconnect + Future killSession({String? sessionError}) async { + final message = sessionError ?? 'Session disconnected'; + + final request = JsonRpcRequest( + id: payloadId, + method: 'wc_sessionUpdate', + params: [ + { + 'approved': false, + 'chainId': null, + 'networkId': null, + 'accounts': null, + } + ], + ); + + unawaited(_sendRequest(request)); + + await _handleSessionDisconnect(errorMessage: message, forceClose: true); + } + + /// Close the connection + /// This does not kill and clear the session. + Future close({bool forceClose = false}) async { + return _transport.close(forceClose: forceClose); + } + + /// Check if the request is a silent payload. + bool isSilentPayload(JsonRpcRequest request) { + if (request.method.startsWith('wc_')) { + return true; + } + + if (signingMethods.contains(request.method)) { + return false; + } + + return true; + } + + /// Get a new random, payload id. + int get payloadId { + var rng = Random(); + final date = (DateTime.now().millisecondsSinceEpoch * pow(10, 3)).toInt(); + final extra = (rng.nextDouble() * pow(10, 3)).floor(); + return date + extra; + } + + /// Check if a current session is connected. + bool get connected => session.connected; + + /// Check if walletconnect is currently connected with the bridge. + bool get bridgeConnected => _transport.connected; + + /// Register callback listeners. + void registerListeners({ + OnConnectRequest? onConnect, + OnSessionUpdate? onSessionUpdate, + OnDisconnect? onDisconnect, + }) { + on('connect', (data) => onConnect?.call(data)); + on( + 'session_update', (data) => onSessionUpdate?.call(data)); + on('disconnect', (data) => onDisconnect?.call()); + } + + void _handleIncomingMessages(WebSocketMessage message) async { + final activeTopics = [session.clientId, session.handshakeTopic]; + if (!activeTopics.contains(message.topic)) { + return; + } + + final key = session.key; + if (key == null) { + return; + } + + // Decrypt the payload + final encryptedPayload = EncryptedPayload.fromJson( + json.decode(message.payload), + ); + final payload = await cipherBox.decrypt( + payload: encryptedPayload, + key: key, + ); + + // Decode the data + final data = json.decode(utf8.decode(payload)); + + // Check if the incoming message is a request + if (_isJsonRpcRequest(data)) { + final request = JsonRpcRequest.fromJson(data); + _eventBus.fire(Event(request.method, request)); + return; + } + + // Handle the response + _handleSingleResponse(data); + } + + /// Sends a JSON-RPC-2 compliant request to invoke the given [method]. + /// If no topic is specified, then the session`s peerId is used as topic. + Future _sendRequest( + JsonRpcRequest request, { + String? topic, + }) async { + final key = session.key; + if (key == null) { + return; + } + + final data = json.encode(request.toJson()); + final payload = await cipherBox.encrypt( + data: Uint8List.fromList(utf8.encode(data)), + key: key, + ); + + final method = request.method; + final silent = isSilentPayload(request); + + // Send the request + _transport.send( + payload: payload.toJson(), + topic: topic ?? session.peerId, + silent: silent, + ); + + var completer = Completer.sync(); + _pendingRequests[request.id] = _Request(method, completer, Chain.current()); + return completer.future; + } + + Future _sendResponse(JsonRpcResponse response) async { + final key = session.key; + if (key == null) { + return; + } + + final data = json.encode(response.toJson()); + final payload = await cipherBox.encrypt( + data: Uint8List.fromList(utf8.encode(data)), + key: key, + ); + + // Send the request + _transport.send( + payload: payload.toJson(), + topic: session.peerId, + silent: true, + ); + } + + void _initTransport() { + _transport.on('message', _handleIncomingMessages); + + // Open a new connection + _transport.open(); + } + + /// Handles incoming JSON RPC requests that do not have a mapped id. + void _subscribeToInternalEvents() { + // Wallet received a session request. + on('wc_sessionRequest', (payload) { + final request = WCSessionRequest.fromJson(payload.params?[0]); + session.handshakeId = payload.id; + session.peerId = request.peerId ?? ''; + session.peerMeta = request.peerMeta ?? const PeerMeta(); + + _eventBus.fire(Event('session_request', request)); + }); + + // Wallet received a session update. + on('wc_sessionUpdate', (payload) { + _handleSessionResponse(payload.params?[0] ?? {}); + }); + } + + /// Handles a decoded response from the server after batches have been + /// resolved. + void _handleSingleResponse(response) { + if (!_isResponseValid(response)) return; + var id = response['id']; + id = (id is String) ? int.parse(id) : id; + var request = _pendingRequests.remove(id)!; + if (response.containsKey('result')) { + request.completer.complete(response['result']); + } else { + request.completer.completeError( + WalletConnectException( + response['error']['message'], + code: response['error']['code'], + data: response['error']['data'], + ), + request.chain); + } + } + + /// Determines whether the server's response is valid per the spec. + bool _isJsonRpcRequest(response) { + if (response is! Map) return false; + if (response['jsonrpc'] != '2.0') return false; + var id = response['id']; + id = (id is String) ? int.parse(id) : id; + return response.containsKey('method'); + } + + /// Determines whether the server's response is valid per the spec. + bool _isResponseValid(response) { + if (response is! Map) return false; + if (response['jsonrpc'] != '2.0') return false; + var id = response['id']; + id = (id is String) ? int.parse(id) : id; + if (!_pendingRequests.containsKey(id)) return false; + if (response.containsKey('result')) return true; + + if (!response.containsKey('error')) return false; + var error = response['error']; + if (error is! Map) return false; + if (error['code'] is! int) return false; + if (error['message'] is! String) return false; + return true; + } + + Future _handleSessionResponse(Map params) async { + final approved = params['approved'] ?? false; + final connected = this.connected; + if (approved && !connected) { + // New connection + session.approve(params); + + // Store session + await sessionStorage?.store(session); + + // Notify the listeners + final data = WCSessionRequestResponse.fromJson(params); + _eventBus.fire(Event('connect', data.status)); + } else if (approved && connected) { + // Session update + session.approve(params); + + // Store session + await sessionStorage?.store(session); + + // Notify the listeners + final data = WCSessionUpdateResponse.fromJson(params); + _eventBus.fire(Event('session_update', data)); + } else { + await _handleSessionDisconnect(); + } + } + + Future _handleSessionDisconnect({ + String? errorMessage, + bool forceClose = false, + }) async { + session.reset(); + + // Remove storage session + await sessionStorage?.removeSession(); + + // Close the web socket connection + await _transport.close(forceClose: forceClose); + + // Notify listeners + _eventBus.fire(Event>('disconnect', { + 'message': errorMessage ?? '', + })); + } +} + +/// A pending request to the server. +class _Request { + /// The method that was sent. + final String method; + + /// The completer to use to complete the response future. + final Completer completer; + + /// The stack chain from where the request was made. + final Chain chain; + + _Request(this.method, this.completer, this.chain); +} diff --git a/packages/walletconnect_dart/lib/walletconnect_dart.dart b/packages/walletconnect_dart/lib/walletconnect_dart.dart new file mode 100644 index 00000000..39b59a08 --- /dev/null +++ b/packages/walletconnect_dart/lib/walletconnect_dart.dart @@ -0,0 +1,9 @@ +library walletconnect; + +export 'src/api/api.dart'; +export 'src/crypto/crypto.dart'; +export 'src/exceptions/exceptions.dart'; +export 'src/network/network.dart'; +export 'src/providers/providers.dart'; +export 'src/session/session.dart'; +export 'src/walletconnect.dart'; diff --git a/packages/walletconnect_dart/pubspec.yaml b/packages/walletconnect_dart/pubspec.yaml new file mode 100644 index 00000000..aaa9d450 --- /dev/null +++ b/packages/walletconnect_dart/pubspec.yaml @@ -0,0 +1,38 @@ +name: walletconnect_dart +description: Open protocol for connecting decentralised applications to mobile wallets with QR code scanning or deep linking. +version: 0.0.11 +homepage: https://walletconnect.org/ +repository: https://github.com/RootSoft/walletconnect-dart-sdk +issue_tracker: https://github.com/RootSoft/walletconnect-dart-sdk/issues + +environment: + sdk: ">=2.14.0 <3.0.0" + +dependencies: + # WebSocket Channel + web_socket_channel: ^2.1.0 + + # UUID + uuid: ^3.0.5 + + # Cryptography + cryptography: ^2.0.5 + + # Hex + convert: ^3.0.1 + + # JSON Annotation + json_annotation: ^4.0.1 + + # Stack trace + stack_trace: ^1.10.0 + +dev_dependencies: + # Testing framework + test: ^1.20.1 + + # JSON Serialization + json_serializable: ^4.1.0 + + # Build runner + build_runner: ^2.1.7 \ No newline at end of file diff --git a/packages/walletconnect_dart/test/flutter_walletconnect_test.dart b/packages/walletconnect_dart/test/flutter_walletconnect_test.dart new file mode 100644 index 00000000..ab73b3a2 --- /dev/null +++ b/packages/walletconnect_dart/test/flutter_walletconnect_test.dart @@ -0,0 +1 @@ +void main() {} From f22de5dcc1e037458a78e549168894b1ec26e3b4 Mon Sep 17 00:00:00 2001 From: chenliang Date: Wed, 7 Sep 2022 11:20:09 +0800 Subject: [PATCH 02/12] feat: add emoji_picker_flutter --- .../.github/workflows/main.yml | 44 + packages/emoji_picker_flutter/.gitignore | 27 + packages/emoji_picker_flutter/CHANGELOG.md | 70 + packages/emoji_picker_flutter/LICENSE | 25 + packages/emoji_picker_flutter/README.md | 146 + .../analysis_options.yaml | 81 + .../emoji_picker_flutter/android/.gitignore | 8 + .../emoji_picker_flutter/android/build.gradle | 40 + .../android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + .../android/settings.gradle | 1 + .../android/src/main/AndroidManifest.xml | 3 + .../EmojiPickerFlutterPlugin.kt | 49 + .../emoji_picker_flutter/example/.gitignore | 71 + .../emoji_picker_flutter/example/README.md | 16 + .../example/android/.gitignore | 11 + .../example/android/app/build.gradle | 59 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 42 + .../MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + .../example/android/build.gradle | 31 + .../example/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + .../example/android/settings.gradle | 11 + .../example/ios/.gitignore | 32 + .../ios/Flutter/AppFrameworkInfo.plist | 26 + .../example/ios/Flutter/Debug.xcconfig | 2 + .../example/ios/Flutter/Release.xcconfig | 2 + .../ios/Runner.xcodeproj/project.pbxproj | 539 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../example/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 26 + .../example/ios/Runner/Info.plist | 47 + .../ios/Runner/Runner-Bridging-Header.h | 1 + .../example/lib/main.dart | 143 + .../example/macos/.gitignore | 6 + .../macos/Flutter/Flutter-Debug.xcconfig | 2 + .../macos/Flutter/Flutter-Release.xcconfig | 2 + .../macos/Runner.xcodeproj/project.pbxproj | 632 +++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 89 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../example/macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 46993 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 3276 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 1429 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 5933 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1243 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 14800 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 1874 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 339 ++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + .../macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 12 + .../example/macos/Runner/Info.plist | 32 + .../macos/Runner/MainFlutterWindow.swift | 15 + .../example/macos/Runner/Release.entitlements | 8 + .../emoji_picker_flutter/example/pubspec.yaml | 21 + packages/emoji_picker_flutter/ios/.gitignore | 38 + .../emoji_picker_flutter/ios/Assets/.gitkeep | 0 .../ios/Classes/EmojiPickerFlutterPlugin.h | 4 + .../ios/Classes/EmojiPickerFlutterPlugin.m | 15 + .../SwiftEmojiPickerFlutterPlugin.swift | 14 + .../ios/emoji_picker_flutter.podspec | 23 + .../lib/emoji_picker_flutter.dart | 9 + .../lib/src/category_emoji.dart | 13 + .../lib/src/category_icon.dart | 20 + .../lib/src/category_icons.dart | 49 + .../emoji_picker_flutter/lib/src/config.dart | 192 + .../lib/src/default_emoji_picker_view.dart | 375 ++ .../emoji_picker_flutter/lib/src/emoji.dart | 52 + .../lib/src/emoji_lists.dart | 3409 +++++++++++++++++ .../lib/src/emoji_picker.dart | 253 ++ .../lib/src/emoji_picker_builder.dart | 20 + .../lib/src/emoji_picker_internal_utils.dart | 198 + .../lib/src/emoji_picker_utils.dart | 59 + .../lib/src/emoji_skin_tones.dart | 22 + .../lib/src/emoji_view_state.dart | 21 + .../lib/src/recent_emoji.dart | 30 + .../lib/src/triangle_shape.dart | 31 + .../Classes/EmojiPickerFlutterPlugin.swift | 19 + .../macos/emoji_picker_flutter.podspec | 22 + packages/emoji_picker_flutter/pubspec.yaml | 27 + .../screenshot/backspace.png | Bin 0 -> 78160 bytes .../emoji_picker_flutter/screenshot/intro.png | Bin 0 -> 296980 bytes .../screenshot/screenshot.png | Bin 0 -> 264120 bytes .../screenshot/screenshot2.png | Bin 0 -> 421713 bytes .../test/emoji_picker_flutter_test.dart | 98 + 130 files changed, 8294 insertions(+) create mode 100644 packages/emoji_picker_flutter/.github/workflows/main.yml create mode 100644 packages/emoji_picker_flutter/.gitignore create mode 100644 packages/emoji_picker_flutter/CHANGELOG.md create mode 100644 packages/emoji_picker_flutter/LICENSE create mode 100644 packages/emoji_picker_flutter/README.md create mode 100644 packages/emoji_picker_flutter/analysis_options.yaml create mode 100644 packages/emoji_picker_flutter/android/.gitignore create mode 100644 packages/emoji_picker_flutter/android/build.gradle create mode 100644 packages/emoji_picker_flutter/android/gradle.properties create mode 100644 packages/emoji_picker_flutter/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/emoji_picker_flutter/android/settings.gradle create mode 100644 packages/emoji_picker_flutter/android/src/main/AndroidManifest.xml create mode 100644 packages/emoji_picker_flutter/android/src/main/kotlin/com/fintasys/emoji_picker_flutter/EmojiPickerFlutterPlugin.kt create mode 100644 packages/emoji_picker_flutter/example/.gitignore create mode 100644 packages/emoji_picker_flutter/example/README.md create mode 100644 packages/emoji_picker_flutter/example/android/.gitignore create mode 100644 packages/emoji_picker_flutter/example/android/app/build.gradle create mode 100644 packages/emoji_picker_flutter/example/android/app/src/debug/AndroidManifest.xml create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/AndroidManifest.xml create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/kotlin/com/fintasys/emoji_picker_flutter_example/MainActivity.kt create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/values-night/styles.xml create mode 100644 packages/emoji_picker_flutter/example/android/app/src/main/res/values/styles.xml create mode 100644 packages/emoji_picker_flutter/example/android/app/src/profile/AndroidManifest.xml create mode 100644 packages/emoji_picker_flutter/example/android/build.gradle create mode 100644 packages/emoji_picker_flutter/example/android/gradle.properties create mode 100644 packages/emoji_picker_flutter/example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/emoji_picker_flutter/example/android/settings.gradle create mode 100644 packages/emoji_picker_flutter/example/ios/.gitignore create mode 100644 packages/emoji_picker_flutter/example/ios/Flutter/AppFrameworkInfo.plist create mode 100644 packages/emoji_picker_flutter/example/ios/Flutter/Debug.xcconfig create mode 100644 packages/emoji_picker_flutter/example/ios/Flutter/Release.xcconfig create mode 100644 packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.pbxproj create mode 100644 packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/AppDelegate.swift create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Base.lproj/Main.storyboard create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Info.plist create mode 100644 packages/emoji_picker_flutter/example/ios/Runner/Runner-Bridging-Header.h create mode 100644 packages/emoji_picker_flutter/example/lib/main.dart create mode 100644 packages/emoji_picker_flutter/example/macos/.gitignore create mode 100644 packages/emoji_picker_flutter/example/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 packages/emoji_picker_flutter/example/macos/Flutter/Flutter-Release.xcconfig create mode 100644 packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/project.pbxproj create mode 100644 packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/emoji_picker_flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/emoji_picker_flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/AppDelegate.swift create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Configs/Debug.xcconfig create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Configs/Release.xcconfig create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Configs/Warnings.xcconfig create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/DebugProfile.entitlements create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Info.plist create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/MainFlutterWindow.swift create mode 100644 packages/emoji_picker_flutter/example/macos/Runner/Release.entitlements create mode 100644 packages/emoji_picker_flutter/example/pubspec.yaml create mode 100644 packages/emoji_picker_flutter/ios/.gitignore create mode 100644 packages/emoji_picker_flutter/ios/Assets/.gitkeep create mode 100644 packages/emoji_picker_flutter/ios/Classes/EmojiPickerFlutterPlugin.h create mode 100644 packages/emoji_picker_flutter/ios/Classes/EmojiPickerFlutterPlugin.m create mode 100644 packages/emoji_picker_flutter/ios/Classes/SwiftEmojiPickerFlutterPlugin.swift create mode 100644 packages/emoji_picker_flutter/ios/emoji_picker_flutter.podspec create mode 100644 packages/emoji_picker_flutter/lib/emoji_picker_flutter.dart create mode 100644 packages/emoji_picker_flutter/lib/src/category_emoji.dart create mode 100644 packages/emoji_picker_flutter/lib/src/category_icon.dart create mode 100644 packages/emoji_picker_flutter/lib/src/category_icons.dart create mode 100644 packages/emoji_picker_flutter/lib/src/config.dart create mode 100644 packages/emoji_picker_flutter/lib/src/default_emoji_picker_view.dart create mode 100644 packages/emoji_picker_flutter/lib/src/emoji.dart create mode 100644 packages/emoji_picker_flutter/lib/src/emoji_lists.dart create mode 100644 packages/emoji_picker_flutter/lib/src/emoji_picker.dart create mode 100644 packages/emoji_picker_flutter/lib/src/emoji_picker_builder.dart create mode 100644 packages/emoji_picker_flutter/lib/src/emoji_picker_internal_utils.dart create mode 100644 packages/emoji_picker_flutter/lib/src/emoji_picker_utils.dart create mode 100644 packages/emoji_picker_flutter/lib/src/emoji_skin_tones.dart create mode 100644 packages/emoji_picker_flutter/lib/src/emoji_view_state.dart create mode 100644 packages/emoji_picker_flutter/lib/src/recent_emoji.dart create mode 100644 packages/emoji_picker_flutter/lib/src/triangle_shape.dart create mode 100644 packages/emoji_picker_flutter/macos/Classes/EmojiPickerFlutterPlugin.swift create mode 100644 packages/emoji_picker_flutter/macos/emoji_picker_flutter.podspec create mode 100644 packages/emoji_picker_flutter/pubspec.yaml create mode 100644 packages/emoji_picker_flutter/screenshot/backspace.png create mode 100644 packages/emoji_picker_flutter/screenshot/intro.png create mode 100644 packages/emoji_picker_flutter/screenshot/screenshot.png create mode 100644 packages/emoji_picker_flutter/screenshot/screenshot2.png create mode 100644 packages/emoji_picker_flutter/test/emoji_picker_flutter_test.dart diff --git a/packages/emoji_picker_flutter/.github/workflows/main.yml b/packages/emoji_picker_flutter/.github/workflows/main.yml new file mode 100644 index 00000000..1447f8b5 --- /dev/null +++ b/packages/emoji_picker_flutter/.github/workflows/main.yml @@ -0,0 +1,44 @@ +name: emoji_picker_flutter + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +env: + flutter_version: '3.0.1' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@0.9.1 + with: + access_token: ${{ github.token }} + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: '12.x' + - name: Init Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: ${{ env.flutter_version }} + channel: "stable" + cache: true + cache-key: flutter-install-cache-${{ env.flutter_version }} + - name: Install Dependencies + run: flutter pub get + - name: Format + run: flutter format --set-exit-if-changed lib test example + - name: Analyze + run: flutter analyze lib test example + - name: Run tests + run: flutter test + - name: Build Android APK + working-directory: ./example + run: flutter build apk diff --git a/packages/emoji_picker_flutter/.gitignore b/packages/emoji_picker_flutter/.gitignore new file mode 100644 index 00000000..64d40d81 --- /dev/null +++ b/packages/emoji_picker_flutter/.gitignore @@ -0,0 +1,27 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# Visual Studio Code related +.vscode/ +.dart_tool/ + +.packages +.metadata +.pub/ +.idea/ + +build/ diff --git a/packages/emoji_picker_flutter/CHANGELOG.md b/packages/emoji_picker_flutter/CHANGELOG.md new file mode 100644 index 00000000..18b5e7de --- /dev/null +++ b/packages/emoji_picker_flutter/CHANGELOG.md @@ -0,0 +1,70 @@ +## 1.3.0 +- Compatibility for Flutter 3 and update dependencies 💙 +- Introduce property `replaceEmojiOnLimitExceed` to replace least used emoji in Recents when the list is full +- Add property `gridPadding` to make GridView padding configurable +- Add same background color of emoji view to background of loading indicator +- Improvements for usage of custom view + +## 1.2.1 +- Compatibility for Flutter 2.10 and update Android and Kotlin versions +- Add Mate Emoji 🧉 + +## 1.2.0 +- Breaking Change: `noRecentsText` of type `String` was changed to `noRecents` of type `Widget` and `noRecentsStyle` was removed from `Config` + +## 1.1.2 +- Fix a issue with macos platform 👨‍🔧 +- Close Skin-Tone dialog on several other timings + +## 1.1.1 +* Fix parsing of legacy Emoji Recent-List 😵 + +## 1.1.0 +* New feature: EmojiPickerUtils provide access to recent emojis, search emoji and adding emoji to recently-used list +* New feature: Skin-Tone Support +* New feature: Emoji-List Versioning (force update users cached emoji's if necessary between versions) +* Add Support for MacOS platform 🖥 + +## 1.0.8 + +* Fix to avoid unnecessary rebuilds +* Re-add Activities Category + +## 1.0.7 + +* Align center NoRecent-Text +* Enable Hot Reload for config changes +* Add hint to example code how to fix emoji size issue for iOS +* Add attribute tabIndicatorAnimDuration to config to control tab indicator animation duration +* Fix issue with iOS hover effect +* Format & Cleanup + +## 1.0.6 + +* Fix appearance of emoji when device display size is not default 👀 +* Fix issue with GridView padding at the top when no AppBar exist in Scaffold + +## 1.0.5 + +* Fix appearance of emoji when device font size is not default 🖥 +* Add Backspace-Button & OnBackspacePressed-Callback for easier deletion of added Emoji's + +## 1.0.4 + +* Make Emoji class accessible 🙌 + +## 1.0.3 + +* Organize imports + +## 1.0.2 + +* Bug fix + +## 1.0.1 + +* Update Readme 📚 + +## 1.0.0 + +* Inital release of this package 🎉 diff --git a/packages/emoji_picker_flutter/LICENSE b/packages/emoji_picker_flutter/LICENSE new file mode 100644 index 00000000..b7f3dfdf --- /dev/null +++ b/packages/emoji_picker_flutter/LICENSE @@ -0,0 +1,25 @@ +BSD 2-Clause License + +Copyright (c) 2021, Stefan Humm +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/packages/emoji_picker_flutter/README.md b/packages/emoji_picker_flutter/README.md new file mode 100644 index 00000000..d65752bc --- /dev/null +++ b/packages/emoji_picker_flutter/README.md @@ -0,0 +1,146 @@ + + +# emoji_picker_flutter + +Yet another Emoji Picker for Flutter 🤩 + + > **Note:** This package is based on [emoji_picker](https://pub.dev/packages/emoji_picker) which has been deprecated and not maintained anymore. Therefore I decided to create a modernized version of it and fixing existing issues. + + + +## Key features +- Lightweight Package +- Faster Loading +- Null-safety +- Completely customizable +- Material Design and Cupertino mode +- Emojis that cannot be displayed are filtered out (Android Only) +- Optional recently used emoji tab +- Skin Tone Support + +## Getting Started + +```dart +EmojiPicker( + onEmojiSelected: (category, emoji) { + // Do something when emoji is tapped + }, + onBackspacePressed: () { + // Backspace-Button tapped logic + // Remove this line to also remove the button in the UI + }, + config: Config( + columns: 7, + emojiSizeMax: 32 * (Platform.isIOS ? 1.30 : 1.0), // Issue: https://github.com/flutter/flutter/issues/28894 + verticalSpacing: 0, + horizontalSpacing: 0, + gridPadding: EdgeInsets.zero, + initCategory: Category.RECENT, + bgColor: Color(0xFFF2F2F2), + indicatorColor: Colors.blue, + iconColor: Colors.grey, + iconColorSelected: Colors.blue, + progressIndicatorColor: Colors.blue, + backspaceColor: Colors.blue, + skinToneDialogBgColor: Colors.white, + skinToneIndicatorColor: Colors.grey, + enableSkinTones: true, + showRecentsTab: true, + recentsLimit: 28, + noRecents: const Text( + 'No Recents', + style: TextStyle(fontSize: 20, color: Colors.black26), + textAlign: TextAlign.center, + ), + tabIndicatorAnimDuration: kTabScrollDuration, + categoryIcons: const CategoryIcons(), + buttonMode: ButtonMode.MATERIAL, + ), +) +``` +See the [demo](https://github.com/Fintasys/emoji_picker_flutter/blob/master/example/lib/main.dart) for more detailed sample project. + +## Config + +| property | description | default | +| --------------- | ------------------------------------------------------------------ |------------| +| columns | Number of emojis per row |7 | +| emojiSizeMax | Width and height the emoji will be maximal displayed |32.0 | +| verticalSpacing | Vertical spacing between emojis | 0 | +| horizontalSpacing | Horizontal spacing between emojis | 0 | +| gridPadding | The padding of GridView | EdgeInsets.zero | +| initCategory | The initial Category that will be selected |Category.RECENT | +| bgColor | The background color of the Widget |Color(0xFFF2F2F2) | +| indicatorColor | The color of the category indicator | Colors.blue | +| iconColor | The color of the category icons | Colors.grey | +| iconColorSelected | The color of the category icon when selected | Colors.blue | +| progressIndicatorColor | The color of the loading indicator during initialization | Colors.blue | +| backspaceColor | The color of the backspace icon button | Colors.blue | +| skinToneDialogBgColor | The background color of the skin tone dialog | Colors.white | +| skinToneIndicatorColor | Color of the small triangle next to multiple skin tone emoji | Colors.grey | +| enableSkinTones | Enable feature to select a skin tone of certain emoji's | true | +| showRecentsTab | Show extra tab with recently used emoji | true | +| recentsLimit | Limit of recently used emoji that will be saved | 28 | +| replaceEmojiOnLimitExceed | Replace latest emoji on recents list on limit exceed | false +| noRecents | A widget (usually [Text]) to be displayed if no recent emojis to display | Text('No Recents', style: TextStyle(fontSize: 20, color: Colors.black26), textAlign: TextAlign.center) | +| tabIndicatorAnimDuration | Duration of tab indicator to animate to next category | Duration(milliseconds: 300) | +| categoryIcons | Determines the icon to display for each Category. You can change icons by setting them in the constructor. | CategoryIcons() | +| buttonMode | Choose between Material and Cupertino button style | ButtonMode.MATERIAL | + +## Backspace-Button +You can add an Backspace-Button to the end category list by adding the callback method `onBackspacePressed: () { }` to the EmojiPicker-Widget. This will make it easier for your user to remove an added Emoji without showing the keyboard. Check out the example for more details about usage. + + + +## Custom view +The appearance is completely customizable by setting `customWidget` property. If properties in Config are not enough you can inherit from `EmojiPickerBuilder` (recommended but not necessary) to make further adjustments. +```dart +class CustomView extends EmojiPickerBuilder { + CustomView(Config config, EmojiViewState state) : super(config, state); + + @override + _CustomViewState createState() => _CustomViewState(); +} + +class _CustomViewState extends State { + @override + Widget build(BuildContext context) { + // TODO: implement build + // Access widget.config and widget.state + return Container(); + } +} + +EmojiPicker( + onEmojiSelected: (category, emoji) { /* ...*/ }, + config: Config( /* ...*/ ), + customWidget: (config, state) => CustomView(config, state), +) +``` + +## Extended usage with EmojiPickerUtils + +```dart +// Get recently used emoji +final recentEmojis = await EmojiPickerUtils().getRecentEmojis(); + +// Search for related emoticons based on keywords +final filterEmojiEntities = await EmojiPickerUtils().searchEmoji("face"); + +// Add an emoji to recently used list or increase its counter +final newRecentEmojis = await EmojiPickerUtils().addEmojiToRecentlyUsed(key: key, emoji: emoji); +// Important: Needs same key instance of type GlobalKey here and for the EmojiPicker-Widget in order to work properly +``` + +## Feel free to contribute to this package!! 🙇‍♂️ +Always happy if anyone wants to help to improve this package ! + +## If you need any features +Please open an issue so that we can discuss your feature request 🙏 +___ +
Made with 💙 in Tokyo
diff --git a/packages/emoji_picker_flutter/analysis_options.yaml b/packages/emoji_picker_flutter/analysis_options.yaml new file mode 100644 index 00000000..03941406 --- /dev/null +++ b/packages/emoji_picker_flutter/analysis_options.yaml @@ -0,0 +1,81 @@ +analyzer: + strong-mode: + implicit-casts: false + implicit-dynamic: true + errors: + close_sinks: ignore + +linter: + rules: + - public_member_api_docs + - annotate_overrides + - avoid_empty_else + - avoid_function_literals_in_foreach_calls + - avoid_init_to_null + - avoid_null_checks_in_equality_operators + - avoid_relative_lib_imports + - avoid_renaming_method_parameters + - avoid_return_types_on_setters + - avoid_returning_null + - avoid_types_as_parameter_names + - avoid_unused_constructor_parameters + - await_only_futures + - camel_case_types + - cancel_subscriptions + - cascade_invocations + # - comment_references + # - constant_identifier_names + - control_flow_in_finally + - directives_ordering + - empty_catches + - empty_constructor_bodies + - empty_statements + - hash_and_equals + - implementation_imports + - invariant_booleans + - iterable_contains_unrelated_type + - library_names + - library_prefixes + - list_remove_unrelated_type + - lines_longer_than_80_chars + - no_adjacent_strings_in_list + - no_duplicate_case_values + - non_constant_identifier_names + - null_closures + - omit_local_variable_types + - only_throw_errors + - overridden_fields + - package_api_docs + - package_names + - package_prefixed_library_names + - prefer_adjacent_string_concatenation + - prefer_collection_literals + - prefer_conditional_assignment + - prefer_const_constructors + - prefer_contains + - prefer_equal_for_default_values + - prefer_final_fields + - prefer_initializing_formals + - prefer_interpolation_to_compose_strings + - prefer_is_empty + - prefer_is_not_empty + - prefer_single_quotes + - prefer_typing_uninitialized_variables + - recursive_getters + - slash_for_doc_comments + - sort_constructors_first + - test_types_in_equals + - throw_in_finally + - type_init_formals + # - unawaited_futures + - unnecessary_brace_in_string_interps + - unnecessary_const + - unnecessary_getters_setters + - unnecessary_lambdas + - unnecessary_new + - unnecessary_null_aware_assignments + - unnecessary_statements + - unnecessary_this + - unrelated_type_equality_checks + - use_rethrow_when_possible + - valid_regexps \ No newline at end of file diff --git a/packages/emoji_picker_flutter/android/.gitignore b/packages/emoji_picker_flutter/android/.gitignore new file mode 100644 index 00000000..26659750 --- /dev/null +++ b/packages/emoji_picker_flutter/android/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures \ No newline at end of file diff --git a/packages/emoji_picker_flutter/android/build.gradle b/packages/emoji_picker_flutter/android/build.gradle new file mode 100644 index 00000000..0c0a76db --- /dev/null +++ b/packages/emoji_picker_flutter/android/build.gradle @@ -0,0 +1,40 @@ +group 'com.fintasys.emoji_picker_flutter' +version '1.0-SNAPSHOT' + +buildscript { + ext.kotlin_version = '1.6.21' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +rootProject.allprojects { + repositories { + google() + jcenter() + } +} + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 31 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + defaultConfig { + minSdkVersion 16 + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/packages/emoji_picker_flutter/android/gradle.properties b/packages/emoji_picker_flutter/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/packages/emoji_picker_flutter/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/packages/emoji_picker_flutter/android/gradle/wrapper/gradle-wrapper.properties b/packages/emoji_picker_flutter/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..aa991fce --- /dev/null +++ b/packages/emoji_picker_flutter/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/packages/emoji_picker_flutter/android/settings.gradle b/packages/emoji_picker_flutter/android/settings.gradle new file mode 100644 index 00000000..d170140d --- /dev/null +++ b/packages/emoji_picker_flutter/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'emoji_picker_flutter' diff --git a/packages/emoji_picker_flutter/android/src/main/AndroidManifest.xml b/packages/emoji_picker_flutter/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..d6ee6c92 --- /dev/null +++ b/packages/emoji_picker_flutter/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/packages/emoji_picker_flutter/android/src/main/kotlin/com/fintasys/emoji_picker_flutter/EmojiPickerFlutterPlugin.kt b/packages/emoji_picker_flutter/android/src/main/kotlin/com/fintasys/emoji_picker_flutter/EmojiPickerFlutterPlugin.kt new file mode 100644 index 00000000..3aec9320 --- /dev/null +++ b/packages/emoji_picker_flutter/android/src/main/kotlin/com/fintasys/emoji_picker_flutter/EmojiPickerFlutterPlugin.kt @@ -0,0 +1,49 @@ +package com.fintasys.emoji_picker_flutter + +import android.graphics.Paint +import androidx.annotation.NonNull +import androidx.core.graphics.PaintCompat +import io.flutter.embedding.engine.plugins.FlutterPlugin +import io.flutter.plugin.common.MethodCall +import io.flutter.plugin.common.MethodChannel +import io.flutter.plugin.common.MethodChannel.MethodCallHandler +import io.flutter.plugin.common.MethodChannel.Result + +/** EmojiPickerFlutterPlugin */ +class EmojiPickerFlutterPlugin: FlutterPlugin, MethodCallHandler { + /// The MethodChannel that will the communication between Flutter and native Android + /// + /// This local reference serves to register the plugin with the Flutter Engine and unregister it + /// when the Flutter Engine is detached from the Activity + private lateinit var channel : MethodChannel + + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + channel = MethodChannel(flutterPluginBinding.binaryMessenger, "emoji_picker_flutter") + channel.setMethodCallHandler(this) + } + + override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) { + val delimiter = "|" + when (call.method) { + "checkAvailability" -> { + val paint = Paint() + val keys: List = call.argument("emojiKeys").toString().split(delimiter) + val entries: List = call.argument("emojiEntries").toString().split(delimiter) + val supportedList = mutableListOf() + for (i in keys.indices) { + if (PaintCompat.hasGlyph(paint, entries[i])) { + supportedList.add(keys[i]) + } + } + result.success(supportedList.joinToString(separator = delimiter)) + } + else -> { + result.notImplemented() + } + } + } + + override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { + channel.setMethodCallHandler(null) + } +} diff --git a/packages/emoji_picker_flutter/example/.gitignore b/packages/emoji_picker_flutter/example/.gitignore new file mode 100644 index 00000000..f6fae04c --- /dev/null +++ b/packages/emoji_picker_flutter/example/.gitignore @@ -0,0 +1,71 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# Visual Studio Code related +.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.packages +.pub-cache/ +.pub/ +/build/ +.flutter-plugins-dependencies + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages \ No newline at end of file diff --git a/packages/emoji_picker_flutter/example/README.md b/packages/emoji_picker_flutter/example/README.md new file mode 100644 index 00000000..14e91cd1 --- /dev/null +++ b/packages/emoji_picker_flutter/example/README.md @@ -0,0 +1,16 @@ +# emoji_picker_flutter_example + +Demonstrates how to use the emoji_picker_flutter plugin. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/packages/emoji_picker_flutter/example/android/.gitignore b/packages/emoji_picker_flutter/example/android/.gitignore new file mode 100644 index 00000000..0a741cb4 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/.gitignore @@ -0,0 +1,11 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties diff --git a/packages/emoji_picker_flutter/example/android/app/build.gradle b/packages/emoji_picker_flutter/example/android/app/build.gradle new file mode 100644 index 00000000..4516f211 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/build.gradle @@ -0,0 +1,59 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 31 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.fintasys.emoji_picker_flutter_example" + minSdkVersion 16 + targetSdkVersion 31 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/packages/emoji_picker_flutter/example/android/app/src/debug/AndroidManifest.xml b/packages/emoji_picker_flutter/example/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..1ebfc0f9 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/AndroidManifest.xml b/packages/emoji_picker_flutter/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..10011031 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/kotlin/com/fintasys/emoji_picker_flutter_example/MainActivity.kt b/packages/emoji_picker_flutter/example/android/app/src/main/kotlin/com/fintasys/emoji_picker_flutter_example/MainActivity.kt new file mode 100644 index 00000000..5f4f719a --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/src/main/kotlin/com/fintasys/emoji_picker_flutter_example/MainActivity.kt @@ -0,0 +1,6 @@ +package com.fintasys.emoji_picker_flutter_example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml b/packages/emoji_picker_flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 00000000..f74085f3 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/res/drawable/launch_background.xml b/packages/emoji_picker_flutter/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/emoji_picker_flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/res/values-night/styles.xml b/packages/emoji_picker_flutter/example/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 00000000..449a9f93 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/emoji_picker_flutter/example/android/app/src/main/res/values/styles.xml b/packages/emoji_picker_flutter/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..d74aa35c --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/emoji_picker_flutter/example/android/app/src/profile/AndroidManifest.xml b/packages/emoji_picker_flutter/example/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..1ebfc0f9 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/packages/emoji_picker_flutter/example/android/build.gradle b/packages/emoji_picker_flutter/example/android/build.gradle new file mode 100644 index 00000000..ece9bee3 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.21' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/packages/emoji_picker_flutter/example/android/gradle.properties b/packages/emoji_picker_flutter/example/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/packages/emoji_picker_flutter/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/emoji_picker_flutter/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..aa991fce --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/packages/emoji_picker_flutter/example/android/settings.gradle b/packages/emoji_picker_flutter/example/android/settings.gradle new file mode 100644 index 00000000..44e62bcf --- /dev/null +++ b/packages/emoji_picker_flutter/example/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/packages/emoji_picker_flutter/example/ios/.gitignore b/packages/emoji_picker_flutter/example/ios/.gitignore new file mode 100644 index 00000000..e96ef602 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/.gitignore @@ -0,0 +1,32 @@ +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/packages/emoji_picker_flutter/example/ios/Flutter/AppFrameworkInfo.plist b/packages/emoji_picker_flutter/example/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..8d4492f9 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 9.0 + + diff --git a/packages/emoji_picker_flutter/example/ios/Flutter/Debug.xcconfig b/packages/emoji_picker_flutter/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..ec97fc6f --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/emoji_picker_flutter/example/ios/Flutter/Release.xcconfig b/packages/emoji_picker_flutter/example/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..c4855bfe --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.pbxproj b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..502353c4 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,539 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 864107BC5B822FED8F6BECD5 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6ED4C714FCA3FB86304CEE58 /* Pods_Runner.framework */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 2BB0C53D30637C19B71D5B2B /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 6C155E522E32B35D498D15DF /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 6ED4C714FCA3FB86304CEE58 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + EFB44CEAC1E45F153E85F34A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 864107BC5B822FED8F6BECD5 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 241DFF2D29B139918EC6E784 /* Pods */ = { + isa = PBXGroup; + children = ( + 6C155E522E32B35D498D15DF /* Pods-Runner.debug.xcconfig */, + 2BB0C53D30637C19B71D5B2B /* Pods-Runner.release.xcconfig */, + EFB44CEAC1E45F153E85F34A /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 241DFF2D29B139918EC6E784 /* Pods */, + B85C63E402602543B0A07C32 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + B85C63E402602543B0A07C32 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6ED4C714FCA3FB86304CEE58 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + E7AF84D8D7FF0A34F6B2341F /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + EC27DC0590397F5AC365177D /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + E7AF84D8D7FF0A34F6B2341F /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + EC27DC0590397F5AC365177D /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.fintasys.emojiPickerFlutterExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.fintasys.emojiPickerFlutterExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.fintasys.emojiPickerFlutterExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..3db53b6e --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner/AppDelegate.swift b/packages/emoji_picker_flutter/example/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/emoji_picker_flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Base.lproj/Main.storyboard b/packages/emoji_picker_flutter/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Info.plist b/packages/emoji_picker_flutter/example/ios/Runner/Info.plist new file mode 100644 index 00000000..21dbb813 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + emoji_picker_flutter_example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + + diff --git a/packages/emoji_picker_flutter/example/ios/Runner/Runner-Bridging-Header.h b/packages/emoji_picker_flutter/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/packages/emoji_picker_flutter/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/packages/emoji_picker_flutter/example/lib/main.dart b/packages/emoji_picker_flutter/example/lib/main.dart new file mode 100644 index 00000000..890e4d37 --- /dev/null +++ b/packages/emoji_picker_flutter/example/lib/main.dart @@ -0,0 +1,143 @@ +import 'dart:io'; + +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:flutter/material.dart'; + +void main() { + runApp(MyApp()); +} + +/// Example for EmojiPickerFlutter +class MyApp extends StatefulWidget { + @override + _MyAppState createState() => _MyAppState(); +} + +class _MyAppState extends State { + final TextEditingController _controller = TextEditingController(); + bool emojiShowing = false; + + _onEmojiSelected(Emoji emoji) { + _controller + ..text += emoji.emoji + ..selection = TextSelection.fromPosition( + TextPosition(offset: _controller.text.length)); + } + + _onBackspacePressed() { + _controller + ..text = _controller.text.characters.skipLast(1).toString() + ..selection = TextSelection.fromPosition( + TextPosition(offset: _controller.text.length)); + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + title: const Text('Emoji Picker Example App'), + ), + body: Column( + children: [ + Expanded(child: Container()), + Container( + height: 66.0, + color: Colors.blue, + child: Row( + children: [ + Material( + color: Colors.transparent, + child: IconButton( + onPressed: () { + setState(() { + emojiShowing = !emojiShowing; + }); + }, + icon: const Icon( + Icons.emoji_emotions, + color: Colors.white, + ), + ), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: TextFormField( + controller: _controller, + style: const TextStyle( + fontSize: 20.0, color: Colors.black87), + decoration: InputDecoration( + hintText: 'Type a message', + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.only( + left: 16.0, + bottom: 8.0, + top: 8.0, + right: 16.0), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(50.0), + ), + )), + ), + ), + Material( + color: Colors.transparent, + child: IconButton( + onPressed: () { + // send message + }, + icon: const Icon( + Icons.send, + color: Colors.white, + )), + ) + ], + )), + Offstage( + offstage: !emojiShowing, + child: SizedBox( + height: 250, + child: EmojiPicker( + onEmojiSelected: (Category category, Emoji emoji) { + _onEmojiSelected(emoji); + }, + onBackspacePressed: _onBackspacePressed, + config: Config( + columns: 7, + // Issue: https://github.com/flutter/flutter/issues/28894 + emojiSizeMax: 32 * (Platform.isIOS ? 1.30 : 1.0), + verticalSpacing: 0, + horizontalSpacing: 0, + gridPadding: EdgeInsets.zero, + initCategory: Category.RECENT, + bgColor: const Color(0xFFF2F2F2), + indicatorColor: Colors.blue, + iconColor: Colors.grey, + iconColorSelected: Colors.blue, + progressIndicatorColor: Colors.blue, + backspaceColor: Colors.blue, + skinToneDialogBgColor: Colors.white, + skinToneIndicatorColor: Colors.grey, + enableSkinTones: true, + showRecentsTab: true, + recentsLimit: 28, + replaceEmojiOnLimitExceed: false, + noRecents: const Text( + 'No Recents', + style: TextStyle(fontSize: 20, color: Colors.black26), + textAlign: TextAlign.center, + ), + tabIndicatorAnimDuration: kTabScrollDuration, + categoryIcons: const CategoryIcons(), + buttonMode: ButtonMode.MATERIAL)), + ), + ), + ], + ), + ), + ); + } +} diff --git a/packages/emoji_picker_flutter/example/macos/.gitignore b/packages/emoji_picker_flutter/example/macos/.gitignore new file mode 100644 index 00000000..d2fd3772 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/.gitignore @@ -0,0 +1,6 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/xcuserdata/ diff --git a/packages/emoji_picker_flutter/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/emoji_picker_flutter/example/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 00000000..4b81f9b2 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/packages/emoji_picker_flutter/example/macos/Flutter/Flutter-Release.xcconfig b/packages/emoji_picker_flutter/example/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 00000000..5caa9d15 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/project.pbxproj b/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..fb2338a4 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,632 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 0E0498948702EF9EB4B250E8 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 957CA104F61BB50B33FED6CB /* Pods_Runner.framework */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1D675DFF141B849B7B2A6419 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 74CAA3218A1A4F48DE277AD7 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 957CA104F61BB50B33FED6CB /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + BB84AEB1A79F0B7C6247A451 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E0498948702EF9EB4B250E8 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + 7D78366ECA4F0ADD0717FA67 /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* example.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + 7D78366ECA4F0ADD0717FA67 /* Pods */ = { + isa = PBXGroup; + children = ( + BB84AEB1A79F0B7C6247A451 /* Pods-Runner.debug.xcconfig */, + 1D675DFF141B849B7B2A6419 /* Pods-Runner.release.xcconfig */, + 74CAA3218A1A4F48DE277AD7 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 957CA104F61BB50B33FED6CB /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + BAD3A89A1466A3AAE07E1729 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + 00D0E436DF9A5A5318A27FF2 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00D0E436DF9A5A5318A27FF2 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; + BAD3A89A1466A3AAE07E1729 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..ae8ff59d --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/emoji_picker_flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/emoji_picker_flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/emoji_picker_flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/emoji_picker_flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/emoji_picker_flutter/example/macos/Runner/AppDelegate.swift b/packages/emoji_picker_flutter/example/macos/Runner/AppDelegate.swift new file mode 100644 index 00000000..d53ef643 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..a2ec33f1 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..3c4935a7ca84f0976aca34b7f2895d65fb94d1ea GIT binary patch literal 46993 zcmZ5|3p`X?`~OCwR3s6~xD(})N~M}fiXn6%NvKp3QYhuNN0*apqmfHdR7#ShNQ99j zQi+P9nwlXbmnktZ_WnO>bl&&<{m*;O=RK!cd#$zCdM@AR`#jH%+2~+BeX7b-48x|= zZLBt9*d+MZNtpCx_&asa{+CselLUV<<&ceQ5QfRjLjQDSL-t4eq}5znmIXDtfA|D+VRV$*2jxU)JopC)!37FtD<6L^&{ia zgVf1p(e;c3|HY;%uD5<-oSFkC2JRh- z&2RTL)HBG`)j5di8ys|$z_9LSm^22*uH-%MmUJs|nHKLHxy4xTmG+)JoA`BN7#6IN zK-ylvs+~KN#4NWaH~o5Wuwd@W?H@diExdcTl0!JJq9ZOA24b|-TkkeG=Q(pJw7O;i z`@q+n|@eeW7@ z&*NP+)wOyu^5oNJ=yi4~s_+N)#M|@8nfw=2#^BpML$~dJ6yu}2JNuq!)!;Uwxic(z zM@Wa-v|U{v|GX4;P+s#=_1PD7h<%8ey$kxVsS1xt&%8M}eOF98&Rx7W<)gY(fCdmo{y*FPC{My!t`i=PS1cdV7DD=3S1J?b2<5BevW7!rWJ%6Q?D9UljULd*7SxX05PP^5AklWu^y` z-m9&Oq-XNSRjd|)hZ44DK?3>G%kFHSJ8|ZXbAcRb`gH~jk}Iwkl$@lqg!vu)ihSl= zjhBh%%Hq|`Vm>T7+SYyf4bI-MgiBq4mZlZmsKv+S>p$uAOoNxPT)R6owU%t*#aV}B z5@)X8nhtaBhH=={w;Du=-S*xvcPz26EI!gt{(hf;TllHrvku`^8wMj7-9=By>n{b= zHzQ?Wn|y=;)XM#St@o%#8idxfc`!oVz@Lv_=y(t-kUC`W)c0H2TX}Lop4121;RHE(PPHKfe_e_@DoHiPbVP%JzNudGc$|EnIv`qww1F5HwF#@l(=V zyM!JQO>Rt_PTRF1hI|u^2Uo#w*rdF*LXJky0?|fhl4-M%zN_2RP#HFhSATE3&{sos zIE_?MdIn!sUH*vjs(teJ$7^7#|M_7m`T>r>qHw>TQh?yhhc8=TJk2B;KNXw3HhnQs za(Uaz2VwP;82rTy(T3FJNKA86Y7;L(K=~BW_Q=jjRh=-k_=wh-$`nY+#au+v^C4VV z)U?X(v-_#i=3bAylP1S*pM_y*DB z2fR!imng6Dk$>dl*K@AIj<~zw_f$T!-xLO8r{OkE(l?W#W<={460Y02*K#)O4xp?W zAN+isO}!*|mN7B#jUt&!KNyFOpUxv&ybM>jmkfn8z^llBslztv!!`TBEPwu;#eR3d z@_VDa)|ByvXx1V=^Up4{;M8ji3FC7gm(C7Ty-#1gs+U<{Ouc(iV67{< zam#KwvR&s=k4W<13`}DxzJ9{TUa97N-cgWkCDc+C339)EEnC@^HQK6OvKDSCvNz(S zOFAF_6omgG!+zaPC8fBO3kH8YVBx9_AoM?->pv~@$saf(Myo|e@onD`a=;kO*Utem ze=eUH&;JB2I4}?Pm@=VnE+yb$PD~sA5+)|iH3bi|s?ExIePeoAMd(Z4Z%$mCu{t;B9(sgdG~Q}0ShAwe!l8nw0tJn zJ+m?ogrgty$3=T&6+JJa!1oS3AtQQ1gJ z3gR1<=hXU>{SB-zq!okl4c+V9N;vo4{fyGeqtgBIt%TPC1P&k!pR-GZ7O8b}9=%>3 zQrV%FQdB+CcCRKK)0}v>U25rbQk(1^9Ax|WcAo5?L(H&H@%zAoT2RH$iN6boyXpsYqME}WJZI6T%OMlkWXK>R`^7AHG&31 z&MIU}igQ7$;)7AEm#dXA+!I&6ymb7n6D;F7c$tO3Ql(`ht z1sFrzIk_q5#=!#D(e~#SdWz5K;tPF*R883Yu>*@jTeOGUjQekw zM+7HlfP{y8p}jA9bLfyKC_Ti8k#;AVp@RML^9MQp-E+Ns-Y zKA!aAZV-sfm<23fy#@TZZlQVQxH%R7rD}00LxHPUF!Yg3%OX ziDe4m<4fp{7ivBS?*AlJz$~vw5m)Ei8`|+~xOSqJ$waA0+Yys$z$9iN9TIXu8 zaYacjd09uRAsU|)g|03w`F|b1Xg#K~*Mp2X^K^)r3P^juoc}-me&YhkW3#G|H<~jK zoKD?lE@jOw7>4cpKkh!8qU!bF(i~Oa8a!EGy-j46eZYbKUvF=^^nq`EtWFK}gwrsB zeu<6~?mk+;+$whP)8ud8vjqh+NofU+Nu`~|pb&CN1y_idxxf6cGbT=fBZR_hl&G)GgnW$*oDrN-zz;cKs18n+dAn95w z)Y>l6!5eYpebJGw7it~Q5m}8$7@%p&KS=VtydFj4HPJ{xqUVS_Ih}c(^4nUdwG|0% zw8Fnm{IT`8MqoL(1BNtu_#7alS@3WSUUOFT@U*`V!zrPIeCbbO=pE%|g92$EU|lw; z^;^AqMVWVf-R5^OI79TzIyYf}HX%0Y)=aYH;EKo}?=R~ZM&s&F;W>u%hFUfNafb;- z8OkmkK3k||J#3`xdLuMJAhj9oPI?Cjt}cDN7hw26n7irWS0hsy`fs&Y?Y&(QF*Nu! z!p`NggHXaBU6$P42LkqnKsPG@363DHYGXg{!|z6VMAQt??>FK1B4x4{j;iY8A+7o% z*!0qt&w+w#Ob@pQp;q)u0;v^9FlY=AK>2!qku)!%TO<^lNBr!6R8X)iXgXi^1p`T8 z6sU@Y_Fsp6E89E1*jz~Tm2kF=mjYz_q99r^v0h-l7SP6azzL%woM6!7>IFWyizrNwAqoia3nN0q343q zFztMPh0)?ugQg5Izbk{5$EGcMzt*|=S8ZFK%O&^YV@V;ZRL>f!iG?s5z{(*Xq20c^ z(hkk~PljBo%U`$q>mz!ir7chKlE-oHA2&0i@hn4O5scsI&nIWsM>sYg;Ph5IO~VpT z%c-3_{^N>4kECzk?2~Z@V|jWio&a&no;boiNxqXOpS;ph)gEDFJ6E=zPJ$>y5w`U0 z;h9_6ncIEY?#j1+IDUuixRg&(hw+QSSEmFi%_$ua$^K%(*jUynGU@FlvsyThxqMRw z7_ALpqTj~jOSu2_(@wc_Z?>X&(5jezB6w-@0X_34f&cZ=cA-t%#}>L7Q3QRx1$qyh zG>NF=Ts>)wA)fZIlk-kz%Xa;)SE(PLu(oEC8>9GUBgd$(^_(G6Y((Hi{fsV; zt*!IBWx_$5D4D&ezICAdtEU!WS3`YmC_?+o&1RDSfTbuOx<*v`G<2SP;5Q4TqFV&q zJL=90Lcm^TL7a9xck}XPMRnQ`l0%w-fi@bRI&c*VDj!W4nj=qaQd$2U?^9RTT{*qS_)Q9OL>s}2P3&da^Pf(*?> z#&2bt;Q7N2`P{{KH@>)Tf5&za?crRmQ%8xZi<9f=EV3={K zwMet=oA0-@`8F;u`8j-!8G~0TiH5yKemY+HU@Zw3``1nT>D ziK465-m?Nm^~@G@RW2xH&*C#PrvCWU)#M4jQ`I*>_^BZB_c!z5Wn9W&eCBE(oc1pw zmMr)iu74Xl5>pf&D7Ml>%uhpFGJGyj6Mx=t#`}Mt3tDZQDn~K`gp0d)P>>4{FGiP$sPK*ExVs!1)aGgAX z6eA;-9@@Muti3xYv$8U{?*NxlHxs?)(6%!Iw&&l79K86h+Z8;)m9+(zzX?cS zH*~)yk)X^H1?AfL!xctY-8T0G0Vh~kcP=8%Wg*zZxm*;eb)TEh&lGuNkqJib_}i;l z*35qQ@}I#v;EwCGM2phE1{=^T4gT63m`;UEf5x2Get-WSWmt6%T6NJM`|tk-~4<#HHwCXuduB4+vW!BywlH8murH@|32CNxx7} zAoF?Gu02vpSl|q1IFO0tNEvKwyH5V^3ZtEO(su1sIYOr{t@Tr-Ot@&N*enq;Je38} zOY+C1bZ?P~1=Qb%oStI-HcO#|WHrpgIDR0GY|t)QhhTg*pMA|%C~>;R4t_~H1J3!i zyvQeDi&|930wZlA$`Wa9)m(cB!lPKD>+Ag$5v-}9%87`|7mxoNbq7r^U!%%ctxiNS zM6pV6?m~jCQEKtF3vLnpag``|bx+eJ8h=(8b;R+8rzueQvXgFhAW*9y$!DgSJgJj% zWIm~}9(R6LdlXEg{Y3g_i7dP^98=-3qa z$*j&xC_$5btF!80{D&2*mp(`rNLAM$JhkB@3al3s=1k^Ud6HHontlcZw&y?`uPT#a za8$RD%e8!ph8Ow7kqI@_vd7lgRhkMvpzp@4XJ`9dA@+Xk1wYf`0Dk!hIrBxhnRR(_ z%jd(~x^oqA>r>`~!TEyhSyrwNA(i}={W+feUD^8XtX^7^Z#c7att{ot#q6B;;t~oq zct7WAa?UK0rj0yhRuY$7RPVoO29JV$o1Z|sJzG5<%;7pCu%L-deUon-X_wAtzY@_d z6S}&5xXBtsf8TZ13chR&vOMYs0F1?SJcvPn>SFe#+P3r=6=VIqcCU7<6-vxR*BZUm zO^DkE{(r8!e56)2U;+8jH4tuD2c(ptk0R{@wWK?%Wz?fJckr9vpIU27^UN*Q$}VyHWx)reWgmEls}t+2#Zm z_I5?+htcQl)}OTqF<`wht89>W*2f6e)-ewk^XU5!sW2A2VtaI=lggR&I z;Rw{xd)WMqw`VUPbhrx!!1Eg_*O0Si6t@ny)~X^Gu8wZZDockr)5)6tm+<=z+rYu? zCof+;!nq6r9MAfh zp4|^2w^-3vFK~{JFX|F5BIWecBJkkEuE%iP8AZ z^&e|C+VEH&i(4Y|oWPCa#C3T$129o5xaJa=y8f(!k&q+x=M|rq{?Zw_n?1X-bt&bP zD{*>Io`F4(i+5eE2oEo6iF}jNAZ52VN&Cp>LD{MyB=mCeiwP+v#gRvr%W)}?JBTMY z_hc2r8*SksC%(pp$KGmWSa|fx;r^9c;~Q(Jqw1%;$#azZf}#Fca9NZOh{*YxV9(1ivVA^2Wz>!A&Xvmm-~{y8n!^Jdl8c>`J#=2~!P{ zC1g_5Ye3={{fB`R%Q|%9<1p1;XmPo5lH5PHvX$bCIYzQhGqj7hZ?@P4M0^mkejD|H zVzARm7LRy|8`jSG^GpxRIs=aD>Y{Cb>^IwGEKCMd5LAoI;b{Q<-G}x*e>86R8dNAV z<@jb1q%@QQanW1S72kOQ$9_E#O?o}l{mHd=%Dl{WQcPio$baXZN!j{2m)TH1hfAp{ zM`EQ=4J`fMj4c&T+xKT!I0CfT^UpcgJK22vC962ulgV7FrUrII5!rx1;{@FMg(dIf zAC}stNqooiVol%%TegMuWnOkWKKA}hg6c)ssp~EnTUVUI98;a}_8UeTgT|<%G3J=n zKL;GzAhIQ_@$rDqqc1PljwpfUwiB)w!#cLAkgR_af;>}(BhnC9N zqL|q8-?jsO&Srv54TxVuJ=rfcX=C7{JNV zSmW@s0;$(#!hNuU0|YyXLs{9$_y2^fRmM&g#toh}!K8P}tlJvYyrs6yjTtHU>TB0} zNy9~t5F47ocE_+%V1(D!mKNBQc{bnrAbfPC2KO?qdnCv8DJzEBeDbW}gd!g2pyRyK`H6TVU^~K# z488@^*&{foHKthLu?AF6l-wEE&g1CTKV|hN7nP+KJnkd0sagHm&k{^SE-woW9^fYD z7y?g*jh+ELt;$OgP>Se3o#~w9qS}!%#vBvB?|I-;GM63oYrJ}HFRW6D+{54v@PN8K z2kG8`!VVc+DHl^8y#cevo4VCnTaPTzCB%*)sr&+=p{Hh#(MwaJbeuvvd!5fd67J_W za`oKxTR=mtM7P}i2qHG8=A(39l)_rHHKduDVA@^_Ueb7bq1A5#zHAi**|^H@fD`_W z#URdSG86hhQ#&S-Vf_8b`TIAmM55XhaHX7}Ci-^(ZDs*yb-WrWV&(oAQu3vMv%u$5 zc;!ADkeNBN_@47r!;%G3iFzo;?k)xTS-;1D-YeS5QXN7`p2PzGK~e6ib;8COBa5)p zfMn}dA--&A12~zr&GVk?qnBGfIEo`5yir;-Q;ZLn{Fimdrk;e!)q`sAkYh^~^>4Q@ zN5RT>s38+`V{|6@k&vZW!W0*BEqV&~34d+Ev8h)ObYL7Bd_hgbUzjdJaXP=S@Dp6X z)i013q3K4Gr5d%2YIp>218pYK!xwH;k)j?uUrT-yVKLg*L3y~=a+qd!RWGTL`z>29 z-Zb4Y{%pT%`R-iA#?T58c-i@?jf-Ckol9O>HAZPUxN%Z=<4ad9BL7n`_kH0i#E(m& zaNb039+z~ONUCLsf_a|x*&ptU?`=R*n}rm-tOdCDrS!@>>xBg)B3Sy8?x^e=U=i8< zy7H-^BPfM}$hf*d_`Qhk_V$dRYZw<)_mbC~gPPxf0$EeXhl-!(ZH3rkDnf`Nrf4$+ zh?jsRS+?Zc9Cx7Vzg?q53ffpp43po22^8i1Obih&$oBufMR;cT2bHlSZ#fDMZZr~u zXIfM5SRjBj4N1}#0Ez|lHjSPQoL&QiT4mZn=SxHJg~R`ZjP!+hJ?&~tf$N!spvKPi zfY;x~laI9X`&#i#Z}RJ`0+MO_j^3#3TQJu2r;A-maLD8xfI+2Y*iDf4LsQ$9xiu?~ z?^wHEf^qlgtjdj(u_(W5sbGx1;maVPDHvI-76u2uUywf;>()=e>0le;bO0LIvs)iy z*lJTO+7gyf^)2uS-PhS_O-+RToQmc6VT>ej^y^stNkwIxUg?E|YMAAwQ}U!dC&cXL ziXKU?zT~xbh6C};rICGbdX~;8Z%L~Jdg|`senVEJo-CiDsX47Kc`;EiXWO<9o)(`4 zGj(9@c+Me=F~y(HUehcAy!tkoM&e1y#(qqCkE(0lik_U>wg8vOhGR(=gBGFSbR`mh zn-%j3VTD4 zwA1Kqw!OSgi_v0;6?=Bk4Z{l-7Fl4`ZT535OC{73{rBwpNHMPH>((4G`sh zZhr!v{zM@4Q$5?8)Jm;v$A2v$Yp9qFG7y`9j7O-zhzC+7wr3Cb8sS$O{yOFOODdL) zV2pU{=nHne51{?^kh%a$WEro~o(rKQmM!p?#>5Pt`;!{0$2jkmVzsl|Nr^UF^IHxG z8?HmZEVMY~ec%Ow6hjfg6!9hCC4xY?V;5Ipo-myV=3TmfT^@XkKME`+=_inm4h7ki z->K~a+20?)zic^zc&7h=0)T{Aa24FU_}(O|9DMW3Bf>MW=O%~8{unFxp4}B+>>_KN zU%rKs3Va&&27&OX4-o&y2ie|sN2p-=S^V<2wa2NUQ4)?0e|hgna*1R7(#R_ys3xmG zE#(ry+q=O~&t|RX@ZMD`-)0QmE*x%SBc(Yvq60JtCQ4RL(gdA(@=}0rYo5yKz36bW zkvLOosP6I?7qH!rce(}q@cH-{oM2ThKV2RZe+{{25hkc?T>=Tky12xHr0jmfH@SZi zLHPJ@^Oo^Zo%`gZk_hrbCzS+t|=O!Bt zWi|>M8mz~sD|Z>C1ZPf_Cs&R!S5E2qK+@j*UpP>;5_|+h+y{gb=zub7#QKSUabet# zFH2H0ul;zO+uc+V=W_W@_Ig-791T7J9&=5)wrBE?JEHS_A6P~VQ)u6s1)Pu|VxP(aYJV*(e<)(42R zm3AK>dr1QLbC1RMoQ|M5k+TWBjY9q+_vY=K-tUte35m4RWl51A<4O0ptqV3)KzL7U z0gpp-I1)|zvtA8V7-e-o9H)lB_Rx6;Bu7A2yE)6)SuDqWDs}~Ojfk?DFwI% z3E1(>LbbB7I(&E@B7nlulhvY=Wa1mGXD@ijD7WF^y@L1e55h)-hzoq}eWe!fh9m3V{)x^6F8?ed1z>+4;qW6A4hYYj zZCYP=c#I8+$pAIVyiY*#%!j3ySAnH`tp|=^lh{)#JimWaP_rXK40A0WcsEUj`G1}O zG?XQ~qK4F!lqauv6-BL_Up3+-l1=kVfD;D*C)yr>o9>W=%mIyATtn_OBLK+h@p)j5jRAb;m&Ok?TZH-5Q)~#UwdYFp~rEE{judWa9E)z zE>135C-xMdHYY&AZGR)tb`K}s0CK9 z1!))p^ZaUC*e50t`sL+)@`)#kJ}?C_cCMH@k{f4wh~0`OFnGQ2nzUuuu;=r4BYRcI z){G#a6Y$S(mIc6B#YS;jFcU{0`c)Raa$nG+hV(K|2|^ZWOI566zlF0N;t~$jD<_AX zjnD?HN-G>xRmHwtL3BcJX7)Q^YGfc?cS4Nj=yYl5MB(uBD?r@VTB|mIYs=au$e)e{ zLHWd!+EN*v2*(=y%G1JzyQdY&%|?~R5NPb)`S2dw1AJW8O;L=p?yVxJs=X?U#-l1O zk6xh8yyY;OTR7aF{P=kQ>y`*EFivnw%rQioA-I67WS+~hVamG4_sI)(Jo4vHS|@F@ zqrBHbxHd_Y8+?8Gfq=Z1O^Fs5moGayCHVUHY^8)^j)Aj*RB!S2-FA?4#-`puwBW`` zJ_6OQj(FGo8DotHYRKq;;$4xDn9=4rgw}5xvxhi)?n?W5{*%4%h9Tg)zlQl&fN~Z1)gL(Dn7X!P428I zwA+U-x5!cQ57g1N=2bLqAWF z!&cbvsD)dvYoqP5vaQz%rL@kv*J>0AMzWAKn~Mxi5g2GlI7qvVZo)Z5oj=#O!M&*O z`3O3)uvrjNTeremC}nW@(m%#E-sITB>j-!yBM#(=FN`~c#@XjL3e)SjR9&%QO%tUg zzGv=SLH()`ZIt?Ayym;9VG1Muq+a+7Zo+59?SuRu_`k>@S4!yS3roMnq+SDO?`C7V#2 z8vHf4&0k;{kLT)fa==7EILSu3e|ZnxtFO;1 zGqP-;Xo(>_QKcYUhsi-X72BqH#7Zb-TsiNIF>G9xOHT3XoA*qX^10+#XCU0)UO4_%A_s_vO=uDd3_Q%D{OsvLMW9wGvuuRnF52{2vH06D~7N672!bIMt@it_D}& zwjZ7gV!RzZ86*wbEB5cnMJRbEqMM{G!K)bfJjyPH^9nGnrOI9S{~!dm4~P#&b*~)h zCMwM8mR+y5i~E5*JAopwZ>F`=ORfA&IF%O8(aS<}^H6wcY1g^=lYLPtFpyvW9F z3;FCS-TGFYPr#Y$ue>}?rTYrmWr^VbUu>!eL$cEdh1e>5_UDnZ@Mu$l*KVo_NDEu^ zBn*!qVnzYv>t|<(>nt8%CoNPhN!qGP|sANRN^#+2YSSYHa>R1mss->c0f=#g@U58@? zA4sUbrA7)&KrTddS0M6pTSRaz)wqUgsT3&8-0eG|d;ULOUztdaiD3~>!10H`rRHWY z1iNu6=UaA8LUBoaH9G*;m`Mzm6d1d+A#I8sdkl*zfvbmV0}+u` zDMv=HJJm?IOwbP;f~yn|AI_J7`~+5&bPq6Iv?ILo2kk$%vIlGsI0%nf1z9Mth8cy! zWumMn=RL1O9^~bVEFJ}QVvss?tHIwci#ldC`~&KFS~DU5K5zzneq_Q91T~%-SVU4S zJ6nVI5jeqfh~*2{AY#b(R*Ny95RQBGIp^fxDK{I9nG0uHCqc-Ib;pUUh$t0-4wX*< z=RzW~;iR3xfRnW<>5Jr5O1MP)brA3+ei@H8Hjkt7yuYIpd7c-4j%U=8vn8HD#TPJo zSe+7~Db}4U3Y^4dl1)4XuKZ67f(ZP;?TYg9te>hbAr4R_0K$oq3y5m-gb?fR$UtF9 zS~S^=aDyFSE}9W2;Okj%uoG-Um^&Qo^bB#!W?|%=6+P>``bumeA2E7ti7Aj%Fr~qm z2gbOY{WTyX$!s5_0jPGPQQ0#&zQ0Zj0=_74X8|(#FMzl`&9G_zX*j$NMf?i3M;FCU z6EUr4vnUOnZd`*)Uw#6yI!hSIXr%OF5H z5QlF8$-|yjc^Y89Qfl!Er_H$@khM6&N*VKjIZ15?&DB?);muI`r;7r0{mI03v9#31 z#4O*vNqb=1b}TjLY`&ww@u^SE{4ZiO=jOP3!|6cKUV2*@kI9Aw0ASwn-OAV~0843$1_FGl7}eF6C57dJb3grW)*jtoUd zpqXvfJSCIv4G*_@XZE?> z4Lt=jTSc*hG3`qVq!PVMR2~G-1P{%amYoIg!8Odf4~nv6wnEVrBt-R5Au=g~4=X|n zHRJGVd|$>4@y#w;g!wz>+z%x?XM^xY%iw%QoqY@`vSqg0c>n_}g^lrV))+9n$zGOP zs%d&JWT2Jjxaz`_V%XtANP$#kLLlW=OG2?!Q%#ThY#Sj}*XzMsYis2HiU2OlfeC>d z8n8j-{Npr1ri$Jv2E_QqKsbc$6vedBiugD~S`_0QjTTtX(mS}j6)6e;xdh*sp5U0aMpuN}qTP=^_Qn zh~0padPWs&aXmf6b~}{7Raglc)$~p?G89N4)&a}`izf|bA)IUmFLQ8UM$T!6siQxr z=%)pPsWYXWCNdGMS3fK6cxVuhp7>mug|>DVtxGd~O8v@NFz<+l`8^#e^KS3})bovWb^ zILp4a_9#%Y*b6m$VH8#)2NL@6a9|q!@#XOXyU-oAe)RR$Auj6?p2LEp*lD!KP{%(- z@5}`S$R)Kxf@m68b}Tr7eUTO=dh2wBjlx;PuO~gbbS2~9KK1szxbz$R|Frl8NqGn= z2RDp@$u5Obk&sxp!<;h=C=ZKPZB+jk zBxrCc_gxabNnh6Gl;RR6>Yt8c$vkv>_o@KDMFW1bM-3krWm|>RG>U`VedjCz2lAB1 zg(qb_C@Z~^cR=_BmGB@f;-Is3Z=*>wR2?r({x}qymVe?YnczkKG%k?McZ2v3OVpT* z(O$vnv}*Tle9WVK_@X@%tR^Z!3?FT_3s@jb3KBVf#)4!p~AFGgmn%1fBbZe3T53$_+UX_A!@Kz63qSLeH@8(augJDJ;RA>6rNxQYkd6t(sqK=*zv4j;O#N(%*2cdD z3FjN6`owjbF%UFbCO=haP<;Y1KozVgUy(nnnoV7{_l5OYK>DKEgy%~)Rjb0meL49X z7Fg;d!~;Wh63AcY--x{1XWn^J%DQMg*;dLKxs$;db`_0so$qO!>~yPDNd-CrdN!ea zMgHt24mD%(w>*7*z-@bNFaTJlz;N0SU4@J(zDH*@!0V00y{QfFTt>Vx7y5o2Mv9*( z1J#J27gHPEI3{!^cbKr^;T8 z{knt%bS@nrExJq1{mz2x~tc$Dm+yw=~vZD|A3q>d534za^{X9e7qF29H5yu};J)vlJkKq}< zXObu*@ioXGp!F=WVG3eUtfIA$GGgv0N?d&3C47`Zo)ms*qO}A9BAEke!nh#AfQ0d_ z&_N)E>5BsoR0rPqZb)YN}b~6Ppjyev;MMis-HkWF!az%G? z#&it84hv!%_Q>bnwch!nZKxB05M=jgiFaB^M=e-sj1xR?dPYUzZ#jua`ggyCAcWY> z-L$r#a{=;JP5X}9(ZPC&PdG~h5>_8SueX($_)Qu(;()N3*ZQH(VGnkWq^C}0r)~G3_?a10y*LsFz zokU5AKsW9DUr-ylK61shLS#4@vPcteK-Ga9xvRnPq=xSD_zC=Q_%6IuM?GpL(9aDx z|8d_;^6_D4{IQ1ndMAcFz5ZaT+Ww0wWN`xP(U#^=POs(BpKm;(H(lmYp+XCb7Kaw0 z;LT945Ev3IkhP6$lQBiMgr+vAL}{8xO&IObqJBEP4Y^x&V?iGC=1lVIbH^Z!eXxr@ zz)D7Fon`z~N|Pq>Bsue&_T9d;G+d8#@k^cq~F^I8ETsZ*cGOf*gZ4ghlAzW|aZ;WA13^B!Tlr0sWA zosgXD-%zvO-*GLU@hVV(bbQ`s@f~Ux=4}(@7O)%o5EH((gYflccBC@jbLF3IgPozv zglX2IL}kL1rtn4mu~`J(MMY83Rz6gc1}cX4RB+tZO2~;3FI# z@dU(xa5J_KvL0)oSkvwz9|!QcEA$jKR@a-4^SU3O449TrO+x$1fkBU<<=E_IHnF6> zPmZ7I2E+9A_>j6og$>Nih~b2F_^@6ef|Hm-K2(>`6ag{Vpd`g35n`yW|Jme78-cSy z2Jz7V#5=~u#0eLSh3U4uM3Smk31>xEh^-Os%&5tK6hSAX83jJi%5l!MmL4E?=FerNG#3lj^;-F1VISY!4E)__J~gY zP{o~Xo!8DW{5lsBFKL~OJiQoH>yBZ+b^};UL&UUs!Hbu7Gsf<9sLAsOPD4?-3CP{Q zIDu8jLk6(U3VQPyTP{Esf)1-trW5Mi#zfpgoc-!H>F$J#8uDRwDwOaohB(_I%SuHg zGP)11((V9rRAG>80NrW}d`=G(Kh>nzPa1M?sP;UNfGQaOMG1@_D0EMIWhIn#$u2_$ zlG-ED(PU+v<1Dd?q-O#bsA)LwrwL>q#_&75H)_X4sJK{n%SGvVsWH7@1QZqq|LM`l zDhX8m%Pe5`p1qR{^wuQ&>A+{{KWhXs<4RD< z=qU6)+btESL>kZWH8w}Q%=>NJTj=b%SKV3q%jSW>r*Qv1j$bX>}sQ%KO7Il zm?7>4%Q6Nk!2^z})Kchu%6lv-7i=rS26q7)-02q?2$yNt7Y={z<^<+wy6ja-_X6P4 zoqZ1PW#`qSqD4qH&UR57+z0-hm1lRO2-*(xN-42|%wl2i^h8I{d8lS+b=v9_>2C2> zz(-(%#s*fpe18pFi+EIHHeQvxJT*^HFj2QyP0cHJw?Kg+hC?21K&4>=jmwcu-dOqEs{%c+yaQ z2z6rB>nPdwuUR*j{BvM-)_XMd^S1U|6kOQ$rR`lHO3z~*QZ71(y(42g`csRZ1M@K7 zGeZ27hWA%v`&zQExDnc@cm9?ZO?$?0mWaO7E(Js|3_MAlXFB$^4#Zpo;x~xOEbay( zq=N;ZD9RVV7`dZNzz+p@YqH@dW*ij8g053Cbd=Mo!Ad8*L<5m1c4Kk ziuca5CyQ05z7gOMecqu!vU=y93p+$+;m=;s-(45taf_P(2%vER<8q3}actBuhfk)( zf7nccmO{8zL?N5oynmJM4T?8E))e;;+HfHZHr` zdK}~!JG}R#5Bk%M5FlTSPv}Eb9qs1r0ZH{tSk@I{KB|$|16@&`0h3m7S+)$k*3QbQ zasW2`9>hwc)dVNgx46{Io zZ}aJHHNf1?!K|P;>g7(>TefcLJk%!vM`gH8V3!b= z>YS+)1nw9U(G&;7;PV4eIl{=6DT^Vw<2Elnox;u@xF5ad*9Fo|yKgq<>*?C$jaG2j z|29>K)fI^U!v?55+kQ*d2#3}*libC4>Dl4 zIo3Jvsk?)edMnpH<|*l<*0Pf{2#KedIt>~-QiB{4+KEpSjUAYOhGDpn3H_N9$lxaP ztZwagSRY~x@81bqe^3fb;|_A7{FmMBvwHN*Xu006qKo{1i!RbN__2q!Q*A;U*g-Mz zg)-3FZ`VJdognZ~WrWW^2J$ArQAr1&jl~kWhn+osG5wAlE5W&V%GI{8iMQ!5lmV~# zeb3SKZ@?7p;?7{uviY6`Oz16t0=B70`im=`D@xJa16j2eHoCtElU*~7={YUzN41sE z#Th>DvJq-#UwEpJGKx;;wfDhShgO0cM|e!Ej){RX#~>a?)c2|7Hjhh2d=)VUVJL<^Aq|>_df4DX>b9W2$_DM zTjF#j(9?Co`yor?pK<16@{h#F&F8~1PG|qQNZPX^b!L*L&?PH#W8za0c~v6I2W($Jderl%4gufl z#s;C*7APQJP46xHqw;mUyKp3}W^hjJ-Dj>h%`^XS7WAab^C^aRu1?*vh-k2df&y9E z=0p*sn0<83UL4w30FqnZ0EvXCBIMVSY9Zf?H1%IrwQybOvn~4*NKYubcyVkBZ4F$z zkqcP*S>k6!_MiTKIdGlG+pfw>o{ni`;Z7pup#g z4tDx3Kl$)-msHd1r(YpVz7`VW=fx9{ zP}U8rJ-IP)m}~5t&0Y$~Quyjflm!-eXC?_LMGCkZtNDZf0?w<{f^zp&@U@sQxcPOZ zBbfQTFDWL_>HytC*QQG_=K7ZRbL!`q{m8IjE0cz(t`V0Ee}v!C74^!Fy~-~?@}rdn zABORRmgOLz8{r!anhFgghZc>0l7EpqWKU|tG$`VM=141@!EQ$=@Zmjc zTs`)!A&yNGY6WfKa?)h>zHn!)=Jd73@T^(m_j|Z;f?avJ{EOr~O~Q2gox6dkyY@%M zBU+#=T?P8tvGG|D5JTR}XXwjgbH(uwnW%W?9<-OQU9|6H{09v#+jmnxwaQ-V;q{v% zA8srmJX7Fn@7mr*ZQ@)haPjWVN@e3K z_`+@X$k*ocx*uF^_mTqJpwpuhBX~CSu=zPE(Sy%fYz&lzZmz3xo4~-xBBvU0Ao?;I-81*Z%8Do+*}pqg>bt^{w-`V6Sj>{Znj+ z70GS2evXinf|S#9=NNoXoS;$BTW*G0!xuTSZUY45yPE+~*&a-XC+3_YPqhd*&aQ>f z$oMUq^jjA;x#?iJKrpAqa<2<21h*_lx9a}VMib;a6c$~=PJOj6XJXJ|+rc7O7PEN5uE7!4n9nllo@BI4$VW2Nf_jqnkz%cvU4O4umV z#n6oXGWOt3tuIjmX*b!!$t~94@a@QgybLpQo3icAyU`iNbY~XNAArFAn$nFJ()d-U zFaO#nxxVF-%J{UB**uRo0*+?S>=^il)1m7v-u`PDy*ln%|3E-{3U~R=QcE&zhiG_c zDnGMgf1}3h1gWz8IV0Oc7FmEt>6W?Eva;J`(!;IIny}PvD?vztz`F6su_tUO`M%K5 z%C#=nXbX})#uE!zcq2mB;hPUVU1!`9^2K303XfOIVS{mlnMqJyt}FV=$&fgoquO+N zU6!gWoL%3N1kyrhd^3!u>?l6|cIl*t4$Z$=ihyzD7FFY~U~{RaZmfyO4+$kC7+m zo+-*f-VwpUjTi_Idyl~efx)!$GpE!h+in4G1WQkoUr<#2BtxLNn*2A>a-2BL#z%QO@w0v^{s=`*I6=ew2nUj1=mvi%^U@2#Wf& zs1@q6l8WqrqGm!)Yr|*``||#A+4#du6`mR^_#?CymIr}O!8Zm?(XY$u-RGH;?HFMGIEYVuA1& z`3RlG_y0%Mo5w@-_W$E&#>g6j5|y1)2$hg(6k<{&NsACgQQ0c8&8Tdth-{@srKE*I zAW64%AvJJ+Z-|I~8`+eWv&+k8vhdJk5%jolc%e`^%_vul0~U8t)>=bU&^ z6qXW&GDP%~1{L1-nKK>IsFgDJrh>!wr3?Vu-cmi#wn`;F`$GNc_>D|>RSuC8Vh21N z|G;J1%1YxwLZDD400Ggw+FirsoXVWYtOwg-srm}6woBb!8@OIc`P$!?kH>E55zbMB z8rdpODYfVmf>cF`1;>9N>Fl(Rov!pm=okW>I(GNJoNZ6jfIunKna-h6zXZPoZ9E2PythpyYk3HRN%xhq2c?gT$?4}Ybl42kip$QiA+ab zf-!EqBXkT1OLW>C4;|irG4sMfh;hYVSD_t6!MISn-IW)w#8kgY0cI>A`yl?j@x)hc z=wMU^=%71lcELG|Q-og8R{RC9cZ%6f7a#815zaPmyWPN*LS3co#vcvJ%G+>a3sYE`9Xc&ucfU0bB}c_3*W#V7btcG|iC>LctSZUfMOK zlIUt>NBmx6Ed}w_WQARG+9fLiRjS1;g49srN1Xi&DRd|r+zz*OPLWOu>M?V>@!i49 zPLZ3Q(99%(t|l%5=+9=t$slX0Pq(K@S`^n|MKTZL_Sj+DUZY?GU8sG=*6xu)k5V3v zd-flrufs*;j-rU9;qM zyJMlz(uBh0IkV<(HkUxJ747~|gDR6xFu?QvXn`Kr|IWY-Y!UsDCEqsE#Jp*RQpnc# z8y3RX%c2lY9D*aL!VS`xgQ^u0rvl#61yjg03CBER7-#t7Z++5h_4pw{ZZ~j0n_S_g zR=eVrlZDiH4y2}EZMq2(0#uU|XHnU!+}(H*l~J&)BUDN~&$ju@&a=s$tH5L`_wLeB z944k;)JIH^T9GEFlXiNJ6JRymqtLGZc?#Mqk2XIWMuGIt#z#*kJtnk+uS;Gp}zp$(O%LOC|U4ibw%ce-6>id$j5^y?wv zp1At~Sp7Fp_z24oIbOREU!Mji-M;a|15$#ZnBpa^h+HS&4TCU-ul0{^n1aPzkSi1i zuGcMSC@(3Ac6tdQ&TkMI|5n7(6P4(qUTCr)vt5F&iIj9_%tlb|fQ{DyVu!X(gn<3c zCN6?RwFjgCJ2EfV&6mjcfgKQ^rpUedLTsEu8z7=q;WsYb>)E}8qeLhxjhj9K**-Ti z9Z2A=gg+}6%r9HXF!Z~du|jPz&{zgWHpcE+j@p0WhyHpkA6`@q{wXl6g6rL5Z|j~G zbBS~X7QXr3Pq0$@mUH1Snk^1WJ0Fx2nTyCGkWKok$bJZV0*W?kjT|mkUpK<)_!_K^OoTjMc+CWc^~{ZP8vgm`f&=ppzKtw}cxwV^gppu}^df1|va7Q?@=(076-( z4KJVmu?l(aQwmQ*y_mke>YLW^^Rsj@diLY$uUBHL3yGMwNwb7OR3VD%%4tDW(nC984jBWCd90yY(GEdE8s(j>(uPfknLwh!i6*LX}@vvrRCG`c?EdB8uYU zqgsI4=akCeC+&iMNpVu56Fj2xZQHs6SdWssIF#Q@u@f9kab0&y*PlG+PynjHy`}GT zg%aTjRs2+7CknhTQKI%YZhFq1quSM{u24Oy2As@4g(bpbi%y1i0^TwI)%1Whpa~qE zX4MD(PgFEK@jZBPXkFd437aL6#COs$WrNT#U=er-X1FX{{v9!0AS$HR{!_u;zldwY zKko!`w2u@($c&k_3uLFE0Z*2vms?uw1A{AqZw^jwg$|D7jAY20j`s*l##=4Ne_K5) zOtu6_kziEF@vPsS7+@UwqOW6>OUwF$j{r4=nOSf-{UC(rEKidie7IUn>5`UoNJ9k) zxJXXEBQifng+Pte3mPQ76pVlZ<`jnI##F1*YFA*)ZCEncvgF-%)0dUXV*pXTT^L`n zL=?A5Vty#{R9W4K)m$`me~*_(&a88M?Eon$P-YdVG}#Gq4=hh#w=`>8f`9}}zhv;~ za?I=Gb3v$Ln?-SDTBow0J5Tt&xPlw|%`*VTyVee1Oh<-&;mA|;$ zoPl;^f7Q~}km#_#HT2|!;LEqORn%~KJaM)r#x_{PstSGOiZ!zX2c}^!ea3+HSWrwE z=6SJ!7sNDPdbVr#vnUf}hr&g@7_Yj&=sY=q(v^BwLKQm|oSB}172GpPlj?a3GqX#B zJko4zRRttIY>Fv#2b#A<_DLx=T@eUj+f}!u?p)hmN)u4(Jp(`9j58ze{&~rV?WVbP z%A=|J96mQjtD037%>=yk3lkF5EOIYwcE;uQ5J6wRfI^P3{9U$(b>BlcJF$2O;>-{+a1l4;FSlb z_LRpoy$L%S<&ATf#SE z;L?-lQlUDX_s&jz;Q1Lr@5>p_RPPReGnBNxgpD!5R#3)#thAI3ufgc^L)u%Rr+Hlb zT(pLDt%wP7<%z(utq=l%1M78jveI@T$dF#su(&>JkE(#=f4;D54l*%(-^(nfbCUQe)FV9non9F%K+KZ(4_`uOciy82CO)OolxisUd0m^cqueIRnY< z;BgA4S1&XC3uUP?U$}4o&r|0VCC7fkuMZBa|2n4asR>*5`zBaOJPWT$bNn(W_CK%L$c2AsfSlwq?A8Q6 zhK&USSV=^-4vZ^5<}pnAOb&IKseHNxv_!|B{g@d^&w%{?x;i3iSo)+vt^VnMmS!v) zM)W)05vXqzH5^hOWWw~$#&7HoIw}}DD3bCQgc=I8Rv|G5fM8O^58?--_-*>%Nwk)j zIfvfok0n05!w%tZ=-dpffezI7(+}yX5XhwYk#0@KW%PkR;%#t|P6Ze_K*N6ns%jOt zNeW(bRsv0BK7ah~9U~UBAVA_L34F+;14x6-;I|o=%>?sS3@dpRv|GKxilsa#7N#@! z!RX~>&JX&r{A^^>S~n_hPKkPR_(~~g>SuPj5Kx6VI%8BOa(Iit&xSMU8B#EY-Wr?9 zOaRPw0PEbVSW@Wk{8kkVn34;D1pV2mUXnXWp{V-M9+d}|qfb6F`!a9JQO_-wlH?zf z4Sn0F4-q-tzkaJ?1fV0+cJBF$f0g6*DL6U3y`Tr`1wzCiwY#muw7Q-Ki)uN}{MoCWP%tQ@~J4}tyr1^_bV9PScNKQHK=BZFV!`0gRe?mVxhcA4hW5?p0B<5oK+?vG^NM%B%NDOvu0FMq#)u&zt_-g&2 z7?z%~p&32OAUSQV{<=pc_j2^<;)`8$zxCEomh=rvMiliShS?ahdYI1grE-M&+qkK_ zD=5Hexi<&8qb4hgtgj81OD(tfX3EJSqy9KFcxpeBerG`apI4!#93xpEFT??vLt>kf zac28;86CpMu=BWIe$NOT~+Es!y#+$ zvm2s*c`J9Gy*ERvLSI<9<=j*O=0xUG>7rYh^R4bGsvz;j-SBO|P^OQ1>G9_akF}D; zlRmB@k3c5!s|Vz3OMZ8M*n0AMTiSt5ZpRy+R1|ckna&w`UQjklt9f&0Z~=->XImVA zLXizO2h=<|wM~w>%}3q1!E{oSq7LBPwQ~93p-peDq-W?wCm8NOKgTSz-P)|cm}S5&HBsx#C@Ba5;hzi#Yw@y-kC~)@u4}Rf?KV0$lPjv}} zcFpNy=YJfsS||9&!-JFjw=@NU96ESzU^gme0_oNy?})II`>Sy>bUCHs_(m&)vn^&isCl+`F~qu8elAO z)-ZP7`gYE2H(1)5tKalz&NJbcutAU&&JFV~$Jrai31^j>vZ|HV1f}#C1<5>F8 zS1RWIzM%b{@2dAF^$+i4p>TC8-weiLAPN+Aa#(bxXo9%Vz2NEkgF&s#_>V?YPye^_ z`` z-h3Cv^m6K%28I$e2i=cFdhZN?JTWhqJC{Q9mg0Vg|FiPEWDl&K)_;Bz_K`jH7W7QX^d$WQF*iF@#4_P*D36w9&iJr2E{w?LRFapwZIIVHGH ziTp*5>T{=;(E}z{1VL4;_H`BAXA~&zpeWX!gN9m|AfcJ{`!XVz48O^&+0Gd|w;udP zzU|DbGTS|7qZoEoDZEH9Kb0%DZvCaWDzuJ=8jZz}pqPn+I!c_+*~>m>BQqN2560*< z$6sx_y8WRqj$SugYGip+et$;iJ!SQAx=HgVSh_3e)MOFHuXD@sg>Yi_p8Sh`{lP=5 zo?AFv1h;KqR`Yj!8Pjji3lr+qae2|a1GmlxE*su%_V)K0Xu0(#2LcO!*k11w*V12$ z;f~i{kI#9PzvFLZ3pz@d558HeK2BTvk*JvS^J8L^_?q4q z);;4Z!DsV!P*M>F>FiF*{|p_nUgy;pDh?J8vwO;emgOAAcxrgDXiSDS5ag?0l*jj< z(khZ3-)>eiwPwpb6T9meeL)!2C-K@z9fF`0j|t@;^f5+dx86R3ZM{bnx9Hm1O$s)N zk$OvZR0u2`Z^QP8V%{8sEhW~_xbZMad2jtz&0+ekxmp;9`ae;_f%-ltk5E%)VT*a6 zRbMnpCLPnalu+1TafJ4M0xNV8g}U4Mjk{le6MA|0y0rk)is}M%Z9tUU22SvIAh7`w zTysd{Pztfkk=jD^*!lA+rBcqb)Fx`A5iaU2tl&XdL1D)U@pLEXdu%#YB*ol1N?4ti zHBQcU#_%UqiQ1)J^u-ovU@-7l?`YzYFvA2#tM0mEh3?CpyEh_NUuVajD16t zyg$C*5du9R=K~6mCJ`W+dFI$9WZZauO)p2H)*SKpHVsIu2CxfJvi2>; zcit#57RP7DpSwMF-VBm|4V5d=tRgX7RM9%KQ0JRo6d<)RmiIPWe2zh6tmswP`fs^) zwy};#jk|NXMqCSfwIR3QZ#W2`(%sJ>qvk=53CYoLmQt9q|2Gm$sB;rEuBqGJA1OUM zoyl4Wy-HYn0J6L=cad8o)R!Ea^;`rSMg9hYo3?Fw6B9dUq75a-MSb56n8~AAsS(JP zZ!1khPu}!GRpsj+jvl`N1tDD8m1myJCI3c-c<9U-1Vg`xJO~}5_wvPXYh^=Boo^|V z3Tp}|lH!9m4Ipa_$p;b8fjUd=zc4iO7vr)M&Xs0_m$fgY@+hB9%K~4*9$p0d)m2bO ze5JH`W0fnIKdcW!oO#^g1YceSQ4u->{>u@>tLi!fky)o&$h(=he?Fe_6?}O~iSf(F zV&(P~*5h>BW{3e1H%8*7#_%L1#>W97b0@jHtliES^w6w5oldI7QL+?I(Pl$DaN>~d5nXx z;CO1E+S?3E2PLq~)-?ygkHAO1m&hOYmj7?;2XM!$D^f0l9K4P{n}mgb{CoYH6RJ8o ztydc6dNqA)`CG?=Gd~EIbi`UM)eyzGF^+i?&TOdyW~mFH_^Gye(D}clDVFQ@V2Tvy z7rQIaq8Xx`kC;AO-_{k%VI2e6X@bIy^mupEX%{u0=KDUGu~r6lS*7GOeppy{&I&Ly zjOTz=9~jC|qWXznRbrfjg!1`cE!Hzyjzw6l{%>X)TK(UEGi9Uy3f9D6bbn0gT-s`< z8%$Msh!^8WidX7S;)n2jh_n1-QCtSyOAKcPQc(Xlf0*Q|5CSBjo(I-u!R0GJgzTkL z|6QdQRrUMbUO|q0dQ%+d^4)*Mjbm$R}RUcz(7|E0Bq-bAYY@)OsM<+2>}CV zzPBgeD~kBHE(Y+@l2orJrdtV7XXq_V8IETas%7OCYo`oi)+h&v#YN!Qpp7drXFS>6 z?r-q7px+(rIy+bo1uU#I2A5s@ASe01FgGMbouFkhbkm-9yZ8Q2@Q1vuhDQ3D3L+zA z(uz8^rc24VmE5r0Gbd;yOrXnQKAEBfa3@T7fcF$#QYv^00)VZPYehpSc@?^8we}o{ zlX0~o_I<`xSfI8xF(WXO-DX1>wJ`XN?4rw@}_RLD*${$}UaXL=oM(=SDMIxZj1Ji#jAcrH7nYG`r z#ewodj>F5Bf9j(j`a;>)=*2j_ZN}vf!~Hq`2Eyt;9UH1_(yjq1OUO(1M0lI3FZ2j-fU9)L59v&OiQ>5$;d!jg?Fo{Svf5t5FCZbb?)* zJN=Q!?2BztV$7)CWtG0MO~Lr4E5>aoHD5N4(+@~gQEbZTc4s3HrIl_G23PCng4Y3f zbLZK1A-x9x!)WwuI=UBkQ5QyE^&Nrw?@fsRKK41G9-xq=#VyO%CEo`{_eioDj%M!3x=>I zfOPFiFX{1t-|+3E@?UuK=0miGN04hW0=JnJrEyWw{Bg-jMvAA}cg<5LN1c5BQdrIZ z#+bxj9Jbu`11@IUjU|RKfL(UzRlVB4XT ze|(WaxL$KiRqkgCr3^Al(19!_Y7b=E(4Xm7LCO$y5+k;Fu6B#=OSzW`-7p{zRv-_) zPr!|km?8aF}+3hm)QG92YaI+jctX&5IrvTUGf{Y$)TK6)s9v!SMhU=HIpEC~2 z4>o14mG$El2sTA(Ct?xS!l*x7^)oo}|3+BF8QNe;bBHcqdHVmb?#cbS*NqZ%mYS~z z`KLoq7B#KULt%9a#DE%VTEo4TV03T2nr`FK5jUTA$FP0JH6F9oD*|0z1Yf2b5?H0_ zD|K|_5Zk`uu?ZN0U! z_mL>>F;mnHU=@to!Vv*s4;TQr9y)L@1BXXz^a85NSifPTL4h6I>+m_S3~FkXB{N?E zS<3ue_(wqaIS5;4e9{HB`Okl9Y}iFiju+oTqb)BY)QT?~3Oag7nGu-NB5VCOFsiRs zs@m%Ruwl^FuJ1b}g^=*_R?=SYJQ@7o>c9j>)1HgB zyN9LI9ifwu{Shlb6QO2#MWhxq~IG!U^I!6%5}(sbi>=bq8!8@s;4Iaun#kvh7NPwX34Rjbp2f!D)cF&sNIO%9~;C`cs&ZY2=d@c3PpN$YZjUT}X7rY`dlWX$yc znw(7=fzWapI=KzQnJ(6!o0K_aDk!^dZ#)pSTif+jQtQXga$bPApM z=);jZ5c*?*GoeGMnV0=RrZucRRYBjx>tx`A3OuY)#tp2w7mh}&kj)SKoAvbbf;uO! z?+RItUow0xc*6StuO4D--+qY!o}Isy}s;ts5aM5X~eJUZoLOq@dGv=a4hHJD<* z5q{dZSN{bv_(Vj#pFm7Q<$C;MwL|Qizm~QCFx~xQyJoCOZ$`sYD}}q>PwRZjb<=E< zAeMP?qVfM>xu2}Il2xT6={KBdDIstxY-`5IWXN zUiWV&Oiy5R_=2X9Y$ug9Ee=ZSCaza!>dWBMYWrq7uqp>25`btLn^@ydwz?+v?-?2V z?yVwD=rAO!JEABUU1hQ|cY+_OZ14Hb-Ef`qemxp+ZSK?Z;r!gDkJ}&ayJBx+7>#~^ zTm<>LzxR^t-P;1x3$h;-xzQgveY$^C28?jNM6@8$uJiY81sCwNi~+F=78qJZ@bIsz1CO! zgtPM~p6kaCR~-M>zpRCpQI}kUfaiZS`ez6%P6%*!$YCfF=sn}dg!593GFRw>OV2nQ ztTF6uB&}1J`r>gJuBP(z%KW{I^Uz%(^r5#$SK~%w1agl)Gg9Zy9fSK0kyLE24Z(34 zYtihZMQO^*=eY=<5R6LztHaB1AcuIrXoFuQ=7&C}L{c?Z$rto$%n=!whqoqG>#vvC z2%J5LVkU%Ta8hoM($p1WqN}wurA!d@#mQGU5Nb>~#XC84EYH)Zf&DZR!uY+-;VqS< z@q?$ggdX#auS#%%%oS^EN)?JhSR4JYpSgGRQZD<9!YvvF+zp0>C#$!x*x}l8U|Bb& zv?v*im5Bq_(5Wi40b1^nKun$XTST(a8yOAcqQZmKTgGLo)Ig6JuEh5J9NnqJXin@Gxzz-k6xXWYJ&@=JZw=$+ zFPGde%HsR`gI+y`rtiPaMYwbtyp!sVb!pX~;c3zLoPO0eaZSV+O_z z%9H@UhqNowzBTPcMfL6kC>LRaFF6KVaSv1R@%4}rtleX!EMnL`rethYrhTLj1x$tj z;)H!fKo08&T(;i|FT&rPgZ*D0d=B2dXuO_(Uaoi9+vEhs4%{AD{Fl@4^|`X=PvH(s zI7$6bWJiWndP$;&!kSCIR1l57F2?yzmZm~lA5%JKVb;1rQwj*O=^WW~`+n*+fQkK0 zydInOU1Be2`jhA!rnk1iRWR=1SOZpzFoU5{OPpc&A#j6Oc?D&>fAw=>x@H7?SN;d^ z-o&}WR;E|OR`QKItu(y4mT)%Pgqju-3uyH?Y@5>oSLO2Y(0(P!?_xOL=@5+R7rWw# z3J8%Hb@%Pzf^`=J6fEJ_aG6+e7>OUnhaO1(R1<6>f}L z?d@Wnqw9?^;2?q(b@?Wd=T6r_8a@Z4)*_@Q7A`+ zW3w?j!HW0KbhxF%D`9d2HpvIrBxM!36W3Yh5=8_0qYfnHm*yiLB?Ay|V10N%F9XYq zanaDtDk$rS+|_H_r|a${C}C7b{E)Ii20-a?Grff$E?&|gWF<#Ern2GqhCiS0~Y%knIi8zY^lE4qLaR-3M;_Rkz(s;wu z9207W1PXIe#4h4Zw}dvdV&FYcnUlD5_C4hzJ@bPSBVBLpl$&52mi+wwH;svyVIzAB zoA+NQ;Hpqh?A}^Et~xhl>YQNQwh20!muW{ zq}|Pg3jHZWnDBN?r1KhiVG$%Sm-4+=Q2MZzlNr3{#Abqb9j}KK%sHZj{Vr2y4~GIQ zA3Mz1DjQ3q(CC~OyCaZn0M2!){)S!!L~t>-wA&%01?-*H5?nzW?LJB`{r&)vLB4!K zrSm({8SeZ0w(bL9%ZZAZ*^jf=8mAjK^ZR0q9004|3%73z#`-Npqx*X^Ozbja!C1MW z-M~84#=rU1r>p{+h9JU<#K_x$eWqJ+aP%e?7KTSK&1>dlxwhQmkr69uG~0iD@y|L- zlY0vSR2|IhZoS6PpfUai_AhKo2HfdD&mhv#k51CX;T z*sU)XbDyfKjxYC$*_^(U)2-c0>GJ(zVm$CihHKlFSw&1A$mq$vsRt-!$jJe3GTaZ6 z3GcVvmwZ0D>`U+f3i*pQ>${p1UeyF~G9g~g-n{ThVOuC#9=ok`Zgz@qKCSN!1&P`N z=pdlGNwal%9;)ujwWH*#K6CQG*fJDAQiKlO2vKJHeA1lj&WQC+VU^@ea8$#~UOX$*Q!V^8L- zL0$W5(Y3=??%&j_WUq6*x>=?BfmI*d8fmDF*-!XVvxL8p7$r+}Igd_(&`|D*;Z#GE zqm{tHx&aHBpXw&~l6>7-FlyiSPJtTJblAjLU5Ho$FeN0mDguFAq?r+6^~o6|b+rfE zGVcZ&O-X~tE3liGcdI~hHSCT+&F&uH8rr&f{6pr^1y5061`fu~=^_|Idrgti5+*U7 zQOb9G?Rz$j-G0Y}x+i{HB0!4ZmKzykB<0;Rbmo2)T4|VdcwujI_otLG@@8OOKg3kw zP|0ST0D4@zT?O=(0Pikp)Rpwxw_VsmW4!^j^sFd6r5l zw}SG_HQPs>ae%Bq{sye_SaBX%|F-}&^)Wz@Xi<)YNbO?lPs7z@3c;$b^Aw@>E%mOj zW^c%IdtC(Kk@s*}9NbKxEf8SZtP+32ZTxjnrNWS7;W&D~ft{QY?oqOmxlV7JP!kW!Yj`Ur{QbbM1h=0KMaIAmWiISb7TKd4=gMeo+Tcz2>e#NihnOV%iNdx` zeiuoOK^{}D+M+p(Y7EC=&-`$B0F< zQ=zHaM;&QQR4jM$sG=N&sqOvD_Bx*drQ6c@u0()g05cwl`Xm{!S_Nuaa2KlL*rmmk z51yPE)q?Bl$sNM474Y!=zZ zc{EVGpdJ!Su{Qq%llR5O6#zK8l(ld*UVl87@|iaH@C3+*;XBxjEg&fsQrzpMo3EEG zv*Tpms7a;7!|iz8WY7={0a$0ItO-(ajXl;wX_$$yzEF5k9nc>L3wv!p{8h2)G0W?h z{v6vH=7+>$Ho^+)9hDtCd+S_yh8pzS9$)hYev-=eDu?lGIR;-fgz+dr+wcmM-^dZp z9}`&kAf$~z1ovF)>Hgxc!Xe3cju-jQRluCm;c_1=PYQygb?Oxe z!QG0L3sT_k=WpfOPL#|EPlD^t;ENCC39O?tHd<(kfx7SOcxl+E#;ff19_+{vbkZSvbS$I{#>31KZj^$n%ayX0jj}EvsgnHg16P z_A6Y)pdp>kLW<;PtR*Vs#mVb%)ao7AXw{O&hBDmD;?mc3iMH;Ac@rZZ_BQa8CQ~|0 z&d1L{in-z--lBO|pxqc%bqy^~LAGv=E*eaVU~OeuVV{d`Vv#-_W7EYdTDzVraG9H+LC_dWcgZMn~KcP)XvKWbcr5&d+=a>{*(Ha6Y1$==bR z{O-?$7H;`2dt0B%Vm?6`_?ZOjJkyu9ZJsh^WH*+es&^@KDcR%Zej%3PJ*XovgyhTbaH(!H1H_OF~=*f55Jr8A%uW zz5IoAB~1e2-tDGp9}`MnavAMy?jgPM5F%y`%$}dFLrz_* zIrO=afT8+AkK5B1s3{ZDVP$g6y$-*U*=?-fh!cNyn3q6YhNhfRxW&GLIJ2#>9bYMD7-F%{|Iw%@a=DoAAU;3k9p$`V zImKm{5HU~wq|nQFwab)_7lNckW#1z2$|oW5x7vDbBURVjw8674P?L1ogMKpHoV>;# zO%*1OwI|($UOr#hL(*M~qsn3PF%_|15uc%Hy9@D>_~N|?<%lig6yKX0a#1s$o(^Laj8bF#5fGPOFMGmMiUaxSwE}Qf#SG_f79d2Iv=TFBXzTpr$^avJ?=|arh2<+ce}&248Kw0} zhlva`wD6X~s7|37la4FnFOgIHhBiFo`lw~?lSbk{>)P(3jyVhM4O)a=GX3(sW1vIC zz0mJ>;J{!eN5#nf2>$u=3Kq>`7u9QnChi8>CjONBN-b+W_UQIuN#{N$Q<$}IOvpQP zB&5ZrY{V&D=4)voh;6<1U`PFA>V%XUW73S9D^J>cQYfzIyIV5i35WNb5K9c^|M}=* zN_C3rnjCZP1^v{;EaGK7Tp5z~B#?f5NZaAsFUOLK)mI~bJTaL8DF_eRikE{%^J?y9-n_U32EKHPCkB^ZN2*zk{bC=GM%_I z61}nkr+Plg6S0V=mY>H_KQU&)P~=y3$#$*U8FunXkb_e1O-7t@m$5re%u!_G%^?_| zRIJzg+lX$}+ba|qx)Ec6c^ip;`_QfQrD~SPa4MoyRUOtX&~^XWcO^a}KBkXK9J{ZFOA~rovYa0!7btTC*=xNQrwJ)$Eu`TT$;%V&2@y@$ISdNn ztbM7|nO+U9r;ae{{;QiNEYpe4nrFq_x3 z4Tvf^b(I@_3odwhVe!aC0X&~inrYFu# zh)+eF__8ly&nLr4KlLWl%B_ZMo=zCH2QfO^$lJ zBvU*LQ#M(5HQ}2Z9_^y~i@C#h)1C*?N3v68pY+7DD09nxowdG#_AAM5z&*|-9NcB{ z_xKUY>Ya7>TO#Bat}yM}o(~8Ck^!QHnIj8N9}c*uyIs}IEqGn`xP;q3vhW6gsqUe>`m1 z)~ad@y1=?H`1SNl?ANCs5ZD`8tG&Hi=j|R%pP(%gB8pd)Q--E?hWU@)e?>SLV4s(- z!_I^oVC0x97@I(;cnEm$ttKBnI3gXE>>`K?vAq~SK?0YSBsx{@s1ZdiKfFb|zf}ju z7@rJb3mC{U`$R`YS(Z#KyxQx_*nU`kf;}QL%bw17%5~6!mMao^-{FFmX}|ItFuR~F zAAvTF%f4XKYo>2-PJ~ro@Ly#t@Sf69CrA+rmMRpihqH7V&SXX+$Sw`HZF`I*_3Vjz z%kPMyN0J3sl>X{-h12)j&XRhAAI;Aou%%z}gI>G+32z*qpZg{m`CezFrzg#&yc<1` z%j~}PN!F5Ddq(>R{+t0v{j6v^0XwWGu@5+`-$m`_>pCzM`r}wz*8Qv=$|P0R$%tJp z>D+N4GZ|Tg>XL<6XP9_wQRGDs^1icY*5GP4>*7mGMr;V zI%kT_^_SQml6$#uRE4Ps>}?ES)_XI8m-%GN{o^itb^S7e_bM$-wo_Ws)W? zx4_6#*X;T$n2N==N0#xzb~BQU#%^NF6|~898JGDbQxjK(ex;Q}_Qn@?Y>!kkUYUeY z&VclG1#eDPU78K@^p3tAUvZi1(nFfk6AAVHWt)Wbi7dPbjA4isOY~?*1&asp!wg#Q zSpSI6*!TGn3|-%vuJE<9V_1EKkz_0%z}Mb7;E!uz)+0^k;@x+<5tzj5 z!InbRtc`YwNCbCac{plY&Y}hWp#PC{o@5UsBj#tv3f^ns^`;$MVN?>q!pW+MYeC7= zkWr1kAX(0xVQ<{qny&CO*|g1{Mk_yE>1t}_YT<5#p8P7QXf;o|s>XQ#SoA&!ddE+8 zOM&VsxsRGS(Spli?P$^pK7Ty{v86RP_6h|MU^J z`J>vn0|BG3Vf!uR0zM|GwtiTPZNb;a@@1+V5+$P4GI_&$%6m!YRGL=lz5kh?z#5f55 z76COi1`R(5p69;ThuQnJ$R3w?I?jigai2arApagd=^tT~oMUWp^u|H_@zXBjpI)Dv zEFc^_`mVu5U*;ClT?x-t9{#fto_+92GF^dotz0sFWTDwZ`s40AY@mv+Qh5c-Ts8Zp z!(v7!zPvFhUZ-xkR!IvaW`{PqN|k)L4*anbtmK+UU&K*awl?DhxRalbtmDw`$#VzK zYFaG}?$F)1j`Qx7wbn|XzMJ&g@3Ai#u5M?%CLPghk;lD^)-|21{Sr+M(suBU4}6CMTMxc_tD;X;z<1-{FeHte=kh1B9O6Hl z!v2i$d1VFC&z&58zU0`G#7^K3Cs@9LYN16O%Vz)?-iQL!G6&sg6aaX>DBZmm@lFrRJpcL{K3(;+`$9GDFDw62Mud@LZjabzVC=w$dx>TQa}U z-{dhKYTYx*C=Fio`ez@wrzx+p%Fk3i&v?6ENXMb3p^?;_&huLLueDwr zpRqHbU%i;9TmexFxCS8F1rPo-ea3!}!ew7{(($76Rdnfa`~$9{8H@f7U&0&HjZ3TZ zuBc||%FljS_e&wNZ$1ezT$*})XAfm??$_cY_?13vM^tT0EKY2ptb+v5P10}a%aTk_ zh8@_T{ns2@jTFhv`)-Vxh}u(0DiL0MUi(We_eic$;gCoqj(T_S{jDo^PahnKJUp3@ zMOk+%weP*c%K6VFXR2icY`J~-&fVMYUg6fsFI->jlA|9`+07y~$Fsz}^;w;mNk$ms zu?y)VA@QH__tvYDudhEWuDD20H&uvrf_boY{($?5{s-SDjyRxSC%%2Xs5d2dpjdk$ zU*NURD#ovwIfd^H{fXR@UuaooJtQr7$d0+(K+1UEwtG9_T?sb$ExV$e-bpf}a@YUe zuzInI59w!x;<)>Be;a7ukLW>V=8~J6nKU<0@H+SQ!Be;1Za_pw#hiuW_PMPBo8W2G z*WDtiIAN<>HQOmh)DMi{s-0H^GmV3QMf4Zu(zXT!-c;2)uv4gUwt(-}-N*|KUOo$h z+Ak^R)h8yB5UD8 zsSjHgY}KguNi?xV=tdCWqJR!~dDpFQoRJOwxrWH^vfRq4%)v;sDfIjsLXF^)uy>!i z*S8Njd7yfa`+7(|8H9j73Rh|TwFpF(8H-p;RLLIU>k<*qI%A*SL{u$%<=X@Jm1QFe zVkQ(X8P4Tohl?_tSO__^aqaI?k$CC8uNLv2mp_zD@4oDaZfEN5;3#XY!L{8B!;Dtt zb~Zge@JF|#Gsk^5$-|(OPI73po|WZh<`UxaH#Y2!&p05Ph?H)d3Bc3J4sDi$f(6K`?&D&~eHVuE@_Prkt>_&8&aq=OzoN!ANkvho;qIX(g|d#EKQbJ@;-%_iARmgSF1fEK z@B4W@5mDME7AzfL**c&2#B7xO9>rA4x$rM{N=%0=goumK1kL{TF@CSk0yvqR2oo&m z)?nyiL$9~Jt(qnEuWt9Hc_duim%|zJQYiaF*~orVNDvJB;`%ZW_2x%Uu01LeX-JP& zD&fas6d3=igAgcfeki79{5!XPHHYR#nfLYRKv^wkv~cnEbLHMwQ8%yCZI^rK!D2qT zk40Vg;e!_!3d56&umIuidN?6MTZFzHot}AdqKzDh#w0s`)cV!2A74RSH1@lDXtC38 z+UhO4A9?oZEOV{bIgGd1{2qMR&xT+}q!=I8m)W23v!W2WPC?Tf!F!e%_(m^lQZtq* zYwi}gY(KZ*Y^OWRNj$Ph#uEEBM+wtN8QFQ@^`GDOln^ioNrmtvzNNi*qS5lPHxI96#sMil*teLVaa%$msF>@5p#SjT%q8|<4ZOUB#!-kG+|eFSED z!|3c8fXaym9qH`L;pmqTWcG}WE$(h1sZ3seM>)E3ptoP<;~h~qe6XA)lGVanf&->P zjZwi;_;Dt+bYdAeD_XSQ-DgXRXqLv`3Wcgl}myA-JlzBBIh zWq4Q*9#(zjAk_H8VS_AJ`?OS*^gB-rp|~qt;v(C5ef=SErv;~zL64hW`#g!UZQcvZ zF6Ra@S@YhVSkSWVAY=Z1w)w-hfJDRwKTUH0o-OG5TlW0HDH36hIjnP=?A+8u1)Qyy5U8Gi$! zt^!vy|f=YHfQ`ZRK?D zXXn*kItRg50vr2+_hV5kjOleg#s~z(J2p#`=1Tq4#JS`MC^e4p&s7Ir=3m(K$LW#` z=ULCoWtna!so+QQ*JHb~6Ps9_&Ag>9qsUskp0pKbi`n?(u3&@QT!?}N}rXn z>1eHi6(@LicU*AR1obe+nbzTCD#VTJ`PFLRT(nc$NWrhsgRwFni*D(#?W^x=J6?|b zENSc^D}s>Y55)PzFs2d_2;yh89E0ZIgs&>6JV=pL6k9g_(`$04EoY+Zjn}}8e#n83 zJ=zB>BU<253Erdo$wE4^+@QQJFZyAj#(InFlN;!UGg96R@{Y&%OlGG;dM)^X8=Ddw@&2Vx?zui$tO z-{zgaU7&F!xs=e`Mn}r+xrdIAmkraRN_7P1?qu1|TZ%1QR(Mn?k+pq`Xys2v9Gs=a z?r@g&;UKcM#?36r9k*eVD(}9qe8?irotsn0+eHH8*4 zPX@Lusr)$J%8jarx5ssEJ?twFyu4kAbrf`96_z{6at^&UkyDzFa69RXP>PeK+dAWqE5<5P+aHa zs<<*+OO_2ObTXau%y)Nn{(p5`XIPWlvi|asjYcui;E@)Ig{YKBXi}spqC!-P5owwL z3L*+9;0C0G!xoN;4KNfDaElv>1#DMDglI&MAVoK2+c2Pr8&sl*1dYj=^>NRS`{O&%YV25@5*eoOvpD_(xdKsnqb^`T}bm;n0BN9ben1Ynyi*OOf;qLpf^ z!T{}GzkXSszN_Xqzp>}S*Im)_Y8~2|B*ybw(U=Q)5_NcMkT;)1&52YQJB)Tn%kPK! z@3;^AI){B(&UOv<{v9KKJrInkdcXV0%O1%1=7vYV*j?v(Kp~arZio$#(A@$kYB3aM zRdm4!^Je15%66($EkCIWGhi@=kNAyLJ3ydlJnCpPuxH0+OA}J)+t8d7nT->##Nz4w-L=S7ExQt=Rx}S*mpT91(>t~qe7tM%e|O)TIO^dP zfo61GNS=cJbLutqUh84?7X#bq)bv57s&D_zm{+xNv7vHjb=_}j-Lrj-Ss*pcD@ts$ z)5Dol8Z_&*1@JdAQE7SL$*!TXI|YE7q=YGkIiUeLvT0)14Q-ivs|+cqeT6DTi9eQ)h?Pu9pqmH51B* zFMd|;l2@D4*56|EhMFlDxl2i<8qq=c+AhMYS3(A28#3DZ;_Ln>RA3q#IAdJq7M#N> zTZ8t=_>lq0=W&w|bdQ^sy&m^@KR)mNi3|1<6|OL(0KLtP#I6ix$2b{-Y9GP5I7 z8AJUSCnlia5vWawX%ZLWTC2UV$cn^sfv68W!6)QO;ZjnX=7#`$ZPRG~irfl)ZUJ^D z{lUk?(*SU7XIiS^H{Lpxn%542#PgxdeG)Ociej#(uvX)z;Z3)<16Yhd z-sv?qQ5D4a)ZYoYPRep2Zvom@U)HKq*54ZEwdaEq^FZG#(CyG!=Vw(0j8CCmP~`_z z=OR^i&WkDCf2cLvWm@d?)mEgme{hA(o#xAL023LZ3(82SGRg6jJF7$kZ4! z6*FTm4y6v~CP!3$+fxg{QeFo24<3iucgI!oyjV|9Dsx}r~4X@lt^VaH$u zD?87}1Jh=?G8OYg*ts2k;X9{f*Za?yu8IUUfyuQ**wbcWT+KncjD^qQ3h&w2+S(Mj zZM~?Ot%ggTIHwkBkL-4&jI5R=B+MCOR42bKzC2M>l?1%x2Iv7amIfQ1B#wwfD`z|m z+E?G+o(tde*Ws?;Wo4p#Yy>Nnf|*b<nj@-s(rZ)-U@ z(Xe(qZ1(_dH|J3yWu|bAPINK}DwF(kZ>FKx(?ZmU^KFC6*bh$;FKGh~pH1 zozA+kgcIk9@2aAwEJ=VYizT!sxDXX$N?XDiGKaaT-OU@Ib=~4DmgEk&{2D@IvyjF* zuF@sDcuuqx_FAgx;B@@8gqjMh!kQeEKA*y4+q+^4&uc0|>M;$Xb+ z@X%eUx1m%$WSP}Qchx68NQ?dO!h`6;Quq+A1(RORsQ-;6bZ90vj#^0(7>cLR+-_;9 zCd@b~B5V>$tpjkQU#BD%9^zu7-l>U8nzt+XuX5cYDCHYaX5t~~3?lpa;)Mr>q;5XW zu(Th;fr}-GkP`K)u97(#UB|L3f;H7Cd#Pox+auV`=m?a=mSv1v)(V!E=$%gkIJZ;` zZj{Lb@bhs%bRa znZw9cD$cDFVHPtpXwY1K)wys@LS~;!qdqkR>@&RtP>?M^>xe{4N#EtZy4zZ5Ar$ZF zV=X=(!xin-58MC<+b~;jk8Q|3B3THGIA$cM8Bg)Yd6ygP#i?4VrX3OvP_k5i{Cppw z-{$XwrJ-+X$ccJ(Q{|?T@U9=-?qlsfA43%8t247KZn?`+C4e`b-e^(df*iW66=Oc2 z3w9UhohfdY@pH1MZ}vc<1osV(2CGG)Ree$E-T;8>$zw*>x-505b&4(shMGIjbAfLS zEZ3ys(`SmCWc(75)^=aKer}>67qj^nGKtCK{35I|tA}wQa!uM!suX%Gb~ylORGGc( ze^|m|N!}G0#Ph|;wSXz`SByQM>lPM#8>mdSQs`7RxkXaSAADYA24u6xWqkIXY?o%z z%TEFL+wNW^&nrvaA1_#P%&Hbzrjl!*hIft>F0@g0IVydUU4MJgS3_3Js8{*>|G2jC z4%n#cOy9b2Xf&Pw=14;0Dtf00C^Z$I-v05OqtvN9>sAC&oV1Tk;;ku7VR`sQK4oFq zQ8)yoZNuTwV$t13|GCUIC{ID_r7M5&R*zhsxbrkg;EgMtL|9ne=^}BM!dxV!KDeXkWA^MfQTkQEt8~t>JznNh%ULvn@dbQ2cyf} z|C%ns#NJU}SHU(7Pg$<&8uDK>d5GZJ&`;CcfGP(~b-#UusXevc^q!km1X6_wVMqGk z^m&ZS6#42?p4c_t1TA$_+}h1L2c<<=$k%;v+D!<@j5hs|{>d18>~~v#oq4yGyS@QP zgTX2oJbEy@eJbo-f{ZQ>-nmB-#AqWcHbMQXFi*T)0n!(HIexz=pp<(O*DMh7CMupX z)ei1ZYuIW~E={-ND*nD;okiZdm!?^|LjLZhs*FHZvWld5TDj zcvWB)`-1Me9bu`*4M=CO6ye=pMgxlgYvsh2rV#5Z$hFKw0GX30%oufb=hJ0BFIJH` z+Fii4gQ+7!)8K^yc*PVEW^#f!|BW0Q5*`IewQ5YDFh?{x1L7tlaUAX@3Y+D>6FPVf zJzOGex~H34`8eq+TL$FsHm+27RS>3$CG;>0Jj4*1ukX$za})*b^S5p}I2jbFCHLsA zzYwAyftMz`uo2c8ieQcy-p&9iP3fMk(uRw+OlBPm`KCLei6g!|Vnk*-kjs>A25MTE z5GLDMV$70AC0j-tx*0sCruvKh{fSM)3X}13U>m|KeaOb`9^}v^44!$`06-JHf@L4EKyxV)M!8cL zi5p9kF97RiAT92!e?%9CP=qX3wyv^A8q!w%07d(9f-U))uDgsr4FDVL;|%r)fw}-@ zlB$F79X^EKYF%8J7mU?3VzJoYQ0<;NczW1jH4=4kEh_)q|^9wj zIsn-SsmRx0_EJ7(6WypwptIwZ)-T<__UgUu?BXt zoIf|a!5`?&JEb$w2PZSqhA>J;GIA^rJ-Cpz8MKX~bcqZNOUzPtu|NMvEP>+cO;V*W zNQ8YPENkr!)lN+tlxB79RUD20$)+_P6Jc`+4q@%Kno{F+#1qR*zrj%T>nTSceO?a5 zyqGDa59#G6k*RXu6+#=e=e!~i1Y&15!cHmE6sLh_K%Ppv$tFE-Le3RQs-nx5LB>gy z5A))kwkxWSy73{@I{%{DY8X+2o{CLJb~R$3r=oT^P~Xo$2lKz8?Z!3QLn$5l#L2k2 zb1=?UT&c<8!&9gW1M&jI!5%dhJbD3nQXpaeNJ>=zR+EL!4iY(nMBQI+|2J+Hw-WMr z08Mt9h8(PGbY?zKtk=cqw(yW}1A#htn* z8&}5Y>$uc>Lv!bSuWQ5UB&ct7*jiZAFpxz|%xO&5kg zzlf?6xy7H3G^*wvP5scW*Wf(<&eP!YIUf%&HT?K)RWmKg$G^=mSoi~;&9dU%{o}WV z#BX;9+q)fpVU`>Vdo~AtYK)`7z*H;dc-e|q6Qt;3J0APUL!~g&Q literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4cc16421680a50164ba74381b4b35ceaa0ccfc GIT binary patch literal 3276 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 N;OXk;vd$@?2>?>Ex^Vyi literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..bcbf36df2f2aaaa0a63c7dabc94e600184229d0d GIT binary patch literal 5933 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 f$KZHO*s&vt|9^w-6P?|#0pRK8NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!ItFh?!xdN1Q+aGJ{c&& zS>O>_%)r1c48n{Iv*t(u1=&kHeO=ifbFy+6aSK)V_AxLppYn8Z42d|rc6w}vOsL55 z`t&mC&y2@JTEyg!eDiFX^k#CC!jq%>erB=yHqUP0XcDOTw6ko}L zX;EmMrq(fKk*eygEuA616;0)>@A{TK|55PV@70 z$OfzS*(VJxQev3J?yY?O=ul(v`fp}?u9z`JK3ugibK>)DyCwImZOF4d{xK%%Ks1*} zv$oa)9anR%lXIBUqYnhLmT>VOzHfNP?ZwJNZ!5$s9M08RynIvaXw>@G^T9@r9^KH1 zVy??F&uuk)bH9Y4pQY!hP58i_H6 znl-NcuCpLV6ZWU;4C zu@9exF&OZi`Bovq_m%T+WhU2kvkz@^_LpycBvqm3bMpLw8X-Or5sL>0AKE1$(k_L=_Zc=CUq#=x1-QZf)G7nHu@fmsQ1eN_N3+nTEz`4HI4Z6uVlE zJH+X&det8JU?tO?upcM4Z=cV!JV;yF>FfL5Q$M|W_2Z!P`S=}Wzp|_1^#d%e?_H`> zV@%vA$+bFVqhw9`U;TfP|5|PD{||OiYdor8P*i??|NJcb%kzT_73*7WE?Ua5hAnR2 z=7WE=PhTlJ#ZeRznjTUb;`E(wkMZrj4e|Hilz-mK>9cZHQY**5TUPw~u}k;u73KI}xAx!0m-)GVia|x^d3p~s_9gh83jA&Ra<8rM%`>U3x69t&NzbwWY}7Ar?)FK#IZ0z|d0H0EkRO w3{9;}4Xg|ebq&m|3=9_N6z8I7$jwj5OsmAL;bP(Gi$Dzwp00i_>zopr02+f8CIA2c literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/packages/emoji_picker_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000000000000000000000000000000000000..e71a726136a47ed24125c7efc79d68a4a01961b4 GIT binary patch literal 14800 zcmZ{Lc|26@`~R6Crm_qwyCLMMh!)vm)F@HWt|+6V6lE=CaHfcnn4;2x(VilEl9-V} zsce-cGK|WaF}4{T=lt&J`Fy_L-|vs#>v^7+XU=`!*L|PszSj43o%o$Dj`9mM7C;ar z@3hrnHw59q|KcHn4EQr~{_70*BYk4yj*SqM&s>NcnFoIBdT-sm1A@YrK@dF#f+SPu z{Sb8441xx|AjtYQ1gQq5z1g(^49Fba=I8)nl7BMGpQeB(^8>dY41u79Dw6+j(A_jO z@K83?X~$;S-ud$gYZfZg5|bdvlI`TMaqs!>e}3%9HXev<6;dZZT8Yx`&;pKnN*iCJ z&x_ycWo9{*O}Gc$JHU`%s*$C%@v73hd+Mf%%9ph_Y1juXamcTAHd9tkwoua7yBu?V zgROzw>LbxAw3^;bZU~ZGnnHW?=7r9ZAK#wxT;0O<*z~_>^uV+VCU9B@)|r z*z^v>$!oH7%WZYrwf)zjGU|(8I%9PoktcsH8`z^%$48u z(O_}1U25s@Q*9{-3O!+t?w*QHo;~P99;6-KTGO{Cb#ADDYWF!eATsx{xh-!YMBiuE z%bJc7j^^B$Sa|27XRxg(XTaxWoFI}VFfV>0py8mMM;b^vH}49j;kwCA+Lw=q8lptk z?Pe`{wHI39A&xYkltf5*y%;-DF>5v`-lm0vydYtmqo0sClh5ueHCLJ+6$0y67Z zO-_LCT|JXi3tN7fB-!0_Kn#I+=tyUj87uR5*0>|SZ zy3x2;aql87`{aPZ@UbBwY0;Z-a*lYL90YApOAMKur7YgOiqA~Cne6%b&{V-t>Am2c z{eyEuKl!GsA*jF2H_gvX?bP~v46%3ax$r~B$HnZQ;UiCmRl`ROK8v>;Zs~upH9}qu1ZA3kn-AY2k2@CaH=Qh7K6`nU z3ib(Bk%H*^_omL6N4_G5NpY20UXGi}a$!}#lf<&J4~nhRwRM5cCB3Zvv#6+N1$g@W zj9?qmQ`zz-G9HTpoNl~bCOaEQqlTVYi7G0WmB5E34;f{SGcLvFpOb`+Zm)C(wjqLA z2;+nmB6~QDXbxZGWKLt38I%X$Q!;h zup9S~byxKv=$x|^YEV;l0l67jH~E8BU45ft_7xomac-48oq4PZpSNJbw<7DTM4mmz z!$)z#04cy%b8w@cOvjmb36o;gwYIOLwy+{I#3dJj#W4QdOWwJQ2#20AL49`hSFUa7 zFNAN3OD==G3_kbr1d96>l`_cI`<=thKNh5>hgg7FV>5TfC6d#u)9BNXi@p1K*;2Is zz+x;l4GbSt#*%>1iq}jGIebXYJY5;PGG0y(^{>SSuZY89aL`sDghOM&&pyP6ABJ#w zYwK~4^1eUQD)4!GL>`zrWeHV z-W!6JZbW*Ngo;Edhp_cOysYr!uhKS}vIg_UC}x z=jXxQfV@4B3`5 z!u#byBVXV5GtrSx_8bnT@iKv=Uc6n)Zpa`<9N>+!J~Loxptl5$Z`!u<3a)-+P)say z#=jc7^mJzPMI2;yMhCmN7YN78E7-^S(t8E}FklC;z|4PL{bO|JieM#p1mBjwyZMEm zkX^A1RXPGeS2YqtPMX~~t^$~oeFfWAU#jVLi%Z@l2hle^3|e(q?(uS=BVauF?VF{j z(owKLJuze;_@5p1OtRyrT`EFXf)NfMYb-)E8RVVdr<@}M>4R&~P=;B`c1L%o|8YfB z-a(LB-i8jc5!&B5cowyI2~M^YID&@Xt(D9v{|DB z959W z*vEA77fh3*w*UJ`4Y(bxsoEy6hm7_Wc5gT0^cvso%Ow>9<&@9Q>mxb6-^pv)5yc>n zQ~^!qY(lPQ1EDGkr%_*y*D8T^YbCa52^MVqYpTLhgJ;N5PfCQ{SXk|plD#Sm+g4c- zFeL2Dih35W4{_qb75U`4Rb#S0FEo%F85dOhXSX0huPOxdAid{&p6P;+9}I)XU7^=3RZu9M(g0dLyz_7$8K{`AddBLOfU&B_QNHtmsnNXq`hy~% zvJ{vtz~Yt9X|o}5vXX)9ZCHaRq8iAb zUDj8%(MpzJN39LferYKvIc!)z^5T-eW@j3h9a6d%WZ!%@2^@4+6%Z9W1GHZbOj|sb z0cU$}*~G$fYvDC|XulSC_;m}?KC2jg5pxES$Bt!hA|@EX*2+O!UEb5sn_^d>z;>;r~ zmO3BivdXboPY*}amsO&`xk|e)S*u=`o67MC(1WTB;OwG+ua4UV7T5Wvy%?U{Pa5cO zMoLG>#@chO{Oc72XPyX8f3jC7P`$j4$)0wc(b50COaDP3_Cm}aPAglUa7kRXAqmo5 z0KDD7G>Gmnpons40WJNYn+pxko92GXy@PvSErKE-Ou3)3UiRr7!L4+0%+5}sD{bf)uj^ounQ-Yn2%%JoZ%FjUv%yjS?Ks4u_88Jh%tNliYW~817IV@fqd1T zi(?;Fv-s3rQEn=9G*E-QzSl%YS|^fe*yn}Aqh!&P<5%#oB?*{wZMa5$PYa*A{VA8! zbOfS1W!W}cTo%g~iP$>WhE_x7#O4?h$jq=>{M77>bTAK_ z6uU0tl6HARboGi}=4krr6WP`9`aAt&P5ON1v(+H{T?jZuJ}B{L-=z3VX)}mZwzrqH zpf?T!k&$?{&{0_p>b`kdJbSb(p~tFcuG4zh6}hfl@ues6CfJu<-P+!>FlYMlD_3!E z9$6VE==tlxNYe(s;@8@+4c4jQ$R2g8t0QwE>Et|)5)@kJj6^yaqFYY?0LEM2C!+7+ z+FN|UxR1GCy1KA`{T_%24U+Vserchr5h`;U7TZPr@43x#MMN{@vV?KSII}R@5k`7cVK}E;c)$f~_{ZLDOoL|-01p~oafxi4F zG$?Wha&a*rTnz-nTI-bAJ*SLb!5(L!#iRdvLEyo>7D_=H78-qZrm=6{hkUR{tR{H! z`ZTOV$Oi6^qX5=_{f}V9h}WJAO%h9)kEUF#*-JyYDbOGZ>Nfs%7L}4p zopIul&&Bbn!C9o83ypC6W4F$X=_|pex$V4!Whm#48Wfm3*oAW0Gc&#&b+oq<8>aZR z2BLpouQQwyf$aHpQUK3pMRj(mS^^t#s$IC3{j*m9&l7sQt@RU{o_}N-xI_lh`rND^ zX~-8$o(;p^wf3_5-WZ^qgW`e8T@37{`J)e2KJdSSCUpX6KZu0Ga&U*+u3*PDAs1uK zpl)40+fROA@Vo#vK?^@Pq%w8DO9HdfmH+~vNinZ$5GRz?sD|k246NepqZd`>81P^P z#x#3kUS-}x4k%&~iEUrsb&-X#_;;?y9oCP4crMkC`=q58#NxQ| z*NXNA;GR4X=GiGXwab5=&M3j04fQw%2UxM`S(aE)_PlgJttBX96$$lY@Q%0xV^IbcHqzw^Uk&E=vFB;EQ@kzVIeM8lDIW_Q_ zrfy)l6s2QBApF;J2xTD_@wuNMlwDfsdfMyzRq)<>qG{M)Yt}9F1{1HaI_X7=F=7>& zYB54VaKlxu0lIgS;Ac&25Aw(tcf@K~(cvPi8(OChzhlYp6}#<_MVhU95sD&)n0FtL zmxm4w$~s(S9jmHOgyovpG!x4uLfJsMsJn^QMraKAa1Ix?{zkV!a7{f%-!u2{NqZ&) zo+^XB`eFQ4 zk-(;_>T#pTKyvW${yL|XXbcv?CE2Tp<3(PjeXhu^Jrp6^Mj}lg_)jamK{g;C+q^Da ztb!gV!q5)B7G1%lVanA2b>Xs?%hzCgJ{Hc!ldr9dnz7k^xG#4pDpr|0ZmxxiUVl}j zbD_rg3yAFQ>nnc)0>71D==715jRj4XsRb2#_lJoSOwky&c4957V-|m)@>b^Nak1!8 z@DsIOS8>Oe^T>tgB)WX3Y^I^65Uae+2M;$RxX_C)Aoo0dltvoRRIVQkpnegWj;D#G z+TwFIRUN%bZW3(K{8yN8!(1i0O!X3YN?Zo08L5D~)_tWQA8&|CvuQb8Od?p_x=GMF z-B@v9iNLYS1lUsbb`!%f5+1ev8RFPk7xyx5*G;ybRw(PW*yEZ$unu2`wpH)7b@ZXEz4Jr{?KZKYl!+3^)Q z)~^g?KlPGtT!{yQU&(Z&^rVjPu>ueeZN86AnhRwc)m|;5NvM&W3xD%n`+Hjg5$e8M zKh1Ju82L~&^ z-IQ5bYhsjqJfr38iwi~8<{oeREh|3l)*Enj4&Q$+mM$15YqwXeufK9P^(O=pj=F-1 zD+&REgwY~!W#ZPccSEi(*jiKJ5)Q|zX;hP}S2T9j_);epH9JQs{n>RG}{Nak)vIbfa zFQm?H;D+tzrBN2)6{?Mo%fzN6;6d_h0Qyn61)+XT63=!T*WQyRUoB_x0_)Ir`$FtS zak07C(mOaWN5m%bk?F9X&@mEVKN%{R6obt(9qw&p>w&p;R*l2th9$D^*`pC}NmB+v z>bk;OJ(C8p$G;jNvRsBbt=a!!tKnjJ`9*yQFgjEN1HcC<&>u9aStT3>Oq=MOQV!#WOZ6{cv$YVmlJdovPRV}<=IZUPeBVh5DC z91-?kimq3JUr;UMQ@0?h52gupvG=~(5AVdP(2(%*sL8!#K1-L$9B7MrWGdt(h&whR@vz~0oEHF8u3U1Q zdGdaIytJj4x@eF*E+^zgi{nPCA8tkjN}UoR8WhDzM3-zLqx0z?2tTdDKyENM={fp8VC@3Dt`AiK$;K#H$K2{08mrHG%jgEOLX3MCsG>afZm_0mLPS4jmYUJp~Dm! z5AUe_vEaOAT3zWdwl#cLvqwd1^lwW?gt7(92wEsOE6c#<0}{szFV4(uO70?3>=((! zQr}1{J?Wx2ZmjxYL_8OB*m&mimfojzYn~PiJ2g8R&ZRx-i^yF#sdhEWXAUIZ@J?T$ zs3PgT2<&Ki>Bob_n(@S>kUIvE+nY~ti9~6j;O9VAG#{oZ!DZCW)}i6iA!Tgsyz+hC z1VVyvbQ_nwgdZSEP=U4d#U`2*`e~d4y8uM4Bcmm%!jidaee#4WqN!ZnlBmbYpuaO! z!rU3`Kl2 z0O7PD&fQ|_b)Ub!g9^s;C2e>1i*2&?1$6yEn?~Y zI)-WIN8N(5s9;grW+J@K@I%g#?G&hzmlgV=L}ZA{f>3YCMx^P{u@c5Z;U1qmdk#)L zvX6z1!sL>+@vxO8qVn#k3YxYi?8ggV){?Rn@j$+Fd4-QkuH1@)j#3-=f82GZ!nl~{ zzZ(?kO`ANttVeHSo%xmH!NmNZECh*{s!-8S>ALoe5xOPs>|P5BbUmP@rlV8`d(c=7 zypcpLaI*FM^;GM%@q`GAb8kO`$oE|R48yn)?p(c1t>5;Wwn5r6ck&uw4}TnT80jI`IS~J%q8CpaVgIze<8IykSpVBg8~E! zW_tGqB;GO47r_er05y+Kwrcn{VLxL*1;HMv@*sd}MB6DH4zaP~u4Y;>@Nw7?F8S?c zfVIY(^ntnGgWlD|idzGz$Y+Oh(Ra=&VIf4!K2W*a)(%5%78s}8qxOknAGtDAq+HMO zM+Nu;0OgQRn36 zA@~a8`uVQ~v9?d!BxnsVaB-z-djypO44BjQAmg7&eVoaew|~)wH$SgefJ2$7_RiY+ z_7ACGoFM6Lhvho+eUG@pU&0X(Uy(*j;9pr?ET?FHTXadlfXC|MReZoU5>AG`mTM<% zc~*I@E*u0|hwVTdFA~4^b2VT7_~}~tCueNY{de3og=ASFQ`)0dhC2~Ne<}}Rc?ptA zi}+bQE%N9o*hpSUMH)9xt%Zlz&^p&5=cW}{m#f85iVX64^{!(vhClT<I)+c)RuiyrZqIw4v`z%YK&;_Fh4_+0B?qAGxMfAM`LzG_bjD>ib4;KGT4_1I>sxvL&&qp40ajgQOqIE^9=Az4w#ymo)bW-Vg{T!n=l&|nR_ zw+wcH|FxUH63)~{M;goHepmD{Fe?W9sO|eJP9L$G<{e_7FxxuXQ+)(Z^@;X8I1=%k zTK$gbHA1^4W<`q~ubQ0M_C^CA5#Z&*nGc(T?4Y_2jLu&FJDQYpCSiRny->$+nC9Jl z?avTW`ZXYT51%SrEq!}dXNM&!pM6nmL^lce=%S7{_TS)ckN8;{p*LT~LMgmlE~dpL zEBQy-jDj%cSK6N3)|CCR0LQ$N6iDM~+-1Oz|LAdkip(VZcO`gqCuJ+(Mm{m6@P%_; zBtF|MMVMP;E`5NJ{&@4j^JE5j&}(Jq{lCGL(P^#uqvbD`2)FVyfNgy|pvT!XY;02Z zZWbgGsvi6#!*$Zxwd{Xk6_M{+^yV_K@%_SAW(x)Lg|*AuG-%g2#GQYk8F?W&8|2dU z;00ppzrQnnYXnT`(S%_qF2#QNz&@Y$zcq+O8p>Gto2&4z8(^#cY?DuQwBQP4Fe?qUK_-yh4xT{8O@gb`uh` z>Q%jrgPAnANn4_)->n;w{Mei#J)F+`12&+-MLKSRzF6bL3;4O~oy~v7 zL0K-=m?>>(^qDCgvFRLBI@`04EGdTxe5}xBg#7#Wb!aUED;?5BLDEvZ@tai4*Rh8& z4V)cOr}DJ0&(FjWH%50Y+&=WtB42^eEVsmaHG)Il#j265oK&Bot(+-IIn`6InmuE# z;)qXs+X{fSb8^rYb#46X5?KCzH9X0>ppBQi(aKS--;4yA%0N|D<#8RZlOS(8n26=u zv~y;KC>`ypW=aqj`&x9 z0Zm>NKp}hPJu1+QDo(_U(Gt0SZ`IJWnp%QK`pye>Bm!w{sG>;VU^2 z4lZhV1}tCE8(?zu#j99|l3-qRBcz3bG+DlyxPGB$^6B^ssc_qYQ6lG0q~EAI?1$?( zahfn%etVvuKwB7R=>JDQluP97nLDM6*5;b0Ox#b{4nIgZA*+?IvyDN{K9WGnlA=Ju z+)6hjr}{;GxQQIDr3*lf32lRp{nHP8uiz^Fa|K+dUc@wD4Kf5RPxVkUZFCdtZH{+=c$AC)G2T-Qn@BPbr zZigIhKhKrVYy`!Mlc#HVr=CURVrhUjExhI~gZ%a=WM9BwvnN?=z!_ZQ$(sP?X;2Jy zyI$}H^^SvH2tf6+Uk$pJww@ngzPp856-l9g6WtW+%Yf>N^A}->#1W2n=WJ%sZ0<){Z&#% z^Kzl$>Km)sIxKLFjtc;}bZeoaZSpL4>`jCmAeRM-NP9sQ&-mi@p0j7Iq>1n&z@8?M z%dM7K^SgE5z)@i5w#rLE4+8%|^J`a6wYr`3BlvdD>7xW?Dd>`0HC0o{w7r_ot~h*G z2gI7Y!AUZ6YN+z$=GNzns@Tu7BxgAb3MBha30-ZG7a%rckU5}y{df`lj@^+34kr5> z988PPbWYdHye~=?>uZ4N&MN@4RBLk_?9W*b$}jqt0j%>yO9QOV(*!#cX~=wRdVL&S zhPQ{${0CGU-rfdS&b@u|IK{hV2Z=(*B2d0?&jwWfT=?Gk`4T9TfMQ)CfNgpLQa#>Q z%6A$w#QNc&qOtrHAbqY>J782@!X{9Y@N(HMSr;PP^;0DlJNxfC`oMB%Ocg zC*hnEsF|p*=CVe^dT)>BTL0yff)uo!U<+_2o3p)CE8quU1JI(=6)9$KxVdJYD*S*~ zzNeSkzFIQyqK}578+qq6X8rrRdgX z4k&R=AGex~a)MoB0pK&|yA<(*J#P&tR?ImBVD)ZTA4VH5L5DxXe<-*s`Aox%H1{-^Qa`kG_DGXD%QX-;l1#&#IVQP6>kir ztO@~ZvJDPnTvKt>fc*(j$W^)JhWk{4kWwbpFIXzuPt2V%M4H19-i5Gn*6(D`4_c1+ zYoI1@yT^~9JF~t>2eVM6p=GP3b*;daJpQOhAMNO|LKnwE2B5n8y9mf;q=)-L_FfD0 z<}YIRBO{k)6AHAn8iG>pYT+3bJ7jvP9}LSMR1nZW$5HR%PD1rFz z{4XE^Vmi-QX#?|Farz=CYS_8!%$E#G%4j2+;Avz|9QBj|YIExYk?y-1(j}0h{$$MnC_*F0U2*ExSi1ZCb_S9aV zTgyGP0Cl=m`emxM4Qih1E{`J{4oJo8K}WnH`@js^pR7Z-vTBK5F5JIFCDN}7pU^_nV>NTz@2$|Kcc5o+L&^Db_AQ);F?)X5BF*QJRCdLI-a%gW z++DZM)x=6*fNrSaUA&hf&CUqC$F*y^CJC-MAm9gd*5#^mh;-dR1?a&<3-hp3@}XN! z&8dcwo6=MQua%0KFvYbi>O{j)RrbDQo3S*y!oEJ~2=}^-v%zn~@hnmKGOvX6JLr;>DNC3)={8OM9n5Zs*(DlS*|%JTniJX2Uav7sOFT0vdIiUOC5pEtY?EF)@Fh9pCfD%N zXskZ8b^ldI{HHj{-l?iWo@IW6Nr`hAS>f8S*8FGc*gmcK^f2JS+>I&r#Gcewy=-JM zv0*w<5qBa6UQB@`esOG*4*t@7c9AkrTpM`v=eY?cO#z17H9B%Xy4m!}LhW}*iZ27w1?HrevgB1SZ1q2X$mm@FK@Qt7o z!s~Lio^IRdwzyvQ80{5iYeTV@mAo=2o5>KepRH0d{*Szlg~n%w2)S5v2|K8}pj;c{ zoDRLvYJO1@?x-=mq+LVhD{l-1-Dw4`7M?3@+ z`fu7?1#9W++6Y46N=H0+bD|CJH~q*CdEBm8D##VS7`cXy4~+x=ZC17rJeBh zI~qW^&FU`+e!{AKO3(>z5Ghh14bUT$=4B>@DVm(cj* zSLA*j!?z!=SLuVvAPh_EFKx}JE8T8;Gx)LH^H136=#Jn3Bo*@?=S`5M{WJPY&~ODs z+^V57DhJ2kD^Z|&;H}eoN~sxS8~cN5u1eW{t&y{!ouH`%p4(yDZaqw$%dlm4A0f0| z8H}XZFDs?3QuqI^PEy}T;r!5+QpfKEt&V|D)Z*xoJ?XXZ+k!sU2X!rcTF4tg8vWPM zr-JE>iu9DZK`#R5gQO{nyGDALY!l@M&eZsc*j*H~l4lD)8S?R*nrdxn?ELUR4kxK? zH(t9IM~^mfPs9WxR>J{agadQg@N6%=tUQ8Bn++TC|Hbqn*q;WydeNIS@gt|3j!P`w zxCKoeKQ*WBlF%l4-apIhERKl(hXS1vVk$U?Wifi)&lL6vF@bmFXmQEe{=$iG)Zt*l z0df@_)B-P_^K2P7h=>OIQ6f0Q-E@|M?$Z5n^oN>2_sBCpN>q(LnqUoef{tm^5^L$# z{<SL zKmH78cHX`4cBKIY8u1x*lwrgP^fJ%E&&AmHrRY7^hH*=2OA9K?!+|~Aeia=nAA`5~ z#zI=h#I>@FXaGk(n)0uqelNY;A5I9obE~OjsuW!%^NxK*52CfBPWYuw--v<1v|B>h z8R=#$TS-Pt3?d@P+xqmYpL4oB8- z>w99}%xqy9W!A^ODfLq8iA@z}10u?o#nG#MXumSaybi(S{`wIM z&nE3n2gWWMu93EvtofWzvG2{v;$ysuw^8q?3n}y=pB1vUr5gi++PjiyBH3jzKBRny zSO~O++1ZLdy7v7VzS&$yY;^Z7*j_#BI`PK`dAzJa9G1{9ahPqPi1C}ti+L)WHii*= z+RZ^+at-tlatc4|akPa&9H;%gn9aS`X_kfb>n>#NTyUVM6m4NCIfLm(28>qaYv7}t zn`M;XcONtXoa3#u3{L-ytd_&g z2mO$8CnE?460w#eSm|smlnNwFHM;A&IxSKLzVkV7nNVqZ*A`)eI{Nbg6WxsarAFuc=FFf1z|%#eTvBgUhY}N zsCT>`_YO>14i^vFX0KXbARLItzT{TeD%N~=ovGtZ6j{>PxkuYlHNTe0!u>rgw#?td z{)n=QrGvgCDE6BUem$Rh(1y!$@(Bn!k3E0|>PQ(8O==zN`?yBhAqlWyq+c%+h?p^- zE&OtLind}^_=>pbhxOgOIC0q9{cLK6p6*eg_|S+p9$W~_u4wzx@N?$QmFg2S)m~^R znni$X{U*!lHgdS@fI;|Owl=9Gwi?dr0m#>yL<8<}bLW_Kpl| zSGesADX&n?qmHC`2GyIev^hi~ka}ISZ^Y4w-yUzyPxaJB0mm%ww^>if3<;P^U+L5=s+cifT-ct*;!dOOk#SOZNv@a^J|DrS3YtSn8EEAlabX1NV3RfHwZn_41Xa z4;$taa6JJR()-FQ<#0G~WlML<l5I+IPnqDpW(PP>hRcQ+S2zU?tbG^(y z1K_?1R){jF;OKGw0WYjnm>aPxnmr5?bP?^B-|Fv`TT4ecH3O`Z3`X_r;vgFn>t1tE zGE6W2PODPKUj+@a%3lB;lS?srE5lp(tZ;uvzrPb){f~n7v_^z! z=16!Vdm!Q0q#?jy0qY%#0d^J8D9o)A;Rj!~j%u>KPs-tB08{4s1ry9VS>gW~5o^L; z7vyjmfXDGRVFa@-mis2!a$GI@9kE*pe3y_C3-$iVGUTQzZE+%>vT0=r|2%xMDBC@>WlkGU4CjoWs@D(rZ zS1NB#e69fvI^O#5r$Hj;bhHPEE4)4q5*t5Gyjzyc{)o459VkEhJ$%hJUC&67k z7gdo`Q*Jm3R&?ueqBezPTa}OI9wqcc;FRTcfVXob^z|dNIB0hMkHV26$zA%YgR$sM zTKM61S}#wJ#u+0UDE3N+U*~Tz1nnV;W<8Akz&6M7-6mIF(Pq`wJ1A%loYL( zIS;&2((xbyL7zoyaY2Sa%BBYBxo6Aa*53`~e@|RA`MP+?iI4KZ+y4EU&I zS_|(#*&j2hxpELa3r0O7ok&5!ijRiRu9i-_3cdnydZU9Mp6Y);skv%!$~`i-J7e-g zj@EoHf+gtcrKf;tY5`4iLnWSHa)9brUM$XmEzG3T0BXTG_+0}p7uGLs^(uYh0j$;~ zT1&~S%_Y5VImvf1EkD7vP-@F%hRlBe{a@T!SW(4WEQd1!O47*Crf@u-TS==48iR5x z!*`Ul4AJI^vIVaN3u5UifXBX{fJ@z>4Q2#1?jpcdLocwymBgKrZ+^Cb@QuIxl58B* zD{t-W3;M;{MGHm_@&n(6A-AsD;JO#>J3o4ru{hy;k;8?=rkp0tadEEcHNECoTI(W31`El-CI0eWQ zWD4&2ehvACkLCjG`82T`L^cNNC4Oo2IH(T4e;C75IwkJ&`|ArqSKD}TX_-E*eeiU& ziUuAC)A?d>-;@9Jcmsdca>@q1`6vzo^3etEH%1Gco&gvC{;Y-qyJ$Re`#A!5Kd((5 z6sSiKnA20uPX0**Mu&6tNgTunUR1sodoNmDst1&wz8v7AG3=^huypTi`S7+GrO$D6 z)0Ja-y5r?QQ+&jVQBjitIZ`z2Ia}iXWf#=#>nU+ zL29$)Q>f#o<#4deo!Kuo@WX{G(`eLaf%(_Nc}E`q=BXHMS(Os{!g%(|&tTDIczE_# z5y%wjCp9S?&*8bS3imJi_9_COC)-_;6D9~8Om@?U2PGQpM^7LKG7Q~(AoSRgP#tZfVDF_zr;_U*!F9qsbVQ@un9O2>T4M5tr0B~~v_@a=w^8h510a#=L z;8+9zhV}57uajb+9DbZm1G`_NqOuKN`bQ2fw9A*v*Kdb_E-SA`?2 z)OFIY-%uD`JZUZg?D4lHtNegKgWr!1m%hOpu5`R+bZ2K#&)*R-7ElKYo0$0xYxIL8 zLg%u|4oZixz}ILB-@aS4=XOe)z!VL6@?dX{LW^YCPjKtyw44)xT=H;h(fmFr>R?p%r5*}W z7_bo0drVDRq9V9QL4_!dazughK6t}tVVvBq={T0+3(1zmb>f+|;{D%J?^xnZcqio5 z%H?@L+L-CIdO=x6QrALL9&PwvjrZi5NS)1e<*%V8ntw~S2PF}zH}B5f_DHyB=I3m@ z_;^TpN|sesCU}qxQ`~jIwF>#8wGvxg9kdMT$}us8BM&W>OzZ|ry2BB)+UY*_yH+&L zl_=Jy9BNzIZs}D~Yv_H%HPjVGNV=xT3xpIW!Np1F^G#9Y8X zl)c_V1(DhYu-v%H3-m&n%M_}}c{E5Wu+6*>R24gW_A7$(U=9D|H$r;;;@o zJ)c_CmVf9l*;4SyJ}E{+4)}^C>SIJ*_bul7OJ{v&0oO>jG(5xzYP0$I%*YH|Mwu#r zubNW5VZ9^X#Phw<;?=^G?Kg&C)^x1FVsKGZ*n+{C1znj~YHSP?6PS(k5e9qGvS4X* z=1kA_27(iV65a(i+Sicmd@Vzf^2@*Wed-`aYQ~em=-h%Pu`gHfz)&@$hpr<&mNO={ zl^kI0HP0wTbbh{d(>5a#;zT2_=ppef?;D4;2^}&kZjB^yl%LBJ;|> zkLc)JEg*5rpQ;_)w?PnKynWtv!@ z>}+am{@(g$KKM+e$ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Configs/AppInfo.xcconfig b/packages/emoji_picker_flutter/example/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 00000000..61c39aa3 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = example + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.fintasys.example + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2022 com.fintasys. All rights reserved. diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Configs/Debug.xcconfig b/packages/emoji_picker_flutter/example/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 00000000..36b0fd94 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Configs/Release.xcconfig b/packages/emoji_picker_flutter/example/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 00000000..dff4f495 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Configs/Warnings.xcconfig b/packages/emoji_picker_flutter/example/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 00000000..42bcbf47 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/packages/emoji_picker_flutter/example/macos/Runner/DebugProfile.entitlements b/packages/emoji_picker_flutter/example/macos/Runner/DebugProfile.entitlements new file mode 100644 index 00000000..dddb8a30 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Info.plist b/packages/emoji_picker_flutter/example/macos/Runner/Info.plist new file mode 100644 index 00000000..4789daa6 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/packages/emoji_picker_flutter/example/macos/Runner/MainFlutterWindow.swift b/packages/emoji_picker_flutter/example/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 00000000..2722837e --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController.init() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/packages/emoji_picker_flutter/example/macos/Runner/Release.entitlements b/packages/emoji_picker_flutter/example/macos/Runner/Release.entitlements new file mode 100644 index 00000000..852fa1a4 --- /dev/null +++ b/packages/emoji_picker_flutter/example/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/packages/emoji_picker_flutter/example/pubspec.yaml b/packages/emoji_picker_flutter/example/pubspec.yaml new file mode 100644 index 00000000..ba3991e4 --- /dev/null +++ b/packages/emoji_picker_flutter/example/pubspec.yaml @@ -0,0 +1,21 @@ +name: emoji_picker_flutter_example +description: Demonstrates how to use the emoji_picker_flutter plugin. +publish_to: "none" + +environment: + sdk: ">=2.12.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + characters: ^1.1.0 + + emoji_picker_flutter: + path: ../ + +dependency_overrides: + emoji_picker_flutter: + path: ../ + +flutter: + uses-material-design: true diff --git a/packages/emoji_picker_flutter/ios/.gitignore b/packages/emoji_picker_flutter/ios/.gitignore new file mode 100644 index 00000000..0c885071 --- /dev/null +++ b/packages/emoji_picker_flutter/ios/.gitignore @@ -0,0 +1,38 @@ +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +.DS_Store +*.swp +profile + +DerivedData/ +build/ +GeneratedPluginRegistrant.h +GeneratedPluginRegistrant.m + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +/Flutter/Generated.xcconfig +/Flutter/ephemeral/ +/Flutter/flutter_export_environment.sh \ No newline at end of file diff --git a/packages/emoji_picker_flutter/ios/Assets/.gitkeep b/packages/emoji_picker_flutter/ios/Assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/packages/emoji_picker_flutter/ios/Classes/EmojiPickerFlutterPlugin.h b/packages/emoji_picker_flutter/ios/Classes/EmojiPickerFlutterPlugin.h new file mode 100644 index 00000000..0f357d25 --- /dev/null +++ b/packages/emoji_picker_flutter/ios/Classes/EmojiPickerFlutterPlugin.h @@ -0,0 +1,4 @@ +#import + +@interface EmojiPickerFlutterPlugin : NSObject +@end diff --git a/packages/emoji_picker_flutter/ios/Classes/EmojiPickerFlutterPlugin.m b/packages/emoji_picker_flutter/ios/Classes/EmojiPickerFlutterPlugin.m new file mode 100644 index 00000000..907cb7b8 --- /dev/null +++ b/packages/emoji_picker_flutter/ios/Classes/EmojiPickerFlutterPlugin.m @@ -0,0 +1,15 @@ +#import "EmojiPickerFlutterPlugin.h" +#if __has_include() +#import +#else +// Support project import fallback if the generated compatibility header +// is not copied when this plugin is created as a library. +// https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 +#import "emoji_picker_flutter-Swift.h" +#endif + +@implementation EmojiPickerFlutterPlugin ++ (void)registerWithRegistrar:(NSObject*)registrar { + [SwiftEmojiPickerFlutterPlugin registerWithRegistrar:registrar]; +} +@end diff --git a/packages/emoji_picker_flutter/ios/Classes/SwiftEmojiPickerFlutterPlugin.swift b/packages/emoji_picker_flutter/ios/Classes/SwiftEmojiPickerFlutterPlugin.swift new file mode 100644 index 00000000..5ddf90cd --- /dev/null +++ b/packages/emoji_picker_flutter/ios/Classes/SwiftEmojiPickerFlutterPlugin.swift @@ -0,0 +1,14 @@ +import Flutter +import UIKit + +public class SwiftEmojiPickerFlutterPlugin: NSObject, FlutterPlugin { + public static func register(with registrar: FlutterPluginRegistrar) { + let channel = FlutterMethodChannel(name: "emoji_picker_flutter", binaryMessenger: registrar.messenger()) + let instance = SwiftEmojiPickerFlutterPlugin() + registrar.addMethodCallDelegate(instance, channel: channel) + } + + public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { + result("iOS " + UIDevice.current.systemVersion) + } +} diff --git a/packages/emoji_picker_flutter/ios/emoji_picker_flutter.podspec b/packages/emoji_picker_flutter/ios/emoji_picker_flutter.podspec new file mode 100644 index 00000000..a9a0d011 --- /dev/null +++ b/packages/emoji_picker_flutter/ios/emoji_picker_flutter.podspec @@ -0,0 +1,23 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint emoji_picker_flutter.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'emoji_picker_flutter' + s.version = '0.0.1' + s.summary = 'A new flutter plugin project.' + s.description = <<-DESC +A new flutter plugin project. + DESC + s.homepage = 'http://example.com' + s.license = { :file => '../LICENSE' } + s.author = { 'Your Company' => 'email@example.com' } + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.dependency 'Flutter' + s.platform = :ios, '9.0' + + # Flutter.framework does not contain a i386 slice. + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } + s.swift_version = '5.0' +end diff --git a/packages/emoji_picker_flutter/lib/emoji_picker_flutter.dart b/packages/emoji_picker_flutter/lib/emoji_picker_flutter.dart new file mode 100644 index 00000000..0e5a86e6 --- /dev/null +++ b/packages/emoji_picker_flutter/lib/emoji_picker_flutter.dart @@ -0,0 +1,9 @@ +library emoji_picker_flutter; + +export 'package:emoji_picker_flutter/src/category_icons.dart'; +export 'package:emoji_picker_flutter/src/config.dart'; +export 'package:emoji_picker_flutter/src/emoji.dart'; +export 'package:emoji_picker_flutter/src/emoji_picker.dart'; +export 'package:emoji_picker_flutter/src/emoji_picker_builder.dart'; +export 'package:emoji_picker_flutter/src/emoji_picker_utils.dart'; +export 'package:emoji_picker_flutter/src/emoji_view_state.dart'; diff --git a/packages/emoji_picker_flutter/lib/src/category_emoji.dart b/packages/emoji_picker_flutter/lib/src/category_emoji.dart new file mode 100644 index 00000000..860205cd --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/category_emoji.dart @@ -0,0 +1,13 @@ +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; + +/// Container for Category and their emoji +class CategoryEmoji { + /// Constructor + CategoryEmoji(this.category, this.emoji); + + /// Category instance + final Category category; + + /// List of emoji of this category + List emoji; +} diff --git a/packages/emoji_picker_flutter/lib/src/category_icon.dart b/packages/emoji_picker_flutter/lib/src/category_icon.dart new file mode 100644 index 00000000..18e4783b --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/category_icon.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; + +/// Class that defines the icon representing a [Category] +class CategoryIcon { + /// Icon of Category + const CategoryIcon({ + required this.icon, + this.color = const Color.fromRGBO(211, 211, 211, 1), + this.selectedColor = const Color.fromRGBO(178, 178, 178, 1), + }); + + /// The icon to represent the category + final IconData icon; + + /// The default color of the icon + final Color color; + + /// The color of the icon once the category is selected + final Color selectedColor; +} diff --git a/packages/emoji_picker_flutter/lib/src/category_icons.dart b/packages/emoji_picker_flutter/lib/src/category_icons.dart new file mode 100644 index 00000000..852eafbc --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/category_icons.dart @@ -0,0 +1,49 @@ +import 'package:emoji_picker_flutter/src/category_icon.dart'; +import 'package:flutter/material.dart'; + +/// Class used to define all the [CategoryIcon] shown for each [Category] +/// +/// This allows the keyboard to be personalized by changing icons shown. +/// If a [CategoryIcon] is set as null or not defined during initialization, +/// the default icons will be used instead +class CategoryIcons { + /// Constructor + const CategoryIcons({ + this.recentIcon = Icons.access_time, + this.smileyIcon = Icons.tag_faces, + this.animalIcon = Icons.pets, + this.foodIcon = Icons.fastfood, + this.activityIcon = Icons.directions_run, + this.travelIcon = Icons.location_city, + this.objectIcon = Icons.lightbulb_outline, + this.symbolIcon = Icons.emoji_symbols, + this.flagIcon = Icons.flag, + }); + + /// Icon for [Category.RECENT] + final IconData recentIcon; + + /// Icon for [Category.SMILEYS] + final IconData smileyIcon; + + /// Icon for [Category.ANIMALS] + final IconData animalIcon; + + /// Icon for [Category.FOODS] + final IconData foodIcon; + + /// Icon for [Category.ACTIVITIES] + final IconData activityIcon; + + /// Icon for [Category.TRAVEL] + final IconData travelIcon; + + /// Icon for [Category.OBJECTS] + final IconData objectIcon; + + /// Icon for [Category.SYMBOLS] + final IconData symbolIcon; + + /// Icon for [Category.FLAGS] + final IconData flagIcon; +} diff --git a/packages/emoji_picker_flutter/lib/src/config.dart b/packages/emoji_picker_flutter/lib/src/config.dart new file mode 100644 index 00000000..985c604f --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/config.dart @@ -0,0 +1,192 @@ +import 'dart:math'; + +import 'package:emoji_picker_flutter/src/category_icons.dart'; +import 'package:emoji_picker_flutter/src/emoji_picker.dart'; +import 'package:flutter/material.dart'; + +/// Default Widget if no recent is available +const DefaultNoRecentsWidget = Text( + 'No Recents', + style: TextStyle(fontSize: 20, color: Colors.black26), + textAlign: TextAlign.center, +); + +/// Config for customizations +class Config { + /// Constructor + const Config( + {this.columns = 7, + this.emojiSizeMax = 32.0, + this.verticalSpacing = 0, + this.horizontalSpacing = 0, + this.gridPadding = EdgeInsets.zero, + this.initCategory = Category.RECENT, + this.bgColor = const Color(0xFFEBEFF2), + this.indicatorColor = Colors.blue, + this.iconColor = Colors.grey, + this.iconColorSelected = Colors.blue, + this.progressIndicatorColor = Colors.blue, + this.backspaceColor = Colors.blue, + this.skinToneDialogBgColor = Colors.white, + this.skinToneIndicatorColor = Colors.grey, + this.enableSkinTones = true, + this.showRecentsTab = true, + this.recentsLimit = 28, + this.replaceEmojiOnLimitExceed = false, + this.noRecents = DefaultNoRecentsWidget, + this.tabIndicatorAnimDuration = kTabScrollDuration, + this.categoryIcons = const CategoryIcons(), + this.buttonMode = ButtonMode.MATERIAL}); + + /// Number of emojis per row + final int columns; + + /// Width and height the emoji will be maximal displayed + /// Can be smaller due to screen size and amount of columns + final double emojiSizeMax; + + /// Verical spacing between emojis + final double verticalSpacing; + + /// Horizontal spacing between emojis + final double horizontalSpacing; + + /// The initial [Category] that will be selected + /// This [Category] will have its button in the bottombar darkened + final Category initCategory; + + /// The background color of the Widget + final Color bgColor; + + /// The color of the category indicator + final Color indicatorColor; + + /// The color of the category icons + final Color iconColor; + + /// The color of the category icon when selected + final Color iconColorSelected; + + /// The color of the loading indicator during initalization + final Color progressIndicatorColor; + + /// The color of the backspace icon button + final Color backspaceColor; + + /// The background color of the skin tone dialog + final Color skinToneDialogBgColor; + + /// Color of the small triangle next to multiple skin tone emoji + final Color skinToneIndicatorColor; + + /// Enable feature to select a skin tone of certain emoji's + final bool enableSkinTones; + + /// Show extra tab with recently used emoji + final bool showRecentsTab; + + /// Limit of recently used emoji that will be saved + final int recentsLimit; + + /// A widget (usually [Text]) to be displayed if no recent emojis to display + final Widget noRecents; + + /// Duration of tab indicator to animate to next category + final Duration tabIndicatorAnimDuration; + + /// Determines the icon to display for each [Category] + final CategoryIcons categoryIcons; + + /// Change between Material and Cupertino button style + final ButtonMode buttonMode; + + /// The padding of GridView, default is [EdgeInsets.zero] + final EdgeInsets gridPadding; + + /// Replace latest emoji on recents list on limit exceed + final bool replaceEmojiOnLimitExceed; + + /// Get Emoji size based on properties and screen width + double getEmojiSize(double width) { + final maxSize = width / columns; + return min(maxSize, emojiSizeMax); + } + + /// Returns the icon for the category + IconData getIconForCategory(Category category) { + switch (category) { + case Category.RECENT: + return categoryIcons.recentIcon; + case Category.SMILEYS: + return categoryIcons.smileyIcon; + case Category.ANIMALS: + return categoryIcons.animalIcon; + case Category.FOODS: + return categoryIcons.foodIcon; + case Category.TRAVEL: + return categoryIcons.travelIcon; + case Category.ACTIVITIES: + return categoryIcons.activityIcon; + case Category.OBJECTS: + return categoryIcons.objectIcon; + case Category.SYMBOLS: + return categoryIcons.symbolIcon; + case Category.FLAGS: + return categoryIcons.flagIcon; + default: + throw Exception('Unsupported Category'); + } + } + + @override + bool operator ==(other) { + return (other is Config) && + other.columns == columns && + other.emojiSizeMax == emojiSizeMax && + other.verticalSpacing == verticalSpacing && + other.horizontalSpacing == horizontalSpacing && + other.initCategory == initCategory && + other.bgColor == bgColor && + other.indicatorColor == indicatorColor && + other.iconColor == iconColor && + other.iconColorSelected == iconColorSelected && + other.progressIndicatorColor == progressIndicatorColor && + other.backspaceColor == backspaceColor && + other.skinToneDialogBgColor == skinToneDialogBgColor && + other.skinToneIndicatorColor == skinToneIndicatorColor && + other.enableSkinTones == enableSkinTones && + other.showRecentsTab == showRecentsTab && + other.recentsLimit == recentsLimit && + other.noRecents == noRecents && + other.tabIndicatorAnimDuration == tabIndicatorAnimDuration && + other.categoryIcons == categoryIcons && + other.buttonMode == buttonMode && + other.gridPadding == gridPadding && + other.replaceEmojiOnLimitExceed == replaceEmojiOnLimitExceed; + } + + @override + int get hashCode => + columns.hashCode ^ + emojiSizeMax.hashCode ^ + verticalSpacing.hashCode ^ + horizontalSpacing.hashCode ^ + initCategory.hashCode ^ + bgColor.hashCode ^ + indicatorColor.hashCode ^ + iconColor.hashCode ^ + iconColorSelected.hashCode ^ + progressIndicatorColor.hashCode ^ + backspaceColor.hashCode ^ + skinToneDialogBgColor.hashCode ^ + skinToneIndicatorColor.hashCode ^ + enableSkinTones.hashCode ^ + showRecentsTab.hashCode ^ + recentsLimit.hashCode ^ + noRecents.hashCode ^ + tabIndicatorAnimDuration.hashCode ^ + categoryIcons.hashCode ^ + buttonMode.hashCode ^ + gridPadding.hashCode ^ + replaceEmojiOnLimitExceed.hashCode; +} diff --git a/packages/emoji_picker_flutter/lib/src/default_emoji_picker_view.dart b/packages/emoji_picker_flutter/lib/src/default_emoji_picker_view.dart new file mode 100644 index 00000000..17564aa4 --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/default_emoji_picker_view.dart @@ -0,0 +1,375 @@ +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:emoji_picker_flutter/src/category_emoji.dart'; +import 'package:emoji_picker_flutter/src/emoji_picker_internal_utils.dart'; +import 'package:emoji_picker_flutter/src/emoji_skin_tones.dart'; +import 'package:emoji_picker_flutter/src/triangle_shape.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +/// Default EmojiPicker Implementation +class DefaultEmojiPickerView extends EmojiPickerBuilder { + /// Constructor + DefaultEmojiPickerView(Config config, EmojiViewState state) + : super(config, state); + + @override + _DefaultEmojiPickerViewState createState() => _DefaultEmojiPickerViewState(); +} + +class _DefaultEmojiPickerViewState extends State + with SingleTickerProviderStateMixin { + PageController? _pageController; + TabController? _tabController; + OverlayEntry? _overlay; + late final _scrollController = ScrollController(); + late final _utils = EmojiPickerInternalUtils(); + final int _skinToneCount = 6; + final double tabBarHeight = 46; + + @override + void initState() { + var initCategory = widget.state.categoryEmoji.indexWhere( + (element) => element.category == widget.config.initCategory); + if (initCategory == -1) { + initCategory = 0; + } + _tabController = TabController( + initialIndex: initCategory, + length: widget.state.categoryEmoji.length, + vsync: this); + _pageController = PageController(initialPage: initCategory) + ..addListener(_closeSkinToneDialog); + _scrollController.addListener(_closeSkinToneDialog); + super.initState(); + } + + @override + void dispose() { + _closeSkinToneDialog(); + super.dispose(); + } + + void _closeSkinToneDialog() { + _overlay?.remove(); + _overlay = null; + } + + void _openSkinToneDialog( + Emoji emoji, + double emojiSize, + CategoryEmoji categoryEmoji, + int index, + ) { + _overlay = _buildSkinToneOverlay( + emoji, + emojiSize, + categoryEmoji, + index, + ); + Overlay.of(context)?.insert(_overlay!); + } + + Widget _buildBackspaceButton() { + if (widget.state.onBackspacePressed != null) { + return Material( + type: MaterialType.transparency, + child: IconButton( + padding: const EdgeInsets.only(bottom: 2), + icon: Icon( + Icons.backspace, + color: widget.config.backspaceColor, + ), + onPressed: () { + widget.state.onBackspacePressed!(); + }), + ); + } + return Container(); + } + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (context, constraints) { + final emojiSize = widget.config.getEmojiSize(constraints.maxWidth); + + return Container( + color: widget.config.bgColor, + child: Column( + children: [ + Row( + children: [ + Expanded( + child: SizedBox( + height: tabBarHeight, + child: TabBar( + labelColor: widget.config.iconColorSelected, + indicatorColor: widget.config.indicatorColor, + unselectedLabelColor: widget.config.iconColor, + controller: _tabController, + labelPadding: EdgeInsets.zero, + onTap: (index) { + _closeSkinToneDialog(); + _pageController!.jumpToPage(index); + }, + tabs: widget.state.categoryEmoji + .asMap() + .entries + .map((item) => + _buildCategory(item.key, item.value.category)) + .toList(), + ), + ), + ), + _buildBackspaceButton(), + ], + ), + Flexible( + child: PageView.builder( + itemCount: widget.state.categoryEmoji.length, + controller: _pageController, + onPageChanged: (index) { + _tabController!.animateTo( + index, + duration: widget.config.tabIndicatorAnimDuration, + ); + }, + itemBuilder: (context, index) => + _buildPage(emojiSize, widget.state.categoryEmoji[index]), + ), + ), + ], + ), + ); + }, + ); + } + + Widget _buildCategory(int index, Category category) { + return Tab( + icon: Icon( + widget.config.getIconForCategory(category), + ), + ); + } + + Widget _buildPage(double emojiSize, CategoryEmoji categoryEmoji) { + // Display notice if recent has no entries yet + if (categoryEmoji.category == Category.RECENT && + categoryEmoji.emoji.isEmpty) { + return _buildNoRecent(); + } + // Build page normally + return GestureDetector( + onTap: _closeSkinToneDialog, + child: GridView.count( + scrollDirection: Axis.vertical, + physics: const ScrollPhysics(), + controller: _scrollController, + shrinkWrap: true, + primary: false, + padding: widget.config.gridPadding, + crossAxisCount: widget.config.columns, + mainAxisSpacing: widget.config.verticalSpacing, + crossAxisSpacing: widget.config.horizontalSpacing, + children: categoryEmoji.emoji.asMap().entries.map((item) { + final index = item.key; + final emoji = item.value; + final onPressed = () { + _closeSkinToneDialog(); + widget.state.onEmojiSelected(categoryEmoji.category, emoji); + }; + + final onLongPressed = () { + if (!emoji.hasSkinTone || !widget.config.enableSkinTones) { + _closeSkinToneDialog(); + return; + } + _closeSkinToneDialog(); + _openSkinToneDialog(emoji, emojiSize, categoryEmoji, index); + }; + + return _buildButtonWidget( + onPressed: onPressed, + onLongPressed: onLongPressed, + child: _buildEmoji( + emojiSize, + categoryEmoji, + emoji, + widget.config.enableSkinTones, + ), + ); + }).toList(), + ), + ); + } + + /// Build and display Emoji centered of its parent + Widget _buildEmoji( + double emojiSize, + CategoryEmoji categoryEmoji, + Emoji emoji, + bool showSkinToneIndicator, + ) { + // FittedBox needed for display, font scale settings + return FittedBox( + fit: BoxFit.fill, + child: Stack(children: [ + emoji.hasSkinTone && showSkinToneIndicator + ? Positioned( + bottom: 0, + right: 0, + child: CustomPaint( + size: const Size(8, 8), + painter: TriangleShape(widget.config.skinToneIndicatorColor), + ), + ) + : Container(), + Text( + emoji.emoji, + textScaleFactor: 1.0, + style: TextStyle( + fontSize: emojiSize, + backgroundColor: Colors.transparent, + ), + ), + ]), + ); + } + + /// Build different Button based on ButtonMode + Widget _buildButtonWidget({ + required VoidCallback onPressed, + required VoidCallback onLongPressed, + required Widget child, + }) { + if (widget.config.buttonMode == ButtonMode.MATERIAL) { + return TextButton( + onPressed: onPressed, + onLongPress: onLongPressed, + child: child, + style: ButtonStyle( + padding: MaterialStateProperty.all(EdgeInsets.zero), + minimumSize: MaterialStateProperty.all(Size.zero), + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + ); + } + return GestureDetector( + onLongPress: onLongPressed, + child: CupertinoButton( + padding: EdgeInsets.zero, + onPressed: onPressed, + child: child, + ), + ); + } + + /// Build Widget for when no recent emoji are available + Widget _buildNoRecent() { + return Center( + child: widget.config.noRecents, + ); + } + + /// Overlay for SkinTone + OverlayEntry _buildSkinToneOverlay( + Emoji emoji, + double emojiSize, + CategoryEmoji categoryEmoji, + int index, + ) { + // Calculate position of emoji in the grid + final row = index ~/ widget.config.columns; + final column = index % widget.config.columns; + // Calculate position for skin tone dialog + final renderBox = context.findRenderObject() as RenderBox; + final offset = renderBox.localToGlobal(Offset.zero); + final emojiSpace = renderBox.size.width / widget.config.columns; + final topOffset = emojiSpace; + final leftOffset = _getLeftOffset(emojiSpace, column); + final left = offset.dx + column * emojiSpace + leftOffset; + final top = tabBarHeight + + offset.dy + + row * emojiSpace - + _scrollController.offset - + topOffset; + + // Generate other skintone options + final skinTonesEmoji = SkinTone.values + .map((skinTone) => _utils.applySkinTone(emoji, skinTone)) + .toList(); + + return OverlayEntry( + builder: (context) => Positioned( + left: left, + top: top, + child: Material( + elevation: 4.0, + child: Container( + padding: const EdgeInsets.symmetric(vertical: 4.0), + color: widget.config.skinToneDialogBgColor, + child: Row( + children: [ + _buildSkinToneEmoji( + categoryEmoji, emoji, emojiSpace, emojiSize), + _buildSkinToneEmoji( + categoryEmoji, skinTonesEmoji[0], emojiSpace, emojiSize), + _buildSkinToneEmoji( + categoryEmoji, skinTonesEmoji[1], emojiSpace, emojiSize), + _buildSkinToneEmoji( + categoryEmoji, skinTonesEmoji[2], emojiSpace, emojiSize), + _buildSkinToneEmoji( + categoryEmoji, skinTonesEmoji[3], emojiSpace, emojiSize), + _buildSkinToneEmoji( + categoryEmoji, skinTonesEmoji[4], emojiSpace, emojiSize), + ], + ), + ), + ), + ), + ); + } + + // Build Emoji inside skin tone dialog + Widget _buildSkinToneEmoji( + CategoryEmoji categoryEmoji, + Emoji emoji, + double width, + double emojiSize, + ) { + return SizedBox( + width: width, + height: width, + child: _buildButtonWidget( + onPressed: () { + widget.state.onEmojiSelected(categoryEmoji.category, emoji); + _closeSkinToneDialog(); + }, + onLongPressed: () {}, + child: _buildEmoji(emojiSize, categoryEmoji, emoji, false), + ), + ); + } + + // Calucates the offset from the middle of selected emoji to the left side + // of the skin tone dialog + // Case 1: Selected Emoji is close to left border and offset needs to be + // reduced + // Case 2: Selected Emoji is close to right border and offset needs to be + // larger than half of the whole width + // Case 3: Enough space to left and right border and offset can be half + // of whole width + double _getLeftOffset(double emojiWidth, int column) { + var remainingColumns = + widget.config.columns - (column + 1 + (_skinToneCount ~/ 2)); + if (column >= 0 && column < 3) { + return -1 * column * emojiWidth; + } else if (remainingColumns < 0) { + return -1 * + ((_skinToneCount ~/ 2 - 1) + -1 * remainingColumns) * + emojiWidth; + } + return -1 * ((_skinToneCount ~/ 2) * emojiWidth) + emojiWidth / 2; + } +} diff --git a/packages/emoji_picker_flutter/lib/src/emoji.dart b/packages/emoji_picker_flutter/lib/src/emoji.dart new file mode 100644 index 00000000..125db191 --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/emoji.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; + +/// A class to store data for each individual emoji +@immutable +class Emoji { + /// Emoji constructor + const Emoji(this.name, this.emoji, {this.hasSkinTone = false}); + + /// The name or description for this emoji + final String name; + + /// The unicode string for this emoji + /// + /// This is the string that should be displayed to view the emoji + final String emoji; + + /// Flag if emoji supports multiple skin tones + final bool hasSkinTone; + + @override + String toString() { + return 'Name: $name, Emoji: $emoji, HasSkinTone: $hasSkinTone'; + } + + /// Parse Emoji from json + static Emoji fromJson(Map json) { + return Emoji( + json['name'] as String, + json['emoji'] as String, + hasSkinTone: + json['hasSkinTone'] != null ? json['hasSkinTone'] as bool : false, + ); + } + + /// Encode Emoji to json + Map toJson() { + return { + 'name': name, + 'emoji': emoji, + 'hasSkinTone': hasSkinTone, + }; + } + + /// Copy method + Emoji copyWith({String? name, String? emoji, bool? hasSkinTone}) { + return Emoji( + name ?? this.name, + emoji ?? this.emoji, + hasSkinTone: hasSkinTone ?? this.hasSkinTone, + ); + } +} diff --git a/packages/emoji_picker_flutter/lib/src/emoji_lists.dart b/packages/emoji_picker_flutter/lib/src/emoji_lists.dart new file mode 100644 index 00000000..dac3fa3c --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/emoji_lists.dart @@ -0,0 +1,3409 @@ +// Copyright information +// File originally from https://github.com/JeffG05/emoji_picker + +/// Emoji Version +const int version = 2; + +/// Map of all possible emojis along with their names in [Category.SMILEYS] +final Map smileys = Map.fromIterables([ + 'Grinning Face', + 'Grinning Face With Big Eyes', + 'Grinning Face With Smiling Eyes', + 'Beaming Face With Smiling Eyes', + 'Grinning Squinting Face', + 'Grinning Face With Sweat', + 'Rolling on the Floor Laughing', + 'Face With Tears of Joy', + 'Slightly Smiling Face', + 'Upside-Down Face', + 'Winking Face', + 'Smiling Face With Smiling Eyes', + 'Smiling Face With Halo', + 'Smiling Face With Hearts', + 'Smiling Face With Heart-Eyes', + 'Star-Struck', + 'Face Blowing a Kiss', + 'Kissing Face', + 'Smiling Face', + 'Kissing Face With Closed Eyes', + 'Kissing Face With Smiling Eyes', + 'Face Savoring Food', + 'Face With Tongue', + 'Winking Face With Tongue', + 'Zany Face', + 'Squinting Face With Tongue', + 'Money-Mouth Face', + 'Hugging Face', + 'Face With Hand Over Mouth', + 'Shushing Face', + 'Thinking Face', + 'Zipper-Mouth Face', + 'Face With Raised Eyebrow', + 'Neutral Face', + 'Expressionless Face', + 'Face Without Mouth', + 'Smirking Face', + 'Unamused Face', + 'Face With Rolling Eyes', + 'Grimacing Face', + 'Lying Face', + 'Relieved Face', + 'Pensive Face', + 'Sleepy Face', + 'Drooling Face', + 'Sleeping Face', + 'Face With Medical Mask', + 'Face With Thermometer', + 'Face With Head-Bandage', + 'Nauseated Face', + 'Face Vomiting', + 'Sneezing Face', + 'Hot Face', + 'Cold Face', + 'Woozy Face', + 'Dizzy Face', + 'Exploding Head', + 'Cowboy Hat Face', + 'Partying Face', + 'Smiling Face With Sunglasses', + 'Nerd Face', + 'Face With Monocle', + 'Confused Face', + 'Worried Face', + 'Slightly Frowning Face', + 'Frowning Face', + 'Face With Open Mouth', + 'Hushed Face', + 'Astonished Face', + 'Flushed Face', + 'Pleading Face', + 'Frowning Face With Open Mouth', + 'Anguished Face', + 'Fearful Face', + 'Anxious Face With Sweat', + 'Sad but Relieved Face', + 'Crying Face', + 'Loudly Crying Face', + 'Face Screaming in Fear', + 'Confounded Face', + 'Persevering Face', + 'Disappointed Face', + 'Downcast Face With Sweat', + 'Weary Face', + 'Tired Face', + 'Face With Steam From Nose', + 'Pouting Face', + 'Angry Face', + 'Face With Symbols on Mouth', + 'Smiling Face With Horns', + 'Angry Face With Horns', + 'Skull', + 'Skull and Crossbones', + 'Pile of Poo', + 'Clown Face', + 'Ogre', + 'Goblin', + 'Ghost', + 'Alien', + 'Alien Monster', + 'Robot Face', + 'Grinning Cat Face', + 'Grinning Cat Face With Smiling Eyes', + 'Cat Face With Tears of Joy', + 'Smiling Cat Face With Heart-Eyes', + 'Cat Face With Wry Smile', + 'Kissing Cat Face', + 'Weary Cat Face', + 'Crying Cat Face', + 'Pouting Cat Face', + 'Kiss Mark', + 'Waving Hand', + 'Raised Back of Hand', + 'Hand With Fingers Splayed', + 'Raised Hand', + 'Vulcan Salute', + 'OK Hand', + 'Victory Hand', + 'Crossed Fingers', + 'Love-You Gesture', + 'Sign of the Horns', + 'Call Me Hand', + 'Backhand Index Pointing Left', + 'Backhand Index Pointing Right', + 'Backhand Index Pointing Up', + 'Middle Finger', + 'Backhand Index Pointing Down', + 'Index Pointing Up', + 'Thumbs Up', + 'Thumbs Down', + 'Raised Fist', + 'Oncoming Fist', + 'Left-Facing Fist', + 'Right-Facing Fist', + 'Clapping Hands', + 'Raising Hands', + 'Open Hands', + 'Palms Up Together', + 'Handshake', + 'Folded Hands', + 'Writing Hand', + 'Nail Polish', + 'Selfie', + 'Flexed Biceps', + 'Leg', + 'Foot', + 'Ear', + 'Nose', + 'Brain', + 'Tooth', + 'Bone', + 'Eyes', + 'Eye', + 'Tongue', + 'Mouth', + 'Baby', + 'Child', + 'Boy', + 'Girl', + 'Person', + 'Man', + 'Man: Beard', + 'Man: Blond Hair', + 'Man: Red Hair', + 'Man: Curly Hair', + 'Man: White Hair', + 'Man: Bald', + 'Woman', + 'Woman: Blond Hair', + 'Woman: Red Hair', + 'Woman: Curly Hair', + 'Woman: White Hair', + 'Woman: Bald', + 'Older Person', + 'Old Man', + 'Old Woman', + 'Man Frowning', + 'Woman Frowning', + 'Man Pouting', + 'Woman Pouting', + 'Man Gesturing No', + 'Woman Gesturing No', + 'Man Gesturing OK', + 'Woman Gesturing OK', + 'Man Tipping Hand', + 'Woman Tipping Hand', + 'Man Raising Hand', + 'Woman Raising Hand', + 'Man Bowing', + 'Woman Bowing', + 'Man Facepalming', + 'Woman Facepalming', + 'Man Shrugging', + 'Woman Shrugging', + 'Man Health Worker', + 'Woman Health Worker', + 'Man Student', + 'Woman Student', + 'Man Teacher', + 'Woman Teacher', + 'Man Judge', + 'Woman Judge', + 'Man Farmer', + 'Woman Farmer', + 'Man Cook', + 'Woman Cook', + 'Man Mechanic', + 'Woman Mechanic', + 'Man Factory Worker', + 'Woman Factory Worker', + 'Man Office Worker', + 'Woman Office Worker', + 'Man Scientist', + 'Woman Scientist', + 'Man Technologist', + 'Woman Technologist', + 'Man Singer', + 'Woman Singer', + 'Man Artist', + 'Woman Artist', + 'Man Pilot', + 'Woman Pilot', + 'Man Astronaut', + 'Woman Astronaut', + 'Man Firefighter', + 'Woman Firefighter', + 'Man Police Officer', + 'Woman Police Officer', + 'Man Detective', + 'Woman Detective', + 'Man Guard', + 'Woman Guard', + 'Man Construction Worker', + 'Woman Construction Worker', + 'Prince', + 'Princess', + 'Man Wearing Turban', + 'Woman Wearing Turban', + 'Man With Chinese Cap', + 'Woman With Headscarf', + 'Man in Tuxedo', + 'Bride With Veil', + 'Pregnant Woman', + 'Breast-Feeding', + 'Baby Angel', + 'Santa Claus', + 'Mrs. Claus', + 'Man Superhero', + 'Woman Superhero', + 'Man Supervillain', + 'Woman Supervillain', + 'Man Mage', + 'Woman Mage', + 'Man Fairy', + 'Woman Fairy', + 'Man Vampire', + 'Woman Vampire', + 'Merman', + 'Mermaid', + 'Man Elf', + 'Woman Elf', + 'Man Genie', + 'Woman Genie', + 'Man Zombie', + 'Woman Zombie', + 'Man Getting Massage', + 'Woman Getting Massage', + 'Man Getting Haircut', + 'Woman Getting Haircut', + 'Man Walking', + 'Woman Walking', + 'Man Running', + 'Woman Running', + 'Man Dancing', + 'Woman Dancing', + 'Man in Suit Levitating', + 'Men With Bunny Ears', + 'Women With Bunny Ears', + 'Man in Steamy Room', + 'Woman in Steamy Room', + 'Person in Lotus Position', + 'Women Holding Hands', + 'Woman and Man Holding Hands', + 'Men Holding Hands', + 'Kiss', + 'Kiss: Man, Man', + 'Kiss: Woman, Woman', + 'Couple With Heart', + 'Couple With Heart: Man, Man', + 'Couple With Heart: Woman, Woman', + 'Family', + 'Family: Man, Woman, Boy', + 'Family: Man, Woman, Girl', + 'Family: Man, Woman, Girl, Boy', + 'Family: Man, Woman, Boy, Boy', + 'Family: Man, Woman, Girl, Girl', + 'Family: Man, Man, Boy', + 'Family: Man, Man, Girl', + 'Family: Man, Man, Girl, Boy', + 'Family: Man, Man, Boy, Boy', + 'Family: Man, Man, Girl, Girl', + 'Family: Woman, Woman, Boy', + 'Family: Woman, Woman, Girl', + 'Family: Woman, Woman, Girl, Boy', + 'Family: Woman, Woman, Boy, Boy', + 'Family: Woman, Woman, Girl, Girl', + 'Family: Man, Boy', + 'Family: Man, Boy, Boy', + 'Family: Man, Girl', + 'Family: Man, Girl, Boy', + 'Family: Man, Girl, Girl', + 'Family: Woman, Boy', + 'Family: Woman, Boy, Boy', + 'Family: Woman, Girl', + 'Family: Woman, Girl, Boy', + 'Family: Woman, Girl, Girl', + 'Speaking Head', + 'Bust in Silhouette', + 'Busts in Silhouette', + 'Footprints', + 'Luggage', + 'Closed Umbrella', + 'Umbrella', + 'Thread', + 'Yarn', + 'Glasses', + 'Sunglasses', + 'Goggles', + 'Lab Coat', + 'Necktie', + 'T-Shirt', + 'Jeans', + 'Scarf', + 'Gloves', + 'Coat', + 'Socks', + 'Dress', + 'Kimono', + 'Bikini', + 'Woman’s Clothes', + 'Purse', + 'Handbag', + 'Clutch Bag', + 'Backpack', + 'Man’s Shoe', + 'Running Shoe', + 'Hiking Boot', + 'Flat Shoe', + 'High-Heeled Shoe', + 'Woman’s Sandal', + 'Woman’s Boot', + 'Crown', + 'Woman’s Hat', + 'Top Hat', + 'Graduation Cap', + 'Billed Cap', + 'Rescue Worker’s Helmet', + 'Lipstick', + 'Ring', + 'Briefcase' +], [ + '😀', + '😃', + '😄', + '😁', + '😆', + '😅', + '🤣', + '😂', + '🙂', + '🙃', + '😉', + '😊', + '😇', + '🥰', + '😍', + '🤩', + '😘', + '😗', + '☺', + '😚', + '😙', + '😋', + '😛', + '😜', + '🤪', + '😝', + '🤑', + '🤗', + '🤭', + '🤫', + '🤔', + '🤐', + '🤨', + '😐', + '😑', + '😶', + '😏', + '😒', + '🙄', + '😬', + '🤥', + '😌', + '😔', + '😪', + '🤤', + '😴', + '😷', + '🤒', + '🤕', + '🤢', + '🤮', + '🤧', + '🥵', + '🥶', + '🥴', + '😵', + '🤯', + '🤠', + '🥳', + '😎', + '🤓', + '🧐', + '😕', + '😟', + '🙁', + '☹', + '😮', + '😯', + '😲', + '😳', + '🥺', + '😦', + '😧', + '😨', + '😰', + '😥', + '😢', + '😭', + '😱', + '😖', + '😣', + '😞', + '😓', + '😩', + '😫', + '😤', + '😡', + '😠', + '🤬', + '😈', + '👿', + '💀', + '☠', + '💩', + '🤡', + '👹', + '👺', + '👻', + '👽', + '👾', + '🤖', + '😺', + '😸', + '😹', + '😻', + '😼', + '😽', + '🙀', + '😿', + '😾', + '💋', + '👋', + '🤚', + '🖐', + '✋', + '🖖', + '👌', + '✌', + '🤞', + '🤟', + '🤘', + '🤙', + '👈', + '👉', + '👆', + '🖕', + '👇', + '☝', + '👍', + '👎', + '✊', + '👊', + '🤛', + '🤜', + '👏', + '🙌', + '👐', + '🤲', + '🤝', + '🙏', + '✍', + '💅', + '🤳', + '💪', + '🦵', + '🦶', + '👂', + '👃', + '🧠', + '🦷', + '🦴', + '👀', + '👁', + '👅', + '👄', + '👶', + '🧒', + '👦', + '👧', + '🧑', + '👨', + '🧔', + '👱', + '👨‍🦰', + '👨‍🦱', + '👨‍🦳', + '👨‍🦲', + '👩', + '👱‍♀️', + '👩‍🦰', + '👩‍🦱', + '👩‍🦳', + '👩‍🦲', + '🧓', + '👴', + '👵', + '🙍‍♂️', + '🙍‍♀️', + '🙎‍♂️', + '🙎‍♀️', + '🙅‍♂️', + '🙅‍♀️', + '🙆‍♂️', + '🙆‍♀️', + '💁‍♂️', + '💁‍♀️', + '🙋‍♂️', + '🙋‍♀️', + '🙇‍♂️', + '🙇‍♀️', + '🤦‍♂️', + '🤦‍♀️', + '🤷‍♂️', + '🤷‍♀️', + '👨‍⚕️', + '👩‍⚕️', + '👨‍🎓', + '👩‍🎓', + '👨‍🏫', + '👩‍🏫', + '👨‍⚖️', + '👩‍⚖️', + '👨‍🌾', + '👩‍🌾', + '👨‍🍳', + '👩‍🍳', + '👨‍🔧', + '👩‍🔧', + '👨‍🏭', + '👩‍🏭', + '👨‍💼', + '👩‍💼', + '👨‍🔬', + '👩‍🔬', + '👨‍💻', + '👩‍💻', + '👨‍🎤', + '👩‍🎤', + '👨‍🎨', + '👩‍🎨', + '👨‍✈️', + '👩‍✈️', + '👨‍🚀', + '👩‍🚀', + '👨‍🚒', + '👩‍🚒', + '👮‍♂️', + '👮‍♀️', + '🕵️‍♂️', + '🕵️‍♀️', + '💂‍♂️', + '💂‍♀️', + '👷‍♂️', + '👷‍♀️', + '🤴', + '👸', + '👳‍♂️', + '👳‍♀️', + '👲', + '🧕', + '🤵', + '👰', + '🤰', + '🤱', + '👼', + '🎅', + '🤶', + '🦸‍♂️', + '🦸‍♀️', + '🦹‍♂️', + '🦹‍♀️', + '🧙‍♂️', + '🧙‍♀️', + '🧚‍♂️', + '🧚‍♀️', + '🧛‍♂️', + '🧛‍♀️', + '🧜‍♂️', + '🧜‍♀️', + '🧝‍♂️', + '🧝‍♀️', + '🧞‍♂️', + '🧞‍♀️', + '🧟‍♂️', + '🧟‍♀️', + '💆‍♂️', + '💆‍♀️', + '💇‍♂️', + '💇‍♀️', + '🚶‍♂️', + '🚶‍♀️', + '🏃‍♂️', + '🏃‍♀️', + '🕺', + '💃', + '🕴', + '👯‍♂️', + '👯‍♀️', + '🧖‍♂️', + '🧖‍♀️', + '🧘', + '👭', + '👫', + '👬', + '💏', + '👨‍❤️‍💋‍👨', + '👩‍❤️‍💋‍👩', + '💑', + '👨‍❤️‍👨', + '👩‍❤️‍👩', + '👪', + '👨‍👩‍👦', + '👨‍👩‍👧', + '👨‍👩‍👧‍👦', + '👨‍👩‍👦‍👦', + '👨‍👩‍👧‍👧', + '👨‍👨‍👦', + '👨‍👨‍👧', + '👨‍👨‍👧‍👦', + '👨‍👨‍👦‍👦', + '👨‍👨‍👧‍👧', + '👩‍👩‍👦', + '👩‍👩‍👧', + '👩‍👩‍👧‍👦', + '👩‍👩‍👦‍👦', + '👩‍👩‍👧‍👧', + '👨‍👦', + '👨‍👦‍👦', + '👨‍👧', + '👨‍👧‍👦', + '👨‍👧‍👧', + '👩‍👦', + '👩‍👦‍👦', + '👩‍👧', + '👩‍👧‍👦', + '👩‍👧‍👧', + '🗣', + '👤', + '👥', + '👣', + '🧳', + '🌂', + '☂', + '🧵', + '🧶', + '👓', + '🕶', + '🥽', + '🥼', + '👔', + '👕', + '👖', + '🧣', + '🧤', + '🧥', + '🧦', + '👗', + '👘', + '👙', + '👚', + '👛', + '👜', + '👝', + '🎒', + '👞', + '👟', + '🥾', + '🥿', + '👠', + '👡', + '👢', + '👑', + '👒', + '🎩', + '🎓', + '🧢', + '⛑', + '💄', + '💍', + '💼', +]); + +/// Map of all possible emojis along with their names in [Category.ANIMALS] +final Map animals = Map.fromIterables([ + 'Dog Face', + 'Cat Face', + 'Mouse Face', + 'Hamster Face', + 'Rabbit Face', + 'Fox Face', + 'Bear Face', + 'Panda Face', + 'Tiger Face', + 'Lion Face', + 'Cow Face', + 'Pig Face', + 'Pig Nose', + 'Frog Face', + 'Monkey Face', + 'See-No-Evil Monkey', + 'Hear-No-Evil Monkey', + 'Speak-No-Evil Monkey', + 'Monkey', + 'Collision', + 'Dizzy', + 'Sweat Droplets', + 'Dashing Away', + 'Gorilla', + 'Dog', + 'Poodle', + 'Wolf Face', + 'Raccoon', + 'Cat', + 'Tiger', + 'Leopard', + 'Horse Face', + 'Horse', + 'Unicorn Face', + 'Zebra', + 'Ox', + 'Water Buffalo', + 'Cow', + 'Pig', + 'Boar', + 'Ram', + 'Ewe', + 'Goat', + 'Camel', + 'Two-Hump Camel', + 'Llama', + 'Giraffe', + 'Elephant', + 'Rhinoceros', + 'Hippopotamus', + 'Mouse', + 'Rat', + 'Rabbit', + 'Chipmunk', + 'Hedgehog', + 'Bat', + 'Koala', + 'Kangaroo', + 'Badger', + 'Paw Prints', + 'Turkey', + 'Chicken', + 'Rooster', + 'Hatching Chick', + 'Baby Chick', + 'Front-Facing Baby Chick', + 'Bird', + 'Penguin', + 'Dove', + 'Eagle', + 'Duck', + 'Swan', + 'Owl', + 'Peacock', + 'Parrot', + 'Crocodile', + 'Turtle', + 'Lizard', + 'Snake', + 'Dragon Face', + 'Dragon', + 'Sauropod', + 'T-Rex', + 'Spouting Whale', + 'Whale', + 'Dolphin', + 'Fish', + 'Tropical Fish', + 'Blowfish', + 'Shark', + 'Octopus', + 'Spiral Shell', + 'Snail', + 'Butterfly', + 'Bug', + 'Ant', + 'Honeybee', + 'Lady Beetle', + 'Cricket', + 'Spider', + 'Spider Web', + 'Scorpion', + 'Mosquito', + 'Microbe', + 'Bouquet', + 'Cherry Blossom', + 'White Flower', + 'Rosette', + 'Rose', + 'Wilted Flower', + 'Hibiscus', + 'Sunflower', + 'Blossom', + 'Tulip', + 'Seedling', + 'Evergreen Tree', + 'Deciduous Tree', + 'Palm Tree', + 'Cactus', + 'Sheaf of Rice', + 'Herb', + 'Shamrock', + 'Four Leaf Clover', + 'Maple Leaf', + 'Fallen Leaf', + 'Leaf Fluttering in Wind', + 'Mushroom', + 'Chestnut', + 'Crab', + 'Lobster', + 'Shrimp', + 'Squid', + 'Globe Showing Europe-Africa', + 'Globe Showing Americas', + 'Globe Showing Asia-Australia', + 'Globe With Meridians', + 'New Moon', + 'Waxing Crescent Moon', + 'First Quarter Moon', + 'Waxing Gibbous Moon', + 'Full Moon', + 'Waning Gibbous Moon', + 'Last Quarter Moon', + 'Waning Crescent Moon', + 'Crescent Moon', + 'New Moon Face', + 'First Quarter Moon Face', + 'Last Quarter Moon Face', + 'Sun', + 'Full Moon Face', + 'Sun With Face', + 'Star', + 'Glowing Star', + 'Shooting Star', + 'Cloud', + 'Sun Behind Cloud', + 'Cloud With Lightning and Rain', + 'Sun Behind Small Cloud', + 'Sun Behind Large Cloud', + 'Sun Behind Rain Cloud', + 'Cloud With Rain', + 'Cloud With Snow', + 'Cloud With Lightning', + 'Tornado', + 'Fog', + 'Wind Face', + 'Rainbow', + 'Umbrella', + 'Umbrella With Rain Drops', + 'High Voltage', + 'Snowflake', + 'Snowman', + 'Snowman Without Snow', + 'Comet', + 'Fire', + 'Droplet', + 'Water Wave', + 'Christmas Tree', + 'Sparkles', + 'Tanabata Tree', + 'Pine Decoration' +], [ + '🐶', + '🐱', + '🐭', + '🐹', + '🐰', + '🦊', + '🐻', + '🐼', + '🐨', + '🐯', + '🦁', + '🐮', + '🐷', + '🐽', + '🐸', + '🐵', + '🙈', + '🙉', + '🙊', + '🐒', + '💥', + '💫', + '💦', + '💨', + '🦍', + '🐕', + '🐩', + '🐺', + '🦝', + '🐈', + '🐅', + '🐆', + '🐴', + '🐎', + '🦄', + '🦓', + '🐂', + '🐃', + '🐄', + '🐖', + '🐗', + '🐏', + '🐑', + '🐐', + '🐪', + '🐫', + '🦙', + '🦒', + '🐘', + '🦏', + '🦛', + '🐁', + '🐀', + '🐇', + '🐿', + '🦔', + '🦇', + '🦘', + '🦡', + '🐾', + '🦃', + '🐔', + '🐓', + '🐣', + '🐤', + '🐥', + '🐦', + '🐧', + '🕊', + '🦅', + '🦆', + '🦢', + '🦉', + '🦚', + '🦜', + '🐊', + '🐢', + '🦎', + '🐍', + '🐲', + '🐉', + '🦕', + '🦖', + '🐳', + '🐋', + '🐬', + '🐟', + '🐠', + '🐡', + '🦈', + '🐙', + '🐚', + '🐌', + '🦋', + '🐛', + '🐜', + '🐝', + '🐞', + '🦗', + '🕷', + '🕸', + '🦂', + '🦟', + '🦠', + '💐', + '🌸', + '💮', + '🏵', + '🌹', + '🥀', + '🌺', + '🌻', + '🌼', + '🌷', + '🌱', + '🌲', + '🌳', + '🌴', + '🌵', + '🌾', + '🌿', + '☘', + '🍀', + '🍁', + '🍂', + '🍃', + '🍄', + '🌰', + '🦀', + '🦞', + '🦐', + '🦑', + '🌍', + '🌎', + '🌏', + '🌐', + '🌑', + '🌒', + '🌓', + '🌔', + '🌕', + '🌖', + '🌗', + '🌘', + '🌙', + '🌚', + '🌛', + '🌜', + '☀', + '🌝', + '🌞', + '⭐', + '🌟', + '🌠', + '☁', + '⛅', + '⛈', + '🌤', + '🌥', + '🌦', + '🌧', + '🌨', + '🌩', + '🌪', + '🌫', + '🌬', + '🌈', + '☂', + '☔', + '⚡', + '❄', + '☃', + '⛄', + '☄', + '🔥', + '💧', + '🌊', + '🎄', + '✨', + '🎋', + '🎍' +]); + +/// Map of all possible emojis along with their names in [Category.FOODS] +final Map foods = Map.fromIterables([ + 'Grapes', + 'Melon', + 'Watermelon', + 'Tangerine', + 'Lemon', + 'Banana', + 'Pineapple', + 'Mango', + 'Red Apple', + 'Green Apple', + 'Pear', + 'Peach', + 'Cherries', + 'Strawberry', + 'Kiwi Fruit', + 'Tomato', + 'Coconut', + 'Avocado', + 'Eggplant', + 'Potato', + 'Carrot', + 'Ear of Corn', + 'Hot Pepper', + 'Cucumber', + 'Leafy Green', + 'Broccoli', + 'Mushroom', + 'Peanuts', + 'Chestnut', + 'Bread', + 'Croissant', + 'Baguette Bread', + 'Pretzel', + 'Bagel', + 'Pancakes', + 'Cheese Wedge', + 'Meat on Bone', + 'Poultry Leg', + 'Cut of Meat', + 'Bacon', + 'Hamburger', + 'French Fries', + 'Pizza', + 'Hot Dog', + 'Sandwich', + 'Taco', + 'Burrito', + 'Stuffed Flatbread', + 'Cooking', + 'Shallow Pan of Food', + 'Pot of Food', + 'Bowl With Spoon', + 'Green Salad', + 'Popcorn', + 'Salt', + 'Canned Food', + 'Bento Box', + 'Rice Cracker', + 'Rice Ball', + 'Cooked Rice', + 'Curry Rice', + 'Steaming Bowl', + 'Spaghetti', + 'Roasted Sweet Potato', + 'Oden', + 'Sushi', + 'Fried Shrimp', + 'Fish Cake With Swirl', + 'Moon Cake', + 'Dango', + 'Dumpling', + 'Fortune Cookie', + 'Takeout Box', + 'Soft Ice Cream', + 'Shaved Ice', + 'Ice Cream', + 'Doughnut', + 'Cookie', + 'Birthday Cake', + 'Shortcake', + 'Cupcake', + 'Pie', + 'Chocolate Bar', + 'Candy', + 'Lollipop', + 'Custard', + 'Honey Pot', + 'Baby Bottle', + 'Glass of Milk', + 'Hot Beverage', + 'Teacup Without Handle', + 'Mate Drink', + 'Sake', + 'Bottle With Popping Cork', + 'Wine Glass', + 'Cocktail Glass', + 'Tropical Drink', + 'Beer Mug', + 'Clinking Beer Mugs', + 'Clinking Glasses', + 'Tumbler Glass', + 'Cup With Straw', + 'Chopsticks', + 'Fork and Knife With Plate', + 'Fork and Knife', + 'Spoon' +], [ + '🍇', + '🍈', + '🍉', + '🍊', + '🍋', + '🍌', + '🍍', + '🥭', + '🍎', + '🍏', + '🍐', + '🍑', + '🍒', + '🍓', + '🥝', + '🍅', + '🥥', + '🥑', + '🍆', + '🥔', + '🥕', + '🌽', + '🌶', + '🥒', + '🥬', + '🥦', + '🍄', + '🥜', + '🌰', + '🍞', + '🥐', + '🥖', + '🥨', + '🥯', + '🥞', + '🧀', + '🍖', + '🍗', + '🥩', + '🥓', + '🍔', + '🍟', + '🍕', + '🌭', + '🥪', + '🌮', + '🌯', + '🥙', + '🍳', + '🥘', + '🍲', + '🥣', + '🥗', + '🍿', + '🧂', + '🥫', + '🍱', + '🍘', + '🍙', + '🍚', + '🍛', + '🍜', + '🍝', + '🍠', + '🍢', + '🍣', + '🍤', + '🍥', + '🥮', + '🍡', + '🥟', + '🥠', + '🥡', + '🍦', + '🍧', + '🍨', + '🍩', + '🍪', + '🎂', + '🍰', + '🧁', + '🥧', + '🍫', + '🍬', + '🍭', + '🍮', + '🍯', + '🍼', + '🥛', + '☕', + '🍵', + '🧉', + '🍶', + '🍾', + '🍷', + '🍸', + '🍹', + '🍺', + '🍻', + '🥂', + '🥃', + '🥤', + '🥢', + '🍽', + '🍴', + '🥄' +]); + +/// Map of all possible emojis along with their names in [Category.TRAVEL] +final Map travel = Map.fromIterables([ + 'Map of Japan', + 'Snow-Capped Mountain', + 'Mountain', + 'Volcano', + 'Mount Fuji', + 'Camping', + 'Beach With Umbrella', + 'Desert', + 'Desert Island', + 'National Park', + 'Stadium', + 'Classical Building', + 'Building Construction', + 'Houses', + 'Derelict House', + 'House', + 'House With Garden', + 'Office Building', + 'Japanese Post Office', + 'Post Office', + 'Hospital', + 'Bank', + 'Hotel', + 'Love Hotel', + 'Convenience Store', + 'School', + 'Department Store', + 'Factory', + 'Japanese Castle', + 'Castle', + 'Wedding', + 'Tokyo Tower', + 'Statue of Liberty', + 'Church', + 'Mosque', + 'Synagogue', + 'Shinto Shrine', + 'Kaaba', + 'Fountain', + 'Tent', + 'Foggy', + 'Night With Stars', + 'Cityscape', + 'Sunrise Over Mountains', + 'Sunrise', + 'Cityscape at Dusk', + 'Sunset', + 'Bridge at Night', + 'Carousel Horse', + 'Ferris Wheel', + 'Roller Coaster', + 'Locomotive', + 'Railway Car', + 'High-Speed Train', + 'Bullet Train', + 'Train', + 'Metro', + 'Light Rail', + 'Station', + 'Tram', + 'Monorail', + 'Mountain Railway', + 'Tram Car', + 'Bus', + 'Oncoming Bus', + 'Trolleybus', + 'Minibus', + 'Ambulance', + 'Fire Engine', + 'Police Car', + 'Oncoming Police Car', + 'Taxi', + 'Oncoming Taxi', + 'Automobile', + 'Oncoming Automobile', + 'Delivery Truck', + 'Articulated Lorry', + 'Tractor', + 'Racing Car', + 'Motorcycle', + 'Motor Scooter', + 'Bicycle', + 'Kick Scooter', + 'Bus Stop', + 'Railway Track', + 'Fuel Pump', + 'Police Car Light', + 'Horizontal Traffic Light', + 'Vertical Traffic Light', + 'Construction', + 'Anchor', + 'Sailboat', + 'Speedboat', + 'Passenger Ship', + 'Ferry', + 'Motor Boat', + 'Ship', + 'Airplane', + 'Small Airplane', + 'Airplane Departure', + 'Airplane Arrival', + 'Seat', + 'Helicopter', + 'Suspension Railway', + 'Mountain Cableway', + 'Aerial Tramway', + 'Satellite', + 'Rocket', + 'Flying Saucer', + 'Shooting Star', + 'Milky Way', + 'Umbrella on Ground', + 'Fireworks', + 'Sparkler', + 'Moon Viewing Ceremony', + 'Yen Banknote', + 'Dollar Banknote', + 'Euro Banknote', + 'Pound Banknote', + 'Moai', + 'Passport Control', + 'Customs', + 'Baggage Claim', + 'Left Luggage' +], [ + '🗾', + '🏔', + '⛰', + '🌋', + '🗻', + '🏕', + '🏖', + '🏜', + '🏝', + '🏞', + '🏟', + '🏛', + '🏗', + '🏘', + '🏚', + '🏠', + '🏡', + '🏢', + '🏣', + '🏤', + '🏥', + '🏦', + '🏨', + '🏩', + '🏪', + '🏫', + '🏬', + '🏭', + '🏯', + '🏰', + '💒', + '🗼', + '🗽', + '⛪', + '🕌', + '🕍', + '⛩', + '🕋', + '⛲', + '⛺', + '🌁', + '🌃', + '🏙', + '🌄', + '🌅', + '🌆', + '🌇', + '🌉', + '🎠', + '🎡', + '🎢', + '🚂', + '🚃', + '🚄', + '🚅', + '🚆', + '🚇', + '🚈', + '🚉', + '🚊', + '🚝', + '🚞', + '🚋', + '🚌', + '🚍', + '🚎', + '🚐', + '🚑', + '🚒', + '🚓', + '🚔', + '🚕', + '🚖', + '🚗', + '🚘', + '🚚', + '🚛', + '🚜', + '🏎', + '🏍', + '🛵', + '🚲', + '🛴', + '🚏', + '🛤', + '⛽', + '🚨', + '🚥', + '🚦', + '🚧', + '⚓', + '⛵', + '🚤', + '🛳', + '⛴', + '🛥', + '🚢', + '✈', + '🛩', + '🛫', + '🛬', + '💺', + '🚁', + '🚟', + '🚠', + '🚡', + '🛰', + '🚀', + '🛸', + '🌠', + '🌌', + '⛱', + '🎆', + '🎇', + '🎑', + '💴', + '💵', + '💶', + '💷', + '🗿', + '🛂', + '🛃', + '🛄', + '🛅' +]); + +/// Map of all possible emojis along with their names in [Category.ACTIVITIES] +final Map activities = Map.fromIterables([ + 'Man Climbing', + 'Woman Climbing', + 'Horse Racing', + 'Skier', + 'Snowboarder', + 'Man Golfing', + 'Woman Golfing', + 'Man Surfing', + 'Woman Surfing', + 'Man Rowing Boat', + 'Woman Rowing Boat', + 'Man Swimming', + 'Woman Swimming', + 'Man Bouncing Ball', + 'Woman Bouncing Ball', + 'Man Lifting Weights', + 'Woman Lifting Weights', + 'Man Biking', + 'Woman Biking', + 'Man Mountain Biking', + 'Woman Mountain Biking', + 'Man Cartwheeling', + 'Woman Cartwheeling', + 'Men Wrestling', + 'Women Wrestling', + 'Man Playing Water Polo', + 'Woman Playing Water Polo', + 'Man Playing Handball', + 'Woman Playing Handball', + 'Man Juggling', + 'Woman Juggling', + 'Man in Lotus Position', + 'Woman in Lotus Position', + 'Circus Tent', + 'Skateboard', + 'Reminder Ribbon', + 'Admission Tickets', + 'Ticket', + 'Military Medal', + 'Trophy', + 'Sports Medal', + '1st Place Medal', + '2nd Place Medal', + '3rd Place Medal', + 'Soccer Ball', + 'Baseball', + 'Softball', + 'Basketball', + 'Volleyball', + 'American Football', + 'Rugby Football', + 'Tennis', + 'Flying Disc', + 'Bowling', + 'Cricket Game', + 'Field Hockey', + 'Ice Hockey', + 'Lacrosse', + 'Ping Pong', + 'Badminton', + 'Boxing Glove', + 'Martial Arts Uniform', + 'Flag in Hole', + 'Ice Skate', + 'Fishing Pole', + 'Running Shirt', + 'Skis', + 'Sled', + 'Curling Stone', + 'Direct Hit', + 'Pool 8 Ball', + 'Video Game', + 'Slot Machine', + 'Game Die', + 'Jigsaw', + 'Chess Pawn', + 'Performing Arts', + 'Artist Palette', + 'Thread', + 'Yarn', + 'Musical Score', + 'Microphone', + 'Headphone', + 'Saxophone', + 'Guitar', + 'Musical Keyboard', + 'Trumpet', + 'Violin', + 'Drum', + 'Clapper Board', + 'Bow and Arrow' +], [ + '🧗‍♂️', + '🧗‍♀️', + '🏇', + '⛷', + '🏂', + '🏌️‍♂️', + '🏌️‍♀️', + '🏄‍♂️', + '🏄‍♀️', + '🚣‍♂️', + '🚣‍♀️', + '🏊‍♂️', + '🏊‍♀️', + '⛹️‍♂️', + '⛹️‍♀️', + '🏋️‍♂️', + '🏋️‍♀️', + '🚴‍♂️', + '🚴‍♀️', + '🚵‍♂️', + '🚵‍♀️', + '🤸‍♂️', + '🤸‍♀️', + '🤼‍♂️', + '🤼‍♀️', + '🤽‍♂️', + '🤽‍♀️', + '🤾‍♂️', + '🤾‍♀️', + '🤹‍♂️', + '🤹‍♀️', + '🧘‍♂️', + '🧘‍♀️', + '🎪', + '🛹', + '🎗', + '🎟', + '🎫', + '🎖', + '🏆', + '🏅', + '🥇', + '🥈', + '🥉', + '⚽', + '⚾', + '🥎', + '🏀', + '🏐', + '🏈', + '🏉', + '🎾', + '🥏', + '🎳', + '🏏', + '🏑', + '🏒', + '🥍', + '🏓', + '🏸', + '🥊', + '🥋', + '⛳', + '⛸', + '🎣', + '🎽', + '🎿', + '🛷', + '🥌', + '🎯', + '🎱', + '🎮', + '🎰', + '🎲', + '🧩', + '♟', + '🎭', + '🎨', + '🧵', + '🧶', + '🎼', + '🎤', + '🎧', + '🎷', + '🎸', + '🎹', + '🎺', + '🎻', + '🥁', + '🎬', + '🏹' +]); + +/// Map of all possible emojis along with their names in [Category.OBJECTS] +final Map objects = Map.fromIterables([ + 'Love Letter', + 'Hole', + 'Bomb', + 'Person Taking Bath', + 'Person in Bed', + 'Kitchen Knife', + 'Amphora', + 'World Map', + 'Compass', + 'Brick', + 'Barber Pole', + 'Oil Drum', + 'Bellhop Bell', + 'Luggage', + 'Hourglass Done', + 'Hourglass Not Done', + 'Watch', + 'Alarm Clock', + 'Stopwatch', + 'Timer Clock', + 'Mantelpiece Clock', + 'Thermometer', + 'Umbrella on Ground', + 'Firecracker', + 'Balloon', + 'Party Popper', + 'Confetti Ball', + 'Japanese Dolls', + 'Carp Streamer', + 'Wind Chime', + 'Red Envelope', + 'Ribbon', + 'Wrapped Gift', + 'Crystal Ball', + 'Nazar Amulet', + 'Joystick', + 'Teddy Bear', + 'Framed Picture', + 'Thread', + 'Yarn', + 'Shopping Bags', + 'Prayer Beads', + 'Gem Stone', + 'Postal Horn', + 'Studio Microphone', + 'Level Slider', + 'Control Knobs', + 'Radio', + 'Mobile Phone', + 'Mobile Phone With Arrow', + 'Telephone', + 'Telephone Receiver', + 'Pager', + 'Fax Machine', + 'Battery', + 'Electric Plug', + 'Laptop Computer', + 'Desktop Computer', + 'Printer', + 'Keyboard', + 'Computer Mouse', + 'Trackball', + 'Computer Disk', + 'Floppy Disk', + 'Optical Disk', + 'DVD', + 'Abacus', + 'Movie Camera', + 'Film Frames', + 'Film Projector', + 'Television', + 'Camera', + 'Camera With Flash', + 'Video Camera', + 'Videocassette', + 'Magnifying Glass Tilted Left', + 'Magnifying Glass Tilted Right', + 'Candle', + 'Light Bulb', + 'Flashlight', + 'Red Paper Lantern', + 'Notebook With Decorative Cover', + 'Closed Book', + 'Open Book', + 'Green Book', + 'Blue Book', + 'Orange Book', + 'Books', + 'Notebook', + 'Page With Curl', + 'Scroll', + 'Page Facing Up', + 'Newspaper', + 'Rolled-Up Newspaper', + 'Bookmark Tabs', + 'Bookmark', + 'Label', + 'Money Bag', + 'Yen Banknote', + 'Dollar Banknote', + 'Euro Banknote', + 'Pound Banknote', + 'Money With Wings', + 'Credit Card', + 'Receipt', + 'Envelope', + 'E-Mail', + 'Incoming Envelope', + 'Envelope With Arrow', + 'Outbox Tray', + 'Inbox Tray', + 'Package', + 'Closed Mailbox With Raised Flag', + 'Closed Mailbox With Lowered Flag', + 'Open Mailbox With Raised Flag', + 'Open Mailbox With Lowered Flag', + 'Postbox', + 'Ballot Box With Ballot', + 'Pencil', + 'Black Nib', + 'Fountain Pen', + 'Pen', + 'Paintbrush', + 'Crayon', + 'Memo', + 'File Folder', + 'Open File Folder', + 'Card Index Dividers', + 'Calendar', + 'Tear-Off Calendar', + 'Spiral Notepad', + 'Spiral Calendar', + 'Card Index', + 'Chart Increasing', + 'Chart Decreasing', + 'Bar Chart', + 'Clipboard', + 'Pushpin', + 'Round Pushpin', + 'Paperclip', + 'Linked Paperclips', + 'Straight Ruler', + 'Triangular Ruler', + 'Scissors', + 'Card File Box', + 'File Cabinet', + 'Wastebasket', + 'Locked', + 'Unlocked', + 'Locked With Pen', + 'Locked With Key', + 'Key', + 'Old Key', + 'Hammer', + 'Pick', + 'Hammer and Pick', + 'Hammer and Wrench', + 'Dagger', + 'Crossed Swords', + 'Pistol', + 'Shield', + 'Wrench', + 'Nut and Bolt', + 'Gear', + 'Clamp', + 'Balance Scale', + 'Link', + 'Chains', + 'Toolbox', + 'Magnet', + 'Alembic', + 'Test Tube', + 'Petri Dish', + 'DNA', + 'Microscope', + 'Telescope', + 'Satellite Antenna', + 'Syringe', + 'Pill', + 'Door', + 'Bed', + 'Couch and Lamp', + 'Toilet', + 'Shower', + 'Bathtub', + 'Lotion Bottle', + 'Safety Pin', + 'Broom', + 'Basket', + 'Roll of Paper', + 'Soap', + 'Sponge', + 'Fire Extinguisher', + 'Cigarette', + 'Coffin', + 'Funeral Urn', + 'Moai', + 'Potable Water' +], [ + '💌', + '🕳', + '💣', + '🛀', + '🛌', + '🔪', + '🏺', + '🗺', + '🧭', + '🧱', + '💈', + '🛢', + '🛎', + '🧳', + '⌛', + '⏳', + '⌚', + '⏰', + '⏱', + '⏲', + '🕰', + '🌡', + '⛱', + '🧨', + '🎈', + '🎉', + '🎊', + '🎎', + '🎏', + '🎐', + '🧧', + '🎀', + '🎁', + '🔮', + '🧿', + '🕹', + '🧸', + '🖼', + '🧵', + '🧶', + '🛍', + '📿', + '💎', + '📯', + '🎙', + '🎚', + '🎛', + '📻', + '📱', + '📲', + '☎', + '📞', + '📟', + '📠', + '🔋', + '🔌', + '💻', + '🖥', + '🖨', + '⌨', + '🖱', + '🖲', + '💽', + '💾', + '💿', + '📀', + '🧮', + '🎥', + '🎞', + '📽', + '📺', + '📷', + '📸', + '📹', + '📼', + '🔍', + '🔎', + '🕯', + '💡', + '🔦', + '🏮', + '📔', + '📕', + '📖', + '📗', + '📘', + '📙', + '📚', + '📓', + '📃', + '📜', + '📄', + '📰', + '🗞', + '📑', + '🔖', + '🏷', + '💰', + '💴', + '💵', + '💶', + '💷', + '💸', + '💳', + '🧾', + '✉', + '📧', + '📨', + '📩', + '📤', + '📥', + '📦', + '📫', + '📪', + '📬', + '📭', + '📮', + '🗳', + '✏', + '✒', + '🖋', + '🖊', + '🖌', + '🖍', + '📝', + '📁', + '📂', + '🗂', + '📅', + '📆', + '🗒', + '🗓', + '📇', + '📈', + '📉', + '📊', + '📋', + '📌', + '📍', + '📎', + '🖇', + '📏', + '📐', + '✂', + '🗃', + '🗄', + '🗑', + '🔒', + '🔓', + '🔏', + '🔐', + '🔑', + '🗝', + '🔨', + '⛏', + '⚒', + '🛠', + '🗡', + '⚔', + '🔫', + '🛡', + '🔧', + '🔩', + '⚙', + '🗜', + '⚖', + '🔗', + '⛓', + '🧰', + '🧲', + '⚗', + '🧪', + '🧫', + '🧬', + '🔬', + '🔭', + '📡', + '💉', + '💊', + '🚪', + '🛏', + '🛋', + '🚽', + '🚿', + '🛁', + '🧴', + '🧷', + '🧹', + '🧺', + '🧻', + '🧼', + '🧽', + '🧯', + '🚬', + '⚰', + '⚱', + '🗿', + '🚰' +]); + +/// Map of all possible emojis along with their names in [Category.SYMBOLS] +final Map symbols = Map.fromIterables([ + 'Heart With Arrow', + 'Heart With Ribbon', + 'Sparkling Heart', + 'Growing Heart', + 'Beating Heart', + 'Revolving Hearts', + 'Two Hearts', + 'Heart Decoration', + 'Heavy Heart Exclamation', + 'Broken Heart', + 'Red Heart', + 'Orange Heart', + 'Yellow Heart', + 'Green Heart', + 'Blue Heart', + 'Purple Heart', + 'Black Heart', + 'Hundred Points', + 'Anger Symbol', + 'Speech Balloon', + 'Eye in Speech Bubble', + 'Right Anger Bubble', + 'Thought Balloon', + 'Zzz', + 'White Flower', + 'Hot Springs', + 'Barber Pole', + 'Stop Sign', + 'Twelve O’Clock', + 'Twelve-Thirty', + 'One O’Clock', + 'One-Thirty', + 'Two O’Clock', + 'Two-Thirty', + 'Three O’Clock', + 'Three-Thirty', + 'Four O’Clock', + 'Four-Thirty', + 'Five O’Clock', + 'Five-Thirty', + 'Six O’Clock', + 'Six-Thirty', + 'Seven O’Clock', + 'Seven-Thirty', + 'Eight O’Clock', + 'Eight-Thirty', + 'Nine O’Clock', + 'Nine-Thirty', + 'Ten O’Clock', + 'Ten-Thirty', + 'Eleven O’Clock', + 'Eleven-Thirty', + 'Cyclone', + 'Spade Suit', + 'Heart Suit', + 'Diamond Suit', + 'Club Suit', + 'Joker', + 'Mahjong Red Dragon', + 'Flower Playing Cards', + 'Muted Speaker', + 'Speaker Low Volume', + 'Speaker Medium Volume', + 'Speaker High Volume', + 'Loudspeaker', + 'Megaphone', + 'Postal Horn', + 'Bell', + 'Bell With Slash', + 'Musical Note', + 'Musical Notes', + 'ATM Sign', + 'Litter in Bin Sign', + 'Potable Water', + 'Wheelchair Symbol', + 'Men’s Room', + 'Women’s Room', + 'Restroom', + 'Baby Symbol', + 'Water Closet', + 'Warning', + 'Children Crossing', + 'No Entry', + 'Prohibited', + 'No Bicycles', + 'No Smoking', + 'No Littering', + 'Non-Potable Water', + 'No Pedestrians', + 'No One Under Eighteen', + 'Radioactive', + 'Biohazard', + 'Up Arrow', + 'Up-Right Arrow', + 'Right Arrow', + 'Down-Right Arrow', + 'Down Arrow', + 'Down-Left Arrow', + 'Left Arrow', + 'Up-Left Arrow', + 'Up-Down Arrow', + 'Left-Right Arrow', + 'Right Arrow Curving Left', + 'Left Arrow Curving Right', + 'Right Arrow Curving Up', + 'Right Arrow Curving Down', + 'Clockwise Vertical Arrows', + 'Counterclockwise Arrows Button', + 'Back Arrow', + 'End Arrow', + 'On! Arrow', + 'Soon Arrow', + 'Top Arrow', + 'Place of Worship', + 'Atom Symbol', + 'Om', + 'Star of David', + 'Wheel of Dharma', + 'Yin Yang', + 'Latin Cross', + 'Orthodox Cross', + 'Star and Crescent', + 'Peace Symbol', + 'Menorah', + 'Dotted Six-Pointed Star', + 'Aries', + 'Taurus', + 'Gemini', + 'Cancer', + 'Leo', + 'Virgo', + 'Libra', + 'Scorpio', + 'Sagittarius', + 'Capricorn', + 'Aquarius', + 'Pisces', + 'Ophiuchus', + 'Shuffle Tracks Button', + 'Repeat Button', + 'Repeat Single Button', + 'Play Button', + 'Fast-Forward Button', + 'Reverse Button', + 'Fast Reverse Button', + 'Upwards Button', + 'Fast Up Button', + 'Downwards Button', + 'Fast Down Button', + 'Stop Button', + 'Eject Button', + 'Cinema', + 'Dim Button', + 'Bright Button', + 'Antenna Bars', + 'Vibration Mode', + 'Mobile Phone Off', + 'Infinity', + 'Recycling Symbol', + 'Trident Emblem', + 'Name Badge', + 'Japanese Symbol for Beginner', + 'Heavy Large Circle', + 'White Heavy Check Mark', + 'Ballot Box With Check', + 'Heavy Check Mark', + 'Heavy Multiplication X', + 'Cross Mark', + 'Cross Mark Button', + 'Heavy Plus Sign', + 'Heavy Minus Sign', + 'Heavy Division Sign', + 'Curly Loop', + 'Double Curly Loop', + 'Part Alternation Mark', + 'Eight-Spoked Asterisk', + 'Eight-Pointed Star', + 'Sparkle', + 'Double Exclamation Mark', + 'Exclamation Question Mark', + 'Question Mark', + 'White Question Mark', + 'White Exclamation Mark', + 'Exclamation Mark', + 'Copyright', + 'Registered', + 'Trade Mark', + 'Keycap Number Sign', + 'Keycap Digit Zero', + 'Keycap Digit One', + 'Keycap Digit Two', + 'Keycap Digit Three', + 'Keycap Digit Four', + 'Keycap Digit Five', + 'Keycap Digit Six', + 'Keycap Digit Seven', + 'Keycap Digit Eight', + 'Keycap Digit Nine', + 'Keycap: 10', + 'Input Latin Uppercase', + 'Input Latin Lowercase', + 'Input Numbers', + 'Input Symbols', + 'Input Latin Letters', + 'A Button (Blood Type)', + 'AB Button (Blood Type)', + 'B Button (Blood Type)', + 'CL Button', + 'Cool Button', + 'Free Button', + 'Information', + 'ID Button', + 'Circled M', + 'New Button', + 'NG Button', + 'O Button (Blood Type)', + 'OK Button', + 'P Button', + 'SOS Button', + 'Up! Button', + 'Vs Button', + 'Japanese “Here” Button', + 'Japanese “Service Charge” Button', + 'Japanese “Monthly Amount” Button', + 'Japanese “Not Free of Charge” Button', + 'Japanese “Reserved” Button', + 'Japanese “Bargain” Button', + 'Japanese “Discount” Button', + 'Japanese “Free of Charge” Button', + 'Japanese “Prohibited” Button', + 'Japanese “Acceptable” Button', + 'Japanese “Application” Button', + 'Japanese “Passing Grade” Button', + 'Japanese “Vacancy” Button', + 'Japanese “Congratulations” Button', + 'Japanese “Secret” Button', + 'Japanese “Open for Business” Button', + 'Japanese “No Vacancy” Button', + 'Red Circle', + 'Blue Circle', + 'Black Circle', + 'White Circle', + 'Black Large Square', + 'White Large Square', + 'Black Medium Square', + 'White Medium Square', + 'Black Medium-Small Square', + 'White Medium-Small Square', + 'Black Small Square', + 'White Small Square', + 'Large Orange Diamond', + 'Large Blue Diamond', + 'Small Orange Diamond', + 'Small Blue Diamond', + 'Red Triangle Pointed Up', + 'Red Triangle Pointed Down', + 'Diamond With a Dot', + 'White Square Button', + 'Black Square Button' +], [ + '💘', + '💝', + '💖', + '💗', + '💓', + '💞', + '💕', + '💟', + '❣', + '💔', + '❤', + '🧡', + '💛', + '💚', + '💙', + '💜', + '🖤', + '💯', + '💢', + '💬', + '👁‍🗨', + '🗯', + '💭', + '💤', + '💮', + '♨', + '💈', + '🛑', + '🕛', + '🕧', + '🕐', + '🕜', + '🕑', + '🕝', + '🕒', + '🕞', + '🕓', + '🕟', + '🕔', + '🕠', + '🕕', + '🕡', + '🕖', + '🕢', + '🕗', + '🕣', + '🕘', + '🕤', + '🕙', + '🕥', + '🕚', + '🕦', + '🌀', + '♠', + '♥', + '♦', + '♣', + '🃏', + '🀄', + '🎴', + '🔇', + '🔈', + '🔉', + '🔊', + '📢', + '📣', + '📯', + '🔔', + '🔕', + '🎵', + '🎶', + '🏧', + '🚮', + '🚰', + '♿', + '🚹', + '🚺', + '🚻', + '🚼', + '🚾', + '⚠', + '🚸', + '⛔', + '🚫', + '🚳', + '🚭', + '🚯', + '🚱', + '🚷', + '🔞', + '☢', + '☣', + '⬆', + '↗', + '➡', + '↘', + '⬇', + '↙', + '⬅', + '↖', + '↕', + '↔', + '↩', + '↪', + '⤴', + '⤵', + '🔃', + '🔄', + '🔙', + '🔚', + '🔛', + '🔜', + '🔝', + '🛐', + '⚛', + '🕉', + '✡', + '☸', + '☯', + '✝', + '☦', + '☪', + '☮', + '🕎', + '🔯', + '♈', + '♉', + '♊', + '♋', + '♌', + '♍', + '♎', + '♏', + '♐', + '♑', + '♒', + '♓', + '⛎', + '🔀', + '🔁', + '🔂', + '▶', + '⏩', + '◀', + '⏪', + '🔼', + '⏫', + '🔽', + '⏬', + '⏹', + '⏏', + '🎦', + '🔅', + '🔆', + '📶', + '📳', + '📴', + '♾', + '♻', + '🔱', + '📛', + '🔰', + '⭕', + '✅', + '☑', + '✔', + '✖', + '❌', + '❎', + '➕', + '➖', + '➗', + '➰', + '➿', + '〽', + '✳', + '✴', + '❇', + '‼', + '⁉', + '❓', + '❔', + '❕', + '❗', + '©', + '®', + '™', + '#️⃣', + '0️⃣', + '1️⃣', + '2️⃣', + '3️⃣', + '4️⃣', + '5️⃣', + '6️⃣', + '7️⃣', + '8️⃣', + '9️⃣', + '🔟', + '🔠', + '🔡', + '🔢', + '🔣', + '🔤', + '🅰', + '🆎', + '🅱', + '🆑', + '🆒', + '🆓', + 'ℹ', + '🆔', + 'Ⓜ', + '🆕', + '🆖', + '🅾', + '🆗', + '🅿', + '🆘', + '🆙', + '🆚', + '🈁', + '🈂', + '🈷', + '🈶', + '🈯', + '🉐', + '🈹', + '🈚', + '🈲', + '🉑', + '🈸', + '🈴', + '🈳', + '㊗', + '㊙', + '🈺', + '🈵', + '🔴', + '🔵', + '⚫', + '⚪', + '⬛', + '⬜', + '◼', + '◻', + '◾', + '◽', + '▪', + '▫', + '🔶', + '🔷', + '🔸', + '🔹', + '🔺', + '🔻', + '💠', + '🔳', + '🔲' +]); + +/// Map of all possible emojis along with their names in [Category.FLAGS] +final Map flags = Map.fromIterables([ + 'Chequered Flag', + 'Triangular Flag', + 'Crossed Flags', + 'Black Flag', + 'White Flag', + 'Rainbow Flag', + 'Pirate Flag', + 'Flag: Ascension Island', + 'Flag: Andorra', + 'Flag: United Arab Emirates', + 'Flag: Afghanistan', + 'Flag: Antigua & Barbuda', + 'Flag: Anguilla', + 'Flag: Albania', + 'Flag: Armenia', + 'Flag: Angola', + 'Flag: Antarctica', + 'Flag: Argentina', + 'Flag: American Samoa', + 'Flag: Austria', + 'Flag: Australia', + 'Flag: Aruba', + 'Flag: Åland Islands', + 'Flag: Azerbaijan', + 'Flag: Bosnia & Herzegovina', + 'Flag: Barbados', + 'Flag: Bangladesh', + 'Flag: Belgium', + 'Flag: Burkina Faso', + 'Flag: Bulgaria', + 'Flag: Bahrain', + 'Flag: Burundi', + 'Flag: Benin', + 'Flag: St. Barthélemy', + 'Flag: Bermuda', + 'Flag: Brunei', + 'Flag: Bolivia', + 'Flag: Caribbean Netherlands', + 'Flag: Brazil', + 'Flag: Bahamas', + 'Flag: Bhutan', + 'Flag: Bouvet Island', + 'Flag: Botswana', + 'Flag: Belarus', + 'Flag: Belize', + 'Flag: Canada', + 'Flag: Cocos (Keeling) Islands', + 'Flag: Congo - Kinshasa', + 'Flag: Central African Republic', + 'Flag: Congo - Brazzaville', + 'Flag: Switzerland', + 'Flag: Côte d’Ivoire', + 'Flag: Cook Islands', + 'Flag: Chile', + 'Flag: Cameroon', + 'Flag: China', + 'Flag: Colombia', + 'Flag: Clipperton Island', + 'Flag: Costa Rica', + 'Flag: Cuba', + 'Flag: Cape Verde', + 'Flag: Curaçao', + 'Flag: Christmas Island', + 'Flag: Cyprus', + 'Flag: Czechia', + 'Flag: Germany', + 'Flag: Diego Garcia', + 'Flag: Djibouti', + 'Flag: Denmark', + 'Flag: Dominica', + 'Flag: Dominican Republic', + 'Flag: Algeria', + 'Flag: Ceuta & Melilla', + 'Flag: Ecuador', + 'Flag: Estonia', + 'Flag: Egypt', + 'Flag: Western Sahara', + 'Flag: Eritrea', + 'Flag: Spain', + 'Flag: Ethiopia', + 'Flag: European Union', + 'Flag: Finland', + 'Flag: Fiji', + 'Flag: Falkland Islands', + 'Flag: Micronesia', + 'Flag: Faroe Islands', + 'Flag: France', + 'Flag: Gabon', + 'Flag: United Kingdom', + 'Flag: Grenada', + 'Flag: Georgia', + 'Flag: French Guiana', + 'Flag: Guernsey', + 'Flag: Ghana', + 'Flag: Gibraltar', + 'Flag: Greenland', + 'Flag: Gambia', + 'Flag: Guinea', + 'Flag: Guadeloupe', + 'Flag: Equatorial Guinea', + 'Flag: Greece', + 'Flag: South Georgia & South Sandwich Islands', + 'Flag: Guatemala', + 'Flag: Guam', + 'Flag: Guinea-Bissau', + 'Flag: Guyana', + 'Flag: Hong Kong SAR China', + 'Flag: Heard & McDonald Islands', + 'Flag: Honduras', + 'Flag: Croatia', + 'Flag: Haiti', + 'Flag: Hungary', + 'Flag: Canary Islands', + 'Flag: Indonesia', + 'Flag: Ireland', + 'Flag: Israel', + 'Flag: Isle of Man', + 'Flag: India', + 'Flag: British Indian Ocean Territory', + 'Flag: Iraq', + 'Flag: Iran', + 'Flag: Iceland', + 'Flag: Italy', + 'Flag: Jersey', + 'Flag: Jamaica', + 'Flag: Jordan', + 'Flag: Japan', + 'Flag: Kenya', + 'Flag: Kyrgyzstan', + 'Flag: Cambodia', + 'Flag: Kiribati', + 'Flag: Comoros', + 'Flag: St. Kitts & Nevis', + 'Flag: North Korea', + 'Flag: South Korea', + 'Flag: Kuwait', + 'Flag: Cayman Islands', + 'Flag: Kazakhstan', + 'Flag: Laos', + 'Flag: Lebanon', + 'Flag: St. Lucia', + 'Flag: Liechtenstein', + 'Flag: Sri Lanka', + 'Flag: Liberia', + 'Flag: Lesotho', + 'Flag: Lithuania', + 'Flag: Luxembourg', + 'Flag: Latvia', + 'Flag: Libya', + 'Flag: Morocco', + 'Flag: Monaco', + 'Flag: Moldova', + 'Flag: Montenegro', + 'Flag: St. Martin', + 'Flag: Madagascar', + 'Flag: Marshall Islands', + 'Flag: North Macedonia', + 'Flag: Mali', + 'Flag: Myanmar (Burma)', + 'Flag: Mongolia', + 'Flag: Macau Sar China', + 'Flag: Northern Mariana Islands', + 'Flag: Martinique', + 'Flag: Mauritania', + 'Flag: Montserrat', + 'Flag: Malta', + 'Flag: Mauritius', + 'Flag: Maldives', + 'Flag: Malawi', + 'Flag: Mexico', + 'Flag: Malaysia', + 'Flag: Mozambique', + 'Flag: Namibia', + 'Flag: New Caledonia', + 'Flag: Niger', + 'Flag: Norfolk Island', + 'Flag: Nigeria', + 'Flag: Nicaragua', + 'Flag: Netherlands', + 'Flag: Norway', + 'Flag: Nepal', + 'Flag: Nauru', + 'Flag: Niue', + 'Flag: New Zealand', + 'Flag: Oman', + 'Flag: Panama', + 'Flag: Peru', + 'Flag: French Polynesia', + 'Flag: Papua New Guinea', + 'Flag: Philippines', + 'Flag: Pakistan', + 'Flag: Poland', + 'Flag: St. Pierre & Miquelon', + 'Flag: Pitcairn Islands', + 'Flag: Puerto Rico', + 'Flag: Palestinian Territories', + 'Flag: Portugal', + 'Flag: Palau', + 'Flag: Paraguay', + 'Flag: Qatar', + 'Flag: Réunion', + 'Flag: Romania', + 'Flag: Serbia', + 'Flag: Russia', + 'Flag: Rwanda', + 'Flag: Saudi Arabia', + 'Flag: Solomon Islands', + 'Flag: Seychelles', + 'Flag: Sudan', + 'Flag: Sweden', + 'Flag: Singapore', + 'Flag: St. Helena', + 'Flag: Slovenia', + 'Flag: Svalbard & Jan Mayen', + 'Flag: Slovakia', + 'Flag: Sierra Leone', + 'Flag: San Marino', + 'Flag: Senegal', + 'Flag: Somalia', + 'Flag: Suriname', + 'Flag: South Sudan', + 'Flag: São Tomé & Príncipe', + 'Flag: El Salvador', + 'Flag: Sint Maarten', + 'Flag: Syria', + 'Flag: Swaziland', + 'Flag: Tristan Da Cunha', + 'Flag: Turks & Caicos Islands', + 'Flag: Chad', + 'Flag: French Southern Territories', + 'Flag: Togo', + 'Flag: Thailand', + 'Flag: Tajikistan', + 'Flag: Tokelau', + 'Flag: Timor-Leste', + 'Flag: Turkmenistan', + 'Flag: Tunisia', + 'Flag: Tonga', + 'Flag: Turkey', + 'Flag: Trinidad & Tobago', + 'Flag: Tuvalu', + 'Flag: Taiwan', + 'Flag: Tanzania', + 'Flag: Ukraine', + 'Flag: Uganda', + 'Flag: U.S. Outlying Islands', + 'Flag: United Nations', + 'Flag: United States', + 'Flag: Uruguay', + 'Flag: Uzbekistan', + 'Flag: Vatican City', + 'Flag: St. Vincent & Grenadines', + 'Flag: Venezuela', + 'Flag: British Virgin Islands', + 'Flag: U.S. Virgin Islands', + 'Flag: Vietnam', + 'Flag: Vanuatu', + 'Flag: Wallis & Futuna', + 'Flag: Samoa', + 'Flag: Kosovo', + 'Flag: Yemen', + 'Flag: Mayotte', + 'Flag: South Africa', + 'Flag: Zambia', + 'Flag: Zimbabwe' +], [ + '🏁', + '🚩', + '🎌', + '🏴', + '🏳', + '🏳️‍🌈', + '🏴‍☠️', + '🇦🇨', + '🇦🇩', + '🇦🇪', + '🇦🇫', + '🇦🇬', + '🇦🇮', + '🇦🇱', + '🇦🇲', + '🇦🇴', + '🇦🇶', + '🇦🇷', + '🇦🇸', + '🇦🇹', + '🇦🇺', + '🇦🇼', + '🇦🇽', + '🇦🇿', + '🇧🇦', + '🇧🇧', + '🇧🇩', + '🇧🇪', + '🇧🇫', + '🇧🇬', + '🇧🇭', + '🇧🇮', + '🇧🇯', + '🇧🇱', + '🇧🇲', + '🇧🇳', + '🇧🇴', + '🇧🇶', + '🇧🇷', + '🇧🇸', + '🇧🇹', + '🇧🇻', + '🇧🇼', + '🇧🇾', + '🇧🇿', + '🇨🇦', + '🇨🇨', + '🇨🇩', + '🇨🇫', + '🇨🇬', + '🇨🇭', + '🇨🇮', + '🇨🇰', + '🇨🇱', + '🇨🇲', + '🇨🇳', + '🇨🇴', + '🇨🇵', + '🇨🇷', + '🇨🇺', + '🇨🇻', + '🇨🇼', + '🇨🇽', + '🇨🇾', + '🇨🇿', + '🇩🇪', + '🇩🇬', + '🇩🇯', + '🇩🇰', + '🇩🇲', + '🇩🇴', + '🇩🇿', + '🇪🇦', + '🇪🇨', + '🇪🇪', + '🇪🇬', + '🇪🇭', + '🇪🇷', + '🇪🇸', + '🇪🇹', + '🇪🇺', + '🇫🇮', + '🇫🇯', + '🇫🇰', + '🇫🇲', + '🇫🇴', + '🇫🇷', + '🇬🇦', + '🇬🇧', + '🇬🇩', + '🇬🇪', + '🇬🇫', + '🇬🇬', + '🇬🇭', + '🇬🇮', + '🇬🇱', + '🇬🇲', + '🇬🇳', + '🇬🇵', + '🇬🇶', + '🇬🇷', + '🇬🇸', + '🇬🇹', + '🇬🇺', + '🇬🇼', + '🇬🇾', + '🇭🇰', + '🇭🇲', + '🇭🇳', + '🇭🇷', + '🇭🇹', + '🇭🇺', + '🇮🇨', + '🇮🇩', + '🇮🇪', + '🇮🇱', + '🇮🇲', + '🇮🇳', + '🇮🇴', + '🇮🇶', + '🇮🇷', + '🇮🇸', + '🇮🇹', + '🇯🇪', + '🇯🇲', + '🇯🇴', + '🇯🇵', + '🇰🇪', + '🇰🇬', + '🇰🇭', + '🇰🇮', + '🇰🇲', + '🇰🇳', + '🇰🇵', + '🇰🇷', + '🇰🇼', + '🇰🇾', + '🇰🇿', + '🇱🇦', + '🇱🇧', + '🇱🇨', + '🇱🇮', + '🇱🇰', + '🇱🇷', + '🇱🇸', + '🇱🇹', + '🇱🇺', + '🇱🇻', + '🇱🇾', + '🇲🇦', + '🇲🇨', + '🇲🇩', + '🇲🇪', + '🇲🇫', + '🇲🇬', + '🇲🇭', + '🇲🇰', + '🇲🇱', + '🇲🇲', + '🇲🇳', + '🇲🇴', + '🇲🇵', + '🇲🇶', + '🇲🇷', + '🇲🇸', + '🇲🇹', + '🇲🇺', + '🇲🇻', + '🇲🇼', + '🇲🇽', + '🇲🇾', + '🇲🇿', + '🇳🇦', + '🇳🇨', + '🇳🇪', + '🇳🇫', + '🇳🇬', + '🇳🇮', + '🇳🇱', + '🇳🇴', + '🇳🇵', + '🇳🇷', + '🇳🇺', + '🇳🇿', + '🇴🇲', + '🇵🇦', + '🇵🇪', + '🇵🇫', + '🇵🇬', + '🇵🇭', + '🇵🇰', + '🇵🇱', + '🇵🇲', + '🇵🇳', + '🇵🇷', + '🇵🇸', + '🇵🇹', + '🇵🇼', + '🇵🇾', + '🇶🇦', + '🇷🇪', + '🇷🇴', + '🇷🇸', + '🇷🇺', + '🇷🇼', + '🇸🇦', + '🇸🇧', + '🇸🇨', + '🇸🇩', + '🇸🇪', + '🇸🇬', + '🇸🇭', + '🇸🇮', + '🇸🇯', + '🇸🇰', + '🇸🇱', + '🇸🇲', + '🇸🇳', + '🇸🇴', + '🇸🇷', + '🇸🇸', + '🇸🇹', + '🇸🇻', + '🇸🇽', + '🇸🇾', + '🇸🇿', + '🇹🇦', + '🇹🇨', + '🇹🇩', + '🇹🇫', + '🇹🇬', + '🇹🇭', + '🇹🇯', + '🇹🇰', + '🇹🇱', + '🇹🇲', + '🇹🇳', + '🇹🇴', + '🇹🇷', + '🇹🇹', + '🇹🇻', + '🇹🇼', + '🇹🇿', + '🇺🇦', + '🇺🇬', + '🇺🇲', + '🇺🇳', + '🇺🇸', + '🇺🇾', + '🇺🇿', + '🇻🇦', + '🇻🇨', + '🇻🇪', + '🇻🇬', + '🇻🇮', + '🇻🇳', + '🇻🇺', + '🇼🇫', + '🇼🇸', + '🇽🇰', + '🇾🇪', + '🇾🇹', + '🇿🇦', + '🇿🇲', + '🇿🇼' +]); + +/// Set of emoji that support different skin tones +final supportSkinToneList = { + '👋', + '🤚', + '🖐', + '✋', + '🖖', + '👌', + '✌', + '🤞', + '🤟', + '🤘', + '🤙', + '👈', + '👉', + '👆', + '🖕', + '👇', + '☝', + '👍', + '👎', + '✊', + '👊', + '🤛', + '🤜', + '👏', + '🙌', + '👐', + '🤲', + '🤝', + '🙏', + '✍', + '💅', + '🤳', + '💪', + '🦵', + '🦶', + '👂', + '👃', + '👶', + '🧒', + '👦', + '👧', + '🧑', + '👨', + '🧔', + '👱', + '👨‍🦰', + '👨‍🦱', + '👨‍🦳', + '👨‍🦲', + '👩', + '👱‍♀️', + '👩‍🦰', + '👩‍🦱', + '👩‍🦳', + '👩‍🦲', + '🧓', + '👴', + '👵', + '🙍‍♂️', + '🙍‍♀️', + '🙎‍♂️', + '🙎‍♀️', + '🙅‍♂️', + '🙅‍♀️', + '🙆‍♂️', + '🙆‍♀️', + '💁‍♂️', + '💁‍♀️', + '🙋‍♂️', + '🙋‍♀️', + '🙇‍♂️', + '🙇‍♀️', + '🤦‍♂️', + '🤦‍♀️', + '🤷‍♂️', + '🤷‍♀️', + '👨‍⚕️', + '👩‍⚕️', + '👨‍🎓', + '👩‍🎓', + '👨‍🏫', + '👩‍🏫', + '👨‍⚖️', + '👩‍⚖️', + '👨‍🌾', + '👩‍🌾', + '👨‍🍳', + '👩‍🍳', + '👨‍🔧', + '👩‍🔧', + '👨‍🏭', + '👩‍🏭', + '👨‍💼', + '👩‍💼', + '👨‍🔬', + '👩‍🔬', + '👨‍💻', + '👩‍💻', + '👨‍🎤', + '👩‍🎤', + '👨‍🎨', + '👩‍🎨', + '👨‍✈️', + '👩‍✈️', + '👨‍🚀', + '👩‍🚀', + '👨‍🚒', + '👩‍🚒', + '👮‍♂️', + '👮‍♀️', + '🕵️‍♂️', + '🕵️‍♀️', + '💂‍♂️', + '💂‍♀️', + '👷‍♂️', + '👷‍♀️', + '🤴', + '👸', + '👳‍♂️', + '👳‍♀️', + '👲', + '🧕', + '🤵', + '👰', + '🤰', + '🤱', + '👼', + '🎅', + '🤶', + '🦸‍♂️', + '🦸‍♀️', + '🦹‍♂️', + '🦹‍♀️', + '🧙‍♂️', + '🧙‍♀️', + '🧚‍♂️', + '🧚‍♀️', + '🧛‍♂️', + '🧛‍♀️', + '🧜‍♂️', + '🧜‍♀️', + '🧝‍♂️', + '🧝‍♀️', + '💆‍♂️', + '💆‍♀️', + '💇‍♂️', + '💇‍♀️', + '🚶‍♂️', + '🚶‍♀️', + '🏃‍♂️', + '🏃‍♀️', + '🕺', + '💃', + '🕴', + '🧖‍♂️', + '🧖‍♀️', + '🧘', + '👭', + '👫', + '👬', + // Activities + '🧗‍♂️', + '🧗‍♀️', + '🏇', + '🏌️‍♂️', + '🏌️‍♀️', + '🏄‍♂️', + '🏄‍♀️', + '🚣‍♂️', + '🚣‍♀️', + '🏊‍♂️', + '🏊‍♀️', + '⛹️‍♂️', + '⛹️‍♀️', + '🏋️‍♂️', + '🏋️‍♀️', + '🚴‍♂️', + '🚴‍♀️', + '🚵‍♂️', + '🚵‍♀️', + '🤸‍♂️', + '🤸‍♀️', + '🤼‍♂️', + '🤼‍♀️', + '🤽‍♂️', + '🤽‍♀️', + '🤾‍♂️', + '🤾‍♀️', + '🤹‍♂️', + '🤹‍♀️', + '🧘‍♂️', + '🧘‍♀️', +}; diff --git a/packages/emoji_picker_flutter/lib/src/emoji_picker.dart b/packages/emoji_picker_flutter/lib/src/emoji_picker.dart new file mode 100644 index 00000000..d484303b --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/emoji_picker.dart @@ -0,0 +1,253 @@ +import 'package:emoji_picker_flutter/src/category_emoji.dart'; +import 'package:emoji_picker_flutter/src/config.dart'; +import 'package:emoji_picker_flutter/src/default_emoji_picker_view.dart'; +import 'package:emoji_picker_flutter/src/emoji.dart'; +import 'package:emoji_picker_flutter/src/emoji_picker_internal_utils.dart'; +import 'package:emoji_picker_flutter/src/emoji_view_state.dart'; +import 'package:emoji_picker_flutter/src/recent_emoji.dart'; +import 'package:flutter/material.dart'; + +/// All the possible categories that [Emoji] can be put into +/// +/// All [Category] are shown in the category bar +enum Category { + /// Recent emojis + RECENT, + + /// Smiley emojis + SMILEYS, + + /// Animal emojis + ANIMALS, + + /// Food emojis + FOODS, + + /// Activity emojis + ACTIVITIES, + + /// Travel emojis + TRAVEL, + + /// Ojects emojis + OBJECTS, + + /// Sumbol emojis + SYMBOLS, + + /// Flag emojis + FLAGS, +} + +/// Extension on Category enum to get its name +extension CategoryExtension on Category { + /// Returns name of Category + String get name { + switch (this) { + case Category.RECENT: + return 'recent'; + case Category.SMILEYS: + return 'smileys'; + case Category.ANIMALS: + return 'animals'; + case Category.FOODS: + return 'foods'; + case Category.ACTIVITIES: + return 'activities'; + case Category.TRAVEL: + return 'travel'; + case Category.OBJECTS: + return 'objects'; + case Category.SYMBOLS: + return 'symbols'; + case Category.FLAGS: + return 'flags'; + } + } +} + +/// Enum to alter the keyboard button style +enum ButtonMode { + /// Android button style - gives the button a splash color with ripple effect + MATERIAL, + + /// iOS button style - gives the button a fade out effect when pressed + CUPERTINO +} + +/// Callback function for when emoji is selected +/// +/// The function returns the selected [Emoji] as well +/// as the [Category] from which it originated +typedef void OnEmojiSelected(Category category, Emoji emoji); + +/// Callback function for backspace button +typedef void OnBackspacePressed(); + +/// Callback function for custom view +typedef EmojiViewBuilder = Widget Function(Config config, EmojiViewState state); + +/// The Emoji Keyboard widget +/// +/// This widget displays a grid of [Emoji] sorted by [Category] +/// which the user can horizontally scroll through. +/// +/// There is also a bottombar which displays all the possible [Category] +/// and allow the user to quickly switch to that [Category] +class EmojiPicker extends StatefulWidget { + /// EmojiPicker for flutter + const EmojiPicker({ + Key? key, + required this.onEmojiSelected, + this.onBackspacePressed, + this.config = const Config(), + this.customWidget, + }) : super(key: key); + + /// Custom widget + final EmojiViewBuilder? customWidget; + + /// The function called when the emoji is selected + final OnEmojiSelected onEmojiSelected; + + /// The function called when backspace button is pressed + final OnBackspacePressed? onBackspacePressed; + + /// Config for customizations + final Config config; + + @override + EmojiPickerState createState() => EmojiPickerState(); +} + +/// EmojiPickerState +class EmojiPickerState extends State { + final List _categoryEmoji = List.empty(growable: true); + List _recentEmoji = List.empty(growable: true); + late Future _updateEmojiFuture; + + // Prevent emojis to be reloaded with every build + bool _loaded = false; + + // Internal helper + final _emojiPickerInternalUtils = EmojiPickerInternalUtils(); + + /// Update recentEmoji list from outside using EmojiPickerUtils + void updateRecentEmoji(List recentEmoji) { + _recentEmoji = recentEmoji; + if (mounted) { + setState(() {}); + } + } + + @override + void initState() { + super.initState(); + _updateEmojiFuture = _updateEmojis(); + } + + @override + void didUpdateWidget(covariant EmojiPicker oldWidget) { + if (oldWidget.config != widget.config) { + // Config changed - rebuild EmojiPickerView completely + _loaded = false; + _updateEmojiFuture = _updateEmojis(); + } + super.didUpdateWidget(oldWidget); + } + + @override + Widget build(BuildContext context) { + if (!_loaded) { + // Load emojis + _updateEmojiFuture.then( + (value) => WidgetsBinding.instance?.addPostFrameCallback((_) { + if (!mounted) return; + setState(() { + _loaded = true; + }); + }), + ); + + // Show loading indicator + return Container( + alignment: Alignment.center, + color: widget.config.bgColor, + child: const CircularProgressIndicator(), + ); + } + if (widget.config.showRecentsTab) { + _categoryEmoji[0].emoji = _recentEmoji.map((e) => e.emoji).toList(); + } + + var state = EmojiViewState( + _categoryEmoji, + _getOnEmojiListener(), + widget.onBackspacePressed, + ); + + // Build + return widget.customWidget == null + ? DefaultEmojiPickerView(widget.config, state) + : widget.customWidget!(widget.config, state); + } + + // Add recent emoji handling to tap listener + OnEmojiSelected _getOnEmojiListener() { + return (category, emoji) { + if (widget.config.showRecentsTab) { + _emojiPickerInternalUtils + .addEmojiToRecentlyUsed(emoji: emoji, config: widget.config) + .then((newRecentEmoji) => { + _recentEmoji = newRecentEmoji, + if (category != Category.RECENT && mounted) + setState(() { + // rebuild to update recent emoji tab + // when it is not current tab + }) + }); + } + widget.onEmojiSelected(category, emoji); + }; + } + + // Initialize emoji data + Future _updateEmojis() async { + _categoryEmoji.clear(); + if (widget.config.showRecentsTab) { + _recentEmoji = await _emojiPickerInternalUtils.getRecentEmojis(); + final recentEmojiMap = _recentEmoji.map((e) => e.emoji).toList(); + _categoryEmoji.add(CategoryEmoji(Category.RECENT, recentEmojiMap)); + } + + final availableCategoryEmoji = + await _emojiPickerInternalUtils.getAvailableCategoryEmoji(); + + availableCategoryEmoji.forEach((category, emojis) async { + _categoryEmoji.add( + CategoryEmoji( + category, + emojis.entries.map((emoji) { + var _emoji = Emoji(emoji.key, emoji.value); + // Emoji with skin tone are only in SMILEY & ACTIVITIES category + if (category == Category.SMILEYS || + category == Category.ACTIVITIES) { + return _updateSkinToneSupport(_emoji); + } else + return _emoji; + }).toList()), + ); + }); + + // Update emoji list version once all categories were cached + _emojiPickerInternalUtils.updateEmojiVersion(); + } + + // Set [hasSkinTone] to true for emoji that support skin tones + Emoji _updateSkinToneSupport(Emoji emoji) { + if (_emojiPickerInternalUtils.hasSkinTone(emoji)) { + return emoji.copyWith(hasSkinTone: true); + } + return emoji; + } +} diff --git a/packages/emoji_picker_flutter/lib/src/emoji_picker_builder.dart b/packages/emoji_picker_flutter/lib/src/emoji_picker_builder.dart new file mode 100644 index 00000000..0805ea98 --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/emoji_picker_builder.dart @@ -0,0 +1,20 @@ +import 'package:emoji_picker_flutter/src/config.dart'; +import 'package:emoji_picker_flutter/src/emoji_view_state.dart'; +import 'package:flutter/material.dart'; + +/// Template class for custom implementation +/// Inhert this class to create your own EmojiPicker +abstract class EmojiPickerBuilder extends StatefulWidget { + /// Constructor + EmojiPickerBuilder( + this.config, + this.state, { + Key? key, + }) : super(key: key); + + /// Config for customizations + final Config config; + + /// State that holds current emoji data + final EmojiViewState state; +} diff --git a/packages/emoji_picker_flutter/lib/src/emoji_picker_internal_utils.dart b/packages/emoji_picker_flutter/lib/src/emoji_picker_internal_utils.dart new file mode 100644 index 00000000..e7c887d0 --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/emoji_picker_internal_utils.dart @@ -0,0 +1,198 @@ +import 'dart:convert'; +import 'dart:io'; +import 'dart:math'; + +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:emoji_picker_flutter/src/emoji_skin_tones.dart'; +import 'package:flutter/services.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'emoji_lists.dart' as emoji_list; +import 'recent_emoji.dart'; + +/// Helper class that provides internal usage +class EmojiPickerInternalUtils { + // Establish communication with native + static const _platform = MethodChannel('emoji_picker_flutter'); + static const _emojiVersion = 'emoji_version'; + + /// Returns true when local emoji list is outdated + Future isEmojiUpdateAvailable() async { + final prefs = await SharedPreferences.getInstance(); + var emojiVersion = prefs.getInt(_emojiVersion) ?? 0; + // != to support downgrading of emoji_picker versions + return emoji_list.version != emojiVersion; + } + + /// Updates local emoji version with current version + Future updateEmojiVersion() async { + final prefs = await SharedPreferences.getInstance(); + prefs.setInt(_emojiVersion, emoji_list.version); + } + + /// Restore locally cached emoji + Future?> _restoreFilteredEmojis(String title) async { + final prefs = await SharedPreferences.getInstance(); + var emojiJson = prefs.getString(title); + if (emojiJson == null) { + return null; + } + var emojis = + Map.from(jsonDecode(emojiJson) as Map); + return emojis; + } + + // Get available emoji for given category title + Future> _getAvailableEmojis(Map map, + {required String title}) async { + Map? newMap; + + // Get Emojis cached locally if available + if (await isEmojiUpdateAvailable() == false) { + newMap = await _restoreFilteredEmojis(title); + } + + if (newMap == null) { + // Check if emoji is available on this platform + newMap = await _getPlatformAvailableEmoji(map); + // Save available Emojis to local storage for faster loading next time + if (newMap != null) { + await _cacheFilteredEmojis(title, newMap); + } + } + + return newMap ?? {}; + } + + /// Returns map of all the available category emojis + Future>> getAvailableCategoryEmoji() async { + final allCategoryEmoji = Map.fromIterables([ + Category.SMILEYS, + Category.ANIMALS, + Category.FOODS, + Category.ACTIVITIES, + Category.TRAVEL, + Category.OBJECTS, + Category.SYMBOLS, + Category.FLAGS + ], [ + emoji_list.smileys, + emoji_list.animals, + emoji_list.foods, + emoji_list.activities, + emoji_list.travel, + emoji_list.objects, + emoji_list.symbols, + emoji_list.flags, + ]); + + final futures = allCategoryEmoji.entries + .map((e) => _getAvailableEmojis(e.value, title: e.key.name)); + + final allAvailableEmojis = await Future.wait(futures); + + return Map.fromIterables(allCategoryEmoji.keys, allAvailableEmojis); + } + + /// Stores filtered emoji locally for faster access next time + Future _cacheFilteredEmojis( + String title, Map emojis) async { + var emojiJson = jsonEncode(emojis); + final prefs = await SharedPreferences.getInstance(); + prefs.setString(title, emojiJson); + } + + /// Check if emoji is available on current platform + Future?> _getPlatformAvailableEmoji( + Map emoji) async { + if (Platform.isAndroid) { + Map? filtered = {}; + var delimiter = '|'; + try { + var entries = emoji.values.join(delimiter); + var keys = emoji.keys.join(delimiter); + var result = (await _platform.invokeMethod('checkAvailability', + {'emojiKeys': keys, 'emojiEntries': entries})) as String; + var resultKeys = result.split(delimiter); + for (var i = 0; i < resultKeys.length; i++) { + filtered[resultKeys[i]] = emoji[resultKeys[i]]!; + } + } on PlatformException catch (_) { + filtered = null; + } + return filtered; + } else { + return emoji; + } + } + + /// Returns list of recently used emoji from cache + Future> getRecentEmojis() async { + final prefs = await SharedPreferences.getInstance(); + var emojiJson = prefs.getString('recent'); + if (emojiJson == null) { + return []; + } + var json = jsonDecode(emojiJson) as List; + return json.map(RecentEmoji.fromJson).toList(); + } + + /// Add an emoji to recently used list or increase its counter + Future> addEmojiToRecentlyUsed( + {required Emoji emoji, Config config = const Config()}) async { + // Remove emoji's skin tone in Recent-Category + if (emoji.hasSkinTone) { + emoji = removeSkinTone(emoji); + } + var recentEmoji = await getRecentEmojis(); + var recentEmojiIndex = + recentEmoji.indexWhere((element) => element.emoji.emoji == emoji.emoji); + if (recentEmojiIndex != -1) { + // Already exist in recent list + // Just update counter + recentEmoji[recentEmojiIndex].counter++; + } else if (recentEmoji.length == config.recentsLimit && + config.replaceEmojiOnLimitExceed) { + // Replace latest emoji with the fresh one + recentEmoji[recentEmoji.length - 1] = RecentEmoji(emoji, 1); + } else { + recentEmoji.add(RecentEmoji(emoji, 1)); + } + // Sort by counter desc + recentEmoji.sort((a, b) => b.counter - a.counter); + // Limit entries to recentsLimit + recentEmoji = + recentEmoji.sublist(0, min(config.recentsLimit, recentEmoji.length)); + // save locally + final prefs = await SharedPreferences.getInstance(); + prefs.setString('recent', jsonEncode(recentEmoji)); + + return recentEmoji; + } + + /// Returns true when the emoji support multiple skin colors + bool hasSkinTone(Emoji emoji) { + return emoji_list.supportSkinToneList.contains(emoji.emoji); + } + + /// Applies skin tone to given emoji + Emoji applySkinTone(Emoji emoji, String color) { + final codeUnits = emoji.emoji.codeUnits; + var result = List.empty(growable: true) + ..addAll(codeUnits.sublist(0, min(codeUnits.length, 2))) + ..addAll(color.codeUnits); + if (codeUnits.length >= 2) { + result.addAll(codeUnits.sublist(2)); + } + return emoji.copyWith(emoji: String.fromCharCodes(result)); + } + + /// Remove skin tone from given emoji + Emoji removeSkinTone(Emoji emoji) { + return emoji.copyWith( + emoji: emoji.emoji.replaceFirst( + RegExp('${SkinTone.values.join('|')}'), + '', + ), + ); + } +} diff --git a/packages/emoji_picker_flutter/lib/src/emoji_picker_utils.dart b/packages/emoji_picker_flutter/lib/src/emoji_picker_utils.dart new file mode 100644 index 00000000..9b4922b3 --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/emoji_picker_utils.dart @@ -0,0 +1,59 @@ +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:emoji_picker_flutter/src/recent_emoji.dart'; +import 'package:flutter/material.dart'; +import 'emoji_picker_internal_utils.dart'; + +/// Helper class that provides extended usage +class EmojiPickerUtils { + /// Singleton Constructor + factory EmojiPickerUtils() { + return _singleton; + } + + EmojiPickerUtils._internal(); + + static final EmojiPickerUtils _singleton = EmojiPickerUtils._internal(); + final List _allAvailableEmojiEntities = []; + + /// Returns list of recently used emoji from cache + Future> getRecentEmojis() async { + return EmojiPickerInternalUtils().getRecentEmojis(); + } + + /// Search for related emoticons based on keywords + Future> searchEmoji(String keyword) async { + if (keyword.isEmpty) return []; + + if (_allAvailableEmojiEntities.isEmpty) { + final emojiPickerInternalUtils = EmojiPickerInternalUtils(); + + final availableCategoryEmoji = + await emojiPickerInternalUtils.getAvailableCategoryEmoji(); + + // Set all the emoji entities + availableCategoryEmoji.forEach((_, emojis) { + final emojiEntities = + emojis.entries.map((emoji) => Emoji(emoji.key, emoji.value)); + _allAvailableEmojiEntities.addAll(emojiEntities); + }); + } + + return _allAvailableEmojiEntities + .where( + (emoji) => emoji.name.toLowerCase().contains(keyword.toLowerCase()), + ) + .toList(); + } + + /// Add an emoji to recently used list or increase its counter + Future addEmojiToRecentlyUsed({ + required GlobalKey key, + required Emoji emoji, + Config config = const Config(), + }) async { + return EmojiPickerInternalUtils() + .addEmojiToRecentlyUsed(emoji: emoji, config: config) + .then((recentEmojiList) => + key.currentState?.updateRecentEmoji(recentEmojiList)); + } +} diff --git a/packages/emoji_picker_flutter/lib/src/emoji_skin_tones.dart b/packages/emoji_picker_flutter/lib/src/emoji_skin_tones.dart new file mode 100644 index 00000000..9d20d798 --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/emoji_skin_tones.dart @@ -0,0 +1,22 @@ +/// Alternative skin tones of Emoji +class SkinTone { + SkinTone._(); + + /// Light Skin Tone + static const String light = '🏻'; + + /// Medium-Light Skin Tone + static const String mediumLight = '🏼'; + + /// Medium Skin Tone + static const String medium = '🏽'; + + /// Medium-Dark Skin Tone + static const String mediumDark = '🏾'; + + /// Dark Skin Tone + static const String dark = '🏿'; + + /// Return all values as Array + static const values = [light, mediumLight, medium, mediumDark, dark]; +} diff --git a/packages/emoji_picker_flutter/lib/src/emoji_view_state.dart b/packages/emoji_picker_flutter/lib/src/emoji_view_state.dart new file mode 100644 index 00000000..a98e2ba1 --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/emoji_view_state.dart @@ -0,0 +1,21 @@ +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:emoji_picker_flutter/src/category_emoji.dart'; + +/// State that holds current emoji data +class EmojiViewState { + /// Constructor + EmojiViewState( + this.categoryEmoji, + this.onEmojiSelected, + this.onBackspacePressed, + ); + + /// List of all category including their emoji + final List categoryEmoji; + + /// Callback when pressed on emoji + final OnEmojiSelected onEmojiSelected; + + /// Callback when pressed on backspace + final OnBackspacePressed? onBackspacePressed; +} diff --git a/packages/emoji_picker_flutter/lib/src/recent_emoji.dart b/packages/emoji_picker_flutter/lib/src/recent_emoji.dart new file mode 100644 index 00000000..0e9e000a --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/recent_emoji.dart @@ -0,0 +1,30 @@ +import 'package:emoji_picker_flutter/src/emoji.dart'; + +/// Class that holds an recent emoji +/// Recent Emoji has an instance of the emoji +/// And a counter, which counts how often this emoji +/// has been used before +class RecentEmoji { + /// Constructor + RecentEmoji(this.emoji, this.counter); + + /// Emoji instance + final Emoji emoji; + + /// Counter how often emoji has been used before + int counter = 0; + + /// Parse RecentEmoji from json + static RecentEmoji fromJson(dynamic json) { + return RecentEmoji( + Emoji.fromJson(json['emoji'] as Map), + json['counter'] as int, + ); + } + + /// Encode RecentEmoji to json + Map toJson() => { + 'emoji': emoji, + 'counter': counter, + }; +} diff --git a/packages/emoji_picker_flutter/lib/src/triangle_shape.dart b/packages/emoji_picker_flutter/lib/src/triangle_shape.dart new file mode 100644 index 00000000..6254061c --- /dev/null +++ b/packages/emoji_picker_flutter/lib/src/triangle_shape.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; + +/// Triangle shape used as skin tone indicator +class TriangleShape extends CustomPainter { + /// Constructor + /// Expects color that the triangle will be filled with + TriangleShape(Color color) { + _painter = Paint() + ..color = color + ..style = PaintingStyle.fill; + } + + late final Paint _painter; + + @override + void paint(Canvas canvas, Size size) { + var path = Path() + ..moveTo(size.width, 0) + ..lineTo(0, size.height) + ..lineTo(size.width, size.height) + ..lineTo(size.width, 0) + ..close(); + + canvas.drawPath(path, _painter); + } + + @override + bool shouldRepaint(CustomPainter oldDelegate) { + return false; + } +} diff --git a/packages/emoji_picker_flutter/macos/Classes/EmojiPickerFlutterPlugin.swift b/packages/emoji_picker_flutter/macos/Classes/EmojiPickerFlutterPlugin.swift new file mode 100644 index 00000000..061aeb39 --- /dev/null +++ b/packages/emoji_picker_flutter/macos/Classes/EmojiPickerFlutterPlugin.swift @@ -0,0 +1,19 @@ +import Cocoa +import FlutterMacOS + +public class EmojiPickerFlutterPlugin: NSObject, FlutterPlugin { + public static func register(with registrar: FlutterPluginRegistrar) { + let channel = FlutterMethodChannel(name: "emoji_picker_flutter", binaryMessenger: registrar.messenger) + let instance = EmojiPickerFlutterPlugin() + registrar.addMethodCallDelegate(instance, channel: channel) + } + + public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { + switch call.method { + case "getPlatformVersion": + result("macOS " + ProcessInfo.processInfo.operatingSystemVersionString) + default: + result(FlutterMethodNotImplemented) + } + } +} diff --git a/packages/emoji_picker_flutter/macos/emoji_picker_flutter.podspec b/packages/emoji_picker_flutter/macos/emoji_picker_flutter.podspec new file mode 100644 index 00000000..9c9d8beb --- /dev/null +++ b/packages/emoji_picker_flutter/macos/emoji_picker_flutter.podspec @@ -0,0 +1,22 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint emoji_picker_flutter.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'emoji_picker_flutter' + s.version = '0.0.1' + s.summary = 'A new flutter plugin project.' + s.description = <<-DESC +A new flutter plugin project. + DESC + s.homepage = 'http://example.com' + s.license = { :file => '../LICENSE' } + s.author = { 'Your Company' => 'email@example.com' } + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.dependency 'FlutterMacOS' + + s.platform = :osx, '10.11' + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } + s.swift_version = '5.0' +end diff --git a/packages/emoji_picker_flutter/pubspec.yaml b/packages/emoji_picker_flutter/pubspec.yaml new file mode 100644 index 00000000..08e22f6b --- /dev/null +++ b/packages/emoji_picker_flutter/pubspec.yaml @@ -0,0 +1,27 @@ +name: emoji_picker_flutter +description: A Flutter package that provides an Emoji picker widget with 1500+ emojis in 8 categories. +version: 1.3.0 +homepage: https://github.com/Fintasys/emoji_picker_flutter + +environment: + sdk: ">=2.12.0 <3.0.0" + flutter: ">=2.0.1" + +dependencies: + flutter: + sdk: flutter + shared_preferences: ^2.0.6 + +dev_dependencies: + test: ^1.17.12 + +flutter: + plugin: + platforms: + android: + package: com.fintasys.emoji_picker_flutter + pluginClass: EmojiPickerFlutterPlugin + ios: + pluginClass: EmojiPickerFlutterPlugin + macos: + pluginClass: EmojiPickerFlutterPlugin diff --git a/packages/emoji_picker_flutter/screenshot/backspace.png b/packages/emoji_picker_flutter/screenshot/backspace.png new file mode 100644 index 0000000000000000000000000000000000000000..7549ebdd736a71cc055acc7dad72a12ed7f3321b GIT binary patch literal 78160 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%0A!w0J)LZLZy*onUG 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 literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/screenshot/intro.png b/packages/emoji_picker_flutter/screenshot/intro.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa85ae570fbd7e50c7d34472085f0386875f8ec GIT binary patch literal 296980 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ⅈbMyXYt6?Gi3;M9J+>j3k|S)xgg`%XB2`v>_m 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
B%6@0^g{?&KF6|GR|yLw5p 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

yPNSMg9SV4Y$X=jGKL`U&GK8Ot_Oo&dLt+k+|ZS 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 literal 0 HcmV?d00001 diff --git a/packages/emoji_picker_flutter/screenshot/screenshot.png b/packages/emoji_picker_flutter/screenshot/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0cdfe85b62f8b9e6947c7485a0098485d88c8739 GIT binary patch literal 264120 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�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 UbcLp50q^?AMcnv#)> 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 z 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 u}C^1tQio2o>#u9*24xA~u?OVNp@0-iFsc|E0W( z+yMCMcO75-?j*nQ3D~wl*tNy5V@t&5O~Qs%!qA`)MKIWJh%F5CGb@)`pM*vZS*A?X zmC*@hcod#HP_3Em0(ll zZwhEfYm@~OB+1K1fvMz3l0uvzNd~Iqr$$@)8vy2_*PhAO^x{WlD5SFvU-b%$>_ zOzjMur*nvY=lP4@>EoMEcp8oNoOfk!<0=M((qhm=i2 zRZt&9kR$>GbyM08C2Q@&LMAG6S4|M*>fEKm6GX5IZ6zMLk#Sr{1r@XV-7mNwFE*Gh zuR)*qB5mf}<`(fkevF&&)n}?K`CGJLKTO@V+>L)hmQbBCH;=RAXgmNMq2zLRo63h)K(+VONHgMBRP0<&wN965ovQkn&pPS~EW~ z-1;0@z8hI}-P{{?9za%IgABIqEI)CIWYcoQPN0cF@*JWHqG4xRb1nU5LX?AR4>)0C zGu(4YauAQiIVNrd|2b|Tb__8N?agPM7X1m_aZNJMC+*cWCu>Q zKX3VNWaU-Q?*_bxA=};z-}@A}6wMueG>2t6D>=Gg5Ew|5mtQ4xHPBezk-DeAds&XFqEYAs-&abyQF>yY5}E<}4V&A**jh1};KJo&ts9@C3SgD3BY?n&eHE zvxDu%mgyW?pjxUAt3!$&xxVEOpOWN|DCg^s7yRXyW+yk!7QDjOA9sB5>nT6_1|T;m zmEZ{EQ9A;q6HVqH%23C&WNax(9a@nanwMT_`FgtVc>6k)RhZ4MI?Fv=e2}%bpnV%) zY+s0I86F{7x3b)Mn&mv;=F2TV_FCcJ|C#6H#9|x)=O2BE<=1{J=EjT7oXaL>&ve?^ z3hd^)&Q9YNIb`k4p)_vG)<#LzuL?U(J>fu_WuXn~Vwz3*$)%s>OlG3_<&IB)7Tq{lVN`Fh&>JJE4Yn!~sE zDBpOv;2$5FZctb6HlbY$h{nOgZ8FbRF+1L|pzT=@m>AjqR%j9&qbWL3Aj@o9blOPp z$y9?dVy+++G_He~P`cGO5K|4MTstbig$*a+(w!FmE}x+h(~%c&=y)*FeX~@wm`@B; zOPe+zE)D%QfRy7h9(ChoKSNbMF%~2(Q@RvIkldqD8FFj{9m#NG9YoshA37)fSyV7F zvg=;>`mX~}oJ#TIitYD^orEL?tzf95c$65mrM5(2%dw>#aGKE#k;5eQGEE~dBN^&Q zGJ(Xso&MGk)(%#Em zh$+Wf>ynO=cxMCs70d7aQpC%fyZUqZFyHWG!|hUvcGF!!sd@=QY^ArY_04Q+A@|>h z{Mn{RsDes=`3?tELc~_o=+F-6$jzMxJpKKgcm11uTF7H3ZoE30`STQ_fr1s6jdAMn zK>+Gmom#bTei{g5SxV~LgZIESJCK1TP#$&)B&uR|yd780o%yjz^r8a#;uwzMgx9`C8+QHEkqyQc4P&CZHsQ}CVVg!lc+Nk+zJwzF$@NPBZ*Ay6pkzP6KQ z*4+|BH!XypJTwkHM}KWQ02&EW_}2F2jnD5HIQRAN1O!& zpH0{86Pt(hCqOD`SnSv8p`u7q&YklyyclKgLn&|iO~=IK%x}ACx0%!DiAj>?D+w)70j-8 zwS2Vv{Jy&9HkYwsd+U&|)H#^eP#0Xp8SPCgHJt3my9!G&#mcV6emY z7h5ldhZOZWXak82Azh_(AUifWnjz_}lI$J#MpMX+9BB!pNmN6&ybkQbi_a_s%*F4; zJ@N*eru4$TBg$1g`blI6%ciob;GXVNGW4F8-x9@KOD2_F7>&MSny7y zJ#F}7?V|aQkM!O%nN8w+Q$WtM@;0IW+MOZNZ3#jKw;>zvM4$Z}0L7^cH!+E=EbfK) z>Fn$WZZfQjJS>p5vlcno;jxwvAu+1Kb_O6jeh_)?i)c~D=Sq6$7}bp%fHuk1 zi54-2PJ2(+{~i9#Yi|_}9<}_Z&pAdH5y^4ajg}v|Ct@(sY2??Qak3^v_?)7b#&)dG3%4l&zqePBaqa==8z}gqq5>!MaYIlzh1CUhma4o_cLYg1!$fTtymr$jQM0NV@v*R@U=z&tw;@~K5OPA7D5NsfwllBbJkjz&TKOMycx+!U zT(;fty=R1@r_O94SBnj=-*yo{b@ipZVf!}j*tnj}1O3#ZGjp6HV;QPexO8X*H>_R5 z&Fj{3$?|@VG#Z?2WM@2oU%tceJ3nr@{c1y{neH@~hgb6BqvR(_J2Nq6`&*E$Z(P!L z20*8+Dc~K^;NTh55vTi6-tV*dNWJjD!!z6Tfn&<+ZZY)7v$tjRd&@Zf)xp+zgVn(q zuQ?ZFS;|Obgw&<21ww7@1iOA^HPsv540dToZ~#bkb;p=Shn=x#A6j?(@fH`|wGK(D&52DAviH<)DfTjheKMqkGXE1-x z_J}Q9dXb^8-}3G6`O^|%=K}A0V}+l7lVQ^;PTz+nDLu!Bt51?0K8faG%r$Fo#9aF0 zNOjdY?BOCqJctf|2OZl7faVT6m>{~!j*F=qMN_hvTM=T3NDe;xGon=`w%lzp|XOn1tVC`WJzqe#soj3bo{iN`Tf z7W!?AcGRbW8y_bg zde?m$h_3x5WN_=b>)>L9sp5yf3uAi$@Ogn9u$W|SOtz*DYlRJip10o$j~^BG9-NyU zy=22WKK9a^dHs&+Ejba{YG4?bpU+ zA{-r78d>-8iAh)=d#<~Dc0%sp->zWv$#%5L3n4hNEM>SpjGIy-=JH?oHUqEzAhP1p z=Y8$-0;WnRdEUU@<6KPJ#kB(C8ef3jZQPXA;JOl_HJS0dMg4^I0Ab4 zaEAnU4esu4!3LMXnZey1X6M~+zprZlg8gNyrl`5at$XI4?$g~*_jCGWe07?$34pk; zm>rUN6<;z_FOvSHZ#|ZiYs%yro%mj&XX+TnE{BIKEx#pt@k8&MPYbX84JD60L%Vgd z@`usQ_?g}DbG{TBC~dN!BEPcDZ36>&+T9O-Cct}@1O~(L0jr@F>?>ME%fAK{n0pqO0)x8TjCL&iH*UgrP{7|fj_ z1dv7MnlfYHmi4$zMzWu4$jR7XhuZkF3eIKn^D@!FNEu?HsdTt-L?hx!epH`WGrogjLPI7SVD(0 zs5sRJe{*(DO zK#xl$pKoZOu{5s~c$y+d|3P->!^D!2+9w%P^MFy|D-Tq=j@Mq>p~=omuYUFW6wCGn z>F;+U{_8&sdrsxh$q+%PC^-b<=kFdHr>+^Y1dcYCy zRKjt|ZacF}k6qq43k##+IE;kMg=px}x8E$K&|`l=3u%jXsoiY3#pZx#SB))c7*xem z@-EH8H5-w8(^_TatvszE-sxmKce{ZtK zARzCN$5qQsihJcxngmK8xE0oD+2vx@MQ-Xe(7hP3QxKKg(C+z`xOXb2zD{lL%uSp` zQ6!R_jGlV7Q7x{SS4rW%YY28AKf=|9Z1+w|0X^PgIY*xz*z*{oa1qgoYLX93Hna}N z2>$I^6(Rl`HuK+HfKka|dhBQT(W*y^sfOO(^QpGiDaX8k+x1GOb5YS41_s9Ok9es5 z=wTXHZ{8>r=h(Bnbw}~0tgQO-7TR&@;(ONe@b=3WK+YI?>hK~>W-fnbR+&{LA8gI5 z;`*gVaa`OjE=^(XG@f43CDS3Z)S#ka!A^cFV#2!#ePRswgG!(3nqO@Gv4StuCraw zjkns|JUiK{5c`7bJjRz`ms;{}nBM0xsf2%B&tj52hb@FJ1>jd2Uck$_k`L(ZuVC+L z!r8d#xG&)b(PgT6Zxf5fYPA0v0XWQT%-5&ArK$LRpD0OPlh17*Xi6Q1E}l*f!l#Q> zIo?r)^kUd!lMOXAa&R>WHy9q=^0TFTLJ#}Dywklque{N8!mVO6SYOi?2d*IRej!*&a%4iV}i*_=h7|TwR&1^Vo-n7jRitg)GEbs=@ zr0)kyyhKYu_V#Zuz_wYg4iwp|$PhA=+bky=nSK#*h~wVAtv=3gu<2ldGc5NOmh|N0 z|LK726SExu=E+7?UQ?H+hmdZj(muDY3p#iKI;POCRp|PyRHqKk!v$=uWq7$?OBFwy z@8vhBRBsp9>}EY*tOxR6QMOZ5=|BwjvW-tthWKrRNy4ijRUS3j#-1%i9_?k?BSm02 z*W&+3FUbh zqokb%7G=94C`FTn=fzDPk7K(g7+AXdP(7vEeHeHu+Hhj9#8YZqYRI^@)`Xkcg-Muf z|K~F)d7msO4w(MkTyDME>CZU7AXc(nh)tFM0=e?jfScfn4}tAS^uz(>?vRSRd-;j`xl)~3WLk;|d757Wo9mW@$%3m9dQ;2t=;lT9y*NMP%#x9i8xa?0temru6OJDf@ zG3#YEl9$8wa-f)Si`}mE?yV5hnJ6l|okbA$L~{jsGQ*Im>Tws!dK}6c=Gk*tMbo;} zsHxB2Wz4;fu3snZCs3hL$;oPpj>oR|nQfS+Bh8a|*RdNY4SY78+naUqfSQ-_XNx3Nk+O9X384dzY;PZQaqOi!6VNI2+G{Abl)qw>Ws^t!)KmRi?ajSvo zwYM-`2H&;Ru?J@BZsGlCBd!Hi$F9vH=!KBy?)|GN^Vh;NQ47`Y9^*C5&nSdzi7O!m z?oWVmw`}yg+sCqu1GnL++zAyGq^CWu*G)$%x-L(0AzJ(;227Qkknn2Han3G$u)2UPW-BhNM z#c%U(P-`}Xm>;IIrOn4Yc%wZw)K|IK<&R)ylDFl#PyNa^&8SsbxFoS&I_9pWE_6 zDcPY@wvo+7aqO-Ux;yT2Te+Pb@qX$K6n^0ym%UNULT>rn`{#9U?)mWPb*WE%3&0z&5mRCbv z8kiryepu18x&A;BUgrTMGweK{;V@!aot2rKYW-KI9>NjR<@FEdg`-pM($9u$F@QhB zlrJIGl2*>0auPQl;rBS+GDC$~lyZIQL`cH`rJ-dD01e?Ayf%uNIx|@x%_jVv7 z&p0GScSLOhcBUWlkH96h18Ww^;k@2mlbZi;Ktji zlfAjVy;CKonN}6T)!b(Gugt07JBs)(qoX<8reDZO`Y=f+OJ?Iv!|TcjUxp4h#r>*) z-bNnrQ>nW=V!vfYZ9$YxTvGQ(UkcD%YW$;#EGO$=rAQzYCvDm#Rn#Oefw?ElOLfw*8iC$f&V& zLvDJaonz^=uT{Vtl02XGaQ56^21lxeZxF-P9Txg7vCzgRX6z3MZ5{D29Gvey7o<8QVdT`Q)mYU{>|hV&CVc>XT?7Coe=;%CXbB52ezWPJiPd_; z98-dwoy~pt<@YbfMuKbLr2 z*(#9!GESM`NJmF5By4k|{mbo4!@dHI=b0*RezULVP1Zt`0$Q1R zxg+u^JYdJl&A^+#m}|usHqww;sQnQj$4|t)5G`~zYE>#+?TTpk1hIWO^bNgxJPlzb zp{>Nu{yeu*^Oe8v)WXgCNIpW*52e#5h<4pwm2t6)WbN8m_hbukWPHI*m#$YkI*Vs*T`b)w(e4Yr1WrRu+#DAiWH?jT&AJSS@Hw}p5qN2;l2$)?(Z{IHvSm-8z>mNRk?*5=}* zDxQ4NWZPO;9G{KS!$zBfcxcV;$*XQvqZO?>)qR&v;)kt_} zMz|=0wabCVVQ&~EjNY?0YaA%oEP zQ$xE$V+wz^%=z|xQqEWClC1ZdbAvQDvVj>`D{mUz!9_ho@4_shAJTiFb6)lEaVqmP zy;YLzd*xL7)j@{0+b!Dwz+f_ZZ9gn=Nc(q*jy9pnogDWe>d{JGO!hn_=B!%I2wc#& zaPQ+vl5O)@>EE%E9l?#pG3qUe4pLpXcK2FuG%G}}P`ez^a`6sR6(?Jgo#?R7((L1Y zZVaA>$isFy?!4HWS5Z~i`}47Nitz|bzronfQwF1h7VYQpi8pvG&jg+8dhJwAmdJi+ z;bbl#%Zt|DWSV5&ljCPw-0a#DH?Pk_zotcStU9SU`qMeMihAxIyNkz;MK#ojDn}nn zmsilB1yf&^E6_IkcI|YqxH<1o*w%2n8L4zGHGm59-w`=>3`k^gs#S(BV9Sd4&yA?+ zHlD~zqE1^G4-aT>+q7XltVekqO~eB+jS-I1++21E455HSTvm*l^!9i!SJn-tRjmA3 zdZWEIx;j>JJH}R0#V$KekNhSY_ngQPtsPXd=3N_4#0_o~zBlMPr}BJCT#phuV_ZDP zA0Fe}4T~7&G!>qyw@;x;SJ7Q6*&Ew6*j?AHMdt<5(4vzr$8Y(bGUm_)gTuvz z{9y$Hj^=(Vl~Q96>t;QrR4E2LBsSksQ1(&sa7w_ztS_vZ^;>H$$FRF1+(*9NrcMe7 zf_vrq@Faw0-=1B*V#u)Q)(YilSY68OlOzNL&hbuMv!|)5Fhkn%8~r0M2xI~;h(8Q# z7Bjilb%K451a3ovU;g&-QqKi--oT2zPv6*mGCR9;fAquUzhgbot>s9-GR}jdmw2Pe zR2&uNKQ_%)VzK<7GUYf+O150HpR6r_=smrwhs1gjEd(3xlRNNcq}>z~yhOer&((5s zS7^^X39P*s^kNIKlYr==er!7g=>9U&)?+getX{O4*nByTKFO=Bn`Ur794B1!jLvP~ zZL-(Z-}A{HaOxGKaxhiTSiO=~9bJq3a*kRgFq@Q|&%z(zvv*6)OivL2{g4v}-j&f_ zBOIKF#K8Op`^>>@c7xr4*0H@kETn5>X!R9*Q}0#m;bxe{kgU{xNl4j5#d>A3yG~_O zGENLS=tdy3b~)&g(Va)T_~~FYc~9mG>MQOD^dU599_Na?cPVR60}YuF&Zj3?#`gW+ zxeW|Fe!`~V!3CEo=1UUB4EAah$7%$ z)Fq3Q_TAv;n9oJz+pJohMn|)999{DZv!u$DSB*WgRg>)(wRk#dAU!!|E>Jii@Y~FU zJSHiI{w0>`sOji!=iv`LkloN+Obp6d-D}ZGD+KpF-cr^ep-A2P_LwAt_A3@%GA%eM zfUG(DPRDNGzizY$(A}-AGRQtYJyCi(wG#mzdyeA}Fl;Z*S2S-c4~=5?HtrBc2!p~) zKYt7Eowd;?f)Dsbta&_+Bp7B^Ki}f{9fIQXjjf(^kxHybBdQGGWoU>~W#___1=NxY zEp2vVCDtY$E{|*5-2B%uQ;a-gf}ATiU1ik! z#L;*aW;I{TwK*y=gNGSLl`xkl$6^7pPO=|5t>T9oo#mWtAo~MZ<(J;PpsZt!2bCIqT?AGz zo$T962I;A zk_36@IYAhaNF4J;W!@}nYE&|k+1@3SS!EuuuWFHXYMOyfr3e|%J-KL${MO05&MF(x z>b-bhsGPOLLpK-YwxNfZ7Oj{AZ_1sjnKuDXs4;bp9+sp{{g60&*bv*T&xgmcE;(1B z#Cc?htRoO=>0b;~=V!t?V|Q;`59&M!v~nbM>qy}N3&{We14Kd$_ggn#-T{mk zgEhA3B)-i9(|a_Wy;;bexA*IQ>_!th`!mPfZ=^cItO~GpvuDab5!(+*IJj$B%K6m~ zanvk6=G+`?mE?$0p&&`)o5KE~PwE4spXApM)rR>wSqb&{PZ#gVQZFDO-HHNHX^Ot} zC%yq}TXOKuA5ztS#+C|~lqym)18DI)<-v(N9_1a8XO){pGAt&fyn6U-f#eRHl0YFE zhsKq{p{4saYMJ>C`N6a*E7|;cyK+dgnCV{}{$p#~ZP3}x^P9B>s$fFxfaXg1*t!?5 zkECdEm<`RkA|5pPN{7t~97?GN=2YBioe(*7#8e?tjD%H>s7KvMKLq;v&vog_jmClc zrG^(lRoDL{O?#Dv3-RQc_Ge$W-V#0Oyx=9;>J9mU7){TC98;P$TC)$&yvv9ac?4oH zjKk};IrER(-D;2f=N>X4ALLyr;N=ubra|`3@8}+oicJjab>O6SL&q*tRGN<%F{G=l zIIAv#wtKj$rav9)s8vd!=t@gfrgQU(-C8Qtl>}jtFqI)bOR727_wbN)sZ;OO(j+@U zZB}qE`+TrDi>4b{v6c#LC89C*P$5*#W3MsL9U)7}rW0|llV3IT4%?UUP3e{>Qc=@u ztz|PA(P3qjm{R~#$REoE{P_^FUt(@imNL_Ls2vW-^%WI!~ zD4VhVrb|K(07rAcA7VEtJSPr_>;+}GHf_APR6`w%rF!V{eZfGvhLntlZInaCsZDY^ z0A8Xbh;C}SVsCU!!Tz#neq}1$#V!|E_Y?Z*O9M0PD>h~WFul>gq#sf{UGX?cp#crS z&My^LdG>bg6SN zf!%ld)e6wBz>}45)Y6S5LQ9~asSXxN6py1lmH3&q_yT0YjBur_ zCT8CkI`Yqz31OqgKn|OEV;J)j<60!b6wQKziDhm4fll*=@`Sr`HotyS^lJ$y=rYqe zaND?6Sau?xPI{dqTy&!4V#q-&r756!Du3ny3039LtuoY#Q;HBj5goHn+VAH>&O;K_ zK-W%R@tThMQ-9ZPekC6H?~InRHiK89lstE=DSwT3%KHYX3$;-x@;e@merc;v1F-2c zU-3J^HBL)$Hudh;raTt z%K^yaR7J9MMn#Y{PwAs%0yYAKIer^4%GWOUsI=v2sx6e!B&TC0u67WB33VJ^BeUG; zsSa@!V|f})$tXn*Kuj`sa$TxNXnkz0b?Lso!_|mDJT*lUaqHcJ-@8?p4ut8MVKDE? ze)$J`US~T|WF4?K zh|vC;0_0$tQp}mv58=djC~R7zpkrI1`OT_V=bELWI7w{;od>(!yq0LQe z$$6Nei7;T@>p!K#k>?(#)d1^*jpi8z?G{5)b5a?>+d|OkF;x5lrRe2zgF9)}(~2?` z0e`^RaH^Uc0^@_i3s`8(C$qn}f3bhBu_v`@Qxu6EOY*%YdmFk<^oL(1Y z{qXzB76(-K5>8QZoo5<8-CBJhAZDT!kqny~kbuIUXpcDHe7siX0T%?KbOBPy6gIv-z%(&q?HGt+4$iT7J-QPXJ-=E3j-uX`s9*Kh|KqBEnOOpSkkX}~uT0oosk%s4(lH2jJ4;rQZ&S|= zGC~w=#y)2cX52MtXL8Sl0dSmu_bN8!ESO{x(aUD%eJa$>@To{GCpq!KSj#n#YA{fu zC(bxTY|x2#+=TaJJUP}Hu9x$TPwbp4dnC+D*BWEZSs;F+6{|yHF_61K-CeAdq~l(_ zUA!yAvP&6it;TyaHDOE%XI$w}W2Dg>aazvYm3SJ1W^|LUp1zhIqP9N^vp6&o z>E;OMs8EV>@4HzZBUu$a*U<4cFjvOlChy*$IrkAQKFG8qU9VFW!;#T8pl?r}GMkOz zzXb2qbX)v(kO=k?Vs}B4zP~P1%p3S-Ix-_`3L~(L%NdOO>=n|b3z6o$7}qL!@_5$Y z=s#DTYU9KK+sNFGE>l1+D5ZTIR5>D#qK;7sr!Wt#geE>KkxVX4l^#hpI>3feoqL8& zE8%=k=cmKqNJje?>@j>eF(NARPn~;2WVe0XTIhEL;3` zC93I>{^#ZBkJOtvhT;_J@H&1rDdAY&o7m!e=-BPKvR1pQ>s+#LT5*sQTcL9A;M58b zlQb@-yK*7Fu@f=j74}3L?xH90B@*_a}P)_Cp>wc z`pBYvr3o$!6_Ln8e-Bt~pFZsTGcb(xv#<;-!+4vZ{^fWR32^cEXpwP=gvkKgwV=fiv2hHar{kPkJyP)%c5W;XSvSc=;*JS(| z;qh=#6Wx-O+j>~%(QX`9`Th8)KJ)oe%fb6fxX>65oB-_O<`2A#ht(oQUnt*+_C<_E zu`1z`CCASI^8n2r%>S9j7F-_)zY@hl9%+%NFNuyW1pVzDhI1#Uu58YP4kjV71k>v3};YXH)fNeu3@p zVIqeb!V;u}`ck<)q&pR^fp<*fXgz#e8yb1W;t;(R*rTFH7bn5TCgAyI{L`h_jbnEv zgg|>mfe{{094S&S?t|w8m&$Kh5Cw0d;{t>+nP@{s6p$e3_=(k10>e>|3!O6r6=)4i zHFVEAKRqo{^BY73;wy-QSXyGh#%M>mZRYfJ+dNjK&Ko;qpygS>NDAHnpDh)HVX*Ic zc_nlAOcwXwT!2ke0cSurj<%8j99jJ+gtb6snmCMt!&M}!3jMHMxLOFGd?uP|NZ_30 z2m+Uzmr;9&2lt}Tj23c^%ru$u zh<}$*AIfsdU`RMsoM+M=@0#sy0mJ|y)B;fmOEYO;%LM*sCu--(X1S}l>2e|kE$@Wn z_B9)44`n`(R<6XBT^Rs3H<4uMRcKvUi`ZuLiTJHN0=VY1=YqZre=3t$ zLVq&XNx-!h9;l=ECUB3UO6t@-IzwM$SNELY=AXeP*at@g_&TwtrS8*i?hJ?DsXlk) zr|v%)OL-RE%H1Ix8n2rd!Fp?)k<&uVb8$y43r_fJC)v8Uk2w`^zxXc5jttF2{C4uOZLHU?uwH~ZUX=97Yzf3HVa z3jVT$Fgi5a^6KuB+iv)-wD8yTg*xObg4?vV9F_Og%^{JtE$`-h#M$vC>%A~Q(P3)a zUn`x7c+Or`o+_-I86u+CGJMduR~%o(ZgBApqtbYCKtH5)Q;twFyEn57e;NKNin1q$ zvf|jKK`gmsU)_26wd!R-@lMC24}Pgl*DUBTj6>~%AF0=k7wg?e*RAuv$GV$96(%pG zaj&V0$DcE@KbX8|!1L(`?-4)ns9SuolRwAaNbLcs^%#-5vO(if_4^5<0TwzG)HPpt ze97p=q8h{!4507^l6Z7Y*5^eQ{(!{%&4;)MmYN#WG6TB^YxUUis$VxxYkkQcB2NDZn7B_e%v7!5SmRk*LPkg*dK%=$b{l%on(h6 zXfwxlRwu7}xAMNOM~+_RMf)Ph~NeN{qA7*=}q1N5$h5#X?S6 zqxkZ6@e`4%Z@l$MCvLxl?)ke)XXfy_&Cku7QprqU)k9zBL(>LeysOh^hhUW-6mky; zkWF7Vhe{O$-H%LLbwHf1xPZmh@H^`LEnDI44_NLjTQ(Y z^Loqk@-E1DaZ_s7R#Q9Qadj9~M4xo79-q{8RuWtlpz6fVqkE6<)UR=K8Qzdf1Zw_Z zEkFXYyh1m-`Vd9cW}jiYgb2ZUWb@Np^GV&rE@@R93cWLKtT3>`>!L?^F}cMIdj=P4 zjGO<^E9Fa7f0oKwi6!$TXc9qK);7ETdtTK`O6M7{iE7;?-=vU&#gAcB8zUsgVKc~E zj?dtgZl50l*BMYbo|9jLnZxLw3obbV8KrX;WJkSna30W`u^S<=KSQYk&x_*a zyYksqCUJ!E=jtGf z2Ke7&p)1|~UnA51|Dpc>1R^x$|D9UwR=K_oTCC3KOPt7svRAVI;-G#tl3<@GYL6O# z`rS=VNMgISXCiO{zfIIkv_5&*avGtiK-9!qx z2v|c|7(mY4M6wMMDf(f9Mm-lX;u;V)%w|N#b3oVDnGgptajZ$`f-cM>28Ve1f3Yem| zhbhw65E1=g9vnc)h<^QpIiy*DX&ymf0hsrfydpHAH;#_6`cZ)vr#XXXl}88oIRx%L zdv0z<4hD4xNgqiBdt^h~IZG{wM`ZI!8^vrn08JEgju^<(uL)I-_TpLZ-rH`SBS3g$ z1mfk#E&2DGQRf^*mK4~AAs^I)A}Itz$b@460)b`keqz!qam!GelmbRJRB@ki7N@{A@nwEk!5v?m$7oFUo52pi}kCe=$Xgue}(w%_r z77t%l8F{$bg;&S^KyjmZaaQ_Nx<0b6t(I`0W}tPD;3d;hjbDG}GjpXgw!O49?dt|) zJ9b>Bw+KYs(Uj+DCt>472v}}Fu3|X|h^{W`jP`hNvOn=+#J5T}h*-MeQ=J$u*4@Qx z?<^*+WRD_ir}8=ww)b&^NyhvtVV}|m+X@q_TL~wMF(eAeTl}-@S$%{1|=2k6r zn9{&Kj6yuLE1dTRhfycn#?M9>p%g8-%{BRpFaw!~SI@$~Wc-dj;k^AB%F+!y9SWCD z#g&KW+#MepuD6Tlkw$L~gWh+C$k+qXhwKwy7r*;C;f>~Y)3$hd+x?Bsm82x5?8hok zu9rcSlqjR+ zUm>-*h|Bt~rb~Jy3N$51)?eFr%`!i*KZCgGD~=f_6PaChgciI$Xk(w*>N$ZZ8Ge&!zUQ|!W@a%W7>T?Nap@vw?rRalZ(m5BT)=PkS=U1(rPY1Cah;Z7n?$=2- zg0IQ*GPdOy4@oGR^q|_dXb%w>S$J>mte!8R<`pG*Px+-f(fnYzW>7V6%ZQ0HMVTaO zfXK*N0RAXi!FJq=JNJmEy4$dKBQE>!`8{Jl$;usu?)q&t=%n}B4~NIs=v;Huv$#GM zTsS4lNCT8s? z$8R1Mx}!qvh$N_|e%L`fcH+8#6W>aRT7)U^MBcE*AT)1SS zy*zmqgdgv({M!Ak2Da5H60>7UX~`Ujtx$I$QQUeCO4MSTzUC_9qrSfK57z8Y^>bo9 z@URV&=i)A)hFf%3;4IF{FY`i#9s_-Qp9W0up46ILQD{j0ldiSBVN}J3W|1b5hLf^u zH2q&Eov+hwb7-b&&JlK0Ag~mBvlrLeg@70z;8JddG6YQJLgMl4hbouq^Y?f0X}1mO&ZR6*A#Y-TC~rT>&sGh@y5!~ z4zp+8DCs-a+>~o3>y}HfakDp1{)|+E{`qu12{d!|$L!C+ovS89q~v}iKM^20i6``H z`+PxUU!KWNwiX;O8PuL{#AlRGKq+I_-(Um3NuK(&tWvwQT4g+?FU z$4T1fQJ<2?0V%~30op$5R$qv%IEvPJrd&gCnWG&3$R5;fI*gfzySw`%uhl=uEgW!I z@E`uFTg>fSq=yqNxPfZve*pPT#S_t5*}Cnly6r}C*%_QA0~L%E?mZm~e^2v;3ri^5 zK}sH`f>FyWXnDyi@oKv9uo`YP0Z}ymDDd?BwKw~v5U99aDDa&tx2X#i zQE!Xa)alc8A%FZw^)tqoa>VCyV*bYlPtkW93%WfE@m=MaCHV$-qnkX;xPBt=CVUiT0Yqi@*u4CT|aeNo}(Ia`OZoaXrw92z#@T`N#X=tTIsFm{}7V~vok!h->}3FTFL)en-ZOz<22Sgi>MpUZlHL_Kp`wGpgEuh zq|24YGk?`%AaVL2t*UNhBVSF&Yj(M%5q|o7+)_tQxQB2C1?YSnf8DNfE-zVlwQlm% z#d7Lwym3%1Su|LO9=5CwOqZXQLkLUK39Ucqkh@#Lt+mu1d zsvJL>myS6WbIElW-YBeTP(!iZ?C5YxKV!aUxQba2gDI$%n(DEf>JnpM^PK%;FSxlQ zwjbc&IGO1jJpBi2+C^_oKTmVA`b1(Gf{9q@d7Yom?J;yx6FV;1r9bLFn3=bc)9yA_ zWrffDpoG7>xmt)XG3FZ4xU2AJPkNWiq_>y!%VZ{Lj`4&XY&babA2Cm8grQ1-VuB7{ z%{g(bnc7L&`AD#*e=kQg?@e2X8?YOVUt0=TNYPoPS@O>4i_!=K$GpcP2uF+HU|Dkh zb>M-E*!Ce|(;Az}xsC8KMt-?Jc5ug@jp%&0EOyz7ssO4Jp+I74;+B)qFwT3@q)}YWs5rX-Y9xs5Y?fBQV z0pFQB$7#RS+)0;>j+FeffRGrFliL{SE25~j^kVED>dORaRxB?bFdDa${<8-0Uxx%G zPs~b`LzENUtG{2Tist!GZjt+`0!O(?jRQ^o-@;(B_luf+N66(CmfzclkwEa_aSa8PHI=-&Lz-RO6*pBdD(Rw%yFNo|p1eNfy+tM?TAXKgxU zeLBcivro2*V$qRnA4h;gVU~vzw((}y^xV@{gzAY4!5P-5$uVNH-3v`Adcg+!qVZpB zWy}mFRGlr?y31=l#Yj32N`X}N;+22FjPu#`dXHB98}f( z_vGl7yB5*DNMVX1PTS@Z68{@)}VO2&kZaO|VxlW$A_4@~m?JC}E=leNCjF z_#wy_fCVe*AgqsFbKpnN0>5#cl-jI)RL=^uf9G^?xcDd(z$n1slKh6yefVhk*yeAe zYo$J0k%OV!wL8@ue*Pk~+{YjQwH@hHjOvb1wY1~}R@#Y2zKOoGw_AhrbP{FJpwInr zaazs{5nZbOq_EE|aJ=H&EOC&d&L~}EKX&)>BRcJF`#4imYO0&ui#t}s^7G`rJL+@PYIL4OS3BKvjDHmwmIU6We>o-GLw697f#1*MX~c}DUpNTTPap4IEK@y z-B=jc>PGz9nu4bk8ed09(X0>}STj#WTs7;6p0WxY#^rPWcy`l?mAIB7mBvKRbMawk zQ_(2<0dBTJ>AXFBbkcolDLO7x=~*yh_SLLCii8;-Ckh`c8aCqUkFSF8-)Cu;$Q03t zUVrlUy!R2!eo-U%KHmaqb#*b>w{x31-<+1-<}X!gzu+`ZeVueY$dEE~BQ80%*_-7n zn=q1f_6!?|N9urOt;lvePjErFygR__;S(UXDobX4Dy>dHYY!IwsD7xEV5CT77wab#I5Jq3{p z*aNWkPt7X}=+Vak9Irbguc(3q}Adt>Ao z5ep6quyf2Sr;`p-?$LHM_{iHFG^-}4BdlxtJc?0;I}rlv1Ac4j04m}7P%oh{{&Tzd zCI+ljS^j^=%L#Iu`URNP?#&|GHFc`llr#doVgkxN5|Kx5PP^5=n$?Rr`)0UThcT&7 zk=P9i>F{L_o|=m=gi=(^N|un@UP)WSkq|kiT8&=3wDJkcm;9D%$cy~nrpAiXhjQ9b zMB9$?v=wTb-3xov|6+jhLq4=fqNS~vrhh-(@3pfjeoQ5++qZt(mH!$6GUXFt2%H5B zC-Y|IeOrILVM*)+3zJO=754YI!*TF&Q=sEfmH7i%Q!rB`PSw*Jwr=1ejRc&XFOy;L zT@;JJWael*cH|sowz{8z!m+kp-VKot8FLZ=eT0gJC-)z3_SVI11dFDBLslhEE^O|Y ztgNKAX!8m9lIiwrdnMGy>?_Xeac#HQj#^Ihz3dWk186s(>^FZDjj-V?VMVk&uFk*t z7t@c;T99|9`r1eE*pVLwG%K1fpbC4zIkY~vW3WV;7U$NI9ng&zD0jpRi= zrT8I%>F4QAWFP01k@e)iOc;j9ZqUpp1(NZ}AvWuD-?zoXW?yGcZB;GFc!G9I$KN~t z$-UUp8WBE{RVXY@363Yl>_lIbkrU9R6A}*T-Q?M&uR>AXfHiGnERlvi3>FqblO7R! z4Z>v_at`jGHWix9LWkcE>XNX2WN#}YQ(%2DkoIY`CcimqVsrC*#q+edRe=bGp9poN zZLD#7c+cLsk}XT%ZfQnSFKp^VylN1&i@w|Xv|!Sd~@6aLG%-x>S~WbqSX?d6~J1 zDNc`_j6DiG%W25F%vGGI?5;d!)i)7l4v(a9vduq}3350!b8n_9MvLg3Z#5%LAP6IKaSHKAES)Y z&paA5)#`}vi|{Ps+R}$Pao&X=5TbLuGDG&dJ~d|Y5i}b&{UG7;@m)gtAQ>=X;esIb zv)i;XAojnx02__Auj#qle-#9EM>vX+C4DU4oXP-X(KYVBx9y7mto+R#chJ;8;;R># zSeC~WN)@u?9Ej1U*7aqd)!g|OyM1Ual2mzl;43DsP#3lqDK$)V zI@lfc<`y0LzW~%gE58|dw%M1z^%YPN)T}7cEGdSd2|)v1i5ib%!BLQQA?-oqfZ%vP z9P1Y}#~@nrpM%qo&7F0)DZITuJW19B z!4>nA+&BSGkv`f@@?bkE=@*q0hK)GuBbXQ8v>$ z`LW zi`3z+eEml=jIsXDG0yu32$awE5DUhfO;ORQZoKVZLmjvUv|kNfT9WX&wFH(|%s+Ai zK!6brV1xsBy|HYuAq|5^(U}26?Q2iVFrwLlRxbMJZ%{9N3ETwW6KLVJH3ZM9nYR-( z!0$>_8pa6OI34|<@N@Hec7c$7$n63OhE^{6$Z%N`mLRmYn$TJEcQF9?vQ`qt2wFJp z{k}of9=c~Iupny_h3?&xYteZE)}knp^Xo86BeOOxuRl)w#pAfWd2&M*)e^kq(}XYn zG*XZqcnt0rt-C4k{#&Y zy~wId5TWYnyV)}wBiT-2N+AW}{s1>`k^FdvBzTWM8)+>5M&Qt)Vk6*w!Yv|FC3pi=Z)Kv9vBondzeXQ~rUO zK6KA6WaUMO$dZ}8nRx_t=ofg~zTmf3&mx$O7BtIe&tWhV5ZU>dSscXckNFt`%JI9F zx-rC}SDiNN%(+Q$CF@h}f7V5uDZ@-*KfC zx_>_;S{9hw2|%~MfVcJY=(z6{5T+!&ZV`diRcAz~*_0s!Mo|DGVBvK6H91fYx?>9> zT8AhX@fa$WZ9$u8MR#sN*1g_ujkkbtF_P`{ z^;z|TK7%p!*@Eqy0OCz}TmJ<*p3Bt`GAqM;KUL2sHV1k5sHAZ~;EvF734pQ$gdFfB zs8i*#J1N-NA$aVl-V zp_<^jMSk1zGZ8`{BLS?+C{BB?pFXS{=zSTT?nl;LH`^mD2y>6%&>GeH1nR{v=32q} zksEc`b!7`>CIF;BMs2L>Qk>@QEXm=ayLW(HjI6qNev?22Kqos<+diN7ata96m-^nP zGqF?3WFZ7bX&56AAk#kJ@6#^2{~&VFRSRCv0-%$fcw25lcWm}|2ng1e653dMW_IP7 zEJU^=LBJj+YYZG(khKD!y$ovKPtg1R6O_MrH;OF6XD^x6$PJVxeWZi*(Vi^lA}}h> zCi=P`VJ^CK%JnaVVPlr9!>l|9xAj?{&Vr%cBx>)E(1(7G&g!!cBf>{om+^yx zVS0uV1VV$U5p_Mta~siDG{B`Tu)foOo!bWIv>+CBBTa=)+29$V1saHD;Keq<4|Z#= zS}dq5p1vux((u?Z!TatudA3247#gi1HD=I3uWvzKbPRoYGx~y7f6N;@;QUrt*@jWs z3!aHg*=Q{Qfv2E5F8J+1la8WtUK{N}ru}GlGX2oE2eJHZ2x*TrtObk*tx$(<#oO{( z$n*ieV=8*lasn%><|L8pdEk2fU(W-jd^w)1EQ^3eU`Z)XTQ54J{dq;tP6#hTmY*}{ z*O_yU;Lx#Set+xkoxq6#d{qQiR1WjREC6KCL(5T^eiqI@HwXc-G^&?rzY zYWH_h`~Nq$%PKD-a?w)6OwsqJGX%(R033xkkn|TR={`sgA{Si=3oY1o%{Q9S?RF<$E2x~i#Wig~UxnEG~m6e32Ni$sDhEM7u4u- z2UhhWmUW?R1+GM-t=#vpy;JgHD#C?!j8elx;HUWuBZ#Ot@3cuNm^08Gs^LDoZJ&o^ zCjc^N5ZSl{yS{8rE$lrH+B-FycevbsZTt`QDSmZdhTlD_Y433f1_aTtz_KPj zZef{NrD43@I4bRB)9rR6O4lNamiyJc=P2eJ!J)SO3+m`^bKCZkV!|717mVjf5Fo=A zcphGV(oZ391|idrsJUVxJZ%)5=%bGE^RQ*upy=Y2$moI*7!AS{$RZ1`H;GC*fJVoU zBSKY($_wVSlABGa=11|id}@fSNun1mLq=cWs%EDVglS+z0{-GN>5`MRNS)sXZw^f^ z<_dJO1Mle%p$85F{^J$d;R+m)2uUuFfhu`hIAWl z+g1Q{(#0&cF-C}BkwFV#8MxhXw5PyJArj3{btxjecv{DHrr>1TX+%sS7uI7GE$Fk+ zAPk8SvGIBn3;L{3#G7!R{TO=iC;)phAwJew#|yC`#T<)Lu(1^`Xhqk?z#QdVBf$V& zmO(G=MMTq(G9hV$7WAgzxhBD?a@bHg`5p|82jAN!`RF5(WO_)N+~PjOd2Q&k+t3x6 zG0t!*bWp+K7-Dgs@9>RT;P^LwEM>7H6X8{%K}rqJe@0`+q4EM`q<%rpCIH>J%}>G0 z78I41AiQA-_OkLhmA>vc@WgW&zW2Xre(;MFn|HVzZ}VvHR1Qf_1W|Fpv`->Wcj#n0-cx@Ki59?j)I~2^idhw% z<&n*ONZZ1Q1W6zF^W5>$=)V2P)$c(pc%n{$PITfu^_LKD2K+^5o^tr644f)!s&5~1)w>bq?A4N(t57fgE2`n{+;*U@ zh~QbZvmQpP(=M@X$8!;eM)?{dul;X?IWr4lVOW?oSCBdUYjmm?0BadJQMWUD+C#^Fv6iz^qH~h-LRm~PJ#Q}-=bTd z0AN=-%s;j*=cV`%hh6mmTy+eV^+QmN8mzqfH>;`tT|F7YB~_C=^*944OF_*bq$TwF zL})Ano0SPoQ69)u@WUN~FFj`v&ypKbD&*Q0^d+t6n)t}k8d;q8gY#IlbrI>Z zG^z5`sRslUx;lm|N+7!;=!^vjS{#c*j>$WV{geta{gCR!Sn>M{QE7!D)rI@ypZO{O zWY-86EcYWf<`B67@Zj$<{L6Qf>^kV;dLtjBHS`T=cJ1?cW}Cw~>kMitCwL!OTPe`l zbUO`+7KC9Vm%L`Gw=rXwGryKjcB8g^F;`U77phgKw0c{>sgMDa@cGN~JKQ8{=QkkL zIeUYeqtN?)0)t0#+rj0Fu&U0S7Edz`vnoPxO@2bFW5@j*#RZ%Kz5mBBa45HJFDt{U zK0TwV+@3*VTMp2B|4#a!I7n=B6RCrJ!(Oqi%?v(&oW2KkG5Fj*GRHfnbWO7|N_gXt zmZ5`3@iu>Qig$A6LAO4QHzZ|1MkJxL>t~(Z07y5qqciymfRR^!7h%mTnJj`81kd|e zZrh8wWSY80KGu+g*4JT#vhH84@Q(Zj)%^U7j`4KF$+pv8R)$%9W_1vlNto3ULT6Rv zcMKlI9nxZV0Y21`U!#sc0KlL!`F7tTwxxzRP$~!EHAkT;IVMQ}5N(c9a-;;S&mO(I ziU3M7aLsX8o}V)xAAlS0haLi9hc6 z7|vZ&p;ipyyr^M|?~aMIquG7X;}c&^(AGX$Ro>Ad3`ua^Vyw!nOnMpA&Tpc! z|$o`W7+cDUSfM~YkSNb&H~8FuY+Y423H?lfFT2xQbEdf^g8wmq9p zwBv619NL>$2;7+r-Ma_(`2D%>#3-_{>Z4%JEyXq05k6-Hc13=Xq7MEX)%w&dj%e;d zb??J%cyNfUSp=4qBh1ssi=thH)6q|C%OM7zK0>B3aU!^G?9X}Nw55n`ZK3~>J!BfX z(5dk!b*Df;a9tf%Mc&)54*egh<(Y|}>kNfX_u}sU56HGim6jxYR_)w~deoY9V{dNL zTy!z!;#ZCPvBALs?z-bw+<4=StXZ>$<;$0|ZrwWG{qA@3$bHRhrRk8m?d?& z?M!pesK*M+AaccWgq@!bsZAe)bnmF2nQu77b{5+NmRFos`fM&BbXGl9MLuFjq5Qd>nURP>=GxaZ!s(lA0xPCo4A^lr$>ikIolZu3r{as> zOBO_IoQ(ZPJihm{6tVc^#uL4K9Y)j_WUV#cvww@8qqcG)S!*+g-rcC9cjods&1jIo zvZ`q@p6#8Admhd3^yUmZ_9^;f!++FOwSsdtn7r|7i>ofOh!#%|=Mzt89(ppvMJ^Z?*MS=@982sK<7O%g?rmAA<*R|>@v6=_SwEL4?efa;-D{n;9zkbT+KHZ_+ zB`1WS3nn8lA$}y`Z z9?l+ETZ8*j6FOTA(%bn>M8&y?!08zcGkwtL)~BKCML>f9vnuL))#pIIwMu312J*9W zbLm^a7~5&l*Vo6lzx{1)z4cZcC%>vlr_;Rf!VB!#vxoP-_q}}l?>~xRkFL9gU5Ziv z2HgJt2EgmdpdIg&VxzgSl|~7!svx>$lz8Y18xdQV zq2s=e{Z_1$^Gdo{E|4Z@z>_tn*{ z*t$c}-09KN>ybza>K03Cs|?OwFR5EH`8D4?k2!R7PmZ8a3LbsN<*mQxaoL3@-P_5h z96{cNWe{9jLtM!>`so!(qX59U|F|I(ARa z10^FCfn^mGWU&@-3e55_R!s@%W8MCa?(L|i$B--kV0H&K2cVN}sD^vOIIW9(tQ57mqus$QL!eRJO8lWFP4 z>rW6|mm;vVdP3iYRauN(Q$o5S>k{jE3EliCV&yxg>5flRr29|}_d?SDo`q##FD*j` z=SEtm*O$%J#kcEb^|^>~CfDEl-uL+V&wq|PN@(N2zySaGgCDT0zLxj=(VvWZ9$`f= zt1cj&-BzAPCDIrrqt^&kK325@`*PpPB7MXq=UqGZjOV?NU{l0FM8KYjGsT!U3v zjJ>!tug?~2r;k(@>eyZAv|m5sm#GLlhoq($YgJ)Ym7{5zyHyrcOsYHfGA!y=`qa&W<5nkq`Oc} zk3iOVil9Yc`NSr`BjJUu89w{X1TSnKo!mG94RrQues*VufByIQl&;&;tN6=L#<=$h zXH;@yC-Wk94tRM;bLVSx~2-x8LKYFZXiU_1&EPhCcrABZKVR zHMYlNG7z?jU0Z|);xo1+Jx@io7)bqEIVy#2{~N@BzLvob`K{v zg6DpivOhgS^t%5caMt^=mRyZdc@9SDYX4QS5p(gC*lXTNjyryXo9Z9q7>O)eiU?(E9w?29k1a1oB#6DFESKiV z;1SfZyT%^NJb-R}W|%$;tT=u2*<6IM46K?+PB$*tP9J*UFuLi{-1aZK^Qi$wP~lwA zHTH@{L+#^>soq|LnKH>lGB_bW3d{| z!T!GS@8SN#lEWQCqBqVxiY^;JO?<_JE2!9CiJ7!;hNR!PK^HAFq3#g%PuEj=bc_f{ zOTn5pi2C!rv@&=$UP`N*eO42#sFo+kzlnJW)qeM~_cz-Phft>FynU{FAo;N?6ziR&6A=7$DV+YJ3>nsS!7)GqmU6?fWq~Z=!7wT2nXn zhbDpD2OK{5sW`XX<wiP!)!#-&YyA|1F*`E}kTxPzP3Y2_D0=(zSoN>Tblj&8QUd~oc8gg^}YKE{zZDX^B5U=;hrw;x^l zXs-3{e8efX(-Z_&ESlXxodK{Hmt&S^!vPj-CjffSfB6NRfQS34IFih!APV4;1G%~w zqd}%6i(XuU(1N~Y{cQTXEhH=b#r~mdk8@8DBxrS z4<3|b^75{NuWcUE4mO%Wtr&maZME1`?XCh1?dP_$=^r=c{&(<(gS1}Sik6ySUy$NG zrG8zGQJ^XuXhuZZmaQs&0!jeQTSUq7|8jEYb ze@l{IKa?Vs8Gml$daz}e%NK7>(AZMAy>0JQboGpU{za9N?|d%I4R5sg^Y;XJ>h@yZ ze2q;cl)o1tpt?eG&MF&`vCwG?ow9vWBOdf$+4rO^$XMv4jmi=sc>cKpi_7zKGB=5C zxDP#WwBY-AB{1s*hqw2Kx%V<82`-!ZV&GSIr`Wn{^3^+k_S-a1KR>bJoSp|yJnQh( zW@jSK$zeEr+~XI&O-(8E2*9i;9hM)fJ2wyWz|1%3*5}Y&FXgsFYbvL`BJyBd@%eAY z*?sWT-!ASLeC>y6w(U%h@X6^xLzBaozn`Qhb!u_Jz5)2}+tTdV?M$jD(WtN_c3nv> z+DgY7pmPhT>8PB0dO~-;I84@pYbxhNH;eJ0GakvEO?drz?~%3Wa-y&OPwZ9i06Dp$ zm1fPQM6dfP!E-;1Fnp3jr4_0D9k@M(EoS`_NvzsvKC&;~i0;^oR+A`RdImtJx>1LJ zncFriLRgciZ=yYg*B2+#)I;iU7s-8XB=)qB+}lR#P$!v|9^AgzqzI2;5gdW?al5B< zbaar(6lQll&m)zZevh{i31U@6a-KWgyE|(;XO5hn%g`Ms>9bXph&k3x;IxDxuxpEk z*-qWDY5wZ7!3MnM$8y`hbn?-)vM7PKWc;~PbZ-%6+K(u0x}q6fGTbxX^x9?y>isZ` zl7=#j%-HF2UX_Ea8OUwlb3}|ew?EP&Xz0m58+v6sIyC<8S-sDXxOM|B?U%HpqC<48 z1&3}pM7+i)O3IIwVx`6&x8B&4dq3dX>_`{kWfhw0-ihkk4*C@eDLxILIyR$^-v{`M z|IoV1Njce{c;4mq`!b`pYaR7-FSz{h)-)MsYBt6);bZR)vSDprK1z!v|MpK|KJq6) zuDHPBqKzi6y4d1Ve;MKIdNH>hSXv6!)P~gA?Q!efQ|la}JowpfGxYQot_0!<&HayO z3Q9{E4XF$~`GU*w#;K*M2wP&;73UWNgAG}wHuV&k(-G>xk8|&(ZDKE(L}T-DaOZ<5 zw(TDMx9{xHeChjXG6gWZ6Gb|sx#K~H9s5TAeGeVi{Q80Pq#~2Xg0;9Dc_K_rxu}-M z!JEIKwrbyxa_^-r3Dj4ParE3lYHu@6S3Z@=T6`su*Zu%=@fA}(w=7yp=+e&;IO~16 zecqr$a(Byw7S8sP3gn52hjLNPk0aE~k%n^_>fp~Ilb?JC*G|+i5JL63BwlJHw(U6a zmzqfIXd=14o%Eq@QU^Ln>})3SQWNoQjU-+?j?-2^jP?+SfSD%>lI`fs2g$7r001BW zNklM&d7tO{%scdpoIdMU7SHwN?WSJR2ln_*lcMf?-9BC9jhJ50e7@gF#7bC* z*!XJ=y|yLyes3on>mQxmd$t7ckFSi z5*Lc|w)_QIo+CJL(BAx%vytHK`fe^Y#V8G8FP-?DEt%5%$Ip_)CfO2MNy|@LaST-2%90*F(V?9z$>9p@nlj9a6A_O|yu-f&Z|;z^vr2Gy2Y-?C z_6h?6E2kd%c-!4+`lgtTp@9R(JYL>YxF>r5VV5ViOx<(+@*$7SJ6*gfauL>&GNhgL z4k!n8{627}zZSz>hfegMnjg%3^QJ4R@Jl<+m*#9ncIZlBYgB-7Yg z_&F?-;EH^W3ElSeyp=Vz@4s{J&B_2~dEp%`R3c4m(;oVt*+;su7q35!c19+eR9fNn zr%5;U5!-y6_?APcWMLB+Bb;yVtDX3`lj;o{HV}yvb|01HC7gTKI0elzz39xu+tEU^)&qji7dk)?9 zY;N1GEl1iDk5+wVv%`U7lb>5BQkoy$TG-lP{c3~vzBx=Nke9`a)(80XheMd=$nqHs z2$n99tg17qEe#^lCn7TpbjHZ0pV)p%O7^8wCn7cspV-J`|E9AfN5%vsq4oK7yKZ_I zCSh}D3bSXeycGJ_Z*!Ygb!5~QZWF<89vpp@XBu$MI)e}Wae%`Oid%l0rnOU#xPa*H z(;RA4TvOn6U)tm1jG=cHRSN$44+9hz3x0finmva{o=|!U_8;|dT#Ye>P*7nR*!9Jv z4*Clh-ToXp-7{{O@RM5Pcz%!dtTz+wI++!z#W6hdf z2gbjCXUydJ%}H)}bJ4iRP6XESBE&v{RvMIpZhaW4&Ysq5oDR_K&%g-}oB*@3ctYtZ zhZ{UT^w~Iv8;0tJG|@#p>8-Bkh3+h|c$F0t)tl3}Gu9qvNA{xwA)MEKHAVw9|y zp7RfZup)%7{yI+gPV~TW(2&~SiM_bO_x2Znz_LXo_H}^*l!I!#7g;&KWKFd`jZU=Y zwynw%gi)C7^!idHceRq~91=|-K$u~KRSaebAq}+WfJ&n?F|-@=Tc^5;bYl!JewgsN zb(m$5vGbIN$i9lVp%WeW?t_s(vwHPvF2DS8?!5C()EHHnrIft>4R0b?R5ALsm5Uee z&Zo&pfh@Elz5sh^C7G5+0CcvcAloM%&AY0QPL#$&=$egXN1o=kDe9SM#$LuIMpx~pw&d`pn^t4*v? z78he7xT==q{vN*`k#bN?_af(+?NlwlgA@8pKvP*IZnNR*_)rGIg+*kimd5Zb55qB7 z^WbWBRqjG~!+#T}F2nJ<=26Zt0t^jhap?64f<0X$ALeOj>JwzmC_0jXXkiQ1j-@eH z3XPFASoXv+Qj1O{Ml$tjj@K7HZnd-rUiKYNO??7gUkxpTzWR-~pgT4p>fcoG`OZja zg=&5@SD(-*vM?(rw?6pgouj9JhXR80)|nUv>^gK!IVGeS`fIohh$rYCr z)6n8lS}ZtgjY%jt#<(>(GDABC+LLI<041`~7$(}4;0@95LL-y_snNBUp?|w4!27xUDbXG(Lpe`aCM( zhe^9VDH6L{2%obgUnp?|nB`G~6ll-aO>X;U?3Hf?IeG-$r#|&5lF1~GJo3nh-BiNi zFxOpo9e?%b?;GLMd1xnw*Y-mGK1~B-0$sDL>M~@oIoEDoAG#Ih6TzWJ(r1&KE~Yb@ zZ~idGuO4toq)y1G=J8DlE?%GHJ?{u}&1E*FC3CY@QE!jO6E8UY@2^wrI;a6(H@0@e z&+c@2dTW9&{zHf>FR~|0)QEue^;x%XJLjW5(=CsqbNbAn!!hwrOlNEt#*0`uah?*7 z=F6L@f3}`rPml}#>jFeJ669o}qhJUS(G)sMaBONB`8?eT=o`vsSjvAD0B3cau65m1 z9;l$Cp@fb9y)pmKNd^Vz=AW_ zwy*$)M(KoNn}T=0Imk!$XiNW{==#eL6o$3mV8GYg!hb*IaCH|5L*sZqtO0k6N> zCK!Ovd_6&H=Wt=GC>5+)R=C04u-d>fIc1@H;YNc`esNL_4}~U#_5%5e*|l)887lr9%{)Qj|<; z1_l+O;MB=H0Oe^qy9&302anH;tIVn`%Ml#9XE%EA7@}zTj9hCjLMKm_wGhSxWo_va zgQAEWwf2weDh?cj1IN15An=*5LLfQ3-#+E9_$Il{fg^QpUi6 z0|)rgkAB4N-MjMyhbdXKXbDReFXH;QUeDX#{s$BljSwkh*jUTnfN|h9yv`kHPvdkZ zu$L)>S(v`HYb$WNd~cTS*^TaRM3mHz^QkigZW7(O6@fq5Fp7g1k?|)vI_(jEsc9Iw zVU(^UeASn*>R*otlnpyxh8H8li!rM&#$NL-GL4Us+V)kv&Yk`+x)UUKH4(jH4ZanF4Za^S!LT-U|6ZPu?}&y8w=fad&i;GAf^&?$$+cRi4jWDO*e#}LjVml+D z$=OZ~TefHT#oZYkZ@8Sep5%qyu#qi|GCKaNWGAp>)#t@tYq-M1e#cpS*; z`_2=DJU23vwh2)kyBtQ98np9e2nQ+;87B_t?G~zj? z3?=*)ubxD^*$58TCpUE30#~A330ack1hiuyOfT#F(g;9H35G-{iB=NfNwh1ms!K>6 z=|Vdi9dAZ=??6;tJTvz*0n84;;l!YKPtJJCXaE_S9=7LGe-oywGsfnwE>gx$wvLuI;@WE^EcrfV#2cte0u9H0}1Ra1=H>&Mlp_UF-wPDFTq z6bjSvCdgz%dIT6n=9F6ykA#L+QE=sC*VQ-~#R)IaRN*P;=qlV`?>;g^1V?2QVdU%B z>ei>{&m;{X-k8rllmeqThzLwfr)^kc@rAz+bL$-mp4lczq(=W;8(Ia;54b$?tjBxa zlH{-cq?pJAC)e6>@%j=u54#LiV=cda%r>xl_wMDUn{HzJ_U(8>SUuNOG&MER)YQc8 zJ$p$e(|quQAH*18wPKW=g;~ACLB-8^bP@65R8+!ohR_2?(24wWYD7awHF**-Q=Z}Q9~@?ISs%+D zUx6L-bwx>Q5z+g@EP1Y$hTl6z_qpBEH3gd%I8|v5zx@ycD|%V>T1rt% z5sNo1=I~n&GO&6AoySgsxu^(^_yh-T0y;NC-Rq}g_@^JV2R*wW?suFKmWfq8d9o)O z=9C(EWyON`y(7rd+Tnt>s7mrT?+gb&q z^OfMx{fCAtwW3LS2Sz~MVuM@0SIm|j4hN1Z&RPPOziRZF2NJmEa+~{pZ1D6Zhps`m z?kbbI+KGKN#l@1({9}Y0-sjA5#jO6|(6b%F*G=2`=QIWmL&^`E5~lQ124+BqI1}hh(l@AS?^e`} z?IbT4NB?8bFn!HJ#Yk4K9ML4kYQuOvSyla z&7~ICTw21wfXA=z9^{wzYnnPBH9|VC>p@qq=H{QnvzuGF>F=vKdtKqV;M!BDWZo)^ z($&al-KfW>(`jzI?KZY;+cxHT~ZTNsNQ~@uKdKhw=LOBSZKBaArfDLCfl;=G=<9yU;C;W3*R=~YWLgpgx&|;SM~b%aleld?>F8~dgoVj-Rg{pHK8J`Cm@RgNZUYVd?HV^ zK7}z)2#%rp3_~C$q0dgBkaSz6prupt?Vox)v$da3d^pV6>ns8RF%u?xRHRax7k6d& zx10OfbF^?mXXRoTmuDOW!j>3C7H+mhw{Cq3<_*Dd7@f?{(JX;1u`psoese7*)^$>V z7jkL6x}Dam+qvl9FCx+&K^Y2}kwn`gti5wB2h~BkF6b((&B73`_GqeBa#A@W%~<7z zMjW?W?9zHoJFSVL{m7-@r|mLk^OeijG*;2`~L`^G=-Nhvvo02#KB0Rxrx z^_gycYTgnYIx~ps-JSEunMGz{1(X#-43G0v2X*I7e{kuB~Y0A>{0`h_e&Hk!%CUZwVz#ff2FBE><={ z*tX!ROKh&Xq=197mn|(fcf{oUQ5gVhSxJYvC)iW3NDr^HIWa4G} zSE;sVG3w5IfH8vzHsWyPZqBx49 zGo(pP10x#38}Pqx-M0_zW)S8Kv~rwd@MWzjCu_noF^Z=aZdhDw@MnKq$~%8wbN3@j z?tju__d%Eb!I6)D@j#dl-xT97-W}k^w*)DU7SICE^-zf+3)01eJy56P`xBy`bd5Z1&= zhw-4DK@!h@CO3%}QV`lOx$bPjmKdcrsw10v*SU4t#yOX9vh5V6ff1d2VeD(KwE4|L zF1-We9}BQ`x8_g&Uz~To+2oyX32@dL3v&tu*9(E`Y4#p;x$W*G_dK3qAYS+!E*cSB zaAAN@Xp&{w$H;0f_)Q5daZ6w@0rb!fk^9it~i z_2E)Ny&)=}t0h(+!wZi+ZrNrr^vY|>bk=T$P@O*6t-H2Qd~9b3gfocl+n?LEmW;7B z(10iW^bObW7x?&55eN+e-up(2ux+q;r$gFPTzrh06F8 zfYO@%odbOBnSE^8=Ra#lS{#xw14f8S)7roF6A-3>Q5r&+!k^D2+97rfipS}6Hp7^e zs!lrA0BOHqnJ^?WGW*3yhGC9Z^qvTWIsE%oT`$ezXkIx8mGYy6PUK9O5>YfWa<-)0 z#gK(9(1HO$Br<)Eos>{kQaDSxu5RkBj7J=YWnvWP7c4s652=nBxz=2R@Y3jbM^4s+ z=`X;i14U86AH6-yw?7x*a~}=yx+@LLQGV{WF8Jn8GJN+ZDZ0B0$eHpqDxIGO8RZ+s zJiM{7k*=;$%E*s^C!Tm>)c?tFB^bVO)t=6EaVZEVEx2@g0FvE>fBrOuc2ns7W9V$V zZ(*9q=-6_mlOA4wCLhgEbuQM@H|Nq)y1Kf!`R1GX@|V9njNAa&w{IU`|N7Ut`R1Ex zZ*TXnDI|8?t1%W|nY{pbed%FD*~zdLmthW>{byeOFPy`-gPPu!)jBgkde?W!?Egh> zpII5fs-7IN?Jw-}->>T1@29Gq;W*iLo*)z_iz_Y)@Hg)ZP`9Y?iB&2Cx8CjWsjtTQ zpWBiQ3{FGU^-<8==JA7{4)RZ5PH^iz9s}{h?P+Zl{N*3oyy@Bi)+Fnu3CkQ-+;G0w zPVFX9u|_|#7!Zbmj09O(sLFMzc3fK*<0 zonJGu90o0@jOaYan=$>@6w$Y?kNxjFK<{ebzAZXjij^AwyrM5JPsKr~jGU^^^k73S z!g;CIK9`97~%13Z` z8FZ`#?fPG&Finie^m}p^;N!&i>vU%OUdN83)BT9R%tSNH73g%o&md+Y0|H^q44=1p zm4#_KxCL}Gi$*0CWz!hJVF>D$m_T7I$5?$&h(;V zM{?UTXdtZVRjpMOlHa@1rlLrZilumF=g4GTJfZpdU1|0n7JTQkHkFm5|K3_LEOJ5y zM{!S`ICp%MDtn_~=gyrII=)Z{DUm@7A+nwXFM;mghbUSyBiEZVa0U^{mi)FU$L$QF zk}14IR`*K_tNuD>*7iliYUOZ7f^1j6eO;KgF^vj7SZ3 z{cG@=pF}%xR3eSrAIBcW%Wp)3*vl*McDJEjjTi4FvE{3X$TF| z#c$;ZAQ_YdR+b~|$vunyf-C?13YCF)Go0at`E<(HruqEIkEN@OZ%!Q%QC#9)B`f?xNdh8g@y%|*Y#_DTK-g0&|(eTKz>0*Sm z8Y2=w+9oRD`q6&_M^5?ND~(s4;81CFW{4NWl!)j&2*sNv__Zg7e7{~A(%o=|6CAjS zVeGU~JabV(wTlc4WBlS4h5@UWO3VUlBoqQ6pt?d(RW9i489$0-&5D_OtgH-##3J`PaFA9b;K={4Za~&>J8a;R%QM_`tM>ezYQm9mZF(3DZ^hc4@)(F-t8=v4PFM&6{ZhBHDMuM~qglPZ@yyTn+QF}$;#QmJZ zEM(Ety^IGAIXw1)%m3Zua=c~YM1j`u)TT7I+yQ_3&ftiJi-iF)AaiLdUe7+v+G|EV zXHiiRh9U60@rg9ob$R>S-#+^I+~hDqWug{9SSFYf(hBV*{oaZp@T~&#T8vIJiAN8KwG< zlDy~D=!-sw{r}m!^YFN?^RWNlbMC#fVh0EU;7*B~L`l>}nUpNclr1}!81GaR$FZEn zNt32c<1}%fpCA94ICY$~@h`2jxJ}d4iEY_#9WS!%#EWc45-o|6sFjo`?mI}3SZBM- zIln*d05brw6C?oQ{X7pJVwoA-nYnY8_nz~0h;lSaYb+5MACo^dmx?c38YB8nr)K8M7yi-%we0xWEIXeK_{t*z zM~+7vJ8AI8Y3d3k#pk{f^249@@$Y{<$<5a#X=<2!%vV`q001BWNklp6QeLvF?J6^F`K)bA{>Uegwv9)F9R>hrLN zE3^N1tg_=aC!5MdL&SEjX_&V(^(|J=nI=GFX9Kr5u!}upwXqY;p2iPOl{9{L4dMyNx5Z zr;HNZ7)-)xBV8`L>co?Kt3VHyKT=q2QHd~4I?LeN2aEE|?9KBPaWKM-u-c`oP~w@F z3jFoAyLk23g%>y0w5NFRwq>}ELM83J<9i-m^eCJ(YTVdKW2R}7?7e60rP){*fv;(>$r^wKY9cs0%e<|P`k=)140C|{ zNpX4okd)^RqxJ{pmq9=}zT}&<6_r0=HCYr={W7aVeG#fApg&DnysKsiO%IXhlOSU< zb{cu&wpc$muM^=noFfhvB$zV4R$El};x)RSZK&liOc1s`o{BWxY|iE8Hx2_SsL}#M=_vgmZcJCQ1`z(4l$G*)QFMc0R?4Ed#7-E>9@rsSuDs z1QnE+h5v1QCeUg0L=z8^zpYlB);OFlFnU?JBI@)ytHs}-QZd#qink(+gv6fGCE3wZ z`Dm$7?kz-Z7N`)3XWP2P2`|#%ygb}5k`s8-#ES~#n-q$XYSggO=3kwd_{MrDgAGIt z@!ki;A$SD!r98$e+mc`GT-W*mnKtYXu-=F_`+1)jrkh8!6-<6tn3H)(h#2r*2~APb zZ|um1?@)txW2$&ok`S-dish4)HXlxqI9dFuGSV9A1gvMDD*mp!jW-!AYVn#rH-6f9 zXEsxBtv@=ix$Yi;u0`W}<#Z{1HuptkHo%GNb}x=Enr?V1#c*2MG@Ax6o#W!fW^)-8 zVbAoKOuCn8xn#_{#BVfq-xO!|T;EjQ!{P~wJw&u)6M;fqa`m)$wWOrTIg~vW#-}xx zqg1BRG<@jOE{n|2xX?+mt!++=Oz})KXu`h4_Y3&=)(xlg;h3DD^l5nmjkFe=V__Ub4%hUt zp9!mch=*gjkqLnK+eJmeS3Fa#Zmtk!L)r8iiE6d3y7S5@k_kRX&d+mgg-vH#d7;du zbbZlC{=6Lp%hhUiht#zaAL`afYE8dQu1U&m-$VMP44TRSveKG(k~uzIv)^Zfr}y*C zHrne+By%IpaAiNO1eeG1Xfoo1ZDjgL-?vEJhn$VYQC8a9oMjY9o(TJP$onqm3mxNI zq1BmTvDy&v{JQlx@G9B)mglvDn)gmN(j69{2f5pl*Tw+kf}?>LnVndMGk#_%o@ zsAyBB)#*9o#gQzYWB6SuP%e?sZe2F?SW+}-a*$nHT+sf7GW1Y$V6q{%R?K?Us@K8| zO!8fH3ZDh@`^kpXQhn-GpQL$qtnrpU?j4qU2ego@1@*83z$=!?cc4n;3=yIX3^vwQ z9XQJw@Tnl`U%&3A`F-3wHR{aJ(&+i9qiY>^+=;hG4)^3JgoB@A4%sX2WD`i5jDu0!jOqhUnb#5&_##l&krcJDlY=9 z*A>>UBB!K23k!;#pO0Rd1qIWw396llZl0IY5ANxAQ^%B+glgW0DfPXtlJRLpuMHH1 zRKw{Z0DA|0!F6zO_~$rxw!v*+l|?%L#=c$MDeDY)G0ELj%XCncowcR(u=o9 zImu1H$(Kt@TFoT;m#zi14bfIVBJn_|zF)BUg;*d+2vQr#51C zT!rq8@v$pk?I5QuXyzz%0%|9D1l%j4>mI|GoCZSQ$+^^{7z)k277@^5Zk=+t^9@n0DWaF4$8sW=&%g*w1f&DoeJx;=y8 z>VRjy27U2*^m3ngjPQ~w|m!ONGoqvGHXox+tnTRnr>KvKXOL;cYD(_?t#K9%upyR*_@ z^;`)5w&P4~I0aS@L$^4N*nZYP&DFRjq{(Y0iXuOuTJrdzqG zv|d+9L=6%zT_T}kEhSh9vOD-1 zG03ETE3J-n@U)PN+q?@t?d-w|5^q;6Md#=K<{}%pFTkq2(5U`KHANjgu28Q2M?ukA zdlXt1EP|P8!%=sn*~T3TXJAzx(hE{sjE)LxU{#KvTytJ~L`8!bjaM@3SE7{@WoBZ) z1^(zX3exABa#!yrBAboln|ARj#l>>W4%p@O?>X>q>_z&|JSAyd3ae~c(ZM@;xgl&A zP^M?MVi7>Rra%?tZX~$)L!`tY+qD}{haFtp00`+<*96648WX2y#7+$b&u7y-pc{Pw(zWS|E)0QRklFmipUJm_Ql@^*vTjCv=}FBYbc zBlcKDbuSCw(@Ke}+shw&u;R)wOBQ2W`mz4p5a#kkY;PJl%$I{E%{pVRd9su|Pu++& z8INs2y+Mexix^V&N)_sV+}vK9ye1*Ro}fA+De3Q(A_vrD-KK}X_aCK+Ll%;W#a)7; zAZI*b;Eolce^ z8(x@kSut7+6S8&b%|TCGwHl5|GZ)GZFb{m4sPt+aBKVvKS%1f1UAt3PZc(-wg~w+t zi&(N13)~mOTl-TsAzp~eTT45xwvn_m4@TIkh2V1X?9KfOA0(wNn34PCZL%_s&7Ed% zmY_5@TXUlF&ux&_`aJQ&Bw4z1>PRQ9-{r+3ChUPZUfUc(swAJ|Sx9Pm#8FFeYJODW z?+4Oj%>}V3#%@yxu(lOnk8%s+FRQY8&r1ox{ma9=)Pq$_fp8?3#!0x%U$Ui_Q#KOM7FikBiIcrVSyEo-qJqWV$^2avijKa&!fopN)?3f|p z#!3o1!xWXnpkGqo7#&Wgnfc|F$1?}_{rp!8+R%DxG&e-$IA5pD-K%b=d}XhCu^;UB z_>Ac@;s*?ADX5le2~~}ll@)A{Kk~V~q+CzQWiFo3oNAV77BxBRW0JQ+2;^Mf%>*`E zCGa&z=XfbaIVlvd^p|w$<6ge2u-D(X}#@W1X(CGKdhKN18K#(RyQ74Qc_1lPR04G_mFZX3P-#^)(%i#bQ@Ai z*d_&PSkMybX&{!qnQslocaAj5V8<28RQQRK4y?mGoL@d(HzGRRzHK0PSQVE$JZ-gN zKd*bu3;tk+0yf9Y^*4)WXT7W@?SDN*e&DPd97c0m=?`P7Sz4~&FMSVmJflu@kSJLlT{Wb>5j zWjLlH;E96WMcsJBbkE&vRtGA4f8Z@#>TN+i>WRg3K^EWR&93ZPN%)sfp!_ZK6Fg^o zRL(*rNu(LzT@i_+*YV@(=k^L~Ju7!UZv>rMTN`uRxW)H;F!D;EC=ti3TX4<@s!;tT zcsMJ(n)Ql;-^t$?nI=hKWs)DxiQV1xni;N06a&x3!}dx)WpY2> zw%lkU?N7J*8%DK@wd|C_51pR2vGk=mP!(^?0*0C?LP=wXfZD`*jx8_`RTRr|NiL9AUC zNH%$>$%?K6s`I^q{)Eof$*Md@+gNp+XPa#w#)dpP%m(!rhqT1;mkS7X_sGY?=cQh^ zWj78Hj^ZW<0pIgf)uz{$K(QaqbO~D_g#w;W&Ru$w&uQFNAw*)R65OQk^q0SHI0?!K z_dyE4g`;@Z>~ouRL(QZm`O?N8axzB@Y@TyrM}DynXYZHGPzGfT@Cl1&)I*MKVHHce zf`Z2nh!xY(#dd$YLbKd!W{I#(5$!(NM<`8{(xE+rlQBs=D`2sm%;>`oqlCEgc#oKC zf23SXz~R%{J0Uj^5#z)6MPbsM+E%Qmk06Hr8y-i9<9msw`^3+*@`ZJr z>y-~=ulHv=_t$Aq+x}@@ufhp`T=tG{$mUvkSZADS99*~>L_bh?4XL2V;Q_UZx@swP zHQ^SMXh52?@b@>xLYd?98Tl!@3)LRE)T{e;D&b)Z{9!Bnub-Z)I~-LXD`8lJkz7WV zZymGxLG%#}?>sFJJuJVAop(N#-a|7#8@88R@RWS6G|u$QtPwJM)$P!+Lznih1S1!! zZ4|;x(dDxUGX)8Xx-T>Wp{Wj4>=tgS%M+kj#Oa$Dhvu&eSBdIo-X0Hswv+CJ+zmrI zKe;Yh!ze!F%z(16b1mtu$=G6GLI^>*qFnKFrj^LM$iP@y*18|i2AW|=c)n$)_4UA6 zHYGPvVf7`m#aePjBMxNX6boWjZWX;OAItI{iVD3=Z3SKV8Ns}5CF^xDF3{LDd!`RE zpQ1+Ghn6O~kjw@Ox(Hd$C^RY1d(dgQ?C~=qsJ3}B?3}TWmR71oIt8A&?(e)-4si6p zZbok{dh!Sr(Df*C?@cMD-I$W^_w8%TbYEHO?1`907C5w>F=_12YtLFRe53cPBgL{- zH(hvS)Oq8eCI>z4uXPvP8Tl#I)3Wm=#31Zz>rEVjlOC<|=G5bmTha2(pSIEszng+) zjvitE^vSlUj23X6&55T_i`LqiJw2YgD{^iUVm%cjyfx~ zV-(tGv{^Zmn0<9aM8bU%5uNm)n%Muvl_hCE7u!~{Ys(X%GvOq1=1w-q+POGM%zM`P zU94>ZX7cvx9mI_GIVYc&-ePXQ&P31GqOtqYi{rr}#Z-XBLfmFnII*0SUA=Lm*TKlj zc60jTri)W!S?W;rzZR1ElOYzijfsPrQxH5lK zto_4+5?WwqCXOl%frp>YpzA0qbz;;p;>FK8BU-O&HM=c$_G{y5zxB~=ZT$KojFnJn zIl+8)b0TaGOEgLfvMM1&54wo+vTnx(L5BbzrEU?cu%#M%!^mgRLhQ=^jEGTU zArE$YmXH~3s7A&JW6wCfDwc`-Y;EJzk$DIBw)+#s4iyfEU!S)x)qfYG0^HA`_6Mb> zlnYHt!U)=mC-NIAW(e@uHC4D>cFM9DgtI<$&6SU@#U9CDD8Nmdmt>tLfb&?n2w+6*3` zS~XGjhs+{DMUpt56?+=Fp&e^(`)le0A(F0!9J?jh6aEuI!`~+Du)Z7DQL9bE zr{?>FhBJ~#m6Z-ySg%&IDUv8^!DOOee#w zzJ%s=s8es-y|Q?v#_3t~*Pqa5l?C5| zHpOiwarR5Pi_%D(9i%0TPBJga<{3N#plob%_(A2USg%$B^mm_}nqlB6t`ClCItpimCeHSceN|eKgO41% zS)ih|zej-cy0nW@(oGHZm;DUU-CJRDt(o=4(qqvz>X;`O+We_h?|8cfGJ+c!4^+OwTh@=oaxs zP)?4Gm6{(QL8*cIvs38tRYu-@q1TP#aCm4Xr2>- zIuv#?@xyZUJKu-D@V-GMKJ@Pbt}5B`%P@Iu(Bu?KU-t8Me)VYgCo$~!PFE$#u>4r+ zE~>hjg5BcsgPmmNj3O7L+K*nZ!@Zwje4Frb_BHyFvr)U}NBhp+ zyKIN_`E-u|aq;|QAqS7eoX>4pZnHSI@!^j=Yl$C z|3fDjS{Qm zyFZf-G)_D{KkeTK^PeN7FiU~^4;q6C{ACJTtrV>MhzLyXtO&Mou@=~yzexR>z9gCP z;h-;?d0w_#tTp#PocCRNFh z4%zrruhdOvNHyn#!sm)|3AQqZ~eK2#5;m1vCWlTtmI|0xuMb}wpj|U&=+@E5}*QSpIT!L;BdKiZf7#M zc%6v`8wv2TZr=h9!*|(8kfCM&B+9$SP{RpRTCiS>`!Qr}fl)-*7HWQR-N2g8NLDv7 z#8>i(5$wvX@l;lcZjfGKN)M*iiU-3T$aHl(plULy-oM-gJ-oTD!Pe5~Mkc~h55d~jM$5lnR;{$)?+Nin9ZvVe+0rmr!tg}RH$}rxLpe<5s z6XG2b;K!?q=Ve)&*bJ}-aTB-j%_q~Gak{_crC8yf@rC00azAF35i;MO-3Jxr)KQ`v^ymJ%!9XqNp&#m~QtiKhmj;bO@f z+RW>JPpOg_HQWkxNFm?>eJ0uqy*ej=Xxop#ALT@!uq~bRsP1~+7%_8Lbx3ItGVNKM zd?Mos0ZjwfuXroR9vS5;F*tIQOMBu%!5B<{W1;9A;DBC+h`Amq_YsFm^TGm|B^Z0v zPO(KD&ZljHX9h2HyOwf5ag?GZtdlfB9>xAcQ!!{V)aU1i<*H#mthn+solk<1cgQ`j z4UTHr*MIao2E<2Fy5V>K35( zm+otC*BM!2BgdDs6%;zl023MP2HHk*HJ$*@ai3XN2|ojgUepU~q(SrdqLR%!>0=1% zYP+Az@v(h-Icy~r4rz9J$_@=ryyack5Rn6>oXYwn2TM&W!Ftk>zetJfiT2=eX4mSb z^*(Jfl@P!INQZV?`6V;bmw*48;(Df!rZ=*eX=N`rZDcq9%ElrsV!XL!{)t3jAO<6^ zs2|nViFIZN1xD;$y`*d45+usv!`TX2H>xGnFCmbFoZjHmzegnRdX`TE(_~jWc-VOn z%Zt{zMSl_Yw7~oNb`XT#g@(2z!U=}&Y5xSio9IO+G$XgG^(}&iMTs)TJU(cmPNM}Z zow^PCx6&8(X+AD*>5U%fU=76qT^J;m5=~0`efnC6uJIh%^IqSE2Gnje>xyIZ(7h6p zkbDWjcb<>pTETUQoDXATg~6)TLR3q!6hSpuNdfG5>!1dvaK~4ZYU0Uy)Vzu}?G%UF zUNW9*H|y)D(inWn8NIgtJoJI3KF@2(bU0wB3Ff}P&7;YEHoHoI6duFTYlrtE8LrqK zJO3{43yzF*=x83;_rrh{~AsB5<|*|F*!b$a2BX92ueS8Q?vO}Y-gogT@#{=9gD;{=gRzjdX>R+ zln5-%*hltM<4R7vX(%SOJ)k(7A`BR!LK=#?`|>J42XjyeN%-S1V(e*f7R@SD68Ab- z$&V)0G+mkZ0)X618L%#flXoS-n(brTD++%sSIw8*+r{)~=k!rGjMJZnY!VH|I@Yk6 zT>mm+BTaqx43BQ+$my^)t|*=zVaWe70WKz9shQnuS$?3* z-i0J|wTSrKc8d2Wfu_Ybkz4iXqVer`GcFMRMUj4f&GWX;DifZcs553y%4IpA+M%md zXtAOTt^g#GhKwM`jLu58EuaSyl2bbUS2N^#ljj4%(GS@WY$iV z$y$dh)y9}ZIGQf?LrNX%gNdDTS<-FRS%q;#O#QLL^0dw4dCc|8 z!-fkJn^(%myOKWP9(9TlO?j$HR*>7%>+GQg>d4 z59Y+9fs?_7*g~Y8jU7xQG2#ddg2msCoq(4Z`Xrb>no8d*=>So&zdh_x0mDHh1CkLG zI-xe*UpVr4)xx>Ry(lsitW;Juj5gN9NCVx7tR3l!f5$0mu!L6Ap*LKiw24GLQ(}#@ zA2Wj0H*C*}a!Re7?K{cJRXXHj#Z@hvf$1aqO3E(f&+r;iJs429Ags6`} z&=0_sYHm?0SqVdwbo8)OeP?KR%=4<9mLb3q8rVfqo*QKUtgs4vTOIH9r_(TeO7`>(FL%+xSbbjLvM5(9p~_ zI|Qqr`?rdL;jZ1Z#St>fK2lC{Eh%x58OL9cn>}rAk31vVCzo6xG85*vYf6Ezgk7$H zhN9HzdlT;3LEv_G7$XO-Uba`))Vv=1D%v;Uga!1(`BAR5<218hsE6#7a_~3>AK!1I zV}%##22ByozL@JXJj<$EIz^5i(gsOAwRy7XAJ)2bdotM zw|AtM--{j5+}#+hSK1AT^APygC&Um8{6fgepU!Td$CAOfN_!2`$)`fi`e6aPGx9P7 z@JC=#r+;j^`!KKBwtC}s*R*#Ec48ohkU%+6YR8Wrfo9+Q*2$T5qpPsM1hW1a7Asee zLINa(eRdTFkHg@H@F{IbQMO~syHupKV`z3qE~0%()f8N8oS(;YXto*qw9P($?ZA-0 zJW?JMgC6=P?j~x#V<$+7S-g7}bxLb0v^z*6*`A=`XS= zH!2iogJ%oyc5XEgUudOs>Q#N>Jh(BRTu7)f5B}_k8b+)3vmt<&qyiF!eLHvwdAn&E zEB`gGHEy074-z!t_|3&ZnhnJ%!{Zkh%)&0K=wg}U)0G>_+v21WPhRT-_Q&Gq{qw!n z@92&mssdri3}?EX({TU`}j7jPr?Zknd)dApVARouM=qHI*H8RgNr(CV@?iI4R0vN zJnBn#;${2}RlPuB*PspIxIXMNc%N7C9|)*oBu&xl+3M<>e$JUF(k%RBCRMH{`ePO= zAh$3x%?L$SpX(kcnaO1D0FidilE#HM?J{vVHSC?i(|b(UdpryJ%UEUR;JW*f<$9~N zK$CnO(s8M|09|wneTRx_n2f?cp>inR8pn_|dQllhs5irpM~XZ3aG9I*0q@4eM2l~j zfV52|2Tv z1mXS@_H`#!$qeQ+UL4y7Et@Ur=-EReN&AGO6Gr>=#<)-<3)++@Pkp3S%hZ?ebAe=@ z9;0_V0dpDUp?3NEQvL6S6F~_fmykA{&9^FrxvZ)R<*Q0L4)kp6LyVgJ=%HF+mYJWQ})GhKjtS5 zn#@LjPB8Hjom8e7Nxr5tJ)<6=of^tSEcUTO6K59DckP8~XJ46;|5Ey#YWu?uQ^@nj zv|qQapSEwAR(OhV1e77G^b5l7Su=K-zHRp-aVz=g6%ID1C`j&$8K?W{(3Xwzh)=TU zM)*j>cJ~@K@rUEHmC!SCK1#YjcR)5S-H1#RGuB!Ijiv>0!#8+^Jegrg$bn$HedoX!j-*YfX9_P%#D11ccYrf`$%7CB_9P4}0@ds8dl~u%v%*MCp z%|tfO0^6De(T$k!-cgc-^B>wkwfBO}}=wPK|BiR&v{#r|yKp}~Qdb1xSv7z~4 z%zk09mK}x%#MUz4Zc+XK0oOgOcftwbwui2X4kzQCkG*xiV@Ti83h~mZF#ip^0{hyt zUB0~GSLNgtP2Sm&(l3|Blzi(++D(zQf-&U+DeZDn&54P`CRg zWYWII%!*--@tjlk*@G(kw{xiY0O9tp9v^wp+M;0{0}*QohYE_J2avhn!YcF(7rH@S9*!<4 zM>Muoyy;mpOp5S!)18(U#f>&&2q%_GU4sH24%PtKP#<;H=P80)PZazxMuBHmT=>$2 zrnz~x*o_|sb~0&cE#i$9=?~RooPK(BAHCO@w7ky`W%6}z!-o^MyM?c#yRRd8BeySq zTtn@V+x*G4`%5{HGYrp1XwJ*=M-!X@I+Q9I*X%35(&89;7GXc82kH(_Wd?Z!!Lb1D zSQ=TS1R0xZBwBEk2_qJ&Uz^*qQI&g;JPtF!sviGNcDg%|iWRP8+{3})WGE&|atVMs?*7J$nA8x_U+zDw|eURJ``t@{01jx?+-gVs)A!|n4i^kq* zkIPC>l`mBhlEll?SWV2#VQMj`FBVKCCtHZ+etp0TnM`!|idK@sfDTRB714NsNicdG zKx1*=L=H@lH6A)d_0)zA?DvHik;KvDoSS^?NGV`uyngapYKH>si%&q+She0_Qzv62 zC@K+f9CQQ(mYDgb6te8=jGjV+hLAJpWxq=1{6NqY<6c0d#OIK3W(m5cwagXJ{lm18 z)3W^@7HUUAWia}wgs)1;>H5~o;Hs^!%p7}CDFXhJ?l(A07L^O8$R7$*Q6b-oTfucw zabp`(4dk#Cn;%%=1Tq|sFb>-4E0B(q{#qRO^h{KNwl0!~ zEzyBb^T0NPm#GLIer22J0}Tx<+Y#W5aereHg2{iHzc{IOzZm6FqMcT^o5$6dZ)K{Kg;UXD55+xLbS5i* z4s+Ig*rl4Ii@%F8O%-74kZ)h1xHOfO_7qSzumg3qtMM#D!1^Q5=SwcaO6Dq46W-BV z(_n(6tN8}oz1=(_Dm|XJkGjqdj#Te)Euj>T8sN4X>c_aC9GAN*EE6wx=#Rc%k{w)Y zi`Fk!NQEd{`(@sC_sDAtCf|&Mp?H@VmDUSJzcMSL>sAg%q&h z+hCdUGEzC!bt=LynVIgM%8phz0nYU)+BL&T=9N7jn6TB?Jc4Mdn3ZbP1TMlVGG9)2 zxV;3+7dNRVN{VZ=6ZY$uw#(bID7gana2VX(ArX~PwvKh+(+*F-0(J*Z<&AF%B1ZxZ#)-kxtZL;fvjo>%Y_4t(NYcBi%N+>R}CkIT?tT)P>B(J-Hg7&uIP341QjUsA5rT(wr!RW}1?LU%ssd@HzE7*G)%bVU_bRazdAKlYSt zSiE2qYIPUry2d785cp_YAX-01wc*JKkoMivQbIUs;mzBHuNP<$HeG1+tMYC)1OjDa}(%+PL8VD6R=j`Qhz-& zIU6dx!W+}+^3)JXUQm_^A>A8L4#p73 zaXvEW=Mu7CX52JWHr=xCH5k*DM*#f|?my;+Bkan*hxSqvUqNLGoIU#(@*d%}g z1JY!N+2V;$3<@XAL~Du@lGsT=ai}>=>&&@h6MI?;KLgp&9PiX|3ToE#Zg55Z{7|K( zg3`$GmOWGv9o%Vl34XPRzY5M^4;_XO=#CgU z#nOp%#}N;9JNyh*G8y+(fweyBZ$zPl3XaW(IDEBEHIs>5B3WF?dYW>KQbNE)z%5Nf zlj6d;xt{D9^kVK#F}P(Knx5BtPOS`bzvt|&JR;+I`n}6xDapJAb=_6IlzgxxfJfu9 zNm*kSiUH0Je2S88JdO5AtSdS`Yq)}%1!qR8oG^t|2~2jxACZK8x>E1h%iZ?>NhMOEFij zhwdNYAlQ&IdVyGyt0(&emnAESiCxVn9!%Fi5Af!zBb+TPFzLVx-3(@$Ei+Kc zBW^yUywZJOz=EWjg^aL5!(PeAZwf7MCT?IC795xJ*zQVj=z8KWG5MFsbQtz|vM1bU&M)SQNbh%mIk?W%?+pI6i3;U9Gd21Et)QNv1> zrHY+i15q{=a$+SbwNu~HP9p}5QSQ?#b_N_M9Xpb6UQ{$J;6;m{c0l^x3z(CJz6E|v zIrIED$nkAr>ZW{*_$Kv3gY^Otj}@V*c|yBOadvZ2BHJCQ&yG3ODor(Sns+^bQXyg* zU3;^bqoI2=Gk}8Xuzh%U!H}%&pu&v>5hf>g2ZK z#Ysl~_;eP!>B7|MuJl9iE0k?g3Ev98`6S4ZOZ?G%Cq!5ApTFwM!ICZD8bWV+hku&O_A|t16LK8xkyWj~t;s|-(!SfRBj0K34s|!0 z>OV5kK#9!LmrhE^)&Iy%bIY~8h>VWPefgLU=F5b@fsEs5y^`whhEI3=Lub`zRw-g4 zbUdXZD&iXGi^H)WquGdASaIU3F)u`e3M2(b7CV)x$gyur%(4Tq+X+gVNI%-Y)Mk;d z#6;)+O6dRX-ytdSz*th}e=ff92M@=B1pW8m-{F88+WLPN{HD9{{~rB6Z2X^i!_Mdx z#Q)puB4C|ZAdw2<{PBFq?sTz6LlFHxHO3GimX>+G686olJ8gQbc|5M`|G)yddFIM| z9y4MCe12&NlE3K^%85q*CJFptkMxs;0ZfWyP`6({rg+T^Fo^(u4NfKmMIby#t~Xn} z+44i2SzB}OzI-@e9n5@R&K&QNfhI)%k&im8A0tjCz>=EZ-kuJ`r$MLJ6xYzetH7bh zgzx>^(ZR#P$;s|=LsBT2t_uY4bmyV(Mj-4nmJ3JZ?g}xF7HdTmucyOn(S{a@$l-JeOW!=x&CKk$4vY0P*wK$v} zot)?b@hZ69?`H2F9*_gKNjYo*s2o1uA18;mAp3UPUoSf|J6}pWQ_cmDbT$8pu-#Gu zt=dwD$7|85jQ=;?2Iq{yfe4&tAUM$R(NUL8T9_+WIdge=IRHd@s#Qm_2)>JdqLyd! z_pgRW!2#dCST=13F7x=?jNk8~=<@vi*Wy%-!6@JlGU)%W#U0yO)mo2N$BULzx|rd; zaGr);wtrzT5WSvy-<}3}4{$c0AP17L-f{T9GA7chHHae*z}g^@bP@L9#tiE_f4*)` zE|jYoy-EYn$s=-Ifv7c@ci*;&J+K0i;{fasr%T@U(|caWyyF21%xvcP&YZya+ieOs zn|~7VMaQeE_*Xk;ha(Xdqy}ySp=F2q@-a+`TzZGr&sWe@Fl2J8@Tx&HMS0gt0kjJ};@Ug4jDWh4VMC?hNY5YIormLrM$lV;;& z0aqNm%l5|!Xa4Ep-$0-cx65{1Zr8Zm!%4mJ^m;ucK=<~okpjFNLB&Oj*kI4@eu(e|4Y@ek5m~Qvfh$lEnV0Xge_X<3e!fx(?5!98G2dsxhM4*5$iNG56KNJQ2D}kW{0P|0xWgis2+6et2L8j4cb8bM?69*){ zsRB;tKPb||5&V-15Iv3rYVd@BVz#(JFE204JmHMTUoP zXkwHByKJ={n0lgQv34abVgHc@5)1DuBRoKb)N_GUf$K9@BZHs z!|M|$LJeOT2IQ&Y83x84bpGp6 zHhQ-2U#WUbW9_6vtVv9ZyUhk8Iru~SNr!jfs@zQHJh+6CC4s770A_e+n5g|+*85xfl7-J%|~WpVq)as!BVk;2*1LqM}qoIE^{vc;&QqodQ7jkOsl=Z>5SiHWF)kjR$1xh3I@U!-35ARY-UC+EFz-k>A8Vrn|12p z61ofIS4<8JP%THVt*w=zisxzv1xfq8snZx zs}qX=mFny3mDSZzSwXzLNUiw>8X6jO&CO{F3JP%5KwA_GXG4yUkL|*6wRQ&X?(CJ? zOVB}%G}~1WL3q?uR6_nqkk_YYczC!zH`G>Z2Dck}yeR3#MmrAhIwRW%pbN0Du+>dX z&SaU0Aa7pCY*}Fd$0sExhs@8bU24K1APfY+ zVo2`SuAV#M;^Ow5otXo~b+ZL~+I3FB@QmsL)iC~F#9nK2VZ!He$81)oJN*Nq1*{`D z-yTS`d42L&uD7581CtPSIt;J(doyw^&U8uCuzqDt%}9U}6!D^-c3@A$=jZ1J+@LXz zghU_1uHaW51U&A+0Bpwfs*FE>qGHf%zAb(xXJ+yS8FXb<%pMDtD~7eVw*w!G>dsCA z4-XHU{gL>i^Y`Xga)5ms8XNU=bO_PW(RTp73-Bs;GiX}K>0;&Jrq^dWAP#6S0ZU6u zfH;tplM}T`<0Jna-QStc6|n(6F9aX!vE)({CP-aI+}zyLo0|k+U|=@SH~USF=c)ik zgy|B)N|h=--^(Li+wt>dDMR~paq;m7rl)1%M)!*pOJyn-cb}G&khjkEY@3~5?o8m| z;Pe5xnm1(zW{x?^G=|&|F=WRUv11)Egv{IFa-FZ zj2sjMM4x{P1o*`~nqAs~0e_B&zCZz|zg#~5u6}290cAi)q_%(~NDMikb3j0bQP_Z^ t_Z~DZaN@fGGzMTL3VvvB=qpnp#*&x;vPvxXY^=yMv8+O(=wg z$OT;afDUX-9SzA{ZLA?sK374Czx(9_-v9gj&K?-21zt&)5_iwil=x;dz5(Bv!+JRV^S$?kR?}jGE|F*Mp za>>s&00sAZ1git&@YX>04)Dny-GY#*R`cJBY7DR62`3>^*skBv=?`OIt`Yz%=VTiO_!n}X~h<`m@r3X)IM*4owq z7#Nrx`=6gniHa&Z*qT{d0}r6e5^u<*-imUu@^W!8u`#p$JzY6DJ}C&)(GX&6DkUaJ z0f>j$($a*F-ISe`osE~1iPMaWn~8&$)0oMK*MyzPn1_>{m5a^L6gbTPd|%Ag*y-mX z_~-j3|3AO4;9v=8p`rEvbw59K^XKW|leB~a`|9>vc~ng8f4{S~B>(%s@EIEaR0Kf^ zHp?j{AvcZHFI<^bTAb$2c-4?;pBmU>4SbM?XQ)9 z{@;uI``I4~{!eqjYW#frue}2P`Pbr^LI5-80NAt8GJ=vD_bjKR#6(nGQ#MmwQb^3b zu4m!w70YL-?zVA^ljWv5?NJQO?~)_?3#%QI_?Y@!|~S zI6b7?q`TZbzIYbB)h7Vojx?{{PTl$zJ=$d3s9wW=m^f~3hT8W`PC7+z-G2STm;C;( z*BhI{q7=mhNLl+S!k2Tm*C_lZ@dr*#JVP7*aEgJM@-S@VY($Gu40EA50|Jz8HtoGX zyob)U(!rEop8XPYOVz$^XxB3!WEKowmE(k>QW(bhtf=Y0iW9fdAC8ptFEl*9RGk+H zD4rhIl}=x9VV}RjpUixkU&&-o46eESmNSb%^nRoa68z7ETDv342@2+REkl)*x}w5e zGKyMMLzJKC+C9Pt8-DN79zc$N|J2E{a(K>c}i)n^am}Y!N9RI zn^1MTcP_n@Z_upEb7nnRkhQZfs#$8Dk6VOt4;wtE--OB>l-?>-9tn6(?Sfu<=S7S@ zv~fkKR(3P#Jw==z=hvcJAF75M1}!`c4NWbN+kZ{ALGa%|j;g`k4%`klso|deBUFsZ zPR}QZxQpf>#XU7&pN>M-{FEqu$V_iy@9#l&mwjvmTp!cRL9?S7xMsRz{B*i#aXQ*c z?h^;Rds7%Z#X%g~XdS@sZK&uQbu*+^E>0WGAQP#_@R)D zx@93|i8N3jbH6kJ!Tged*VP+|Am3qAi0rWqr(?5kK(ty$ok zH317?cs+i<(9~s^@=aFaP+1itTm9-x+N@F*zgrQ{rYH`9Dzll)ta@#g$2a4eqoX>m ziH(UJ>!)xHs$@ndjS@$D499kqHk#=YY6YtbGGZmXBl7s~7td4CC(Y8at1EjCmLO@Z zyiDMyr;N))MN=c3!vq!99aI+J!D`j84P4~m%?Vc37Au>8Ll|3q{aqC+UT!hz;i$Ex z9vm08Dlc}eWqhV3w_X^g-o3Mi0*@@6`n*0igUO=C!cPJ#ZjbLr<2C$j$9%!EzWKibmCcZAQ1D8C3rn!Kd zffFh#Set15az!A-cwn)adb=s@TIaM$ywB||45l(zq~{O&_wYZ-=(#M#CfF>Wn9uT2 zgON*ER^Bao8Y!>URsNiCadV?u%)fK5Xav`Qeys<$4M&`*m!pga^rRoZm3M?xPKyvK zbU0_`kjv9F)t-WP*A#O;MG~&l-`fsjnwAh+^e9T$*S0CPIPQMmmVo__4R{dnVQPGz zLcn&q*bX05_f?0`T)#Te)3b)D?F+*@jeRkSqQs%5qBi^)_4>+qq7fP42iyepBlN-+ zeXwliK9)Q%4aT~JTD&p?hlq3@j-TQm>-nhk)udoWiK1=M5-WzOIKS|&>G(9qXGsrP z^q6`sNdFz}nWJPzm18p1n>tyHf+$htXIXiV&Qp0xh}%D$ad{HQ=J+sB`m31EA1zOU zp8uc)OIvz+uU$l|r-ZWndm^5(1(hag;DzpvE$Fe)>DO=i;jO-Jy-`|kPtgHgAW7i? zu|tqn6Qxd8Z!_w8(6QR3i^1ZSLx#f9_0IOC#o>O3nLAhu4JJ1z3`mRnpzm=F^+i)O zsQVYc5uzyi?*2Y^kHtfL`8`hC78*{VO8XPai!5*Bo$+-B3^f+-+(NTfLHXUD6z!>- zgM0n06E|w;%Vr*F6vdyEKiWj-YfIaV%*QLM;HQH*za7B4X$Ic@w*g`IO^a7zGgz00t{ppN?LUWj5Gp#tQBr;$mzcspGnr)6xVljM17Q?v z82r~2#R~Etx4GT43B?(p$?xq<0n73Au)v@+ z7#re)`p6LTaDFV}M;xk}12Rrdc^)34KRRBsqWoSUgQ@;pCkgMU`o2RiBsjOvrgCvgbYs5_^U?I?4k#s|K^u>a{HQ-lXxf!K*mgg#@IdbQfO z810)+R{l}r`$7HhGD^xl6FpQO*UC$yrl%MjY2Lmll&)Sj({W@hcj1nJvZ7KaMGA1s zbad;obft{|MEe%h>rsvQzv>$svwUVDgOv!XQmHQ&N|uFO}80iXE~2SXv0|Z3h25Hd8O7@IwF*2ulLe_A)z1fG&GUU=xfXP;YMdNqAw ztU+O4ksiLOmGw;xT4zo<^011k`dG(cC%)!+Pdw>DxTy`9X00|D6M7TXFz42=XCNfG zxLTcWTDi>%Z5j6;C($AG>Ur`02rFykA)-c#uFB!hbEBu)oMTO-p@wF$QEVFRBk9!)P7q>YgtX|k@q1{rdEriCeysHK32+)=q(oCzyM#s!Y z$jFfCiL4l+KSh-AGDb;-%BaDiZ0v@9={Jqyja*=1AX9Pz)Mp}?vK8W)uWZCAQn$s4 z?A(WAv@`}Ikx_fYsJ_zd?1Fu)(Vm?jVMCE9{e(`AZ__0XN|zNU@u#3v2*~skG`UK0 zS=Cribz*_N^wNuc<|o70!};Q`RG!&sjx@=0S>9G)AnjK2cUPnF(CJR0*TV@)szb=} z_Wty1f*1A2Y&KVk0c+lDE#F`{W%lh>?i2hw0^w={MP3d_W*~g{7L)Xc5kf`XoSN8Q z5V&r#?#8{Tz25VJxUqme9)(_HeyQttCu;+g`OH zI@64fqV_GH3s%uw~!m0C`heB_SRQ|e@w*k4eOuE zSgKy=Tar~q4v`WC9N`uw)_pP^208jR_Q~nvPfhKkm3wYu8$J%*i)<>%rrqAyTsTg@ zBr1S3;eggMjY5yo%()1|uHBM4!?TO?ZW4>virm0P;95myTN7$P8lv+sxbeP}Qs2T8 zd0H2bxoFvOS+!+qa|h7|3ax@9Z<%79cNrIGtL=`f5BO~TX)Y?CEBCowz{m&ejYz_W z>UK!cLZ}?rvA$s)-tunmzM}Nk*v@r2Y%L-58^;tyIZIHnIjODA+8g4cs+8;20@u+_ zVaefyLA9V^jwOIP@A{K`T>F{EVz`q^^4_z zqup``f5KE#K;h6&81s>HOO0-zD7Xf%nMMAK4p{n59Ub15=0+Qg34gOQi02RcZrAsW za-~7Jw$rIQ6!d5rzi36;4U%+3UY&$uLP>)wQ59A|)F-DC((wg*Ya`!e?u!L)y2rTk z`lNQgb_yE3$en)0#^B?@;LSFF?_LZ=pIIK*YN>p~K&MLH)|_yBrpdRU0aKJ__Mk-IvJKo4r{J8yw(FO}a5dK`Yn5V}5-3Fe>*-qOYVvh%He|lC_$b4;; z#{Feq9*Njss45V$=C2`&pIX4p4@UwR)2pA_Fx3qe34*SaexBxqJdZfFDz5nMsI@IB ztXI~XZ)PTEMC$TBBfVBKW%;1;qkPF4!XoFz(-yO@ux?%W!$-H>@#352`3l2XL?pj> zC9$RIKB=!VkJTuRGk!xekU0TCw`#3)aWa-=EN zTca)X7Np6xMH$MyE(_~jc=62O?>58e0^+jQH+UA^WOk!5or`<|X$je`lNemPg&UG# z@w$pmwc}0Rkn@#CV~vLF6T_6sQpMiK$*=>t5|a+V2v=xT3sesT8^R-H@?idUIg)go z-G2ZOPnM55=Ss9$KVzrQL$~9U_wj;nw!2Zp0@{4HuYSRZK=1es^F_hNGeH}N{!Hzo z{n@gMc+ElK%_(4!Gi`X0x(FV66;KLk_Y z<~>C=Y}@F%UxIt0zFR7=gXb^C9Ij%ZZ;w4Sq>I3W80(W3CE)g&YP&lDV<#88c^CF^ zvJAZGoo;lTe|Y-Nu$P@FDqDy&7Y$_FaOJtR{W4rSz#@3LLDiWatTX|ul9({JLUCDJ zdMxx?pr4pj{M-R!b6LZwLQ7G;%1+z*pjoe#jRO~_&-o>bNykmGz{=P2!_aeWr+s$; zIrCNvXg@`*(SDB^&>JXfY{G{Vxd>VBa>Ue?7YspFyepTL>s3=UI*#H~-xFl0yvvjgO_$47v%JP!`$FHZ&FcNz4VOBu@-RS72gWXa;<8iqZod9v=ZSF z`!C>O&q4+*wjSS&>r5n!EVsLp?5#_c!+6kB~9 z%&2!!Dr8`kwsc;Zp1}CXdyI?ODjSH?t6sLTCig9gNRoRbQ!tV?Y<0%vy*a6VzwH&8 zL11rE_;asG9vHH)4v4LH=AtesquS$I1b0nUq!bJ{Mr54c8P{bTNL_9aS~XS%&Q8a| zRE-ksF{mm1%7PAajpD_K=TpvGV_8u;ADGbskrPu9I2^hTP`%Zg#HYDR!ORb znj-Xwxff|X3-=_`Q?f?h_F}AU26K8@d&feg{N~D&vay zz&fUTO%B$IiN7JNrfaLoA0A25XZU?eNl@q)zL^&j|0-av*6thb@Hn7sl!snB?Ipqb z1XGFEv1d_b1+zrUPP$g)Q?y?=%VnzAi~5i5ldOplWL$%qfHy3A{6tYU_;9Kg-eF{; znxJ1=*g0ADmngMSvlPq59J^-0RCZx_jYRkEWX4@G7A1d_<%+?9z)=ll?Xp76ryab? zsw!6Z0}E<}G+DO9wtd00V+3-z3=C2L>2&{ek(#|x8qKwKT?N;!G|5N-DT-K1EYV7Y zSek-Nc60&POv?*sv60T?17+%v?^`x6FJ=}xA!vdE5&Q<6z4hXSl_P(`<-{ zj+G_ndeO``$(d9aQjFDqu)D4hoAzKG*SBW&+lyW`xm{=fG?M#H$|1C)PeGQ)xLby9n;#SOtfBO`5YsI<-$Ug(ZjdLtaNj7&elRS-V8AD%f0xUQyTZ2jFg>NB4F++OPiwYZQF zN8{UukB#2=9eH`;4Qe5KQlZ5r9y)nC9s-}D$P|McZ>H$f6MB%i27HJYnV$H7${lcP zzP}%RKUUHhdg(ah^(wW-`*W^`!T3dX@65o7%LSp53;h1JW~TDtK@lwRXx1lWb48-Z z%%dne;p)`9R7n%+q&F+s$z-tb7wBsKW76PJc_jPU=(Y3+duu1nFJS{jr-@*~$G#4X zwOKo|@tkd{{XRC?Y>$)4J=|~EAWFewwjn6h|fl-%{1N2wr2 zDXpU(yS^v`y%I(m*`&QpyP;A7q0xY`F+mxR3u3pcJ(5reWjyri;{$?F)+g-8wo46q z;FJ$9LT=xrvfttgkwhTv2R94`rer`LT~J4{z00d`Gq?45HEXT<2v|Jhd>A`?says` zl_*=jJzjLNzGz_dJw&Zio&=s4&$JxOzeUq!Qr0oVXL$>Bx-(nmg%;ns8Uzh$XI|bR z5>?0#;5RquK2jQ%(q3HXizW0BUowU_I@lL;O2>vkUm)KIi}jrjGGrk@#hWy@r86&{ zwxk`BT#QPr>g}K3Bp80xU=Xl}n_&G2?Q_DR=i*tgf+N4yQlB{V_|PR>(t}6(SoF8{ z-+5yhlm4FNi|yg|s{0&1Y^ax&LRfdM7r+?92u zJx?mXFrW?3>Q@bX9%X|;^jZp5Ljt&Xs0&$QoB62%&&fvQ{|^kk$E3G)0IqL%VDqy!-r{)RTXqN)gWaG7;y| zkbSQ?AU6;&ZZDhUQ<%xV>(gkGDEnMV*Yh zIOLZ$rxhMs!GkYwKR?{4sC85f+j0 z!O*a&_2WnBYJKE|gVU9jivL>MY?TZw3gLxg?`pH6xD2Gxv~2*tDf~fcO}zEC&f3ZM z=3yteOXNElg4o<}}lDK>+L zmt@%w7Fc?$bxO+f6GlHD>*Az*n$Yynw-NrOQo>=y2p3Nt!+2HysM%5Y#P|$3BjnJ@ zdIu6|5VXJmI#U@(Ir8-<7yIDZHedDADpc&nHJ3Uq;|bv2lTBt#B@k|h3++9x7T$g8 zP5<^&_Yj{UW64GQBfAb$nSyGc-3ryUC^x_z~c3<02=w{M0(dQ<0BS4*;xIAkMf&&`|2 zr_a%MdLyX1$m9jgCbD8%!j`7q6#oX_wB%&3@Y`PeZN>*rZ{~`Hyn~BR*j{P4t6wx& z=>+dWKk_*nmWzh&t4kY~Una=H7(9jpki!m#7*mqdiVIGKA~{5?iJzaPKK&KD$#Xd7 ze`unyU7VBSR$Uh0TdF%OIw^`)T%(Tn62xK|C(S4p6w~tvYDi6!@P2EyFFm1u#+t-j zHv_9CE9TKiD)pk_!rED%+?mY&(m*N5a24+*?2f_JM>^vic{5Qq@cL}a$Nu{Eqn(QD zD+Af5gWmgO<9j1y>kv-2Ir zJW4NxE0}alfmo6f=vo6;Wu;;}$o9iaEND!JS$#g^%GKC&N^ynOrCWhSJo>b|zxj<6 zKHBiTXvgVuFTgU8v54OPe6X$~1#e8LgT;SNaTcmGjOm@&qS5nZF)melk9k&lskh`@ zOtpXDbx_inS_*}KG2)-PW<0+}rQY%2`f(H$3B&COIt3^BQ3^` zXF7OhpIejh_ zL>)6E=7rIP*4N;K-+S&mO)MFf7?8DOhP&JoCnJ{#UqyNc*Fg4?6yK*>#pSQBR~#2+}8^aIBzqp(@4n~y#7AK{loRDcMvBt_5Sh2 zn?9$+95W&Q8s%?hj2ZUb2FB3FgQCXhw4kdXz*=CC+$mLh-N}^xYJH-273q01HlM7T zM+3_`oBJVEkto%M-s;*rSgQPuD^!s15}EM9%bAn$$TI7GY3J>+n@ti4{Xf{e8Glk` zy!&p12;JjB;pw+}V7wfI)u>)K%=Cg;FF`?!dd<`NNhwYQ9&P%{RfMn3`BC+neIGB6 zTd@&#okMq-jcOkj1{GHe5i2SSf__B;Wp2F?qb^q3s*=w@2V9HoFZ*n4(ZLK&{3`FI zLR!fXbPQjvfM919B~jE*0?)_cbIFjoF~e4`Wr}#Ifc7EiJkr zWuoYfEZb>4zmUCy6dB8=g;b7|V`bIy7An6AgkXJ~P%}NcJVggvsi{xXkQ(sCiy0b& zwLAC+CH0}j^^k8ahqf3~w%2w1AM1{za?{x@&hPQ?$^Ll6_2yJ6MkB6jv+XVa*Sg&+ z`~#Om-=i+GipqhM9vRycAI`Th)<9052ESRaE#eVQ?)?>8&m_zW^IM-JsbMR6wk9YQ z;<58hXVk+IL86LOUD*7?tt2n}NeQ`EmKmC2gf-w@dLW`=(zCWEQPH;u)+tr*bL&=r zB#{zncgZ-<`(68f`AC0b3g$K}IIdt8m5syR62SR{e*E=5mF;&Br4E$C;1m+Is1OMz ziz~#t3z(m0$JJ!4XC=*nNVb+yhyY1U1k=h}!(t%pP<{1m0}`Q+yG+$%;5{@-El}?M z;kO7e!#H2^P50$)T*bDX@T%=Q)ddfhT#?|-K=I@VuQ)Bpk~eNI(2II^L$ikxX8i8d zr&F&_-A#x>Db$ci8~Z)r!papsC+fIFD?B@nAX|(~yjP5c2fmGR)h zb)u9TIyGbe9h!*620}gg>Kg6=Tw4~Nnj;`Z-m-L5WD@IaI%oZn^DA)-t0Bq5jh;^Y z*?Nt#Ee~CX;yEp)r0J&eY<^XoFAwHJ@j_2AL&9%q7hgVJOO*K`XUtNT+-qpVfK;#= zpptc+-Cor@1h)Z3y*B zur@bLDh9vJB7XUm9NcB&6EhV-(~Wi`Y9+bKr8`+feM)j**6+RJQsxg6Ir@!$QVPdd zWZV(B9gWN9o2Od_c%)MgUpw@Shj}g5NToWz)C^tQb{0=peZ{r<%6e7=(z$pbctyho zXN1NEwie0=6$-?pw-wj|lkr?1aC@2eJak8!W`4Bhode*nxO-%VDi6W|Yp^f}7Z%$# zuDLN_DNx8cq9heN85;9>?g# zW}kys`iJ=%tYAc8D_>q62k7d@>~0Wfx~r*QC(%y(@O4)ubl{umlm(mDrK|U?04i0| zqD!=H)jVj5_59SDjPtUVDT^A=@^+$ilwNq1^PP1{?T@#jqEVky9OMPM3B<#C;vQ50 z@I#C)p!>+aZHogCXXBVGt5!-rxC2Zo;k+O1ICDf*7k^3SKgzt?cznh#(0%9|sy#Rd3!R1M24(kfeY#SMWuiz^H6;#Gbm<@|Mg3d7; zdwt|b*j>kGbD`WYy^U4>^d5RlsLJhdRP|-WOX+j>Hc$bobbsLd3;|Tljp%WlitsPJF}K=ug7) zhJ}Sq_SY)didl^?EN#o{T#A$9eU-oA`|tmt^v!!eDmR zWjr+*xW0nKW5DcdbJnjfagixr_1t3DEiMe)j$gacuCY^UWL0&;LTeT&nVZr&)t7y&o4?*6$9u40f zAwHqE3<{ZpI%Q78L?R^JDoyxc4vQ~jA+vAP-RyPUR*m{IPi%#%r~H`*guTbh zYxklO_IpnDhJ-l75}*KU*7+E);n~}-$47SlQs?H@lDO0Yk$atGQFioqXv;t*GY^Wd zn1IMNt|)rC($}x~n!|YJB>Yt_KHYCvzxoun$nsICbho7JRk$5l@Gq@4c?~ zUGDHBht7tGf8isZ}Qe9hKp&v$Ysm9PEUBpu!0O?+5kV)(a9o*Gdikkw>1mYfqcD zqtV;uM*-Mw=p3QG+-|%ZwL4Crn|EtG4>81GB$Uw{ru;Cg?=Pl!&wGGK=ZAD&Y@9st z_|L?4fbqvx@t1}gZbLXeBODzKYvStzb$5m*H3*W8zmwE8g_j{`?^9>E9Bzl~mkS;U z+7qu0GZU#deEJm%+wB=a)fze*P zj%6DE3oz4X)`l}ZTVn?=Y(wTw%TPFIvNbW@pi5Brj90r8bML*ZEm=i8^PJQ5QDmhY zkwNuEK#3P7by)3T^0i+$MHp%@Wo<4b+^zSN!<-k1c-~qTpt=9%mh&=Yb-3|$5FWI+ zhiwx{0F=%IPykHJH{!KmhgT`O#rMkQAdN@g0o#qxlqGf)CB90~N|>3TnzK%5w{Cbky1afPAAfJ|(CAfkUx>RJ`n7VaD?5cBk1n&q=ZmUEf|(=ipfsv4!pl zQNv0ZEj-dV4CfuWRwU$ExG;n(Z=7(ratWZz8dLq6&na65aX>vnL$ywQY;`nbf) z&jztX5Xw;j)=SkMh28b83@EO&{1VjM!1TpI`c*3S?7nzmP9mq*J!}HzZ%s|!@8zDt zgQ^0p6@;P8`h8&GO9eFm{)h#7=~Uz0<*h{3FWChsTe;XtB#vtz0BaPXnDLddI$f^#it_bF1gFqpjS$62e7FS*RQ&9#Wtgj?9@MoDx^^$lXPX@;(tXL%P3`xehS z3uuNo7+tB>vMiQ>+DEZm5O>={d zlz`@eA--QR_ziaieKM)jc6(rpl*>NuFBtt04-5d6-q5SyrM~uW*{MNDuDi(_(EX|) z>Fl!0RFfLvz%?6*93siE^l(Vx9YX@*0L|zYFe!Yj`II>^XZt1R#x2ME`P|qIrwlcG z_7C4B!Pmw?%Cto+xnrEV09R-Ur#YX~=9+2rtte@#T**IAo9^%vKE=5KYw|V&>9uVL z?ZYeO@?Z8;@ItN@Tr{r=gcoS=wobK^}=>JH}XlY$A^1#SEIPKLw4&zE_c?BYpiB}353u1lyL2E2% zC0D3fD?XuM{vzJ+I|w&ET96u!me-84Y*pngT|`-U5)|_?tQN zJw~p+3|u;*0Uus2JH%0Dc3iBu8>YEw_$_k*VN3^Ft;Hs6uyJVRkn6-@g-KmRQv|d3 z)h?)fdAEwuyB+(vpee3?>#GNE(zMC~C!0=h*Bx!qVBG=))&&;c|D3e7p~O750`g2Y zZ9Wn7X2X~07dP=>Pw_zSC%6wJP96FgJT|HLBsmymiRuY=vFl7h5l&6WY$U~ZTbP#B zop`C%RZTYVl*}Xa8%TSZ0L!6ZAG62Oh_R{zlzKHx4OE%b2+2=R$&?OuVMCWs@1Q5g zFGu4Evd4AF*HYf+G%;r^SnmAACc4lOkfl95!W zxYH1*q2(-t0hy9!hDUKII>C={r$iRATRC8MyVENZHYpW z0uLKZPK8<@7CJ)3RAJfn?@>P>E+GOZ?kq znLL{YKYlae^cSc8c7H*Yq|uMRYqd%#Tdjimof0c4zxE{|ssPnS*oZ@#GUjF?g5{GrPEq4ww6psa{Fuw1K*qNGF4>vJK#`OF{I9-e}au8$Np zHEW(^aY}noZmid?ry|)Qh=Y7IP}RikbCnE`zw%Lilp2yQCCGAUqa_`wC7KSf>nD=RU(-NGPC6u3VT7t6W$5^fXDDm4)VU@7no&e zi!pb1=iMmJYB-v`4qma(>_xzU$ZG!Xwl^N%S3NpT4yNbvKttcHz*wQmKwRYs5gf|exP4+v0t;F)*!OPna2I6BYwZr^Q&2Pv@z4{gG{hQr6m zC1w|E9@JVGwd!^>9X3nJCT!e$mB!BKJxQrresg&CZK?UIIztYp9D|P9=JV%`krz<_ z3+yy9sd%WQCSR=Eq2532#59tAuDp(FyfMv@lzV<78_KPtll?scTP+KYm;$Uhkbe4Qr($9g}kYn{{aZ-Nt$gO25n@1 z7t7!KD^Lpv?~F^DKR3=cr(HR@XfQ=TV~@7qK4I3bXIeu$zY>oS_`QHRetd0D*PA z$HA<3j-IT(H(Ws`tOn0!XEttcVPYKLBc}~0v+r}ZM6>Ep415SAy5%u_$)I`FJG)5b zS&90fY~taLoguId#4^=2k;y`bYUQ^QldQ7_G3>q|>$ZSW{|~#I<$wCxs_4;(cVRP!Q$S*6fyo-m@La2b__uDpKg=u4w ztr^7z+9#LJN)sWi1JidrxQ*N=mC_U(7M{B@MQf@FW3e!fmp3R16*JG!F4YhhYw}S}PLT7Ccbt!D z+(Tm`Wb)db1}3v#RQ(M06qK!C&`B14|F+M!rzC?Kj8&W#`9{L~?rAjy4u*N{AFrJ( zny=QKcf3UU$%YB14wg7&Ox?Q-nzsI1O8(KeLx)K9y%?0XMY!`Sb(8jf92PB0sc4eWDp*QQM{$c`Z zCRK3OpGC%~Pqw4!^nCNOg!}XKMJe6}a#qrPpuH2ZWBh6dZzR>5?vgg+G8yw&SZ1UQ zFSZbB8i?&n5T+vI?EMsP?%*Jjfb~l^gT1Ws~?U0GA#EEr5mzl1Cl+`rhdSD6x(|5c|)MO zc=J&xN6NVo-*(;SsiV&O{LZnM9?LWUY6PhCJmGCq0AEw%8k^TClPkZH`&(siD!ST4 zx9pdhE)V?$wh-m4j1}hA3e5*ovs%$BZF~3lyHSMC3Jg#!FjYlaJu0!ma`hl*q>B&4 z8?P(QvmyhkGlYu!wDVXry4^MO(a(&^8v&eSxH&r|d0u3YvFqEMvDL?rN-K;-lvojOiH4bUZR+ewz z?VEf@Bwvd2K6f2kZf(y2;i^ODWfXynb0pcH28+#*bDw94SChVoI^5C8L-}ZB9j& zi};74lW96oZHF3sbyO)*b3~)W@Z#O`we?4<9Ui%m1q@ks&U9r|MgsW95Yk1O0;ih@ zVv!kvK8{9rn0cg}JIyEy;`-g^tWgr`GLpft>}i7q3r;Xh%~b`-k9<`=%vHsES8A9t zJry`c>)-XRY>am9!X~oRWD<*FZ~E0N2GcW{Piy9VG2IP^9dI`H^|qH}+5o{b>$%QQ zc(sV8g^ODDKabbzItA55J;xsS+62SQdOF@DR4okqFzQp6oU`QtgdM`(d;uLlQmvK; zcs2NHoWUvF!ADaDpz9gG+Dc-2?~(?iYPT%Cj*|<{Z>r4zBUJnLw0lf2=dsyB@o`t} z5-~;BuWL5`DmYn2E%9VaJksJd^dE%Y^MGE|b|ZJV+~SWs-AeBh-=oUvXf=AVbAh65 z)AlPXs{86?Ak0*srK48;Y(X)S2a<+s4Fpj)S^CstKr-w96ZTZ4efvEFJ z`DdNjS64+T*9!$Z7av}9r`PV^yxJj~%>=`5HmKsxiaTcOz@P(a*0#ywJrkP#of%X6 zBIkGQBLFIl_d~HjJof7iU)spK?#(~%63*P9yk{LuPQoCo`mCr@FM({==#XLwo(#Kn``X>|IkDdbwCDzB6snZwh(FR6`WDrrh_7Uj7Qq}bp zJjHEXxsp_%rlmG5Df9+R5gG%b`<|hgmwJmmq?D z_UPi`LisiAf2HgqwB}#V4ypE4wY1o!tIS_|^4X4RoF3y(s^!amAz=8x&|jRr`;23l zucp31HQ>^32&;(GBW=7jJ2o;Zza-Q2LKCQgv|mJ&+n|Skmha33H&2D8%d&VQ9_Sw@ zMzXlgOubAG$sV)`OXiJrIu?|zu6cwjwch$5y3V=0*_-2qQ;{oIz7W3srrYuwBi8=K zUw6LNmj8QA?fz|clbWMkYxlv+sSeCRSyr8TdvzahCT`792DqN{tIQVZUB$29C`my zc})Jm?@dw3iHa_dtVesozHhR-w^T{3zv&B zm92suiNF+G%sO&U?-D;uZ%?!F!6(DWtI&bQbJoxE2cZP} zl*)8bYfpn!afM?YS(gwQf|2oFOO2Ib#44k{K|WCI z=GyrRlCe5JU7tXJ53En~4(zB_&rWwyH>Als;Zdh+}+rvH4t0qV%X3qxKX! zOF4;Dph#`?f0DNSWW~W+w=9JAV^3VV%V_{*RB)|WDlyOfDhZXJ-t;Pf4z1Hgr{~xo z8PdJG$9#bhD+Bv%_SoY5QMv3ds`AQBCyxhyeOtPX*ItVyyeA%0l+elp1@n;L=@eFpGuu8DFi#_n%1vX)XfPsq3jx zUTp?X%_)xuUhsd{93Myc12Tkb5t`Q#(ArQ2XfEizv!gVeFmu!Mbl zmH0XQ{1jA80sYZhwhsAcS@kOSbG(i5%5_#{oI~2XgiTv~`ul4>3nhP3T_l|mG)U;X z^Wt)+374%F{|}*fkwq(~{*GUdEYP+fJk%+rOTv8}L*CB70Dsp%#r2haN!g0(4R87- zBWQpQ%P|0N*|bF3p46OML;9;gx|#}MndiE)0Jyg|G8WU3TMrz0wUw4nfH6*DNF5qX z5!ZCI+;H-JTkM>47%rS#Gjrm`=Zs$N+`i_)sM!ufmI`>EHv$zcZrn!=JaC_fl?uRR zXdp1^1~R=%G4u!z?yq<#r7E5J|L*+UF?1zqEo%I9Q1}>{mQEUKueab{JZ+xk)Dqh` zRWu!{H*q=U@UUlJOVH_MZ#Gj)MR75#r?a@gq2@@8uf6VE{Rhn4M+;1oCKTGeKR~_; z|50WR@=DbUaAO|;X6V^T<$u15Atchd)hJN0p!5(j8I1C{OXyr^f2+Q&NKiRxMV9|( zbyqifav=e#vQVf00?MrQhhjc?qvqKYdKl$yaks#InJ>TXOpmRKF;Az3E8=ZMfg6Q* z`}l5+&Cb9e^`Xg`?&okF?T_5HsXS>~ z*l@#f5X1~XIb$b3UXe_dF+}id#BlcJFVx<77c1d4*11%iN;N*A_q=8SxGL}oYqZbS z<@lyk5KsMo%BdJ$RYe`wUlCh8OXXwJbmV4jKcEvgeV)7CSiyraM%#LW3rnjM{Upv> zFHi}~*dDPF<(0%@GF6z@uvl;KBMHPVyfTDO z3m4|rqie#*MC;1FuG40a&jDowfiJ+wOs{5F0jhJw{BPnOp4O+;L`6~(f8XYReQCkB zuDxrmx4KhyWB8Me*es zjXd9Ej*HdOpK$)o=wddaR^ClL4x-1$bJ8B_jw>!;CHj32IkKq zZpR2z7^H~}*`s4aRBkk{kZ7kb^GmHct@+!WNlqwNT8@X%iCdNFtHz#} zE5$suU-*&Mm%`L0Zi(~IHI>gN*+oIW-9hdO6X79|W-#(=_{>%*1 zZxYgyVEGeL&-6cB!rxCaYK18Wt7x9agpt9fuN0~#=KQ5LsVMP;!vle5{&K{)`+1gM zG_{JI<|ku1JjILhIMCP>YfIW$9_^cqoNl_r*@rmuxlyp$x{0GMzMXj&*f<`51}7SC?=sL!x zl6V!=jPPCzCV$%}@Sn|Sz&+ogklN^e$o=ArQm1c`8WJd`pQOaJEExQ1L=hjqTq7%V z;XeLxPWc@Bk2;8edDB0=txsfAXthT4`HpTaUMD9fge492`cN>fBz)`JBz2TI4@4~V z+nB$r4l6eZOi(2?{lqp~`?vX}&|TAmIQ;=coL2N&rz3=Jq~PdryRc)ajeM7lG50sv zYleT$nL8d?q2Q=)A$!H4XT?avaFIREfVG8BEkoY^n>ttZvCiZt>O1gO7a`J@& zF3wmURNHnO=pVohDoJhMeFvHccjzF3e#vr(;XMY#{A(K`D25Z5(@VAEt=+zz0j*y% zdt=Q%Lk$R`xDkn4fx1oSdP5$P^+f>AjXg1Ils*AQW+WX*raj3aEKc=A`I)XO@>B}9 z?tFmK#oTWHtM;%W|3^SanX&x#ewxeV*Wz>=JPwdA(C&|vF6D784 zpM?w?U4**1k-!zyxseRn-h$l7k85x{#bpxsKOK@UMK35xp_6Mi`;J3b&bkUEmSX?@ zm69UrtBN&iK1b(c;OIGUBS*EF`3OZe760)u4s1e<(8;$ceK1I`%Lq!Mjjrz(#ez?j zANqO!>2T|;KqSYjsKSCA7}mVE;Rr40`sQ~tX1;;AUS{>zIRG>F|51%-l7i=y_y7aX z_Rd(l*#%t&jHHt=flk^SgCrqM692*#fFUZ6Pt7z!Ok$V6PPBkUma(EIq)KYLy4N+cRh*|IgP*fv=^qC#pm&&T-B(np{FB2b8z@ zqH@q!N&Y(r0d3WN1LzT~ooT4SFN#m?+|T9B@!C!sH*>`M_qQJRSFk~4f4Q@jo( zwm2Phk}iqBZqB4wWyHy#C|;+dML&xRff&XQ_y;hpqM83xvGxp7EC@J$?pW(O7+bAb z;mNkdr=pu;Fhe)lkQ&U1-9X3n)e_KbU&+X<`MIR?td;2BRS1K9;)Igm>L{=SsJhk_ z=!YaQDP0HX6+E-v?6o)GpWz4l4F876526`y|8dmHL9)`h-oVn}#K)^h_1X?FWq!>T zYMHSSXqa*RKey<2R#9LtWPxJ*jO=iK@7QX#>x6`t#_N{;Skg~2v&mQZ`Sstmk=_(y zg??sLDEQ{y^W5q$phfYhbB%nTVn?{uk#e0o6WRDDH-v<7Bhi)XmGs}eOdKsLvR%3AkzHNfz5xQb68zz)X z=PO^upJ>81btdzFjSTXN5};m>cjj!%w3Zi0?mZdl#;J?)4E!s@Ve^Tmzh`DxqH7St z6EOULcP=g@M@0cQX>$0HhB4o_TqlKscejnC@5xF`1{+L{;pWl<5y<%&Yr}E=e;uaa zixhM32bgG_qU!l1b}I!4pTWPe#>uH#v0&CD?4((ci9g7z z$4C^mW2N}99eqBLaE)#6J$8%Kzh4jMeg~Z_j?k_NwB#HHt`D@3{rQE^5|TG2#EzCfRYK`2VJ`Fxlam^o%{U;gAOERX$n zgNRnj0m3^XApr>ZHXch<2F7COGKjl1MYy^<+(>k|aGNx6oNej$5eab;PzV0sVMs3_ zER-6+Op%eZ9iXI*8^OX+q(L_n_O0=a5$>GUcVvarCd}XDI1w{!P59p#GeN2$#!WRy z<<0kXu6>FwnkvH#VO?P--f!yPo$(<|CdDFZNpg&)iWNIfwVSsMa5DbS!_ z96r!Ypmm_Poc<_U0{pcS0~}ctVW&)Mr?30T?OM3mhkf# zVc6FaryBlhs-x4@Vh4KRGDS^D2?d&;wr>>TRS#KIWNI>``inCdQ8F1(b;o;t2h z8CqJd#ooXC-)`6-)%4YPl`4+_>b7DOlR*z(F-1tFewGQip{g6gCzAO9}-6DfA6 zM(QnlCeg^SB%*HB!*Q>H{nd9>D2WR?^x)*56XX=ErNG`+tX?bqGwJD};H>WU`G5(0 zk>($l6Ug;SL7_lh2d)S#X#biT_VIwrzhUGZJBBluGo{P~rcdl;z&N%p0DZBvj?VkP zY1vC4wDs#6n+#tS5`d{6rV7nG&@BbZj!xcs{4*1aAV~5B*Cyq!^4O%F3{)-sly5C_ z;vD}(B1y8RA(a`(qyqEzoaves-?jdCtPz^=FB~#AJah9gh2lNv+5%kb|5uj(^AtEC zscV!2B}l0Jl0woi1I>R|2qy_>uQv|3w2w4r>2B=)Zwv6tC!MPwc{ZD^vtl)EyG{Pr zDxQQW4u9WA<J&>bx?|&D~0q0o+kk&9!r4YO`J?72z;gd6dnq)`M^#hAtM{+>ZT?!jr zm^QRngx^0t|HxcW<3DI(wf;Z;g^9RDNYJhMvrN%vi#o*bmS-7{#r$UuaE(lIOje~c zGa%+u2ch?mVl!9`9O>dBf6}5Pflg6isbbG=ZrHciS7s`oC5Owrs`jGVt;Gsl>3eVI zz!_bWn47;LObo!4r@$Esde%8(o#mLjC5Z<87*%ng*WxT0=mr5oP)oL$>D5`|4^H+` z6I&NKkkJY(|Ek&TQ(!}mSY-^NWB*yE*XuzZs>FDKH?~!^mk!|5hk_lJ#Drg$Hxdwz zA3WujfxVakOyS!oJ_yXC#<_Z!Fw@r6CUc9jSnBC|O?=a1)rp~ltCWWU#B;7dv{ z;5j;<7zI=x>V1>lnbkrOGVKqhukMJ0EVZA+&SHuC$``JLi)Tq5XMDptzo2MsVth?F z*VFln*ZXArm15})bq-?3Gdbx7R}FLxODEY?XbYtoQM-EaY71bQJ=9js#X0; zPXEDtkK6TeqJWC;Wtx)=3sOrN1`%23QW+KHb<-y^OQDM`iTjJed|o&{0Z?uscZ)6j z)o=M%Y^fg?FHd{DhA4_=ua)H12^lH?1zL3+NAxe_}}T>C%x zyonEpRZZ5J-styE-}Gyha54_(>9Kr=y1qlK&{0Y~NScVyYURnMbyP}Ye$pu)4pUE&C)s69d(uQo+F#tQEc#>3BoW6h}(m=F{NW|_62ke)ZSA1WN)xvYP#ru4kq z{oq!&?cxQG-qDD0oy!?b{6m{xV_YzG# zfnH<}c*5K0({r$XX3?2V^7-n$Ep7CEkvL8CAy4t5{i~>(SL>DwtWiB;$^=msmCy8e zXDPTadm}!a0!D(E`#bXQC6H%CndVkcjakXPK3IBw(hyR)x9jZazyD$opBne_J_n^g z+_`{wZ?EEZ{;N=ixaAYvKj?`~wL#uzt89z2^wFFWx%N!tM$0hQF4NR8S zdbZwh{b#d%up)`ZX@=T)xUGD+S0yk``Q+`hptu-4v??9G(KP;};p1xl;USF%F2HXH zhq5-kqZDqb|9QDr%ErtD`~SzJBmw@xauV zA|-2g2e0mV`)y=rzqpZh%Y1pxyoz6Zw6dW1){su4bLk=e#SQ$eY)?30lf%G|Ft#dL z4+!69BjZwkfg#0mr=%$aTYc^JaLi+i_X^Ti%w6bAwz58 zYIN&!wk862P@;^r(6%yD$@@7VEKLg^cwrrG8cL(ALxXP)7Ft-^%CgRH`sz=Tpcf4}v+%LEKiUpy5I(pe zTn7(VUZMGmclTP+57HzuP-0Gqx^K4YIT;GLb2gRbg#J9W1r$8lhH{8ppcrs%hS&BOOgY zH@2?&td`E9^%Cz~x7J1X`mv&qx2TjDXMiITT8XAT_>yB)e>VKoGK;nV!g}+Gmz{ON z|Lp*U(rta?Wb^^I_iZbigs(hR&h7yI#=y3?>5fyih0QEC%TK0qvz!xC#hZi6U{4#8 z3w?7bviYBaCGr#Tk0Y}ss;e#7<{NPu`f!OTZD}poz97N_*`hmf-{RChc++g-LSARU zi^(+00PDYgHy9ue1YQoyHriF`(~nJW4<8{LxwoxpE$I7#62l_HeWj`2QZ0OmZ4s^6!2hoY4f#Ph4G9O~Cpckc5C24K;LsU>JIm_`@rz_gE z)=QfZ$)b8rypC^%%x+5N%Tx!AHs8zQ^fq=hK{jeiRwuteuNx~9T`+OPgfv^Z_}VKj zLK0is8SEh8FNz}tD<-MbE^d0He|PojxD6xelE;1uR!t>D zFU(ua&e$EPc}I%&CWy0*(bO-;V?~DdN2Vsm(^X#Ggftxryqc^iinLqZ<4$EJM)1%8 zV4+*QtC#abf=9ZZ@GufH8bKDNG~ySnFQnKCmuxlgcE0tpacnzm5lUh*cgiu*i3ouu zfal@nAM3p?KVtA;?2250IhNf{F1V)MczqY#_$j+u>7V5Pok6#XM$g67_~Ez|T|SSO zIZ$v?ne}p=hZcW7wC}wG>`OElbgIqUVXBnw(!^=Q%{E$J8_8 zv)UZis?8J3H;L@&!GKx0+2MJ(CwaMx#h3TVBx>7I`?=(SRNoQ5$&w{$tzqfyxOZAj zEql1_z*bSRa$3Vem{i&8&>Xc#g$h5+qy-S$Iar+8b>Y)sUmnGp&EEDahePAU?3M@; z{gN=U`$5r~%-}^AZRk&CL~9jX?KXY&oS1wNlz}rlV{9#6PQJ_5H<3!jnHskO z;ZB{H<6WoVJ;U0e!Sukh`F0uY;YD8P8fu--} zA_ovH4vC|ISk!Uk#4cFxIVu-wnKuY85K%YM;GRYWj6*@r{#jGL*)e6!0kO%4)f9is zT72JOGz=2uvF6S1(%KrkL709sTL=0zBQ8q=jbAEzp{in^Yph48bFfh@V;oUq_Fr`E zEC#z^;`(_qnt?K*BQ$!#=8p$=M->39s%aTlwi>hetj(R}Ei+6zhmSL3-*MF}vtT&2 z5$%gP8)#oZbl$3Ad)r_3LYg;z0Y6<6O^;^+S!pE>#K`;_Yx1}Q@w)uca+Cbk04iEH zTStN8fFO;L_Ug|t;11)dPN>gHN4v_VF-2QPjn)Ewwuy1}FZ@o`W>0-lQ9n0f;eP$o zST$so2^74y<9K&%*<_4tQHc-K98z}Zkd7A0;Z;qIC)~uq`^=`>gtLoBb};w+cqMA< zmuC!4XkeRA{@iVgb=~Si2F_*EX`GTZTSoaeLSAepPXNlqP_G?I!|OW^>V`lulSHB} z*N+GNO0fjT?89)r7lhPhrhW0rQ|8Ih2E?=*Wvbxb3v%B!S~E}?LpoWrAM$3zFg+o+ zB>QmT&zE*nFa2eCkK@C8vWql{D)m)X*pm2#ZgWA`QB@7CNMmN&Uu$CdA8XjyX01$!Gg#$K=~X}}ojpu`qYaR1S%DsS-{qo|v@kX)bl9D#~?p3Pp8 zv4eS@>iB)OR

N7Y?_D4dR9#g1u$aA(k$dX#q7HikBYiyocZG46Uw)d9prn+kfAD zpWl%-Di7eYPzp_iyL(-h;}6V0NPs+UIPm+5omy_TbuPwK!ye!7uw9Jl4P1W>7O9o4 zP`s^>WhPZAKk%o0gE;Pd3Luvvh01R|PWx<`MW5p{aSXd2#9rWd+5|Y7AQ8^q_W-)L zi2Ti0k^(&22BV-?@us@PWpfT|hhHh)1pCYP%ub8ac#=Eh~}qXBfk;I zem{9s39W?L{V*G?OjN9Y2)^@8N0qDMljDfs^cH|uPC_gmx86HMWh|^1aK^YaJTee% z^3ED-kIsDJ-s^!S?k-s=lc@<2SI8tFc@2dSgO~-LeCoHdO=UVio1mD)YvU%_@u^>3 zBO+Cs)Rh>s2O5-6->Hg!v@B^VwWwiPs(TGPwQ#S7f|no3Om|d&j&|<#Aj2+`7(`M; zqb=OqgsPz8mzv?~33VaOiI??N6^_5kqAqcbB7-C1lnUynYoSCFx(n4wBgdCJT|&M! z9A8L4sO#iJx@JVOEkfXQ^=aY8~PcPc%Xw*ir=?8B}7_N}ms_NOzu>b&Wbx}@* z5&8&MB?4K-g1c?%V7~f;pyrzz?b9n(6~K|9i8XY5Yk)Oq8t`@P9}?%^poX6)%#DX9 z4If{P)VKgHCx?^LeYQEm&+y~@FM^Z~{qY-XNN+Rr(w#0V-KBtD*N4k=M{mf9A*I|? zr(n>I{T-^ZJWRqcc>~NT=XifPm)%SUwTS>!*ZuSnDdi9NU+8VEq{G;BtEA3hOAS!c4{XlYzXV z!f~vS_;Pb&6ms-v3%lrM{P#}*3y)cwOvf{Xg$Y2t0NEz*DXAJ*>!$((J8O)b*qmu6=%x+1P!(4 zOQZ5pCKiQ;nMpldl;kmM>8ObwjROjf4=1hf`@24bUYrPt)3m+9ZI7`&ZTBx@r)d%# zHXJP?K|I{Kw<8k~TllsKQ?Dts8Tpu7?*oZAQ+(VH@Hruf({%8}_X15mOkoUDg{n2& z)8}6qLBcVyo6IlwSpgox2&{P~aFc;9&&X@(MBGVFp}iReZ#MTmyKp=0`5_@ep<+mD zbn|#{kAFC+Ou>217#{h-GyH->$?1wWvy>cF2i16eX2~rh^QT8>7$Nad#y5G6{y6|ue+`9a0*sw#`f<7iu&{f=WEo#ZQImn9OIX@v2`OLr>^%_vD7$Kx-_wRXf*XN z``Zjs$t%;`m;s8x&`&azHUCDP&NY|Y@k0zWu84DdswuK5UrVc&-o)PiDy-2cwzvAT z^2hZIQL+R@3wrl^oJsrjau$09{Q#`*enG_&#) zh4;Nu=5b`Whv_1rq}d8U`LViDIK`MRX$?d8qx<>b>2t*m2VXKlOGymcQj}vqKXN(rXXiWk-(cPGr&MJAL(+8C&!}fFPoVpS3L$ z0Mr>T!)mIw`1HshtDi{KMjxVp9ZK9$zPg>0AliCYdEx3EeW8svd z;WeG77nw&~2NIr-F6==as+c&L&76aNE#;+3avPW!5gh~2dV$Bkd(;=)!xaXtgL!9rKg@X@e*{g=W~?9bQg7xg{4Yw6g} ziBk3E@~q#jT0{$JeAYDOIB7Vr#_C5rb1# zK%SDxbe{IE_O2^SJga^+`&G%YeJ*;&+~M<@gZ--S1*$_<6A&R8P5n5X4v|q%rA>(O z)yNJ?X@Hz(c$<*OClb86ibVw7-zQhk*XIbSsJR*Wi>n^ae@KY&IQhsDpaHUigW54s zbzVq@wrI3UskFjpg6Vyo-S1!riGjbqA}P^gdjtUt^UHNy{mYzk8V&Ndmtm9-=WnB0{Zn0#U;CV9)iT?}i{`#=#OObxY2zGJ zy}`XRhLmV^EY8!lHq)(uM?sFi<4+>a0i&uvoBcs70%m$$^xg{hC`};9+rlNvLYOVX zsbmV!sl=?qmQQ9g;;6es9tP6e0v7gEseyEBO#l?qeEt0d{73oJ`(TFB;gFw{9umo> zsdVZA+n%DjNMo(CiH?(3$14Of!2T1KtNjVbnRoDU8j`{2#Tvdf#X)E9^AjS@G}YFn z*f8q+8c)$`o>$!6oScV&_dud}v6Ps_V~VBJTE=YP(b${Mp{R+lPS%N?x(SI!_ulMa z>k%G}j;AqV*Yk4?jMj$~?#L=Kc??-ji8l7)$cHkDJQD{svew+0+x8k?A| zukVpz{(xiO0QNAE>SESZbjjB)5G3&fHqoWXE38I`dfIEPqk@>2J`mX3t=g&=)%I#b zfYLhO7~>s{&x$|PFutVF#;YsTN(UJeY|Vb?B27Zn^N544Aap&Alw1$K+J(i@0oYfb z(}8Fp8p`XRAI5WD4&a~b0z1{qIgL&>a5Iu!f5`T0OGKgLh7_vRS{0qK5Qey-f6~kI zH;H-urs31^9Vs;AE(ZbDsv13lnrm17K4L@q&5)g3nQIGI5m_gOV4VNa5%&ZIZ<R=0fgy# zXr{YFoSCXV99~X|A#U$4Wj})9j}^2_AqRRqtXG=@lz>1Z+v#jl#vy*l&w+YgmH!xk zo%Z^wn&CG4FoYJd#PP)zrPUrl;}rf`-*8 zIlSA)&V7ALY%+uA!)XmNKP3KV1yRW=;3fr1N2VZ$VC2)AgpewTfI*VB$nJ9>+$&Uk zwwGuTvOFU8YvYoaf?f8F!ZB_=^|uC|YaAFh?Cr;V)7#5V8{^o#h`T_{%v;EN#l!4% zcZ(sJ9$bUt@~MuvFn*7@Z(VH5Lf_;32`vuW#JWc8q~yRr6%80IC= zPNho+r|LUO2amI5sQGq4M3&a)w6T1T)f}YH3W-Z`W&l6QBXX;SimC6t{!ka(+{4%f)_gsU~7VUD_lS$=NHulKK zImFnaj`{SXV2QG0kL7Txm@KtJ3v}=(O7~6itnRHX>m9ZIJkjr%{-YA`PO{GG3n#>v z%oio8>P;d1zv7TaZM!0V?u^B=ZU9G6aqw1Rxiv2eO6-G#IHr=0C>%}H$im&wBwzmz z;jGLIV^GCEBxPL{GET>Oae{x(vmZ=x&_AA1k$Y#dP@yuS{>8owkzq?anyJ0->Ajox z!@lfkp~BSbg~p~vc7W|K4Dv`X`*o@g@n%~pbOC4Z$xM8t{eCTFk>FR`rKUYV1e-e? zbtMyb^hlziq2TemW z>AlYB$wZOgbNE5@<>-{q^F~j9IapvBUrD`-YPXnf7Yi6sOd?jiA=lG*-V8_w_?!hJ z<$VI_cbN+0G2^9^ljy+@*Jhf ze=+}P|4xc@!qDqgZ=2W;D0hLJXfJ-5YAV3G;Mp&pe;27jmG2fdtgvfa1xIgOMzcGJ${Qw*&SW1u1*cA-h~fg^ZRxuA{@t7EAXj)d>I+?G zD(He(6|04ZQyVkk<|9Q$k6U9?Io|G%K}wca*YraCZmE@$(A&E_A?W3-DvG@b=O^O4 zs+ReqNLeRonHaW)2gLMLdl@{W+1@dGAka_HCA+POam9^7ikuK(AbnNm(kkNimnm^G zOwOw?`LQ=%K>ctbeNgVK;D7prOt-91RQZu_8_;E;{A`$6Jt0?V)z>~g;IMe4p`#=A zM+mcWctZ{!_#Cf=ZFX#a?@c1IDhjzhBn-kbeQjo<;1$kvPH`}A=f0Q%J7=g~yRIS> ztz;FZbGzXR3nUT0BAB^i4UbiIwAb zP;d7ypzeXiDUyMtp$}Y)C4~w>>2g}wEdfv_&AWl152Ef*N64U8a6V@7`dn9)w#;H& z2vhAPGhy9sGm)_0 z_re{amlD^5XAH7k$KEu;=+)(qx|eN4qDzu84xAtd8hbvGpf}0 z`Tc30L%U}Sv>ubzqQ5P-^C?f$FifY;0&}_NSZOWB@6(kbou^-t@ig&I)C#h8B?H%+F9) z6fBOX2z_~6*Gh1IQ$Y!&IGym z`Iq#yCQc=q^XoJb+{}7TMXxroHB35m^Mf3ZTDN)k6(h@e8q10-UuDhFKOQ$8g)FSs zoYUXlD_#*SXtS#|>;@{D{rMfCiuyE9#VMxhm4?b8zRmAKKrk6RpcdJ(#`0ZM)0w?F_|^AR7_;-Q9pw8Ds7g zxA})Z`jZRMT0-31-5Jp(wI2U|AC0Y34_^PE@z3{oF8w&}qg0y$Af*HFxBQlX=}_I z_B0XYsh14(%ZPk@a_V^sZfLM8lBDw@BSJm{om?U!El@1%I5v(6yOcD(-k#> znlWrUA8}w#sdYxw$~J7d6U4pgSYbRy`1)J#dt$L{wX^ecF|F&Z*I%t2`#hs*66nnv zp(jPGTz4gtuN@opj8i2e+13x#d8{8^xmd8@T-zpqZ~V0^i&tg5VZ70-*4^9qA&uQ* z;2z9py?+8+hL=J?OUUPPcub<2%$hRRa)WDVg8-ytgRC6)RDo~ok#vLk2cwk-{sjXf z+yoxjms`Rxm;9R{ntVXT>%GKyFV)FFAOaU+l<|D%n$y&+X@gmYe=i5%&+i2KiHbMR3R}P6FV@1{QEb^vpc2AktGSgLm`v8hhc^ z!CwP*o!xB13OlPgGIjv+KN`@Jx>}hm=oQ`Uw#*4@0`;~q@D&NyraU;7Wo0+VDwG)y zL_9;ils!j8a$1(h)ZSRHGFvKT%zWJlbP)afV#p}E7#F+95LIX0qO1flA%o*DXHsDP z%F@<91a(>Q6p%g{HL;;g5sfP7Dc4ip%=Ryz+3Reh0F?h`Z@-B8QqYEoZ}ElO1(`5U zSJ6`k-uin8+U`8=vSC~fw@~#Pj}WH>alM@o+M&z{$?^`a9x?BW&0s&yev9WcJCzE| z0KwM_Q}zB_t3h*S$S-?q?##2pq$Hj|TzaX54<%mGau{_gQ+D?nU(H%X$%!S>@KjbFV-+!*jYKGvMpkG_DWEac9NJ8s2U6jxc^ z1Eo|n%|`BU4Z_~k%)YOwUB>laKPS#<+|$eJeMTt?CfWQVnA;pfwX!p;ogu*9v5~h^ z5~aW@L$x`42CeeBZ)VQ*N=7vfS$E+cJ2WAfrCrQCVfYksT0;{F(1`DZ{??3=IiA!^ z6q&4e^A$V2?P=8d^944MkIqlY%T#@%Ckt;Jcb%Q9DE^Qv1zK5)ulw?1$D41jJT%LQ zopLB%W8dYw{aAG_k(ZY&$M$&E)`&JxdFQxae3F^}+a)~O5VAJxw`T!5%p#OOgFC?P zfzm$-aY8kOIN1}BNRhLzA{MBkMT7;rhybFgsH$@O8(Vd#IHu^4(TB9n7VJ3hEzVgK z#c~7|ZnKN8)7ww2HG`EUgGYc^AN)0VOecwmBhcnanQ&Jb%e>p0*fFj=1Jk`RYimF^ zZc?vUApyd=*?ZL4N44-HBTo~yZ+J4e~zY|<-u`<1jYVn@B z6YnG`f#s?=elXNmkZ*~#KPd4%A;1)ip3q00VZi`a`f_uCTp&|Y?#iy*=oguu{@H-! zoRZl#wF&e&?)MT3&(1cR)N_JROwf(%^$OUtW0!`Ui`F_jS9D>n)bMxLYhJ*0W0$7;q6)~Qtp2Sf)ev$ z$s9nEL5ga;@nyTcppDBmCe--K+rbuX-^0rj*0B>kCg6WbZz zz>+z=J0Rmsu$Tu*vu0W+PdJO;#GhpcC&$oL=!=gBDbuDZH!pUlzx8Oohh`JV1e-b7fO z=w>v#W-q7cFikBNraMe8GeIg8Bp^6i<=m@@&-MqsYY@!sMdp()Q4QhNQBSBC3NA0R zx76^IB*2UOTU9JWS(1+K3g}E=7QNWASc?q5!|wk zSS~Jj=YZHVeQjNh5W(#Zs48Fden~C0=5z9To5ImFWRp_wmCfRyD|zd&TvV>#7G@9C zVq%|;43sE(KjQMwolvWB5TLs_{mrr-53|{WT9&@B)`iF)8Rs$R5&5c!M$eiiV6#Gr!(Q1%qmXnZA8vDWdeR2;ZZ9u4_&Ya8S-8GpbDUoAHdWGYh6;QDni<`1<{7lv6vUWcl#9AWDiz^6R<8J-p2A5VWgy0;iWUX>Le2W%F`zIZ#d|K~q zedgaYhx%+^cIH2MLv&4`0}(eICh3a6TTiHwDrN8%U9)oEdE0&8dSZG+I3iWGFd zHP9Hctx_4I_^8%Bw)ciqb2?>l*}!7I6Q8B4`?PQhhpUA2S1I~bWS5&j1#mJ-A4w*8wzx6m>~qe%v{sffST`gZC!?= z$EYm<<|bd)3^_ieJE?OSNQ@$fk*_2hI%4(W-RfMYEkG*+{yrPoYRcdveccd)9=n&K z`>k~dKDPDI%!AX`Z}M-l0KO!Bjg3Omegq4~sTZ?$?YwYy4!^=$`r;Z06z!GnjSY6< z2BF{YD76*(Q4VSGSL1`u@_pQGK;2y;h0$)m(KG{$1gF@Djz&%in_cY!ql!g<&Pez1 zZ{M`v&^GUU$-H3u^&xzQw0%eHcR8zN^TBsCdoh79l>>uMMTdI4u=U`G2|mou!v&{} z|L{bAU-&K?vl+j}XTgZ4n0!fXb65!+zwF7hbLlLOEcY+btNCEmrKVrEk|qjqn-Zl8 z#{i4AP{FV^iP$==^ zn>lUqe>H!EYqJ`2Ja#y8OG)ubMAynz3}#r)2C zVU|UU~723@_6v$PrH8(3{%_5mc7e{lNj4ulB=nPW z`Sw}pi)Sf_D@#!U^@uHH@3{0dZm8_&$IeJ6jev|9y_fV90bA*)0e{K$nvaoJH{gLM zxj3JLngV*0M$ZO)GeI=adiTOn&@@Ju!rUz20PhEQwX)3Q?P`s;keUY*6;A5dvwJUNUT()#@H&18h z#ZNTKCrKvx;YTmFq#$<+y!f&sVj`sFo_#dP`zR{(-r*7--ka+E{TL{gt9PjE%??B0 z5Ao>mJ~*nU_MXd#)=tMpvN3~zBo5YqDyk>ZEV3q2^f+E+?SQ8=!c){dlrr;HaKfF**4Qp_=yWiK(gXvR$t81Kd*FYWsN>d332kiL$?A% zuhV5huy5iW;-9=isY(RXpjrnF$ow6Eb$w4D9Ni+V{F78SZt5a!|yJ!h* zmR5tvhUV_$Qi-Mo**iXqSM^}UZkkLi%kS?s-*pY>15F@G>KgY~rhEbhX`8hcQm$u$ z5hgyJ45vE6{aw>`{!k`NW#YRHvs}*dVi6;tV1R!0KThoIg*ZU_XIRxKS*rot&xbBl z@42+Bl|pYp_N>U_T^B%r$sYC}P3-OrD1faH7)}O!0v%$y^mw0fdfw^kI0A8F*0d#c z8V-VE6faPz_$7b!@~F&0FjV<$PCB6YS%y&9P+Hdni&_~vp7PKh>iu9V3OfM9fW)B9 zPq>)ng-%2%#N58j+%+wa8SAeSZPbPUG{Rbr!CXd|RY~e^ml}cUqTZuLK9rUKDqfA| z`1|(CbARJiwCJE?*Evkt&}gfQH? zP(J>1*&5ofjOhI`^(FJL4#UP$KwbNYHH_}EZ&6#^*`tulfvfNXcj1WXYEZ}Yu=G)l ztP_9`g4qT-aE%tL#b1(ke5(jiQ&n+10PJub&j)ndGeCK9_(UGk$ES$CDk%N^L!bjC zPrM3aFV7WbjqC;4(ovH*^@4cyP;-K4J^h+X+b(idKUnw~LYCODE3ydneszScDfm;H zD9GOEuP)R2|JeHywppqlR28!m^zthx#r4LGa4CMxn+v9xMXf6;>uDv z<+PY7DJd#7Zlk8ArX~nfmWCTCDk1`|5GtY~AhNwr-}irbuj}`F=em%Ghll6!y6+GYs^q8q+)u&svuI`Q67!$|(}f2Q=iuIBj^Kg1)MHF_F2V&PS7 z1rV)a+H3%_Z-%Ym<@}~ynOz5bvk}Fc0Uf+@~%M!+&8gM?A$xa;~}7({HqsEgNN(zjX!7e`!Weasht*J;UI_ zEfc`DHRM$GIvCT^G5J6#YPGNGmRws#a3!~EE!V#N8b!svaquv8T8__Q9jhE0pbdSW zGE;oaSbcfNzUwnNwSLyE;F}$Lpzs^jKYF+Gz1qJL^IGD*2&xZ7C`MfMH1hj5Mnv9g z4}dmh@o-^NM<(YQcYfXH082aeHsEwu>6Z7Kjd4%+Jz6&$KLVOhKl*v|8~?#aHu|Rr zjQ@}lDT!P1cSuh?e{SAqB_c^T1-0z|1|Tqt$*%3d2D#-C%8M;4W->hhAJ3yw54S&# z_3__@D*fk?@x~-Wk1GGBy9G;l2+g?V+r8JRO>5popw;@wnTA*%euR3RUYUh_TW6TfKGa}i~O`U~!wV*pl(ek=8yeH65{_0w{TfYhVR zMT+}xnaT3Mk!%6_nugu4Gkhvf3J}slQ10LE!dP8wrAQ=A`!ULjZHIQ8yIyU4RlzO! zM%-FMs42?h&yHPK&-Ik7-;_Hz^iO@r!;1n}yFZl~=hws5x4!@&vn2O6QQkJ*MZM2{ z#y3L@uTIn+-ig5k-P2y2T3%;x`l(Uh(hQXfbNOj`IA~2l!+xW@cSC2(FJCt)V3MM~ zg0?x^MSp#u0J||BRwVaSP1HBVr#te(=YRG#=&t|S8e=xnJ?>VU?Py-Fev1g?mP>tQH!S30CDsK=i@)_`{oLDj#OlWX_J3DPPvU- zw=unr@_l#SoR+NFje9~D1Xx#F=)hPj`+%w zcCv!)LLMf6IbrF1Tk&EJACdW26Lh%-8{-v6S>-|aY!EjDDtnBQ1Pvnvhas^nXqfg& z?hHCtdK2dp1TDTGS~k+5FH0kU0v|od2i)n z3mcK7mQj~827g7X74)Q{R(n(_NV2h=GeJ8ZpPS?+;C7V+E;mgzo(WGm`7K$LlN913 zcnh!fL|!L%r&o*ytTe@($+>LRit;X!!=;GB!c=i7_6nd|8Z~H~V(w$+Aq2Oc+9&4>cRTA02I~3hc>`sdYrDm+uHE9j_!-JB zN!l?hSv5dD=!4Kx4!gAu&D{18Np=quHc9S&DOQr5Dg84V-3zM=tz6V|G&glyR#A*( zwN;mwMT$lLva+yVs)(9Pa!DZeGUn*$?YzQ7#mIKDieq#!c^J`wwO7EkmusnIAeepb0d_kNGW9Eaq@{ZYtkWbEam4qabw1f@g zb&HsOcCe&NXX$ZQ?jP0fz6)tD%7pNpgL8-%Ao(-MD zfmZ1D%b)Tsv5A@{UK6#iNI8p?$B@Sw(lk1Yl}(oNqG*ZGtfE!^LFJk>6BfP{?L|UP ze@60J6NN1CL#-4u(q-j(%oQ^^?#diak>55oYJEXt%l#t@%;_(IcCN@M@V4%yOxcD_ z8*X`C@p;y6ayCq3>O%P-cUTx2+WPoI5=XUN-WoBPL7olM$s_jYqEm)>H92>~HA%49 zLtm^xZ{DmvZ>!=z9ABvlaQld~B^~L04x?8r`>|onmw2Nau@I{>m(eD}W>CspUWjHv z$I@laX}l(IIYxU;tvWqPZ*mkBCv}%!7SDKp*LL17ky0E1x(My{e$|$paV&@tx>i_J z%JUV}&7e$1Ed_D-rZEDhj&F9X>NN)m8Z9&}3B(xhp6Qpe|!d zXj`fG+D4h3Ma(DV#3Sw3BVhT>lDeyKCk#x_mabic)fHjim*~FvFmbn795AojdEWL9nWyZd^0hJ?CBS6`~*nP**)}ULIBimK) zOKcGhDszDyrC5L(nfBw2UK7-(NnHkrJr#X!@(0qjKg#z|hhtJ3YZF6|*>@$A zw{8XzFAyhiRH+kthh%_5=nv@?d|6(jBw5LTUS$q=s$HwA3t_4oW&>6lGBck2-c#{& z1AKX|RX$n_(v2IVkZjo1+KuFm)WNjbsQ%y;jb=SBuNXV)*d!#CDtB%x!e(a;;p_wN(pJp4Sr0| z#lY)A?lZ@_Z}M)pe1CaIaCS%Iv`9It8ca)Lx&8z1|-0 zRC{VF5T~E$r>IN|xwM5JgJ)QR@E9z7i5$o0^HwJcm^X3Y9?6*}q22p5bSQPkb zBXDQIPWbo(=@lk#uN#|hguI%gRdd0_ShTb0twVl(Gbv_!l+vN5h4!H1ey-XOshXK= zv>YIDB#^`_^UgN{f8@XYsj?C~bS_?OBT@PjxCOk5wHJ&=6*dkcSxLo(EBAde;lItT zs;nyH&Mu3Mio&!faw8qGs%RD|*ALfyu}3^*4*K=ka z{APOmaoWWZ3ud&~8L)vzq+c#Zj9LVTk98Wn`9(B#6%nOG*MSk}Azo4cy3XpiL(e%B z-4wv=kM_~k?$2Q0ka^{?XzrVz=0wgnKHe~bk9Q4*2`J>p7PqQ{prSFK!b5@g#U-ds zwFcq!>(;IN?f82G;PCyAeBk};lOvnft-E#SPeigS-0-_zRNp+lMP$o!27SK zo~{3%dCOoB-WOa|nyQJTyv+bwa?A5MThl6+5L}89hs$Fk@|$9a&7SNgHl`}AALxU1 z>q0WBPD6);D7Lh*2dE1ggBM2U)y6QIMTyw0U;852*w?S9>U8SV3d0{VS_NSyL{{6! z4CQg%fQxUc{DxHDE{D`HJ=4%n+nlvPx2;RQ>gOj_9r6C|2CC;2dl|DtFLqzW zE9%*2;%)U`e^uA}k&Hr{r$L#ORpwA;S#4Cw4Dj`$>8u?@@^Y^0?pN8grKI}#6&W4% z4sq&%M0}MQlm9VQsj}m{cYS?$ui1ZP_nh0elE4`J?>Ed{)4+{q`xKS)!0|2KJNLh$ zEN}Sl!TtZr+W7x!!Os8L!v5c+xc|20e~k_LSCs#X@_&an{a2I!)#QIQ8JI@>PoEb5 zJCOe!$o~%He+Tlvb_~#g|GBFh|C;fC&G^4&{9iNvuNnW>jQ{J!{=1<4{{^b?uiyXI z@Bi!f|MmO-bNzm*c2OTYzy?IPE-r8g$ZI|3p7U`)|J$$U$MNK--PHs70DK8ttUdbw z5SmUcbGX$~8;DEb+|}0Q_zuakt^{pZ_jc%Iw`$MpIX;zp&JR4b@9Bv@9peffoP^gE{ zqw_KT|471r+XFqiWvf}_Y@DSzb5DQdKa?HwEarxjKouJ^~52T>m zdI9F*@(9b49{t*}$#wPhXMENx`J7@&%sPiFKiwCLXuVwKl{-D?k88S_q#4l*xj!qT zHW9N!>sRjGNWnMLiZ3@rT&Sodx{$eHQBI(=}yX(HT!~`f_eXgo0ebMoL#LN+NM(XldKKvOs6Txm0z0ZeYO7{6D>{eq_h5 zZI2+A`#cMH=YMHUDeEeQG?&w8y_RbJ`<23?osvlW*sI`~O+0S59Qbptt%TnIKUxp` zm;Z7Xu`wD>2~fHEB*Oqo$okts_poNzB)=yIuqPHPeB(Lqmx+~-7(p2z?vcLt(aPO9 z>$?$NaeZ~haaIL6jW$qJeZWjJ8G)XJl2tES#->kb;4Z%%+xsHdWTr0pJdA35r`P4V;C(X+PVdCIrd- z1C7iC?$GA&T312JpN@3gmf#S9FtJ;8;iqYuhVsveg>^fkPogddE0ohxgO&g)$IlJ_syHj<)MUD0aAgD3k zxn=?EXfJ_L((jNz9ceDax$EfNag`v||HRi7>--rLP50tB?gm)G&!|HP=y@hBvm4Po3g~H1XJ1l? zzP%|_W-+L!1C7xMNEqlOJQg6lgk^?9HC(2tLLXKzJ@1b%)2NQ6MwHJsdHU_1HTM{1 zzpnXXf;(x?@e>~gjQIT6VN!LWA;Pg4y}yfOsRzNP?HE?H8eRBAP>lcfbp5)whis#( zRQWnPmf@gRPk@Vh5JBgNv&UfPFbTM?HB64QlP{PUWmXp*!8{zzw}vaZ=ABGZAv@&O z-+ihz9KbnkPqI_oHG*~}ajwid0cLeK57Di9wx+`y3bn->MKSa1deE_BGpngMw!Cku z%})>)_+EARnqV}Koybf{JsgM+eiPPS3Nekrfz-Frnl-s)xc2XJ@j&0X%B=hqb3D?s zuNQ#pU}tTzPjA*oLI~anFTZ|M<3DtW{7qXc@c^V~?DhGXkyPB!O&tI4TxJAxS=Y_2 zhoBzc*Tk@2x9$cQ@E(}e4@Z={t5ieuOrJRVrI@NvgiGBL-oMJF-U;?Y-{MHn!Q`^S2YSf~$uE}oB~KwU22+KDgmLDN1)8! zI7p$QtQ^q#a41f_bx0vxXtUcaY56M<|8g52^f)eozLv~JD8$s5X9S|hSCQc-Di(wS zsqkYLn|04?pc?~*kg3Y-CQFCf!N7$8p~Xgd-o75*_f^xQW#+)px5=MT zp?>USOq+>?0y@U`>G~T8R%;@he{1)f9nNmSNjp zZVPo>7l4D8D1ND+Atx9S_CfLu8!e*_r7P+cy`*Yj#9Cc|(Sp^b<3Pd2_R# zx+_rJyrHRCGg0EB7_|(X^;38f_V8t7ih5lzDlzt(i(zOoKUAsx#xkNsTqD7`9ql&x=lX;PR5p9oLTd+_{f0Xv{mbTn7gW&XGKt5+Y%cfrb;&-@^fv|{ z)O-T$>vWouRS?7DwVfXBfQ~j77_lEps`HLePj4>>4WM>mt3`@~^Fa(tvE$hpI{NdK zI6!M1*BXrsrd>BxMMG`N)U+Xc(i$+qn#i2mZroFMA|@wFx4Muu+h--SkHLOK=K^-; zh*CFmFF<^oxu%^|Jww&Q!ieNAK~R&3W@0eu!bhhY0cMxcKg}{Fn?W|jANT;7l$Vrd z#Y-X`1g1nc9NCVsyui)1wK+B=mJikDs0~Se%Q57xM-jB%Lw>~}QFNG(L%s>1D+-~G z^kFPJtZuG$%+IcNC5HMVR7h9kwuu%`C)88d1-vF`&Vqm+=J)WmFq4$jnqJ@u9gTnE zJM_mN7`bs$x{I3F)wQwIEie^2*iUyiy0S_USRSr?`eDenGEE@67R0ztx%4|?qIEU9 zMIJA|eMs{6Q%mq@;3(}^Q9_P+3~?}Wt=*SAp};p%7sO$RNcp{30jLoijy*TvC7_;@ z53FQ>8QxW%uXQLp+1x~7c}Y)si7ymy={L*WhlqP-D?texI5JiOh1z3UIZ#$zpwJ9# z%OMgiT9gn(Q(PMEOb6pk$J8S;M(OEPvgy``?JKEu+L*ZEW=SXa=Zf07Z5iz=Yh+(( zSxSgmP)VU{ic?AduMjFB*Y!}~MON-C0?iw3?&S~rH`_N4nCR`;7#Mu<%>gL2QSeN47lL;eu9VO<=S*(~$ zrg1Ol0!}e&Mx)w?igDrHWOhKkvWTkL_QtWaD|xl}y7OFLu(m6DI3ki1N67*zThe3W(2o5Mq0 zYz7;ZR*)Oyb9mlzZPE#k5ZZf(Ci1g;hIP#5bV|9YzaY}=X|~{^$h-kroo5R&Vm7y> zjHPZK>~<(M-1eYo`Z_jY>gK4lB)WMS)iKXWUr4lvrs@Tx4OoulSn%@0 zXYy=G;!{lt`yf+$MH`w*5=0h$al&5Z)5aQKsImYgh_>(USPLKSiw%u}7lttKozZ?3 zbE7>(hMvW?hBSG6UeaM|Rd^K1vZUsmJ=0w;1~PyEJLAjdhzX+Wv*=uC_rpLg`Ke}n zi0(C;^U`(6*9$G86t1c>;;$fFt4RR^3)~{0T(V=bS~Hd`d0{{lp1qeIAWwBO%!1Dg zBjP7lg@r-vg1TjPb0yopo!D)+NhWv;$!K_uk^3PUejdNR$T0eO8V0g;r6vw04~I3N zdZRR^n5)Itg zGmReM3I`pCQ(1WyBxGK<@f{+|@;b^E6#6i!j1WaslDiK13iI`u=>y5lo zBIQ8P#S}&}%HFfQ!tivGsxgv|J_@8d8JKs%TMW}KJ*i@P&x#sBA`4DJ!J|&vux;ZI zR8Q*mEL_~_W28zhSf5lD$!)`KWz=N$JjNJ{D(R*XAl%(GZYa}M&z^SaS(VVtuc#DK z-k87uTNfPAk8#&`2yLFbDimpxXVZ1X#XqAzLhl7t=rN`Z|EHT#F4y{~BO#>BP zUy}Kz&q>^SkItH!<6X8C9MA{0m%1sTF1(;%be}EymqGne_VaEE}-!U_dQz|Ri zo(QIF0?9UUcQ)6L!?`pVQW{*i10ag!zuT8z12NtS%Efm*l6=u<@!v*Yq~! zsHbGFwyQo+qj4}*GUya6x6rCY`jhCsb^&iJtwaaQ| zze#>Afwr>5JB6CZ4Vq)#hPz>(SF~iHvqOuM|JPu84 zz(s1?BXv}#Qd=~?r5;jpU!^N8Y13o(dknQYl>`M-*aY)xj5x$fI@z$?9Ji?xdT1LON`&%qW%rEe;~iP0LRkH-`ApE;|+L>yO z-aN%PkYdJp52Y;*`$`uPn8&q6r9T@%+;tA% zT@1<~tHV*VLVL|{A_KuGmOi~$k~Q<;euQ;VZ*xVuRTy(QJ}^kcqTJc zdmCj%5@9oIT$UbcEzQtshS16~^i7=i#zWmgs~wE$szEH6c=z(Cv-lIgw}s#DLFgG? z6CzizMqLOdOrDd4TK-Turj=$i%EzUSuP^}}a{l14+q zSxSyk_dD_0sacJ_#Qhllabr`eb;M)Wr@in_8&)vHd2g9ehY>WATSj&Wl{dw8Pj=Zw zrq-eK|8%@zm$K-K*G}s?z{3a20(!;G33J6xX7)gkXPI?Q0>+Oukh;ub=VzEY-oVa4 zd(VKy=MmooxIgnAEe$XOC3skU4Mj2IpY?6TDu%b0L{4?1)ww!(;uM0m^Miiz*8*~l zt929AHbGF$v~o>xh}ZPQ;pRG-UnKU?W2D`X8e>LYsw-1wwGyj&I^(sHXjGs-?v`()Ga;|2DrY;mbO4KG70MXFBO}s?f$(zKc+$Cdb z4tIiz3(?{$>!7DcTof?;0`RCa270StAp9E<=T=JFYUvXfX4?m#hsC14zQ&6Lsu!KZqGs; zX?@hDB7sXjNHBGv0!uTdb?D~U5Fmg_XZS$M)5TzAGbneW*Qj+`$$1Is@J6}~rDL4c zthfr6gI8@@QiGs`w%m#37J-|rXeUCD7}hD`6zvN)RN6=r(kq;0$>C8M)}!*y0n!|Z zen|_76CNZpq#g{{C1yja3h#(m4&I%Y6v4D>37r`w4ZLhS#F;MfkW zo@$V0z7|mOrC6PC(cnaMZ4s@Qd??WIhR5tlj5!%)l=erK1GjLxKf{R50?KpM*Jn3L zhoWPnLti)L20C{~JN1S-^(EVS<%}gWdRql3qfY~q@sIanoHo_6u|csU#Rj9a;lB8l z#riXy&{TDZVd}WXC0Q$ufJYrtAIGFUZNrr>l!3m4-Hbfg?RhAW+jQvR!-uWXX8lI- zI9C^#cwQ^?&E?} z^>wCK?pG`q5!U+V+1mG6n1!BJq@DL z@(jmM^$a@<6tO=gql}rzS?Bn69i+g76z&EtXWZ;FAcH)_+M?*pZAg#=$R3~pogK?N=ac6SYd(yOX*sY2s zQfgeXMOFk2q!~V-CD0!=I4v}ckgR3TiKk=PL4tQaF$E%<$gPlNt@8FqBs~Tv*sxL} z9qOTIBtpWPnXtwHjQFxJy=DZ-0~HQ#%87NpMrf*9@ETwEeYo#?jB~Xj6D!LP6+NV7 zWAYa&H(3X!1(~*}K-NgPcWKfV{!jwA`7!#?5E)~f&Z?{6f;?ka7pC9pn6@XG48;%F zNkA!R20@?CW{1RJ+Gca2O{Y3@Y^cR9it7BmyiW%RXVT;t{Kp`-8{iW+ojg0_>W8)& zTCa^;d1nxdXXB@I%t%yYA?I1>eqog^OZITeUe{H?D0Ow#;at@^ak8yKQ?DnPrfDw} z$Tc{l_;LTETl8Kn18b0w9OW#WL`=eU}IEz>z5)riz4Y^7&Xe;XrsuyXEN5*u%0b85t1jmn}(T`vB*kX%`XBp_{nKp(}xVk1OOgIe6e)mGV5@ys`gh-jb-46H- z8$ECLKv+=sHQTOedrrva*AONmzX|)uV=B6)E&`4^ylF=;UI#VLZhX_0vx{!fU6aIp zn!c$H#hn5vzVyGW%d*+CBB`mcz>XJ%%`6t(PzDEU_JD9jgv`t)OMHHPpJrEEx0-`*yB8Tu;fAo=d)st_y@Vx3jOz_1%ttzB(Y;k1c1L5+&>iI<)WV=zIzjVNpkI{HWMIkVt!1X70fxO4zNA5VsqsB9L<8_&wZ2_NU=i zpGfMWw(otV){dMWR2i#$Fximo4lG)i-AJ>0PUvlc^5;xs73n0)}Bh1%a6pt*8S8dpJCx)iS@oZ6u= z18eV<;!Qbxne0q+i)1o}%UYnx661Qc(Je;_liYc59uGTDIgEH*o+Oh9i&w9^OM8VP zsu}@3X`An5qv_)HF7{Ik-W9i3#;VuTYP9l{rvcp(K`ncXTmG;GmDpd`sT-pV=hGGb zIp%s}&*ssXs*h#1jJUES6+_Pml*gjTD_T}Z>*V5`=pv_rg{>g`-62dNf6cO0-I=40 zwhl}dsD3}uqIRK7s>57`!vY^k^6UHmkvGS-iZXhbh03eAT8 zW;X~G^r?2e7)(~Gtw==?UWD!m55lJer{3XV|M14Zs;bjb7)Zm~=XN0{9#u^~ZTu3+Q2*td#ot3HQ>o@FS;&;s$KVw(01Ca`31-2L06PVYDP#K73nP@Xl8e8v2*UiR*d7rYOSp_^AIgY8yUaokrRG2k{;7J@$oom?}Z^R z3op3a52T`zQAPb;sK|XF=yV=0*TSN_c#OcWq=(M+SPUVIkdT{PQx@b4NsC6HuZ*W0b;D=f1I;-a zQ9r>c`LClSNq5VfbIRs?5P-K|hUdFTL&KTKRl80Fzp|u~vIq*jEW!Ek5{|U0&2pls zpvpCgdPW7;jHzc@+2|#W^{6K0kU);pEQB&iImfM}t6acZ;c7CE&(3i%;K{Z*qKjl) z%+Kbnu~Sq@n#9K#k+x@4=%Z(+Wca81a%>@Wgo*c8cIPFAy?XQH-HrWZ5qq{tWKq&9 zEp$b=bS`KUiZ$;+Jq(!UZej8&oOLYCrJa*uePL9x)?!1OUlC7F?}GKs&Zg$!nmw#5 zptHV_skG72@Z!|T3*kW(4RO5iSyp~RFU6NEz-VGs2@NtMpE$IeH%IR5h~zODO%;uC zFs$Ykp*h9|?`5q=Z>TR`$w+@0oR&08HcAnq$exegG`@XB&NxbsH=8|{p+^i#L0>9(;xgu31=sMKTA#A(vybe}SeRb! zN(LR>o3hNrI8?*P4ry^jH_uJ7h~!IdIh<`70*{HgW{7JH5L;AsVtpCl=Dx!24!*mr zP0Vp56N`6sde00y$AOFrOTc)#s*@hU)R0+r|G=kpF?Q`WVA(teKQVA6wf$}>&oh-g zNH&d3jZ9^qD=gg$8R#WGDt64~ZfAzg4C6x>@3{O~+L#iLu`)AKiMFLe*4oQ#d-p-& zo`f*G8FLj2QXeLH5MkxVDUB@<{V_f(%3g6oaJ)I0@Yzq~KxgrLBscIbc&lAtq z2jDOJ%+Q7`VaV$RscC%Pb8zg1N_aF`6~hSmwI|8eZ}}_!x+)?g=kJ*^MOEkzn^**j4F!-%@a zq(>2wtR}GkMg*FFwLO@MOcC*eqUIt&T2Pp99t1&L^Nyc0g48NL$o{j^ccWvr`M|UjgLRY9p19B{pgf#*hWcb; ze2#Wle!xNddqVSHD%oE=0A3s--GlxDP)M;){R27OStEKPZ#;QpHaz(Xkn{&x$ z^-0=fW@R`qa3>$?8DUI02qVw9)!EqerWBd)ax0;Ca@eYZxI~<8)>^QX?-cOCT0u(5 zB%KWlnRdi*Y1!unYD|FIZ7G;1sVlvM9@M8bG>R>gDn^heVv3#fl^T(@uoFEO7pku3 z^@h6iEpsroO3-R&WBfSZ!s2jPN{aVxT)@|vCHKa&a)(n4{c_Nr@FN#aVO~86!MNod z8__oVD!JLcJ{gUgRWW~T7mQ|;g>?191jr1ClBT$8)-a?N7{M$3bz!1;|9kBU=q6LF zBJ(@oZRVRPnuQ0!C6~pooM$y zdwZ5kG3#Y_=DeC&NY8>h9mJQFK<~Dkd5vH=n2qhUt5O!SrY=5VXW>n2`2>t|29#%58 z(w-A)d7d0`*@E214glX${$nP(R+wnp7aHR#7-qtI(|Gxs_tin3m!`&OND)ulTZo$M z*0Z#z;K80{J(8~pr5o8w***w^kReYjWCBBas3#q%v?iE?XBEvwu9~xbg~tlkw~R>| zZd&%-uI>jsFARMx@1`>b1+ain)>+Ge0rs&l^B${2PJEF!cW^o_PCQeb4)KaU(CNV6 zYcm%gsB@3<&a&=Eoi#O=b-T<7BT?!CLw<&8lXlOKdlOQGkt|y1GlCOuxr}N6+_&!gP-X}J=4x}t?mLy*C z)75IdHZMFvE~wgEf$Ct1?A}t&>5UmVniI1%N}s)o)23U+r^IjBu%)ddq3Y;xs?sK~ z%8f9V>=Dn%GTF*Jz-bkU3ZScsK%a^VT@*z3?iB~(HGEPzO#ER%M#!&;FnrK*AP^EK z!sqV=fSF7}s^4vrbTKY$u@_i<=jBi5#d+^Q#|CTBJztZ7f7uEFBFvkn{*7j$Bp z8mW&6@NcJw7OZp$2KhZ6ee9doZAXQ6l@4OhVpVGSA+fjEulNVn&9yITMF(}&(^0LY z=3FNhN5;Wqm=$W*I~`U3JeLIW?CuV{5Zra?%`@&LLkmRXE_1|eIoQXc63=ysUL&uh zsaFDOJ;me7hSo%T21BQUDJOkFvYAjhvr71|t z%$(ldP*jPhb9KX;G5W%cX*<`SxOD$DUZ)&NvSPgfiAKqhOtGhPs#9aH4{P)op7pvn zbTsVsP`G`KH6HqxhIT+NtIEPsr%|vbFKZF+vPx0DWSDsgMtnLMh?w&xh`JWnvNkZo zR-$Au!MTcSDMh8T;Svz9xiW2QOjx#lG7ML!G#&>#HRr<`0E3vSa1Q&Lfvm`=FqbIn`_r77o6B@NUtH6 zv_{dd%X*7@y5=h_GK)VAbnI%4OmS^*GG@6*efw+?#Moyj>5=aC%cFNgtoQWDo8BEk zP{Bikm3W0cz1cm|!6UymE*x>yZj;*$@7;3B%9%%r_I(L$#j*Ci{Iz_fh>3O+JVv^D zdXgB?9w~K9Z@>@(i@LUe9U?3KN@0+`cwnny`?B)H^I5{GgdtTc6veMEbcVYqcX0B} zq2Y{vEDC$l$kU&j-Qz{~XsS+CQa<_( z41s44^vd3`WLeFl8fl+#BD;jd1`&&3^kxjkUVDLU(sOQJ)#&GsX?3ifR&QI( zJFhmd-J(d3#9CaSfi^aN3PF=%jtIr4!z=g^Cy1i-PYZv?^!@?!o-M7By!^-uxk0kh zj6^FvFW|jd6q$2QFI>-Mtt@&>Nv)7)gRtc(3Jj&B30`Ta;SIo$=B=7^nw?P*%=~k0 zZ`Orskw7sSgBgZX8aV*bED_BnDH7eH*ewJ}Ej~{9{@pYY^ej~bD@$4-M9eKFMJSrH z+U66J!1g+rqwNvsqf*WBcy)_OcS{UNz>&eZJuORrw5VrfI3V&?Mn$&Bam`*b3dk|R zS}moAB6-?^r6zIL4Q4go9KF2guq?%BZ1RiO)Y~?0btG}=U7Ivkt$YrlYxxQ&{he$@ z5CZaJ1i$`axDj@hSmou{Qb{z0#67F6Zup!z0EMGEFyr1ci>-}%h3eFM>P!Po76>OC zzP_M&NASWdPBKx{X$kCbY1M2`IE_Dyj0$fIbpe-SElK`sjtT9>25(|9_qHAqR+&~7 zi2D0PL34f_)tdIYTc&nAQ`x8;5AQ2>$p_r1sh}^WoLLR1xe+x+P#17B3(N#oYtD+c*lASBHdqb@uc`{M=J2Epog}ES_`_OXorV^eA z#j&FEXrU@CP^GfOqPte&wV2e`M87BBDU1p8&ujVB_ubA7cfLFLWZ$*0e@x4=-G8ne zI$xJ}?8l~5Vo*u3A>^TPrOCM;S^wF4>ehFg@7&k`Th~=$-W^sZ&z~S*mB-HxN)W~UuobQQ{OJ-xKuKkc{2w$BF&+eIdpiic<7 zyj!n!McmkTBF}j9)y4HK3mvz*j)$Ew-9k#;BALqDCD}r+JC(>cG4<1X`0D|AJk%{V z^Z2PaSJt@F@O;$r`(BOoiR|Z>#hC12)xkCO?u!Bo*fB3Iv^2POf7@r1XR05B8%|mM zzIN_ru?k^*_|IQ^)_&WA3NzaOYV*sV7OL#`-)!v~xDUjAlacP_i4$qSdB@uiiTA>F ze#q0ziwy81A586U8c)4&%+lRmv{PI#RKxwkQo7z7N$Px^7;Kd0D7gQyAVSx+_=gV; z{|QnrOx|gIT#J1B#kXVI z;n%-83)a243i@FbdnEOT>&ox9yh%Lp38sJ0ed7C&Cx=McH^`%`!aLv9w#LLAxcIT| z?JfU>+dt`SjJreY{@siU7Jt+}z=(OBavqX8qf0PzS*uPy>Go)B$HXhoU)NpG`IEZ8 zbo+jkCXOk~e+s^O zoVt?sp&I5M&HDCa(i^$;_7?uI)sI^z5yNdaEF%uLF1klivY*yP{&VJLNRx4AZsfDJ z^jB)g;8tyRXoAB{#Ft)XTjK+yhPQJKcX?&UKl2u$@}D1NkPtN@T$A)C%$m9(c0AKHVK=Lw*Dqu(G^luTU5@PH9OCjyS-g{C%jcx2WJmGJ>)kkGUU#;pBYmfpZsli zXy4upyWPf*ups@ku&wKwN31$7ysUrxcJu9R-+o)OXHWi>`95k_S)FPtvgyRZM{gEK z>Mr|syfa#h+cMe0blbP?{mwhTp4fcKW~=*?nFX<+dE2Wn_JNyak8^ikh!`^&zCV2N z?*~^<8-}mFq;39_{>Asx+q1b_1(xv>!PoUlk=)by$F?o4cUX?j3=RtRI*vYUus`zd zMLYOy+a1YC`+i;2lEvzY@h#u%ergvt;`J(ZX>&xe+MqM5?L(^scXae>^eJoKyYV$4 zd)~C-{zFmDI@i#%F>vkmlaV_wJ+Iae?5p`BwNJe7!Rds6KKN?S zhTQ?%isMF_5d}qQaaY(P(1*7l9=9|J9O~~wq9@a~==3O5T|SDn%?;t8kHtj?2H7e$@~JAHR2Yh-!(}oPA3u z{NxCIvp*zmPvN!$%im>wkiL!DiuHR}{6gR3=B3*!9|E@MQg1!``QDn_zD+|JZ#&H& z4sWFXxcfWk2}<5tknux(@UT1T?awsxQ-8M%7hc)d{kih}NvFK3N5=i>%B78#zj&h` zA(hIdh*)&{h+kd~btTAG1l}{IGo$zUuzcmPiK)#6*EgG*AE$f z^F6`ioQdzV*zdc3sY$pwXZid3BMpR0OYBlBt?70C5AX1&MzM;Lzp&KImlHq!h@SuP z`+@a`&t9Cuef!smmX1;42$P8vDFf;h?k7Tg-P0$+_>9rGA_1!xc@b@X#w_K$ayBeQ~%innJM3Bz$ zTiZ@=*88RHa}D#NbnK$V&j~x65N-WGzZ_njSQnJ^-BVA2yZE^OitasNYyW z#tjV_;C^{&cVT*C*}I>I`&w+yHTpl9{&DBiJqCOJ4nDZ^?#^?;zibZ9YO+#Sf495i z=hw1x$Il)x`0o6+{$-b(SpCR%xQ0`IJvbCcnmE7n#Pg>qkR{MRep@z1{S$kq7yf&( z@zeO9;BC^He13sh9{ubCuXyba&m+Ni&Tl!L{sZ&vR*ux-L0YE8p4y>(o(pR~xV>0m z1uPu-k32;-u;G1aS8&sVqdz}2e)s-@{P&8(0~ZsDvp3`{B7#}?trd>45u;@loGzL4 z)YUr(IdU}Ecrow(>7hfYsVgy{|8yCYdb-n2G%RfR<22+FQ@hI&ynn0}U>Tiy_`~k~ z+uqy!el!0S^Xg~)smaOjd6eWo!%M)$CI-oi5j$su+m)AgeRWL~%&Uk~)`34+$T_Dz zopHXOHrskG+hN@w3Y)9trmL*=-xzVHBr9RPb$k7hb9eqOYV~+MqU3u0*0wYDFGKjl zw7k_$`Q0%`#8hm>#V?_Vtit|39oC7P-aNbF{i-0i^_UnhTm9r_q}`Z3CLr&a&BvS! z1a0zhIF86cn8om($8<2=WP3wWSAH!!QsKLy&f*>8`2#NO#f_4h;ne!A63gt{U=AT; zW9SJ?WPT&Pa5{>r+&fwg4NuzsTk-AF9Puu!`{dKs5n@@A%sgsmTIdMhcm4rJ!eU1A?<`8NS3EhQ7PCa>ouYK%UvMgh2N8QD(Quq60 z09gyKagv@IA=+~9n|>JNX~K(t^1snO^;P0Z&GjjFQsSK-WMtQUguWyU#`A;qzn8`!bHx)Yi>1NXRNT;Jb4PCoTXj=uanho3*sojdR52kw0@akWb>Rtfyb^^$wR zde1o0cgljodHsrqLgB(L{dJXvwH9LxMjMn;7^B@x^Fn=K*Zz$*Sdp=HVh8u#^ls8b z^Ww?llw(ab1aEXNx$v(_N^SO-Z(x=Y89JA|Fx>7dwVjL3jg>g#I(&#^^EE2JW497Wy|jer#XB$B*Q^ zxMZ&T>^*^-^{&m8i!d{m{iBk|zi~Ede(4$f#YbUu0Kx%h#-^Rb73JYo0)p`>U-*y5 zdGbr=*>}e&t*jyq;dZVp}|<8V{l&L>v;$e~E16XDN;Cd`;Zi7|f~9;pG>c`??<$J>TG}`YGknkhb>t z#D92!>Cc?tzmeCIm}g4f;v^TuVovw!R?`{Q9ix!zM>fR%V^nPQn=XU#nUfh29VIQ7gW4uAa|N1k4#lL+4P zvj^~F3u&*Avm5uGeg!JSlrBF_df{oJ`opigU(~s86RbW36T=YJoROR;N|AYnU-I#W zDm?NV&-3IXXW4(}D2E=JVcV@Ug!QshTdePwSM`{Kn=K+WtEZPa^7wh4fAkV(jUCo`)^hUOA7k zFmv*#h>Fn|?Z~-NdY!Ns3sx(F@(|&~ZS+o@ zB`jH_4Ds?dN5AmDQybgLz~r^ddu23CP#&RFil|o=+ja~vG%`q@3uNdc{W2n~AiWC0 zFN2I-wOsmuS0omEEIF7MA#;Qboh;udx2!6~n1I^A5IeS~oITqm@O`4{6hUp*TgF%_ zmlz%yVr8*G6cxW4xqf+ptFR_XPOc<_!-G_-72>!=shC3^7QOwR5YEzK1C6uRVm_vvMcwdXm71mg?Jfp31_P^sU!dE%6ug;%fW&Sj0&MvWgYA+Ao^$s%C zW3he4hSmzDbF@>ZU9Af=z5<6Px%xLF5bek4ipsQW4`4j&3@W z<;HpX|MSPb5y?M)AmU=j@VS$kFP>67a#|62&M5Btp@M!xRLuLz^2-mz92mQ{YPq)X zt@DacypnTt#WENR2IIGPHjb?rK6y0f(etji_gcrYm5NrrPak(1;d;W8t{NR)pwJNlR$YAp>uYBVqfAU|R=ZVjsV`V<$z=K=(iGO$pyY^S0 z-7Dm@%Dq(PHc{5awiZaj9mF%Yye9T^^)mK_|3pb%gyC5zRahSj}XpYKY z%&Egm9C`9G$Df-=^?HoW284CbkyD#(h&y*{5Nf&$D}3`4FY$%nc!?JuTf_@O-t}__ z_>sSPfLg4fTS&OIF36&S+#s_i=}Hr(A0()bye9U}iAO1&`xss=g25^9oskqmyO+ut z-dbVbeRK5NIme!y=jbyFoIA2ewQLxk4iT|%@A>LA4>ib)i!WZ_^S^eOZ~Wm&&b`uM zYWFaI>F?jcz3-dC>-C&dm{vvXYipk3^_J-*5%G@qzNUXw=NbLOzeTn8Bn(eLW%x?W z((M;16g%#mU}o%iNX@*9Iu%d+YL%g7Z z2&xFLgbZrn*Fc8gMTp{s48e~a`C5}Q3yE0k?-v$f6jrBLBM5wp5Pke0VrcpfqRAh= zBF}yU2qBQZ0zB7N6a zU9_a*$-+>sFi2b@-Ah4P7vZ~y}($DHU?`fyz05#TBZzqIJ z3M=z{?mzTSwoK2k+PKJt)uRNVPvA#L&yjO&Kx>6o3Z)fV>B0eIt-9|V>@6<&q?97h zGx9VcNfMH@PoAaZS&q@FP+Ami9omp9ML$Uxt^VdTy6x=r9@qrya_s#l9;7rTV zcaO+O@jXk@um89-Wniu@`FnRp)T6gvMP=ZB`Bus=eLdsxi-t!|YyRYf;=q{4mio1k z(J!1*{KB6keD;*)v5T5d98qWs_e^`&^r0O{!6T>Db(M=)T;Xq`B3MpXpI=xF1%LTK zz?Oj3qbXO9lwp4lOr}y%%pV`UKfQClL&3ZE0eN}n! zRYRU(n+s$NCTu^AH#`F6`V}KQX$pD0`yG{G$?m(y z7#xjA8+}$UbvXL$63zKGBV#`00r{#m*QBj3PyX=<9{J6qTt3xeU@+vaAKcEvzjzZ{ zc14J03(|Z;>;<_s3NnT5u99~W*!D0%sdm+xXRGJPpZpa{r33~>A&QGNx5ZaS^o2?p z-&JAfEn@`I&|T_q;Z%#0&n+Q!#^_Xt7uc&~N3nQvnJ@ju5gz~S8PZP1?2bC`{>%G$ z@W;1PD`n8=y1lZV2q}^a%0QlC8kfn#8T@Sz7IT(2?3Z4P7ykHP(!KB$QMrl`kSR;E zrC@MBgLAhMhM}9Y?fW1_Ap{WX{p5C?pkFb1vs$B!!XOHxFIWAv7PLwo>B%$lET`9L z(>(n&(k29weS^UDNb z=%}%DGHzq7Gu-ohh6aZzm&=sm5^)r-_m#VGbcLQpT&-)_*gC#eOBcm|>*UZVy4{|W zw0nhTfH4?r>2|ve3|85H^FD&`wI8uzDaMpzE`H}Qv9?qO>If+bt>t`knT3IveYf9A zd2kGROVB(HaUJ|JSIiAJ_*9q;FRh*8qflI6-TjU{1*P!Os3fJ)uQDL3Sfi2JVv>{# z$B%O<>$Cqaf0U6evscBeRmR0v9%p&}BEG3|`~EwqL=l%4&v0?|1Yr~r_~E)ZNqQlE zSSAR|AOo~9rWmbRbL=<9pz@qFN$7Q3^txU0Tw#%TK?y%Bf$*FmUzVY@##&3R zays1(!{sTa$L0`$$H@yPsMZ6@BU^|@cH(bvYuqH}o7luAzF)A?w|xGz<1bQxvM^f{ z^pyMldfe*%qKNq#LQk+`Q1XEtKJVY*Qwd-tf#tq4#ST32y++Wlzm&bNEDvo7n5tdd z$~|#W^BXVZ2;tPU9&oZ@_|<1K?wl$Sy+zTzlUe@#cXBRv4fW9V0xARl`MHeuZS%Ng z{H?3@JBK9q&iH)%NKP%herH@#RPYOxuQo7M5e%1ZoL!hKpQV(aMVBHx86b34q_Wmr z8-%kU%mgg<7_0=m_pk3{YFo_V&z_*u(R}vTPtsXUdEZ~%i8RH7X6TW2GCuRGuW;-; z%WT~eP#dan&rj`V%b_7yZ9uDV1z$VKnkx^j#$u$87e?6Smq?b*5KLZ?vukTn%SR~7 z7ABZMB0%?DIZdrOf8*kB1N{y=4wRYLevl_Vc7$^;EU|R9&F}udUgD?!p=RgZV~{HM zGqJ~o=U4gI|NCV^Pcu8=F|l`qcl_KreL6J7?aN#`(PVBmU|_t?eLr&(Q@d-hx(tbNYht+~ zW7no2I0hpFf+$2?ewM5;k3W31oc;6@f5^g1pQlooWho8)%+O6FRlib@Hti~^+8~5+ zT?G`=y{rXc+-Rs`9=1~^E3|MkpF5Y2(Oo=&^kPcmdyu68Y?@*XXrmEcNG?ir`wgPl z5C#GnM2LQeqhI=WjBdY;+Q`hcUA*BeT5IAk#PdRg^b1$*5aD_2#$rMgWoGHSbA)vU zW<~G3wW5$VOYlO34iP2+&mEIdJuCu0i0LOClsC<_K2k_2*}HEyX_9i`%q8meI<{~U z&(e%6O&J{ra;>WHFP>KP6<4{Umjc15hT&4%ux;?o zx8&)j;e5*w7jGy4UqUN|ubk1>M9f1Eb__b1-rC3hb%6jYt~_)oV;L^Vw=L`cZX#bf zi8Lu%2Kcrx=aOC_1uq^F*Gd=`=qY57QwkLz7^)dM!#<^v5|FQxYLEy|P#udI9g2IB>2)xfSC zf9-x*K8}yZNDpsqzj&TokG1_GHtd(K!mnjSzDs%x*DSr^fOt4Yn9Q+b>yFtAEw#~@ ze7QrVzOrURz3V*R**7nHSnyX^`8=!&+yLukmorev?yuEUn(@%T?PiPP&jIrd} zkY_eGNwV%mECJ>51I#}3 zH;BgeK(EKzv@E5ZVmVV5&l7kEf~Z7y{zc9_^BE5Qz~8v0YgctnAy9Zh4e1310WT`y zR;=43SZff)__~em+G4FTzBazl7JFm;{0ZmIErdIM1VU(3_w3uculhm2&9@#z04I;0 zrdF#F1U~I{8{ZF!!wBE=)_cQUFSEf~m-sO2Bg1_Ze#0?op@p3 z_Fyys`+f#aeFmCG-F+aav97(}xLT%I^Fn>G-oCT3qHdv7k_?qwT*y`;Ew;WUj> zz^#A#ud(Z{+g~?c&v$dkgTO<17FoP^KkF1N1cq{Tfa#rw2+ISc{fvIEPnu;e`Qmv5 zVVT-+jq1QS?bS~sV&5?+ugp9x7B<(G zYAC5*gA{%+7L)@)Zmx_xGuDywZEr*V{hqBJAA3o1xqJOar&-HYMh_M@K5Za;v!D8l zgD(qMCp6rg+9{_0h6 zo4k!)J&BP%(mHc3p=42^D&kfJ;qY*2$~58IpIhMhZ!c5w3`5%nc=w05GP^Z|Zp!-8 ze-9>SeSYNc?BvNmJjd#(1}{IkLZxK6=izZg%YbTgJu#*68BF++LBt76xQUoEco%qkXEuBfocv%V)Y&E0P26o8hh>nxf=uNQ>&5 zbvx~j_YM)oJ9+U7=V&h{Jo-l$D0zyxTL)ddNl~RX6tSBtFOy-V#h{?SbTt>U7QK8N zYc&>u)j2}@S7KjFh^)mPdk`3ofBh1VetH4h@;_<>*8!cBJ#LXut~Ckd1y$-{qr z3r~JJ;Nr9MbeB7P^>^HUiAUqB_lsUz^CB6NYaqu+395rhnpf?YOD}(e?)(ds%jNaA z%#qg`ocKEE2W1~+Rf(n0?t47Yn=JgzX6#c{Qyfs z^VHW-y;Zh<=$8q~BlvlWu!cNI+$EA3LLY=Dv3PjC$LS|N&dz&2OsPKhrq``CitgpF z;CmX+k6ny~gZ7#X9dz+^O-}8uYq73w5UvM$qwBoMU3&p*r$!W2cQ?;kN=4du2CMoA z|BWlnuSO6A+;Yb)1VPBl&%aETrT9U}*jT+VM=T8Vtif81)&haS+QJpQ_%PYn2X5CY zu0_wdDH2Q8SWJ;f@uf#8j#w3frNspVFt>G%+wQ)VO09a$@o#^}J=A8VcXf(RZ#gH?GcPSNEU?g1Nz*#qK!{ zrzK|Ic@Gb~=N(M$dSjD7DLrZ3*&Ymjiy)FkiP;_;n%jVIhmX=Rp&<~$ypyLN^>SCsYM>|__0Zbr(&M^^jThbvcbwy&JTWMoSA)9 z=K`UOBXsMMa92gLDlaOQDXQPRiX`T}CV6KGUGwp*ag|#m-D_>ux5fQLMCZpgj9ci2Ty+b0xx{+GN1p01y&bx-t{A6 zlmqTn z(UhC-A99I`e$hs-mRu+#;a2BZW6@Tl`VEZMc%HlNbe@v8FQE(scEf)0Jg1acUvnV# zv3bUGUtZ-4f3$>3a`xOd$h{xg%Ivn#Rgl%j{bHeK8LId^_>;4|FctIkXU_5TqpPeg z=ltN0k2AKT;s|(N?3Y)sxylO>Lm$<@RdWVs{9d8!D@gN`it zA$}pLmh07Gu2l8bzPHBZP=Ye;3(s@$vEM{^IbKwu*md}|h~DB$T=@F`!Q8{YL==@N zl`BZUOww8)uLb0}%MK%)L0PhThI7wsYInuZ`@|>&lU0sF;(8OAjeS0xzc9I!za)AFs8- zXpPm*5g!Xd7!U;^lr8Ug=sw0L$6sUg_Er!;bz+R_UAHn`DlgLbb$CKT;-fhY)=+P0UW@hMc6;|CrwF_lW0cDuvr)8`nh)to6J2CZ_W3>lo* zLTz{gKZwYcb|!CFq$e?1%3`z0_U&_2N@a{Sc)kZ1Mki)z&+VesUS_3xk!EL^c9w&m zQyG||GO(s-*(Bzh*u*Bj|4<49wO~W;u^`3fI>uD?1>c$1{Pd^#>>cqKFT+qQ7>ES* zNU&>AGEx@QLh+WZ$A4b%1neJ??7u(aZ`>C0hes8kJ)tG8px*WEe*0Hrh9&wm2He*(W6 z^PR_9TsYQaZaSn=E2_n2L+sjMRffq@^1dQZ1mVsP5*6dSEYLam z4a|kF5!NDPyzYnQ>{WVt> zk>(7JdCVLbCM<=VKhfjKM_br_&g_=h87{5IyjDHeZq3t-yq%!qSxUP;fLDxrQ)!p> z;ol=r7w{|58}AoSkajaZ|9hAD?5CEg4F%l)p;_+x(P_rV40N(0d9rcM*Y=CXCu3?y znUU>-sLb-xGi_dero-5vWMm>LVrBy|2UJ$<7e&@dkkb!Pnz;o5ET4Ue<6rw#e9yRE zYHLx}((N0Xt0|*s^mgg5T2V|zGjhDB!H|{P9>pwpt@Mq!Z)I#C>lV-y6Yb!^z{PShzS(sZ^p;sSt%>Ve}^Or28t@lq2i=`4Y|1MJwl+l?rD zl|ub0_$8>$!O$M4OaT)5OOW;5vFO~X6IA9}QB+n`&Wm=SwYCBTk`4*4Ac#dYP z&91GJL{W(JJtWSoF9>6o=y19TJWr6N8IOGHFi*aGk;RoJ2lj8HUaKIb#Pd9t5D6nz z7thn{H;81FrFMhd?=UgDm*GA4lNx!|5^kEmZDJFf_n`|M#_ju*G4&Qt{;pPV?c;^SlnBEd1R0a*jxQW zt6y$&vElK-zq*~<-#J9JW}%n5-eqqCIlTHCcPt%ESMeJIwugb+&zD1t33F6pQVl8C3q0>qj-FY{6 z{P=%MeRPH_?IC1<=SigJ5d;xZ3eq$w%-~p0J_sogUWo2D=v;Un>A7PmCR7u67Ec(A z@X%qv!c)IRRGVP@)*q&R?*|dUOP~Mu^x940p_21jv;ye`te$^~=E7Nqr?&HYusS7K zev;77oYT7S3S+l|yb8b?1g>w{ro~#wpcu>Nh^$k?C@?ALHa2g9&5&q}PFG%5Fb^l$3g#N8@{_HuP zd+Z73X1B0y=T4$Hesfa35q<@R_rc(9Xr6$RpM%aNcfQuzSd1#pL!nq$OUxN}FG0fG zSU{_Nn!_Le4+Me7O?Th(hHn{0Wv2GrLworw7Z*;Fb{8l`F$2Tnl*=^)!c86UAPNJ1 z{qvva$oUo@`jHRwC!hWlyUt$Z?%QrcTQ|>LNcTY+gkIs!uJC2RV^6=p^QTw%iJ$rz zKKaQ{5`X@i{LP>J5LvDYRSA@9bq0qg=(bilvG4*>WsIS*VMeyz;>Nu7%yoat+QcR{ zv5D^%BA+YL^&6mKzJ}lp$o09F>Nd{s;E#%KEK`;4&_iy)k-!`AWe9$Eie*fj1%Uw%u-0#0$GWY9F%>T5rz~639 z`0HV!vO%KzHsJ}k>8`8v!9s4X?lJeTx9h@H@UTSA2;I1`Pfli8JQ?~$e|ZKoyNCG2 zUm9m}+;_6^W}h{4s8{o(eL$QJCJX6}lAGXtXhCBOxkZz3ehZTj>m|)*PCx z1uLB_+y|7UJW%2ze`_Zb69GY>p`W#L-+=GeuIawym}6%zy@y5HsEH~uZvkts&^Jiwm&eh8IzIq{WW zCCwCG?3}TsAJA_t&|W(IhQvH+9!GUvA@D-X`e?JFZ`@ii8Gh&t+k}v4#CIu3gT)w7A5HqsOUM zs?=&VqA)64*xkurzgruF41KKCJpa;RCdVcj8W~2Z9ATYo-&)rfo#!bpz5F6mlT!>2 z4btg$SsV8zi{B`vAPjxVm*4|;D?mTRXoqf0-ligzE3~Rc=Fk!ymIOi?N)>H7cO$!&SBzGgcTA$ zjtIjLAw8_oWJ!w3GK^N7zP!v!N00Ga|Mk~7aq280o8#v{s)(bIEYAUp7sS*D##j!| z&`!FPyc+fKI~bqa%Zlduem-wv6Pwt?cNxC8y2m^>_J+Rkg&ylhb!)H|+L`N1x2&10 z!t;xU&z`(u*0v^`JUHfY^O$6^Di|pX1|z{>EEtUi)ljUzhrfYlyb+{;+a^42oACIn zHwS$Fq~iCE|uE5-Y>mAcZNYBH@!x-(kf{oU$ z(&&Rxf@CEpsz|(Qz|fF%uHmh|J20=fn%1ht>qP5S72FM#SSaMvO^xpvW+y#JCG-@% zMvf;0QRun;a-*=ypcQE2A>zTSE?yZ{FhL!oIv8y+S|N-tW{&VQVF)W%72nkk0kXe5Be6}R`lDNavZpkS|-P8<#@UR z?N#uiD<)F{5b+R3L>Of;%JoM(Vk}7;IbJ9T1_DY|kJ$iclGe4wgS&WxHGiGhO>r)a zb-m~!VPen&<3U%EHWfOvluJHXg*6#Q>tb?~z=i{OL3Cx!g9sB3V>`l`z$=Z^3gJ0b zZqm&tReeOoXJpg^G&J+#hl~B9xpMb@tNmg{LC_VUubG?jAO*ULP9r7sJwi`9*|k;} zWzou_36Svs04mSOk`5N9UNBhFB*)4+dmj23M(6h62@6q#&<3pyK^UTx;*b95Q#^P0 zd4`7u`N^OBNoMA@kmord*GFfKXbVJ|{U_dOyBUh{bQQbJSqsGOEAA z{I`CUk!`mS$7Och^@DU4j?*~)d4kZ#Dn?3bQ!dpH|6h44;O6}|^Edz6-=JKr&{JI` zpo{B5%EE0t@QF(?Q8!@z(mY$XZAHAv4LQ$q9((i~WW649Tesqe0m2t=coR3qaOB7< zgh9Zr-8*^R$BpuYn=9X4DvaR_$4{^Fxo0kN=dNMyJuvPp1J;yQYxh_Lap-Do z&+*J3{VqdO{~h&#`fJ|VP(MV{&ygQ7@Oa~Pp6yM#3nZJ=YUs#TzoHjT?*l9A+Lu*r{|8VIJR$J(0t{L za&|!0i8CY5^6-v;2e(Le3`%Be9+OqUXh{%UBhMTw3x4ikz(@A`{7;W&{HNz~%GaUM z`}z`d;fk5xtGM15fWU3&jd5I0H^x^(N=Y!d4RaXg-d)QSV)<_)ZzHC4hzd3Kk_3p%+C4PB*$vA z9=r8xc;VF*^Kf9AzCVb{n;0Epl){S@D);&9=ayMrZn1Y?#Pm#^k%^enU`S92i#ZZp zsWOYAymnQ^+!mV-XZGcE>8{tdr|DnpvUEA&()l(ozSL)Uq{fGSbc#s2q>Ry^ltpQY z7Y`vf$P|1(BpBR=o|kB4G0GXh5g0C?&-u(}FEcWr*}l8NZgcdw;{JC`a_8N3NEBA-^))w?@M1?;gaEA!N*kBJvC!`+ zs&faK-g6J3C-DL|-&+WUMN=-9dG6U~dE`r9;eiL=#gmVJo97Nc$FAMGF~+zaT0g)K z0;K99rCB#9(@OKg*29)e~W+fEB}gexyFD0 zKm23%?A=#9s1!F60i;dHx`o;ZdfkNo`mF_CR6BV2JBtidSJ=N}v>2OKyq9#>g^*B= zJ?6$rym0JkPColIw?6dlH;iX^avPP=Iab>j-P~}!)|w!lk)9NIo=+GC3=I!6Ju!w5 z9#P=A5s`t1FDxD)g@rsr7()<9g!S;GWN2`RnVCt1^o#Q;5S~C90mk_`7?V4%25T9a z+t1MCwzu3bo7luAHu3#{*DKDgTZnv*V7*pyrE~B#STC zn%Y3X@NmS)m``;mz>fkv-_0#wlU7@-D})-2$(`GHr;)R=kh8p;({83LuUcCD8gh6C zecW8~EYFBSSLs(d=-grn5!I=y;zmF;v4`x4ht4fpgReD+oOZj%#oi#R^?e+B;yhk* ziQ!t0!2wBqFl2NzU}!8Lt_H<^5spl5*e~mAp1b|hT+UgV&uOe?w3<0fs~&wZN-%mW z&HOw|D;*$4=nQR)8!w+}Of-a79(HRTMpP$uarwwsh+<2wG^vi5+;R(XrHb?%$zJ=w z353A&JdV74gcn|TflHS!v$(Xxp_>mNgd_-@i+B(O1cAWwG=VhW34AG7>Ps%Ra*q7L zZ(|Kqq@|+*M#>gtBsNRwU3vj|=tKCvM}1;D!O%8(3x^TDPo8Gr4^ti4`nuPv%DNXQj~+|%RC1;x?RU3Txvz$8x5VKqYdMN@Z_v9fDUS&0Y^#lG16kSR<*D z^~-HtdM=9GyA*=+7teF}@L}4WHmA>=q2KEAlRy3w1VMnc7EcI{96iF*&pu77)8>^| zjxbUiBF$1fDU188OG>RxA9VBS1=5qWRvWb2oi`=s=g*u)3dzvmFrFW{9``r+L}{!x z`1tSr4*U1)pw;Q|=}&!J~CMP(fKsrBXp@ z%gA7jQn}>XJ%nq4$g`AAV;LcYYg@3!sUGAFWVW)2O>ANl-zDVs>UP#Z3bGqm&YtVF zskCdJJ#IiywdgMoJlAzir^i?t1_&P%3j33qv;Dmte)gETo8PV_-npBa= z3QD<(qn~AzN*Qz0Rd#&n7YR!x8W&E`n7=?{`4aPu1zx$lj4wO*A_dc5?>82O>5na{ zx>iVp2+%el)itcF5mbgL&5kp7`!vH-Td9n1=h&D2GgJN-5H>@r9GzRIvhAmMgFA>u zukN??{D5F+JKaR$X9lG`{7m8LjG=nUo&&o%@WX$H?(!uXm(I{!xWMI=dCp#3gflCI zULViq7}LQSWm(sw&RXmeDOpQDaDlhhnn>Lm8QvB(C1cNi{G4FrpM>+l6mswmm2Kb2bG_|Qcu9~`G z_V=2bG(vEB{xVW}gkgy9`}Fz=LI|SJ^@0aMKq#OT*9+%rOW<2_Z80(=kZv}2mW6cE zgo!$6C5lrMxc8KTFfLJ^*w6B*=g9I7S#H_??jK@o>+AOqXWh%#^b*o@WLZeRAlYlq z_?E?0!`X8SEG+&3NtV-jaLD;WP&k330N*9Dbc!%3kg~X>Iey|a7cX6;(@nX!IE+(d zNUSjkBvSZzo{#SbWc^EYSB^0_edk-=XL7B`m3C7Lj4s^Mbs;(T3&Lhxf(&SP+H`we zPMkPSv(=(G)+Fioh@(N2wypxdvO=rb=H!VJbUIzy-8Na8AfzlDGw-#^(JDg70}t@>iH~#qfCY59vVw4 zv=$c_nAwT$CA{*)(+rJ_GO>FfsS-$=asRD5`P!4OaP;IEMn~%W*k5`#ak+#}61N@k zX|9~5+gdG%xFAis=sb1ibDP-2CN}YXj;xr<1b}s%K&=g?xsJ%RD_*XVZ*8xT?a{KJ z8VD+(OC-$I1-Fh%X6urXl3*wn)Wh%YjB#z@sY{wKoKpPGOF1ij$3vxX^UvY>_%R{yyZ|qX zh)Ol$YL&QBB`%ebL5M-1^PF58Ru>jYmyR)eTUd;}Qsl~zrG~T*;qF7k^{Xr90tlxL z(TrzMy#?};kMCQ8JZEMi;MvDsLMJ_D_uS0(y$A7wz^%Daq`e-!PMco4L)veXr+u`_ zido!%^zed!ASw}+>y)Zh;!1@uE+M3kv6ei|(8A;R<6k0XiSeO2Hc3#*kSmKy6n$M| za?73TBe&KN#8sHS3v=mPK zI&|9|(r$~i-zCozx8_AZx$r&wAR;VPh$=P8J)1nY0q*+ePDp`u>me#ZqVy1 zj82_5nKd9SLQ16YkbX$knx{Sg!Zi_dPkLAkD$h`PMjkl#d#uG5V1#uwb14zlQm@t+ z8yjPCa)OJOE>Wx1ilm=G;*2Uwam4WO5W9Bn;{1j43=aW!wFfluezg7f$gSgjT%HpbYxhBhU z(ljC0miEd#=brg2`^Gb5XvrHItps^u$-6y*vHOX}cD&|y3jy_=53u^&uaov$1mzGv zGz7{pHy88lqmOdom3K3_`({Kei9L&y9&x?S;K(SRFVUIf`<@va0u=$!QBRTcNi=LcXti$1b26L2ItMa_x;T}v(9O& z>aMP;y-T?FFr`B^R3fhPWDqqVOs1vhaCf%#(}DIGp2{g+1(#-_R2_5ybBApX=cIQ$ zsCj7fkd0?piSQcv+BSem0b_FQ3bfI7Fac(3*&&Y(Myls0Ns!HLXyvG_ltNW(uDDq2 zB#EQ|a0a2DE;k?@!Qm(Gc&ziMSBpa4*(%XU3>=LI*36AXS-&-%pfasos zLD=uG++0IPn&N(v%BU2TN-Gv+a6_8+2R44{Vztp(xKK+s&H-32sk|YZO`Vno`iV@c zsDXTw*FD}S7pm7IJt)*MuWR!z|@yRLiomMmuWK?eYp55`? zFlfHj-EKU_W`%&1uyEyqBFN+-TPSJNRE>}kze1_y8$Ebh2BMLcplJoqzCFyj~4k{Ve~ zmNou!5$P*t;a0{FdV!B+IP-|*RW;6kO!5mvIl5%J7JPb*(e*yeI}KAC$9GCL&F%If zDO8(IQb-i;$7O#&Mia7!;Dnt%)bF2OVIj+oakScyH7;yExMdr;d&aC?xU=${O$)ve z?+ueY1m+R1(zKXf;MT5k_&!n2{UQ8>rNX2u+`FWnows1qHvHi;tqO>|eDk>~$NB%E zL)zQqfN51AlP_>89eU((iRFp{vMFvYmALJ*~IMY%yeMP%E(fW65Xea z*vIWO*(C*0d{WQL>4bfv18#xPO1ZjfFRAN_8xW`5^TB7QA!K6wWJrQgPN&Q#0=n{XwgwAlb6$`yW}Oo|fHA*BrP%@%pBh zWSpB?oPR#1N}L@uFP@V`_}FHsm%DjfWlas(fj62~u&k=AZnck}AAzbEEz;zFC5~26 zxXOMumZ>4P#=j=Mp8f4f;CZQbykhISwwUJ_Y_K9AJ>e5vo{G^&3M7;1P0&V7dFaXO zlJnid$MQNiGjJrji>HSjD5C!XMcLgs(tCbqr2Zw`xoV}LrM~;PN1VUxrd;pKz;+Go z)w5*tBZ*iXog>WIhO{8tTWgJa(S0=s5N>}OPf7)VF1kK9HkP!+QQPB0 z_KwFy+MF{*(!|EbaW?O5k=ab#>H^mHa?-F{Vum1|q&UTk=JMHneN?5TQMVm;5ur+?l0EZTIKf1x|5f`6eLMleSDo5$_uq|(F3J@e`E%Yl5(FOOp!$7JL30ga>9&;=n_ zCa}mQIj`^ejo|&_j^JgtKr^`Wxq4nFw_twU8*AEl|E){@W;W3oV$!h*cCTq;clny6 zcP6|%=#5**O)GFZr?7c$h9Vr#>~`P|XiRhc(HcEH7Ymv?0VCRdU$%=kCz$udFPk4+ zL9niYa?Y-?mf_U-k(t$$*U>>2m z)gqQoV%iYr7yG;mqla;F_%LfKd`3l?Ew4(H+yzVfD_}QE+$qG&xQr?8R|_RYjNLg{ym8zhL+ETW840y0I-Yu`atjvj@rvmlDRynZUQV ztyEt9x-+Rl6w)7N!diyHCt6>4C8hHD}YeJ?Ur=LdEXPfrHO)QTH=)jW-;1kdN3ySfxZ1=$-qEHQF?C!cYFV zcFs;L5UK^DCA$tM@SGI@>hUHL>RBkA6aA9vb81b0k7Z}|rn$YI@XRA0WT#H z%EavOy?idb4u#$kuJ7x1_u!ADUn-3jVmN3gxLWLwBbk_hSx8CoSNM>)-0XlE9ZC$Q zgv(2{EWY|>-jK9NG=&0IZN6m6?O%^rpmp&4HVi)ia&-|GocU8n(3<0PAe4tZOKnL- zHOVCXTUuMU_^hz=0&d;@9mXN~XkMdG_>PLyaUFmNiXC=#6!Lw;y-CrH{G3O(EKRac< zqGcS+djC0Vk~OHyWU4Vqr;x+8EK_iviB-v7z6r6`OBedu{<^ly`ubU~LG=``f5@P( zf;aVHf>UAYPd17cPGdpi@Y2?g#p^|XaqQ1%lJ%ll5oFVpUU!A z?+akLGw3ffRD6Onr>kvMjSB!}O?nk5jcmy)w!|O?_l_y5>N)e8ZSIqx7t19*T(>G+ zSMXgc@Q#{cGA%oOFV*)k)#K@?sO7a$J3Tv_T<$4YH2s4|@OQ|jTDKGWPEhr-^`13< zOkkUnGCPXmNX7SMomSyF|BR*AOSpTt!xyGPnYLttW15;q8Viz~AD*Ut5`O@dOcXW2 z#@~O~O^+TVS;(zD03-6Kn7Z*a?Xd1tX1JgetV2*uVeD=BSs z_SUfy^qL~E1G;W6(b!c<3`WO@Rd%rQr2|+z6B{7r{=?s1k)hLBu4mVCGZTw6vpP`_ zHMQk8P@##Y1jr2XOXO%u!)DsnEj>Mp3V!`zhdahtCYfVRA~8Rw`Eku7MmeGzjJ|!0 z)}&Q2ASwK$!o;P8j57PUh4vbD!}#G+FrP{0j7q@Z7(Mfqe-rBm)LRA_e>ZcJrmK8x zwXr99EpbraY@>mdHv1J_OY&|9&)OD_S{{vOG?qI@fpS#`|E-G@J;9127M|W4tYtQZ z5ZRUoG$pw@-+_F)l#_#hJTq@Rk5@Sh%Qg(gT=?08g}l!J`&0UUcbmvpbP1EPREtbt zdg7owr(kkjU55-8TNu2xvwCXSAnjojp-!uJHl3>;a-|Qs8|UF`+Q?=f_eJV|P(wWl zs)q8<6Xnh*ygiBUci9?q6HGaLm5;}o{i*Vd%Y1#=RJ*)ViR)yY1B$Vee6radge*%R4?RRj+tiKk-Sse$jW3kiA_%MFoG?of3Y+#C=Xl zev398JbWZ=5F;z}y2Y5DcQ83@Tk5LF{M1H?n*yuZJZn_EEVie6J%?1ELRR44O^9YJ zg#7UvY-NJU+9Fk+Q#D_iQC{PC*x?nlAcIV3JSXCDsU1_{iG3nu#ylj7<9WJH=5~)erdI z`SwDGu36N(@MZJH;Gle5sen@IOPUHE*)e2?n@-HqjD&rNTckWSPdVpd9!=y|=g2Riu)b5e!j-Ulg$F(i?9QW6 zmWB%V^bA)~EvLqdqEJ8sB^^%WOjFd5$CFWw_gFmEDYS(FPJgNyB3=VxYu?HrS;!VH zcR&oqYoTKrQFNJURYeB%=7R}QsASy^eSQL?dqY^T;6uu@5WGWB?&OZDqK_;Oxz&>u+%NKM6_x72iJl<8iSP)VyBL3D3QthFwk;zOo>#GWd+{$;4kO{1O z_+M-RpQLS}fDa@e!DNR@RT2iD>T9LqjlUnug1_TgBdeKf-R49LBrV!^)+?f%hd{+{!%N_i3zVu`VtYo zQ+$Y|PHh>0od6boV7V5gmBt#%Oce3shBZb>c1#C%-st)n8an)W{W+btpdgjdm)?Gd z)w)Jn;Toyd*4rrtx7hGLUNvsjFmkwv4@hO1I;)2SN@o+GMVzVdvNp2YWj?tt=(^p! zueN5fT@sLzc0S=%z6!AVkz9m0e@xMXWr&JJx%$KW$$*AODQz0x_4c!>4XTY;y_$*T zw`~Nip6OHF`~@48iaC1qO49xZ5O>ac@FipZt0|O-GdQ9L{ma?GtW^R8zqki5KdNA1 zYXI~7?lyi)KG4)lGY9)zP%M~qW31GvUXNX^s$w5tts?`)Ruf}F=GGnw^^yD%@%|K?fuq2tn0l$2%rmiDJsvT zMQlWae_Q%QG1oMe_?qQ0K3tefswYVxQ0dq;>*i=_Z(N+}nG$>+?e+t8?3AWuht|^j z)tAPmND9LreKsJ<%dX;jud{IJl#^={BL#7X!MbK3yeN9S+w8>C3QWwPV=CZnRxQBDFWl=L@v8eUV}KbtYVGM`t%^RS$U9C#cZ-#q z7T-=_LYpnwZVjz^oR&(d=XbMl>QUUhTJCu(au_C~aTrZ_XrQ5E=VvF^-UN`1m|`?U zVF>+)4_&!EtfW0d>XWylHzxYBMDA031e96^7CS^nUy5=lY?vuc`qO{8D5IXS%p4=z z->W9(wo1~l>{hE+v;e%zO0{T>;RAM zP=sh&F4jdQNV~UcmwmU6E(9TwG8%QhPVARig*Psd%S*Uoxi>gm{Wr>r83jte zEr^}fxGv7sNmjx9Dvwp*I89x!a`yMcB@L8K)f!^O_toVmo&@U5SvjUSedmURhQB$= zH0v0FX%N|bIw(w0!srrR>mvzNIz^JUvnBWZ*FtOv2um=ay64s;>hl2l7aY;-ydMD* z&%2r#^*Mjf@T2f^`D>p++bk(b&+CtHgI7eYgI&v1COPQ@;aB<4{cDagKqU2R(8@(is@Chc_>Y1tiVQMX6Rvwi?_lmb>VBNt2N-fm=Q`kGtZ(U1@@X~Y+aN@XMtGlkt1ig9 z{)=JSX&h=nJb}53KJxB84p64HQ6rD~(2gjqOayP6QWH6us!aDxC5=hmyeltW7zZ5;jy$7^HDE~Mb>5A0(VWEtpI9gTp44sL{AMCNlF$??O`UGJ+YblnQ3%XB!h!v*S z)I3tIlJQnBKtEy8v!k)lRS?$zv{_5l4^}jx)%ix|Z^%li3}MR6k4qB?9XGvGe|p~V zk#m4c#*nyp_Lz7(#~N~tNa~4>vobjaMOC|@-t4*&?w(~@En&E6Lo;8l-@;n*Lfb_Z ztg(M@z`STTkIN;`TTwRQ%lDC6msau^8x!!2x3GT#8C6}h$DXf~{eJB8g%FhGL!#g0 zTW{Jj@E?m58jF*emFTMNoW{l3BbWfl6{J5`__~EcjegSRZq&iF%#{#iVWTDx(o za)|d8f$=+ki+c=rFt(>-NO3%!0E98bNjyVl-hpXr}{!SA~=8T~c z^~0TC!js|~A`|IIis6|S8zKdFDl3cAQ#%DOX}02+oL1pyE10Wf4NXekiAtqqU#wGzzGsaEYyJZP!iC#>i>LL2OPeC6b+bJs)XHs`jOuqG`M&sX7=`KXxK ztIamD?agtxtkEZK1KSmzkU>dHCg!@2Ch~EEoh)$e*z7{nrnt@UH`~5W*J~~_W09jhvmCA zY2+=n0IE=5I#uk<1z)0|p{RDG1thvzT zAKEYoPXJt|#o=8~W+NLW5{He_{<2nJS85GNqZ2sMQuaQ@9<1)|?6p18TzB!qT}OaS#45I?S5RFn^gleT1Uo}!jb&}{XQdxfp+2U1%1CG z>G(Ff^`f9#@O~5YG2|Z{f(Ct9izpj50_pnJ&W3?{A+ikgozgOG_CP*LxihsIBcOvi zZB02hODZKbE3f{b#lhLm6`SZ?o?fiT{0hMCw!t^nsVTZFdsr00G?gzTUb{?%-w`|v zeiwT=ZU9q-1acOai-B+J{8;w+0Z|;X(QwEyKQuJvotFu+f2DnT-Phnft**T2mD$yYS{Rr;FeGg4RO z!sSclu7uL1n&)$h@N>OiM$#m?7WoIvOx+JcT~TB1PfXd~Cs)Bl?>rFsp`VjkbpxXd z3@~??eFJGucS0&-QAZ0;jrqv7UyyC~2QFYYp+ilA`J7%%>y;mXo5uO{ffwCK-)i$i89euAY!mZWK1*ZP z_TUJfxgBw-YeH^ixl`=-#LX_czh6_V&qE;sGePE&)Xgb{pxlc4fr4v#$(@SY9g^e& zf$H`+$~L85wnz%8&8{i71{d6Ov6AT;Ix-o$=Z7fc8m>_z`S%=?Y6;}PBsWPv`S6p7 zm6>WHlQXJL=&khAn+b?A`;r~%S5$OR~(n^?gZdYe1i z;&jN_Y?TSDLDqOOSSc%IkQ`kLXMX3zB-<(lTa;d7s#WJha<^3%0Rh+ZZm>}04^OgG zqk8sCJ`cn^xv2qih>2XzL!{GeAJ1t%QQh7wl~*H^H}z}bEbcZFPgIqGqM(m1`W#$i z86wBYM(9np1ygLF`KUKmU^dZn%`h67YRN+g$qcA%ZvS31le=W`*Rsj7f~VR02y+xL zy6QTqyXv`+wcyMoW;|05vYE*F5=9I1P3kH9H@0{bDq2l@^>=(p)ss(YIvDB<_%MZ@1HJ2pGY5%1)~8)7Tf}}uvW$Ofl36O<`@#3UDLl-6hyy*ZY>(U zPP;C8SG_0EbQ&hT_^6+b;b#9lutFG1{?TB$7Y{0>l=qv*%tSc=ISG4CxlE8fOy7x1 z&S*VR^1ZQFmq7jX&(Z6X$pZ+fK3~^UxwRz=p2Vo~Dn9C^uS79XKpIje@fL(hGzq^iKm$lDNFH~dJ*F>c)DV|FzPcZ@@Caz zwf!)D7t(JUk`I9dw{^0&@%@7z7Bh?f9e*}7O@6kcV3>&8Q)8!UMh6G7(Uu8H#$>bs zG?hg-$er&=Aha0Q_P-O^3@6h_GfO;-{j6}>ICC+x0_kz)F1QV-cql-C{kgT#C1`Id z5Iwr+dkaBN7&)bw-lyzvV)bJqFIa)_^Om!uWtGKY)Gl*TmuL~mdhe-25PB6%>5bIs zeV&dok=M+W1dNWEBiR{U6(15r5kVc(5tbK^n%ym zI@lx3v}@`!Ynqd$PYR&@Y2c}X@G!ocCg|Mk-VpA{sg$Ky+$j?>rZ!u~8n|10$g-~H zd)3Q$e8k0Lb^c1q-W(Gt?*zXFXc7QK1li@bhPP61g`}@UHQd0?v7a)d! zk+)Hla?7{u0|=$vlVw27e1&c$n-+U!6>x>202l(DgPy&VVjxn|7K!4oD$pshmmA_Q%US6y zxGBuP6b=aZkeE5nH1l1_NwfYR;|-(CFk`9HHa!Q+L&Qy{L_`u!#X+N zAst{YZ-hXAPZwY0BU_0+ZIrbCviHMNIzowWTrIK!ZezU7_Y|)xDweTYdhDM%8Qxt+ z-2U&AiAzsH6B-9xl~E9kf@FUBzphN{a?u{rcs#pU zet-BmQKVqO%lHWUV6T6|sXiZF3FX$#NH5qfWYFmP3Hp(rPHrs-Pu(KR8+XQzy!``} z4h$rkew#LU`ZKr~a|XaH&7!E)8m~PPcaWlkRPXXy!Eu?MS>kXq{%N(opLXoIK7&Bo zY?w3pc>h-2Yw;M>OyohK>$vT@8Y?1dmk%`JRFKLbgrplX4!O5ZNp!%G+doOC~ zRJ|&(wwkf+0w;Hz&B(}C7M|pp~HrYE)#pA=m|T3b{KsiqlH|mwS4?C>{`;rLQy${ z+2sp#^wc5oh_H*6mh~)oxXBwmFZDMbK z*6iLC-F>Rp*G7+>e1~4}-f<}TBn34n=-?jw`@p|cufrHHgh>7#YI>&sTA9fY@38=& zOEb{q$Ve-P8~pl-t|`%#k+_FjLEH|{f(`Jyop>n*5{4jUjt^YuGMMQ48USCKkruL!2O4}CQX4V3hu37$*JC@3DR z1sf`KXR@=ZrBWF})18uM`)HhxoxYbvpZADjo7~gbM3iy)u1BuR*YCe{%?5C>r4^t2Ym#cr_^R(-yAt1ggckuc@< zsw;8vLV&)WL*eSr%~z)Iih85}_`ZDv)1+@i#v13|`Ahj8ew00HEN>}P4|Xk^QjQn{ z{+o2ewn{j4GCr&fY(^pVTBaI)HoM)$doYNCoLPYE64_lP@6k+>5QrCppjq*pP>BGU<@7dgK21e+)v0 z*y8?Gg4aJLviZfa`ybTU6Lbt32{DpoShh+ya0y8!mOegBb-%}UyvI~Bj-m>@U$h*F z?;@j<|H+IfH>xQuYc0*IHIbf3sUR2?F=u^$$>27&9H?cgh&O@JPO%xbG>J7GP52qy zsFjPOb^MFLlD~A32%S>7ecOlhs88$2K*^+{!MU9QFb8}7=F3kZs zlPXLt-nVbh$Qx&aH-g86Jx~E9s+cPd#qver{YGgi1oPU}Kg+)-Kys_<+_w-b8eA3u zC09u49-mh!Npc>(xQvfCKmJTRKYw?xDR-8ozdavG?GB5RIP+ zCbswm6{OHSsAUs%uWJQ9{x-9sX9GjIxAbo|y}#sXuc=OSd@W*g^bbe#jb9ySHHz;q zi7@OZk;Re)#D{5Wuv5u;s6$M;Ka8K)k|dr#b{?oOgy{RLJ?QzRvMOmgUzK}W#dyQr zRr&JPga|1CIf>rGSYaacvd0=&IbOF|H)C}Bq(O_8aHH((DAhKJ?yG&(a>$&r9t!}G z8O2}qpD%p`7m8Fbd;K5nLc=)lr&?E`(pH$2nxplZaaxgA`sEce9cfff5}oTu z!2;!yc6C9-G2N>gKPW{%52%`jg`TNA^2dOn6X>rkX$L6nLZ=b z5jMq)=+P={5m#_tf$JA9#FpS_Mc9!Rg!88sv{ zrZyUhWmiPgKZlqaX>H-c3#33}1K9^x`_SF&HVQgxvP+k--6TRptr05$VwBRt>+-EP z_>!?5-%et5V+BzW#)8pVOD`UDVvu$|&QHHx4>bSgFFZ^~%3kSyd1;=k(z$WBTRd3K zR~QRwetiH*vZhtwq=|ib(RJQZ(f#~>(L`OWw-NMOm@#DeCeoF0aBA^�&tlhfb<6 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%0APb=Jy$_$v~QY92~agj3JX)VsL4#4c8>JxNy2-| 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

CZKN+4!&%##1E3xhKb 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

-C5bB{j5_4O?#=XUX%zxe?MgF%1@3&!yJsFturpJm*ili)?~jX}P)u7BhDN5U_|&5zcCKE%!Y}^fFVgS#X}8;4y>bPB zkAC`b{`?QU=WE7JU6co#HAvHx&eSaO%K5P0dP}R-Vy%0X;rewB-E<2{s#&?Z%7ZJr1a%6{f zO{{gi^za86pWDwH-u>rsV%rtTTEm`$$GGDS-^rsN{&#d*EwVIWePfHo`588spX1`m zr#N!kYp|yLdc4#(){+uY+wYkQv$jV0{4?0ke-ioh6QtLdNXtA_CQ9R^gkgoN90ox( zsj$Zz=vx}JZcb?|Dw0NU;qZAyJ`_})H=-BbMlyC2x;YmH47Ly6#9Ry5nZML4<}1#o zl$Sq<-uN_>*P*k8Z%gFj_RP8UpEF0re%SZ~OZr1uDG5!T|R zpwbDO)ARKA9l#trL2~Q_V>cb!)*$;jtyi`%7lO6k3XffUn97w{Dh%bQ1M38MVFTCP zT7}md58+};c9v!bn7j2`zAy(c zRnDGc_i^UQg5yho zeP29#g=b$nhj)(O{oUWC-EIf&mQwV3UA%QHuWoVi+6sI3EKpW9h@M2zI2{w@Fx}kl zs0A=r6wIkAl#v)Au%gy12=Ky_=da>Ctgfu^8^7@zkz*W0pRUAY=L?TN$6#2JY8{d@ zxg(kKKE?%j7xZnDETh#PV?Clmyi}w~N`JUXVJ#<)z6PaWeRYYwcYiNa^EbHtj1Twt zp*!BpBdk=7Z`3!k)NS0asnj58tp4*AC3UTV8WlE+SSi8l-;z1^-rdYo8 z9J7ZWVDa$nczuLp+mWkpn(% z*%C`YbCs3l#nTr7xOC|vAN=44M+vAghC#niK5$&Rw!*;!il_m+i& zCzw9;0IQcCXV?DQSlG3T<*P4}BrSx9t_j}K>P(=u4#n&a_4L3%3Hy+9p;u^(<)u?0 zcCK8$!iPWndqFQk2#hfd`+bUmXcb?kT&t+>3t!P$#T2qE~= zmmcTE7hfF3PQTv=;OxaEHa5DYTQOBWI=TdcyI%Jmp8Mj5+1Oa6k)?F|IqmL%U6T#YKK{Gx zI&gwcr-S__w88pjTtX>C*1!}6=Gqmi)2HxHeF?twF#60XTBgJ!aR@4*M|+X+9y_NI zM-tS{8SN7(twlwW0)@v{2498R#|uxQB}w%q#FeK&BzU2yoW{+6FX`UzM6fdl-3cwu zfD)VmnNj5f)b$Uevk5#J*$_A_@jY-W4tL(-Pg&fl0&%5)o(Va30$K&JZ)qxARZ?h; zo1A7aw?KZ=QOwP^A#cBn_R-@s$Hv2-cRtv(eI3^;T9`{DU%vb_%l&IquArpAs~}qD z36o!Mf(3_H79l-KLM?cPP+=n>3RU31351IibQg;f{0L$yB}iS1xp^wL4og7~axG_0O2D229T_aP^WN`Ie7hqDs+dwnub^nkQGokVn%257v6p zB;nNAD_mP%CrcB~oH>K{9veAZ0zr}{3v-lWW z#vql%R#k`vN<4udZoT8u)fFI2vYvbHIc!vOPm&}w2z0^=XD)JmWu3$O7b%J=HW}&{ z$cJR7KI8zUG>v8(B?Vpt^>8H>S}L+;i^-`O`kPCr_5wHE^Y#d7zOfS?XDd3Ba~yfi z_wf85{47bM1J(rF7n#OmAXp?yYlHqpELcMyEhL#95sO`@C+EUD@D3k;9utZaYfbP4 z&U1=lNSO~Qe1q257!y+++U<-qO@o_&4x)aw^`5g9s|8YeoNX{UHO9vJIK$y4i)rw4q&A0_?pHO|EBk0$|WHb=ShNhCByDAMl?A3 z!23y(6jK%7s7v|EE$>HXj&}xEmN;F2(0Cycwg@N)XYo}PoEL0~H>Os5j0)ClPne@0 zw208)y6KkZC0Cc$fFNwNzP^qzCQwwgCTlk6Zf>%)xGIxHX1=Sd2KBqGn9%vX3fglCaW7;?3$gVs0=FZ zH?{VPbD>@CkT@6UT{3>&l?6r@5jh~RQU#GbQ-$VFSzv|(OwkV&9kHWH>cad_96OFwOS-+B^{oL(*1$T?=H}+8i7kXc>4eqw zO;+LrQ_6T&!H&s)oPIis5YT9KP)g&mNF-iLk|Y6NVTvubHa9r-;9sUQITs4FZ?FHV zwJk~;8@1lW$#;P<71mZ*V@3^Sr4(9f+U*X~_L!X%SIYakuI2O*1KIQ3+-lxtqie^9pcV-5^b@G##%?a)1qA4;BycCEHk?f zu(0Dbx}%Tm8L{)BL(qD=c&A4pe2o2O=~_S^B`ZW zaHmU(R6tvx8bAgj6$tH-qQaS_kW1MvmCLYmKZKsT3*mFNQGH?uoL%5dfz%p&g%mxq z{og~r`UyJaqtF~_&!sGbNw5%Ua`Vl2ti>BUcB}kgKCJwV7$Re8xq2J^LiPJaPNZv z$PTQf^A_o&(j&p9ELz8hWK)EL!{c`-Jcem^pk0O}*IFB(@}{1K%P`xJL_TofsoTgW z*HXnI+{WKaumd1;8?6h4wRbTQLxe-k*Ao(ls;BvJ!xKJEFNKZJd^zI%L5#yV-Sv?V zDufF#_RymUe0uM~>m)rcio_9ZaICBF)^m3CB%Ap0tZnrGL9^9De+7rd$1d_# zZ^+8pCdUu&qbjQHDV2{j4+s>9m|zJcNfswELSW-2oF*BAL6`2@1&ZO2o8Iu_j7`qo zm_^ptSjH6WJN_E3oqCK*&wq?O?=e2s44gC>i*W0S|ABx#zlzH*s{794u*pJ#e; zJ4w1xm-hiy>%7HOC0c}Ow|B89w*kU#Y|3m2+fiO0yYg6m?`&RYj4P6lFzkScJ(fFW)!AiRGgUO2h>@8{cAc$COx|jPx$N zH9!H@Vyhvh%tPW6n_V~ZGNxo^@gV!}co%2B_@CHVxlA+5UdFxl2$Ce6J+j_!MhLHM zv`Za3c~#Ku4-rz*Xf}d?oRrkoXL+8pxz%G(lp}G_+D}}^X22g7JML@5j#PnHToe_? zdKzg;tJx$?)6rRHj3F;diqec?r@pfF@85|zs?XU(CjnOPTtMzfMV6*)bo*RB`!tIu z-p>9Luf>>G#~Jl!v4p7ibI)MV!}K@FHiu?Shk!MelZmuJ& zMJ6duB~*BXsnKAJZeQm;2{2h$c(TGiwng6&y7>x(5}+kA6QL-tz)U8ze!NNJV1?`U zDH^xIq5pww;Z4W@FAL|28^pimLAEJ-S8>n(6v=@fMb5t)%o0hXO|kg>RHq*y)j4a= z3);W3Nuy;_+Yoo(N8`4;NcZfeGdUTCYR=+~!RPtc zq=0b%(?ToiBiFqQCl zNf3f_;co?QHW7{~Mn$fyHz@o|0vP}4fo^{YNE%s2qtOVH@|bJ{j+_9YC{3IsiddMB-s0y(Z3qyWFagC83ZS6C z4_*nJ3!bem#%Ebtq|!99Fg=wuoZ2~zsi=%09}ejD^KhL<1C%()jl1QJ+<$}~s5jw| z@Cni+p*I+E`P>Waz4dJzxb=0fE-se$q*=!C*M1+TpZ+8g7c~On5xf&VuCI5fjeXoh5CJjatP9-Ra!6qXs?lbAyhGMVgXmg}6A|zCu!qHRIu_|# z3EHiU@rf40)h1;%Aggj**2Y z#9p@x?L8d5@0}yq_6@s46i~z=oC`|qr5hCzK{Fyiw!NzY7kzZ$BS#k>8?U3E8bLhk z>temfScg&xjjTZyi!})6R6xrpTx__>Sd5PZx$3wfHev{IvlB_G2b`{V}oQ!xTEY z%t*ovLsE@7&~r9?1=3UihIt^UQ7Ta?Px%V z;C!O6^efG=*M2W)nqkciOttzmTv93WL7&0eHR!G2dn?F%lQHR;R+@gb#q!lJQ7&JE zGUVM#Ng8QFQ>L_ZMl;RG#;1@{$IB<;b@g~cd`TIbgvuhl4uZu(ApFjAGQ^Hn3hz8+ zWddwk>LBo}ELth7wpgoBGJKq9MV2IV+HGEXIweR{d zKJ;@hveg}sr3qWTKI5GxGg*)GU;ZR>iw98Oo|=axC9W(Po<7C!=_jy{eF62<6Li*B zkj4Zguu|ds%n+d@NloR8waI937;CdpdZ8i$7!cM6(~<)GhNJ3xiiMQ)K}|BfiOoBd z3qOH6_?JnWbNFfnn=j+KFT(IDde8eIod7)6OR5XMO1Azxh~jyiY#?V}i?Cg?U9Y9Q z_5kVN<8;1bnyueY$gWv@8g>$=Gx}rW4E7zs96gS^`#u`C-NDS_9%PcDltj2dq4xRk zo6g7T6)Vi8P^@fTXS26~u@>V?Q1JkF7L*9nax6r#3XjJt0z^HkNlPb2lWDxiOBoAw zknzwG0&3}`8X8s`x_UxU>+8w4jQmdk1s;j=5@)CpKUfz<-$HvR{0hz`DB`_^Pq+mqBRG`RzWl^A@~7N{94dWq5wt zOI+pf*5j5DM@h2=_D1HGe~sm=Wols``)_#@r@ru?qlk?}t5}fO3Q?5^5(FtiOS}s0 z;BYU-Jz<1e2>St}a@YkJbY%i9!In5%Q5HiAm(Us;XMDVgR&qpfsTD$lFM2&?b=0<8 zQb3w%CMVjgwZ_SNt2D}j#2Kus0e{_PCk+nW^)?!<&JEwl5mKYlCR9C~GbpDbTB>M@BON(s49b!!BS1fX}6BHQ&NPcaflIO4<~ku90+d_ z1jzH3dS1Ndt-2!Gce2pIcuYJHhKbAOaOyZO4xEUlBX8f#ijc7M$SXzw6i$Legj^ zVZ!}~#*Rj7V(hSO8(L>E5z!SI5+PSJWeJ2rPkM>>Hso*u_MUh>Qw#fo>hrhPAG@Sf zY_2X-o_~S~*G1aU02@>}-Lk-Y!C=s3t-FPBL4`k{Mm1TMg#AbdkK)RDlrS|p0YG35n`#P{YkA*F6ixOrBTYoI5MP-jC^y8 zFMQ}1*ni}9TAgufMgFQ7a@)Oc=JYe~>k3ww3?jEtbJF3G3SUl2#sT{gi=dL0m z&xOKSrXevFH5@S(JzfOW<)B9E<6{p+dHBx<`F<}(N!*CrSw8^hu|6~$kRo!;!`}$c zP2ej>Es7C_<{{B@&SCwwotkrXk}aq_cq?%w$jaiWp!BS6UEeYF_|{*wul$~)cQHP* z2ivGGY4kG9|)Rdao5b>jFc}-P_kX~c3*5GUvh2MezoJ+=-oEoFmYK&+RqHgK{0a6~- zLWz?|LNh=s$yldFXJVXQKMTLJDsfeY%S_)^UjBM(AfFD9#_NpS$;1-^Ae zTj?}vUodKLAVMS93qhyVWM-m+a~`er2(1HQay=a8C@GnqY=a2aild@Do^uj6VrbV> zA%TkxpP*Y33ZMW*7Q!>pZqRI`7$8eivPJ`~R78V?cx$&BOigrRLnmldK$xD^e_JSp zmnq)op`q+T!y+I!!hImT!;9F+umrT1kA<4^crTD?5- z6K4%Uv@tedqpD{O1+OtRtyY7XiLoHS_cdc@h*BYT#Mg=)`SREy<}0?$gD_ZB+ZI01 z^Xk|cZ#8H(5=s{o)xSD+1np*solty7YgZUG1%c5$0iHpBGc>V9K&b>xk8r=(YKU|8 zt8BBry}o)0A*hUD?Zro!H_L1c3%0sF%CZ~@^l7D8+gRn=^);k~PP<8#CP*o8&e81+ zu-+j&=p>=pNNG1S60O7F$c1}Y#Q|FsVhOp03bfO3CdPbPN|cttZ(Kl8mLomY5ei6b z+t=0wfBim96ls=m{rodL{qXPehWGv$rpQNwES+dx`;H&v%+sG@YpX{iP3ZN8bXqOu z+K!WtJjCvUCrA?Ys-K#BYtfw!yWjO*NRohtF=3xJRTacI%Mw?WxT?bDLntdK3tT>= z+}gryZQ%xe81(VO0lqSrUYGPUpJ4aqI#x-fb=WQx3n|%;w3vOfBo!rt^%kx(OSbZx zi1RN%xr*?^n4=`1GQ4i%eT5W~s_4Vne?h_~PR>9pMGV&Ag`dLm(?QvN;XaBh_md7k z!_=E5S^G>%>-hoLA@gN{IC?DXD`ojjHxd8i)+<(+dmR0|7a@NRFTrXHxG))#j0DZB zHLG4u=q;iD}i!8a4LrVz|j|)8zrF@LNeG| z!&ZZsh=fF?hHg9S81^?~@+eKS5mgoPOW{V*|?;2nufSeTv+^|e%F5zbz#>pJJK)-yiV zVt#HKnbhV%Xn`%?XJUu~-lSty6~mRjOi0qdgvq%2(Mk#xm@! zQ+wSPRfVx-m=O3d<)+LLItz9lKHO)a$k8K>fY5jea44L?yK-cm4kbc^Tl%nX8Dp549%pfGf-_e(f>>sj1u;Kk zD2jlZ*t2Vfh1r>Kekc)9Xmv9@6lqc_yh!mb9|@rf=dd<3rId?=Fy{z9qY6n4D-~gH zl!~M^^>x3---zWs47+QgIaUM6>jsNb^fuSXhkaU|iO|%Df=g1?g9;I4Bs{HVlY<9# zk3?y|I(8gW<1G&Dj2$V14vLhcqFhB^@&48p*Uz4b^f-l7lC0IHIW~sY3En%Zs$yn( zjK%p$PF-9>{UNcld)Fen=4P*(

YrfA1We*lvHF%%0LWw>NCI1@w?u@?5=$yjT2`ryZ0aE-nae`UwG*MqS466 zQq9I@mxcK$l51yp>4{Hq$LrsNDZeco2qH|3iz4KrFxo#z(|8ZYi&J;;V(ZS;XJ2&b zuu_trJInAt{2Q`j7;2=xXDAf@ZA~V>KVfXIhe3(01exeV?+?Hg1l=VKs>L?9w*Xgx zFY%&DdG62^^@`Xp3m?_wNPeS)( z!nif)hdx00h6j=Fc=tEz#r{*RS8&G*MXnSg6cN$S+f^04je?}9X-p=e(5@7|^oYtt zD-A*+YQYMNQW7VEeVA}QPL69U4iO`46i3wHDF9@cK8J)U1e-S=rzA>;n_HrgScDCm z1OhOzpr$VD!5K>}Q0SuAn~$oyE+)P;8_~G{FUN-WH9FNr#les`dq#vS57rW=Fm++> zMt@t#paw3KL}pc5K#5O3ARhMZdQh_*{N_gN49BD|#CNS@5b{0%r}?up9aOA_!vT1zFQz ziUO$x+DUwp;-!KFq)LO$)vzCmj3@@?eBkMMTj5<53gZ#H+)!0HWj@4sNoQ<=PCJV+ z;&5SmKtzG1ZEGQb=tUd(#@;)Wg0ZnSX=|Knb%`n;QZ)*6+Q69#XG@d`KBP#G@Cq0B zJ0Jwc*f_;Vu&#{uUpc{teTUI0HIP`S;L~^q|CagRv#KuLMXiQ zC?Nvx*}JHrAfh$jtEK1?4EviSs#8E!#ji+7G3>Lka+R^k8EomOPp^8q7^aeuC6{RK zzvl!>N`}KcCfD1sv$@sfj-$Idd|(lrM{0@Gl4{UnYik236Ou*;oh9U@VfplnPz@Ph zIDkwWI1l~7kbE$p+3AqB+JIzwYMlFTKgts?d;)6?Qc99E!9`KTVP0_89mkoRo*?h` zgUWxM-uN2T5#FRu*jinox3Pj0D!RwSXY2!ixfpCl8_!n@s^Y(WIiPp_GNK%?xz(lL z>(TG`Da#UX9b3IF8)k!pduKVgcNY^A<20IWWSSvW5)`_-oy^Sd zy5U7j|3s@ERPOlrPkN?HAy8?CDNBaG_dB@%@Uu*xc@ZoOdrbMLkj=#4TcXZgzS*KuY(wF;$Qs7 zIC9cmKSpuo&7{2#G5x?a*KXHzzNC?BtH=-jCjK?ALo^z(xcb&vuc(P=v(Y5W6j`Fk zBqULsXt3Gmg-@K}`469A{mJVTg9_UK+8WVP;W`!`n>$?Lv8BgW4p)LLp(;aj#TbXJ z0{q>3AMNI1@f{)M*f5zFD!^6)syvFcRTdj3(bm=0XAa{W*4WYSciv%~jbF22n(0lL zjMuRI$VGQHLQvyI6F7)qt0?yDJU9`WLlxoq6%I3WxS_=iENu#=jinZ?Atxd!2=6e z7p-i3jlc+c3C`6Gn(!Ev5~IdTP*&eAu4>g%LFhi;dTc+PW`q847`b{P^0z!yRWZzm zyz%vSF*eo;X-f_N+6m*YL5?CMd7G=(D2Kg}2n)CU8u-ZTtA?1eU}xjv)v^TOoxzwQ zc84XEvGfLmP*9i>TNPMSu(^7Tyt{#~h6rc4eD-;s`rL=ew>AP#)8tUag4PtVs10w{ zlvrC~$^m8G$LSUm)6*ncQksgQtSHNpvZ|;|g)t@+Qr2UPr80)9swgW%QC8$dMP)3_ zM#9*{48|#{yoZVKb7x9yS%t@83Y^JtCdb?GraWA~be1PS`$4u=uOhv{6@9i=mf2ie z#zknnw-sexFf8+t1f~#y(|04a`2MgZyrA0~1a}P)?!~IAICJVG*RL)U6!`;W+glsx z3RM~Y?IRsaqzI+I0yz^3(LiAUTb8`_&G&Q99YP?U9f?_2I>c6wrj9$Q~p;_?g6QRF~t7dD-u-*cRN@>!nv{9_b@ z0f|r48lJLH_-b*V}tgLQOE$_VWsk{;CexE+AOdR4mGr!2eLkBsyZ;?)` zL0**f2RX)A%F2Yv`Y@;08?e6FV|8tV)s;2Y*H-CnZBmsspbQhmV30>NS;m_{?T4sH>2~`J%aUGyK$@ns%r!2& z@Mu6WeS7`4FCiey=wH0R>i_Xi;2-^cS}#3IRd~8XN%{H~Q~!?!yWZl^!wTE82YQPti*hBpK>ce}MnYC*UjGj=mL^`Un5uAN)f?597~t zNvYWAU+3J~a|mg|YvV#8)1GZGHrHhJQkScrxu zkgU=7LG-QlAZyi1F*;cA0#}6z_Gt3%!sjsHDj)2LN)euy6?h{;b3rSd4lwn6dC1nY zn=F6q3Riyn5?3Bs#$=w`-msgS?_QvjXvWiwu~gGa6Vg<2WbPJ@%-wcF73NZDuAO~` z^Ur;XOebg^Z99}g3Wd@dXDX5;WoB`IfCSdIG&S#B$PrK5;c1Vz$x^q z1eMvf^>wZ-UFWa<@H=_%b+_XoDkZycutfo=NX8sZJO#nF%D8ZNg~@wJn5}iABHB93 z+|&fmzI1`7Up&vm_!x=SIOiA+hnzcqiMja&;uc(DtMqoIOnLU5-(GZ-t#V+ov9Hj zOcIn-bo)JCc=1`Bu}qH7aPjQ(y!hqMQw|60-g^_xRufYV!C3@>Pix}T*_1g|-lrJ$ z$OoGYdIK7>H?e2mZjhdSKL=}(A~Y(MQfM6olST-6hph@sEOPQ;K~b0p3)HNyZDNOO zs3b*3=%B1Qt5FNVJBN#O9VImDOIJDj!k1WIxk{F1Btr81mmlTo)r(Ayk0FJ}Rt1BN zE^GZw92RdKWmzybe-k&|`IZ}=>nWt<{EJV~zjl_%*=Y>$!n4nC=HyFMg<*bv9)u12 zI%5NkpeQ2Zpu*V-r`m|t9Ia+XXQCa1iP9uC?7~@8RTWc{V;nrRmydk>3tYK&9cv7$ zYwKLRc!}?Q$Nl`xzxaOAEQoCxW9avXSW}@y5Oz}${ZONKBGMUWDoj;iO+}FxaXzK?|vP{AV(<`_su{}bCtyuC4>He z;h%Q?wHF z`a@PWx`g~0to2wMoB}FisbayN=LLCHQI>|)jiBjr{HFbprWdYr?OGBb_aR5I&S6b- zI&uyZ8-JS{s~kA~0Mql4#u1nIp1EE7xq9gwE0<5wXav#2RwHAqsaaatVEVuvv|8;~ zUB2_DUP2(W#tFgZM?OsTzy2edANxI2VJL^1;ao=JCz{Otkfc3nVQ3Kvh%636D~Y+L z$e)u8KP4G_$T0Y=lKj(_^lpKkbznSri%(}Lm?6FT9}x}D+An8hkM$63KuNqcR8JZx zo9Mezge+j`vxw#{3Z_YiFOcp@SUn|aUa%-Lz%MW3-u!k%yZx<{yO>vwW9~fT?FpvF z+idnK662A=pj|@cESM9ntQb1l?( zf@*4XLnBj#)DEpcYC-A*HkE-(hr`N%T+mt~wZOSZy>mfZ*UKPq;vINnW0#Il*uW0> zci=?%$VVSd9trUHp!gn(?Pwtpgx$ml-X{?lAGmo@B?xQ4+n~~It;d!Yn_H@Wh3Og0 zTAyk)$FAg<2&<(RZ z+nND8-fB3G_n>sb@})D(@4t!hsrdk>tiM>(6h`j^<*?v8-}453`1{_c(WnNKP zPnM=M8VTM>#>bod?Vor*&z!o%izm;pXK?|o70XMj^anlu+5hXWaN_0z47YkCjw#fy zgMZn7I?1?n;UrsY*O5BKm}>MQ)vuKxB1XP-HmN`RCB(~OM+g{JIae;PvU|VAXP)Ji zW%~UA*REZpDl1l3t{}W8Yc$FGTR1bI-3c7b?#3n?tJj&F7{^m$iXl}oq|AGi!yYc3 zWols&l}I)>wh*R-R59#_Mo**Bq}4XG#yg-Sm8lqPb{Px?6vZ&WQ3VvG!P+*hcAN3} z{jB#_DFjru+{-@qYg5kG_NPiFWvI58bT+Ro*2_6S_k{1P|+Gv!Xpd25AzY=-nQJUXP*( zQ!OQ+sw_oOFf%(H8h=vow|@Nn%+F2pAAaNGEMH$^_u?#n>#zT1{^Iw)gJL*{0-E)8 z59b&nO26m?a9p`~j+wNgku`9}QhCA9IT|{k*m4Fak+M~E>27WzyyoiV3rL|6(y?-V zg+nU+dS2dd@QS$vew*)9Z^JS)QP02dB%R3_#;4}Cp|^q^@55d&==XWs>+j^3|Ls5G zpZ?4*^1_SfNz;VC`4`{EU;D9lGBFV>*@lJT-02JCTboSo+dJa@3-9ozB1<(#kL~B- z)h#~riHCVtXN<|k{kSqG8J{H^n?dS?s<%ne-9X~_?|=Nen46v9-~ZZ2S-QT);;tF~ z*5CL^e&UDTMVSu+H@*Jt`0)u&Klvfji8(-EjiamripDxeVhvW6s3ZxV&N>Ym5>f|< zyOhYZO?zCD=!AA7{@)@$@ar_Uwy>3Cm}+=ui`gGhj300?1lJST zp2l8>>LOI99rj{{U#hTOi!5!Rh?O4EO7W((jV2QcQ}huRewn1R#rpH(h)?yxw7oER zt+APes$}@98?ZG__Ls*I?Jbha|B*bqhoYLI*&2|(H>LZuX39FmQ;*?)_qX6L{WY+| zZ}2PnCtt5zVeUPhY=W^?o1)kvl{yGPIDr!uyhSFGU3c!~*v)fXdHpq3KX8V@a~t?U zg}XGs00rP%8Znk4CQ{^d138%@S}A%gL5(LQodnfMNXHV=afM0+x*Sb~DPtt{3!s=`zC zEM>RE_ABy@3eznqHwtX8!fce-)f~H;RFU&iY?M2+A_&>@$yX%L5ORHd;aK z>MMRztqy8zg~su}{m*}u@$n8H_~56xcJ(T)R+At5?ziywe)7ARn(lia~(uHJeR3vk!Na`b>rX()1y5aTqnl+qaPy6qtU`k(w2 z{?C8++dTWy1xjPszjuMZ@smHvU-*Hyk#|FP8nK=5)NXviHOZ4C85=8Cxp?yFplBOk z7+1e$Y=2yfc)eOv9;p&^(xR{~q7DQq6&32RHC+=YR@(O28KTof_!5z2XO{d+UstT%dKvnc9ji$M4V~H}+~YJLFZtnKP$BNU}7;OF^0ET)lRct*sU-D=X|&E`i1RoxsEKKevUK{4p@=KF5uj-UN0&YZnWsulYe zr>TsI&}GF|w@<&jNvb@x zX)@Vqk$B14V91sA9&^n$3)2&9t@miJ_Q-ujRaw$F-Cth1L}e|Al&m>+gPl`fdkLvX zvUb#_sT~*Gs5tT7qqHU;c6sqjpXKIz-^lpX9M+c9jwFb$j-5B%dz@eU*?$mXM}0-? z2+7*o8ol*Z7WeF9_SoHIGrN(_;rd%)0yXGz^}$Y2Z99udA;^-1b1ytj zS^OADlDrH>VXKn;M{Z;9u?M*J;-~4fn)C++{i0-kvdM*KKgE&TUrUmv-%69yZ`hJa zLS+oS-+hSc-~C@?Pkjj~B!x;S4`(#KyT#O<0<~u8en?=ic+5qEy<~AK20yT1EkZg( zLO?4wqI;H#o0tntrEvdCl<$)0HHtx--ftLM{Tx4$vN5%b_R2Debyy{!;TSx$i5rg7 z{Oem(YQ~EtEtgB8scU zR$Zi|IOBup908sztP8&3#)pH)0>)EShGHwcx!mFli|rfAjf!fkq}r&cHVW*}V0#8~ z1BDw2h{<>{ln9BGmI1=A+9~_qy_Y-wyWDZ$KppzV`Nw(`6w9(tDHuV=87k z8UOqr{T2S)_ddv}Qy1AaJHf3t?G9h}ox9sOlqpIjHx$j`Pr5uF zp%h88Ls?Y;J>UXtw9!$#cVXZ~oTDSzcb_`@iq)>^-y(R}B%~ z@#N#r@sW={%xfOFjn}{au3%jx6wc-p`H)VhO>1fw-QgxlwMCf+u_Y}vMG;`9S1w*; z?fMEcv-22}Q}l~q$48iKC>8j@)><~VhIIQwu3qhOU{8zM=iGTmWgLyx_>Hug{E;i` zOyCg|Wlox;K^#d4lulV*US?S2RHb2Mb%V=SuhY*9)+Ln11cSU{SUS={kF(D`&eT+k zshQ(=0$f+beXIs)c?82jPD2asI-F4u?=4hAhZJz(+*N+-w?4+g!VK?!-$&`E-Imc@k$ z4(*?#@}6OTfK&-8Cd0M!KN7XqL^K7Py&;>u0ab1o z8iT{J?AA%skmw5^es5J-%3?rca+0(?4zGrN$a}K(1eJ*pUhe`$Zim`&ZGYC=T;=&k zKEaW@UdznlfgmL5-AHtA6gz%L?A#n;Cy%kCgrqmjDK?hbzk7!H<9E`S*&D182b*}4 zQ}tFj{rq#BI(3l;-u@2mc;nltgvL3KYL0XLg-5vf#An!d--9HL4k~R@>V$mb8cCY4 zXZJJ*56si=4!QX3OB914wkpY54R#+rM%rv*jRogOk_NraHBLSKFss)tqO`_X8|Z&E zj6Lqf&U?zrFxeOjKFP0!`1n&S?>%XfK{iI3HptS1_3M51-SPnK$yv5mu12>P8L0(< zni<%W4rvThDYO(+N~6mPrGvM)suDz!pml~+DMBiA)&>Lz_bt+DWPIdvPw~Q;E3{h~ z?N)}4RKc2VR~buQR_vOY94W=SXs6_IvIYaM8SZM)xho|*UDExXit38RcP$iw&LxHI2BbCAJaRBaE#TIxaJ`CP z#0CSxO=^LXpd2}#2=--)Ni9%O8CR>wJ=cNfg%+R#KOG@)3Pw3p6vmL&i3;CS!{2n0 za{bCVoO2wx^R=|bCa|W$$v|g-9sL&>l(|KjbJx*D?zm|ewh97W9zjz`jB^Z&f@(M* z%QVIYE>>Au9{%FvG#U-=f8e%2TOh<|ccaG_AAXA2*-36baR|J}xPZ18bbE|VjFYAb z%}isQWpbj)+h2c6m=Xvmx?8b`lc>l)uHo0ggIthg8EaQBbMomgFz9Wd;}oJ^FN6F0 z(1d7aEs~`9b-HTbWXpqAnzTJJDm?4rv(?ae>A1YK#pGBE(E`v287&NbKusiR#$eFH zR3U*8K0*ndp)7jXqD$G|V(7U;_)aIC`mMXBLXc!BRW;!Bm%oUjCF}(-xD*T`a)c}`o@%-bD^6WFGxaW

S)6S?hDAd-yLD<^56Kg;~l6G)wsj?ZC>A^GMe%~p$zjXoQfE}w+O;2w*rTkz)%jNi1iur*bX4l)_LGSiExFi+3fAd$! zoS@JNV%$-FZVU1;ntv}vOqZ|)0RT)r=%`n`%YtI!|%Am+W_1xLR%rsl8ssknRM zC}&rmB#{>H1HVLB8#vlt1n#yF6oo}>6g1ljhi+S7|If^E^B1r2+;5)b(x)y_TpyC+ zX~?>os(IdF1qr60%wEPSZ84E7q>A}e(u|@s$_tbSS%E?z9S8!SQn=c8Gftuj5VGw- zr9(s*pa-m!IPZh6v6Sr6l2zfjTzQrXOYR*hpa~WbVLBdzS4tE?>sH}0#!(U`nqNsTAU2jAxO@Fh?Z++mSeBzT2vwQaffBnDz z3+&&&fGG_=@l?YhRaN3>prj<#D)6x^NN*4_AUUKE+sQH^ae?5c?TqE>*_Sx`+~btR zF!1-Rd0E0Uf=&`%BV%2dek89}h@eL)&Di8Fj1A2_FTom*&Y;s!bbG-%%9IL~g>J5o zR2RI*iEZd90&HpU&ePl6WTPn9Sl__P7Gt}1(Qag9%`C!E1u98Ml9a63B5SqSJwHRL z6r1atY;5$H-?fXSYb!|L<|F%Pj*XGF+N6yZ-VX!6*MpFfMyr8J8w{&mtX?}svoU0P zrlcr>sE_kL>LP^6oUHk+F)0I&wVu*gs>r_&4*s(NzaoWmg*o7(lNNsyDY1v0}_ z{ZLUUAE-hwLK0Zx;@%OIgmYtf>f#FE$QlZPj~>vLOD{c5Rdm^V~i$*KAiV7 zS|P@q^(gCbE)VV_qvke9WE|j&QKsZY*#D$T5K=JcZgS=93tTz#0!3b;lN5XrTuQa# z%w~`C-F|Soz*EJ2%LoucW0ggi3NIyyU;$WG6>XJ(c$KInd(ZgPu7G+m4zI%CrbaRe z=Wx;?TtI^_WU$Zd?z%m>?F=dh*>TFKId%dD+!(3F}JO2V#&%7A? z?UfFb(%K0pp54~h6g3eAzZ{*Zg;1EkS~i|P#d5|lv-<#hUh_V#Jo_-mj@-kcyIzMi z71mZk9C-u{k3X|xs3Au7!$jvAiBvL7&6OdoDiTwXCQW1-A?rH$pHGgD@x}*kAxRW3 zp1n$5RzwgZN{f-$+-7e;S(SlmXY2E2yCG%03qz(D4BM0QIBpT(Y{lx*rQnlJ^|IH% zJ4>rG&dv9}l~0|1oc>@)r`2FsRE&=`Sh;?Zjn!qQW@f)VHQ%v>lz~fr=_37K|5e_zizdp`v)F< zAxCM);J(+<_|ET#;gGS(Da8NsPq@~|nEy{dPqQj1k_6H5l#g%1&rHz#TN!dsiQDpI z4M+2ximgWyriUJX>IMA&{h#6Q{?sUs`(|FRcwxS0{3v7TENj(el+;-32*7x?GK2Q^CTgL0&C zj*j>2^NvmHIG>j+^-X}ON6wzC3qeBERxUt_T2oDKeb+(m`u-E#{NR4tQwe!DXRux| z%qz;uQdEwjbX1k2szRbDghzUXR6%K8%LcofC&*NT%6;>9hW=}ovzA7C5}l4w6gzow(&wcUZ?78U{77rf}DzDbyL@eY->NLSkKt}BV@1jPT|EEHOPo4&j@wThq9`lYH+vlG z9HATzpoFR{vBqGXM+%3IlW|eo6A6K@iSUtBA7V0iD)%yUtrV2^0)UntWRMugP!zXS;k?>fo zbWziByO_dzj4>32<)zb?SzYg8P@K5yI4VtOwHh=V4Uiy{6of)13C_cb+i&K9@3@bb zo_>x!2lq2RHOU|^*u8Hzd-v}~Si^Tb_(pc^UZm{zf(4gSs6?T)rqgZ)w1sI?Wb-`t z+|x{stF{U zDnY80(z?(oi;WOl+h|%#WevvKFnRKjSB61ZG2O}VUXJV$rBq0*S-En7?&@_G4jf@_ z?_t_wRRYda4*INIyTH}6 zFEQBK04Y#X<9!htQV~+-C9Dl|Ql)66nyRvhnsg>W8XsSaAbw_@qby6(W+xPu-{eWs zpT+VXW_BGyB^^qWM=F6tI)$_zA$=65b+}kL1;uvF%GC>WSC^STaFqFdH&G4;tX(>f zcb3ldEHjJykXj)`h{dJTFEH#4m_2%TD9Q!cVGmyn@kN)DPdvsGk37Zw559?8AAB!9 zY2&IQ#6nfzhFc8Rmgugn((eyRu3u-cx=NB|sFpxx4U&m@?CKSIE6d37F?5=NwRl@1 z(-haOIQz_(=y%sC2b)M8ROqd>BlT_Pg5{u%obq5R8g0Cg%j17$#7nR+O-&SM~ zwLzS~hV~QdE0;&E1v|Hn`aC;&>jQjg_5j_@b4+yFhG_g?sliIo%H{OLwwhI$&<1BN^F_~(vr4{G5icmC$7X^c-0%Rgt zyk(Xn@4SgSzWW#l@7qJxQVe=SwwC+kMMYj1%F2G~9_usO-v$V#iXmq9-uAReri}VujBu*013l6-*+K}WZ0u<94!-bcgW^?5l z`;Xtj#OxwUg#;RBM+s`!+}Y8j7u(Y$BtmGU(ny`qXt%iiuG?5TcY&&`(5)sQvECz< zVxrTgnQ9gm=DF#_QB;zmstREoLg-LOZ zya;iZ2zb}`zMDHAxRYj_ZsvKxo&)>%p&$Ptgb?i7y?`k~A>@TX>x4$TiB^gv7@SOIQ!>W`+#zkjQZS1@wi28n+{AYaILtvMr>D1!s6GijuKC$LUPW z>;M?v*h^qAy%)PVW46t_Fr9swH?x+Ic9o}1%PBEtB(y8ZI zxqOcC={d${cQHA$K-O$yjfqYPBBq~VDJjX?ZQLNoMVgE$N?!Zs*KqKrgMedfdWt+R zXpMLH?jQb62K@nxdv^zcNbm462!S;_Z4#wpGn|-sh32-zha#vfSX;Wp=IRn#tIG_# zn<0jhBtFK-lP4V7LBLRusvt~hoyQtW1tUmw;6wY6#1jh8(in839Ym{M122ojowL2i5Dir9(R$P4P%Pd_uN4wD`ZB5Xa+D*5+Mc#jr znf-@pwwkP6IZto1&-9_&XiP7L;w2y8%OS$%oO|vmo_yp9PTYMrC*Jr@yl&%76*!+& zfgNs9ZLTobxK6LT#ic9jY;0BRJ931vat4()K&Qy8MRQ_?nS}+eUbx77e~Zj}D2HJp z1uUIEh4G$trxBt0(H6@ERGN?fwzjs*+TL@L)-+Rd`$oU(+v`uZtf{u`6P-nAMUrNi zUOjb|Bilw}+=#ML=eIym?T@*K6%L6&MO2kBp@2?P6VA;jG6;f+u@)ze>?KV!7q6|6 z=j90PmncP|6_v4wXyfV$g?PB`ad;4sUUdoz9Dk zp28}&KHzAs7Wk~9c<}9XUiU_*ohblYmb98p_WbStkt;H8)6+K60@8;C%lPqtX zMXLlGZ&u|)g5&UE%30MgEs0WLI#rfKhP{$zE2T5n=JkK$eqQ^R?qTKmRZf58H0S@| zEZ3h~A@5a8dN`ytsg=kq85Q7}(lnGN(~^eLq)L%WiH`O{N{DSIEm2GI#3e+Wn2Dg$ z&UOK4eDGW^t)p~?(mHZu$(^CH7GW%VQ$dhA_fZbKW-sFl z9h|oe2Lo2F<>X~WQCf=9kr$S-4E)8)I-C=cx1(c87kK4fNK)0}#LOE>Wdq~OuXQoL zrI+`PR(pb}#lu`b`xw?a)JQnQ#^lB!g~L+6P9VIEzN(V$`U)>R_8G=!=9%Ann9kHJ zY1Tw(iLFe8#uL=esbeB=`m$ydV=BCm2&FKU;m-T+z#GH4Q)f7M^e~;taeDnBhmRcQ zE$@6I-HlD|xc_eU?AaBB*<^yJKxHXO7Q4>%M(DwbV8K_b@G2Rgf5Yw;8_QQ%zI={B zcOCB>Lg|*N5e7g%ShOs(_aD2-*17ZjD_*v+>xH@`qt6m;56vMdey z5mM0}A0r)qzKPLOA@b;D(-JW;Iu>~u_2KMh2BKVkuU9FFyP36 z+ejO2z7<4M{w$VM8kuBRXOZ5;rc6{bj@<8nl5&)#34&hUp@fR?P&Z0xM#5g!AfhNz znGadMe2(i^&ZCo*y+?0j*S=%89q`J!c9ufYYPZ9^Ue)NA0%a`=yXUdilILZJ8|xUK z7-M>N8dp_RW%zy0L!;BC(M&^QoPbpGJ|-sugw9x7zQWn(9-|oa15za5S_3Vj_8#_i z6BE4f@neT4h&*`$wJY;M!$nz%QDJ|RuFkCkRU&PUjiz@u{PLcx*=F(Z-CTL`3v@aY zNE}jyeOtx}a+oj*5Ie-)0EDEdEW!^-$7h(_ca+B5KFaPot1mptm9uAPPfRgf-(X_T zO*AHELQ|;7am5g6ORk)Ho<~0S7{~6sgFD~xend8gHDzc_n+lirskYV_tY2euWtpp2 zR=Ip_ow3e<^`$FJ?cPn&Xn<59QBPY;FYe{ixr$ctY+Jt?YeydB##vHlNt6O11De!Br`6)Xo_W$lv$Ec0kcT|9)ktVI zg0_GWB0||CP0)qLrXB5-HZ;F$LBN`d7tfzE?*(UyOnnvD#(Phir5reVC#N3$J@TTU zs47b9Xr_wm*G|&iTxDuzE;gfIeM=-MUI?~6^>OsA zsxD5<+k*9vXw;)Uq{_+n9wPn8zkzDCp~!bUaDg+1Ol$W2rN7FRnHkD|`ad(je3i1< zhB1j<>M{IjN8@j{(61|)K4|H_D`D`<741Zle(DqCU;G^EO>c!f|EkyKn`OP?g}HTx zv22FhcfEnn4VSQG6>$#&iN<0O-h@e?4L6~bQL)rIw3aw4sH%c|VCb(6=!`YkbH_Y4 z-M^3gZ+-_?o?PPW=g+h9@J0ODb=5#}Zmv)6xmeG$GZRBvB+vjS6$& zgQc1X8OQb$5Op_^Q711H<^d5<8Anwa^2(6AioWy6Ez9O$fc0UsNhTBa+&;_xyLWT+ zb%#0l`aMkUnZj#FKFrzL*d#AX^0J~djbmJa19So2o+)XL99m!g;a_| zllQaGJaR)8&4EykP_!D>r0o} zTv?*gYSA8_Vs6hNCT4fxjN5L)dNDc-gb*}ZO^kJsJ^`)@iSK=HxR=`>xDywXWZ^+K z65jaEHzB1)YeC*0go4?7giy4`$H*Efa_4k@2XaWrAQE)-!b_|#U1reTpd1cEQe5+f z-OB}3oOfYTZtG$^@D4-r<0y)PY;2b4g@dn}BI|1{?<|eh7`qPK$+eS@VoWHSv{ej- z6-r7PnWB+tvNQ=vC6NzTS+Eh7SDN4nYb{&70iDh`Gqdxd!Q(tS(NP5*5J7Y<%fM7N zDs)3tl$1rVM5?`_ah@{IBY&CEd8X6w`&1MQ6GEU9jY=eWZb_tKVb=mnS1;1*70`yt zggvw=HHj3cM50x&vVqWubk5Vv61I8;gWQlMIy4;05|OmocjTT}{NI@S%FC7qB~`Qw zitZR9a_u9n#YdV*Sy@VBM}k>O`VohFr@)PK9%q9?f|MR7RpdxQF&uLCxhH70C+Un& zNBgMAJ&#$Zl9DV_L2i4~TTz`UoT)hz!*|mjoBB44{ZF-mjq2F+0!uGc zp`mEQlw3-URsp7-=OsmilGhD4Z^8~HWuSOE84y>c_xQYwxrM_f8YR_epA$mRYG%w# zjguytUO&e;OC!}Z(gfoin1GV-p3$|pb;Hwc4;8H6DG;~~Wc1ejk+z-I7fKGbQ zJ~Ruhu>s+mW)!pYnB9Bu`wt>-y`AL9Q6}~uqPc4qy4?;<8XM>bL9jS-7zpQKz152d zMRpEoLjRHg;Xoe0CV!}+Srxd3!u`Mx)426EL{)yxqrn-2lAhh)`8`}sQkMVsf6T&# zvlLkq-oyI||HDa|tmR+mw~{;RmV?nSmbV7@tH;Ol}Tv##RE z%spJ`zQmc8CrPUWE)s(bP%rLw65Mu8b$8YT8p~+#J#wU%+q`}e;hRW_$IZ3QOZya-8MGSd$MMOG)vG@ zK@AM`K4>ra;Qi^X=lqLb;>x*~A|zCY?zIT7!A^^v(c2F0-l+TRx4%~8In%rMGC8{& zXJ5VIC$$jU;XB^IGoSkn@;nc4(aMsSmNZGovV<(vq*+jyl|o=@M1_?U1cmOrGz{_* z>p==fZ*!f_#B`v;sA#d~B8S+A_fiIV6z6u_siJ23*7t9020*aLQXxSSE(nh~6{ZbB z$f)Wqu-4MsTq8>*y?%j^(9DwHM=J!W(j-cfW(i73tak`yabA&S30g^pxuMevaP~pJ z%gmnJSv+)WEC_GhedT3K1{9JIk|fdLT!N@w5t_18vA3L})IL?z;fHsqa4{ z2(%jy!qu?SFtsZ4oRupVXm+N;JzT3)`)v_E;iCtvmw3BFxA>2Un>yA4Y|~?n$4iS4 zF3_K1!%|4a#>zE%TkAnoGNNwk>;0AcjCb1&YVd(;?p@@^*GP@J2oQ+iPKs8c2_S^R z`(bdlc(qjKgoe)UL$@)r`xqOSzKqftO4P9?f&f>omh=^?C@p1Kp_D`lg)N7OVHccb zQ7|?&N7|l3C=D(Y+`>C-zQt2t_#$2??s?-INXBPy#zbzh#aAV6*rV)iQ1&;u zc=j?&%bUFJt#9P`{ojGmDZOiFS-WzMwac2>{hFlJB+SuZVecN!JpU3`PM>7)!2X~h zBqfQIn5tr!3zSR)wZ_-yla13-w_TVSOOfZK%}Ea3_PR&~c{RkwE3<-TO2W*p{XA!( zC`*jZFh&RK)>M(EO|mp)ILz7X_E_8KVVn!+MpRZ;GUylih#WM4Dj)Rwh&G@$U_k5Fd;(HBriquj;4TpVun??2{wJ7<_%+|St5F7lO= zR8`oglca&N12$GJBWg(H^QaK{_957a#8E!a2IF zHg0N$a{mF`%{PGw<4R=PB^gm$MvV{enG zL&r$I>$bovA9&L17PnDQ_ItREF811h;@SYeSwgRZ!s1GUuY3qDAB9*vcp3N;LPx zcgFd`u%`RMZv`swn`af|bYF=bxb2nWWJk$J#2= zuVR8sNSCxykc3WeO@a#Bksoy&>kZ!%_?8eGha$kE>jN)5u5GBSuc7x+vvlPwm(IKp z{D0-kEp`|kTzFC=T87dRm?F0AYL;FH@E5K6o<|3pcTP z_A#8Ti;JoC6)<-dcuzs6VV|HB$tZqAX}RKT^J}Uwb8M zEdX#elq;SGUJxO@j1I8+de;*S95K!;B9Q+u#$uy?1W|CM$a8cEHimgcGYtiIssns6 z*jz=FkW&Z+KGn3E0cuzjIb|iVrXtTv7LVM==6mEywv5!SafO@(e1u@hL$w6jZq`Ltn+vg_CD)^wt%c{7^OhSP!Jhwqqa)4|BJtIXXDRWJKBSMU098#UH}du z)M)A@q#)6u@sp-;-*b*cYZ|Ri_*>t6dC@DfoHb0&F0gpyUap>coTf3O7!ZQd*@dzY zp}}>7W;iSm)QuvGD+`?LGu&EZedRif`w!9>n+BZ%0_Q4l2IVTA`O;%txOkN}zU%E| zQwwUs8fWLHxpw(7^NaH+k>I5wNrHn!p68^AAkh-^W|&u;zPLnX4DCk7Si4EP zm7;Yx3$+e5z}`dQgD1Im8l~zSg*bT+_dV2;bO0IlQ6WZqq$& ze72`meOmsDGnS&9X&>J!haq(2!1Iu$>O>NB#oYzWw-o_{Tmq?>(X{*!8Bju=LOW zH5dQ!PqFx=N0F@-wk>h}A^o3mj14+Wyw|h#*^0&~iy!omzw~qX`(J~YnT2mch5oOb z@``ho@oa|I?E4-*ci~s*7i*wWoDb7S<7E^DkytObg}jJ71Sc?2b<{=WTCY4xNsI+k zdGf-LtoKP0g-%u2Y|@0rY(lb-Kstp`vq&fKRv?^2I#75LJj%=10Elv2KFnR6a3Qdw zFQb(nBLrRsu`R2>3Qu7?U2DK?Q1uLzGgL)2I*6PPMR;KhrL~kU@Kn7AV?4%&B+9rj zC6_`XQKPAckO5w)goHRbSBd8C+4r!oa|_me^99(S`SPA5%Q$k!n>h3M@6&9XXzvk3 zMXYdv%V`}58wC7ZEPA~QFfA3Vqeio)NPaBx0bA?KWbJXRtu4mtsaH&tVn z=yg@jPBz5$3@gHfB2+ohHY`>MWb7zA5%rR#Wn<-P=rpU?l_WfV$IcG28$nX*DTJ%x zf%SV6I?+X0AkzsB-}W7&qT$uNymw@cHplOMCm(t!BD?O-4oi53XysY*j5)$|9RJg+Fr z9NC)T$X#y=Q<7Ivyf|<1)}WM(RD`Hx?7^r2)0VN2+QwIgX|a`V2dXMMI~WTpqISF= zp|HZVIuyS3^|O($?rhk{+RY3XCsEG&(fwavj+(a~9*U0^Tw&TR1$ZF?5KIcR3M$Ka zQBj%-P~as(1^9HZtqQPw7dx6ZzJK||JP0>AYL2LnR;AHGjsSa=Qlh0G)qxU{rYZ_Q z8N8?;C$EC+IIJ3}bM&sa@YH91lYB5lwiQy^z`+!;nLJV`2=V2tBQHxjStF=h7bQ{; zkixTa`2va7OwP_DR1)Yg#z0k~Ff5-x#WPQQnVU`=V|M=`q|QRD7z55=iUH-;21S3B z^CwTTw7kLV9()UXZ@(9lw8PnB3T&C`k&}elq)XW6yqFjI@i z*tqm1CML#7Q;jg;41v%r(OT1NG&s0-fljBz#VgmjzP8C$KWD7nU~;@gGfPRG2JKOa zMtT`^kGw(aFgS9xqPnkLWY~5(^5L2b5%S!iIk0nYu_F)rTJ+7=4baeG#5+&c979Db z+dpb`CguXV%({s95;U@u-o|yRsw7J@Zsg5JHX3+Sk$>isZ2hbM6F%`VRFX27n4+9t z!0g(MKXQ!Z*4t^_bcET1he;wQi=#s zRncZFz&sNft;b@KR8KVn^fbZ}jT;>*&eV{bup!k2nu``oCMG*Ub<|TDN8wB?zQdcf zBWea7(DCs}5jv4d1{ixt-c?Ye6bVWTZk~FO!{ZNNedw~kDwg-`J9-bz>3s|bD@dgg zn8?2u7-5krbmhDUr3ebeak}I^IO$`;9pLIUU7@NB&f38B6h3&)Iu}qJF)0qy@Rzq+ z1w_^1x)9%Pg*d&4X=8wj$4#hd7Rn9k6kniG%Jr&Pn~ zsycPfK6|fsz0dnRerX(D2YQ3Mt*+i{Z%n0)q2J5ddgx_L@7RYmSGTI-o5kpYo9=!C zU-|5ZSv~V5oE#-fQnFe?l7#rW4gY?y`4Q$^jI;Fef;=~2Ai)>dp7n0T>C+eZlP`RQ zey?D3sL9B1lV%uaNR!mhi7P+*Jx~f+zgRWeP!yUx&sppBSy}DU?sVBQJ z4-tQUA(T*U7xj82{X!2qt^Qo&Hy=>pJHm`{nkLk1eq5rTm-Kr*Zn*C|x$gQ~DX*ag zvJirPuS0Kbi8RYdl4^dkdc9WBLt%z4EI2CjNsT}!)dJIZ1gjXU%0yBGmvjk!1jhv< z$FN96K$0q!mfHNzhd#~4#TAB|b;d_pG@5l9S>}}wi9#j**r|#jV{JHYv^NwiG`(Jr zm3EiawJwc%#(nqR#;%=P){AWG5Hj&f4I7;3jUDtk{P7ryFzbu;s?$|Jl4y!dnisxEmUp45W&+hAQ;owW&%%h+BucWnlI3B8F$pl4& zLOO?&60QAa*;unhB7MhPmpOTNm5ZlOvwhEX)LSF|7_cSQXr$HTYfF6bk3UORZ*t(K z!>Ft^7;CUrWBXn5_6qsx9J41+@YJz0yyTUyV%M#AQYH<5Y?L|l*D(DKW!b0b7w9ra z7X{L2Y?)K`yVMdzUTDsrJ;&Z=9cM};jzkGox|({a5y2D3ZyxJ`nV1eEA?Fx*k#EFM!x7TQ7DM}~`5!6{;JAn+>f{C#qvP3b|tZ{yB zndQ|E{XA!UbeN$=4co}52@pvd#_xjRWiWvotc3?-FJV)AgRhOP3iGh(=PZLw>!**- ztjpN_xd+Ckx09qkLE_nH4UeriFTC)TEKTUGEqgOgQNL=>J3>mjUwxE|AN+smf8wLm z>ox5A{u1ooL$Y@-tv&l_Y}-a_Vv;mTf+XF~^j96^Z|R}&-3D)z?Bx2jq*^D{9Sfg= z^x+<9T2O4=M)re$h1&Qy?)h#2IEU-?n7-i#l3(~2oc;NKz}Am`hy+L3keIw6{|~E- zzIlv=>zgzlZzF{v`M_^rUi$!Y+YY$GMmsNiR*7|*ox?ZbaD3t12Qj)&q7s}fu~;%^ zyi26=yYR*u%Fu1L_?<6bpyS(;7T-m1fHM%}dP-U^LzNaK{mh-gfc1+404Ym+!7ES# zlnAje!SF&Vb6J)+C&5{?upmP$QV3+PihJL^3iGGI{dwTJ9x}_T z*-owf=7KR^O5H0Rx7_zOva}W@f&u3&qZ8BI^T7M~z`yz&Ns==@GDNFcqgG2vmGZA= z2%|IA&bya3_i|0UlY5!4U+HF@catbS2a8q1dPVc!4mev<2UZbwLeDs+HUDb83@B`A$yt(!Ae zG%(ir*MqefBan$2ELKvbsMTwjM4LnQ$>Wv0- zM^E$jfALqDTj`J~Nj)4lwKN$Rm`Yg{zUwmf>RgbQ+P~!`c~R02V>Q3}PyQwc5A9)X zb#*rkMKj&zF4fS2|>b&DO2dfP~W4tn_+BmA-oD1i`kai+im-JUrqu{+4T8%nI zZy9Ygsm!=mHkGTn-&efpyLt3;AEDcABjpGJ?Kg<4`2*#ZeAYT|GFTY0H1WB>N+FzO z@!VOoE*YJiMyS+Z8+7S6NUY)bkw3|i;G9w^a;n06-Jv}waEu+q5&O@LZ$1gh^!7c^*)0c1(+m^Vc`|r3sU*R6 zdf1Kg&{r8kN>+|O$%Q}o5NdRs(VzZ@G!9%(ZET#R(eMVc#$t7e(;9P0GQIt#zY}UzfF|O8AqZ z^aZz%Zd0MaR9>=<|2#oq1*BQV-r;X!PwV9fC$QI0Q4apGOS6=_?tceg{nOv0y}HQA z=r}sa*?rgCO9Iup&LVVhELMQ1V&_~n>*;$vLZv~j9;D|=(dqR0gO7cdv*+d+A89f& zGDM?Ur&+6c6SvT{k}4T=SsgCSeft@2oon)-Je%UZvYFx$UL{+41ZBjaXbP|0qVy(|y+V^H8M^2`Mz4}=Ip@gpk~h8O zRlMqd{~@3J%)>rTQ5$OAK84s|^W+5{RH84r;Wh(w-O~kE?|$d&xc#o1IeYwU*p&3w z6&d2N2*p}A_tA@m_6vKz(d2g#1j=_y1*EB@*+{8pij}tFm2dt5rnl|7=8AFzOA$7M!{+P8(UfW~SX+zGAVQID!lKhy3r6CEK_Ww89tzh%Y6Pex^RH*;6=B_O zpW9!0GvD=&*Ya_Y}+h0l1 z*MkT^Z4DxLS!iv-CX*c$)a#wAFoI*&yXK_{qcU2fwWX0IgT=fr&DB-u*kJQ6uI!=nHFR%XN0UB@VvqZ5+D&71!Q5=MrPIW@u!T``+@s{MIi$#^UlSwKNIq zA%PHOxZWgQ)qqa|sMl*ujQO!Xtqt=_ZRW!H&x_ze)xIPB+ENHC<=V&RVPlW(%@bb7?vBuDt*}`@2 z`5v;-QDovb?XVV#0+;8PMZ8^IQ^FuaIK_u+o-s5qsG?7K>m8);d^ajlxcpnYXQtn0 zY;p?uQ$NSKTAdyL?LSc~O7b+r7{l0n87OT4HGH4hpVWPa+~91oE+Zug(s2`Z;oRWAFpVDOgTqBm z65>ek4(#C`RPws2yCsCfNFUW!$rY=)PUk9@Tkj%isuPRz3lFT9wT9!*OX)-LUMm&wc!|1qhxgrbiG*s#TnLZ}LOANRVRkp~V_WS`FAKZIit-9wy8+#vR~7%iKzdRDRbsks>UNeTPy2)q$W?>N`gvQp5pSmQgIO z@U#Eo*ExP+k(!b;>lw9LO1+kmrM`&s5lfY^lgCsNtk50E%hJc<^-DVa90R=b_4n|K zm*48W1w#Chvz8>Sc{8R#$9&!VZGEw9H^@vYXHzd-FSU>I>-IVr+2WoD-b=03LO)-b z&{d8#hDNK!ov(a5vqvAHmRN6OGdQQXV6P^EI>wu>X|03XtD%;uFvsS*2sX(3gmrYg zJ$4?rj(`4(e~b5g&)?^ul z?&0tMGqQCDB-ml-@mDml|CfOwA#c472clYg1Cmj~z*(s3nHo2X5t- zyC2}1s+I-_mM)&b=^jE1`!Cr_#o%yZJ?BElNJO)RbNUXp6xHUS z7;G3=W0>vsIN9lOEl_+1lD zMNU5a`%F$w2X$9?L*bmnA?fxDZ=ppweztt_+JZnJxG6jKxkwT4S;2&sJLu*$gp z&bv7z1gbTR5DDOLPGgG_llL+GHYblg#hLSqyz%YdL2YDmFazw0p3gup`sAGzdTYz9 zEcdAmO(CVj=p0iPSY2R^##+r#tB%h6`7x0ybo+HEz!UFvVEm?!Hol8qmWI{#GOek7 zy!!2bm0F`2XUi`Ey2v?n>)pKUf%oyb-}!gcYBi>mH)r#HIMq(DLnad81WBT3)N4$P z4N+=MztAkLuKCf*4PEnEidS)jh^4APuNqZu!`BE!c6C0rAv4tK#t zXtwRYnXS9_Jxvz>jp(kekR*~UO}yF!5!Ph#IluSCj1Yo!c-UXnox?qc{jRz+$3u2qnnJRk(;0&O1>` zv95@a!Y^`@)Gus}(SF8K2=csS&-HtF+go47zxd_fA~%-2(}zx|oJsj0rP) z1|3}gi=t$CX^C53{oNeC^ZpQ#cI_TBUk@P!))?B0vj|gCtG9g2Sx~-6DR99lyDDU~ zu@u^nYlF4k6T%o92ut1*Dd^)|MHLczVH1h8s`?+H8z43KIY6? zhqf9MI$nN0H$kP9@tA|6V0n3sd)|02|M5Tk921QO$G>_sxEfdL34;hu@zy#LDJitS zuSMy{8q%b?-OrjkDZ>0TKJUCYkd;ii;^VG+_$gZIwzu*b?)ps9#$5IO6kDDZ1R{&`Zwwp70!ybP1*M64U zZ@roGj~_+raxkhRD^pbjWvRopuu2YC-vl(_JX4mMqSO?HrqG67zl*Am^U629lcQh! zBx}p_AZk>LeIY8@s#gRk2QpFgmX=tVJIBP#POhaA`?qiZy>W8ensT3 zPF5SrBF7XxRxY07;fJ4O@4@TYao~E4%n%l=>EZevT#e;q-jE{S!Z%=n7lM}dpQfs?e#Q>(7eh- zB^O^W#I3DHVyg8^P@LiYa=;DZkX`k4S9$5ULDXb5($z0=4&8Ad&DM}#7d;C?2-a5S zd?G}akY%ZtP#c32wGCb{S1E3Ds{`j8B2E09xvM-@!foJvRJ5k|>en&yj&~x;a$QyN z0$_E?(8vhM-}<|ppPXXyU;QGZt1IML7Dh3=e}|J2`9D8^ef8^+ci$Te^9t)qTInP= z&wM*4m#3KPJxXa-{0m+sNX$Ui?wrMvVx2eCu`WoZoE>zXoC~{v&IRXJ0EY|Lrl2@o z*NHlT46+&*=FF|}9d+ZLZscX0@bh<}0|4t%MpYSk2~f`YV%-0O&=n6Z>%rhlN)hJ8 zgRz_N4rL;kB`8AFfN*5B1}(Xdt?7L<t(aCBmdm%rsN@jw6lkCS!RpgDwp z*@d2s1Es=ZK?sBsI4g0Iu+Ro4ePmHhBp?z$XBjqjjL~QZKmC(`na7_x&4)hrc`_l` zKhmO^q~ZBnU%Xpmydj~IBvN@PPdF(VV_59xoap$)$B+K?@8U1K=i6C0GaF`}!koJ{ z2<2zmtQBo8IYwZpfo;<-zZoi5D{u}>< zU;UY1;>4GpB&*d)n{~g@q7^z(IBStYc|*7)#aTn%>0-3y`+w*ieE(1UAXBXtr=L7Q z-p|SNf}$vcw}8Q!DkIix=;nHJB|oPZ4125vr~JHg*iaNgQLEMH&Ryj6(MQ;^|M2EM zIh%lUhR(|TVBzLAbbJ89+S6Z0oS-ZV_8+{JH@y5!y#JT~DQhdUsF7jv+$$>bATv&^ zkGYiAg*j|LkL|3*`#n0!q72tIue{O5a{j54?AX7DU;UMz<5z$F-}A-a`(p%>=1>dp z=MJ>_v_qp!C&3ya&eu5ADyT8Y3dxg>AQLJ@jY4D$Mkmn_-NP=Roz~~(7G&5Vqy$O~s zarALGq{@&oMcO(@g_8{Ikt z$h)g7E_O(24O*?b_eTg_a$l7Db(j-=%SuS^&RrHIonD{P7|K$u`>lkH&VH}M(rS-a zz3WGL$t&NAF5~s-Qew5HH9X8)-ut)s&40VdnR5@J)OJRPTkGQ|P5=oKIY^#J5=E=o zV0zpa=EqK*XMU;e(?JqBPzt80c*bw6G-rcPL)X0e#0@$bgGP$i`Gk!}f9@%@p(t`j zCbo0K?f3anjb|yKgb?()Yb?#4qESz2)M|rqnSNe?8udRTa!HXY!6~)jNf%TVx-^!2 zWQ6Q{e~4^i5|_X5U45%H^(0~Y_x}(VvKspT_w$S|EmGF%gW}w#8OiK<#Bcl>?zYsZK_mV`c?=B)#FzczDpDXEMxD6RP7?xIT7vu7!49R^+6voB*tBvTg;H9s6EAtml z@$vWnQ?_nNu(kTr=aa0L)v4foF2nO!Nj_yLwq(c_*II|C(|4|x=N8zp|2qD|fBZRq z=!gF={`5nC%KniNRF$vMA{H3$k9$%Hj(8 z$WadOyN-YS>%YK<{_}71k^k~x7A~%!Qbn355|LnqMk>FfXx6$IquFzCH}Ck7cX7`H z_tTqO;>2Ue==J*adpZ4nL0OiVvWgt?Z_b9OKpc5lQWU}E-FTU)2_q0v$slF+oy{~= z)axmypM02?zVg|dHJi~$ne-C|Mutq z50+OJY1C8td5Ka2oA~RHloDxWF!l@%{$c!}EJ}n_UL7W?+ZD!GPCRy$tvj~y5A~7#FTN!q3^2{gR1oW4!r&e}Ol?@2$uZ&V2Prx}BaM zyD(;OPN@p>qAbHWP4HA1%yzDuzG-89r?V(oS#8tqS-$HBf1J0!=LdP}$V1`!R*e%? z8(fu&i7-D}x!ViYR^|uBb=MjWM_Kl{GRd}{6ak|9hZO)%K&QmAP^O{$` zg3&G8{dLS5D0`p_Oj%Io9g6NMt4qst)=Fl!&rr)0&K98{_X#G|Yh>e$u(Q61Yj+ED zsmV)$GV8CWes7I-SM!>8{V1=0=MMpuggJ64DT|!xZM%5q5C0s$`LF*jCr=+?&#oPe z4mZgNbrX)nNl+@B2fZA8xYc0$)F`WKT~3`_U_S9lB8gH1<69}^x{TejVcoJ}gVU|+ zW2*V`>U*l|X%&;^)fSpwugl?k-onm3hj7m^AFh&w3&)PII)9d_R)eA825Fk1i-K;q zM>aA-lBC4u)+NN@CC9RIWUq2-1k!;l3wYNL(7Nw_Tyg1Y8ml##lx%;``?xSOL-Dge z$+j~mDe84BzVx$MiumLoU_bjA#4BG5n<4#w23JI34tO!TgW+ro*N?uD#l{|%%7@AI zEK(|8a0@Rx7hd3w?`kHYn`ndEx*Zg?q7um2km-tdQMZGgd%w`KV%_WugwNi?FI0Wm z>_Vrc>aG)_atPmnmy%UWkwI)$SeS(347`+G1erQv-Z`|&sd7FYAl)!6bps>fHfnMN zi^f~YMKKXHaFdw288zx=cOtDpE+Jo4esQcE+kX5Gt|jqyK2DZi+aGDI0A-qb=H zI;(9)8yWxf$Nn1M_cy+qd})n^i*w%5I4p#nwO$Qk!Gui$A;U$@uFseoQ)QR07v@D- zMWc0D>pNcit{>&5JHL&x-24;GmCS|HPqMaffyt2uP!(TcF)>hH1jT}Ol%=HzIlKrk zK3)MGB7lSdttEM($@@9|nwQa8XF2uwQ%vpH%6I(0ySU?3FXgkp`$s(bnMb&Ic8>m9 z7ws&GR5XWM?AW)H+h2VLFMHrVCZ?xYJb9j_xq0%upv(*U{hT5%D2g!8tbGiTG2SKH zr&YK?R&c2;HRB**un2b6A+Upu2q`7?tj7GQCs>-hz~q*l&$$q~S`bpv>$K^$7pcoZ zGsj;lM0j(d=yc&@=MYMw%Ytuv-CHR8J^uYa`+LkUE-~EnbG1I&%#TG#sZh$Bk4mY6 zva6&ha**CjMOHFVX%I%Cjp5A6GfZ^*-1CO}Ie6!deE!3K!k0er1f5;V@Wl z0EG+w1cv3sCH7vooqdN6VwKNxcDj!?TGQ_ISnl)@!ci0ggm0{P2X@WtzU%+s4e$IRU#MLp=a?&jvdEd)zKiep zfuG{Hf8}R6b@oa2?Apf2kR%m?(m>VTmZ3P8(#zV1hFff(nP73H!_snxEKNw0#BVGs zNt%ic$3$g%EY{UBgCacKnXh|(5QA>HF@`)ZNb5r!zVm(>ts(M$_gViwDHF~-^;Lvk zV{BxakyZ<(Bz;}d?(`YIZVO48T?viRs~B%W>B6`ktgEwRzfZn<4~=*Hd9Mn*#D%c4 zmc%)>KkybVWHrwHgCA$xsi!EjIu0->(zQ13zx^8a&X*z^4frO^1urF6OkrMOok7Wz znZ_NA*Y>eoKE_Ju-SALAi%OjlCfj`h@AF%I7ry$~$J+Q@zwq;`jy=-nTPF%! zotitqki3bS*y10P%i^K<;>8$Ev)ST1zwgIcS-i-ZBcEn`a-5pYur9?Umc%NQ^z*w$ zDx@?h=`T7~3hxqI8p>QVP*mU-H&RNp?Q-GRNw)6U$hf1ls`wGZ;)|NMI_Ev%6> z>nJ5bW*BM0te-E;1p*TasRK9e;az|IFYvP0zk<%}67%P0DT-o{RbE}tgs>ZmtsqI> zX!>S?blO&iZ+@QHlqJ1>m&K(H_rLwG@v66dZ(Q&^2hLgM&O8OCpq35$*SV}-+hWiW zt#CS$KEj zb@_ZbaME@_8Sb;zVbsE@kQ-}B62CF%!nsRIK`l+_v{zX;e~OuHyS<;sHGmLMtJW5t?P!@e&{pPom)tmhKzxf$1Ts*<_CET3{Q-q+g;8*ae~$5Rdi8OmfGjlLO4FE#gfDtO)u}07X=~-z6GIcWkT|U zHkv%oSzc*VFv5HO+E4K9?|NStnb0Ve_=wS}_zn-@;9;xQI>B#6D(H7sFuDwCrE7Ji z?BmN`a{pUMk~$y!k3Y}Fi$@u5wGb+!pO;7k{k)`6*Ho@L);V-pBCSJ7#EO$M{+-hVVGQJr01UlZ2ftQYCwvv9LNQCRCJjSHLGeRkjYG7jEyH|9Cww3JeG zyB$tF_IZZuf~kp7nnOc42mOAZUhX)sZLja3$A-lvMM&lAsn8%52!t_MmB2gSP3^{8 zaF;28!8wO43%0%P4VzsozcZ{qdniYv^a z>Yf)QVu-2iC5)zrSkouysv{I;7H0~w#OEhU;T_#7_hN!UPY7xWJI5OqSI!RpoeT4B zA}q9ARaXWJH_dV>&!;}=sRxHF5;1$SaSdPyL{Znr@DMjOTnQZY_q z_R~@aQH*=Tw?TkXQRF=~w_#z?fZC}n-ON(MK4 zX$SHv8+K-kqVTilE?kf*hhrnrrJ;E8IMds=^0ps-H!peJJ$&-Ne}pf7{6QAy7Jbfj zHS3#5oGeMRj9q)T@rt+J$Nleo14ARjESxyY;@lFtEU?;lrr03+l2V2OOH*o#5IS_P zj87b}He{{)LeCh3wwCtlGVPw`+urt9dEPayhDV3kvTFz1_g@G2^N`7NIv1CiT|P~(+x2tgr4BK8h9WQMcKh`EefmXCUX+yD z(#!qFI?M>$U__})9c1p7)cDteb#idLRT4uX1xcom!mx1RBtqW5xzEvML?9{pK9gCb zGF&4zE*jSxJR)?IgcP)fyfo4pLv9TByz+JI+_RtG{?GrCul(unvbx%4WO$fby&fF* zy$(x-v6@6%x}7dU)o`{d%th$1d-rxNOUfdl=$CZbYt)-fhDL`NpPpiB$M&$nEHFhu zZ>`IzGjsGh9rB{Y6s31kADDFc4eYA$mO`S-oKB}lx1WRX5_%gXrQTDaWOa3gUg6kx z^Zk6s_xvb_Zob_Y>{^pbMV8gbsxcy}OXK=S)iu_IPP&wWyt_h?_oz39xR$SV)>_KE z$8C4NlC8V;^1J`_U-RG}{V#N}LSYih($MP`j1E^rdZ925O2Dwd08tLcov;p(lqj8J zRSlJ9-WV{+nB2V|r4&Xc2n$Gq(*~1wDf2b*?kYuZmATnfq*OFpnNPKG7J`8)I?R|` zL#g$;r$zAAIKR-Q)60R9)s-H`3J%`(ZM^+^{}u;ty3=3JzJ=W4$hSt`>#}R#4g7^4 z`2{}sAAg=>$3Dk(JGU}9HbRNX4yckEN5A;Ttekm- z-CL)anVKZcY83q*OUoxsXnahU5%h;tDTr&|4nHS{uzJihWybmSBHx+yL zg54!+5xpMUUvWS4|MK5)>gRr%U4Qg3Y`uY23ej#Oe*HgTU-ok3maVXf2}W0BVO~*5 zw-eD~EV+dduBR(c(i6wg;yl)^A*4dMDh^GAZn}>^+n5FFoOeyP7(~eK^__G%=!{nj zi9vy`f_gEmErh7_jA9^b^j+1^{f0qz+zE?CBAqYPjq@X1;EQsj!P+LmOw$s(sLQ=1 zY9t)cHp!u~%dD~Ki zqGqtiBZNPWLV=zrL)RG2pE|?H@+#BYXZVYM?+1D9d(Lw7OOJBu$VpZfmeFNNR7XyX?| zes0*(UR|M-b>8?Fe~eeZ^}QrX67yi611ThP7tb(%<`|7yEgTCBUi7{oUw3pgm(%Ne1Gv?-4xN7P?}Gy={5*MS4S8Y63r#ImBue?eD@fU^ zF0en3N-`xld-PE{?G@^c*0rI$5KtCa=-oU3n^cx)i>gQl-l~$`kR<9$)hVzdoSXx>_CJn6BzHkr6gOXK&u26+W zri!vC>G%A`j#A2xTUB%1Vcf-p^MWx3U6zB7E4O5CRO#QOOzC!3Sy@@7-_5-lrt$t2 zWs%eE_9%^F`@UOwBr%q^`jGd;#&X46@W6$oL`Xwd%n zvq^%KK5ABIiA_?ZDllb+N>Zdsk!gl=nU8D~UP)p4J<8r1WxsXMOq4Fz<1eU8q~vU75rMv_o!!)iC@u@mQ6UR|Nc>+HSZcE0V6@8lJ) zeH+80W0Yl#?c97EMc!w6+fLr`ga3dJ|F?g^sYgD6z%em43M77Hfhs!Kzf6@<3=cK9 zZpRe!i>s`5dNk`9t!73oP02D}R#;m_p#@_%>jtBmu-+l}MH_=tZRKN;7X@Xh85)`5 z;H~#y%yV?hla$5z3w-&L?`N!Gxo+1EhDXP+*3#>BSy)`5KCz#vExSTOP2|$yKq;JB zFEOQd=+RNK@B2X-Teo5Rm*4ludFcexhi+i;=YNq?|KRVk>kmIpnk1N7jpR#TzC8;79=vYt!G1yIZ zB+|>d5H>7G!;>Za9J*hfR+FXcU2dvQIR0l>9dM{-%T?&Ch;;>I`2K34Bt%MCrZ_iF z;6)OJ4g+rLb=yTI_sFlmyYl=6$& zDyB{f5+$+L(Czoh^E@~*yD;Y|2Hh(o4NCj@-LlYh);bK2jxaGZ!F_LkBfQ;t*IVaZ z*+r6qHgp%;oIi4$c6*H?FEAn7wThInc7x%GvnZL6_j~m7K4n?r&;v=SsUo|ypJ~sF zf|b=(h9-9NuJ8YGUiQjwA4J$ho*k(av!{>IU0q;eC_^QRB)I4!Ly=<~rZkk+JKgIL zPiCy8)S9KG6~JeJcYA$?=4RP4vjc4;Sa0y9615)5m-u5ZF$R+ue_JUxZ2GyuW?h3FUY&SzVDpp1-dlM&YovwwS#j|>XIzYXx3^QocsNpaB3~4wAjpf zGsJKa8q5kR#nOe7EYDwH``$y?;_5%1gplN&Rh-pGk$S16WqsiYLG85u1)m-6GkiB* z!nM{UiQ?YZemgh6*q7tSGtBg+yJl^}$pb>b+s`Y2$%S*TJ7 z<%@UUg)&H`kVc{tLz0+*nWd<%L6v-bLvdb>!+7JukmOJ~^cz3gAZ5wfQzx07o%Qbh z)}o6NZJ;?a$xU-f40ef67}*|weX z>l{0g%|(|b(=*%n&hP&TKK$Q@dE&FbjnX?Vu{(4oup?e8;OROiQIG zih|F5_&>w)lN>&@kICt+$RwrLUSf5%&1&DU=gybX8X3dtcnn@roI@%FDj95MOPy0Z z@D4^^^*Zb&aAAKw*rH%!?_S)`|1(bh>`$@t_kRbGBsi^+zx@I1t6qnknSo7G^t?z4 z^9qM`B_OCL+o&Zo7<)6?tzz5)J#&t{I7=xzNM%TrL`r;oi1a0NH3K7p^CawizMSve@gaWbquRG9q@CoShAL#p{sgTNYraZRL|CY8Hrh)JXyL#a9fpV@9* zJW0He=&~TI)%cG0{tXV@b`Kx@z_0N5gP$Z(mR7S)tzP%}@JfbmlmurGNt@1Eha}Ag zBMU-!qb4Cmki9DsrIA67-0k#Oyf{x*tC2S9B#9bae{{c~==Ujd-_6veM(c7QKlcmh z4Hqx#lLw?Qv{%EC>UaOV; z<_l+eeZN&Fi8=ww3Zh2zPAcp(Uo1tK$z|U4(L)Udf3$#k?($(kcbg+7Q) z>As!P)6v1iuJU|#pz|~PI0;F{wYL)TM&B8(Xa1iEYM8nq10G#vb-t#(@u1;Kd{GBh_GJ4=GsX=@h87cW5o z6$LPfUnqNOm0n~5VIfzhBe7+>j9Ta!6F7c2c1za|=TC34pcF&L%P~vKAg651EPdp~ z2n$=;6e%ffX`$bW87tH#BCnUYr=;1FP-n?C5-I#!^$LjAZh{rf-us`Z&m2W1XyEvO znACnflkO#SK-H|4c_c7*9e4G9#XoG^c4aK*5z4NaSbI3%5>l4DVOx(&g3%USpfNJv z2}VaB0oMup!de8&ja6AMta%v99I9^5{_Zzd0>a5ccxW7lh?R}4yq@sDEP6%6q-2a^ zHI-+-aJm`Sr~wynwX?$5r?*es{=-N76lOLLss+P?!Xt=E$rs_-(&?rZ^9ZFpR)oKQ!5xEtSihC6g) zzeKCFI16+*N2e>mnT-A=Y-A?OR;-{Ou>8e%MDqG%%l~cVlB&PrnG6Yp0WNn zD>Edb7D6TFwKUSfRZND_@O>^CMSL`7MA`at`@`EaU>?M=xl6T*O*sl{Ty{J#_1ijmqC0OJSPr=u%@!XCaVgfz%%C?h zGIeu`vG)i$Uq(5fG)+x=OYKHj{5Y=ch?;Wy^{w6)wu6DsdfE&>NHz7*jHdMLxW$Fl zTBmz{l7b8>^LfSkSo1eOJ1q6Xj)W1LL_&B82~0crj?o{EJ3K4sFu&Ek8(jYFMk;Jp z{G%515LIy!%{G@q3i_H+QPG;E z{8ccBuJEqNCZ7N3+Yq(cXuln&{8Ah=r_MXE}0q!D@)GB-OZ*Xnnqth3nte!2Wz!)%|l;1OmO8IPpa2&y)q0&FNI1P zEhLP+GIS{IFVWe$_2mO9w6ctA(Q4w)+!J^v(dyvwcLY7aN1$`33aR*&!M#EqPRRB+ ze@9$n5kmb}(Dz&fDnMF4!#JTkqSPv?eyZ?EqI*~$``~e$xol_VQC6wzZStX^2x#*x+6%pnee;w>82^J;PcCVC#Ya9|CZ_n z^WmPK=7!?O`FU(`hXMl1b5q9_f)n?Xp@cjy?YK`cx&fSMfpX9y;HA5C*4hUnIuM9< zBjxB?UwOsFBEwpf&PXI_zmE(ANCYO50AY>*-K^YRoNgYgK^ilmC>*iS;Nf1CUe%rL z-i(6n85=j_3z&xs+}GjXkUYXjjQxpIP4wA(2b%r$xSK^+I+0=!#-=EFR zD47=)Le`64ok!TPR=>v~x}EU;)??5~ZpKgzsd+s9mtW)9C4i$l`egQOvQce^%rgci zf~d3F)etN$N4p8RAROC;`Y?cs1kZf?%`0y#a&nok+fS6GBg!nJ*_)S>15J*Hs6_0U zrmh7;gSP^T>EG&3jMIAaAnG`8f<0Z!gAj0+PzTwrsYfKw_0)Oap9YnkX%r7w2yLjI z(_JP#?Kh{;;eH*dXzfTu7hJH~QOtFUnYvM^r;pF07Wg}I5+HFLhT;f~{bWbXsW_cjl6Ev| zyA%$o{JXBg(h9cICfpJ5e^i80cqjI`sKpQRfiyt{dSed9)(6uJc!KllNVsyKwi+p- zMfuyL^x5qXURjy(dlZMwn{w`lodMN*<#lp$Lp3dHI#sJ*r$TN-a-4`Q6~Vlu<&&5; zbsudeJVwj^j+FJ#8zAcAwx#~?Pv#}=+v}P6EY9f(OV;+He;+~qQpqsA0}nx`Gg<>V zxrI(Qbnp`;JS9aPSnV*vH&rL+*phorrG889N%gLd=6E#3*4wD2t*N&UJ#q`L#y(}T znkLaLGdlxh>Nb|5Eo3_*n4=8}krfy)Ts7b6KbkpUjSv|K!Q8#l(b`h#*N=2WVQ)Tp z%}~^EHiZ35rkW+(4Yf;{Il!#^JTcA-Wa?zr8cWg1 zXPu%cqarHzNpJI6(Xf)PG?_XfLZu`X+v={{wrf&!dyq%au6I^RXITV$0!~ zHNuMZ@nD^s&*?2rfpf4{49Z;;g+KsW+bB9u^3-@HI{J4a3*1aLpRzP6p%1F}75r$D zfuBA=6}bw37r#gSKuGa+Ehu8gKnDq`ciuKWG04R3y`9nYv^rN+BQOwB%P8P`S(+*8 znTT!~!|i=7phhmP*opHwMonWxN~c|;Sli)N0Eb?2D!7+foa~q!dY`xAA@b?OPdrnf zB-m52hJCcXZe|>VNLF$60OH|&=_M#zBIxpraS=&T~L%Co2T9Ws6FBxCMCa!#iYAzf!u6M6){%PmQ-Fy^&_kp%ZDhv(!!1 z#~=jpJ^S=+T@qR}9R2%O?onOS^!E(0l7x@H&=5hhL9VVpy=rCC7yu<$9q(pOuxpRH znv{v?!C*VsqAvnU9p2;7iLlhGC>9h6{J|k?Gx(t9QT8EMS-9C;Sj|r_j1x7-I-3Zu z5MxS#3mmT+s%IlkmCB@;%uL9hShU>q2en zLPHg6k&}x2jzxZZepIaG!_xF3dNKBhPTJ;`EAnu9Tzb()u@HE*TFW zHPS6uIjRLs3|7=KzCUMYSPcXO5*>ewz8%yi?R(;)uzYW&v&W{csUG z@Hxp{BEC}=?-_U*V0U`nrK+}jYf~?zq@B$lIZEAs5gz&K#dB>jmus=?;7 z8pbqf=Z7>t$A0z8#Y=4>T|K>`cG!0JA-M}UX3qBpyVm^Sm}tw8=xzrmS8-im8gTOP zI{l$?z%55K$gkG1e`1i!{qfWUemKE#O!dOU-FdaP*Kw@!`@sZr1!~?du48K25wBhV zdJAUg-2EKDGYHFBZ)h-`yc(?(ecGhPCVQkL<9kD^^HB~QWh|{Qblb~=ugOi`fpE3R zXO0Z?^FV+);E1f~ZNiOSw&=iPb3)lzW!xWgQfU=^x_nd0Wz&Q!Pt8avp-u@b&F-Kw zD?1+=<785hPe97ey{op)u7^w6pjC`YEj-j0AqCmo%GnFc@+PLpDOk12h0G|+&?szN zG#xy!s(;XctBFWL+xY>`p$UV zjel9Hee$x;@N9V?AP$mS?NoP$l7YF2uW#ULT{7Fi7i$bu$#P@(y}`-1 zxqzNbfpeT#znx7MXcog5b*XolN8wc0auIJR*Z5GYQN)xwS^5@qt}`tNVQmXGoB1T^ z8sL{ZPKAZ=hb-m))T*T>kj>`~{S(rRBgUng;#*cbPA(by>L0p6A+T)HcEO*lK23Bq z%NOF_`BzUdn@n{Sn!qGZ`8E2&n7}+7ebS=ai<`mD_p)f7V+ttB>8JH)d}``rNcGQ| zRumSuma=OX0=y7ZtfeH{vX%@}TZ9b&8uN#K?M-a4bN2I%u2LSa&!0bEB;Py}o7|rA zLH)O-0pW5#XC8P%T(Tvq%xx0iv^F?yEE_h#bUP;x{Yein(Zle&;^_=Q_0^XVfyV5` zEWB4<{kK+;lj{t6$s9sczmh)|G17BSlSJn_)$HKVmUvS|)=;0Y#8;M2=^5ls?@b7 z85S(V1jE)=fJTqE60r7N!Iu**1&D(L>@O2mtJzrrI|Z#k|K0 z2Gd_!4Y{?3B$a}U-Maxds8$%5+`P4RaYOgE0`RwxhaNasyo`BF5tDY2Mn5wcMP~)cFeCVrGKG2yZxmpW zF8F3gi|mhu=Pt8&>QZqG@7w!i*)oNObC-^Hz{{-_w81!uvN6o}W`EM-vG}!7S}tV6 ze@D3B0=iR_LXUiM?V@SMxUg2-*juqyd#l4b|2BhSYn;z8l!=JibL39zaJX_;NiDux zup3-c?))uhH}$dj1WQ#W&)I#u6EJ>zE`hSk&wskdFvUKLPe1Wg!4HTG2blEy)BpGG zvSij^^sqfi+;6vb5O5X7AjaD(6o8Kvvbl9gu1G6bluAWrefy>0GVIP#=fW9ApT0)R3=7ChsJJ4}1Xy118x}Tv@oxoFo?VIWI zH<<&7etZ9l!yP5%XE2M%vp3HHmP|{o$u@`r`*2l>@y41anx#)$_4t;PlL!wGTy6D^ zFp`bevtn;Y@Ck^pXhqN#qGIc;`1T7*bm*{n$vz{hJ_n4T&x03Y4byUP-*dkdzfSqi zx#AQe*H*z|XckC?zX@J0-n~-kD-2DWA8i^%EgxcJAbyElQ(m-LH%7L`fD#wD9Nt1b zoM=ip9~_vHjH5+OfRZYD9uK!MpgHLd5CYb_3+_Xm|4}JL9&+pYl zFBx57P;M?hxpHl3h6sS7Vj!;Om(+*q@T)+PlPg3-772Dlr*xdx9}4=AizAgw()i7NkJ>jV*Qb1XFS`?+%%c%M8g4-TdX!{=%_Vqz9w2fKb(0)T-tPdyNlbv zV~U)zkV(ide~{FcxNjn)2*Z9&u@Hd8z4P&`Kg=?QLNX;J2m676kJdN}m1d~b&UWEq zQvJd+l7piRf3ZzCR^V&(8{6##NV>HpI{qa}cTz_gHPdQ3#ib4pg zAN~~Q&s4HCcM5I5{1kG&T=(0bvP=_&+uc)KS3KqxzokvJ(-1xC`nm1Du=3AXv0m%} z0fHr0e#k9m_U_@^+gQ;SqR4;mT>>#OG@5>)Y9ht0^85`|GLp#8cG@Y$cHVNKf)`eL zGs3KL^l?0lDs0~>iNn6IKEKU;lQc`b<{3Bntk>Vqa#T+rktadKV5rHWm+W+L)#`bB zhF{m}n?5#bV21S#cKDY77#5$=#GrF0cCG#Rq?6t<{#T$ z(J6XlEumhr?F-byS(O>;dr4>8entqfTVgkGqC~$?*dp5y)(+XDDKI;z5dG}1*4HI` zygfON@F7+clkuom0Vhzlhl*8#0A~9&uZX)M$6y4Vb7!7)pB5rbp8A; z=o|hj&9{b*Y-^Ehu`Z&#~DvKX%eW-|F&5fV2`s>V&zo~R41 zYL=vrC~v)~al0`-(J_r)`>dh((~mo4*1sEt*;^a@183e+gcb|6flRC7`diRG0PVNdi=xXqv=fjussiw0}|P@l{BlSkb~KljYU2bE`;$`!;lq z4mcn)oc1d#oilGWZD26i?Ri46-tlD`K^!j-k6AI;@aCT*#s*d2FUJ&JPEwJsfYqt5C%HlPD`*QOWnZ z7;|r)Sa|L6=r_P~(lboJ5_bh_iRwGIy98=i zve6u8?dC(Our~x`a)&Q4Z`)-Q|XVE8O zZ%LS){egp2$_rN&QC!u_=i`b&EAkEU*$tp;B^f0Uh8uy59NQ=}7NuC5e))fz$Gqt6 zsQ%?6za9ed6&#p2MIDRh+))KbVNN}=6yCSiaq5=(3}A9{Y$zrEN-km<9d|xkW|kW$ zHc5SO4bd=9tzTu7h|a zLJ+dNy)t5vYr-&hF}@igsz`0ZP(Sejp;miGy)9Q^BT@wV!RZO77W;0cRPE*?9SERrVAu|QEE&)haY@{xc;H}1dVf$Kq4j=cmL4j4jUqI1 zF%veR0A>|moiL(j)+Sb2|7R8H`Yqkh_!qj0ipp0Y$F>NN@ON2&3sw@7eY5GilJu<$ zlRK{dOT{mNiCnkG0#VhuBS&Az5SiKXpXonygLolYVl7P(iAnB8_1eh@>6NMmSYbP? z&_v&mueY~>?E4VdWN2OZ*wT5#J+qd;^Q4*T#~{6QXnYmXLI2NM!eIzSDLbJUbKKQjjp{mV?GoYilXZmba+Q91pKb0ug2<8E9MgVR z>~nNf5phNqPLf)<`lL&N%bcu^UidbBVAZ@fztDcinZC{jplQ153iziVIQR{rd#zOv z2lM;wRj?rw*@mOip(QnM{_-~V#SL>jP~BDYKy7bp3MgH)0N&Z`Qd_S%Dmxyy!#qab zeMF|gQPOa2Mfii|FW((dzskicW1|^K759gPiQNe+SgLbTFc}u0LfpGqzNhl00KeHf zewL5Rt18T`TQ$jBL!ii7Y(-tk*zYdqzAA2gr?uRqc&;04wU7RxJa z^CR2V)BIxr-Uhe?^>dMxB_VqOf}91xHf`LHH%7M_2T+{=05vk+Hw!sgk3qe0~)wg(QfglRZMJ zTTedOJW5UVP51biCG+BKvvnYM1t%8s%C8G;MKgSQTquXf^VZIsUkYkK0n>x4Hep=e z$G@dWH6Oi7@2pyn1L(<>6d^qAw!rI8L}6Nxvei>L6Zv>kb1uGF1fWl9n|Nz*fZ_xUcr8rsf6L8cA|RKaotr4Z^dhvv#D2pNf~1^8Y2O`6R~D)Z zHP)z_+KY<}_T_I+^j^JbB*|V5O$_vSoLI9kvke}9Ix&$(Q_edb@Dwo74!NVo8VTez zelE+TkN=vubs0Z?F{AUGN_Ol=*Mcf&7w^V*rc2ZvYn|n_#a)-I#@TF1RmjORjAxXb z*kXpbBgIRFYX=$xvh%^0V(*lgwbJA0c~8{x2)Gp6yzxbyEhMmUla8d z;|eYZAhz8sj zo0GM$?3L9k2Gb;@YY_vvf~OU7o%+WaHO+c?Ybid~G z3fo2A70D3!uFXy&*kR1*DjHT1w5gb1a&Ei;^)y=dw1PTDQkgCaY3dGGxg&^CGr?O^ z{Hpie1q#KuY?1;myl?`j{{6}qLTFBJ>NlK{%WqO!f@~vf+YZ#=I$ePq0{Q1H4@nOk z#Wy8oYOmwPB9w;J0h|2N!6+=mn7Tm?q1;)#O68nV)ijP0vx+ydxSEpzp^BfDn)XKUJuJY-}*nJO$%dj zRQoy{n%T>sGNCCzRGMSH=g3KdtfFdTJ({adsb!6)PHu+k`;6od_ z6@y;8YBKL2sS4ul6%6&tE3$00z}Nu@#?Wx!iyMCNq57o6(GZ1r@TIYcb-IE)Sc3SC zXH4m=v1{at(mCk@a>o#8Ku}q~^z59!Ey3#}37I`)7IG!%@)A3-s4N=ov|3O!^B+UD z5k)d-+l3DF2U?Clf42Jgm+yfco4(>w$*83DQThlCvf+VA1;L+%B^E26;LCoUW+%=W zwpJUmXE)D!j)-B}NLQX@n-CMI~G}uI9_?;oW+RnicVdl z8u&lEw(IdH`hs8{4L?4?cmOb-DL@IJR1#2)kJZpHN4(%QF|N@$|E)eV$d8Kc>`LjC zwf^RWvT;wx(lNb?W+FkZ!ST2et=U5B@baXfNhujy(|S&vj)&G2%=?d*Ws3!!|! z%?)7}HZFHwVZE71Uxw~KHgoXBL-^8X(xqoIq|NGufb^?9-~K&2RJ8z3Zg$<42v*n{ zMxDCav=k)mzDJc%JbX|3QJ*9`Ov^a7&l84dqK5KMcE^7GNj*+FO6Nd+fHp8MceOa{ zMG+zMv3GyphRDkHnj&20RrkcQ*R37keC%9>QW(g*A6>*>gcfmS!(7FgQEy|WC9ZvY zYfe6K;A+ByjtnQa*3LJsEGJ9*a>5^@;*jcGndcmQdLU<+yJpmCLo_e-u|}UFxL2Q_ zc+PjnscL=1INXNj#I0Jp_H4JAuq39o%-B2Knv!hI;nw7eml*|?xaNHSw}@ujyvf*8 zRtjc?g;s#czECOaa}-8KRtuGy^iOt4bphx_7ig1xcERwQoqNa{_p!76ZgTlRY~)zp zDb^7>;=C+E)a}s1Bzf8 zKoM}xIuRM-3BU`Np^aDg?@NaKiEI&BKpuGT%%o|IaDn2O01XHPin%D_{J7GMxW&L`^tiFZ>@D6|VyLf0sb} z|L($nLqY|xa47r=DUQ0}MOWc(0R9h5s@AJmrwk9B{~dFmFldmaes;m3f|-%v9fhsF zUIxM)JVv}=*RM;cDRiTx^UFlrQ|o4!W^ZIL84V}fq9gNUpOVKE2aL1etzn^4;V!Eu27QzKa96|$qy7@;h!tGW z=$L%G>=b&li~xgg9@f_iM2ql$S)a0Rw5}|lJaQen5Q9oWm}*$^5x`>G`rqaxdda?H zJ8A&uLYl&Y730FS6V1vw>jr&=+=?{t-Ztx~ELtA5(F5I7WR9Ghs#HhBr~9vN^EkNF z2x=^K+Z07O1TWsAsVpD?(-!o0dNG8egL1mdNyy zHJ{)MOV#N;*Ek>o>cuI-)!jRTF-O%A{)T_K_qG=qreDUH;oC^3!vy@;lEnw_JoT<) zu$XrqDV0=8juDqV8F|U5X&vk>UsEmmrt#qnm1g(KYZMAa?CbGLG{L`&D>qO3qIr{z z#f#@oK;?){Nq>wXKR>^~nzVH{{u35GeernadTtnH-okHgF|pynLDc;G&8V2zgx|>E z%H#Xv^A9_;UCn&;E}e2h57uUBpy;=A(y46S*5pD2+pn<7q^X@$14kVjUdz6r0YZ++ z_s&7OXHK>*q{8kvqR#J%{BUNFn=mpN2zUPzG@iMGHKg)XFCSm7QeJptMbFLaI1%s| zkT#MdbrM2|V*z2kR_U{naoaE_Cec1Ak+N;E_B5FEGcmPoU?V=iEZJX)kE^SBPtQ%*ExQ+IZzElV3rgTg6opw8QxR$*+<$l#=rWv>&-)ItH8+Z zEugh>Nx6NY?GJwoyQV3dQ{s&36L`vn>div;-iKhLzFGOn{CCw?6itgvY}SDaxO`zX zK`g>QeJCfz!&wM%o-R6cb@Fw2-~I{L&yr=$qEQqNp;!u`Y{le0=d$$`pMTqw3APra z`Om*L1u3A%X=4|kg_V_?hfg-`CQdPsU^w<`2ud|)Iw)3rxO#wUd+RK}?cw2>YYc`X zcQE!$N2^1vgsPNP<=ioTO7u*06|Xov6-N|-pgxu-^<9TyHjy6J8^5((-Z94ALg2)5*po|zx}c#*ohI+{HjC& z{z9}668l5h@lMbd6zDwCS`A_!;JewJ!i{qyM+-nMJNYgg#39N=NG%?DNI|zJ5}|*G z_U($eyRgX>BPEJ1N@|Qko>e>q?3?a<>ovM1n%bZB*YWTdVhj9)bwb8~Gk)%{92&c^ zXnlcL0d8CfcXlL{Y{m!)!|=Mt9hAcVdi*Y{O$BOhiHe=AzsPEro>kmDzpD3o`m=fz z`$*!1WR%EKnLH}$8Ie1LUFB0PY09!O!?nG5OMS(?4ny9%mn+G6g_lVl(2rc&}b`&%e~m**BH)IZCu)!rh4L-J8I3=LGY24z#xy0ToR~`0xj*7;4G{G zRkZ%%&Ol@PDLof~Vq%ky!TsuSZjt6swwryMaQ!?bKO7{l6*f=t;#phTkjso#sqaMo zaCIfj)w)UQU)rSsukuw+?QMSiXv=XqUiKWWF`KI}nj~kdVP+~sOs;os&x#S;cYC4l zaYMPL`q6JYFBZnn?#BHC=Gu?zsR?R{;5g^F$887ZGy87hHBKL#!qHt`6VGfg;*1R7 z5F{EHt5m-*I_>dQp-lKEpLiUcWMWa!2T*sJw@xIqP9``=ANip2-e^Gj)N)}l->m;l z9T87T5rl3nOaBh3{AOV+C3r^qc~j1j)e+@vgD_l%jY#UdOG4g6nX8NTqHi+new5uq z_h5$@T-{~S!!LrYB$W(6utW08g%AXh{A7+91rj^nl3BchSK!j$6{k;Hmi#w$n$}z6 za_JVtrFT=7FTo(hjM|z-pRDXnDQnBjZ|z7P#n)lggv`j+$?;6G#kKuZ&(9~-H-Bl| zPgcU%BF3H*XmxO~cCYX2mh6_(Hy%BsyQ>-)nB9h9hH*JhNLfh_B$OFZ!)f5)Kh*sF z)PY>Z6ZGx>bTP3k%f-hGA~lCShNO!{RDfl*3N)NBi4FP#>vUi#i6a)66%Nf}RK#;X zoX17K7;Kbr8|}Uzi`6wYwy-zN_DbjC;|YEvr>|n{cl%cCem9?7*e{a|i~KL~SaU6W z$OhYGiNb@XvSzG6*&r4D{Wj82w`Cl`?j+eDV(81ZfONfpc5X?xwP2T8%_Yq)i`^dV z{9ppedcYY9!KT%r8lcZ_GDBx0kxPuZJfzAeq{_=|!WX?@`0Pb&3YyUe;5A<=Fjv8x zb~Zj1Tk147E$2>u;(&S#_!6ziJKkaa6kke$#lzFxE7FYiU;P5iOa+(3GZ-+0DL{ht zi>zQ=Q(Ey1TxR}(5F}>lwBu~Q$tV$iDO9a=F7IpdoX3fGcL{3GuS>xcWy7zk^g-o? zOiHdLC37~dlI~lE`oGkt{`3J0ygM?6?(3%j?5gUR ztY+~eDhj6)Sjx=~Nm~b}O5{n>zGFgV=(y z7+vaXlq3Tl{RgOECns48+)rdCHy8<75pB^b5olIV+OKPKB}BwF%EiMoy1P60MYxl! zxsIvuzxkInaoTq_7fD(=zRW#BJVw93nf|yC6chAadu-ZxcZB3Ul6`d%pVL`VslEtfDqfWl zdUy?~J&`9=`;q;($bj=tz~S}pt7n}0M^vwe119;kANZQ6mf`2ugBEnX_jPC72aNo? zUj2fbMEJA>i=|*edDT%Tzg%hlx#t65JaY&TuLJ=6fzQQ~Z>!+%stb06eaq^xIWVvE z94d(%F*H1`g0WXaM^=*@XTb0E(t#s*HhNN}$y`&P(@5>O#DK9V>-^zykeb1}p4dmW zocoEFf89fy0_zIqO2z^aryOWB9CDglzJ{fHa1m+OVmGY#BC{V85g>WW?dhCbghb56 z(y8-J)2j{`?vD?F*?a_^;p%SpzViDRvKlooe%IExpF&Ryj7(Rb6t`w)=_5oCkIh_< zOV}Hi8CfxT%H)%P-=lz<=oJB0TUtTAzyXIY7d(2s;Czz@7(eg)saE&}g6~F(oES`k_iG$f&>7YZIBY3F`Y+ z-eu*$Vo~3#w@G9G`)50JyywIqM;3*_`+E*Z6#}AAdcUuy^vBH5RunrkXzj`0KS=!c zum9_egc9UjK*9TxvPm`;Ph;wkze2l2^o1~hV#JzxyaF5t7GFq$G|_*$ApVGK(0K9> znzE{_v2`XG{v(lEv(BBT5cJLKXU&lWT-S~RONN%S)Kb?V8{}j2*5iX)IIY@%{>bAp zIVv$JNxz^!R!QM|A~;;Y=@I$LD=1ex!K+;^xlk9(+5Zdg>hgyssE z_ha%NY3W08N6~3+gO2L3034>IU-d=F045q7)Wk%AuLCnY+&$7F_k;O{jV?sd7H>-M zw3Bsi_Yn&5L&_$Eqe8}y@_*@BMp5R)YFr3x1FR`SZTGoEtO(0ckllCXA`bisxt|DY zYF}RS-n^Ib$IUqIrKi)SQ`m{g)qbXmNJ~*y?fj5IiE)1Yy(_Yf0~L3xDi^g9V38$N zyUeP0NXX)$Y_TL*dlVRAKV)MvJxxfl>@h7f^%;;K9n31t>mEIuMq0tmZ3yyWDvW1} zDvh`td-A5EWJWf(zS|G?jL9;{GqKWw+y{!NAXL}>;Azpmb9SL=FId^kQ2^UH-nk>} zGZueEcYO@vd~1oJq}Z?TX6$ug&mfoKcfC+Cp7B6MM8rD&u7m(Sp1FaZ^DKa>oIHyo zfS`TWzm48u!i=w~s~cU^f5%8($hoDj=|V^kB*zNqV-9eP`-!2GTvlFjTC(&hPJzt#O@U-LXolm4 zibfK_!G3q?F9q*2>eQSJ_{Jeik5pAt-CsKSdvdYwIGUuCUZ={3!d0=p?<(YfR@&j9 zo(@aA3qP;+N6t6cCjY1`SOd5=>LZ}j=I zwr_b*EoVVP%$W>j+O{i(dRTNsKr~?U}_P8#MO?5|<5!|2Rl>1D>eJAJYk+Z@~ zO}iecwJBJYHtD_G5B1wk)pgLD9&EHd6kwOaM`AF*mPDz^sc5KNxWCEef#V&cO%$vR z)acer>zfb^%UxPASp3Hm$D@vb7k=BN&sXxUSyxca5HOKRxP_w?jx>G3+S>YCUo`aHb zYP=ty6z^U<&r1mowfzbqh%fjF$j_clO+x_gaMPJCmxJSBcYJV%siK@xM=ykZ=^A9#hWU@K#uudFgl}AT^XP9 zX~WZ|B)<}~=5QiQJVexSE^7Ht@ruttR^vr{7}a_>NX^OdMJ%dbI*FGTq{qbINq_!ynYc zqrrvJbXT*S4tK3gYevoNi`@0%A1+r1<-%|jwL#WS*>v(TRd!2QyBI_(gj}_s}#D8*`Y3+^n5ev>))Xc*FY6S^5 z@O@vYAZ=6w@FYnHKb}O2Fan1qVc?{fd&@2)`B>wv(Qm3#R+FE(Av`oATvIIX`{qo{x~HQhZg=hGlf%0krq$_VM38YtHGHps;Ae0@Wd-HDQt5CS0PY(Bm3i!V&BiL(NI zKaa0G9qeLvTq`whUGTTx;sQmo^*wG5Zs#{0%NFcSrq28}BQ{Dl)6T~m$jy*XB@MH0 zRRPxOrh$@UXjD{PtiIR2M8RXH=Y67m&XBjyNrsPUTXyg2bKm3wW%z<^RrC8Rr0W}~ zwRYNxD{#f%!pX1HwJ60s5pfn33T=Xjy|r_;fjm9jI9<+j#^eZu*T-;{GiP9uMu&>8 zpavx1B>`4n)kRpBp}E6bcm1SgsFS1=0+a~AU7cw*#ZhS@jaHg^%LGRv0EBGF93Zr#)hFA+rz1>KdDjc!a*NYV{NAZneVzSA?VBoN6T#5*hq2O}w9b zpU^IN1XyX-Y{1o+?1G5m>ORVW6m->!A{w(IebdMY&M6P1gfJhT#ar!6$hzUA^fCTff{*Zf0Q zObN)swWxKNYRf6OSir>FFN8-g5$J}O!lN)yNw?%oHnb%f{Ac}ec8#fIW7Pd*b!;+U zZOZ6?i<`S=!ZFe!KP2wCg_BPV`uy}D;C9cWMj;MOW;L=XvXr6?)A>4EgJFuB`J|?yW3rY^GUP3rABU$052Yn+B~F zEF%}><-98u{Iz5x6y^ihN0SrBc;BK-EiBT{!W9vtXUoF&{@qg!597uJHBqN1meOi( zxN4M}$XPG`%z@jriNBS)j50F`85x~oqBv3NsSjxo4i<=|Tkl#`?c$Cx*7^R@+QP!Z zipQovPtMyeX@F9=`}m+@X;kR~WgU-jM>675MpN`up-Lg7QF-*zV7Cz~KI;zK4DOFV zXV5i!y#e8Ln4dn<6h9N6;2zjjdlCHX^@dBX)CeB{j6-FL&R=0qJ4wpa8xm}XxKtRO z&NvT+Cj~BafGUdhhPxt=rwD3jh!v?desz0W26<=1ew0K~@b?b++oJ zwa2lwEti}J@_|??OMCkmk#YWqV_7zuFPvvrtBlr4?W?C3jzLS=ddSU^R&AFScr;(S z&IbRv-Cu_Ma$(~slZiuU%6FdUyd3<>(0qEZ?1(iy5?Q+6Jt)r+^Lu|XQYc#zylxR) zQq3@DN3w3tZ@cN{acp+*9X&F~6AB6D;l3OfkIMEBv>h2MXg!g~v^yi4)e(g0yC2VY zjq$IH4v0THL9-EJ?7af{baaT)4KaF9Oh}Z=A6galPHT4zxPXsOpWH08n15Qd>WoK_ zl9O}sK3u=de$^U=d*9j@_QV@R0*!f#3JO+^Cyv}nC@EJHFXC_lXJ^0c?CdB^N9C^5 zOabUefCX`C-0c(u@Z5(#^$20x*By0rGM#Id<8E^rl>=H3<$(HRZSc>aFsyULP=43l z8>3#|mV$Eobd<-$YoGXv1!Q9bso@ZLOsb5V-9KDxe+PdIHOrrT1!p=ZH@a6*;NQ)B z0C{>@rH1DcT8?K~u65Ak@rGd7#OBM#I-j(cMny-r|DMH7X#lYuG%aEfqw6FtHNROJ z;Kh!ky0t#sH8LxH#{71~Y1{B-U-&U9VG>Y_J!L2?*>S|Wn>+VLT5{2^@R2p12yKnP z!{<5IGV=t!W3Yt&yzfU+cpv}k}flH#tQ8x$%~xbg48-i2N!Z2ZVvmBKXjy_Cs~SVlZn5` zQ8_$5rk#|=^7}m<_&(Z-Z<0NYI=Gs2P|o&U9emhPdl4vHu=42%^a1sb)~;Mfi@jK^ ziZ2a}U)Nhc+`Ft?kDW_(TzBYw>AQG(9KXL(?z-?DWe=-aPiqu}?|ukPsI@~BR_oKT zncE52*<0+LdkpsTf@p|o7|E3!W*UQ$9d}`LA(uDL&D%$$nqzA37o%N^phBV2=;;~njP6ZG#l|{ZOP{eiSqtxQ z^}*clu>!2a?tVoF)n-H;1t|<#K9gJQTGS-G1iBv6HLa3XbiB(Y6#zKfh4+WQ$O*bc z`RtEx&e&J!Ovy=a8OS2R-an5xja5>H$#M0bI%Z93bX9#IM(!8HfJ_Cr|6+Xxq4(=y z_`T!5<JXH1*N-q}yC*Qssf zU-RKcBt`Hbsz>Ua$1O&LLXny4=y+yqbQBjCU-#hYAT?6?AbN5#VU;$5=x@z~Xy{;1 z+hEcJ$LfC>uIxiGeOVLIg2XW-*DxWxs}uiYB8AvQef44;XplX#xrMz0cvP$#(#?3+ zuGAoARb79yw*Ru>Ak;|bsHPDzYIM@5R+ven<6};bz3;IoMRva+or(N^6kTOJooyIr zVvOnTj;VvAYfLvYozpQf?dY7Yqq{fLF*D6{GtJQ*M|Zr>`^gs{cz*Zu+}HKb$KcN~ z>zzSJfd4po`r=}F2g_$Qg>JWxQsjrqm^npdBp zX%@tpPKJODw)|m$?Psn#YGfBb_LRhBbovgWo%IWS;SEXEuh)sHYsK$LlzdLq5^_Fn ziFCY9Ucvpmuu-)%6G(8HVmVBGZSc79lLrgjGawLn)!T&B5X3{U)%V`4dyWFyM|{** z)zLJAUb5KC_;==we5lhe>o=O)(RpX z2Jfo+DOow`Ak~_-y0xmuA8-4_RfRr4N=8xxe%@^MI;$?kZ1`@@mEh#Bow*MC-Vd-> z|8Ws{$}MG~kTuAh-KglAAx}@aNN4tsFIegzPkd|A816iC^?eoY3ZR?7^`oxv3hNvw zB6YyrU3fCp~M;X(a`%&(Co;{L$CkDT09j6~8Q;DMz z8v(jy<*Z9Xl4!?$K_oS8jWSIl!&5Luyu9^n>DT?^350F-m$C!-2TIe>b!Yk9-AVP6 zK11r(n~JKc|L3n#^5Uy^g5x1_td#L(r+x^VROau_xr(z`Dko<(-zcP7xmgK2I68i{ zbWiDtz*=d8wT*ALnU8l<<$9efwBL(#jPi!a?T?I4iGK|(iiUW7whFh+<=wj>#SB+w z!jGaW1DC4uE!JBHjk4*G?0)1SEPVM^js+J*o1eDho*tNAJmJn&mMZnuipiA-$UXB? zKIGSyG4#9;SQSMbq^Q$HNei)aRSMQKS+k5j-&^e-7nSxndx_r5dnFKlgkT(MDAxEy zq;e6@di{jld!!bu6eJP=+mGYIRbDAg4uA}#-N{(MmP3g+a6r#@Gz$$09!J1tkdKOL5$Yfi)=W_^> zCcWf4B=TqMR%%MuY`~w*&3Omr>M<)r$lGEj3(Y>O8@rD9a1|;TA?&)KhpNBHv1?EP z3NvYC4O_hu+mw_%N7rDx=i*?f|EW2(xw(7TbqMx^k>Te9isXIhRSIF>CbvxPM*_xK zz?V`xIWns^JV_q`pb*vU8JOCqrJV;Ktz6kBltp0tV z1;bGmkdZ$(sCb;^(Oy?4!S4j#voGfWCwmy;bgIXs8S>fw8 z2v|Gb8jW?srnxM&TxWBm+{a;KT&r`K5FbvD;pB&KRe~0afS+;8^XjrY6kbO3^>rmC z)xIJg!zvXkjE7PCU2CJ4b&a@`->&(Mh{2d|I?_R$2oBh-x67FUx;M8w}iAU@9vP*S_xd zf3=;IlNg|Vn$Yk%WoHu5* z|arI@fn&Y4$Poi0MCZYOTz{3$wFC4>#}@Gx+e%4r(7%@)wr- ziH|&IA}+$S0(HW{?>C)oNe2<1GU~BdgGmjm=giH`Lqc9-!>%Xwn>5jBL8V)_XGM?X z5;v|fO!(SOzcS+bp}k<=RFz29S2Uh31k-vEtV&T+6L!A@Jst%&_n}tCg(@^TqW@w` zrQcn92xlMPki_*7SSqBJ?n!emWS?$CbAbc|l$t~$R5jPGU+o>F1>B{*_|Y_rV{^SP z{eGtR@45*T9e|a`0o#}=qIr8gNayj4k7yceEJ>hqRvxB48rYrv{;g`!5sKjhn(DFS zvaHCnqmcoXO<5FnqgY;mU-Zi{$6&ihAJXJz<)sJ_`q*pG@y~#k)3)fOn}gl(TVCQo zPn1rMf362I?)B^Tj;3}}4SMTE(lANfm$Ban6U@IpFQWLBu}HT*hO&JTl=hpq!If~- zRD=ReL^US_nu6l9?gC$0f{!Ad`uvJLimmvRbb9L~47o>33&f3Bw4{(HE3SXEm& zP~N(E5N#^DTM}v0nLB)HNsNd5L>jr-biK1)sBU^?@Z3gq^WZ&}buA#}>;|Whv&N5! z_UGWQXi~Pt^{SIi=bi1&7k-c@iVJCZ>P*3*eQWXMORSEGUkU~>r}M!-R%8Ed!r3b0 z$|B(~G-bfJL?P^kX8jh!)m8L@UZQ(r18-KpVU|M3H@yvVlUNdqGfZmzw*<=l%tLa3 zl6L;3ShHA2E=J=0iEGKU|`e_8u*>lF2p`xzF&& z{UgWUyydti^3TG==CVb+ei~Z@GLjku%1q|PPylg&CCs^%>C9lVo@bB7x&vg^!t#7^ z(~LQoBHX;0oh6zMv^^_ZD*CsL$TG6F%Wp+D`t%hu@(0!$slsfTh0~TX2oxA&oNMRG zCLMUD_wyV3yh-Babj=kSfEI!z23mWtxpCVSbG|$)zTK#-Jv8#{fx9?bHj^Y{*o(=H%e!ot9)q{HvYcDt^tt@&iW`L>5aL z-v>xUl8ic+g(CQf;>*~F5lR(5=n+xG2(8UM_+_Y;8Mgb9mM~UYMKdU9l>1NyaaVte zfX$6~U$tFu{w-}D_`5i?vZP5MR5bZ*9TeCEpuWkL3txImVLpV~**#tS!)aXgt*zZV zvqU|U-}c=Ujf2kXievg4Z>SE-pSEiHj*fVDojJkl?76i#m|@+D@@;a9HkIrQY(==@ zlfWN7#UP26u3QQ&&0n$OCXFY-x?dBk^dPUiIF*y8gnQfNY);n-HOPAI1`CS8p+}_F!=NL4uyDIS#HE{gC-Nw*RQR4#2bsf*1JEo zJ9nM-_r!RYGRta#p-WIf&nL@I#m^u)TkeuM1h7ix{*XV5S4sIzNvEyf=`L__fBEh zx`Vp2d_GPbZqg3|2C1o2sxZ?wc9u_|Yo%m@9|Y6;P@u}G!GNH|3{1vLhJw^1TQ8Zq za(;C87GVdWJd&(6YGAGwBM-5l{bqHUhfuG-?`i&|NdAJz?$pk?eU^85K`Su*NJtSYNqlEQ~c3PdWV8#S}?Uz-> z=4LYsq&j<}_1lQ|qg~-;TN1FNcy~lgdage!ZW#YY7?UI7w>PEATfzwSEZ`-DfA9*$ zpmgOR&{xuWCC24d{$(LAe4tUJ4H=ZNlWhPi&ah;Nw1NkP9Eo_P^OmXBG}am`t(Ski zx#{s(DeruIxN9LFyb--WBN)O z1oEtR|H{OBs~?A|oiF!ri#6FPM2Gf?J7l@Z^6^y)3A#UI+AbawRK9N_wx#r;do{dd z-SJ@Tg(;5G)GUS zz~q4>$om01CJ}ZPU&3BH%&bFl3q9GgB}qlV{IP3faTHSV`y1wS`_luEC)-v$` z=58%3Ex=P?VP&+`tMR?#7|RtJUYv0c-$V$EuInU)sNk2`rF)6aev-gn_wV5KSZhP# zl41wdB7R8c8V{mUS5$b1LZ7ddB>kx`FiLcsyVTUy1wHW0VhB7=iuGEViN0Y9O!oFN zZ>sYT%8=m;#|2TfK9rZ5+2A=3_l~UH<=fIB!$GHt^Jqi{>?Uto{e|1-xakxo<$+8K zmX8LK=XL{P_t(X@yG^9L+?O(wd?)N3D6o&=rxMS%Ko}L=cuRn5=Mj4v>2X~@%S15u zj5rRR$U68ei*_s>Bf(|XP&atfr!^eebD}dHKjT92{shIVkv>8|JkW#9e2Xm6GHuP$ z>oLi_oBA^28>0RcILoEsu#b8w zFe-1hPTPQYBK)`NkMx8G;J)htn=@(cgNx?|mrVjJ!y+QgH;!SNijy{A^^}DPM}e=T zDJ+D##D%#Fm>b_$^2juvBsfVzLhJ0V5$4!m<=lvjGjBu|8oPyuojWog7NSLOwGbZ6 zCNrKeQI;dEf9arutv|z+ESanB@ThjRMNCjO=;ZsWP$YmO(u1Kj%jcwdmt`oa z+W+cjj4Zt<)yGr~RV**Hvg!3)$cb6$k|l@)VZyN~W8V!(&$a=lAA1beHHgcFS^0{Z ze9BAwj+(4FWy3!aX(dW!uK1z+BTm<#A<)Ql5+j2%78~q*(oDN8CZmzx$TW^I1&*(d z_KL$afxbEVRxP=r+SA`WVdy+&t_-GNQ;HHTV}IMHOBQST-SaT#gX2?@6c1&*V8FWQ z?pUs+>rXX3BFSJ*OAt0Rio{B1cn-1kO3-(NDZbykwOx_*l%@4lp1RYw6y8D8{R`ZZ98TmT+*>(z8dsIA?}-f7Z&DB z+0h#pL_WoX1KY5o4jM)k5|8~t8B4m>q<8nK`kJ@x2A)`2U!3-$Gw`Dg9GO_pW%s;_6u7=y0ajFlGvwHsK+jzty;?I(>^}8$7fG4U^Y|21c z`hk%gY}ZZI(A2co79;BQbO_G0o)*V+FcUu~qepQVd!mufdad1iDktreN5_(D3?H|k zG&0t=FojkOat-&?*m~W=GwsmFYeU`!M#^oc;oeaQE4%=R0})v@b0^u^g}&qNbJ>Eu zz7u%a>F95+x7PJPr0ca92$9=Kw`Z$(m|i7i&6nWxJ|20K^~9}duUV;pr&7qL&%7sH z@Cmf~QL&)$%}eS!Q*i~O&#NvGucgrAh#VRD?Edm?2rR-%IlHocEIgnkr#C7-mY$gR zDf{ATQ*hS>wqZD96fCWf85`OI+11T-LY>_fre=Vrn)z}~t;74Q6j@0zQGL&%P5z(P zWiu!38s(FaX+yG{Y==OudQdOxj4k}3x?)^CuK6eN@IB%mgbzY~69yYgSqg)93Lj*YmQ zr)x;mrHOnAQemX$XkdmGqapebs(@4m^iiwibuZ0vC`K@N`N8>Y(l&UEPb&0Dk4T_& zzX;k58MhDyc7$8+mNnwRu$8c;Uv*K9i`#tfX%rvc>!|r>)0pnwv+#T&H6NT7nVi1!q#>+csMEzgI>bcSDk( zc5dBa^y>1Vms+SxUJ;$I&xd@9vDd^1->{){vt=qoabm>Ox_|u1u2d@1)#X9b2DCk5 zhSUGz|9|>+xOu3kb^3WDd6T5z%(~rqp9@pj-=0cds2j$hjO($~SFmcfMK5S0C1UDc>wFO{I0LlFnb467G!yi`2{#9zU(YB4wW#r>w0)wPHb^il|3G544w&1*#0&ZM6Bb1B)4oGe@?6L zoAc1&-P0;^n|b04{@O$z>&g9fR2sD{2El0P^rkz+d9AV&BP{LBE@iinDCfv2Nk}~w z{Da)ZvQ~{I8kNo6l8fI(?hqtiJ1RuUi1SNTXmWEcjo6({w<)+}^5E+hEdKQL>9yC+ zp!w=_BMiyJZ<{Cj#^LLk9X2gtEPF|Yr9~`MHZzeQFG)J_fC1rJE7>-7DoUEIII0#x zNAaQMpHD$~K!0_dsWipx?Rp_GLUS)!L?n-fJ?5;iVm;D7r0<@R+h$@gA7$tZN@>Ao z@>hZKjixTYMxW%ao#9;zhrgU0t&G}yQj(cfHB(V?JR$Md3vo3O`ev~9t{|8Z zewsNG^7yT%Uc?k(!-d5&`_4!6Z4`oDfeQ;l03)TBS%9xnjvt!D%_b1F)fNM zRNV_5bQ_x8A@bHJEVclX7C|jMJW{Rm{I0cAH~eT0yYE~dn|3=!*Y)~ydxh{A6_VHD zIFJR+C%OyJW4X4)A{&bJr)+HWM?+=ldy(|RC~S%4lCp7i@hwKeT++LduR_D>+z9$i zV`ww%&u{Y{z`T(7<)fyMSYGVY#h2!>1%WD%Y25hJR(!pivvtcmk9u|`rsP2p&M51h z9e{IN_n^oslQI2UarI4>xB$;_F13z3oPGE<%;Xk@%I{L6{c)RXn)>pP$v9Vy^lf+y zGd=)3O)3NvCB=@aK%s8Jl)1j=tZu+_3f<|zu_1(#a|UbEB6mY7ZfemhY`~e9zaF-{ zRe!EX9U|*k%SO~Tft3`dCTME+8tkY9w>w>OzMVMLwP-!QdMlEft6;!-nIe5B*n;D~IE z04vy9bUn`ND<#=6ZK4-VqE+G(5$z}>K}Rb&P(yGx&q5^wI5GqJ3h^V2M;BKyW>y2Q>YLbXVgnDv}weyc)UL$6fme#R^-qNDGN;!8bIAU4J$Y z-K%#G6zGv}tXz!$X1lYxu)Mm&I#QugK$<_FT{kj4`ju$N&Pe_Ie!c@GxMV>dk)`rO zD$yZk&meTtdBi5k)vb2;gItTUY!7@WwM_B+{Enmjv7cG+&%feyWoIikl=*ou)p&>k&r zV32hQ@vEp6Jd~dXgWpwj=_!fl6gHHuIMSo&9%ewNK_}`8EN$kF9&z+?@w@^ZuS>cM zXBTnA2ry}pk`)aZ=5p?bmfoWcb(<kuAI09demGxQqs<0~9g! zCk{V3k+3>@!N?0Q^u{bM2Vp*I6m?dwbeeVSQwJBQ1QA13c18=iFL@Bz{@6X``Cd>& zf_Hj-s)S09|A*^{lDQ3ku=D~XJ}GG#5=!jSu50?aSi3ig*s{xl$7}-5O@f&b)34lT z-s(yr?0fsCHC&{z7`io$&aBot#8#ba>e?cwhl-McBMhb}I&8imvX)fPFqy-l!y8A0 zVo1@W1TO}m&9?o-eDaV5ITNa5&l$nL7>;W~SOwt<$)O%)qkzh3fQ)rolvxF@80fC! zwW-uyowopEE$jkJM3>D#-~A_|v{WJIQyie*(D;&~0{9o~d1nDa>uEm58Q zDc0GgxrBGwDQ^mIEOs4xcFjifbl)#ii*3YRYPZ?NjST%|GEXAT)%vcVIqeK`v;ODw zN@aLKp)b;ZsKZ10t1nd&*rA93@f!y2A`efD{EX0^F#@hSq@^hRjPQMgDTz)_=+Rhf zb0Y2PvRvw?;oBCMEE&TIH0Fc2k_)<_G)mm*b$s2%^N>VqDn^Y>+eqje?5!}fq+QH# z^K*r<_AsnG-z~HiZ8C=B07X{Tbp6}wEPDsXFSXS_aSYigu`wIu6e94k*eItAvhf9( zaWoe6L!4=GjMrp9ztB6E^FhIdIG9X~)j0+wEN|6By>K`@eAV6&PROU+Ua z$y>zFi(Ga8*l!PXI))B+1#Wi+31^$+C`3U0s}EV@JgW|&jDcuxd82z|Uw`K1BiWSd zQI)x|#r;z^CakQ1`Y9ZP$BTq9j#FsOx)_Z4p~`I{gbqiko#yfLFij%EL#I0(+0Wv|yR zP@st8j-1T|D=18ZM~cWlDjikpD6k4SuOXDF*#gV<9Fa}Crr6j6 zf}uj=Wzaql2`0(q1F*8nZmtdZAI)>85)s4ew&8W}c5eS2R-fe%n|wY#V4BUiZ!Jqf zDra&Pq$nvKOM3l^cB@BN`mamc8;6zw60H|}sr*8zZhFwXAc_{^El7CB{$QE5wHS?@ zoZ(E7PR99s4ps!ktPN4D^>NQRHjb}DQ~dpGIqe z$d6>4%?%gK?<|P;ghK|Z*LEZZ~Ai6!5;}&zt_0g)+@IojTS^?7Ou1p!hnL2rFz7M&O*LG`dxPv-;{=}XEAea zYJD3e!D0r+3#d%jQv~tt2!6j_roI17^H)-e&mBIWW7AZPw@e;JLIe++>x8}q>WB6= zzUebl9HP9S^tH*9#%EzI{{^q&MxEaWZyt=rFdyyatp1ppIHQT?JveJd=26_-{LI;> z^N#VbH%59kCWPP<%}r3qHGIk5xbvPK{@~pGx@Av7v3|*Z;{K-!mBtH;!Co z*HRf{E?6-p3?T^7Q@PX|Z0<^6IiMou|LC7N3Q#i>4t#@kG3?Qa5-zfJsi{LoId40r zCu%v%i7QIj-(*J=q6yU;dt?E6rj{8iK@#VUM*M6s2$4O9tE;Pp9?@pWZ;UA?XK%Qz zyOsA^LI3Tk*lVvn-H0-3u@P(uZ|pq(1FGwjeYzAWn^<+>a@J0nn)Rrfj$xkfjLK#; zv*t0q8Tr3!_y@#)x<=r%d%!#V#Z zjJ$M`CTNs?wcbCxNZjji1}B+?4hv67Pua3wi=HZ6OFYuwiYRkv4tsgBW_qla+cfXH z4V|C!=<9G!+wCrEj;8dxzIT7ZPK!K!CYI^CzZXVJ&pDpmjhonG9QxLCRSIVGPOSG_ z70(>qaTjYsqqS+&uc$I!Kk$)P_<_k4au2jxOV$5_GWMa4hn)#-S;fnmhZl9m-8>-u zf*4#v!~p(%AKS-^%jonRmExFKJW5P0rthekJKMnz3Jmq$O+Q4 zQ>SzInD=e%aqLg} z@_^>6=WPRgRaN}wO*wMWW`WI%G=i54rJtgFT)#crCA}$O#*)apKQyA}VmUVp6$>;h%az^UTTmMvE`W*U)!#|6sBxRBjokg#G!9kH=K4U!Mcd^ku*Tb{_>aw(QF}5teAAS*~bS}59v)`^;~^&YcWDjsz@|K8cNZ;k}4{J!9md5MnZ@TqAD5YbQVH)triJzC;G3Od@pUyXB+-x^8_P^zG7?cIm0M7hbBqw&r4LwGy^Yl~6Iu+3n3he_ z(f%MI5r%TFf5w|kf5H#cS`)c!$`o}XX}~fF`DlWDz|gU7WWH3KBiKNhS>Za_nC1B zvqu!hwV6x9pdBdt2yia7eE=B<{9DL9!v{_!XjF`28?EM|WQh#u(b3U!SJ@kF@w=m; z(@wce<7EZ3pMok2JE7r)m_ObDs+Kdb{6D!O+>rIaeL)KyY*fEr5HZvq#E`B8U1PdOcr|D@v6vdacF6CXX?(RYWF{l zS^pI##zcrk_ul7p%d7)i`a5F5DYKTAl$k!Bi~cQFxu7WF^*`ztAO5H&7O8nI8y~e| zYKnDhfygHud5SuBH$h2vjI}}nym(Wj|E@cv(h(WzX$ZSTLYwy16b(LZ9)=;*M_kyGgE$MVd$L0J{7 zS9L5*HSGKgG0y1RZ!g|wxIixk$gJLU9ig2uc+KuC{Ht~RjX}3x-v`Hn8jxEM2X%M@ zNp>W4NfcjvpJ{i?K&D7&e5auzbZSpI`4&zIB@S(=yNIauT@# zmxBdzOA2p2T2OYP5H>DN*YEH@n+8u0l(~Mpc`ZBD2ZEIcyBmvM)y~PaEtSC-zF_L) z;LMroUrmeG?+Tf|?fyi(Ic;RY>`@qOzvHiz{ko*I*oNWVMg6oV=Y6-GCIq?0`~-92 z8z)J(3387cbn6CVTRG2?T(h67PXv9CjLWpN&`8RZRyRiUBW-aFVwmS{Mm#|I7Ab3N zsi#Tyfyy;B2irxX(j!9qr$Q0~zyU8F^Xp}DlfCu6h!qfW*+5R?H2MrCOSBms8Nn1D zdv0rkjn%AFNP2#MU!n-=aP8+j6K;3++p z=hZyV>LsAdkSen_qE<3e-(Pl&iK#uFQr7wVIx&`P9nAd97QPa$uQvkV&sX_z=N^F0 z`LlvXHQ&KS9L7j-blmnKIl1x$>q-VtKOViXXVy0-MBcw@_!~=b9JuLY%fY`a_GGr_g@oZBSNwo$YNCRx3c7s_*Kw2jQ ztyN>kCWjoee3n&PXM1O zN|Dlb5HM9H-5I^;Ow}om09+RnHlc#e3<^Ldk_EAWaYy{wQ)QJmA*j033uWZk(Nz2` zs_T_#o@#o=KJuMiQi6?2Y6)U-)1vM!knFJoEGMqO7@Ml2jUy!;=|^_$-Dq0dLM+m5 zybNz&K{;Nv_NIKA%WG%|q3{DWgYEe0eUcL`5Mi`7q-T70^^(-2+Wy{= za0~$76F?#&+XM7!7f2EpPKj2r*c89#xlOb#szpp+YSO+krxw2m4B^(WYO&g#32E zmU`iP0EU^l8^a{|N1OsH9%) zzcA=YfmQ<uIRN0GmGF>?PlpO-+JE67;6O1`f>C7+00Ur_Rw{$;8 z&-e~`vQ>qCmnpIJiLRV%XK$``g;0oj#JF0I*UcQFczYv{Pm4<5l9+cdXGh4^4+bH< zK77LMlTNZ<_{v)S#n{XFuT1zwy6}c|1UFX{p1I->&j=+%RDXX!+h&p5zU}ko&)qLz z@)0+{XUD^oj1Jss8{0Z2+bL-#JIl?k|4V%5OeA^*I<8dOpC9M$W}DgvJ&k=6=ZyVQ z1l00&HhQBgDk>%puSl>W8u4APZZ%=fwyR%EU_#k^Xf$6M(w89F4fUOC2QsZ0!RlUz zER_Z9nEYcI5jP9{S#~`79*MRuxdrNBg2nj+3SDE8?COh=BCGyNo28ps8TEY4Z}NOj z?R+rGt9()Dh*@rfId22jHEJ2!R!Vaj;|2&snc9)t^Px zxmNg{o93-rzhG)+hDf_L>bSg2VH#%_Xjf25>{1EwUc$TJuMVs_8o{R#`+9hDCiP(o z#Uz-Nrd3Ks&73^qbiw5WS!a^`lO~#M*mj4=LcjaYZDbD_YtM3{&gou-X^G8gPU1%V zSoQQszo-X|AcF~)^GVoR?T31bA&T*i+HNlg+Sq~}P1CS7hm&Ry6kK7d_9oUs&iiAK z6C7Pbr^WIpQ9%If>uY?ZB0PSMm=P?R>Wr^QeSHrVz0EuW^Es8~|DalXV0wF{BvRee z+>QwjU3tej@VvbeS~^iUhR(0MF>)P27yleBB`VS7?bqU8)8(iII}OWl$@y197~@Sp zp-DQjA1;}X8Sh_Ieq?L)cS%;zOWH%Qiftt5qbrg6H_11%8iJRS#p#0eCLzhRl_Gn7 z^YjzKSuHny;Hm1r0X}xf)vBF_vTlP;XN!I|O1PoSwc*KQ1uXYXg$^-yQ%~~4UObIQ zr}y3`Na?Z{w;pE>hS8IZxd;iNkD!=1oyeSX2Fx@mlM zi;;To!nC8nDg#N-ipl&LM?ejbAO)hp(rd2k1`ehk5P}7PWbHGsTQLLV)bDhCz;Fgk zaoJwSe8!ONPsS4NQFCg!Ta`*_=`sCXqGd~Mvf%+uFuyxN*ME9~ffq?#i+WO-A1vHk z`$_A~H}=JNUOBN^-j>thGrU(c;Yy#DrVo{7R#2C=B=u+r-_Jo3)oe97OEDZl`2Z|mB51kU0(fT{|mGI zu#PUZP`9)cpiAdSVd^)8h9HExhx?t9~MU#QY z#@HWIM@C1_Pd{LX{q7h{pLCYiNClIT^5$SY+#DB)EXBss7yA4pTYuwEE~BRj{bVkj z{yRf)eOs*i;m@R3Y?-QzA_5w&meX0iq!xA9g#*H!w+0Vc`~nPS0Vd;~&M8@NSQ$CX z%R(GMgrDwHsjDQ!=9jb;4Tb2;XE5V>#K0bP1T%tidmmWmX%*2dT&R}rLB?FPju8A- z@{fvd_+?REt_BgSc*oVKRc%TT8^}!g!{n?OSNEB-2l)b=eUO&m7lYX zV|hk0;i%iNz)0W=RTy0oxg!B2@kD9@s?SU&uoX%j3ii8xwGjda&-Ve!XkB1|Ru`9? z?Vm_iORQ>QHF^E;)#0-chz(y7oI@`@U+)b|Op(AlZ~HHQ_qP$PwIeDV)mYh!BN;T_ zd68;qN>Wp_ur>dP>9cKFC|VJyGJ|@=8@2YJg_p(6mitFUq07+`G&&eb%Uyv)+RYEN z-IIFU+3W6Wvsxilt@{7&d>UG#BqI|5VN`1*-ruX?ELR$ zyekmu`G2e_aM{Jmxmo|Qsbn1r&QOhT^h|9<77VTa+*b(pXV-5QDX*^@o;`K^ByF)b!!Lf>j&831+yYn4>47runbo3 zMGu|YM;3QNuYw8$I7w87z1Re=C-5JSUaln8=8@txi3FHmomizplg_+GqPf}!Y{0T? zGEGaC{{FcDIpV!2d`$a1$~VeO-T5t=_hps@*gvxj3;@wM@PI7z$jF9q=xB3La4))w z&St$tOIhAvQHv|5TFyOPnB<6HQw#s42YkExyw+Y9m$vs$RFSi~@DNGUkr0!`mNaIn zfb4Pc8;ZQABWod#BVDm7*Cv>e0xR&gZDISvZ@e}yg@&dI@l{e83eGAB^inlbh1&e7 z?cdC5>kO6&6`iF^+#JQ9|LnLoalT&GYrh+H0&>y-XUma9O`aUJH?*WzjHLvTIyS0j zPg^4$Z2)7aFn<6esxY4=WZlGu{Z7Ae_lJClyv9Fz-LhrDomr_0xIaA zFMM}hFCyQc)+D@))^7BrI%{e!F{0VTdhm!gGrO8`fP_Z&#}2BIThD$Y?PbL0`sB31 zQBwcA1xUshYvtja4)l$-vYON8e(Y&^zJNoFG9k~BK)-0M3VKq*!Sy`jLEQ{R|9b?{ z-)KCD+wZ+65*dkc4O<2Z)0n=$>SM&DldmQaBmC%Sj}8HQyAY`*)L@j$w7q{9JBybS z#IYVUGLg8ti2`HV_A`w?5d!spxH)1}`oI(1m^*cJbYmCWOh1cdIxQSuo4fvRf|}Uj zN=deanX4y^W|*g8O2dxg`PVwf1X{h0B2UH^$w#`BZutn1f4`PWpgJDy7sChbxZRoS zfwe_yflqHDlV5EE-J`yusnVm?b2+AZyt^&NS<5MET-~eT{pg!S{A1KUv>Gtll768e z$w0Ts!MV*gDc1N|vO`gQZ^M`sauvl{{`(QiB_$1*&;hkMrW9HnrAS|`c|U;WTLW3P zq8)bz9l%h0i`BD^!-xc-L36MchH43uYl>!xa zM>B=5zVA*%(*cpl>uqH-b_FTjo1c-TZC;V=%E!>E@YV??vu#w=xpuu>_K65hXTbUO z@1X{PXLibtZ@)pL!GHs`i1z9I$6GIs9>CWmCGt3KSe#*a2>C@V-uIy1ub z@b+E$%v$5$DgZ&pl;f^M3i~`vgW_5@psH+;_aRDDW4(h@obIt6f4ET3G7kl@!)3T~ z#nz_8{j~2%^&_6r>v;98>8zG%N5CcqgpC&28rWwpn_ZR9ZCi7H=vxxg zc@ic^$|xx05@Yt`XS=hMcmX^9UHtQN^=Yh=@6YEau*!UsCl>~UNL@J6p3{Um4vI@b zY^kajs!>(=J+L|QYa7j~s}zo@m|%f=klA;Ins<^+Yp=+S)<23$D(FI~>?vl$%|8f6 z#WiAF3> zD#A%efnD|0^G4+SJd_{b3-ffWq6GF1hi9Oim02 zCOySN{X3cxX>WNqJd5DO6>a_3eIsNsv5{}T2?pa92c`Uj3CU$JSm2T!z_DD;gQBUId|5Devv2^j6abvCltsYWP47 zSZ{vGqAWe(X7zBd04_P=fRnV_`LbLfXmAJ{#4>)7?YcWY$K=5Cj=9`w<>YR01+#gT zadqVw^u?Y@47~nolY*>Pq0l}sg^^W8FF!ed#03Tj{O4hdJLIdks7p&r6e1qks%3sg zh%vL7#?}2!F91Q&+^kSPvjcqDNX735=+kXtnjfx2h>fRLeBc15GXXz4u&=JIZH{G# z8Q5b$AEeVv(w^g|RluV(7Xt+GNz$%6%X-Fs#};n)*jTrU3P7NiQp?QWKi?N?9GSz4 z(X7fWZGjY1+Yw^y(tuxoEKr^P3)K}W>Ky5DPR4mZ7n5Z?AcL%sN}VY2Uc?wuP>BR& zP@M_EWNgXH0(@Z2Yk!x#;OozSl^=TghdFZO$PI7q+#D(U2dW%ibTBiIAcn6ZhHpZ) zH-H7(L#PzxhB#m1+mFSA>P}kPzQ3iF;I)+@|Lk0j@6Pk=z6STrhZr#%7Yp78|F!#D zg5`nYGi3?Zx#Gy8OyA8~B7&`ZWah_v)+I;-b3@@BtV`Xz%yR}0UDGS&v z;nYa7Itgq@TY~g~9nVdaug974zJcu`NZ5O2kgPikw)$G`u;$h}tSfOgxUmcG(Mq6| zCe0e8jfAWVR>MQW@)u?cT8cZy_zl7_V64YFM`0YJ+%hRW8^e;TeZ%s0$)&A=OPeJt zy^@WgWmte08lfU+79Od@j`Ya~uwr7ybR|2r_4i@6AgJ0!?dw>9cd7++En%-rODgtz z*W7r#A1^>fBOgS_soe#}>+`~^}?a1wY{JwJW z_1@#+2P`Nu;)S&|WQpSNQkNvrcg(E$JJppdSNQzrKVLI62D}dns58Z#0_Q-8s z-lNlu>0pa|>k=l)po}T7g+X{A##ISCN~`FKEJzZKP$~d&tw>XiN)-r)PD1jAPLgXu zd-R&{KBNao6&|CKlqxCFi9}0KDjYKihjBsOQ8o4|V7L>b2wJLe4w6B>CWJ%@5z|4! z#n}O69$b;j(vs(nt=@#S?Sj>Q&ieL{QnmTyPyHN!=@mvQFUdJE);UDtii!WlV4Ysy>q=~Nc#SX3G3OnZ;7XW=xNe4!#P`n^1_sq#g1AmpXL-rPF@t4vWz2{E{=@4 zKXH7^2*B&Ll-%W;6U}a`>!nhmk)U-#suPk#10pumL-ueLky_+AqtS>%hYpjb>5V+5 zZl;v|gHwVM-*^yn?=PcY|69n(WoR7&3@*QdR2hxYmzg#nz_vdPF6S;df9H|{db!0* zMebp}2r_LgL&TW(U_@{)-!lV$`@@#RvJn{rVex`N}%%*#pkuO<<{fV%c<--@TghQeW|S7ar=sVivB8 zg^v#G7PcL%m9Sw$M4ESjF|UBRiJ;t=z=T;>LOh8{5ezVNl8|JYqzSqKSorjeVJY>L zcMvKU1W>-ZIbwBd$Yy`SF!vNloJg@goTRmuG!jK4k!UT@UNFrIa6}nj1*F1aIRJ4J z=YvfE<;K?kt`^RT4hV;ss_w9+W40$7$oqPjcw%vwX9=d{~xn$0GSMi$w5BAZn; za|CD=G!ySIhbQ9rgN=rCb$O3-Db37Lwmal`L9giXyTALpbY?m{^UO1MS@Z9!1apTT zVDsEJQKdm7DOuK_OvBu)bV12tT_wM?SS2W}18K;z0M>O97M&_KVYOBuCEnS(8ECvi z3xP;fZA=J006P>Y6{OIyY3Bj06iN%c6IcUMDZGs%h+0A|mk-@M;e%?)Bd{h!T!rJz zMWv4*$x@&MSz>%J*0kP{?K#9x{?)(3$3OKfLU_s#pvl|Y%X`noix+X$k~EvK>FZ*{ z!^JU}GJp^n7{T2j!p4!D;I1B;BSjwANb6j@rbG~<6yEvxIN%85OU^kGttq4;%~IxP zXUWo(ey_*s>J^@UeoX7x7JK&Wd0!3IM3g~)=R4ow8{hZ_)9I8wdlvbLAOCT(ETg=8 zzIk6uN=Z=^T)w=_)^;zBE;LEA6slx0!N*G=uCvUAPL^J#Ez&x;r#YHE*4>BIU+>{{D6A)?C$pajA? zoRDE2)CLa@oIqeG$^hKcG)1K$GPvEDq1kM)v9ZDO$}-Mb@~I$6qS@kWukrDZfBc5- zhYvVoUQKDfy>s;YLtebF9gvWWGo0QdoW*;~(8BqtA%osFTU%RfZ*MUkjhIfxOr}%DlPQzQgvoTuWHKe6PAQ6< zvJ4$uYfa1;b`_T#p0kp+$IS3*Q4zAkt8`5P$iQYIYR|aZF|=Y?#ZLZs^%(W7GM1BS zS1g(caxPIlca@`Ff%tl@9sW}>_?6DTnp=;v>($RHrW|~fyNBb}RbO3@fH`A1c3_^_ zPBXG&cV0;;`NlWC!Pma_HOjK2)oM``1(V5ycB@Sz%P7i%>X4}RYqdyrJ}~7rHgtk~ zZ@2sG?!`$#8C}_pb(E&8S@O;AzNE>uipARLxK{;Z<%CY(ozj8cf=6L=Bbm$gEv zxCpLu?N!(gLcXUUY^SWGY89gu8Gh$|IQJ;IGt2BEK#aM=jYN}3iA*&=__@Eq5B|tc z;cSV$3%Za}((m_q@x>P@joD?kCYYO>rO{}hd z{LA0{U3$G9Lcq`d?9cMxM;?p}=iPcgODV;0(C6isUgYxf3Q3aEYBy8FElNfm__uX}l3)Ltq9 zlov57)I=BdonsHGwNgE>7yexl5WD1u5M2K}@iL zn$QG(X+GznrlY(A4>KVmBc3I6nkn5*#^P*?g9~kr?VI7=gL53)*JZwwVv2&^AY`M4 z8FYt;=YvWbB}AP4j{rL?R$~-e1joTxFUE63b~8vmgFA8nKpLgu;yQxq+QD4}S!!4` z2M`_{zE!-*FgvO$nY!39m8%@sD{#Hros=DrU0tB+ne$kFmxTSA@~#Gc*EpFv7bW}- zV}jwq(S5Vb%`~q|^1-c8T5G=ar7!W?Yp+q3hGw$`c*f%~Qc7m$<|vDzHcg6IcQpv! z0nn9<-Rv;zMUd>3ri@OsWj*g^tz(i;5eU*G4N+OU79&CGy93Uvne#l)8IMDR&~P}c zo!+Z>HlUWiswjz;5vX}zJ*KPkWo=~U%E~pjEGbQavtgdIG=|3?fBc$e#NB!~CD2LA zbhJ%><;~hP+dE5Hl#v;=I1`Kmb=+4;s!6pX%QVeq8d$9)%%~@c3g;>x);6ACKpB)4 zQT-x7#Pf_)GDzCvc|^+S(k^1x+Q%ddZ}7(8Oo0*v^FS9AV74rG8hW+KWMr)3TE;mW z$7*Dh=!fUB&Qq!;4}IoeXJ&3OjA7laIwI}NnKL1RF->tce0DpX7LBYK#!O<vP))*A9@!FV(xpG@fu2K0M9_AV{4xVT8O)r@Z0;c=|D_3XKImdY=qEQ8@+ zX)I+-jo94UisYa_HXHS!aM2B;Z5Q2Ss_i^mlQHH|_ z)9C~ebIxaH=XmxxZ!V8cK*V3-j>_1ga|If>*JDO^5EDgJf($H2kC7UA7+SgS01tqe(rw3rAd>| zUjfqs79FS8Jpaybzs2&P;IDq-7)lE4bzu7n>u6@0|M0U9@X-Da|LIp&czvya*)G1( zz}pmz!K)IfbF@l8YotsuO5tLhl@ej(SVTt7N2))tZXMGJ^?XHt~1)7x%bD>&?5rb4~(nOQ!z+7q_7FtRCs#V2` z1m;Op3+w7a6j65tu0;j3eLQBWe*jW=oR4ns@o%N@!DAraU;n+32ut;?$}nM5Q5QY#DxnN!alVj&$r!fA*H0(>#=ufFG-S8mLqI6DwjP96EI9E^Gdt$|HnkX7M;lYZgX5oK{G! zNs|Oylz6FdI2;n|*qPZD;SA@417&@V5K&PT7cu`59UCc$-;k>nTDhuZl70+k3 ztW`e3J21h}66e7NAGaL#mKI3bKxY3#Uq45NQ*ZvCTM7+cC=?2%xDST zauf4|Z>g$2%WG?E*cb&SrNoQyc^r+$%uFXJ9pf&QLJ3)qlLVl?WBi5>j??*c5&)4g zj0OXgQXwj>(FlGMQp9m57q2w};lg-?wZW`ZYaPa1qM4*l5;iwCcU!GN!S{p)<~`R5sr$2jZw@z4G^&p!KX{TO%a{i^Wk9}fGh zE??%AmxJkBBg@Dd!FQy()~lGrBBerzpx`=q@E|kYE@_(Zv8SG5d%MSYJO<&Jn_Hke z(_s=-hsK0>(BQfrXUU_%X^2RR*O#)&D|dKb`6h&Ok*}^-QM*$e-%`kM?ujP0)>xeK z!6=iRHH(PrX=5G27^*1P$#~35FMbDWEss9>C`XSTzW=|mQMyS;#5R}eyb!0%KAYi+2%#b17h=5r+9!_j;k`5bzyIZFzVy}_ z%*;WviOWh{8dMxsYmCwuRfd^mnbwRfM58WGSVVh^b0)A4QIM`=VE3vEU7Bf9|)k_z#D6(`XgIdTKMdpcJk+(mV-}RWT zR$e&ou-4<93G>`O%H87yLhAs$gUOcO$-mYbEmdv4R7*(f*>br9zAM)I9n^!>Mq&H--nn;tO?2$AKC0097n16ZWThsqE}xlNxLxy0hDFQWIUnOYEs$~UFxv^ zDgYj(%0UFNOFADT*j&s?uM7-lW@dI8ED-06}W3`bpkew1F|yu}s)OxYriuUHe={gAIN zl)?#tOafSg_)t|7)A?|Hh0tP<5^sb0NF|Dvhw)$&XYb5&$a^gz1bLCOwY^m{#8OI} zk`&V^qv4o-Ye<@9q-jvCq-layIvgue=~6}J0TBR&bIWKnVtc#C-0Uo!c00Pgt7s(W zv4D(mXAVk>j(>$jr3(_p*;GqKqvr|u57K}$@ifFD@#fcV0Nm=9}60NKv(Mn8d zFs7{cv3FJ1aA%zp&QR6pOl;CrrrB`~CWOZOFaj1LD62*|AYy}1h&V129#INGSqM&@ zdYwk2$)Q7s`LRF$W6aIX@zz@x{'name': 'name', 'emoji': '🤣', 'hasSkinTone': false}); + }); + + test('decode Emoji without hasSkinTone property', () { + final decode = {'name': 'name', 'emoji': '🤣'}; + final result = Emoji.fromJson(decode); + expect(result.name, 'name'); + expect(result.emoji, '🤣'); + expect(result.hasSkinTone, false); + }); + + test('decode Emoji with hasSkinTone property', () { + final decode = { + 'name': 'name', + 'emoji': '🤣', + 'hasSkinTone': true + }; + final result = Emoji.fromJson(decode); + expect(result.name, 'name'); + expect(result.emoji, '🤣'); + expect(result.hasSkinTone, true); + }); +} From 2b95fe1f72ae8479ee20c086d80a99d81fee75d5 Mon Sep 17 00:00:00 2001 From: lianbq Date: Fri, 16 Sep 2022 14:44:54 +0800 Subject: [PATCH 03/12] wallconnect sendTransaction add gasLimit param --- .../providers/ethereum_walletconnect_provider.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/walletconnect_dart/lib/src/providers/ethereum_walletconnect_provider.dart b/packages/walletconnect_dart/lib/src/providers/ethereum_walletconnect_provider.dart index c67bcb26..291a33f2 100644 --- a/packages/walletconnect_dart/lib/src/providers/ethereum_walletconnect_provider.dart +++ b/packages/walletconnect_dart/lib/src/providers/ethereum_walletconnect_provider.dart @@ -84,10 +84,11 @@ class EthereumWalletConnectProvider extends WalletConnectProvider { Future sendTransaction({ required String from, String? to, - Uint8List? data, + String? data, int? gas, BigInt? gasPrice, BigInt? value, + BigInt? gasLimit, int? nonce, }) async { final result = await connector.sendCustomRequest( @@ -95,12 +96,13 @@ class EthereumWalletConnectProvider extends WalletConnectProvider { params: [ { 'from': from, - if (data != null) 'data': hex.encode(List.from(data)), + if (data != null) 'data': data, if (to != null) 'to': to, if (gas != null) 'gas': '0x${gas.toRadixString(16)}', if (gasPrice != null) 'gasPrice': '0x${gasPrice.toRadixString(16)}', if (value != null) 'value': '0x${value.toRadixString(16)}', if (nonce != null) 'nonce': '0x${nonce.toRadixString(16)}', + if (gasLimit != null) 'gasLimit': '0x${gasLimit.toRadixString(16)}', } ], ); @@ -121,10 +123,11 @@ class EthereumWalletConnectProvider extends WalletConnectProvider { Future signTransaction({ required String from, String? to, - Uint8List? data, + String? data, int? gas, BigInt? gasPrice, BigInt? value, + BigInt? gasLimit, int? nonce, }) async { final result = await connector.sendCustomRequest( @@ -132,12 +135,13 @@ class EthereumWalletConnectProvider extends WalletConnectProvider { params: [ { 'from': from, - if (data != null) 'data': hex.encode(List.from(data)), + if (data != null) 'data': data, if (to != null) 'to': to, if (gas != null) 'gas': '0x${gas.toRadixString(16)}', if (gasPrice != null) 'gasPrice': '0x${gasPrice.toRadixString(16)}', if (value != null) 'value': '0x${value.toRadixString(16)}', if (nonce != null) 'nonce': '0x${nonce.toRadixString(16)}', + if (gasLimit != null) 'gasLimit': '0x${gasLimit.toRadixString(16)}', } ], ); From 0ddcdecb20f4da9e78f241f135f8972cd3e057af Mon Sep 17 00:00:00 2001 From: lianbq Date: Tue, 11 Oct 2022 12:22:02 +0800 Subject: [PATCH 04/12] WalletConnect special displayUri for Trust Wallet --- .../lib/src/session/wallet_connect_session.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/walletconnect_dart/lib/src/session/wallet_connect_session.dart b/packages/walletconnect_dart/lib/src/session/wallet_connect_session.dart index e0ef162e..8a174edc 100644 --- a/packages/walletconnect_dart/lib/src/session/wallet_connect_session.dart +++ b/packages/walletconnect_dart/lib/src/session/wallet_connect_session.dart @@ -97,9 +97,16 @@ class WalletConnectSession { handshakeTopic = ''; } + /// Get the Trust display uri. + String toUriTrust() { + return '$protocol%3A$handshakeTopic%40$version%3Fbridge%3D${Uri + .encodeComponent(bridge)}%26key%3D${hex.encode(key ?? [])}'; + } + /// Get the display uri. String toUri() { - return '$protocol:$handshakeTopic@$version?bridge=${Uri.encodeComponent(bridge)}&key=${hex.encode(key ?? [])}'; + return '$protocol:$handshakeTopic@$version?bridge=${Uri.encodeComponent( + bridge)}&key=${hex.encode(key ?? [])}'; } factory WalletConnectSession.fromJson(Map json) => From 48955f7f1246f9392a1a98043bd11b3f6c917fa4 Mon Sep 17 00:00:00 2001 From: lianbq Date: Fri, 21 Oct 2022 13:30:21 +0800 Subject: [PATCH 05/12] add coinbase sdk --- packages/coinbase-sdk/.gitignore | 30 + packages/coinbase-sdk/.metadata | 33 ++ packages/coinbase-sdk/.pubignore | 2 + packages/coinbase-sdk/CHANGELOG.md | 3 + packages/coinbase-sdk/LICENSE | 1 + packages/coinbase-sdk/README.md | 75 +++ packages/coinbase-sdk/analysis_options.yaml | 4 + packages/coinbase-sdk/android/.gitignore | 9 + packages/coinbase-sdk/android/build.gradle | 60 ++ .../gradle/wrapper/gradle-wrapper.properties | 1 + packages/coinbase-sdk/android/settings.gradle | 1 + .../android/src/main/AndroidManifest.xml | 3 + .../CoinbaseWalletSdkFlutterPlugin.kt | 194 ++++++ packages/coinbase-sdk/example/.gitignore | 47 ++ packages/coinbase-sdk/example/README.md | 16 + .../example/analysis_options.yaml | 29 + .../coinbase-sdk/example/android/.gitignore | 13 + .../example/android/app/build.gradle | 78 +++ .../android/app/src/debug/AndroidManifest.xml | 8 + .../android/app/src/main/AndroidManifest.xml | 41 ++ .../MainActivity.kt | 26 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 8 + .../coinbase-sdk/example/android/build.gradle | 31 + .../example/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + .../example/android/settings.gradle | 12 + packages/coinbase-sdk/example/ios/.gitignore | 34 ++ .../ios/Flutter/AppFrameworkInfo.plist | 26 + .../example/ios/Flutter/Debug.xcconfig | 2 + .../example/ios/Flutter/Release.xcconfig | 2 + .../ios/Runner.xcodeproj/project.pbxproj | 551 ++++++++++++++++++ .../example/ios/Runner/AppDelegate.swift | 39 ++ .../AppIcon.appiconset/Contents.json | 122 ++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ .../ios/Runner/Base.lproj/Main.storyboard | 26 + .../example/ios/Runner/Info.plist | 66 +++ .../ios/Runner/Runner-Bridging-Header.h | 1 + packages/coinbase-sdk/example/lib/main.dart | 143 +++++ packages/coinbase-sdk/example/pubspec.yaml | 84 +++ .../example/test/widget_test.dart | 27 + packages/coinbase-sdk/ios/.gitignore | 38 ++ packages/coinbase-sdk/ios/Assets/.gitkeep | 0 .../Classes/CoinbaseWalletSdkFlutterPlugin.h | 4 + .../Classes/CoinbaseWalletSdkFlutterPlugin.m | 15 + .../SwiftCoinbaseWalletSdkFlutterPlugin.swift | 158 +++++ .../ios/coinbase_wallet_sdk.podspec | 24 + packages/coinbase-sdk/lib/account.dart | 27 + packages/coinbase-sdk/lib/action.dart | 33 ++ .../coinbase-sdk/lib/coinbase_wallet_sdk.dart | 113 ++++ .../coinbase_wallet_sdk_method_channel.dart | 24 + ...oinbase_wallet_sdk_platform_interface.dart | 47 ++ packages/coinbase-sdk/lib/configuration.dart | 40 ++ packages/coinbase-sdk/lib/eth_web3_rpc.dart | 131 +++++ packages/coinbase-sdk/lib/request.dart | 19 + packages/coinbase-sdk/lib/return_value.dart | 33 ++ packages/coinbase-sdk/pubspec.yaml | 31 + ...inbase_wallet_sdk_method_channel_test.dart | 25 + .../test/coinbase_wallet_sdk_test.dart | 44 ++ 87 files changed, 2788 insertions(+) create mode 100644 packages/coinbase-sdk/.gitignore create mode 100644 packages/coinbase-sdk/.metadata create mode 100644 packages/coinbase-sdk/.pubignore create mode 100644 packages/coinbase-sdk/CHANGELOG.md create mode 120000 packages/coinbase-sdk/LICENSE create mode 100644 packages/coinbase-sdk/README.md create mode 100644 packages/coinbase-sdk/analysis_options.yaml create mode 100644 packages/coinbase-sdk/android/.gitignore create mode 100644 packages/coinbase-sdk/android/build.gradle create mode 100644 packages/coinbase-sdk/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/coinbase-sdk/android/settings.gradle create mode 100644 packages/coinbase-sdk/android/src/main/AndroidManifest.xml create mode 100644 packages/coinbase-sdk/android/src/main/kotlin/com/coinbase/flutter/wallet_sdk/CoinbaseWalletSdkFlutterPlugin.kt create mode 100644 packages/coinbase-sdk/example/.gitignore create mode 100644 packages/coinbase-sdk/example/README.md create mode 100644 packages/coinbase-sdk/example/analysis_options.yaml create mode 100644 packages/coinbase-sdk/example/android/.gitignore create mode 100644 packages/coinbase-sdk/example/android/app/build.gradle create mode 100644 packages/coinbase-sdk/example/android/app/src/debug/AndroidManifest.xml create mode 100644 packages/coinbase-sdk/example/android/app/src/main/AndroidManifest.xml create mode 100644 packages/coinbase-sdk/example/android/app/src/main/kotlin/xyz/tribes/coinbase/coinbase_wallet_sdk_flutter_example/MainActivity.kt create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/values-night/styles.xml create mode 100644 packages/coinbase-sdk/example/android/app/src/main/res/values/styles.xml create mode 100644 packages/coinbase-sdk/example/android/app/src/profile/AndroidManifest.xml create mode 100644 packages/coinbase-sdk/example/android/build.gradle create mode 100644 packages/coinbase-sdk/example/android/gradle.properties create mode 100644 packages/coinbase-sdk/example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/coinbase-sdk/example/android/settings.gradle create mode 100644 packages/coinbase-sdk/example/ios/.gitignore create mode 100644 packages/coinbase-sdk/example/ios/Flutter/AppFrameworkInfo.plist create mode 100644 packages/coinbase-sdk/example/ios/Flutter/Debug.xcconfig create mode 100644 packages/coinbase-sdk/example/ios/Flutter/Release.xcconfig create mode 100644 packages/coinbase-sdk/example/ios/Runner.xcodeproj/project.pbxproj create mode 100644 packages/coinbase-sdk/example/ios/Runner/AppDelegate.swift create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 packages/coinbase-sdk/example/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 packages/coinbase-sdk/example/ios/Runner/Base.lproj/Main.storyboard create mode 100644 packages/coinbase-sdk/example/ios/Runner/Info.plist create mode 100644 packages/coinbase-sdk/example/ios/Runner/Runner-Bridging-Header.h create mode 100644 packages/coinbase-sdk/example/lib/main.dart create mode 100644 packages/coinbase-sdk/example/pubspec.yaml create mode 100644 packages/coinbase-sdk/example/test/widget_test.dart create mode 100644 packages/coinbase-sdk/ios/.gitignore create mode 100644 packages/coinbase-sdk/ios/Assets/.gitkeep create mode 100644 packages/coinbase-sdk/ios/Classes/CoinbaseWalletSdkFlutterPlugin.h create mode 100644 packages/coinbase-sdk/ios/Classes/CoinbaseWalletSdkFlutterPlugin.m create mode 100644 packages/coinbase-sdk/ios/Classes/SwiftCoinbaseWalletSdkFlutterPlugin.swift create mode 100644 packages/coinbase-sdk/ios/coinbase_wallet_sdk.podspec create mode 100644 packages/coinbase-sdk/lib/account.dart create mode 100644 packages/coinbase-sdk/lib/action.dart create mode 100644 packages/coinbase-sdk/lib/coinbase_wallet_sdk.dart create mode 100644 packages/coinbase-sdk/lib/coinbase_wallet_sdk_method_channel.dart create mode 100644 packages/coinbase-sdk/lib/coinbase_wallet_sdk_platform_interface.dart create mode 100644 packages/coinbase-sdk/lib/configuration.dart create mode 100644 packages/coinbase-sdk/lib/eth_web3_rpc.dart create mode 100644 packages/coinbase-sdk/lib/request.dart create mode 100644 packages/coinbase-sdk/lib/return_value.dart create mode 100644 packages/coinbase-sdk/pubspec.yaml create mode 100644 packages/coinbase-sdk/test/coinbase_wallet_sdk_method_channel_test.dart create mode 100644 packages/coinbase-sdk/test/coinbase_wallet_sdk_test.dart diff --git a/packages/coinbase-sdk/.gitignore b/packages/coinbase-sdk/.gitignore new file mode 100644 index 00000000..96486fd9 --- /dev/null +++ b/packages/coinbase-sdk/.gitignore @@ -0,0 +1,30 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +.packages +build/ diff --git a/packages/coinbase-sdk/.metadata b/packages/coinbase-sdk/.metadata new file mode 100644 index 00000000..8472cbae --- /dev/null +++ b/packages/coinbase-sdk/.metadata @@ -0,0 +1,33 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled. + +version: + revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + channel: stable + +project_type: plugin + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + base_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + - platform: android + create_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + base_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + - platform: ios + create_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + base_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/packages/coinbase-sdk/.pubignore b/packages/coinbase-sdk/.pubignore new file mode 100644 index 00000000..5986edca --- /dev/null +++ b/packages/coinbase-sdk/.pubignore @@ -0,0 +1,2 @@ +example +test diff --git a/packages/coinbase-sdk/CHANGELOG.md b/packages/coinbase-sdk/CHANGELOG.md new file mode 100644 index 00000000..f262391f --- /dev/null +++ b/packages/coinbase-sdk/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- iOS/Android Flutter support diff --git a/packages/coinbase-sdk/LICENSE b/packages/coinbase-sdk/LICENSE new file mode 120000 index 00000000..ea5b6064 --- /dev/null +++ b/packages/coinbase-sdk/LICENSE @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/packages/coinbase-sdk/README.md b/packages/coinbase-sdk/README.md new file mode 100644 index 00000000..43dbeeee --- /dev/null +++ b/packages/coinbase-sdk/README.md @@ -0,0 +1,75 @@ +# coinbase_wallet_sdk + +A flutter wrapper for CoinbaseWallet mobile SDK + +Note: This wrapper only supports iOS and Android. + +## Getting Started + +```dart + import 'package:coinbase_wallet_sdk/coinbase_wallet_sdk.dart'; + + // Configure SDK for each platform + await CoinbaseWalletSDK.shared.configure( + Configuration( + ios: IOSConfiguration( + host: Uri.parse('https://wallet.coinbase.com/wsegue'), + callback: Uri.parse('tribesxyz://mycallback'), + ), + android: AndroidConfiguration( + domain: Uri.parse('https://www.myappxyz.com'), + ), + ), + ); +``` + +### iOS only + +```swift + override func application( + _ app: UIApplication, + open url: URL, + options: [UIApplication.OpenURLOptionsKey : Any] = [:] + ) -> Bool { + if (try? CoinbaseWalletSDK.shared.handleResponse(url)) == true { + return true + } + // handle other types of deep links + return false + } + + override func application( + _ application: UIApplication, + continue userActivity: NSUserActivity, + restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void + ) -> Bool { + if let url = userActivity.webpageURL, + (try? CoinbaseWalletSDK.shared.handleResponse(url)) == true { + return true + } + // handle other types of deep links + return false + } +``` + +## Usage + +```dart + // To call web3's eth_requestAccounts + final response = await CoinbaseWalletSDK.shared.initiateHandshake([ + const RequestAccounts(), + ]); + + final walletAddress = response[0].value; + + // to call web3's personalSign + final response = await CoinbaseWalletSDK.shared.makeRequest( + Request( + actions: [ + PersonalSign(address: address.value, message: message), + ], + ), + ); + + final signature = response[0].value; +``` diff --git a/packages/coinbase-sdk/analysis_options.yaml b/packages/coinbase-sdk/analysis_options.yaml new file mode 100644 index 00000000..a5744c1c --- /dev/null +++ b/packages/coinbase-sdk/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/packages/coinbase-sdk/android/.gitignore b/packages/coinbase-sdk/android/.gitignore new file mode 100644 index 00000000..161bdcda --- /dev/null +++ b/packages/coinbase-sdk/android/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.cxx diff --git a/packages/coinbase-sdk/android/build.gradle b/packages/coinbase-sdk/android/build.gradle new file mode 100644 index 00000000..685df7db --- /dev/null +++ b/packages/coinbase-sdk/android/build.gradle @@ -0,0 +1,60 @@ +group 'com.coinbase.coinbase_wallet_sdk' +version '1.0-SNAPSHOT' + +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +rootProject.allprojects { + repositories { + google() + mavenCentral() + } +} + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 31 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + minSdkVersion 23 + consumerProguardFiles "consumer-rules.pro" + proguardFiles "proguard-rules.pro" + } + + buildTypes { + release { + minifyEnabled false + } + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "com.coinbase:coinbase-wallet-sdk:1.0.3" + implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3" +} diff --git a/packages/coinbase-sdk/android/gradle/wrapper/gradle-wrapper.properties b/packages/coinbase-sdk/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..491a1b63 --- /dev/null +++ b/packages/coinbase-sdk/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip \ No newline at end of file diff --git a/packages/coinbase-sdk/android/settings.gradle b/packages/coinbase-sdk/android/settings.gradle new file mode 100644 index 00000000..5e747b33 --- /dev/null +++ b/packages/coinbase-sdk/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'coinbase_wallet_sdk' diff --git a/packages/coinbase-sdk/android/src/main/AndroidManifest.xml b/packages/coinbase-sdk/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..0f7f9f02 --- /dev/null +++ b/packages/coinbase-sdk/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/packages/coinbase-sdk/android/src/main/kotlin/com/coinbase/flutter/wallet_sdk/CoinbaseWalletSdkFlutterPlugin.kt b/packages/coinbase-sdk/android/src/main/kotlin/com/coinbase/flutter/wallet_sdk/CoinbaseWalletSdkFlutterPlugin.kt new file mode 100644 index 00000000..be57f94f --- /dev/null +++ b/packages/coinbase-sdk/android/src/main/kotlin/com/coinbase/flutter/wallet_sdk/CoinbaseWalletSdkFlutterPlugin.kt @@ -0,0 +1,194 @@ +package com.coinbase.flutter.wallet_sdk + +import android.content.Context +import android.content.Intent +import android.net.Uri +import androidx.annotation.NonNull +import com.coinbase.android.nativesdk.CoinbaseWalletSDK +import com.coinbase.android.nativesdk.message.request.Account +import com.coinbase.android.nativesdk.message.request.Action +import com.coinbase.android.nativesdk.message.request.RequestContent +import com.coinbase.android.nativesdk.message.response.ActionResult +import com.coinbase.android.nativesdk.message.response.ResponseResult +import io.flutter.embedding.engine.plugins.FlutterPlugin +import io.flutter.embedding.engine.plugins.activity.ActivityAware +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding +import io.flutter.plugin.common.MethodCall +import io.flutter.plugin.common.MethodChannel +import io.flutter.plugin.common.MethodChannel.MethodCallHandler +import io.flutter.plugin.common.MethodChannel.Result +import io.flutter.plugin.common.PluginRegistry +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonPrimitive +import kotlinx.serialization.json.buildJsonObject +import kotlinx.serialization.json.encodeToJsonElement + +/** CoinbaseWalletSdkFlutterPlugin */ +class CoinbaseWalletSdkFlutterPlugin : FlutterPlugin, MethodCallHandler, + ActivityAware, PluginRegistry.ActivityResultListener { + /// The MethodChannel that will the communication between Flutter and native Android + /// + /// This local reference serves to register the plugin with the Flutter Engine and unregister it + /// when the Flutter Engine is detached from the Activity + private lateinit var channel: MethodChannel + + private lateinit var coinbase: CoinbaseWalletSDK + + private lateinit var flutterApplicationContext: Context + + private var act: android.app.Activity? = null + + private val successJson = "{ \"success\": true}" + + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + flutterApplicationContext = flutterPluginBinding.applicationContext + coinbase = CoinbaseWalletSDK( + appContext = flutterPluginBinding.applicationContext, + // TODO: This should be changed, and passed in from client + domain = Uri.parse("https://www.coinbase.com"), + openIntent = { intent -> act?.startActivityForResult(intent, 0) } + ) + coinbase.appendVersionTag("flutter") + channel = MethodChannel(flutterPluginBinding.binaryMessenger, "coinbase_wallet_sdk") + channel.setMethodCallHandler(this) + } + + override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) { + try { + if (call.method == "configure") { + return configure(call, result) + } + + if (call.method == "initiateHandshake") { + return initiateHandshake(call, result) + } + + if (call.method == "makeRequest") { + return makeRequest(call, result) + } + + if (call.method == "resetSession") { + return resetSession(result) + } + + if (call.method == "isAppInstalled") { + return isAppInstalled(result) + } + } catch (e: Throwable) { + result.error("onMethodCall", e.message, null) + } + + result.notImplemented() + } + + private fun isAppInstalled(@NonNull result: Result) { + result.success(coinbase.isCoinbaseWalletInstalled) + } + + private fun configure(@NonNull call: MethodCall, @NonNull result: Result) { + val args = call.arguments + if (args !is Map<*, *>) { + return result.error("configure", "Missing arguments", null) + } + + val domain = args["domain"] as String + coinbase = CoinbaseWalletSDK( + appContext = flutterApplicationContext, + domain = Uri.parse(domain), + openIntent = { intent -> act?.startActivityForResult(intent, 0) } + ) + + result.success(successJson) + } + + private fun initiateHandshake(@NonNull call: MethodCall, @NonNull result: Result) { + val jsonString = call.arguments + if (jsonString !is String) { + return result.error("initiateHandshake", "Missing args", null) + } + + val actions = Json.decodeFromString>(jsonString) + coinbase.initiateHandshake(initialActions = actions) { responseResult, account -> + handleResponse("initiateHandshake", responseResult, account, result) + } + } + + private fun makeRequest(@NonNull call: MethodCall, @NonNull result: Result) { + val jsonString = call.arguments + if (jsonString !is String) { + return result.error("makeRequest", "Missing args", null) + } + + val request = Json.decodeFromString(jsonString) + coinbase.makeRequest(request) { responseResult -> + handleResponse("makeRequest", responseResult, null, result) + } + } + + private fun resetSession(@NonNull result: Result) { + coinbase.resetSession() + result.success(successJson) + } + + private fun handleResponse( + code: String, + responseResult: ResponseResult, + account: Account?, + result: Result + ) { + if (responseResult.isFailure) { + return result.error(code, responseResult.exceptionOrNull()?.message, null) + } + + val returnValues = responseResult.getOrNull() ?: emptyList() + val toFlutter = returnValues.map { actionResult -> + buildJsonObject { + if (account != null) { + val accountJson = Json.encodeToJsonElement(account) + put("account", accountJson) + } + + when (actionResult) { + is ActionResult.Result -> { + put("result", JsonPrimitive(actionResult.value)) + } + is ActionResult.Error -> { + val errorJson = Json.encodeToJsonElement(actionResult) + put("error", errorJson) + } + } + } + } + + val jsonString = Json.encodeToString(toFlutter) + result.success(jsonString) + } + + override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { + channel.setMethodCallHandler(null) + } + + override fun onAttachedToActivity(binding: ActivityPluginBinding) { + act = binding.activity + binding.addActivityResultListener(this) + } + + override fun onDetachedFromActivityForConfigChanges() { + act = null + } + + override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) { + // no-op + } + + override fun onDetachedFromActivity() { + // no-op + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?): Boolean { + val uri = data?.data ?: return false + return coinbase.handleResponse(uri) + } +} diff --git a/packages/coinbase-sdk/example/.gitignore b/packages/coinbase-sdk/example/.gitignore new file mode 100644 index 00000000..a8e938c0 --- /dev/null +++ b/packages/coinbase-sdk/example/.gitignore @@ -0,0 +1,47 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/packages/coinbase-sdk/example/README.md b/packages/coinbase-sdk/example/README.md new file mode 100644 index 00000000..dc8a1d41 --- /dev/null +++ b/packages/coinbase-sdk/example/README.md @@ -0,0 +1,16 @@ +# coinbase_wallet_sdk_example + +Demonstrates how to use the coinbase_wallet_sdk plugin. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/packages/coinbase-sdk/example/analysis_options.yaml b/packages/coinbase-sdk/example/analysis_options.yaml new file mode 100644 index 00000000..61b6c4de --- /dev/null +++ b/packages/coinbase-sdk/example/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/packages/coinbase-sdk/example/android/.gitignore b/packages/coinbase-sdk/example/android/.gitignore new file mode 100644 index 00000000..6f568019 --- /dev/null +++ b/packages/coinbase-sdk/example/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/packages/coinbase-sdk/example/android/app/build.gradle b/packages/coinbase-sdk/example/android/app/build.gradle new file mode 100644 index 00000000..3833da05 --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/build.gradle @@ -0,0 +1,78 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 31 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "xyz.tribes.coinbase.coinbase_wallet_sdk_example" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. + minSdkVersion 23 // flutter.minSdkVersion + targetSdkVersion 31 // flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'androidx.core:core-ktx:1.8.0' + implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'com.google.android.material:material:1.6.1' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + implementation "com.coinbase:coinbase-wallet-sdk:1.0.1" +} diff --git a/packages/coinbase-sdk/example/android/app/src/debug/AndroidManifest.xml b/packages/coinbase-sdk/example/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..4cedba7f --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/packages/coinbase-sdk/example/android/app/src/main/AndroidManifest.xml b/packages/coinbase-sdk/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..be710923 --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/packages/coinbase-sdk/example/android/app/src/main/kotlin/xyz/tribes/coinbase/coinbase_wallet_sdk_flutter_example/MainActivity.kt b/packages/coinbase-sdk/example/android/app/src/main/kotlin/xyz/tribes/coinbase/coinbase_wallet_sdk_flutter_example/MainActivity.kt new file mode 100644 index 00000000..4ea77152 --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/src/main/kotlin/xyz/tribes/coinbase/coinbase_wallet_sdk_flutter_example/MainActivity.kt @@ -0,0 +1,26 @@ +package xyz.tribes.coinbase.coinbase_wallet_sdk_example + +import android.content.Intent +import android.net.Uri +import android.os.Bundle +import com.coinbase.android.nativesdk.CoinbaseWalletSDK +import io.flutter.embedding.android.FlutterActivity +import androidx.activity.result.ActivityResultLauncher + +class MainActivity: FlutterActivity() { + private lateinit var launcher: ActivityResultLauncher + + private val client by lazy { + CoinbaseWalletSDK( + appContext = applicationContext, + domain = Uri.parse("https://www.myappxyz.com"), + openIntent = { intent -> launcher.launch(intent) } + ) + } + + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + } + +} diff --git a/packages/coinbase-sdk/example/android/app/src/main/res/drawable-v21/launch_background.xml b/packages/coinbase-sdk/example/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 00000000..f74085f3 --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/coinbase-sdk/example/android/app/src/main/res/drawable/launch_background.xml b/packages/coinbase-sdk/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/coinbase-sdk/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/coinbase-sdk/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/coinbase-sdk/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/coinbase-sdk/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/coinbase-sdk/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/android/app/src/main/res/values-night/styles.xml b/packages/coinbase-sdk/example/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 00000000..06952be7 --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/coinbase-sdk/example/android/app/src/main/res/values/styles.xml b/packages/coinbase-sdk/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..cb1ef880 --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/coinbase-sdk/example/android/app/src/profile/AndroidManifest.xml b/packages/coinbase-sdk/example/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..4cedba7f --- /dev/null +++ b/packages/coinbase-sdk/example/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/packages/coinbase-sdk/example/android/build.gradle b/packages/coinbase-sdk/example/android/build.gradle new file mode 100644 index 00000000..a4d7066f --- /dev/null +++ b/packages/coinbase-sdk/example/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.2.1' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/packages/coinbase-sdk/example/android/gradle.properties b/packages/coinbase-sdk/example/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/packages/coinbase-sdk/example/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/packages/coinbase-sdk/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/coinbase-sdk/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..cc5527d7 --- /dev/null +++ b/packages/coinbase-sdk/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/packages/coinbase-sdk/example/android/settings.gradle b/packages/coinbase-sdk/example/android/settings.gradle new file mode 100644 index 00000000..6c51c337 --- /dev/null +++ b/packages/coinbase-sdk/example/android/settings.gradle @@ -0,0 +1,12 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" + diff --git a/packages/coinbase-sdk/example/ios/.gitignore b/packages/coinbase-sdk/example/ios/.gitignore new file mode 100644 index 00000000..7a7f9873 --- /dev/null +++ b/packages/coinbase-sdk/example/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/packages/coinbase-sdk/example/ios/Flutter/AppFrameworkInfo.plist b/packages/coinbase-sdk/example/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..9625e105 --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/packages/coinbase-sdk/example/ios/Flutter/Debug.xcconfig b/packages/coinbase-sdk/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..ec97fc6f --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/coinbase-sdk/example/ios/Flutter/Release.xcconfig b/packages/coinbase-sdk/example/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..c4855bfe --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/coinbase-sdk/example/ios/Runner.xcodeproj/project.pbxproj b/packages/coinbase-sdk/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..a0284834 --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,551 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + A801D991D2C0347E18E774F2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 632977FC36B713376CA20149 /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1231562487A9E69F0695A637 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 632977FC36B713376CA20149 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9B9F6ED6A5104AB32086D219 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CDE608CC9346B2F30C39D2F9 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A801D991D2C0347E18E774F2 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6E7600A0553582F9BBF745AC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 632977FC36B713376CA20149 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ACA9B6DF8E133DCF23C189FC /* Pods */, + 6E7600A0553582F9BBF745AC /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + ACA9B6DF8E133DCF23C189FC /* Pods */ = { + isa = PBXGroup; + children = ( + 9B9F6ED6A5104AB32086D219 /* Pods-Runner.debug.xcconfig */, + 1231562487A9E69F0695A637 /* Pods-Runner.release.xcconfig */, + CDE608CC9346B2F30C39D2F9 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + EA14CAA479E7DE3ABA560117 /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + C9F10FB848EC932D8A5546BF /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + C9F10FB848EC932D8A5546BF /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + EA14CAA479E7DE3ABA560117 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = K9PRP53827; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = xyz.tribes.coinbase.coinbaseWalletSdkFlutterExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = K9PRP53827; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = xyz.tribes.coinbase.coinbaseWalletSdkFlutterExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = K9PRP53827; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = xyz.tribes.coinbase.coinbaseWalletSdkFlutterExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/packages/coinbase-sdk/example/ios/Runner/AppDelegate.swift b/packages/coinbase-sdk/example/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..c4067f08 --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,39 @@ +import UIKit +import Flutter +import CoinbaseWalletSDK + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } + + override func application( + _ app: UIApplication, + open url: URL, + options: [UIApplication.OpenURLOptionsKey : Any] = [:] + ) -> Bool { + if (try? CoinbaseWalletSDK.shared.handleResponse(url)) == true { + return true + } + // handle other types of deep links + return false + } + + override func application( + _ application: UIApplication, + continue userActivity: NSUserActivity, + restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void + ) -> Bool { + if let url = userActivity.webpageURL, + (try? CoinbaseWalletSDK.shared.handleResponse(url)) == true { + return true + } + // handle other types of deep links + return false + } +} diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/packages/coinbase-sdk/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/coinbase-sdk/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/coinbase-sdk/example/ios/Runner/Base.lproj/Main.storyboard b/packages/coinbase-sdk/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/coinbase-sdk/example/ios/Runner/Info.plist b/packages/coinbase-sdk/example/ios/Runner/Info.plist new file mode 100644 index 00000000..5e88fdea --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Runner/Info.plist @@ -0,0 +1,66 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Coinbase Wallet Sdk Flutter + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + coinbase_wallet_sdk_example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + LSApplicationQueriesSchemes + + cbwallet + + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLName + xyz.myapp + CFBundleURLSchemes + + tribesxyzsample + + + + + diff --git a/packages/coinbase-sdk/example/ios/Runner/Runner-Bridging-Header.h b/packages/coinbase-sdk/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/packages/coinbase-sdk/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/packages/coinbase-sdk/example/lib/main.dart b/packages/coinbase-sdk/example/lib/main.dart new file mode 100644 index 00000000..76af2e04 --- /dev/null +++ b/packages/coinbase-sdk/example/lib/main.dart @@ -0,0 +1,143 @@ +import 'dart:async'; + +import 'package:coinbase_wallet_sdk/coinbase_wallet_sdk.dart'; +import 'package:coinbase_wallet_sdk/configuration.dart'; +import 'package:coinbase_wallet_sdk/eth_web3_rpc.dart'; +import 'package:coinbase_wallet_sdk/request.dart'; +import 'package:flutter/material.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({Key? key}) : super(key: key); + + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + String _addy = ""; + String _signed = ""; + String _sessionCleared = ""; + + @override + void initState() { + CoinbaseWalletSDK.shared.configure( + Configuration( + ios: IOSConfiguration( + host: Uri.parse('cbwallet://wsegue'), + callback: Uri.parse('tribesxyzsample://mycallback'), + ), + android: AndroidConfiguration( + domain: Uri.parse('https://www.myappxyz.com'), + ), + ), + ); + super.initState(); + } + + // Platform messages are asynchronous, so we initialize in an async method. + Future _requestAccount() async { + String addy; + try { + final results = await CoinbaseWalletSDK.shared.initiateHandshake([ + const RequestAccounts(), + ]); + addy = results[0].account?.address ?? ""; + } catch (e) { + addy = 'Failed to get address. => $e'; + } + + // If the widget was removed from the tree while the asynchronous platform + // message was in flight, we want to discard the reply rather than calling + // setState to update our non-existent appearance. + if (!mounted) return; + + setState(() { + _addy = addy; + }); + } + + Future _personalSign() async { + String message = "Hello, world!"; + String signed; + try { + final request = Request( + actions: [PersonalSign(address: _addy, message: message)], + ); + final results = await CoinbaseWalletSDK.shared.makeRequest(request); + + signed = results[0].value ?? ""; + } catch (e) { + debugPrint('error --> $e'); + signed = "Failed to sign message."; + } + + // If the widget was removed from the tree while the asynchronous platform + // message was in flight, we want to discard the reply rather than calling + // setState to update our non-existent appearance. + if (!mounted) return; + + setState(() { + _signed = signed; + }); + } + + Future _resetSession() async { + try { + await CoinbaseWalletSDK.shared.resetSession(); + setState(() { + _sessionCleared = "SEssion Cleared!"; + }); + } catch (e) { + setState(() { + _sessionCleared = "Failed to reset session"; + }); + } + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('Coinbase Flutter SDK'), + ), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + FutureBuilder( + future: CoinbaseWalletSDK.shared.isAppInstalled(), + builder: ((context, snapshot) { + return Text( + 'Is installed? ${snapshot.data}', + ); + }), + ), + TextButton( + onPressed: () => _requestAccount(), + child: const Text("Request Account"), + ), + Text('address is\n\n $_addy'), + const SizedBox(height: 50), + TextButton( + onPressed: () => _personalSign(), + child: const Text("personalSign"), + ), + Text('signed message is\n\n $_signed'), + const SizedBox(height: 50), + TextButton( + onPressed: () => _resetSession(), + child: const Text("Reset Session"), + ), + Text('is reset\n\n $_sessionCleared'), + ], + ), + ), + ), + ); + } +} diff --git a/packages/coinbase-sdk/example/pubspec.yaml b/packages/coinbase-sdk/example/pubspec.yaml new file mode 100644 index 00000000..09e2bb77 --- /dev/null +++ b/packages/coinbase-sdk/example/pubspec.yaml @@ -0,0 +1,84 @@ +name: coinbase_wallet_sdk_example +description: Demonstrates how to use the coinbase_wallet_sdk plugin. + +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +environment: + sdk: ">=2.15.0 <3.0.0" + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + coinbase_wallet_sdk: + # When depending on this package from a real application you should use: + # coinbase_wallet_sdk: ^x.y.z + # See https://dart.dev/tools/pub/dependencies#version-constraints + # The example app is bundled with the plugin so we use a path dependency on + # the parent directory to use the current plugin's version. + path: ../ + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: 1.0.2 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/packages/coinbase-sdk/example/test/widget_test.dart b/packages/coinbase-sdk/example/test/widget_test.dart new file mode 100644 index 00000000..3874789e --- /dev/null +++ b/packages/coinbase-sdk/example/test/widget_test.dart @@ -0,0 +1,27 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:coinbase_wallet_sdk_example/main.dart'; + +void main() { + testWidgets('Verify Platform version', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that platform version is retrieved. + expect( + find.byWidgetPredicate( + (Widget widget) => widget is Text && + widget.data!.startsWith('Running on:'), + ), + findsOneWidget, + ); + }); +} diff --git a/packages/coinbase-sdk/ios/.gitignore b/packages/coinbase-sdk/ios/.gitignore new file mode 100644 index 00000000..0c885071 --- /dev/null +++ b/packages/coinbase-sdk/ios/.gitignore @@ -0,0 +1,38 @@ +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +.DS_Store +*.swp +profile + +DerivedData/ +build/ +GeneratedPluginRegistrant.h +GeneratedPluginRegistrant.m + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +/Flutter/Generated.xcconfig +/Flutter/ephemeral/ +/Flutter/flutter_export_environment.sh \ No newline at end of file diff --git a/packages/coinbase-sdk/ios/Assets/.gitkeep b/packages/coinbase-sdk/ios/Assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/packages/coinbase-sdk/ios/Classes/CoinbaseWalletSdkFlutterPlugin.h b/packages/coinbase-sdk/ios/Classes/CoinbaseWalletSdkFlutterPlugin.h new file mode 100644 index 00000000..1e3c2fa4 --- /dev/null +++ b/packages/coinbase-sdk/ios/Classes/CoinbaseWalletSdkFlutterPlugin.h @@ -0,0 +1,4 @@ +#import + +@interface CoinbaseWalletSdkFlutterPlugin : NSObject +@end diff --git a/packages/coinbase-sdk/ios/Classes/CoinbaseWalletSdkFlutterPlugin.m b/packages/coinbase-sdk/ios/Classes/CoinbaseWalletSdkFlutterPlugin.m new file mode 100644 index 00000000..d2be1be8 --- /dev/null +++ b/packages/coinbase-sdk/ios/Classes/CoinbaseWalletSdkFlutterPlugin.m @@ -0,0 +1,15 @@ +#import "CoinbaseWalletSdkFlutterPlugin.h" +#if __has_include() +#import +#else +// Support project import fallback if the generated compatibility header +// is not copied when this plugin is created as a library. +// https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 +#import "coinbase_wallet_sdk-Swift.h" +#endif + +@implementation CoinbaseWalletSdkFlutterPlugin ++ (void)registerWithRegistrar:(NSObject*)registrar { + [SwiftCoinbaseWalletSdkFlutterPlugin registerWithRegistrar:registrar]; +} +@end diff --git a/packages/coinbase-sdk/ios/Classes/SwiftCoinbaseWalletSdkFlutterPlugin.swift b/packages/coinbase-sdk/ios/Classes/SwiftCoinbaseWalletSdkFlutterPlugin.swift new file mode 100644 index 00000000..31c3b872 --- /dev/null +++ b/packages/coinbase-sdk/ios/Classes/SwiftCoinbaseWalletSdkFlutterPlugin.swift @@ -0,0 +1,158 @@ +import Flutter +import UIKit +import CoinbaseWalletSDK + +public class SwiftCoinbaseWalletSdkFlutterPlugin: NSObject, FlutterPlugin { + private static let success = "{ \"success\": true}" + + public override init() {} + + public static func register(with registrar: FlutterPluginRegistrar) { + let channel = FlutterMethodChannel(name: "coinbase_wallet_sdk", binaryMessenger: registrar.messenger()) + let instance = SwiftCoinbaseWalletSdkFlutterPlugin() + registrar.addMethodCallDelegate(instance, channel: channel) + } + + public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { + do { + if (call.method == "configure") { + return configure(call: call, result: result) + } + + if (call.method == "initiateHandshake") { + return try initiateHandshake(call: call, result: result) + } + + if (call.method == "makeRequest") { + return try makeRequest(call: call, result: result) + } + + if (call.method == "resetSession") { + return resetSession(call: call, result: result) + } + + if (call.method == "isAppInstalled") { + return isAppInstalled(result: result) + } + } catch { + result(FlutterError(code: "handle", message: error.localizedDescription, details: nil)) + return + } + + result(FlutterMethodNotImplemented) + } + + private func isAppInstalled(result: @escaping FlutterResult) { + result(CoinbaseWalletSDK.isCoinbaseWalletInstalled()) + } + + private func configure(call: FlutterMethodCall, result: @escaping FlutterResult) { + guard + let args = call.arguments as? [String: Any], + let host = args["host"] as? String, + let callback = args["callback"] as? String, + let hostURL = URL(string: host), + let callbackURL = URL(string: callback) + else { + result(FlutterError(code: "configure", message: "Invalid arguments", details: nil)) + return + } + + CoinbaseWalletSDK.configure(host: hostURL,callback: callbackURL) + CoinbaseWalletSDK.appendVersionTag("flutter") + + result(SwiftCoinbaseWalletSdkFlutterPlugin.success) + } + + private func initiateHandshake(call: FlutterMethodCall, result: @escaping FlutterResult) throws { + var actions = [Action]() + + if let args = call.arguments as? String, let jsonData = args.data(using: .utf8) { + actions = try JSONDecoder().decode([Action].self, from: jsonData) + } + + CoinbaseWalletSDK.shared.initiateHandshake(initialActions: actions) { responseResult, account in + self.handleResponse( + code: "initiateHandshake", + responseResult: responseResult, + account: account, + result: result + ) + } + } + + private func makeRequest(call: FlutterMethodCall, result: @escaping FlutterResult) throws { + guard + let args = call.arguments as? String, + let jsonData = args.data(using: .utf8) + else { + result(FlutterError(code: "makeRequest", message: "Invalid arguments", details: nil)) + return + } + + let request = try JSONDecoder().decode(Request.self, from: jsonData) + + CoinbaseWalletSDK.shared.makeRequest(request) { responseResult in + self.handleResponse( + code: "makeRequest", + responseResult: responseResult, + account: nil, + result: result + ) + } + } + + private func resetSession(call: FlutterMethodCall, result: @escaping FlutterResult) { + let responseResult = CoinbaseWalletSDK.shared.resetSession() + + switch responseResult { + case .success: + result(SwiftCoinbaseWalletSdkFlutterPlugin.success) + case .failure(let error): + result(FlutterError(code: "resetSession", message: error.localizedDescription, details: nil)) + } + } + + private func handleResponse( + code: String, + responseResult: ResponseResult, + account: Account?, + result: @escaping FlutterResult + ) { + do { + switch responseResult { + case .success(let returnValues): + var toFlutter = [[String: Any]]() + + returnValues.content.forEach { it in + var response = [String: Any]() + + if let account = account { + response["account"] = [ + "chain": account.chain, + "networkId": account.networkId, + "address": account.address + ] + } + switch it { + case .success(let value): + response["result"] = value.rawValue + case .failure(let error): + response["error"] = ["code": error.code, "message": error.message] + } + + toFlutter.append(response) + } + + let data = try JSONSerialization.data(withJSONObject: toFlutter, options: []) + let jsonString = String(data: data, encoding: .utf8)! + + result(jsonString) + case .failure(let error): + result(FlutterError(code: code, message: error.localizedDescription, details: nil)) + } + } catch { + result(FlutterError(code: code, message: error.localizedDescription, details: nil)) + } + } +} diff --git a/packages/coinbase-sdk/ios/coinbase_wallet_sdk.podspec b/packages/coinbase-sdk/ios/coinbase_wallet_sdk.podspec new file mode 100644 index 00000000..c77f0abf --- /dev/null +++ b/packages/coinbase-sdk/ios/coinbase_wallet_sdk.podspec @@ -0,0 +1,24 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint coinbase_wallet_sdk.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'coinbase_wallet_sdk' + s.version = '0.0.1' + s.summary = 'A new Flutter plugin project.' + s.description = <<-DESC +A new Flutter plugin project. + DESC + s.homepage = 'http://example.com' + s.license = { :file => '../LICENSE' } + s.author = { 'Hish Bouabdallah' => 'hish@tribes.xyz' } + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.dependency 'Flutter' + s.dependency 'CoinbaseWalletSDK/CrossPlatform', '1.0.3' + s.ios.deployment_target = '13.0' + s.swift_version = '5.0' + + # Flutter.framework does not contain a i386 slice. + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } +end diff --git a/packages/coinbase-sdk/lib/account.dart b/packages/coinbase-sdk/lib/account.dart new file mode 100644 index 00000000..bbc0e70d --- /dev/null +++ b/packages/coinbase-sdk/lib/account.dart @@ -0,0 +1,27 @@ +class Account { + final String chain; + final int networkId; + final String address; + + const Account({ + required this.chain, + required this.networkId, + required this.address, + }); + + Map toJson() { + return { + 'chain': chain, + 'networkId': networkId, + 'address': address, + }; + } + + factory Account.fromJson(Map json) { + return Account( + chain: json['chain'] as String, + networkId: json['networkId'] as int, + address: json['address'] as String, + ); + } +} diff --git a/packages/coinbase-sdk/lib/action.dart b/packages/coinbase-sdk/lib/action.dart new file mode 100644 index 00000000..fe554143 --- /dev/null +++ b/packages/coinbase-sdk/lib/action.dart @@ -0,0 +1,33 @@ +import 'dart:convert'; + +class Action { + final String method; + final String paramsJson; + final bool optional; + + const Action({ + required this.method, + required this.paramsJson, + this.optional = false, + }); + + factory Action.create({ + required String method, + required Map params, + bool optional = false, + }) { + return Action( + method: method, + paramsJson: jsonEncode(params), + optional: optional, + ); + } + + Map toJson() { + return { + 'method': method, + 'paramsJson': paramsJson, + 'optional': optional, + }; + } +} diff --git a/packages/coinbase-sdk/lib/coinbase_wallet_sdk.dart b/packages/coinbase-sdk/lib/coinbase_wallet_sdk.dart new file mode 100644 index 00000000..3ef8b4f2 --- /dev/null +++ b/packages/coinbase-sdk/lib/coinbase_wallet_sdk.dart @@ -0,0 +1,113 @@ +import 'dart:convert'; + +import 'package:coinbase_wallet_sdk/account.dart'; +import 'package:coinbase_wallet_sdk/action.dart'; +import 'package:coinbase_wallet_sdk/coinbase_wallet_sdk_platform_interface.dart'; +import 'package:coinbase_wallet_sdk/configuration.dart'; +import 'package:coinbase_wallet_sdk/request.dart'; +import 'package:coinbase_wallet_sdk/return_value.dart'; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, TargetPlatform; + +class CoinbaseWalletSDK { + static const CoinbaseWalletSDK shared = CoinbaseWalletSDK._(); + + const CoinbaseWalletSDK._(); + + /// Setup the SDK + Future configure(Configuration configuration) async { + if (defaultTargetPlatform == TargetPlatform.iOS) { + await _configureIOS(configuration.ios); + } else if (defaultTargetPlatform == TargetPlatform.android) { + await _configureAndroid(configuration.android); + } else { + throw UnsupportedError( + 'Unsupported platform: ${defaultTargetPlatform.toString()}', + ); + } + } + + /// Initiate the handshake with Coinbase Wallet app + Future> initiateHandshake( + List? initialActions, + ) async { + final actionsJson = + (initialActions ?? []).map((action) => action.toJson()).toList(); + + final result = await CoinbaseWalletSdkFlutterPlatform.instance + .call('initiateHandshake', jsonEncode(actionsJson)); + + final returnValuesWithAccounts = (result ?? []) + .map( + (e) { + final map = Map.from(e); + return ReturnValueWithAccount.fromJson(map); + }, + ) + .cast() + .toList(); + + return returnValuesWithAccounts; + } + + /// Send a web3 request to Coinbase Wallet app + Future> makeRequest(Request request) async { + final result = await CoinbaseWalletSdkFlutterPlatform.instance + .call('makeRequest', jsonEncode(request.toJson())); + + return (result ?? []) + .map((e) => ReturnValue.fromJson(e)) + .cast() + .toList(); + } + + /// Disconnect any active session + Future resetSession() async { + await CoinbaseWalletSdkFlutterPlatform.instance.call('resetSession'); + } + + /// Check whether CoinbaseWallet app is installed + Future isAppInstalled() async { + final result = + await CoinbaseWalletSdkFlutterPlatform.instance.call('isAppInstalled'); + return result ?? false; + } + + // private helper methods + + Future _configureIOS(IOSConfiguration? configuration) async { + if (configuration == null) { + throw ArgumentError('iOS configuration is missing.'); + } + await CoinbaseWalletSdkFlutterPlatform.instance + .call('configure', configuration.toJson()); + } + + Future _configureAndroid(AndroidConfiguration? configuration) async { + if (configuration == null) { + throw ArgumentError('Android configuration is missing.'); + } + await CoinbaseWalletSdkFlutterPlatform.instance + .call('configure', configuration.toJson()); + } +} + +class ReturnValueWithAccount { + final String? value; + final ReturnValueError? error; + final Account? account; + + ReturnValueWithAccount(ReturnValue returnValue, this.account) + : value = returnValue.value, + error = returnValue.error; + + factory ReturnValueWithAccount.fromJson(Map json) { + final account = json['account']; + return ReturnValueWithAccount( + ReturnValue.fromJson(json), + account == null + ? null + : Account.fromJson(Map.from(account)), + ); + } +} diff --git a/packages/coinbase-sdk/lib/coinbase_wallet_sdk_method_channel.dart b/packages/coinbase-sdk/lib/coinbase_wallet_sdk_method_channel.dart new file mode 100644 index 00000000..fface6bf --- /dev/null +++ b/packages/coinbase-sdk/lib/coinbase_wallet_sdk_method_channel.dart @@ -0,0 +1,24 @@ +import 'dart:convert'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; + +import 'coinbase_wallet_sdk_platform_interface.dart'; + +/// An implementation of [CoinbaseWalletSdkFlutterPlatform] that uses method channels. +class MethodChannelCoinbaseWalletSdkFlutter + extends CoinbaseWalletSdkFlutterPlatform { + /// The method channel used to interact with the native platform. + @visibleForTesting + final methodChannel = const MethodChannel('coinbase_wallet_sdk'); + + @override + Future call(String method, [arguments]) async { + final result = await methodChannel.invokeMethod(method, arguments); + if (result is bool) { + return result; + } + + return result != null ? jsonDecode(result as String) : null; + } +} diff --git a/packages/coinbase-sdk/lib/coinbase_wallet_sdk_platform_interface.dart b/packages/coinbase-sdk/lib/coinbase_wallet_sdk_platform_interface.dart new file mode 100644 index 00000000..064a0ec8 --- /dev/null +++ b/packages/coinbase-sdk/lib/coinbase_wallet_sdk_platform_interface.dart @@ -0,0 +1,47 @@ +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; + +import 'coinbase_wallet_sdk_method_channel.dart'; + +abstract class CoinbaseWalletSdkFlutterPlatform extends PlatformInterface { + /// Constructs a CoinbaseWalletSdkFlutterPlatform. + CoinbaseWalletSdkFlutterPlatform() : super(token: _token); + + static final Object _token = Object(); + + static CoinbaseWalletSdkFlutterPlatform _instance = + MethodChannelCoinbaseWalletSdkFlutter(); + + /// The default instance of [CoinbaseWalletSdkFlutterPlatform] to use. + /// + /// Defaults to [MethodChannelCoinbaseWalletSdkFlutter]. + static CoinbaseWalletSdkFlutterPlatform get instance => _instance; + + /// Platform-specific implementations should set this with their own + /// platform-specific class that extends [CoinbaseWalletSdkFlutterPlatform] when + /// they register themselves. + static set instance(CoinbaseWalletSdkFlutterPlatform instance) { + PlatformInterface.verifyToken(instance, _token); + _instance = instance; + } + + Future call(String method, [dynamic arguments]); +} + +class PlatformError implements Exception { + final int code; + final String message; + + PlatformError(this.code, this.message); + + @override + String toString() { + return "PlatformError(code: $code, message: $message)"; + } +} + +class PlatformResult { + final String? value; + final PlatformError? error; + + PlatformResult(this.value, this.error); +} diff --git a/packages/coinbase-sdk/lib/configuration.dart b/packages/coinbase-sdk/lib/configuration.dart new file mode 100644 index 00000000..6618c295 --- /dev/null +++ b/packages/coinbase-sdk/lib/configuration.dart @@ -0,0 +1,40 @@ +class Configuration { + final IOSConfiguration? ios; + final AndroidConfiguration? android; + + Configuration({ + required this.ios, + required this.android, + }); +} + +class IOSConfiguration { + final Uri host; + final Uri callback; + + const IOSConfiguration({ + required this.host, + required this.callback, + }); + + Map toJson() { + return { + 'host': host.toString(), + 'callback': callback.toString(), + }; + } +} + +class AndroidConfiguration { + final Uri domain; + + const AndroidConfiguration({ + required this.domain, + }); + + Map toJson() { + return { + 'domain': domain.toString(), + }; + } +} diff --git a/packages/coinbase-sdk/lib/eth_web3_rpc.dart b/packages/coinbase-sdk/lib/eth_web3_rpc.dart new file mode 100644 index 00000000..f2824414 --- /dev/null +++ b/packages/coinbase-sdk/lib/eth_web3_rpc.dart @@ -0,0 +1,131 @@ +import 'dart:convert'; + +import 'package:coinbase_wallet_sdk/action.dart'; + +class RequestAccounts extends Action { + const RequestAccounts() + : super( + method: 'eth_requestAccounts', + paramsJson: '{}', + ); +} + +class PersonalSign extends Action { + PersonalSign({ + required String address, + required String message, + bool optional = false, + }) : super( + method: 'personal_sign', + paramsJson: jsonEncode({ + 'address': address, + 'message': message, + }), + optional: optional, + ); +} + +class SignTypedDataV3 extends Action { + final String address; + final String typedDataJson; + + SignTypedDataV3({ + required this.address, + required this.typedDataJson, + bool optional = false, + }) : super( + method: 'eth_signTypedData_v3', + paramsJson: jsonEncode({ + 'address': address, + 'typedDataJson': typedDataJson, + }), + optional: optional, + ); +} + +class SignTypedDataV4 extends Action { + final String address; + final String typedDataJson; + + SignTypedDataV4({ + required this.address, + required this.typedDataJson, + bool optional = false, + }) : super( + method: 'eth_signTypedData_v4', + paramsJson: jsonEncode({ + 'address': address, + 'typedDataJson': typedDataJson, + }), + optional: optional, + ); +} + +class SignTransaction extends Action { + SignTransaction({ + required String fromAddress, + required String? toAddress, + required BigInt weiValue, + required String data, + required int? nonce, + required BigInt? gasPriceInWei, + required BigInt? maxFeePerGas, + required BigInt? maxPriorityFeePerGas, + required BigInt? gasLimit, + required String chainId, + }) : super( + method: 'eth_signTransaction', + paramsJson: jsonEncode({ + 'fromAddress': fromAddress, + 'toAddress': toAddress, + 'weiValue': weiValue.toString(), + 'data': data, + 'nonce': nonce, + 'gasPriceInWei': gasPriceInWei?.toString(), + 'maxFeePerGas': maxFeePerGas?.toString(), + 'maxPriorityFeePerGas': maxPriorityFeePerGas?.toString(), + 'gasLimit': gasLimit?.toString(), + 'chainId': chainId, + }), + ); +} + +class SendTransaction extends Action { + SendTransaction({ + required String fromAddress, + required String? toAddress, + required BigInt weiValue, + required String data, + required int? nonce, + required BigInt? gasPriceInWei, + required BigInt? maxFeePerGas, + required BigInt? maxPriorityFeePerGas, + required BigInt? gasLimit, + required String chainId, + }) : super( + method: 'eth_signTransaction', + paramsJson: jsonEncode({ + 'fromAddress': fromAddress, + 'toAddress': toAddress, + 'weiValue': weiValue.toString(), + 'data': data, + 'nonce': nonce, + 'gasPriceInWei': gasPriceInWei?.toString(), + 'maxFeePerGas': maxFeePerGas?.toString(), + 'maxPriorityFeePerGas': maxPriorityFeePerGas?.toString(), + 'gasLimit': gasLimit?.toString(), + 'chainId': chainId, + }), + ); +} + +class SwitchEthereumChain extends Action { + SwitchEthereumChain({ + required int chainId, + }) : super( + method: 'wallet_switchEthereumChain', + paramsJson: jsonEncode({ + 'chainId': chainId, + }), + ); +} diff --git a/packages/coinbase-sdk/lib/request.dart b/packages/coinbase-sdk/lib/request.dart new file mode 100644 index 00000000..b6821bf0 --- /dev/null +++ b/packages/coinbase-sdk/lib/request.dart @@ -0,0 +1,19 @@ +import 'package:coinbase_wallet_sdk/account.dart'; +import 'package:coinbase_wallet_sdk/action.dart'; + +class Request { + final List actions; + final Account? account; + + const Request({ + required this.actions, + this.account, + }); + + Map toJson() { + return { + 'actions': actions.map((action) => action.toJson()).toList(), + 'account': account?.toJson(), + }; + } +} diff --git a/packages/coinbase-sdk/lib/return_value.dart b/packages/coinbase-sdk/lib/return_value.dart new file mode 100644 index 00000000..2490ebdc --- /dev/null +++ b/packages/coinbase-sdk/lib/return_value.dart @@ -0,0 +1,33 @@ +class ReturnValue { + final String? value; + final ReturnValueError? error; + + const ReturnValue({ + this.value, + this.error, + }); + + factory ReturnValue.fromJson(Map json) { + final error = json['error']; + return ReturnValue( + value: json['result'] as String?, + error: error == null + ? null + : ReturnValueError.fromJson(Map.from(error)), + ); + } +} + +class ReturnValueError { + final int code; + final String message; + + const ReturnValueError(this.code, this.message); + + factory ReturnValueError.fromJson(Map json) { + return ReturnValueError( + json['code'] as int, + json['message'] as String, + ); + } +} diff --git a/packages/coinbase-sdk/pubspec.yaml b/packages/coinbase-sdk/pubspec.yaml new file mode 100644 index 00000000..8b912615 --- /dev/null +++ b/packages/coinbase-sdk/pubspec.yaml @@ -0,0 +1,31 @@ +name: coinbase_wallet_sdk +description: Fluter implementation of Coinbase Wallet SDK. +version: 1.0.3 +homepage: https://wallet.coinbase.com + +environment: + sdk: ">=2.15.0 <3.0.0" + flutter: ">=2.5.0" + +dependencies: + flutter: + sdk: flutter + plugin_platform_interface: ^2.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: 1.0.2 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + plugin: + platforms: + android: + package: com.coinbase.flutter.wallet_sdk + pluginClass: CoinbaseWalletSdkFlutterPlugin + ios: + pluginClass: CoinbaseWalletSdkFlutterPlugin diff --git a/packages/coinbase-sdk/test/coinbase_wallet_sdk_method_channel_test.dart b/packages/coinbase-sdk/test/coinbase_wallet_sdk_method_channel_test.dart new file mode 100644 index 00000000..253cd030 --- /dev/null +++ b/packages/coinbase-sdk/test/coinbase_wallet_sdk_method_channel_test.dart @@ -0,0 +1,25 @@ +import 'package:coinbase_wallet_sdk/coinbase_wallet_sdk_method_channel.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + MethodChannelCoinbaseWalletSdkFlutter platform = + MethodChannelCoinbaseWalletSdkFlutter(); + const MethodChannel channel = MethodChannel('coinbase_wallet_sdk'); + + TestWidgetsFlutterBinding.ensureInitialized(); + + setUp(() { + channel.setMockMethodCallHandler((MethodCall methodCall) async { + return '42'; + }); + }); + + tearDown(() { + channel.setMockMethodCallHandler(null); + }); + + test('getPlatformVersion', () async { + // expect(await platform.getPlatformVersion(), '42'); + }); +} diff --git a/packages/coinbase-sdk/test/coinbase_wallet_sdk_test.dart b/packages/coinbase-sdk/test/coinbase_wallet_sdk_test.dart new file mode 100644 index 00000000..1ec332f7 --- /dev/null +++ b/packages/coinbase-sdk/test/coinbase_wallet_sdk_test.dart @@ -0,0 +1,44 @@ +import 'package:coinbase_wallet_sdk/coinbase_wallet_sdk_method_channel.dart'; +import 'package:coinbase_wallet_sdk/coinbase_wallet_sdk_platform_interface.dart'; +import 'package:flutter_test/flutter_test.dart'; + +// class MockCoinbaseWalletSdkFlutterPlatform +// with MockPlatformInterfaceMixin +// implements CoinbaseWalletSdkFlutterPlatform { +// @override +// Future getPlatformVersion() => Future.value('42'); + +// @override +// Future initiateHandshake() async { +// return _addy; +// } + +// @override +// Future personalSign(String address, String message) async { +// if (address == _addy) { +// return '0x0'; +// } else { +// throw PlatformError(1, 'Invalid address'); +// } +// } +// } + +void main() { + final CoinbaseWalletSdkFlutterPlatform initialPlatform = + CoinbaseWalletSdkFlutterPlatform.instance; + + test('$MethodChannelCoinbaseWalletSdkFlutter is the default instance', () { + expect( + initialPlatform, isInstanceOf()); + }); + + test('getPlatformVersion', () async { + // CoinbaseWalletSdkFlutter coinbaseWalletSdkFlutterPlugin = + // CoinbaseWalletSdkFlutter(); + // MockCoinbaseWalletSdkFlutterPlatform fakePlatform = + // MockCoinbaseWalletSdkFlutterPlatform(); + // CoinbaseWalletSdkFlutterPlatform.instance = fakePlatform; + + // expect(await coinbaseWalletSdkFlutterPlugin.getPlatformVersion(), '42'); + }); +} From 72cd529b0245089aa1ac0079a8e612cb8a639dcb Mon Sep 17 00:00:00 2001 From: lianbq Date: Fri, 21 Oct 2022 18:53:36 +0800 Subject: [PATCH 06/12] add coinbase eth_sign function --- packages/coinbase-sdk/lib/eth_web3_rpc.dart | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/coinbase-sdk/lib/eth_web3_rpc.dart b/packages/coinbase-sdk/lib/eth_web3_rpc.dart index f2824414..0744e09d 100644 --- a/packages/coinbase-sdk/lib/eth_web3_rpc.dart +++ b/packages/coinbase-sdk/lib/eth_web3_rpc.dart @@ -10,6 +10,21 @@ class RequestAccounts extends Action { ); } +class EthSign extends Action { + EthSign({ + required String address, + required String message, + bool optional = false, + }) : super( + method: 'eth_sign', + paramsJson: jsonEncode({ + 'address': address, + 'message': message, + }), + optional: optional, + ); +} + class PersonalSign extends Action { PersonalSign({ required String address, From e403c1b23c6604606134f554d6ddf6f594117d67 Mon Sep 17 00:00:00 2001 From: lianbq Date: Mon, 24 Oct 2022 15:13:10 +0800 Subject: [PATCH 07/12] fix coinbase sendTransaction send error --- packages/coinbase-sdk/lib/eth_web3_rpc.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/coinbase-sdk/lib/eth_web3_rpc.dart b/packages/coinbase-sdk/lib/eth_web3_rpc.dart index 0744e09d..2e660956 100644 --- a/packages/coinbase-sdk/lib/eth_web3_rpc.dart +++ b/packages/coinbase-sdk/lib/eth_web3_rpc.dart @@ -118,7 +118,7 @@ class SendTransaction extends Action { required BigInt? gasLimit, required String chainId, }) : super( - method: 'eth_signTransaction', + method: 'eth_sendTransaction', paramsJson: jsonEncode({ 'fromAddress': fromAddress, 'toAddress': toAddress, From 5e2017d64654e1496b61f5ae9d9259d4632fa28b Mon Sep 17 00:00:00 2001 From: lianbq Date: Fri, 9 Dec 2022 13:28:44 +0800 Subject: [PATCH 08/12] add package webcontent_converter --- packages/webcontent_converter/CHANGELOG.md | 39 + packages/webcontent_converter/LICENSE | 661 ++++++++ packages/webcontent_converter/README.md | 103 ++ .../webcontent_converter/android/build.gradle | 40 + .../android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + .../android/settings.gradle | 1 + .../android/src/main/AndroidManifest.xml | 3 + .../main/kotlin/android/print/PdfPrinter.kt | 50 + .../FLNativeViewFactory.kt | 43 + .../WebcontentConverterPlugin.kt | 261 ++++ .../webcontent_converter/example/README.md | 16 + .../example/android/app/build.gradle | 59 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 45 + .../app/mylekha/example/MainActivity.kt | 6 + .../MainActivity.kt | 6 + .../example/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + .../example/android/build.gradle | 31 + .../example/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + .../example/android/settings.gradle | 11 + .../example/assets/invoice.html | 1378 +++++++++++++++++ .../example/assets/receipt.html | 410 +++++ .../example/assets/shift.html | 1120 ++++++++++++++ .../ios/Flutter/AppFrameworkInfo.plist | 26 + .../example/ios/Flutter/Debug.xcconfig | 2 + .../example/ios/Flutter/Flutter.podspec | 18 + .../example/ios/Flutter/Release.xcconfig | 2 + .../ios/Runner.xcodeproj/project.pbxproj | 557 +++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 87 ++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../example/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 ++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 29 + .../example/ios/Runner/Info.plist | 59 + .../ios/Runner/Runner-Bridging-Header.h | 1 + .../example/lib/main.dart | 23 + .../example/lib/route.dart | 79 + .../lib/screens/content_image_screen.dart | 1083 +++++++++++++ .../lib/screens/content_pdf_screen.dart | 79 + .../example/lib/screens/error_screen.dart | 27 + .../lib/screens/filepath_image_screen.dart | 72 + .../lib/screens/filepath_pdf_screen.dart | 61 + .../example/lib/screens/home_screen.dart | 72 + .../lib/screens/weburi_image_screen.dart | 71 + .../lib/screens/weburi_pdf_screen.dart | 58 + .../example/lib/screens/webview_screen.dart | 34 + .../example/lib/services/demo.dart | 1175 ++++++++++++++ .../lib/services/esc_printer_service.dart | 117 ++ .../example/lib/services/extension.dart | 26 + .../example/lib/services/index.html | 601 +++++++ .../example/lib/services/webview_helper.dart | 65 + .../macos/Flutter/Flutter-Debug.xcconfig | 2 + .../macos/Flutter/Flutter-Release.xcconfig | 2 + .../macos/Runner.xcodeproj/project.pbxproj | 632 ++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 89 ++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../example/macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 46993 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 3276 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 1429 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 5933 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1243 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 14800 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 1874 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 339 ++++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + .../macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 18 + .../example/macos/Runner/Info.plist | 32 + .../macos/Runner/MainFlutterWindow.swift | 15 + .../example/macos/Runner/Release.entitlements | 16 + .../webcontent_converter/example/pubspec.yaml | 77 + .../example/test/widget_test.dart | 27 + .../example/web/favicon.png | Bin 0 -> 917 bytes .../example/web/icons/Icon-192.png | Bin 0 -> 5292 bytes .../example/web/icons/Icon-512.png | Bin 0 -> 8252 bytes .../example/web/index.html | 98 ++ .../example/web/manifest.json | 23 + .../ios/Classes/FLWebView.swift | 89 ++ .../SwiftWebcontentConverterPlugin.swift | 208 +++ .../ios/Classes/WebcontentConverterPlugin.h | 4 + .../ios/Classes/WebcontentConverterPlugin.m | 15 + .../ios/webcontent_converter.podspec | 23 + packages/webcontent_converter/lib/page.dart | 149 ++ .../webcontent_converter/lib/web_support.dart | 49 + .../lib/webcontent_converter.dart | 346 +++++ .../lib/webview_widget.dart | 75 + packages/webcontent_converter/pubspec.yaml | 67 + .../screenshots/invoice.pdf | Bin 0 -> 250182 bytes .../screenshots/receipt.jpeg | Bin 0 -> 1301880 bytes .../test/webcontent_converter_test.dart | 28 + 134 files changed, 11610 insertions(+) create mode 100644 packages/webcontent_converter/CHANGELOG.md create mode 100644 packages/webcontent_converter/LICENSE create mode 100644 packages/webcontent_converter/README.md create mode 100644 packages/webcontent_converter/android/build.gradle create mode 100644 packages/webcontent_converter/android/gradle.properties create mode 100644 packages/webcontent_converter/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/webcontent_converter/android/settings.gradle create mode 100644 packages/webcontent_converter/android/src/main/AndroidManifest.xml create mode 100644 packages/webcontent_converter/android/src/main/kotlin/android/print/PdfPrinter.kt create mode 100644 packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/FLNativeViewFactory.kt create mode 100644 packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/WebcontentConverterPlugin.kt create mode 100644 packages/webcontent_converter/example/README.md create mode 100644 packages/webcontent_converter/example/android/app/build.gradle create mode 100644 packages/webcontent_converter/example/android/app/src/debug/AndroidManifest.xml create mode 100644 packages/webcontent_converter/example/android/app/src/main/AndroidManifest.xml create mode 100644 packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/example/MainActivity.kt create mode 100644 packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/webcontent_converter_example/MainActivity.kt create mode 100644 packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/webcontent_converter_example/example/MainActivity.kt create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/values-night/styles.xml create mode 100644 packages/webcontent_converter/example/android/app/src/main/res/values/styles.xml create mode 100644 packages/webcontent_converter/example/android/app/src/profile/AndroidManifest.xml create mode 100644 packages/webcontent_converter/example/android/build.gradle create mode 100644 packages/webcontent_converter/example/android/gradle.properties create mode 100644 packages/webcontent_converter/example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/webcontent_converter/example/android/settings.gradle create mode 100644 packages/webcontent_converter/example/assets/invoice.html create mode 100644 packages/webcontent_converter/example/assets/receipt.html create mode 100644 packages/webcontent_converter/example/assets/shift.html create mode 100644 packages/webcontent_converter/example/ios/Flutter/AppFrameworkInfo.plist create mode 100644 packages/webcontent_converter/example/ios/Flutter/Debug.xcconfig create mode 100644 packages/webcontent_converter/example/ios/Flutter/Flutter.podspec create mode 100644 packages/webcontent_converter/example/ios/Flutter/Release.xcconfig create mode 100644 packages/webcontent_converter/example/ios/Runner.xcodeproj/project.pbxproj create mode 100644 packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/webcontent_converter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/webcontent_converter/example/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/webcontent_converter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/webcontent_converter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/webcontent_converter/example/ios/Runner/AppDelegate.swift create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 packages/webcontent_converter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 packages/webcontent_converter/example/ios/Runner/Base.lproj/Main.storyboard create mode 100644 packages/webcontent_converter/example/ios/Runner/Info.plist create mode 100644 packages/webcontent_converter/example/ios/Runner/Runner-Bridging-Header.h create mode 100644 packages/webcontent_converter/example/lib/main.dart create mode 100644 packages/webcontent_converter/example/lib/route.dart create mode 100644 packages/webcontent_converter/example/lib/screens/content_image_screen.dart create mode 100644 packages/webcontent_converter/example/lib/screens/content_pdf_screen.dart create mode 100644 packages/webcontent_converter/example/lib/screens/error_screen.dart create mode 100644 packages/webcontent_converter/example/lib/screens/filepath_image_screen.dart create mode 100644 packages/webcontent_converter/example/lib/screens/filepath_pdf_screen.dart create mode 100644 packages/webcontent_converter/example/lib/screens/home_screen.dart create mode 100644 packages/webcontent_converter/example/lib/screens/weburi_image_screen.dart create mode 100644 packages/webcontent_converter/example/lib/screens/weburi_pdf_screen.dart create mode 100644 packages/webcontent_converter/example/lib/screens/webview_screen.dart create mode 100644 packages/webcontent_converter/example/lib/services/demo.dart create mode 100644 packages/webcontent_converter/example/lib/services/esc_printer_service.dart create mode 100644 packages/webcontent_converter/example/lib/services/extension.dart create mode 100644 packages/webcontent_converter/example/lib/services/index.html create mode 100644 packages/webcontent_converter/example/lib/services/webview_helper.dart create mode 100644 packages/webcontent_converter/example/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 packages/webcontent_converter/example/macos/Flutter/Flutter-Release.xcconfig create mode 100644 packages/webcontent_converter/example/macos/Runner.xcodeproj/project.pbxproj create mode 100644 packages/webcontent_converter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/webcontent_converter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/webcontent_converter/example/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/webcontent_converter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/webcontent_converter/example/macos/Runner/AppDelegate.swift create mode 100644 packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 packages/webcontent_converter/example/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 packages/webcontent_converter/example/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 packages/webcontent_converter/example/macos/Runner/Configs/Debug.xcconfig create mode 100644 packages/webcontent_converter/example/macos/Runner/Configs/Release.xcconfig create mode 100644 packages/webcontent_converter/example/macos/Runner/Configs/Warnings.xcconfig create mode 100644 packages/webcontent_converter/example/macos/Runner/DebugProfile.entitlements create mode 100644 packages/webcontent_converter/example/macos/Runner/Info.plist create mode 100644 packages/webcontent_converter/example/macos/Runner/MainFlutterWindow.swift create mode 100644 packages/webcontent_converter/example/macos/Runner/Release.entitlements create mode 100644 packages/webcontent_converter/example/pubspec.yaml create mode 100644 packages/webcontent_converter/example/test/widget_test.dart create mode 100644 packages/webcontent_converter/example/web/favicon.png create mode 100644 packages/webcontent_converter/example/web/icons/Icon-192.png create mode 100644 packages/webcontent_converter/example/web/icons/Icon-512.png create mode 100644 packages/webcontent_converter/example/web/index.html create mode 100644 packages/webcontent_converter/example/web/manifest.json create mode 100644 packages/webcontent_converter/ios/Classes/FLWebView.swift create mode 100644 packages/webcontent_converter/ios/Classes/SwiftWebcontentConverterPlugin.swift create mode 100644 packages/webcontent_converter/ios/Classes/WebcontentConverterPlugin.h create mode 100644 packages/webcontent_converter/ios/Classes/WebcontentConverterPlugin.m create mode 100644 packages/webcontent_converter/ios/webcontent_converter.podspec create mode 100644 packages/webcontent_converter/lib/page.dart create mode 100644 packages/webcontent_converter/lib/web_support.dart create mode 100644 packages/webcontent_converter/lib/webcontent_converter.dart create mode 100644 packages/webcontent_converter/lib/webview_widget.dart create mode 100644 packages/webcontent_converter/pubspec.yaml create mode 100644 packages/webcontent_converter/screenshots/invoice.pdf create mode 100644 packages/webcontent_converter/screenshots/receipt.jpeg create mode 100644 packages/webcontent_converter/test/webcontent_converter_test.dart diff --git a/packages/webcontent_converter/CHANGELOG.md b/packages/webcontent_converter/CHANGELOG.md new file mode 100644 index 00000000..cc8bfddc --- /dev/null +++ b/packages/webcontent_converter/CHANGELOG.md @@ -0,0 +1,39 @@ +## 0.0.7+1 + +* puppeteer 2.5 + +## 0.0.7 + +* null-safety merged + +## 0.0.6+2 + +* fixed convert pdf on desktop (macos) + +## 0.0.6+1 + +* fixed convert pdf on desktop (windows) + +## 0.0.6 + +* add executablePath enable flexible for destkop deployment, + +## 0.0.5 + +* add webview widget (allow to view webview in flutter app) + +## 0.0.4 + +* add fromString to PaperFormat + +## 0.0.3 + +* Hotfix IOS minimum version 11 + +## 0.0.2 + +* Hotfix IOS performance + +## 0.0.1 + +* TODO: Describe initial release. diff --git a/packages/webcontent_converter/LICENSE b/packages/webcontent_converter/LICENSE new file mode 100644 index 00000000..0ad25db4 --- /dev/null +++ b/packages/webcontent_converter/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/packages/webcontent_converter/README.md b/packages/webcontent_converter/README.md new file mode 100644 index 00000000..9f7966c4 --- /dev/null +++ b/packages/webcontent_converter/README.md @@ -0,0 +1,103 @@ +# webcontent_converter + +This plugin was made for developer to convert any webcontent, web uri to image bitmap or pdf file. This plugin use WebView on android, WKWebView on Ios and chromium for desktop support. This plugin was test for android, ios and desktop. + +## Support : + +- ✓ Android Minimum SDK Version: 21 +- ✓ IOS minimum target Version: 11 +- ✓ Deskop linux, windows, macos + +| Android | IOS | Desktop| +| --- | --- | --- | +| WebView | WkWebView | Puppeteer | + + +## Methods + +`CONVERT TO IMAGE` + +- filePathToImage(String path, double duration) : path is asset path and duration is delay time. This function will return Uint8List Image + +Example: + +``` +var bytes = await WebcontentConverter.filePathToImage(path: "assets/receipt.html"); +if (bytes.length > 0) _saveFile(bytes); +``` + +- webUriToImage(String uri, double duration) : uri is web uri(url) and duration is delay time. This function will return Uint8List Image + +Example: + +``` +var bytes = await WebcontentConverter.webUriToImage( +uri: "http://127.0.0.1:5500/example/assets/receipt.html"); +if (bytes.length > 0) _saveFile(bytes); +``` + +- contentToImage(String content, double duration) : content is html or web content and duration is delay time. This function will return Uint8List Image + +Example: + +``` +final content = Demo.getReceiptContent(); +var bytes = await WebcontentConverter.contentToImage(content: content); +if (bytes.length > 0) _saveFile(bytes); +``` + +`*** Purpose: The three above functions will help developer to get screenshot of html content as Uint8List Image and push it to esc printer` + +![Receipt screenshot](screenshots/receipt.jpeg?raw=true "Receipt") + +`CONVERT TO PDF` + +- filePathToPdf(String path, double duration, String savedPath, PdfMargins margins, PaperFormat format ) + +Example: + +``` +var dir = await getApplicationDocumentsDirectory(); +var savedPath = join(dir.path, "sample.pdf"); +var result = await WebcontentConverter.filePathToPdf( + path: "assets/invoice.html", + savedPath: savedPath, + format: PaperFormat.a4, + margins: PdfMargins.px(top: 35, bottom: 35, right: 35, left: 35), +); +``` + +- webUriToPdf(String uri, double duration, String savedPath, PdfMargins margins, PaperFormat format ) + +Example: + +``` +var dir = await getApplicationDocumentsDirectory(); +var savedPath = join(dir.path, "sample.pdf"); +var result = await WebcontentConverter.webUriToPdf( + uri: "http://127.0.0.1:5500/example/assets/invoice.html", + savedPath: savedPath, + format: PaperFormat.a4, + margins: PdfMargins.px(top: 35, bottom: 35, right: 35, left: 35), +); +``` + +- contentToPDF(String content, double duration, String savedPath, PdfMargins margins, PaperFormat format ) + +Example: + +``` +final content = Demo.getInvoiceContent(); +var dir = await getApplicationDocumentsDirectory(); +var savedPath = join(dir.path, "sample.pdf"); +var result = await WebcontentConverter.contentToPDF( + content: content, + savedPath: savedPath, + format: PaperFormat.a4, + margins: PdfMargins.px(top: 55, bottom: 55, right: 55, left: 55), +); +``` + +`*** Purpose: The three above functions will help developer to get pdf printed file of html content as. It will return a savedPath when saved successful otherwise null` + +![Invoice screenshot](screenshots/invoice.pdf?raw=true "Invoice") \ No newline at end of file diff --git a/packages/webcontent_converter/android/build.gradle b/packages/webcontent_converter/android/build.gradle new file mode 100644 index 00000000..d6db725d --- /dev/null +++ b/packages/webcontent_converter/android/build.gradle @@ -0,0 +1,40 @@ +group 'app.mylekha.webcontent_converter' +version '1.0-SNAPSHOT' + +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +rootProject.allprojects { + repositories { + google() + jcenter() + } +} + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 30 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + defaultConfig { + minSdkVersion 16 + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/packages/webcontent_converter/android/gradle.properties b/packages/webcontent_converter/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/packages/webcontent_converter/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/packages/webcontent_converter/android/gradle/wrapper/gradle-wrapper.properties b/packages/webcontent_converter/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..3c9d0852 --- /dev/null +++ b/packages/webcontent_converter/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/packages/webcontent_converter/android/settings.gradle b/packages/webcontent_converter/android/settings.gradle new file mode 100644 index 00000000..e50414e9 --- /dev/null +++ b/packages/webcontent_converter/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'webcontent_converter' diff --git a/packages/webcontent_converter/android/src/main/AndroidManifest.xml b/packages/webcontent_converter/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..bb3ee510 --- /dev/null +++ b/packages/webcontent_converter/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/packages/webcontent_converter/android/src/main/kotlin/android/print/PdfPrinter.kt b/packages/webcontent_converter/android/src/main/kotlin/android/print/PdfPrinter.kt new file mode 100644 index 00000000..7d63f341 --- /dev/null +++ b/packages/webcontent_converter/android/src/main/kotlin/android/print/PdfPrinter.kt @@ -0,0 +1,50 @@ +package android.print + +import android.os.Build +import android.os.CancellationSignal +import android.os.ParcelFileDescriptor +import java.io.File + +class PdfPrinter(private val printAttributes: PrintAttributes) { + + interface Callback { + fun onSuccess(filePath: String) + fun onFailure() + } + + + fun print(printAdapter: PrintDocumentAdapter, file: File, callback: Callback) { + // Support for min API 16 is required + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + printAdapter.onLayout(null, printAttributes, null, object : PrintDocumentAdapter.LayoutResultCallback() { + + override fun onLayoutFinished(info: PrintDocumentInfo, changed: Boolean) { + printAdapter.onWrite(arrayOf(PageRange.ALL_PAGES), getOutputFile(file), + CancellationSignal(), object : PrintDocumentAdapter.WriteResultCallback() { + + override fun onWriteFinished(pages: Array) { + super.onWriteFinished(pages) + + if (pages.isEmpty()) { + callback.onFailure() + } + + File(file.absolutePath).let { + callback.onSuccess(it.absolutePath) + } + + } + }) + } + }, null) + } + } +} + + +private fun getOutputFile(file: File): ParcelFileDescriptor { + File(file.absolutePath).let{ + it.createNewFile() + return ParcelFileDescriptor.open(it, ParcelFileDescriptor.MODE_READ_WRITE) + } +} diff --git a/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/FLNativeViewFactory.kt b/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/FLNativeViewFactory.kt new file mode 100644 index 00000000..39acada7 --- /dev/null +++ b/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/FLNativeViewFactory.kt @@ -0,0 +1,43 @@ +package app.mylekha.webcontent_converter + +import android.content.Context +import android.view.View +import android.webkit.WebView +import io.flutter.plugin.common.StandardMessageCodec +import io.flutter.plugin.platform.PlatformView +import io.flutter.plugin.platform.PlatformViewFactory + +class FLNativeViewFactory : PlatformViewFactory(StandardMessageCodec.INSTANCE) { + override fun create(context: Context, viewId: Int, args: Any?): PlatformView { + val creationParams = args as Map? + return FLNativeView(context, viewId, creationParams) + } +} + + +internal class FLNativeView(context: Context, id: Int, creationParams: Map?) : PlatformView { + private val webView: WebView = WebView(context) + private var arguments: Map? = creationParams + + override fun getView(): View { + return webView + } + + override fun dispose() {} + + init { + var width = (arguments!!["width"]!! as Number).toInt() + var height = (arguments!!["height"]!! as Number).toInt() + var content = arguments!!["content"] as String + webView.layout(0, 0, width, height) + webView.loadDataWithBaseURL(null, content, "text/HTML", "UTF-8", null) + webView.setInitialScale(1) + webView.settings.javaScriptEnabled = true + webView.settings.useWideViewPort = true + webView.settings.javaScriptCanOpenWindowsAutomatically = true + webView.settings.loadWithOverviewMode = true + + + } + +} diff --git a/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/WebcontentConverterPlugin.kt b/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/WebcontentConverterPlugin.kt new file mode 100644 index 00000000..5824e9ea --- /dev/null +++ b/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/WebcontentConverterPlugin.kt @@ -0,0 +1,261 @@ +package app.mylekha.webcontent_converter + +import android.app.Activity +import android.content.Context +import android.graphics.Bitmap +import android.graphics.Canvas +import android.os.Build +import android.os.Handler +import android.print.PrintAttributes +import android.print.PdfPrinter +import android.view.View +import android.webkit.WebView +import android.webkit.WebViewClient +import androidx.annotation.NonNull +import androidx.annotation.RequiresApi +import io.flutter.embedding.engine.plugins.FlutterPlugin +import io.flutter.embedding.engine.plugins.activity.ActivityAware +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding +import io.flutter.plugin.common.MethodCall +import io.flutter.plugin.common.MethodChannel +import io.flutter.plugin.common.MethodChannel.MethodCallHandler +import io.flutter.plugin.common.MethodChannel.Result +import java.io.ByteArrayOutputStream +import java.io.File +import java.io.FileOutputStream +import kotlin.math.absoluteValue + +/** WebcontentConverterPlugin */ +class WebcontentConverterPlugin : FlutterPlugin, MethodCallHandler, ActivityAware { + /// The MethodChannel that will the communication between Flutter and native Android + /// + /// This local reference serves to register the plugin with the Flutter Engine and unregister it + /// when the Flutter Engine is detached from the Activity + private lateinit var channel: MethodChannel + private lateinit var activity: Activity + private lateinit var context: Context + private lateinit var webView: WebView + + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + val viewID = "webview-view-type" + flutterPluginBinding.platformViewRegistry.registerViewFactory(viewID, FLNativeViewFactory()) + channel = MethodChannel(flutterPluginBinding.binaryMessenger, "webcontent_converter") + channel.setMethodCallHandler(this) + context = flutterPluginBinding.applicationContext + } + + @RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1) + override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) { + val method = call.method + val arguments = call.arguments as Map<*, *> + val content = arguments["content"] as String + var duration = arguments["duration"] as Double? + var width = arguments["width"] as Double? + var height = arguments["height"] as Double? + var savedPath = arguments["savedPath"] as? String + var margins = arguments["margins"] as Map? + var format = arguments["format"] as Map? + if (duration == null) duration = 2000.00 + + when (method) { + "contentToImage" -> { + print("\n activity $activity") + webView = WebView(this.context) + val dwidth = width?.toInt()?:this.activity.window.windowManager.defaultDisplay.width + val dheight = height?.toInt()?:this.activity.window.windowManager.defaultDisplay.height + print("\ndwidth : $dwidth") + print("\ndheight : $dheight") + webView.layout(0, 0, dwidth, dheight) + webView.loadDataWithBaseURL(null, content, "text/HTML", "UTF-8", null) + webView.setInitialScale(1) + webView.settings.javaScriptEnabled = true + webView.settings.useWideViewPort = true + webView.settings.javaScriptCanOpenWindowsAutomatically = true + webView.settings.loadWithOverviewMode = true + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + print("\n=======> enabled scrolled <=========") + WebView.enableSlowWholeDocumentDraw() + } + + print("\n ///////////////// webview setted /////////////////") + + webView.webViewClient = object : WebViewClient() { + override fun onPageFinished(view: WebView, url: String) { + super.onPageFinished(view, url) + + Handler().postDelayed({ + print("\nOS Version: ${android.os.Build.VERSION.SDK_INT}") + print("\n ================ webview completed ==============") + print("\n scroll delayed ${webView.scrollBarFadeDuration}") + + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { + webView.evaluateJavascript("document.body.offsetWidth") { offsetWidth -> + webView.evaluateJavascript("document.body.offsetHeight") { offsetHeight -> + print("\noffsetWidth : $offsetWidth") + print("\noffsetHeight : $offsetHeight") + var data = webView.toBitmap(offsetWidth!!.toDouble(), offsetHeight!!.toDouble()) + if (data != null) { + val bytes = data.toByteArray() +// saveWebView(data) + //ByteArray(0) + result.success(bytes) + println("\n Got snapshot") + } + } + } + } + }, duration!!.toLong()) + } + } + } + "contentToPDF" -> { + print("\n activity $activity") + webView = WebView(this.context) + val dwidth = this.activity.window.windowManager.defaultDisplay.width + val dheight = this.activity.window.windowManager.defaultDisplay.height + print("\ndwidth : $dwidth") + print("\ndheight : $dheight") + webView.layout(0, 0, dwidth, dheight) + webView.loadDataWithBaseURL(null, content, "text/HTML", "UTF-8", null) + webView.setInitialScale(1) + webView.settings.javaScriptEnabled = true + webView.settings.useWideViewPort = true + webView.settings.javaScriptCanOpenWindowsAutomatically = true + webView.settings.loadWithOverviewMode = true + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + print("\n=======> enabled scrolled <=========") + WebView.enableSlowWholeDocumentDraw() + } + + print("\n ///////////////// webview setted /////////////////") + + webView.webViewClient = object : WebViewClient() { + override fun onPageFinished(view: WebView, url: String) { + super.onPageFinished(view, url) + + Handler().postDelayed({ + print("\nOS Version: ${android.os.Build.VERSION.SDK_INT}") + print("\n ================ webview completed ==============") + print("\n scroll delayed ${webView.scrollBarFadeDuration}") + + webView.exportAsPdfFromWebView(savedPath!!, format!!, margins!!, object : PdfPrinter.Callback { + override fun onSuccess(filePath: String) { + result.success(filePath) + } + + override fun onFailure() { + result.success(null) + } + }) + + }, duration!!.toLong()) + + } + } + + } + else + -> result.notImplemented() + } + } + + //test to save bitmap to file + fun saveWebView(data: Bitmap): Boolean { + var path = this.context.getExternalFilesDir(null).toString() + "/sample.jpg" + var file = File(path) + file.writeBitmap(data!!, Bitmap.CompressFormat.JPEG, 100) + return true + } + + override fun onAttachedToActivity(binding: ActivityPluginBinding) { + print("onAttachedToActivity") + activity = binding.activity + webView = WebView(activity.applicationContext) + webView.minimumHeight = 1 + webView.minimumWidth = 1 + } + + override fun onDetachedFromActivityForConfigChanges() { + // TODO: the Activity your plugin was attached to was destroyed to change configuration. + // This call will be followed by onReattachedToActivityForConfigChanges(). + print("onDetachedFromActivityForConfigChanges"); + } + + override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) { + // TODO: your plugin is now attached to a new Activity after a configuration change. + print("onAttachedToActivity") + onAttachedToActivity(binding) + } + + override fun onDetachedFromActivity() { + // TODO: your plugin is no longer associated with an Activity. Clean up references. + print("onDetachedFromActivity") + } + + override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { + channel.setMethodCallHandler(null) + } + + +} + +fun WebView.exportAsPdfFromWebView(savedPath: String, format: Map, margins: Map, callback: PdfPrinter.Callback) { + print("\nsavedPath ${savedPath}") + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + var attributes = PrintAttributes.Builder() + .setMediaSize(PrintAttributes.MediaSize("${format!!["width"]}-${format!!["height"]}", "android", format!!["width"]!!.convertFromInchesToInt(), format!!["height"]!!.convertFromInchesToInt())) + .setResolution(PrintAttributes.Resolution("pdf", "pdf", 600, 600)) + .setMinMargins(PrintAttributes.Margins(margins!!["left"]!!.convertFromInchesToInt(), margins!!["top"]!!.convertFromInchesToInt(), margins!!["right"]!!.convertFromInchesToInt(), margins!!["bottom"]!!.convertFromInchesToInt())) + .build() + var file = File(savedPath) + val fileName = file.absoluteFile.name + var pdfPrinter = PdfPrinter(attributes) + val adapter = this.createPrintDocumentAdapter(fileName) + pdfPrinter.print(adapter, file, callback) + } else { + TODO("VERSION.SDK_INT < LOLLIPOP") + } +} + +fun Double.convertFromInchesToInt(): Int { + if (this > 0) { + return (this.toInt() * 1000) + } + return this.toInt() +} + +fun WebView.toBitmap(offsetWidth: Double, offsetHeight: Double): Bitmap? { + if (offsetHeight > 0 && offsetWidth > 0) { +// print("\noffsetWidth() $offsetWidth") +// print("\noffsetHeight() $offsetHeight") +// print("\nthis.scale ${this.scale}") + val width = (offsetWidth * this.scale).absoluteValue.toInt() + val height = (offsetHeight * this.scale).absoluteValue.toInt() + print("\nwidth $width") + print("\nheight $height") + this.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); + val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) + val canvas = Canvas(bitmap) + this.draw(canvas) + return bitmap + } + return null +} + +fun Bitmap.toByteArray(): ByteArray { + ByteArrayOutputStream().apply { + compress(Bitmap.CompressFormat.PNG, 100, this) + return toByteArray() + } +} + +fun File.writeBitmap(bitmap: Bitmap, format: Bitmap.CompressFormat, quality: Int) { + try { + var fout = FileOutputStream(this.path) + bitmap.compress(format, quality, fout) + fout.flush() + fout.close() + } catch (e: Exception) { + e.printStackTrace(); + } +} \ No newline at end of file diff --git a/packages/webcontent_converter/example/README.md b/packages/webcontent_converter/example/README.md new file mode 100644 index 00000000..327eb60a --- /dev/null +++ b/packages/webcontent_converter/example/README.md @@ -0,0 +1,16 @@ +# webcontent_converter_example + +Demonstrates how to use the webcontent_converter plugin. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/packages/webcontent_converter/example/android/app/build.gradle b/packages/webcontent_converter/example/android/app/build.gradle new file mode 100644 index 00000000..76c5444a --- /dev/null +++ b/packages/webcontent_converter/example/android/app/build.gradle @@ -0,0 +1,59 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 30 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "app.mylekha.webcontent_converter_example" + minSdkVersion 21 + targetSdkVersion 30 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/packages/webcontent_converter/example/android/app/src/debug/AndroidManifest.xml b/packages/webcontent_converter/example/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..aa8c97db --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/packages/webcontent_converter/example/android/app/src/main/AndroidManifest.xml b/packages/webcontent_converter/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..e8a9f7cb --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/example/MainActivity.kt b/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/example/MainActivity.kt new file mode 100644 index 00000000..dbdd7afb --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/example/MainActivity.kt @@ -0,0 +1,6 @@ +package app.mylekha.example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/webcontent_converter_example/MainActivity.kt b/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/webcontent_converter_example/MainActivity.kt new file mode 100644 index 00000000..d895dac1 --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/webcontent_converter_example/MainActivity.kt @@ -0,0 +1,6 @@ +package app.mylekha.webcontent_converter_example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/webcontent_converter_example/example/MainActivity.kt b/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/webcontent_converter_example/example/MainActivity.kt new file mode 100644 index 00000000..96a5e57f --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/main/kotlin/app/mylekha/webcontent_converter_example/example/MainActivity.kt @@ -0,0 +1,6 @@ +package app.mylekha.webcontent_converter_example.example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/packages/webcontent_converter/example/android/app/src/main/res/drawable-v21/launch_background.xml b/packages/webcontent_converter/example/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 00000000..f74085f3 --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/webcontent_converter/example/android/app/src/main/res/drawable/launch_background.xml b/packages/webcontent_converter/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/webcontent_converter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/webcontent_converter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/webcontent_converter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/webcontent_converter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/webcontent_converter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/android/app/src/main/res/values-night/styles.xml b/packages/webcontent_converter/example/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 00000000..449a9f93 --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/webcontent_converter/example/android/app/src/main/res/values/styles.xml b/packages/webcontent_converter/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..d74aa35c --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/webcontent_converter/example/android/app/src/profile/AndroidManifest.xml b/packages/webcontent_converter/example/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..aa8c97db --- /dev/null +++ b/packages/webcontent_converter/example/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/packages/webcontent_converter/example/android/build.gradle b/packages/webcontent_converter/example/android/build.gradle new file mode 100644 index 00000000..c505a863 --- /dev/null +++ b/packages/webcontent_converter/example/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/packages/webcontent_converter/example/android/gradle.properties b/packages/webcontent_converter/example/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/packages/webcontent_converter/example/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/packages/webcontent_converter/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/webcontent_converter/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..bc6a58af --- /dev/null +++ b/packages/webcontent_converter/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/packages/webcontent_converter/example/android/settings.gradle b/packages/webcontent_converter/example/android/settings.gradle new file mode 100644 index 00000000..44e62bcf --- /dev/null +++ b/packages/webcontent_converter/example/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/packages/webcontent_converter/example/assets/invoice.html b/packages/webcontent_converter/example/assets/invoice.html new file mode 100644 index 00000000..f77b69c1 --- /dev/null +++ b/packages/webcontent_converter/example/assets/invoice.html @@ -0,0 +1,1378 @@ + + + + + + + + SALE INVOICE + + + + + + + +

+
+
+ + +
+

invoice

+ +
+
+
+ + + +
+
+
+

store

+

name: ONE CLICK(SR)

+

address: Siemreap

+

phone: 069777566

+

email: admin@theoneclicks.com

+

date: 2021-01-23 12:11:40

+

invoice: S13-1000049

+

reference: .................................

+
+ +
+
+
+

customer

+

name: JBL PoiPet(Daro)

+

address: ................................. +

+

phone: 089494793

+

email: .................................

+

payment: completed

+ +
+
+
+ +

note:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
No.descriptionquantityunit pricediscounttotal
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
total price (US Dollar) $ 385.00
total price (KHMER Riel) ៛ 1559250.00
discount ( 0% )$ 0.00
vat ( 0% )$ 0.00
paid$ 385.00
due$ 0.00
+ +
+ +
+

Thank you for shopping with us. Please come again

+
+
+
+
Published by MYLEKHA on 2021-03-26 20:49:15. Current timezone is Asia/Phnom_Penh
+
+ + + \ No newline at end of file diff --git a/packages/webcontent_converter/example/assets/receipt.html b/packages/webcontent_converter/example/assets/receipt.html new file mode 100644 index 00000000..67257a4b --- /dev/null +++ b/packages/webcontent_converter/example/assets/receipt.html @@ -0,0 +1,410 @@ + + + + + + + RECEIPT + + + + + + +
+
+ +
+

MYLEKHA STORE

+
+

320.00

+ Total +
+
+ + +

Cashier: owner

+

POS: POS 1

+
+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+
+ + + +

+ Total + 4.00 +

+

+ Cash + 4.00 +

+
+
+ +
+

+ 01/09/2020 22:23 + No 3-10001 +

+
+ +
+
+
+

@2020 MYLEKHA. All right reserved.

+
+ + + + + \ No newline at end of file diff --git a/packages/webcontent_converter/example/assets/shift.html b/packages/webcontent_converter/example/assets/shift.html new file mode 100644 index 00000000..b96ab5e1 --- /dev/null +++ b/packages/webcontent_converter/example/assets/shift.html @@ -0,0 +1,1120 @@ + + + + + + + + SHIFT + + + + + + +
+
+
+ + +
+

Shift Report

+ +
+
+
+ + + +
+
+
+

store

+

name: ONE CLICK(SR)

+

address: Siemreap

+

phone: 069777566

+

email: admin@theoneclicks.com

+

opened at: 2021-01-23 12:11:40

+

closed at: 2021-01-23 12:11:40

+

Code number: S13-1000049

+

device: POS TEST 1

+
+ +
+
+
+

employee

+

name: TEST EMPLOYEE

+

address: .................................

+

phone: 089494793

+

email: .................................

+
+
+
+ +

note:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cash DrawerCash InCash Out
Starting Cash350
Cash Payment35
Cash Refund20
Paid In20
Paid Out0
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SummaryTotal
Expected Cash$ 385.00
Actual Cash$ 385.00
Different$ 0.00
Gross Sale$ 100.00
Refund$ 0.00
Discount$ 0.00
Net Sale$ 80.00
VAT$ 0.00
+ +
+ +
+
+
Published by MYLEKHA on 2021-03-26 20:49:15. Current timezone is Asia/Phnom_Penh
+
+ + + \ No newline at end of file diff --git a/packages/webcontent_converter/example/ios/Flutter/AppFrameworkInfo.plist b/packages/webcontent_converter/example/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..9625e105 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/packages/webcontent_converter/example/ios/Flutter/Debug.xcconfig b/packages/webcontent_converter/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..ec97fc6f --- /dev/null +++ b/packages/webcontent_converter/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/webcontent_converter/example/ios/Flutter/Flutter.podspec b/packages/webcontent_converter/example/ios/Flutter/Flutter.podspec new file mode 100644 index 00000000..663d5b29 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Flutter/Flutter.podspec @@ -0,0 +1,18 @@ +# +# NOTE: This podspec is NOT to be published. It is only used as a local source! +# This is a generated file; do not edit or check into version control. +# + +Pod::Spec.new do |s| + s.name = 'Flutter' + s.version = '1.0.0' + s.summary = 'High-performance, high-fidelity mobile apps.' + s.homepage = 'https://flutter.io' + s.license = { :type => 'MIT' } + s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } + s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } + s.ios.deployment_target = '9.0' + # Framework linking is handled by Flutter tooling, not CocoaPods. + # Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs. + s.vendored_frameworks = 'path/to/nothing' +end diff --git a/packages/webcontent_converter/example/ios/Flutter/Release.xcconfig b/packages/webcontent_converter/example/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..c4855bfe --- /dev/null +++ b/packages/webcontent_converter/example/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.pbxproj b/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..4a61d1f5 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,557 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + B71B53B5B8A05941895AB7F9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8484E24A9B8AC2B9D5A23AA3 /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 664A3471732685B802862209 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 8484E24A9B8AC2B9D5A23AA3 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9018B03BE0E412B17D50F679 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + CCF25F4B2A576F1B8D6B3E0F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B71B53B5B8A05941895AB7F9 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + FE8AF5F019F1B76A65240595 /* Pods */, + F88C12CC7ACE3A939DD8838C /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + F88C12CC7ACE3A939DD8838C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 8484E24A9B8AC2B9D5A23AA3 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + FE8AF5F019F1B76A65240595 /* Pods */ = { + isa = PBXGroup; + children = ( + CCF25F4B2A576F1B8D6B3E0F /* Pods-Runner.debug.xcconfig */, + 9018B03BE0E412B17D50F679 /* Pods-Runner.release.xcconfig */, + 664A3471732685B802862209 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 4FAAFA83854574388CBE9E46 /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + F4CBD84F3B824DCCAF3950AD /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 4FAAFA83854574388CBE9E46 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + F4CBD84F3B824DCCAF3950AD /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = Q725DRDM85; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = app.mylekha.webcontentconverterexample.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = Q725DRDM85; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = app.mylekha.webcontentconverterexample.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = Q725DRDM85; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = app.mylekha.webcontentconverterexample.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/webcontent_converter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/webcontent_converter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..c87d15a3 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/webcontent_converter/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/webcontent_converter/example/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/webcontent_converter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/webcontent_converter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/webcontent_converter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/webcontent_converter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/webcontent_converter/example/ios/Runner/AppDelegate.swift b/packages/webcontent_converter/example/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/packages/webcontent_converter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/webcontent_converter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/webcontent_converter/example/ios/Runner/Base.lproj/Main.storyboard b/packages/webcontent_converter/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..7f733b80 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/webcontent_converter/example/ios/Runner/Info.plist b/packages/webcontent_converter/example/ios/Runner/Info.plist new file mode 100644 index 00000000..645e4cc2 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner/Info.plist @@ -0,0 +1,59 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + NSBluetoothAlwaysUsageDescription + Need BLE permission + NSBluetoothPeripheralUsageDescription + Need BLE permission + NSLocationAlwaysAndWhenInUseUsageDescription + Need Location permission + NSLocationAlwaysUsageDescription + Need Location permission + NSLocationWhenInUseUsageDescription + Need Location permission + NSPhotoLibraryUsageDescription + + NSPhotoLibraryAddUsageDescription + + + diff --git a/packages/webcontent_converter/example/ios/Runner/Runner-Bridging-Header.h b/packages/webcontent_converter/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/packages/webcontent_converter/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/packages/webcontent_converter/example/lib/main.dart b/packages/webcontent_converter/example/lib/main.dart new file mode 100644 index 00000000..a96cd418 --- /dev/null +++ b/packages/webcontent_converter/example/lib/main.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; +import 'route.dart'; + +void main() { + runApp(MyApp()); +} + +class MyApp extends StatefulWidget { + @override + _MyAppState createState() => _MyAppState(); +} + +class _MyAppState extends State { + @override + Widget build(BuildContext context) { + return MaterialApp( + title: "webcontent converter", + initialRoute: "/", + routes: routes, + onGenerateRoute: onGenerateRoute, + ); + } +} diff --git a/packages/webcontent_converter/example/lib/route.dart b/packages/webcontent_converter/example/lib/route.dart new file mode 100644 index 00000000..38ee7e33 --- /dev/null +++ b/packages/webcontent_converter/example/lib/route.dart @@ -0,0 +1,79 @@ +import 'package:flutter/material.dart'; +import 'package:webcontent_converter/webcontent_converter.dart'; +import 'package:webcontent_converter_example/screens/content_image_screen.dart'; +import 'package:webcontent_converter_example/screens/content_pdf_screen.dart'; +import 'package:webcontent_converter_example/screens/error_screen.dart'; + +import 'screens/filepath_image_screen.dart'; +import 'screens/filepath_pdf_screen.dart'; +import 'screens/home_screen.dart'; +import 'screens/weburi_image_screen.dart'; +import 'screens/weburi_pdf_screen.dart'; +import 'screens/webview_screen.dart'; + +Map routes = { + '/': (_) => HomeScreen(), +}; + +Route onGenerateRoute(RouteSettings settings) { + final name = settings.name; + final arguments = settings.arguments; + WebcontentConverter.logger.info("name: $name || arguments: $arguments"); + + switch (name) { + + /// `Image converter` + case "/content_image_screen": + return MaterialPageRoute( + builder: (context) => ContentToImageScreen(), + settings: settings, + ); + break; + case "/weburi_image_screen": + return MaterialPageRoute( + builder: (context) => WebUriToImageScreen(), + settings: settings, + ); + break; + case "/path_image_screen": + return MaterialPageRoute( + builder: (context) => FilePathToImageScreen(), + settings: settings, + ); + break; + + /// `PDF converter` + case "/content_pdf_screen": + return MaterialPageRoute( + builder: (context) => ContentToPDFScreen(), + settings: settings, + ); + break; + case "/weburi_pdf_screen": + return MaterialPageRoute( + builder: (context) => WebUriToPDFScreen(), + settings: settings, + ); + break; + case "/path_pdf_screen": + return MaterialPageRoute( + builder: (context) => FilePathToPDFScreen(), + settings: settings, + ); + break; + case "/webview_screen": + return MaterialPageRoute( + builder: (context) => WebViewScreen(), + settings: settings, + ); + break; + default: + return MaterialPageRoute( + builder: (context) => ErrorScreen( + name: name!, + arguments: arguments, + ), + settings: settings, + ); + } +} diff --git a/packages/webcontent_converter/example/lib/screens/content_image_screen.dart b/packages/webcontent_converter/example/lib/screens/content_image_screen.dart new file mode 100644 index 00000000..67b391d9 --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/content_image_screen.dart @@ -0,0 +1,1083 @@ +import 'dart:io' as io; +import 'dart:typed_data' show Uint8List; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:webcontent_converter/webcontent_converter.dart'; +import 'package:webcontent_converter_example/services/demo.dart'; +import 'package:webcontent_converter_example/services/webview_helper.dart'; + +class ContentToImageScreen extends StatefulWidget { + @override + _ContentToImageScreenState createState() => _ContentToImageScreenState(); +} + +class _ContentToImageScreenState extends State { + Uint8List? _bytes; + io.File? _file; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Content to Image"), + actions: [ + IconButton( + icon: Icon(Icons.image), + onPressed: _convert, + ), + IconButton( + icon: Icon(Icons.wifi_rounded), + onPressed: _startPrintWireless, + ), + IconButton( + icon: Icon(Icons.bluetooth), + onPressed: _startPrintBluetooth, + ), + ], + ), + body: Container( + color: Colors.white, + alignment: Alignment.topCenter, + child: SingleChildScrollView( + primary: false, + child: Column( + children: [ + if (_file != null) + Container( + width: 400, + alignment: Alignment.topCenter, + child: Image.memory(_file!.readAsBytesSync()), + ), + + // if (_file != null) Image.memory(_file.readAsBytesSync()), + if (_bytes?.isNotEmpty == true) + Container( + width: 400, + alignment: Alignment.topCenter, + decoration: + BoxDecoration(border: Border.all(color: Colors.blue)), + child: Image.memory(_bytes!), + ) + ], + ), + ), + ), + ); + } + + ///[convert html] content into bytes + _convert() async { + var executablePath = + WebViewHelper.isChromeAvailable ? WebViewHelper.executablePath() : null; + final content = Demo.getReceiptContent(); + var bytes = await WebcontentConverter.contentToImage( + content: content, + executablePath: executablePath, + ); + if (bytes.length > 0) _saveFile(bytes); + WebcontentConverter.logger.info(bytes); + } + + ///[save bytes] into file + _saveFile(Uint8List bytes) async { + setState(() => _bytes = bytes); + if (kIsWeb) { + return; + } + var dir = await getTemporaryDirectory(); + var path = join(dir.path, "receipt.jpg"); + io.File file = io.File(path); + await file.writeAsBytes(bytes); + WebcontentConverter.logger.info(file.path); + setState(() => _file = file); + } + + _startPrintWireless() async { + // var p = ESCPrinterService(_bytes); + // p.startPrint(); + } + + _startPrintBluetooth() { + // var p = ESCPrinterService(_bytes); + // p.startBluePrint(); + } +} + +List sample = [ + 255, + 216, + 255, + 224, + 0, + 16, + 74, + 70, + 73, + 70, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 255, + 226, + 2, + 40, + 73, + 67, + 67, + 95, + 80, + 82, + 79, + 70, + 73, + 76, + 69, + 0, + 1, + 1, + 0, + 0, + 2, + 24, + 0, + 0, + 0, + 0, + 2, + 16, + 0, + 0, + 109, + 110, + 116, + 114, + 82, + 71, + 66, + 32, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 97, + 99, + 115, + 112, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 246, + 214, + 0, + 1, + 0, + 0, + 0, + 0, + 211, + 45, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9, + 100, + 101, + 115, + 99, + 0, + 0, + 0, + 240, + 0, + 0, + 0, + 116, + 114, + 88, + 89, + 90, + 0, + 0, + 1, + 100, + 0, + 0, + 0, + 20, + 103, + 88, + 89, + 90, + 0, + 0, + 1, + 120, + 0, + 0, + 0, + 20, + 98, + 88, + 89, + 90, + 0, + 0, + 1, + 140, + 0, + 0, + 0, + 20, + 114, + 84, + 82, + 67, + 0, + 0, + 1, + 160, + 0, + 0, + 0, + 40, + 103, + 84, + 82, + 67, + 0, + 0, + 1, + 160, + 0, + 0, + 0, + 40, + 98, + 84, + 82, + 67, + 0, + 0, + 1, + 160, + 0, + 0, + 0, + 40, + 119, + 116, + 112, + 116, + 0, + 0, + 1, + 200, + 0, + 0, + 0, + 20, + 99, + 112, + 114, + 116, + 0, + 0, + 1, + 220, + 0, + 0, + 0, + 60, + 109, + 108, + 117, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 12, + 101, + 110, + 85, + 83, + 0, + 0, + 0, + 88, + 0, + 0, + 0, + 28, + 0, + 115, + 0, + 82, + 0, + 71, + 0, + 66, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 111, + 162, + 0, + 0, + 56, + 245, + 0, + 0, + 3, + 144, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 98, + 153, + 0, + 0, + 183, + 133, + 0, + 0, + 24, + 218, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 36, + 160, + 0, + 0, + 15, + 132, + 0, + 0, + 182, + 207, + 112, + 97, + 114, + 97, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 2, + 102, + 102, + 0, + 0, + 242, + 167, + 0, + 0, + 13, + 89, + 0, + 0, + 19, + 208, + 0, + 0, + 10, + 91, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 88, + 89, + 90, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 246, + 214, + 0, + 1, + 0, + 0, + 0, + 0, + 211, + 45, + 109, + 108, + 117, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 12, + 101, + 110, + 85, + 83, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 28, + 0, + 71, + 0, + 111, + 0, + 111, + 0, + 103, + 0, + 108, + 0, + 101, + 0, + 32, + 0, + 73, + 0, + 110, + 0, + 99, + 0, + 46, + 0, + 32, + 0, + 50, + 0, + 48, + 0, + 49, + 0, + 54, + 255, + 219, + 0, + 67, + 0, + 6, + 4, + 5, + 6, + 5, + 4, + 6, + 6, + 5, + 6, + 7, + 7, + 6, + 8, + 10, + 16, + 10, + 10, + 9, + 9, + 10, + 20, + 14, + 15, + 12, + 16, + 23, + 20, + 24, + 24, + 23, + 20, + 22, + 22, + 26, + 29, + 37, + 31, + 26, + 27, + 35, + 28, + 22, + 22, + 32, + 44, + 32, + 35, + 38, + 39, + 41, + 42, + 41, + 25, + 31, + 45, + 48, + 45, + 40, + 48, + 37, + 40, + 41, + 40, + 255, + 219, + 0, + 67, + 1, + 7, + 7, + 7, + 10, + 8, + 10, + 19, + 10, + 10, + 19, + 40, + 26, + 22, + 26, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 40, + 255, + 192, + 0, + 17, + 8, + 0, + 200, + 0, + 100, + 3, + 1, + 34, + 0, + 2, + 17, + 1, + 3, + 17, + 1, + 255, + 196, + 0, + 21, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8, + 255, + 196, + 0, + 20, + 16, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 255, + 196, + 0, + 20, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 255, + 196, + 0, + 20, + 17, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 255, + 218, + 0, + 12, + 3, + 1, + 0, + 2, + 17, + 3, + 17, + 0, + 63, + 0, + 149, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7, + 255, + 217 +]; diff --git a/packages/webcontent_converter/example/lib/screens/content_pdf_screen.dart b/packages/webcontent_converter/example/lib/screens/content_pdf_screen.dart new file mode 100644 index 00000000..49649050 --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/content_pdf_screen.dart @@ -0,0 +1,79 @@ +import 'dart:io' as io; +import 'package:flutter/material.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:printing/printing.dart'; +import 'package:webcontent_converter/webcontent_converter.dart'; +import 'package:webcontent_converter_example/services/demo.dart'; +import 'package:webcontent_converter_example/services/webview_helper.dart'; + +class ContentToPDFScreen extends StatefulWidget { + @override + _ContentToPDFScreenState createState() => _ContentToPDFScreenState(); +} + +class _ContentToPDFScreenState extends State { + io.File? _file; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Content to PDF"), + actions: [ + IconButton( + icon: Icon(Icons.picture_as_pdf), + onPressed: _convert, + ), + IconButton( + icon: Icon(Icons.chrome_reader_mode), + onPressed: _previewPDF, + ), + ], + ), + body: Container( + alignment: Alignment.center, + color: Colors.white, + child: _file != null + ? Container( + constraints: BoxConstraints(maxWidth: 600), + child: PdfPreview( + build: (format) async { + return await _file!.readAsBytes(); + }, + useActions: false, + scrollViewDecoration: + BoxDecoration(color: Colors.transparent), + ), + ) + : null, + ), + ); + } + + ///[convert html] content into pdf + _convert() async { + var executablePath = + WebViewHelper.isChromeAvailable ? WebViewHelper.executablePath() : null; + final content = Demo.getInvoiceContent(); + var dir = await getApplicationDocumentsDirectory(); + var savedPath = join(dir.path, "sample.pdf"); + var result = await WebcontentConverter.contentToPDF( + content: content, + savedPath: savedPath, + format: PaperFormat.a4, + margins: PdfMargins.px(top: 55, bottom: 55, right: 55, left: 55), + executablePath: executablePath, + ); + + setState(() => _file = io.File(savedPath)); + + /// [printing] + // await Printing.layoutPdf( + // onLayout: (PdfPageFormat format) => _file.readAsBytes()); + + WebcontentConverter.logger.info(result ?? ''); + } + + _previewPDF() async {} +} diff --git a/packages/webcontent_converter/example/lib/screens/error_screen.dart b/packages/webcontent_converter/example/lib/screens/error_screen.dart new file mode 100644 index 00000000..66ae0bef --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/error_screen.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +/// [ErrorScreen] will be respresented on eror route not found +class ErrorScreen extends StatelessWidget { + /// [name] will be route name + final String name; + + /// [arguments] will be the route arguments object + final dynamic arguments; + + /// + const ErrorScreen({Key? key, required this.name, this.arguments}) + : super(key: key); + + @override + Widget build(BuildContext context) { + // print(arguments); + return Scaffold( + appBar: AppBar( + title: Text("ERROR"), + ), + body: Center( + child: Text("error: not found $name ${arguments.toString()}"), + ), + ); + } +} diff --git a/packages/webcontent_converter/example/lib/screens/filepath_image_screen.dart b/packages/webcontent_converter/example/lib/screens/filepath_image_screen.dart new file mode 100644 index 00000000..938761ef --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/filepath_image_screen.dart @@ -0,0 +1,72 @@ +import 'dart:io'; +import 'dart:typed_data' show Uint8List; +import 'package:flutter/material.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:webcontent_converter/webcontent_converter.dart'; +import 'package:webcontent_converter_example/services/webview_helper.dart'; + +class FilePathToImageScreen extends StatefulWidget { + @override + _FilePathToImageScreenState createState() => _FilePathToImageScreenState(); +} + +class _FilePathToImageScreenState extends State { + Uint8List? _bytes; + File? _file; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("URI to Image"), + actions: [ + IconButton( + icon: Icon(Icons.image), + onPressed: _convert, + ), + IconButton( + icon: Icon(Icons.print), + onPressed: _testPrint, + ), + ], + ), + body: Container( + color: Colors.white, + child: ListView( + children: [ + if (_file != null) Image.memory(_file!.readAsBytesSync()), + ], + ), + ), + ); + } + + ///[convert asset file html] content into bytes + _convert() async { + var executablePath = + WebViewHelper.isChromeAvailable ? WebViewHelper.executablePath() : null; + var bytes = await WebcontentConverter.filePathToImage( + path: "assets/receipt.html", + executablePath: executablePath, + ); + if (bytes.length > 0) _saveFile(bytes); + WebcontentConverter.logger.info(bytes); + } + + ///[save bytes] into file + _saveFile(Uint8List bytes) async { + setState(() => _bytes = bytes); + var dir = await getTemporaryDirectory(); + var path = join(dir.path, "receipt.jpg"); + File file = File(path); + await file.writeAsBytes(bytes); + WebcontentConverter.logger.info(file.path); + setState(() => _file = file); + } + + _testPrint() async { + // var p = ESCPrinterService(_bytes); + // p.startPrint(); + } +} diff --git a/packages/webcontent_converter/example/lib/screens/filepath_pdf_screen.dart b/packages/webcontent_converter/example/lib/screens/filepath_pdf_screen.dart new file mode 100644 index 00000000..206107ae --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/filepath_pdf_screen.dart @@ -0,0 +1,61 @@ +import 'dart:io' as io; +import 'package:flutter/material.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:webcontent_converter/webcontent_converter.dart'; +import 'package:webcontent_converter_example/services/webview_helper.dart'; + +class FilePathToPDFScreen extends StatefulWidget { + @override + _FilePathToPDFScreenState createState() => _FilePathToPDFScreenState(); +} + +class _FilePathToPDFScreenState extends State { + io.File? _file; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Filepath to PDF"), + actions: [ + IconButton( + icon: Icon(Icons.picture_as_pdf), + onPressed: _convert, + ), + IconButton( + icon: Icon(Icons.chrome_reader_mode), + onPressed: _previewPDF, + ), + ], + ), + body: Container( + color: Colors.white, + child: ListView( + children: [ + if (_file != null) Image.memory(_file!.readAsBytesSync()), + ], + ), + ), + ); + } + + ///[convert asset file html] content into pdf + _convert() async { + var executablePath = + WebViewHelper.isChromeAvailable ? WebViewHelper.executablePath() : null; + var dir = await getApplicationDocumentsDirectory(); + var savedPath = join(dir.path, "sample.pdf"); + var result = await WebcontentConverter.filePathToPdf( + path: "assets/invoice.html", + savedPath: savedPath, + format: PaperFormat.a4, + margins: PdfMargins.px(top: 35, bottom: 35, right: 35, left: 35), + executablePath: executablePath, + ); + + WebcontentConverter.logger.info(result ?? ''); + } + + _previewPDF() async {} +} diff --git a/packages/webcontent_converter/example/lib/screens/home_screen.dart b/packages/webcontent_converter/example/lib/screens/home_screen.dart new file mode 100644 index 00000000..649cde48 --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/home_screen.dart @@ -0,0 +1,72 @@ +import 'package:flutter/material.dart'; + +class HomeScreen extends StatefulWidget { + @override + _HomeScreenState createState() => _HomeScreenState(); +} + +class _HomeScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("HOME SCREEN"), + ), + body: ListView( + children: [ + ListTile( + title: Text("Image converter"), + leading: Icon(Icons.image), + ), + ListTile( + title: Text("content to image"), + onTap: () => + Navigator.of(context).pushNamed("/content_image_screen"), + trailing: Icon(Icons.arrow_right), + ), + ListTile( + title: Text("weburi to image"), + onTap: () => + Navigator.of(context).pushNamed("/weburi_image_screen"), + trailing: Icon(Icons.arrow_right), + ), + ListTile( + title: Text("File path to image"), + onTap: () => Navigator.of(context).pushNamed("/path_image_screen"), + trailing: Icon(Icons.arrow_right), + ), + ListTile( + title: Text("Pdf converter"), + leading: Icon(Icons.picture_as_pdf), + ), + ListTile( + title: Text("content to pdf"), + onTap: () => Navigator.of(context).pushNamed("/content_pdf_screen"), + trailing: Icon(Icons.arrow_right), + ), + ListTile( + title: Text("weburi to pdf"), + onTap: () => Navigator.of(context).pushNamed("/weburi_pdf_screen"), + trailing: Icon(Icons.arrow_right), + ), + ListTile( + title: Text("file path to pdf"), + onTap: () => Navigator.of(context).pushNamed("/path_pdf_screen"), + trailing: Icon(Icons.arrow_right), + ), + ListTile( + title: Text("bluetooth device screen"), + onTap: () => + Navigator.of(context).pushNamed("/bluetooth_device_screen"), + trailing: Icon(Icons.bluetooth_connected), + ), + ListTile( + title: Text("webview screen"), + onTap: () => Navigator.of(context).pushNamed("/webview_screen"), + trailing: Icon(Icons.open_in_browser_outlined), + ), + ], + ), + ); + } +} diff --git a/packages/webcontent_converter/example/lib/screens/weburi_image_screen.dart b/packages/webcontent_converter/example/lib/screens/weburi_image_screen.dart new file mode 100644 index 00000000..4e0b3056 --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/weburi_image_screen.dart @@ -0,0 +1,71 @@ +import 'dart:io' as io; +import 'dart:typed_data' show Uint8List; +import 'package:flutter/material.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:webcontent_converter/webcontent_converter.dart'; +import 'package:webcontent_converter_example/services/webview_helper.dart'; + +class WebUriToImageScreen extends StatefulWidget { + @override + _WebUriToImageScreenState createState() => _WebUriToImageScreenState(); +} + +class _WebUriToImageScreenState extends State { + Uint8List? _bytes; + io.File? _file; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("URI to Image"), + actions: [ + IconButton( + icon: Icon(Icons.image), + onPressed: _convert, + ), + IconButton( + icon: Icon(Icons.print), + onPressed: _testPrint, + ), + ], + ), + body: Container( + color: Colors.white, + child: ListView( + children: [ + if (_file != null) Image.memory(_file!.readAsBytesSync()), + ], + ), + ), + ); + } + + ///[convert html] content into bytes + _convert() async { + var executablePath = + WebViewHelper.isChromeAvailable ? WebViewHelper.executablePath() : null; + var bytes = await WebcontentConverter.webUriToImage( + uri: "http://127.0.0.1:5500/example/assets/receipt.html", + executablePath: executablePath, + ); + if (bytes.length > 0) _saveFile(bytes); + } + + ///[save bytes] into file + _saveFile(Uint8List bytes) async { + setState(() => _bytes = bytes); + var dir = await getTemporaryDirectory(); + var path = join(dir.path, "receipt.jpg"); + io.File file = io.File(path); + await file.writeAsBytes(bytes); + WebcontentConverter.logger(file.path); + setState(() => _file = file); + } + + _testPrint() async { + // var p = ESCPrinterService(_bytes); + // p.startPrint(); + } +} diff --git a/packages/webcontent_converter/example/lib/screens/weburi_pdf_screen.dart b/packages/webcontent_converter/example/lib/screens/weburi_pdf_screen.dart new file mode 100644 index 00000000..2fdfc228 --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/weburi_pdf_screen.dart @@ -0,0 +1,58 @@ +import 'dart:io' as io; +import 'package:flutter/material.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:webcontent_converter/webcontent_converter.dart'; +import 'package:webcontent_converter_example/services/webview_helper.dart'; + +class WebUriToPDFScreen extends StatefulWidget { + @override + _WebUriToPDFScreenState createState() => _WebUriToPDFScreenState(); +} + +class _WebUriToPDFScreenState extends State { + io.File? _file; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("URI to PDF"), + actions: [ + IconButton( + icon: Icon(Icons.picture_as_pdf), + onPressed: _convert, + ), + IconButton( + icon: Icon(Icons.chrome_reader_mode), + onPressed: _previewPDF, + ), + ], + ), + body: Container( + color: Colors.white, + child: ListView( + children: [ + if (_file != null) Image.memory(_file!.readAsBytesSync()), + ], + ), + ), + ); + } + + ///[convert html] content into pdf + _convert() async { + var executablePath = + WebViewHelper.isChromeAvailable ? WebViewHelper.executablePath() : null; + var dir = await getApplicationDocumentsDirectory(); + var savedPath = join(dir.path, "sample.pdf"); + var result = await WebcontentConverter.webUriToPdf( + uri: "http://127.0.0.1:5500/example/assets/invoice.html", + savedPath: savedPath, + executablePath: executablePath, + ); + WebcontentConverter.logger.info(result ?? ''); + } + + _previewPDF() async {} +} diff --git a/packages/webcontent_converter/example/lib/screens/webview_screen.dart b/packages/webcontent_converter/example/lib/screens/webview_screen.dart new file mode 100644 index 00000000..5161ce64 --- /dev/null +++ b/packages/webcontent_converter/example/lib/screens/webview_screen.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; +import 'package:webcontent_converter/webcontent_converter.dart'; +import 'package:webcontent_converter_example/services/demo.dart'; + +class WebViewScreen extends StatefulWidget { + @override + _WebViewScreenState createState() => _WebViewScreenState(); +} + +class _WebViewScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("WebView Screen"), + ), + body: Column( + children: [ + SizedBox( + width: MediaQuery.of(context).size.width, + height: 400, + child: WebViewWidget(Demo.getInvoiceContent()), + ) + ], + ), + floatingActionButton: FloatingActionButton( + child: Icon(Icons.replay_outlined), + onPressed: _onPressed, + ), + ); + } + + _onPressed() {} +} diff --git a/packages/webcontent_converter/example/lib/services/demo.dart b/packages/webcontent_converter/example/lib/services/demo.dart new file mode 100644 index 00000000..7dac9439 --- /dev/null +++ b/packages/webcontent_converter/example/lib/services/demo.dart @@ -0,0 +1,1175 @@ +class Demo { + static String getInvoiceContent() { + return """ + + + + + + + + SALE INVOICE + + + + + + + +
+
+
+ + +
+

invoice

+
+
+
+
+ + + +
+
+
+

store

+

name: ONE CLICK(SR)

+

address: Siemreap

+

phone: 069777566

+

email: admin@theoneclicks.com

+

date: 2021-01-23 12:11:40

+

invoice: S13-1000049

+

reference: .................................

+
+ +
+
+
+

customer

+

name: JBL PoiPet(Daro)

+

address: ................................. +

+

phone: 089494793

+

email: .................................

+

payment: completed

+ +
+
+
+ +

note:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
No.descriptionquantityunit pricediscounttotal
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
total price (US Dollar) \$ 385.00
total price (KHMER Riel) ៛ 1559250.00
discount ( 0% )\$ 0.00
vat ( 0% )\$ 0.00
paid\$ 385.00
due\$ 0.00
+ + +
+ +
Thank you for shopping with us. Please come again
+
+
+ +
Published by MYLEKHA on 2021-03-26 20:49:15. Current timezone is Asia/Phnom_Penh
+
+
+ + + + + """; + } + + static String getReceiptContent() { + return """ + + + + + + + RECEIPT + + + + + + +
+
+ +
+

MYLEKHA STORE

+
+

320.00

+ Total +
+
+ + +

Cashier: owner

+

POS: POS 1

+
+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+
+ + + +

+ Total + 4.00 +

+

+ Cash + 4.00 +

+
+
+ +
+

+ 01/09/2020 22:23 + No 3-10001 +

+
+ +
+
+
+

@2020 MYLEKHA. All right reserved.

+
+ + + + + + """; + } + + static String getShortReceiptContent() { + return """ + + + + + + + RECEIPT + + + + + + +
+
+ +
+

MYLEKHA STORE

+
+

320.00

+ Total +
+
+ + +

Cashier: owner

+

POS: POS 1

+
+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+ +

+ Item c1 p2 + 4.00 +

+

2 x 2.00

+

+egg (0.60)

+

+rice (3.00)

+ + +
+ + + +

+ Total + 4.00 +

+

+ Cash + 4.00 +

+
+
+ +
+

+ 01/09/2020 22:23 + No 3-10001 +

+
+ +
+
+
+

សូមអរគុណ

+

@2020 MYLEKHA. All right reserved.

+
+ + + + + + """; + } +} diff --git a/packages/webcontent_converter/example/lib/services/esc_printer_service.dart b/packages/webcontent_converter/example/lib/services/esc_printer_service.dart new file mode 100644 index 00000000..6754d69b --- /dev/null +++ b/packages/webcontent_converter/example/lib/services/esc_printer_service.dart @@ -0,0 +1,117 @@ +// import 'dart:io'; +// import 'dart:typed_data'; +// import 'package:blue_thermal_printer/blue_thermal_printer.dart'; +// import 'package:image/image.dart' as img; +// import 'package:webcontent_converter/webcontent_converter.dart'; + +// class ESCPrinterService { +// final Uint8List receipt; +// // List _bytes; +// // List get bytes => _bytes; +// // PaperSize _paperSize; +// // CapabilityProfile _profile; + +// ESCPrinterService(this.receipt); + +// Future> getBytes( +// {PaperSize paperSize: PaperSize.mm80, CapabilityProfile profile}) async { +// List bytes = []; +// _profile = profile ?? (await CapabilityProfile.load()); +// _paperSize = paperSize; +// assert(receipt != null); +// assert(_paperSize != null); +// assert(_profile != null); +// Generator generator = Generator(_paperSize, _profile); +// final img.Image _resize = +// img.copyResize(img.decodeImage(receipt), width: _paperSize.width); +// bytes += generator.image(_resize); +// bytes += generator.cut(); +// bytes += generator.reset(); +// return bytes; +// } + +// startPrint({List data}) async { +// if (data != null) { +// _bytes = data; +// } else if (_bytes == null) { +// _bytes = await getBytes(paperSize: PaperSize.mm80); +// } +// final socket = await Socket.connect('192.168.10.10', 9100); +// socket?.add(_bytes); +// socket?.flush(); +// socket?.close(); +// } + +// startBluePrint({List data}) async { +// if (data != null) { +// _bytes = data; +// } else if (_bytes == null) { +// _bytes = await getBytes(paperSize: PaperSize.mm58); +// } + +// BlueThermalPrinter bluetooth = BlueThermalPrinter.instance; +// var isConnected = await bluetooth.isConnected; +// if (isConnected) { +// bluetooth.writeBytes(Uint8List.fromList(_bytes)); +// // bluetooth.disconnect(); +// } +// // BluetoothDevice device = BluetoothDevice.fromJson({ +// // "name": "BlueTooth Printer", +// // "address": "66:22:DC:52:98:AF", +// // "type": 0, +// // "connected": true, +// // }); +// // bluetoothPrint.connect(device); +// // var connected = await bluetoothPrint.isConnected; +// // print("connected $connected"); +// // Map config = Map(); +// // List list = []; +// // list.add(LineText( +// // type: LineText.TYPE_TEXT, +// // content: 'A Title', +// // weight: 1, +// // align: LineText.ALIGN_CENTER, +// // linefeed: 1)); +// // await bluetoothPrint.printReceipt(config, list); +// // await bluetoothPrint.disconnect(); + +// // var p = proto.BluetoothDevice( +// // name: "BlueTooth Printer", +// // remoteId: "66:22:DC:52:98:AF", +// // type: proto.BluetoothDevice_Type.DUAL); + +// // FlutterBlue flutterBlue = FlutterBlue.instance; + +// // var devices = await flutterBlue.connectedDevices; +// // print(devices); +// // var p = proto.BluetoothDevice( +// // name: "BlueTooth Printer", +// // remoteId: "66:22:DC:52:98:AF", +// // type: proto.BluetoothDevice_Type.DUAL); +// // BluetoothDevice device = BluetoothDevice.fromProto(p); +// // // var device = devices?.first; +// // if (device != null) { +// // // Connect to the device +// // await device.requestMtu(12); +// // await device.connect(timeout: const Duration(seconds: 10)); +// // List services = await device.discoverServices(); +// // print(" services $services"); +// // var service = services?.first; +// // if (service != null) { +// // var characters = service?.characteristics; +// // var character = characters?.first; +// // if (character != null) { +// // var descriptors = character.descriptors; +// // var descriptor = descriptors?.first; +// // if (descriptor != null) { +// // descriptor.write(bytes); +// // device.disconnect(); +// // } +// // // await character.write(_bytes); +// // // Disconnect from device +// // // device.disconnect(); +// // } +// // } +// // } +// } +// } diff --git a/packages/webcontent_converter/example/lib/services/extension.dart b/packages/webcontent_converter/example/lib/services/extension.dart new file mode 100644 index 00000000..86497dfb --- /dev/null +++ b/packages/webcontent_converter/example/lib/services/extension.dart @@ -0,0 +1,26 @@ +import 'package:image/image.dart' as img; + +extension on img.Image { + List toList() { + var images = []; + var page = [height, width].uptoInt(); + int x = 0; + int y = 0; + for (var i = 0; i < page; i++) { + var image = img.copyCrop(this, x, y, width, width); + images.add(image); + y += width; + } + return images; + } +} + +extension on List { + int uptoInt() { + double result = first / last; + if ((first ~/ last) > 0) { + return result.toInt() + 1; + } + return result.toInt(); + } +} diff --git a/packages/webcontent_converter/example/lib/services/index.html b/packages/webcontent_converter/example/lib/services/index.html new file mode 100644 index 00000000..406eaecc --- /dev/null +++ b/packages/webcontent_converter/example/lib/services/index.html @@ -0,0 +1,601 @@ + + + + + + + + SALE INVOICE + + + + + + + +
+
+
+ + +
+

invoice

+
+
+
+
+ + + +
+
+
+

store

+

name: ONE CLICK(SR)

+

address: Siemreap

+

phone: 069777566

+

email: admin@theoneclicks.com

+

date: 2021-01-23 12:11:40

+

invoice: S13-1000049

+

reference: .................................

+
+ +
+
+
+

customer

+

name: JBL PoiPet(Daro)

+

address: ................................. +

+

phone: 089494793

+

email: .................................

+

payment: completed

+ +
+
+
+ +

note:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
No.descriptionquantityunit pricediscounttotal
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
1 + BE-GNT-P9828V6 + 5350175
1 + A2-X20RJ-1080P + 7270189
1 + Memory Card 32G + 7000
1 + D2-R1080P + 121021
total price (US Dollar) \$ 385.00
total price (KHMER Riel) ៛ 1559250.00
discount ( 0% )\$ 0.00
vat ( 0% )\$ 0.00
paid\$ 385.00
due\$ 0.00
+ + +
+ +
Thank you for shopping with us. Please come again
+
+
+ +
Published by MYLEKHA on 2021-03-26 20:49:15. Current timezone is Asia/Phnom_Penh
+
+
+ + + + + + \ No newline at end of file diff --git a/packages/webcontent_converter/example/lib/services/webview_helper.dart b/packages/webcontent_converter/example/lib/services/webview_helper.dart new file mode 100644 index 00000000..78a38ce4 --- /dev/null +++ b/packages/webcontent_converter/example/lib/services/webview_helper.dart @@ -0,0 +1,65 @@ +import 'dart:io' as io; + +class WebViewHelper { + static bool get isChromeAvailable { + List paths = []; + if (io.Platform.isWindows) { + paths = [ + "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe", + "C:\\ProgramFiles(x86)\\Google\\Chrome\\Application\\chrome.exe", + "C:\\Program Files\\Mozilla Firefox\\firefox.exe" + ]; + } else if (io.Platform.isMacOS) { + paths = [ + "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome", + "/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary", + "/Applications/Chromium.app/Contents/MacOS/Chromium", + "/Applications/Firefox.app/Contents/MacOS/firefox", + "/Applications/Firefox.app/Contents/MacOS/firefox-bin" + ]; + } + + for (var path in paths) { + bool isExist = io.File(path).existsSync(); + if (isExist) { + return true; + } + } + + return false; + } + + static String executablePath() { + String result = ''; + var paths = []; + if (io.Platform.isWindows) { + paths = [ + "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe", + "C:\\ProgramFiles(x86)\\Google\\Chrome\\Application\\chrome.exe", + "C:\\Program Files\\Mozilla Firefox\\firefox.exe", + io.Directory("chromium").absolute.path, + ]; + } else if (io.Platform.isMacOS) { + paths = [ + "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome", + "/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary", + "/Applications/Chromium.app/Contents/MacOS/Chromium", + "/Applications/Firefox.app/Contents/MacOS/firefox", + "/Applications/Firefox.app/Contents/MacOS/firefox-bin", + io.Directory("chromium").absolute.path, + ]; + } + if (paths.isNotEmpty) { + for (var path in paths) { + if (io.File(path).existsSync()) { + print("====== exist ====== $path"); + result = path; + return result; + } + } + } + + print("====== not exist ====== "); + return result; + } +} diff --git a/packages/webcontent_converter/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/webcontent_converter/example/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 00000000..4b81f9b2 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/packages/webcontent_converter/example/macos/Flutter/Flutter-Release.xcconfig b/packages/webcontent_converter/example/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 00000000..5caa9d15 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/packages/webcontent_converter/example/macos/Runner.xcodeproj/project.pbxproj b/packages/webcontent_converter/example/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..e3cd9cf6 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,632 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + EC8E1254410BECA7956FE81C /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B4BBBF6BB26D663C1B878A4 /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 339593C03D5D72B1259823F6 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 8653BB68B42A0548918622A1 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + 9B4BBBF6BB26D663C1B878A4 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A9F5105DDF1D67951D344BD2 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EC8E1254410BECA7956FE81C /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + EFFA994F691D2AD6F1D8A92E /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* example.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9B4BBBF6BB26D663C1B878A4 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + EFFA994F691D2AD6F1D8A92E /* Pods */ = { + isa = PBXGroup; + children = ( + A9F5105DDF1D67951D344BD2 /* Pods-Runner.debug.xcconfig */, + 339593C03D5D72B1259823F6 /* Pods-Runner.release.xcconfig */, + 8653BB68B42A0548918622A1 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 21072BEE6ADE2589D5109418 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + 875F93F7896246313585CAC2 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 21072BEE6ADE2589D5109418 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; + 875F93F7896246313585CAC2 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/packages/webcontent_converter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/webcontent_converter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/webcontent_converter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/webcontent_converter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..ae8ff59d --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/webcontent_converter/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/webcontent_converter/example/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/webcontent_converter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/webcontent_converter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/webcontent_converter/example/macos/Runner/AppDelegate.swift b/packages/webcontent_converter/example/macos/Runner/AppDelegate.swift new file mode 100644 index 00000000..d53ef643 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..a2ec33f1 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..3c4935a7ca84f0976aca34b7f2895d65fb94d1ea GIT binary patch literal 46993 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 literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4cc16421680a50164ba74381b4b35ceaa0ccfc GIT binary patch literal 3276 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 N;OXk;vd$@?2>?>Ex^Vyi literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..bcbf36df2f2aaaa0a63c7dabc94e600184229d0d GIT binary patch literal 5933 zcmZ{Idpwix|Np(&m_yAF>K&UIn{t*2ZOdsShYs(MibU!|=pZCJq~7E>B$QJr)hC5| zmk?V?ES039lQ~RC!kjkl-TU4?|NZ{>J$CPLUH9vHy`Hbhhnc~SD_vpzBp6Xw4`$%jfmPw(;etLCccvfU-s)1A zLl8-RiSx!#?Kwzd0E&>h;Fc z^;S84cUH7gMe#2}MHYcDXgbkI+Qh^X4BV~6y<@s`gMSNX!4@g8?ojjj5hZj5X4g9D zavr_NoeZ=4vim%!Y`GnF-?2_Gb)g$xAo>#zCOLB-jPww8a%c|r&DC=eVdE;y+HwH@ zy`JK(oq+Yw^-hLvWO4B8orWwLiKT!hX!?xw`kz%INd5f)>k1PZ`ZfM&&Ngw)HiXA| ze=+%KkiLe1hd>h!ZO2O$45alH0O|E+>G2oCiJ|3y2c$;XedBozx93BprOr$#d{W5sb*hQQ~M@+v_m!8s?9+{Q0adM?ip3qQ*P5$R~dFvP+5KOH_^A+l-qu5flE*KLJp!rtjqTVqJsmpc1 zo>T>*ja-V&ma7)K?CE9RTsKQKk7lhx$L`9d6-Gq`_zKDa6*>csToQ{&0rWf$mD7x~S3{oA z1wUZl&^{qbX>y*T71~3NWd1Wfgjg)<~BnK96Ro#om&~8mU{}D!Fu# zTrKKSM8gY^*47b2Vr|ZZe&m9Y`n+Y8lHvtlBbIjNl3pGxU{!#Crl5RPIO~!L5Y({ym~8%Ox-9g>IW8 zSz2G6D#F|L^lcotrZx4cFdfw6f){tqITj6>HSW&ijlgTJTGbc7Q#=)*Be0-s0$fCk z^YaG;7Q1dfJq#p|EJ~YYmqjs`M0jPl=E`Id{+h%Lo*|8xp6K7yfgjqiH7{61$4x~A zNnH+65?QCtL;_w(|mDNJXybin=rOy-i7A@lXEu z&jY(5jhjlP{TsjMe$*b^2kp8LeAXu~*q&5;|3v|4w4Ij_4c{4GG8={;=K#lh{#C8v z&t9d7bf{@9aUaE94V~4wtQ|LMT*Ruuu0Ndjj*vh2pWW@|KeeXi(vt!YXi~I6?r5PG z$_{M*wrccE6x42nPaJUO#tBu$l#MInrZhej_Tqki{;BT0VZeb$Ba%;>L!##cvieb2 zwn(_+o!zhMk@l~$$}hivyebloEnNQmOy6biopy`GL?=hN&2)hsA0@fj=A^uEv~TFE z<|ZJIWplBEmufYI)<>IXMv(c+I^y6qBthESbAnk?0N(PI>4{ASayV1ErZ&dsM4Z@E-)F&V0>tIF+Oubl zin^4Qx@`Un4kRiPq+LX5{4*+twI#F~PE7g{FpJ`{)K()FH+VG^>)C-VgK>S=PH!m^ zE$+Cfz!Ja`s^Vo(fd&+U{W|K$e(|{YG;^9{D|UdadmUW;j;&V!rU)W_@kqQj*Frp~ z7=kRxk)d1$$38B03-E_|v=<*~p3>)2w*eXo(vk%HCXeT5lf_Z+D}(Uju=(WdZ4xa( zg>98lC^Z_`s-=ra9ZC^lAF?rIvQZpAMz8-#EgX;`lc6*53ckpxG}(pJp~0XBd9?RP zq!J-f`h0dC*nWxKUh~8YqN{SjiJ6vLBkMRo?;|eA(I!akhGm^}JXoL_sHYkGEQWWf zTR_u*Ga~Y!hUuqb`h|`DS-T)yCiF#s<KR}hC~F%m)?xjzj6w#Za%~XsXFS@P0E3t*qs)tR43%!OUxs(|FTR4Sjz(N zppN>{Ip2l3esk9rtB#+To92s~*WGK`G+ECt6D>Bvm|0`>Img`jUr$r@##&!1Ud{r| zgC@cPkNL_na`74%fIk)NaP-0UGq`|9gB}oHRoRU7U>Uqe!U61fY7*Nj(JiFa-B7Av z;VNDv7Xx&CTwh(C2ZT{ot`!E~1i1kK;VtIh?;a1iLWifv8121n6X!{C%kw|h-Z8_U z9Y8M38M2QG^=h+dW*$CJFmuVcrvD*0hbFOD=~wU?C5VqNiIgAs#4axofE*WFYd|K;Et18?xaI|v-0hN#D#7j z5I{XH)+v0)ZYF=-qloGQ>!)q_2S(Lg3<=UsLn%O)V-mhI-nc_cJZu(QWRY)*1il%n zOR5Kdi)zL-5w~lOixilSSF9YQ29*H+Br2*T2lJ?aSLKBwv7}*ZfICEb$t>z&A+O3C z^@_rpf0S7MO<3?73G5{LWrDWfhy-c7%M}E>0!Q(Iu71MYB(|gk$2`jH?!>ND0?xZu z1V|&*VsEG9U zm)!4#oTcgOO6Hqt3^vcHx>n}%pyf|NSNyTZX*f+TODT`F%IyvCpY?BGELP#s<|D{U z9lUTj%P6>^0Y$fvIdSj5*=&VVMy&nms=!=2y<5DP8x;Z13#YXf7}G)sc$_TQQ=4BD zQ1Le^y+BwHl7T6)`Q&9H&A2fJ@IPa;On5n!VNqWUiA*XXOnvoSjEIKW<$V~1?#zts>enlSTQaG2A|Ck4WkZWQoeOu(te znV;souKbA2W=)YWldqW@fV^$6EuB`lFmXYm%WqI}X?I1I7(mQ8U-pm+Ya* z|7o6wac&1>GuQfIvzU7YHIz_|V;J*CMLJolXMx^9CI;I+{Nph?sf2pX@%OKT;N@Uz9Y zzuNq11Ccdwtr(TDLx}N!>?weLLkv~i!xfI0HGWff*!12E*?7QzzZT%TX{5b7{8^*A z3ut^C4uxSDf=~t4wZ%L%gO_WS7SR4Ok7hJ;tvZ9QBfVE%2)6hE>xu9y*2%X5y%g$8 z*8&(XxwN?dO?2b4VSa@On~5A?zZZ{^s3rXm54Cfi-%4hBFSk|zY9u(3d1ButJuZ1@ zfOHtpSt)uJnL`zg9bBvUkjbPO0xNr{^{h0~$I$XQzel_OIEkgT5L!dW1uSnKsEMVp z9t^dfkxq=BneR9`%b#nWSdj)u1G=Ehv0$L@xe_eG$Ac%f7 zy`*X(p0r3FdCTa1AX^BtmPJNR4%S1nyu-AM-8)~t-KII9GEJU)W^ng7C@3%&3lj$2 z4niLa8)fJ2g>%`;;!re+Vh{3V^}9osx@pH8>b0#d8p`Dgm{I?y@dUJ4QcSB<+FAuT)O9gMlwrERIy z6)DFLaEhJkQ7S4^Qr!JA6*SYni$THFtE)0@%!vAw%X7y~!#k0?-|&6VIpFY9>5GhK zr;nM-Z`Omh>1>7;&?VC5JQoKi<`!BU_&GLzR%92V$kMohNpMDB=&NzMB&w-^SF~_# zNsTca>J{Y555+z|IT75yW;wi5A1Z zyzv|4l|xZ-Oy8r8_c8X)h%|a8#(oWcgS5P6gtuCA_vA!t=)IFTL{nnh8iW!B$i=Kd zj1ILrL;ht_4aRKF(l1%^dUyVxgK!2QsL)-{x$`q5wWjjN6B!Cj)jB=bii;9&Ee-;< zJfVk(8EOrbM&5mUciP49{Z43|TLoE#j(nQN_MaKt16dp#T6jF7z?^5*KwoT-Y`rs$ z?}8)#5Dg-Rx!PTa2R5; zx0zhW{BOpx_wKPlTu;4ev-0dUwp;g3qqIi|UMC@A?zEb3RXY`z_}gbwju zzlNht0WR%g@R5CVvg#+fb)o!I*Zpe?{_+oGq*wOmCWQ=(Ra-Q9mx#6SsqWAp*-Jzb zKvuPthpH(Fn_k>2XPu!=+C{vZsF8<9p!T}U+ICbNtO}IAqxa57*L&T>M6I0ogt&l> z^3k#b#S1--$byAaU&sZL$6(6mrf)OqZXpUPbVW%T|4T}20q9SQ&;3?oRz6rSDP4`b z(}J^?+mzbp>MQDD{ziSS0K(2^V4_anz9JV|Y_5{kF3spgW%EO6JpJ(rnnIN%;xkKf zn~;I&OGHKII3ZQ&?sHlEy)jqCyfeusjPMo7sLVr~??NAknqCbuDmo+7tp8vrKykMb z(y`R)pVp}ZgTErmi+z`UyQU*G5stQRsx*J^XW}LHi_af?(bJ8DPho0b)^PT|(`_A$ zFCYCCF={BknK&KYTAVaHE{lqJs4g6B@O&^5oTPLkmqAB#T#m!l9?wz!C}#a6w)Z~Z z6jx{dsXhI(|D)x%Yu49%ioD-~4}+hCA8Q;w_A$79%n+X84jbf?Nh?kRNRzyAi{_oV zU)LqH-yRdPxp;>vBAWqH4E z(WL)}-rb<_R^B~fI%ddj?Qxhp^5_~)6-aB`D~Nd$S`LY_O&&Fme>Id)+iI>%9V-68 z3crl=15^%0qA~}ksw@^dpZ`p;m=ury;-OV63*;zQyRs4?1?8lbUL!bR+C~2Zz1O+E@6ZQW!wvv z|NLqSP0^*J2Twq@yws%~V0^h05B8BMNHv_ZZT+=d%T#i{faiqN+ut5Bc`uQPM zgO+b1uj;)i!N94RJ>5RjTNXN{gAZel|L8S4r!NT{7)_=|`}D~ElU#2er}8~UE$Q>g zZryBhOd|J-U72{1q;Lb!^3mf+H$x6(hJHn$ZJRqCp^In_PD+>6KWnCnCXA35(}g!X z;3YI1luR&*1IvESL~*aF8(?4deU`9!cxB{8IO?PpZ{O5&uY<0DIERh2wEoAP@bayv z#$WTjR*$bN8^~AGZu+85uHo&AulFjmh*pupai?o?+>rZ7@@Xk4muI}ZqH`n&<@_Vn zvT!GF-_Ngd$B7kLge~&3qC;TE=tEid(nQB*qzXI0m46ma*2d(Sd*M%@Zc{kCFcs;1 zky%U)Pyg3wm_g12J`lS4n+Sg=L)-Y`bU705E5wk&zVEZw`eM#~AHHW96@D>bz#7?- zV`xlac^e`Zh_O+B5-kO=$04{<cKUG?R&#bnF}-?4(Jq+?Ph!9g zx@s~F)Uwub>Ratv&v85!6}3{n$bYb+p!w(l8Na6cSyEx#{r7>^YvIj8L?c*{mcB^x zqnv*lu-B1ORFtrmhfe}$I8~h*3!Ys%FNQv!P2tA^wjbH f$KZHO*s&vt|9^w-6P?|#0pRK8NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!ItFh?!xdN1Q+aGJ{c&& zS>O>_%)r1c48n{Iv*t(u1=&kHeO=ifbFy+6aSK)V_AxLppYn8Z42d|rc6w}vOsL55 z`t&mC&y2@JTEyg!eDiFX^k#CC!jq%>erB=yHqUP0XcDOTw6ko}L zX;EmMrq(fKk*eygEuA616;0)>@A{TK|55PV@70 z$OfzS*(VJxQev3J?yY?O=ul(v`fp}?u9z`JK3ugibK>)DyCwImZOF4d{xK%%Ks1*} zv$oa)9anR%lXIBUqYnhLmT>VOzHfNP?ZwJNZ!5$s9M08RynIvaXw>@G^T9@r9^KH1 zVy??F&uuk)bH9Y4pQY!hP58i_H6 znl-NcuCpLV6ZWU;4C zu@9exF&OZi`Bovq_m%T+WhU2kvkz@^_LpycBvqm3bMpLw8X-Or5sL>0AKE1$(k_L=_Zc=CUq#=x1-QZf)G7nHu@fmsQ1eN_N3+nTEz`4HI4Z6uVlE zJH+X&det8JU?tO?upcM4Z=cV!JV;yF>FfL5Q$M|W_2Z!P`S=}Wzp|_1^#d%e?_H`> zV@%vA$+bFVqhw9`U;TfP|5|PD{||OiYdor8P*i??|NJcb%kzT_73*7WE?Ua5hAnR2 z=7WE=PhTlJ#ZeRznjTUb;`E(wkMZrj4e|Hilz-mK>9cZHQY**5TUPw~u}k;u73KI}xAx!0m-)GVia|x^d3p~s_9gh83jA&Ra<8rM%`>U3x69t&NzbwWY}7Ar?)FK#IZ0z|d0H0EkRO w3{9;}4Xg|ebq&m|3=9_N6z8I7$jwj5OsmAL;bP(Gi$Dzwp00i_>zopr02+f8CIA2c literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/packages/webcontent_converter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000000000000000000000000000000000000..e71a726136a47ed24125c7efc79d68a4a01961b4 GIT binary patch literal 14800 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/webcontent_converter/example/macos/Runner/Configs/AppInfo.xcconfig b/packages/webcontent_converter/example/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 00000000..3a89d97b --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = example + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = app.mylekha.example + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2021 app.mylekha. All rights reserved. diff --git a/packages/webcontent_converter/example/macos/Runner/Configs/Debug.xcconfig b/packages/webcontent_converter/example/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 00000000..36b0fd94 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/packages/webcontent_converter/example/macos/Runner/Configs/Release.xcconfig b/packages/webcontent_converter/example/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 00000000..dff4f495 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/packages/webcontent_converter/example/macos/Runner/Configs/Warnings.xcconfig b/packages/webcontent_converter/example/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 00000000..42bcbf47 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/packages/webcontent_converter/example/macos/Runner/DebugProfile.entitlements b/packages/webcontent_converter/example/macos/Runner/DebugProfile.entitlements new file mode 100644 index 00000000..db18b0f4 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,18 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.files.downloads.read-write + + com.apple.security.files.user-selected.read-write + + com.apple.security.network.client + + com.apple.security.network.server + + + diff --git a/packages/webcontent_converter/example/macos/Runner/Info.plist b/packages/webcontent_converter/example/macos/Runner/Info.plist new file mode 100644 index 00000000..4789daa6 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/packages/webcontent_converter/example/macos/Runner/MainFlutterWindow.swift b/packages/webcontent_converter/example/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 00000000..2722837e --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController.init() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/packages/webcontent_converter/example/macos/Runner/Release.entitlements b/packages/webcontent_converter/example/macos/Runner/Release.entitlements new file mode 100644 index 00000000..259009e1 --- /dev/null +++ b/packages/webcontent_converter/example/macos/Runner/Release.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.downloads.read-write + + com.apple.security.files.user-selected.read-write + + com.apple.security.network.client + + com.apple.security.network.server + + + diff --git a/packages/webcontent_converter/example/pubspec.yaml b/packages/webcontent_converter/example/pubspec.yaml new file mode 100644 index 00000000..076c6b2c --- /dev/null +++ b/packages/webcontent_converter/example/pubspec.yaml @@ -0,0 +1,77 @@ +name: webcontent_converter_example +description: Demonstrates how to use the webcontent_converter plugin. + +# The following line prevents the package from being accidentally published to +# pub.dev using `pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +environment: + sdk: ">=2.12.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + path: ^1.8.0 + path_provider: ^2.0.1 + esc_pos_utils_plus: ^2.0.1+2 + printing: ^5.2.1 + # esc_pos_printer: + # path: ../../esc_pos_printer + + webcontent_converter: + # When depending on this package from a real application you should use: + # webcontent_converter: ^x.y.z + # See https://dart.dev/tools/pub/dependencies#version-constraints + # The example app is bundled with the plugin so we use a path dependency on + # the parent directory to use the current plugin's version. + path: ../ + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - assets/receipt.html + - assets/invoice.html + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/packages/webcontent_converter/example/test/widget_test.dart b/packages/webcontent_converter/example/test/widget_test.dart new file mode 100644 index 00000000..4d58cb37 --- /dev/null +++ b/packages/webcontent_converter/example/test/widget_test.dart @@ -0,0 +1,27 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:webcontent_converter_example/main.dart'; + +void main() { + testWidgets('Verify Platform version', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(MyApp()); + + // Verify that platform version is retrieved. + expect( + find.byWidgetPredicate( + (Widget widget) => + widget is Text && widget.data!.startsWith('Running on:'), + ), + findsOneWidget, + ); + }); +} diff --git a/packages/webcontent_converter/example/web/favicon.png b/packages/webcontent_converter/example/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/web/icons/Icon-192.png b/packages/webcontent_converter/example/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/web/icons/Icon-512.png b/packages/webcontent_converter/example/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/example/web/index.html b/packages/webcontent_converter/example/web/index.html new file mode 100644 index 00000000..0081e189 --- /dev/null +++ b/packages/webcontent_converter/example/web/index.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + example + + + + + + + diff --git a/packages/webcontent_converter/example/web/manifest.json b/packages/webcontent_converter/example/web/manifest.json new file mode 100644 index 00000000..8c012917 --- /dev/null +++ b/packages/webcontent_converter/example/web/manifest.json @@ -0,0 +1,23 @@ +{ + "name": "example", + "short_name": "example", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/packages/webcontent_converter/ios/Classes/FLWebView.swift b/packages/webcontent_converter/ios/Classes/FLWebView.swift new file mode 100644 index 00000000..4d928309 --- /dev/null +++ b/packages/webcontent_converter/ios/Classes/FLWebView.swift @@ -0,0 +1,89 @@ +// +// FLWebView.swift +// webcontent_converter +// +// Created by whitehat on 17/4/21. +// + +import Flutter +import UIKit +import WebKit + +class FLNativeViewFactory: NSObject, FlutterPlatformViewFactory { + private var messenger: FlutterBinaryMessenger + + init(messenger: FlutterBinaryMessenger) { + self.messenger = messenger + super.init() + } + + /// add this to recieve args + public func createArgsCodec() -> FlutterMessageCodec & NSObjectProtocol { + return FlutterStandardMessageCodec.sharedInstance() + } + + func create( + withFrame frame: CGRect, + viewIdentifier viewId: Int64, + arguments args: Any? + ) -> FlutterPlatformView { + print("frame \(frame)") + return FLNativeView( + frame: frame, + viewIdentifier: viewId, + arguments: args, + binaryMessenger: messenger) + } +} + +class FLNativeView: NSObject, FlutterPlatformView { + private var _frame: CGRect? + private var _view: UIView? + private var _arguments : Dictionary? + private var _webView : WKWebView? + + init( + frame: CGRect, + viewIdentifier viewId: Int64, + arguments args: Any?, + binaryMessenger messenger: FlutterBinaryMessenger? + ) { + _arguments = args as? Dictionary + let width = _arguments!["width"]! as! Double + let height = _arguments!["height"]! as! Double + _frame = CGRect(x: 0, y: 0, width: width, height: height ) + _view = UIView(frame: _frame!) + print("init view.width \(_view!.frame.width)") + print("init view.height \(_view!.frame.height)") + print("init view.bounds \(_view?.bounds)") + _view!.clipsToBounds = true + let configuration = WKWebViewConfiguration() + _webView = WKWebView(frame: _view!.bounds, configuration: configuration) + _webView!.tag = 100 + _webView!.scrollView.bounces = true + super.init() + // iOS views can be created here + createNativeView(view: _view!) + } + + func view() -> UIView { + return _view! + } + + func createNativeView(view _view: UIView){ + let content = _arguments!["content"]! as! String + _webView!.loadHTMLString(content, baseURL: Bundle.main.resourceURL) + _view.addSubview(_webView!) + } + + deinit { + self.dispose() + } + + func dispose() { + print("dispose") + _arguments = nil + _webView = nil + _view = nil + } +} diff --git a/packages/webcontent_converter/ios/Classes/SwiftWebcontentConverterPlugin.swift b/packages/webcontent_converter/ios/Classes/SwiftWebcontentConverterPlugin.swift new file mode 100644 index 00000000..80846434 --- /dev/null +++ b/packages/webcontent_converter/ios/Classes/SwiftWebcontentConverterPlugin.swift @@ -0,0 +1,208 @@ +import Flutter +import UIKit +import WebKit + +public class SwiftWebcontentConverterPlugin: NSObject, FlutterPlugin { + var webView : WKWebView! + var urlObservation: NSKeyValueObservation? + public static func register(with registrar: FlutterPluginRegistrar) { + let channel = FlutterMethodChannel(name: "webcontent_converter", binaryMessenger: registrar.messenger()) + let instance = SwiftWebcontentConverterPlugin() + registrar.addMethodCallDelegate(instance, channel: channel) + + // binding native view to flutter widget + let viewID = "webview-view-type" + let factory = FLNativeViewFactory(messenger: registrar.messenger()) + registrar.register(factory, withId: viewID) + } + + public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { + let method = call.method + let arguments = call.arguments as? [String: Any] + let content = arguments!["content"] as? String + var duration = arguments!["duration"] as? Double + var width = arguments!["width"] as? Double + var height = arguments!["height"] as? Double + if(duration==nil){ duration = 2000.0} + switch method { + case "contentToImage": + if (width != nil && height != nil) { + self.webView = WKWebView(frame: CGRect(x: 0, y: 0, width: width!, height: height!)) + } else { + self.webView = WKWebView() + } + self.webView.isHidden = true + self.webView.tag = 100 + self.webView.loadHTMLString(content!, baseURL: Bundle.main.resourceURL)// load html into hidden webview + var bytes = FlutterStandardTypedData.init(bytes: Data() ) + urlObservation = webView.observe(\.isLoading, changeHandler: { (webView, change) in + DispatchQueue.main.asyncAfter(deadline: .now() + (duration!/10000) ) { + print("height = \(self.webView.scrollView.contentSize.height)") + print("width = \(self.webView.scrollView.contentSize.width)") + if #available(iOS 11.0, *) { + let configuration = WKSnapshotConfiguration() + configuration.rect = CGRect(origin: .zero, size: (self.webView.scrollView.contentSize)) + self.webView.snapshotView(afterScreenUpdates: true) + self.webView.takeSnapshot(with: configuration) { (image, error) in + guard let data = image!.jpegData(compressionQuality: 1) else { + result( bytes ) + self.dispose() + return + } + bytes = FlutterStandardTypedData.init(bytes: data) + result(bytes) + // UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil) + //dispose + self.dispose() + print("Got snapshot") + } + } else if #available(iOS 9.0, *) { + + let image = self.webView.snapshot() + guard let data = image!.jpegData(compressionQuality: 1) else { + result( bytes ) + self.dispose() + return + } + bytes = FlutterStandardTypedData.init(bytes: data) + result(bytes) + // UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil) + //dispose + self.dispose() + print("Got snapshot") + }else { + result( bytes ) + self.dispose() + } + + } + }) + + break + case "contentToPDF": + let path = arguments!["savedPath"] as? String + let savedPath = URL.init(string: path!)?.path + let format = arguments!["format"] as? Dictionary + let margins = arguments!["margins"] as? Dictionary + self.webView = WKWebView() + self.webView.isHidden = false + self.webView.tag = 100 + self.webView.loadHTMLString(content!, baseURL: Bundle.main.resourceURL)// load html into hidden webview + urlObservation = webView.observe(\.isLoading, changeHandler: { (webView, change) in + DispatchQueue.main.asyncAfter(deadline: .now() + (duration!/10000) ) { + print("height = \(self.webView.scrollView.contentSize.height)") + print("width = \(self.webView.scrollView.contentSize.width)") + if #available(iOS 11.0, *) { + let configuration = WKSnapshotConfiguration() + configuration.rect = CGRect(x: 0, y: 0, width: CGFloat(format!["width"] ?? 8.27).toPixel(), height: CGFloat(format!["height"] ?? 11.27).toPixel() ) + guard let path = self.webView.exportAsPdfFromWebView(savedPath: savedPath!, format: format!, margins: margins!) else { + result(nil) + return + } + result(path) + }else{ + result(nil) + } + //dispose + self.dispose() + } + }) + break + default: + result("iOS " + UIDevice.current.systemVersion) + } + + } + + + func dispose() { + //dispose + if let viewWithTag = self.webView.viewWithTag(100) { + viewWithTag.removeFromSuperview() // remove hidden webview when pdf is generated + // clear WKWebView cache + if #available(iOS 9.0, *) { + WKWebsiteDataStore.default().fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { records in + records.forEach { record in + WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {}) + } + } + } + } + self.webView = nil + } + + func getPath() -> String { + let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) + let docDirectoryPath = paths[0] + let pdfPath = docDirectoryPath.appendingPathComponent("invoice.pdf") + print("pdfPath.absoluteString \(pdfPath.absoluteString)") + return pdfPath.path + } +} + + +// WKWebView extension for export web html content into pdf +extension WKWebView { + + func snapshot() -> UIImage? + { + UIGraphicsBeginImageContextWithOptions(self.bounds.size, true, 0); + self.drawHierarchy(in: self.bounds, afterScreenUpdates: true); + let snapshotImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return snapshotImage; + } + + // Call this function when WKWebView finish loading + func exportAsPdfFromWebView(savedPath: String, format: Dictionary, margins: Dictionary) -> String? { + let formatter = self.viewPrintFormatter() + formatter.perPageContentInsets = UIEdgeInsets(top: CGFloat(margins["top"] ?? 0).toPixel(), left:CGFloat(margins["left"] ?? 0).toPixel(), bottom: CGFloat(margins["bottom"] ?? 0).toPixel(), right: CGFloat(margins["right"] ?? 0).toPixel() ) + let page = CGRect(x: 0, y: 0, width: CGFloat(format["width"] ?? 8.27).toPixel(), height: CGFloat(format["height"] ?? 11.27).toPixel() ) + let printable = page.insetBy(dx: 0, dy: 0) + let render = UIPrintPageRenderer() + render.addPrintFormatter(formatter, startingAtPageAt: 0) + render.setValue(NSValue(cgRect: page), forKey: "paperRect") + render.setValue(NSValue(cgRect: printable), forKey: "printableRect") + let pdfData = render.generatePdfData() + let path = self.saveWebViewPdf(data: pdfData, savedPath: savedPath) + return path + } + + + // Save pdf file in file document directory + func saveWebViewPdf(data: NSMutableData, savedPath: String) -> String? { + let url = URL.init(string: savedPath)! + if data.write(toFile: savedPath, atomically: true) { + return url.path + } else { + return nil + } + } +} + +// render format +extension UIPrintPageRenderer { + + func generatePdfData() -> NSMutableData { + let pdfData = NSMutableData() + UIGraphicsBeginPDFContextToData(pdfData, self.paperRect, nil) + self.prepare(forDrawingPages: NSMakeRange(0, self.numberOfPages)) + let printRect = UIGraphicsGetPDFContextBounds() + for pdfPage in 0.. CGFloat { + if(self>0){ + return self * 96 + } + return 0 + } +} diff --git a/packages/webcontent_converter/ios/Classes/WebcontentConverterPlugin.h b/packages/webcontent_converter/ios/Classes/WebcontentConverterPlugin.h new file mode 100644 index 00000000..70542530 --- /dev/null +++ b/packages/webcontent_converter/ios/Classes/WebcontentConverterPlugin.h @@ -0,0 +1,4 @@ +#import + +@interface WebcontentConverterPlugin : NSObject +@end diff --git a/packages/webcontent_converter/ios/Classes/WebcontentConverterPlugin.m b/packages/webcontent_converter/ios/Classes/WebcontentConverterPlugin.m new file mode 100644 index 00000000..49780f51 --- /dev/null +++ b/packages/webcontent_converter/ios/Classes/WebcontentConverterPlugin.m @@ -0,0 +1,15 @@ +#import "WebcontentConverterPlugin.h" +#if __has_include() +#import +#else +// Support project import fallback if the generated compatibility header +// is not copied when this plugin is created as a library. +// https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 +#import "webcontent_converter-Swift.h" +#endif + +@implementation WebcontentConverterPlugin ++ (void)registerWithRegistrar:(NSObject*)registrar { + [SwiftWebcontentConverterPlugin registerWithRegistrar:registrar]; +} +@end diff --git a/packages/webcontent_converter/ios/webcontent_converter.podspec b/packages/webcontent_converter/ios/webcontent_converter.podspec new file mode 100644 index 00000000..ae6c6695 --- /dev/null +++ b/packages/webcontent_converter/ios/webcontent_converter.podspec @@ -0,0 +1,23 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint webcontent_converter.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'webcontent_converter' + s.version = '0.0.1' + s.summary = 'A new flutter plugin project.' + s.description = <<-DESC +A new flutter plugin project. + DESC + s.homepage = 'http://example.com' + s.license = { :file => '../LICENSE' } + s.author = { 'Your Company' => 'email@example.com' } + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.dependency 'Flutter' + s.platform = :ios, '8.0' + + # Flutter.framework does not contain a i386 slice. + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } + s.swift_version = '5.0' +end diff --git a/packages/webcontent_converter/lib/page.dart b/packages/webcontent_converter/lib/page.dart new file mode 100644 index 00000000..02fc18a2 --- /dev/null +++ b/packages/webcontent_converter/lib/page.dart @@ -0,0 +1,149 @@ +import 'package:flutter/foundation.dart'; + +num _pxToInches(num px) => px / 96; + +num _cmToInches(num cm) => _pxToInches(cm / 37.8); + +num _mmToInches(num mm) => _cmToInches(mm / 10); + +class PaperFormat { + static const letter = PaperFormat.inches(width: 8.5, height: 11); + static const legal = PaperFormat.inches(width: 8.5, height: 14); + static const tabloid = PaperFormat.inches(width: 11, height: 17); + static const ledger = PaperFormat.inches(width: 17, height: 11); + static const a0 = PaperFormat.inches(width: 33.1, height: 46.8); + static const a1 = PaperFormat.inches(width: 23.4, height: 33.1); + static const a2 = PaperFormat.inches(width: 16.54, height: 23.4); + static const a3 = PaperFormat.inches(width: 11.7, height: 16.54); + static const a4 = PaperFormat.inches(width: 8.27, height: 11.7); + static const a5 = PaperFormat.inches(width: 5.83, height: 8.27); + static const a6 = PaperFormat.inches(width: 4.13, height: 5.83); + + /// [value] is paper size in string | default: a4 + /// Example : `PaperFormat.fromString("a4")` + factory PaperFormat.fromString(String value) { + switch (value.toLowerCase()) { + case "letter": + return PaperFormat.letter; + break; + case "legal": + return PaperFormat.legal; + break; + case "tabloid": + return PaperFormat.tabloid; + break; + case "ledger": + return PaperFormat.ledger; + break; + case "a0": + return PaperFormat.a0; + break; + case "a1": + return PaperFormat.a1; + break; + case "a2": + return PaperFormat.a2; + break; + case "a3": + return PaperFormat.a3; + break; + case "a4": + return PaperFormat.a4; + break; + case "a5": + return PaperFormat.a5; + break; + case "a6": + return PaperFormat.a6; + break; + default: + return PaperFormat.a4; + } + } + + final num width, height; + + const PaperFormat.inches({required this.width, required this.height}); + + PaperFormat.px({required int width, required int height}) + : width = _pxToInches(width), + height = _pxToInches(height); + + PaperFormat.cm({required num width, required num height}) + : width = _cmToInches(width), + height = _cmToInches(height); + + PaperFormat.mm({required num width, required num height}) + : width = _mmToInches(width), + height = _mmToInches(height); + + Map toMap() { + return { + "width": width, + "height": height, + }; + } + + @override + String toString() => 'PaperFormat.inches(width: $width, height: $height)'; +} + +class PdfMargins { + num top, bottom, left, right; + + static final PdfMargins zero = PdfMargins.inches(); + + PdfMargins({this.top: 0, this.bottom: 0, this.left: 0, this.right: 0}); + + PdfMargins.inches({num? top, num? bottom, num? left, num? right}) + : top = top ?? 0, + bottom = bottom ?? 0, + left = left ?? 0, + right = right ?? 0; + + /// [PdfMargins.px] then return in Inches + factory PdfMargins.px( + {int top: 0, int bottom: 0, int left: 0, int right: 0}) { + return PdfMargins.inches( + top: _pxToInches(top), + bottom: _pxToInches(bottom), + left: _pxToInches(left), + right: _pxToInches(right), + ); + } + + /// [PdfMargins.cm] then return in Inches + factory PdfMargins.cm( + {num top: 0, num bottom: 0, num left: 0, num right: 0}) { + return PdfMargins.inches( + top: _cmToInches(top), + bottom: _cmToInches(bottom), + left: _cmToInches(left), + right: _cmToInches(right), + ); + } + + /// [PdfMargins.mm] then return in Inches + factory PdfMargins.mm( + {num top: 0, num bottom: 0, num left: 0, num right: 0}) { + return PdfMargins.inches( + top: _mmToInches(top), + bottom: _mmToInches(bottom), + left: _mmToInches(left), + right: _mmToInches(right), + ); + } + + Map toMap() { + return { + "top": top, + "bottom": bottom, + "left": left, + "right": right, + }; + } + + @override + String toString() => + 'PdfMargins.inches(top: $top, bottom: $bottom, left: $left, right: $right)'; +} diff --git a/packages/webcontent_converter/lib/web_support.dart b/packages/webcontent_converter/lib/web_support.dart new file mode 100644 index 00000000..7a3c1d20 --- /dev/null +++ b/packages/webcontent_converter/lib/web_support.dart @@ -0,0 +1,49 @@ +import 'dart:async'; +// ignore: avoid_web_libraries_in_flutter +import 'dart:html' as html; +import 'dart:typed_data'; + +class WebSupport { + static Future toBlob() async { + final canvas = html.CanvasElement(); + canvas.innerHtml = """ + + + + + + + + +

My First Heading

+ +

My first paragraph.

+ + + + """; + canvas.context2D; + final image = canvas.toDataUrl('image/png'); + // var img = new html.ImageElement(); + // img.src = image; + // html.document.body.children.add(img); + return image; + + // final blob = await canvas.toBlob('image/jpeg', 1); + // return blob; + } + + static Future getBlobData(html.Blob blob) async { + final completer = Completer(); + final reader = html.FileReader(); + reader.readAsArrayBuffer(blob); + reader.onLoad.listen((_) => completer.complete(reader.result as Uint8List)); + return (await completer.future); + } +} diff --git a/packages/webcontent_converter/lib/webcontent_converter.dart b/packages/webcontent_converter/lib/webcontent_converter.dart new file mode 100644 index 00000000..b023cbd7 --- /dev/null +++ b/packages/webcontent_converter/lib/webcontent_converter.dart @@ -0,0 +1,346 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; +import 'package:easy_logger/easy_logger.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart' show MethodChannel, rootBundle; +import 'package:flutter/widgets.dart'; +import 'package:dio/dio.dart'; +import 'package:webcontent_converter/webview_widget.dart'; +import 'page.dart'; +import 'package:puppeteer/puppeteer.dart' as pp; + +// import 'web_support.dart'; +export 'page.dart'; +export 'webview_widget.dart'; + +/// [WebcontentConverter] will convert html, html file, web uri, into raw bytes image or pdf file +class WebcontentConverter { + static const MethodChannel _channel = + const MethodChannel('webcontent_converter'); + + static Future get platformVersion async { + final String? version = await _channel.invokeMethod('getPlatformVersion'); + return version; + } + + /// ## `WebcontentConverter.logger` + /// `allow to pretty text` + /// #### Example: + /// ``` + /// WebcontentConverter.logger('Your log text', level: LevelMessages.info); + /// ``` + static final logger = EasyLogger( + name: 'webcontent_converter', + defaultLevel: LevelMessages.debug, + enableBuildModes: [BuildMode.debug, BuildMode.profile, BuildMode.release], + enableLevels: [ + LevelMessages.debug, + LevelMessages.info, + LevelMessages.error, + LevelMessages.warning + ], + ); + + /** + * `IMAGE` + * Convert html content, file, uri to image + * Methods: [filePathToImage], [webUriToImage], [contentToImage] + */ + + /// ## `WebcontentConverter.filePathToImage` + /// `this method read content from file vai path then call contentToImage` + /// #### Example: + /// ``` + /// var bytes = await WebcontentConverter.filePathToImage(path: "assets/receipt.html"); + /// if (bytes.length > 0){ + /// var dir = await getTemporaryDirectory(); + /// var path = join(dir.path, "receipt.jpg"); + /// File file = File(path); + /// await file.writeAsBytes(bytes); + /// } + /// ``` + static Future filePathToImage({ + required String path, + double duration: 2000, + String? executablePath, + }) async { + Uint8List result = Uint8List.fromList([]); + try { + String content = await rootBundle.loadString(path); + + result = await contentToImage( + content: content, + duration: duration, + executablePath: executablePath, + ); + } on Exception catch (e) { + WebcontentConverter.logger.error("[method:filePathToImage]: $e"); + throw Exception("Error: $e"); + } + return result; + } + + /// ## `WebcontentConverter.webUriToImage` + /// `This method read content from uri by using dio then call contentToImage` + /// #### Example: + /// ``` + /// var bytes = await WebcontentConverter.webUriToImage(uri: "http://127.0.0.1:5500/example/assets/receipt.html"); + /// if (bytes.length > 0){ + /// var dir = await getTemporaryDirectory(); + /// var path = join(dir.path, "receipt.jpg"); + /// File file = File(path); + /// await file.writeAsBytes(bytes); + /// } + /// ``` + static Future webUriToImage({ + required String uri, + double duration: 2000, + String? executablePath, + double? width, + double? height, + }) async { + Uint8List result = Uint8List.fromList([]); + try { + var response = await Dio().get(uri); + final String content = response.data.toString(); + result = await contentToImage( + content: content, + duration: duration, + executablePath: executablePath, + width: width, + height: height, + ); + } on Exception catch (e) { + WebcontentConverter.logger.error("[method:webUriToImage]: $e"); + throw Exception("Error: $e"); + } + return result; + } + + /// ## `WebcontentConverter.contentToImage` + /// `This method use html content directly to convert html to List image` + /// ### Example: + /// ``` + /// final content = Demo.getReceiptContent(); + /// var bytes = await WebcontentConverter.contentToImage(content: content); + /// if (bytes.length > 0){ + /// var dir = await getTemporaryDirectory(); + /// var path = join(dir.path, "receipt.jpg"); + /// File file = File(path); + /// await file.writeAsBytes(bytes); + /// } + /// ``` + static Future contentToImage({ + required String content, + double duration: 2000, + String? executablePath, + double? width, + double? height, + }) async { + final Map arguments = { + 'content': content, + 'duration': duration, + 'width': width, + 'height': height, + }; + Uint8List? results = Uint8List.fromList([]); + try { + if (Platform.isMacOS || Platform.isLinux || Platform.isWindows) { + WebcontentConverter.logger.info("Desktop support"); + var browser = await pp.puppeteer.launch(executablePath: executablePath); + var page = await browser.newPage(); + await page.setContent(content, wait: pp.Until.load); + await page.emulateMediaType(pp.MediaType.print); + var offsetHeight = + await page.evaluate('document.body.offsetHeight'); + var offsetWidth = + await page.evaluate('document.body.offsetWidth'); + results = await page.screenshot( + format: pp.ScreenshotFormat.png, + clip: pp.Rectangle.fromPoints( + pp.Point(0, 0), pp.Point(offsetWidth, offsetHeight)), + fullPage: false, + omitBackground: true, + ); + await page.close(); + } else { + WebcontentConverter.logger.info("Mobile support"); + results = await (_channel.invokeMethod('contentToImage', arguments)); + } + } on Exception catch (e) { + WebcontentConverter.logger.error("[method:contentToImage]: $e"); + throw Exception("Error: $e"); + } + return results; + } + + /** + * `PDF` + * Convert html content, file, uri to pdf + * Methods: [filePathToPdf], [webUriToPdf], [contentToPDF] + */ + + /// ## `WebcontentConverter.filePathToPdf` + /// `This method read content from file vai path` + /// #### Example: + /// ``` + /// var dir = await getApplicationDocumentsDirectory(); + /// var savedPath = join(dir.path, "sample.pdf"); + /// var result = await WebcontentConverter.filePathToPdf( + /// path: "assets/invoice.html", + /// savedPath: savedPath, + /// format: PaperFormat.a4, + /// margins: PdfMargins.px(top: 35, bottom: 35, right: 35, left: 35), + /// ); + ///``` + + static Future filePathToPdf({ + required String path, + double duration: 2000, + required String savedPath, + PdfMargins? margins, + PaperFormat format: PaperFormat.a4, + String? executablePath, + }) async { + var result; + try { + String content = await rootBundle.loadString(path); + result = await contentToPDF( + content: content, + duration: duration, + savedPath: savedPath, + margins: margins, + format: format, + executablePath: executablePath, + ); + } on Exception catch (e) { + WebcontentConverter.logger.error("[method:filePathToPdf]: $e"); + throw Exception("Error: $e"); + } + return result; + } + + /// ## WebcontentConverter.webUriToPdf + /// `This method read content from uri by using dio` + /// #### Example: + /// ``` + /// var dir = await getApplicationDocumentsDirectory(); + /// var savedPath = join(dir.path, "sample.pdf"); + /// var result = await WebcontentConverter.webUriToPdf( + /// uri: "http://127.0.0.1:5500/example/assets/invoice.html", + /// savedPath: savedPat, + /// ); + /// ``` + static Future webUriToPdf({ + required String uri, + double duration: 2000, + required String savedPath, + PdfMargins? margins, + PaperFormat format: PaperFormat.a4, + String? executablePath, + }) async { + var result; + try { + var response = await Dio().get(uri); + final String content = response.data.toString(); + result = await contentToPDF( + content: content, + duration: duration, + savedPath: savedPath, + margins: margins, + format: format, + executablePath: executablePath, + ); + } on Exception catch (e) { + WebcontentConverter.logger.error("[method:webUriToImage]: $e"); + throw Exception("Error: $e"); + } + return result; + } + + /// ## `WebcontentConverter.contentToPDF` + /// `This method use html content directly to convert html to pdf then return path` + /// #### Example: + /// ``` + /// final content = Demo.getInvoiceContent(); + /// var dir = await getApplicationDocumentsDirectory(); + /// var savedPath = join(dir.path, "sample.pdf"); + /// var result = await WebcontentConverter.contentToPDF( + /// content: content, + /// savedPath: savedPath, + /// format: PaperFormat.a4, + /// margins: PdfMargins.px(top: 55, bottom: 55, right: 55, left: 55), + /// ); + /// ``` + static Future contentToPDF({ + required String content, + double duration: 2000, + required String savedPath, + PdfMargins? margins, + PaperFormat format: PaperFormat.a4, + String? executablePath, + }) async { + PdfMargins _margins = margins ?? PdfMargins.zero; + final Map arguments = { + 'content': content, + 'duration': duration, + 'savedPath': savedPath, + 'margins': _margins.toMap(), + 'format': format.toMap(), + }; + WebcontentConverter.logger.info(arguments['savedPath']); + WebcontentConverter.logger.info(arguments['margins']); + WebcontentConverter.logger.info(arguments['format']); + var result; + try { + if (Platform.isMacOS || Platform.isLinux || Platform.isWindows) { + WebcontentConverter.logger.info("Desktop support"); + var browser = await pp.puppeteer.launch(executablePath: executablePath); + var page = await browser.newPage(); + await page.setContent(content, + wait: pp.Until.all([ + pp.Until.load, + pp.Until.domContentLoaded, + pp.Until.networkAlmostIdle, + pp.Until.networkIdle, + ])); + await page.pdf( + format: pp.PaperFormat.inches( + width: format.width, + height: format.height, + ), + margins: pp.PdfMargins.inches( + top: _margins.top, + bottom: _margins.bottom, + left: _margins.left, + right: _margins.right, + ), + printBackground: true, + output: File(savedPath).openWrite(), + ); + await page.close(); + result = savedPath; + } else if (Platform.isAndroid || Platform.isIOS) { + WebcontentConverter.logger.info("Mobile support"); + result = await _channel.invokeMethod('contentToPDF', arguments); + } else { + // todo web + result = null; + } + } on Exception catch (e) { + WebcontentConverter.logger.error("[method:contentToPDF]: $e"); + throw Exception("Error: $e"); + } + return result; + } + + /// [WevView] + static Widget webivew(String content, {double? width, double? height}) => + WebViewWidget( + content, + width: width, + height: height, + ); +} diff --git a/packages/webcontent_converter/lib/webview_widget.dart b/packages/webcontent_converter/lib/webview_widget.dart new file mode 100644 index 00000000..e60a168c --- /dev/null +++ b/packages/webcontent_converter/lib/webview_widget.dart @@ -0,0 +1,75 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; +import 'package:flutter/services.dart'; + +class WebViewWidget extends StatelessWidget { + final String content; + final double? width; + final double? height; + + const WebViewWidget(this.content, {Key? key, this.width, this.height}) + : super(key: key); + @override + Widget build(BuildContext context) { + return LayoutBuilder(builder: (_, ctn) { + final _width = width ?? ctn.maxWidth; + final _height = height ?? ctn.maxHeight; + return SizedBox( + width: _width, + height: _height, + child: child(_width, _height), + ); + }); + } + + Widget child(double width, double height) { + /// using [Hybrid Composition] + /// ref: `https://flutter.dev/docs/development/platform-integration/platform-views` + // This is used in the platform side to register the view. + final String viewType = 'webview-view-type'; + // Pass parameters to the platform side. + final Map creationParams = {}; + creationParams['width'] = width; + creationParams['height'] = height; + creationParams['content'] = content; + // WebcontentConverter.logger("creationParams $creationParams"); + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return PlatformViewLink( + viewType: viewType, + surfaceFactory: + (BuildContext context, PlatformViewController controller) { + return AndroidViewSurface( + controller: controller as AndroidViewController, + gestureRecognizers: const < + Factory>{}, + hitTestBehavior: PlatformViewHitTestBehavior.opaque, + ); + }, + onCreatePlatformView: (PlatformViewCreationParams params) { + return PlatformViewsService.initSurfaceAndroidView( + id: params.id, + viewType: viewType, + layoutDirection: TextDirection.ltr, + creationParams: creationParams, + creationParamsCodec: StandardMessageCodec(), + ) + ..addOnPlatformViewCreatedListener(params.onPlatformViewCreated) + ..create(); + }, + ); + case TargetPlatform.iOS: + return UiKitView( + viewType: viewType, + layoutDirection: TextDirection.ltr, + creationParams: creationParams, + creationParamsCodec: const StandardMessageCodec(), + ); + + default: + throw UnsupportedError("Unsupported platform view"); + } + } +} diff --git a/packages/webcontent_converter/pubspec.yaml b/packages/webcontent_converter/pubspec.yaml new file mode 100644 index 00000000..9e1b014d --- /dev/null +++ b/packages/webcontent_converter/pubspec.yaml @@ -0,0 +1,67 @@ +name: webcontent_converter +description: This plugin was made for developer to convert any webcontent, web uri to image bitmap or pdf file. This plugin use WebView on android, WKWebView on Ios and chromium for desktop support. +version: 0.0.7+1 +homepage: https://github.com/kechankrisna/webcontent_converter.git + +environment: + sdk: ">=2.12.0 <3.0.0" + flutter: ">=1.20.0" + +dependencies: + flutter: + sdk: flutter + puppeteer: ^2.5.0 + dio: ^4.0.0 + easy_logger: ^0.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + # This section identifies this Flutter project as a plugin project. + # The 'pluginClass' and Android 'package' identifiers should not ordinarily + # be modified. They are used by the tooling to maintain consistency when + # adding or updating assets for this project. + plugin: + platforms: + android: + package: app.mylekha.webcontent_converter + pluginClass: WebcontentConverterPlugin + ios: + pluginClass: WebcontentConverterPlugin + + # To add assets to your plugin package, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + # + # For details regarding assets in packages, see + # https://flutter.dev/assets-and-images/#from-packages + # + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # To add custom fonts to your plugin package, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts in packages, see + # https://flutter.dev/custom-fonts/#from-packages diff --git a/packages/webcontent_converter/screenshots/invoice.pdf b/packages/webcontent_converter/screenshots/invoice.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c30c821d8821bc4c13ff0d9c73c70e8124a98a3e GIT binary patch literal 250182 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

n#~PKM5TROjvqfI)K0D!^i6}T z)pNZdtE6OPIYRR&U+=o^I z)t1d}X&|n%19g*88hr4xd<;bVs#>rgj?WiPNXV*;JQZ1j&{f%1q-k%HBN1UtR&Xf} ze|p~M&Uu45U*UNYMTx*yrcJSOI*tghU8G5x7TI&^4WWX?eh?SuZmBa%oT&5?4YrN`I^bR{t6s~4h zw)9b?-X3y}A2mf5isf`JuF4k``Adzfd=Ap7u&32Mow%;_HEJe9a7HFuZFtMB7d2$Bf zs%Q^LJLV}9Ns2hzNpEBl%y`yPTR}N2B=>kB9vEHZnNb@1i(75Bx8v8(1{y8GW%HBPBo_aIghAosSU7R9LpzUt>J{jO zj*1E#yvZe7J7M5<$gm?dGw)#9GdS~8`3O7$Sqpb=K*S+RYkcCa7QNdc`CPw<<70a* z7W9lmej0g5WlBz+i8Ai8vJ)G2s+a0OgpSla-yIGL1s8JamT+G801*f$id_|pDDurZKnd5m^)3csnYT_lHtu(l1qGRSk$DQrk=BE8EhkS)&&!&` zuD`8GU~Fd-@sOFh>c7KxT1ZvgY#*cRn%IQ8takwp%h8*Pl1+-*t>f4&8-)yLbdeUNHB!kcoTOo5lYBcK37XEwp%h42B{LYb zn^WisieOSoue3`P#O`%5VD)XqBu9Ho7Kh@GiuLi$_(Le)_07-PmvB$)+~DzE87( z(s)BMFibnimGC3KAFmRqNe%5heoJ*n`sdZeO-8J0NB~PCW=tjz+V;UnoOWSb2S?TQ z&;!;SF@QRxOk-=g7qxOT0(BZ(!@|)3I)rG7bfLZ3S|Q-pxlUzk7a0QG7FYAZr&3EG zvg9YdGC(+7D+^?5-WI_rlOH^Ltz-q_;!L33a68-P)GESPp*bW#sHig(Kh5b6>QD_s z-7HH(p{SU>*}hq|>5APROl&(f11=#wbfkivdo&HYlBQ<~Vol9ezS-`sQcMoBG&EF* z7)24ql8@6sCQ4Uz@!()YGC`dDb_BA~D5+wNZo_45(t#v#8afRc|SN&c|qJLY^4U_{#ObsZObY)J_gnv{G5{#{E675Y{!c`grPCiQ_V z92ixA2R4{97Yz*5y3cT+q_|Vx=aQNnd|(J$>f;ksVOut7ZjFiKW%cV(DgI8~YDQ#u z7;?4(pNg>)$pjYq)V>3Hy!%aV>5Xgt{eZ;14EcdPSSh9J+G3B6cxsXd$flpCMrqa+ znGrjnq30{%6Bl1_lN{%}iP38cWUeAC2BmK{Y|fSxzwVBfgbu8ygYTpi@tJf;!>+vD zW=Lj+|Ru)OoywxKI12tj8IN!ABF&PyZ?N<@k z-I`?W)w>vG=LV~wMHG*A6C37WJp)(AQ}gXD=~Uw}IjaKuMXNBu`N1Joad=Mzb9ubG zbFDBvF0AKxd-noi9Kzk2Q1sR4{%pt>t%AleVqp}2u!*Y5RbEN;y2mq46T z;v#uy8iM1-$UBzfEW1_#_UMjh@C= zh{25tC?r0$5MpoxnM=tomDq#E;6}MJBuEf05`!X$WDmo|RwWD9k4hYS1z7Q zPk3k?jw>&%s`+d@4!6(g?-+**Df0avdv8aGg3rjPs*jw9Ko=87gI(r_FRkw0r$ zVk8d74Nj7|^Bs)~DkO&EqGk#4IBFQX-ctf^9*-k3LA`c6o&)tUaPzff4ZUeR4v@-e zEZK?icpQ{Y;=oG?$N@dr4C&XJ^0fZEEKD&V$Glz3leS1B;BPIux@kZT{H-+&^`R^v z2ma2jyT}@k0~Zh;)?-H!j~ggJi#WvB6_0~9K4`ObeAJlt<$)TaZ=r>oN+PXEF+3zU zSiLXJTcshnA%~ym6_bO+bqoRR1 zZk6qy6PV);bU6qY0(0EivGrJ_M&{zMJlb}zVIG--EimlLtUWs62Ng|xr-3<`0;HQY zMcxU_q0Ai2yssFUTbxO$%Ci=k+nl_9%jwh;nOoN#Cvz2{tA9(4A-K@QO~$={JFMi9 zIaDRM<8rVX7Pj@jLR=1319Y(j>ntt@qoI;RsCTy|E(a#!?64Bwjjs@x!-~7w%cF2S zi(Q7&xSWW8(R(-^mxHP(#Y_pr<)TvZz+5EWc)PMuAv70T^w3=VdI-&NPl?xhcu_)g zJS3b6{5k=*+wwLS6pTW-(?|tJaVuKh*3cX~12mBNb%o|IQDo)~3k-2+Zk;?q8kaki z<8LfKETj>+!F5VBdz1#`c+Qh$@$rBh1R}xB_zD5JFqW`HJuPSN4wwhz&v z*lr+LEDn&d0FOV}`1a_KCIzts!;s#?!f~*Z?2MR)-n;L&N*o}KY%k_P6myxI9956mr2&|+C8G%&a1)S5hK zk+~0jP{t5PmJ!g8e(*(2Qf+)dV8XD zVO->8UT&1mJMJ>e6?#}Rl29Oo>9FMZm41)XK{S^XWj|56QN5!5iPAmU;lHu(Q5!Ic zI@UNHmO|va6JJ8(bm-N4pbi6&iXS0R7g2C@{L^}Xg<=-3&+2&%e!Wn&wit-y;2}`Eq>{NC<#G`7r2}5D?Cz`UyZY49lWN| zhVn4uFFJukotkdrCTl&hh`Vl;$0A1isZtj4JglNw#J!s^Q9_&;mBaO@%iL)+$Y<<8 zkmb|aBlTfe7tyoP++?jM7F%src`WvzohoIqx6LY=g<&uEI1 zLF_=7uhZFUW^GtcD0op6FYpLtttWP{$c7$Y+X=8`J4uU_1&GUyE8N=&g1{l`2i~}k z5CrRb)PT@%P8FZ0DA%V>w<>wIN)@uyVw^ ztk?=>AcRJfq`V0oz`7l#1v7^l{EyW=08hjQSsi$U7D9ey>yS8ITkdr#i z$uom0StvR}lhBYScOj215$)Pg!xnC7G@+5${d_^BPMmH^b$&^s74dW2d@KuzPfPkVhg)3Npo| z^NAD~|1?L)^b+Y+KlJP6X|JX>+_8S9N)@&9?%VI>`(?xr6s;zf_S3Iz#oBJh;6p@- zEaDh$`#V+2^l?fOq!)mgOiXX(jH67(t{R4?Dg93O zoOa>gsXuS3URS*&;F;=$%dQqaQB~|O+(c>^gp)Dck&vJoL~>D(|BhKh4#Hp}u7BrZ z6G!&0f@DbDkj%ez;%@!ACgF#auj?=K@-45E&4HrLs1rE(pg6wN38nn`Rcd8`P)BQ$ ztHcFKr3WAU0Sj;(YGGz(o6SJ3$cS>|?&2k4c^(cLHKd`xpm(V9v9TkWyERi1^21q#a-B8&ez^Fgt6o;0hXQ&|MfpE1DuI+|T7o0{ z$rU0Bb|Kp2{Jv*f21hxE%oUuL=m{&xkbH}nh&m>-o;YVDa}Sbe z3{|nel!@PG|EM;eR6!K_L-kKNF?NY}9C?;P&!?pTk7Jx(yGJ=eA}qUmugqe(?_3cS zrfB0!^_v!%UtIH~lQCGCjE(Th<%ssIyr~5#*cJDha0IU`zHQrZSv+k%E`=>(xGT2! zAYUiSU?j4gvLci_$(1qeHz_BQu^}2BL2;7AdDQV)aU#bNL79>`}y|($UtQK z1cx)==B_G0naJ2zxY!Y5%v*3WMn_INsUt?l7MoQ#smV7$v8%XLDo3m%7JrvIP+9T| zhQ}7?w@`qS-2(556AF)A70?4l@s|`4Bh_2B_Os_PV!g01qCh-=JjAZG!>p{)+wbMB zxA^vZ{W>KVuU`(Uor1$Y8)*ozi-9nmYF*Kq+mkOfzN*uUR$?L{gs=m|1Ep1#6ecXA ziiQnE4(&Itk_rE=1|rVMV&zuS9yspL_3RtkeH&^;Ye?hGHhUT z!K8_EKjo#{Pa>wW_a>?=dN}m4Wk8&pXK^*9EhUn$xKP(Km+lLOiXIc-4lAjU!3%@U z*Ee2oR%DUdk5H*i3Rn3fNYYWb9yVB{70R~V!3awtCKchN#slQM-s{Uy0VRoBRe=&$ zknvZLcdZ>x)YL~cR^4izZ~TxO-Kbp#Ic8+BoAnwl2~MMQJN%fiwkxf=U%Pp6Yaw(?Li7|gM(vuDKeyOs@+V4^;9syBs(PNk>oqo*p=>E9_I<%2k+INCrp zww(43_s*v;MxSnmNjZb@$$OjQANS1nP-1G$Jaw91OH8p6%(KS=PY{TQ3RCc;QDJJw zVp2#V_*P-+=Egc~d#^Bs3~g@}ril1dVG0S0t-_QINtUfJ|3wQ-@uiii(=BMntqtT2 zIqh)WK`v2!eG>{G_f8(LFpxvM@m`N$7<*2mfsv;J7t>E)&-|PL`82-G_Kks) z?T<@NkeSHW;0~GPD6^_Z9xN?|M4-i0rpW_6rH~e%^T{&)j*7Yc4 zs>^~nq~4L$AR6ipkR@07e2&yBLatKn>_W|xc8#aqBW@Q@PQ4@H-AlbA;qzO)BbgJe zcVr_7v-dF3F90Z^+EM3iQ*`W*L$xCaz-zT5p#P!T5q0;fcEkx~L$#yG2O%J+yY{M5 z?P%i492<>$!TjPcl1(F4Gs+$DaS-m@PHKo)xuY|TV_{#@eySZ!zEn5H_2|UOZ?66& zjnbzopW&4~5B@$%6)Gd0wQZ(HT#e!H3CyTM4Y9(d4{>wH#tSStO4o8VU-5ab62&d(|39j2v66+XO1a z%p&npi$>+dt5Ub;Gzz$Dg`d*_&c18afKF$TFj*@Hok8__83HOydLO#iSa~SCe+vIx z-#SHtLcdNqp)i6&yw^Ra9=@DL0|#p~I-e>Jg_$|y@fm!Z=(k1S)E$~q?Pf-Doocq{ zP;_XU?Vdy38>DWPOqxAug`B17CnPmD*U>T3Ee*}X*|;;#(qN6jr;Xoa$Jd+@?HtVU z#aTwf7>?n7DS%j4DC-UN@TgVq2~D0lKi9WUMIh;-lne@EP{O6|Ubu1EaGss7UEH;P zg?Tvr57YH9vszRLHqC1slih`q?l>l5>$2q?;+PHftvcrpig8Trhasc9;85e3vSE~B z9Mg+(9D9`efg`)&DNeLk?@%U(C0BY4WkPP|9Cs)aDMZ~9m00E>xqsy(3&Wv-{gHG$ z(n$2!ALm@H`Hp77*DnE0Ol?W~3TSfi7RR>@Di9Cf4$;|^zwaop6Kqa@#@C*S$2&#Qn)*b2 z2d@^WY1T*xXhw1m)l)*#kHk|uNp-*@>C{b91^!NAN8R6f`K^4ve)@@2<@dIpe-D@p zL=XR=O3zGUvsgeA!P!>pYd{l6HVO>vuMp7Wie0Ou%Z`eWyecWBF*T-VPtx2WCDRqt zgz(hXUSpc<@^(JJb7Gp!OV7nY1>(WvAqtO%M}6LYH#X02w;o;yRep=}X1@iFJIMo^ zocMe+bk6OLZ9*Zm+3(mUWHaad8ryu7HWkA+sbwkLS|0GkHl;S5teS4OK!Y7C z#bcWQp%FE@iIwGSgWR>Ej)8;EX_^^->Lk=Y0nU?qI|MjGmhKbabcCD;=OG;|-Z=V< z#A`)yq6Y=>-KqWe@F8ZxO%qR!-J>n8AxZG?*pXK3DhRKeKtNB`**H(u6E{36Ww8Qrg+c&eQOB&_#(pb0wxVSJ32C1d7kV$)TQ7O%{o+RZh z3Stcjxq4}=!(Z{PwKP^BmrxpONGwg`hh7>B6;DWqNC;6&V5$;V^z*Hu{7wc1&RV6>#5%WvR(x}WUhhW`^iqre6zbUrv;OHkZgc#NgIMDu=YQ)Jd6guU&%LTri6}u!pWz zD3~RclW3Ieeamqas@q9FakBzioMMDipkYq5fEL7juZa2$4 z5{CgLlEV909Dh$mRjX9dLX;`Zsv$qGqQ%Pt(%VRsSjuQIl;q?BgO1B+b*}Ko>8!9~ z>|MPC7_t`&`P9ogZ2U|bq(<6SM*~^|+{sZk4K)I-1|D=T@ zyjDUBNd$OVW@~uy&ZS6#xac#K(88tf)iidG5?YzpL0V*5D=%z*pOW{vIwiD_OlI}m zBbk?7Js&-+h87K>4s&Ks4J}*&nXFjZ4M^+C!wfHAw!C7#=EInnoB3j5q?+!5;0-Q+ zbrDIQVDpFHxB6MEoanzAQ>4|8v64ugv~hKmi#FTp>gBT-mTN9MoRqXYYgtK-sUJ=~ zarJ#6J>|1-A~;Eq%gNA+C37k`cB&HR6YXAvo$c}Dsr~2RG^6ZQNp|F*PA1pS$~W;g zn;%ur2m9EIE@fW9B^z?)bE`}AqFyHId`h{8!lWEHEnD|@H8%z`Q9Pv+SiNoFQ$4GG z_xkoMPWlxtAjT!eEcK}+4B?Wn`aZ54ZC!w@dRF)Ryj)ZE|0nKUvLwlICDD1U!dKvj z|IhGtzgruLNe&|RKW&NtAVD)V&&<*5K6P%mq?#%Tk{}2If?e_Eb+h|v8#OXumiCqM zSr|)JMZ@N<)w5iq(qZ{x2ebugm(R))N+i#!$nU*wSJ1kRkzFdw*)0c)rpnw~u?~8- z>ltlp@KJ#~+}Kt1f(W&I*0e}>cRl04+oIj*zMkPr2kmTL&m^h&YjMTx&|F6{e8@do z6;D4m@}_QbTRu-q?Oo;VN?JI#Xa?MYVRuAMma_SdF>S+saPxlS22rd=7SFU&Y2jQ% z={kAehJJn8T@L1V5{J5-NZQXkurG*QGP4t7e}27 zErwtrNDEp=UIr@eXO^iaNAmNcCG3_G5-_fhqUbe>U0)3xyFi}n$_3hW(v2#EhJR@^ zt_|OScz8K{W213+_%5mU#&(Il9>rBXxGr^(C zpn>WdUCO&cnF`kiz|cr^hmRRA2f79GP>p%v@BqCw!(jw`l}Y+OBeHD79LDwBTAJiE zaPJ!kOc{B;d>iaLL6xI56S)F=kgY=(=;nh%l}F=xrxI@5pWoaZcT<(eWNH}9Bk!hjPuN12$Sj2v!0 z!$4=yh*JtDZ_A0qr+B%QbUkZp&b{=k&#M7vExX2^RqwiWfjh1FhLt(Y~nJ9Ss6LpB$wkO*gM=(fUD_AHm8QiSz6b#wg}x@&w{;Lu-CS0 z>`?-)TNmi3hl9bL(c0JbQjl!4^z!}9$8on+xjTHXc4DWOKtGHiURvkbORo0TYYa{c zuJN+gUL$MWdYT0~Jzzuo;Xfa*X}p^n zjlRQmM(@*aBjQLYo)eKgcLaCd=42eNA~h z)jHNPsOWp-;a7&WJN(F>)W>^KY%Y)^y6aJsv3uzmkNxdEY_5rCd|hWQ&}#$-N4fXA zUK->o(SN&b9uD8kwvSw=Kh5sMZjHEkK)jgFvqzriolflT^VbMjORurCE=A5ICu`h|cmlgn)aLu0A3))|`Ryh4 z0j+N|9}iF~C(H91nP=1`cOL?admKx8d)lMsq`cC`KcMFgjyvQTef{m*-{t$YDNm68 zeZ9s1eFnw<>KQHHq3;1y&+H@Eq?+}R-|O=F1lsgTyaf0Rj@>!??K?7GnsNVG4`stW zfRC_SbAD=kfL~_P+t~j3^zM&q|7A`8+;6`KAD8R(U60NFIm@_uteJgfo81ulJ~O+x(K8{#03e7f)8)e@eFIY|Pr@J5k4iG;Qk$*Y)Gb zqhS*8C__J<5WB+EHn?)h7RfFls{xPB$|wx$d5%V7d<2A)y2-Mx`zcgeT4$OppIF;g zVLWy#kH9_dJ0$GX=#8xp zbS5%M79d<){3y7ynL@bC7nBbG2A68npSu?X5`aR#&w4)acy36PM}JaVEkh*F-d zMqF;32g9=WW^VSnLBW?KnLnVe4x#A~CDc5!CZYs2sr2&QlMOjZ9Zbc7T<(`m(L-BQ z4%}ZrkpkQi_bsa-oDh|T1e~lA3#5%Yj;xUFyXGt>s)@iayd$i{FjcZfo+nXKE0s~5 zw6N%Niil))(n8vJ;DzUrmZNbvojKT%mj~<374iDFP5O%@;u(bfzdrhPB?sT=yY_ow zjzFoBu|#nbM?l*R`<{FABY4Ok@<+ses00!3$n}H!kMhP3@dUlFLA?DP9w;MV5`>(o z{MRnPxLFK2Vr)5(Ts1OXKwT@7Xzc>I2nr4;W|G%1=oCTuh=(Z{Z3-^szqC_~{z>G2 z))DoEWF2EUDpWR-Powq*GvIsAjOLR@PChx$a?;Km%*{Xt>N;%w!`~*|O&IWi=$~eA zzx)|o(*H5kwRvExO6&hSSwo*>7C-Z{W(}{9QgX5;-F@wd_}mh_RHKPHBND0g(fotU zOla!}S)Ht*yVtre^OChBEyH7WWSw`=?C#5foNhdr?hSrQx<6H@vSrC4c!2nK-dC`1 zf1ge0fQ^j&l6$>GIg_b86q7>xmSquDT zO1OoX++*uln-I!GsHP&c5(p|#v#B9wNk=)N;$vg|lj*maB)Rp-E$ zSH%87^~AxwXDw(^B^`H$!eLUO`q4o|$M>&akGlSa!DMe4+ym^YyzPr!=setetI^rX zsFJq-0HCMZKx}_ev$fF2gzhUZifR5^Oh#qW&(YYP8&dCCB+Lu@3{cYtDZ0ZDLMoA_ zVq)5!%msbpq#5>Z1alg-x2Go4Fa6uH)#3HurNLF1zk8aPU0<&?qg{n97$yE;KbG}4 z!fb}MOv~xy=4&}Ah8)dV$CuLs8siZLA;jHzcB0!OZRDxUS>qqZsgg$c3<3v zc6Q2_P40({(p$CdoB;IQhnMFxVK_gSo3|t?F0NNpEW%E>dw-i0Ca0vCtR5MnV_$`oHo(vh20frXL+0UHol&Ww|`|wn%(*rl6h?ml7_MT@nBqF8qAMP zOm}0$CUU2kGmN;HD2=7ElqCDPjyqyJ&2^q6p~VbSrkFX0O7Mq8!G0lo#R}6nH`0xo zv!euyWdDrTgm~Rolo$PI!Lo3swkm`Iq%IZMWjNPZ^FUI-msojEO2cLCCZyy^GZZ@y zqGD-28qgpnX|E%5DBVAZ19M~HU0@l$2V`nzA!K32;gFTFpv=& zj0p@+t(^tyaEM!bFE{+QLkekI4W@2*bnPdI$ISwl)Tio3Vv^H$Mp6!LrPZngbYiby8_k$DSOZZv#}e- zbf~1YW}C3~Gr$hYL^Xskm-zxja7bxV?A2?+HD-BgoEM9ijd5c(ZTM?LyToVCdoq1M zvnEKMdF!CO&b(2aakGr5XhP0V7C&o3+xbSYwl#w5goK1iR6wotcEEVnV;V830e%C|Ic{5kDi+mauWfNZ}6O1zQMH|S3 z@nIB@R6P{uAVWSHiMW<^}4J^^iA_0>2$Mj_d1J;{qpFFDIZ zT^a;TFKooby?H?b&@#tlumVeNaF)Pd$PS=XY!|gx&fGz8g{r-c7RGbVmr3;r?KUS* z=;KFpzad#X^9R(cQ-^|8gxRxkQyTEh*Ve(4Jy?q}s%<5On<0ZGs-))=Furxp>~$*W zYMZ@lg$;^QMJ3MrSs0nikk=yusjjJ3m-f{L)MQ%}PE2|jS&AKrBvh*sZ%#9`;Lt?9 z+8ANhLYj(WRkgsvvft6TOAJMq4VEr3Dp_Y{8r_w>OZ7z|*eBCJIRC)!|BC4@~ zqD6@B=obgp!2qMiZ(b+=NOYYpBPXJp3&=B0Ur)0}XH$5bO%4q?74BtuEsw+xRaAbU zs>7Bi^LVK;C73G{VOV0g8!2QCGc_^XWjnqX*3MLq{$|0h`#g%97Dz_qS*75r>|sq& z)KSSp=M#25P*(MhgA}Zy6gY9P$n>dEb5eTDwWU(~!d7Bj5>!`iA&-e$L99E&+v zXX`xJX>Au-M6(9r|3V>~Dbu(|n3Y0w2#z+j+)yt=mfNz>^U#)u+M1vdyM=TdT#NkD z9x_nw&vIigwvXNMT(*yaYkCzibIebHxsAtiKNCBgyQ;p6lR_JUZH>zs)cVPtmF^Rm zrJH;>YhCCz11^*$mA_yzSlB^0g385#|(p zH|WGSrjN_uHyX5RUOKE!mCyPyWIr(n+UZDvPfw54TA7-MHHgA3*ZfK&`l{iLPvO?^ z8_iPrmx>9on6hW1@Gq6si)A2tP7{h2s#65xfd^EB?I_rH8$d8wOz=7157MRAb)YJx zZ9eF3#X@ins=^zH)^PD^AY*4O^UP73`;(TE_+guW-ny?%+E7PtxKR*6+W19bBfrEz z0u9rTHA_O*)~(m5U|*f&(!X1H{@Z=@{OA){UOT%X-&u?0yCr-g{BF7L zC`&KZ2hjcg?MwIfEw=B^_2f8>-z|E_T#T0=(g)CmrFkKJ0Czx$zkvNKobW%uu4V2W z&*+I{e3!uMBvkIxzZ>bFX5IP0Uk~E_^A8&Q&qeG*)ym<-^b>4qz=WF}(;_Bxv7R43 zK-UyvB4V*EVrMv9C=(5liW%0{tr#;Bk%~E$LJ2-M+>kO2c&TDoob>0l!IaGfgyXD3 zx>`~ls17|u=?`*J>LU@xVSw*>zXqPuCAfHfF2WU_TJr5$I#kW1)BX$F2@V&Ev_d|) z-#p(AUObGf z<{r0)5x-ER5=MN!Wk!<0y5UU(+O3Qo_)vp;n7t`;HB(ULF@BM3sf$;)Xu6}5MA>PP z$Yx9!UH=>+_C~p1w@$9~ncW`_>%>y3Z(`gg^6ANixv_UB6A8cWHzMP3zI>a>iSljN zO5`zez+7kgYnQtT>j*}kanjo_a&mT`JOi@Z=EiOJ;cbL}-D@4;AT(nCyr9S#%zmvS ziVgL~{bb~Et4R)?o3(){i{o1D=H&8%Fzj0M`$4y+_6yJA^PfJ;^fdA;=hK-B%gQ}? zqs$ZZ3m+#!BotoX9?U%)_sYlF3~7pP>GK}GkyB5EH(&Xr0xFzmB?Z##|@)|?! z%)@BEtbacXE|jT(ZvErTjH=>(UgAT>$aZEh&`55dGtGI?_b!fk#9@oZKWU50ztNWA z{cT&Yrnxb@X%}!PGXqJtAjB5bPFeT@?V_NUZ)5Ysr!+wehgxKH zp*y3|qx!PvtMoJ>O#W+#S+5J_$8mc_{8x~Ep=YAq9<0%$$femA=2X5zarBZEe%{DT z!Ry=E&s1w;{${^?AM&?x#<>0d(14jB&SP6z=Ve>0*GG^1wRP7pX)hiI^kty$|U-t_cY;%2goW#M?Kyl}FKk5t-f7fk2@4++CxCgfc-3#5#oBQ$^5pCi%ZrYWH z5&nniic7XywOnh8qn0>pjQ@ZCI9;)-)plNnWW{1-(EnFo_}}%Bh1V*1kt~buawAKT zkMddk`~OPG^zdK#o6r95PH;Sta5L&e`g5V6Oh>rL!eSKW$w?1i(~_`jzAUvp!Bf~s z#E85u6mvlhW#p1pDUv$EKn(KiEFC&`lM2SnleB(GQrLWuqC*4gzpygyI*{Pz zVX(3%WeBb$Tx<_q>n0W9QrswPgl3}PA`3Jlbhb!uA7!Q=?Whs1j{7L*)_oX?YG&10S*;06}66f#R-p{oq6U!%0_%g%z& zF-3-(aO9{L-G~_GYx-{R_YF#9h0n8n1ZRE7v;72Gnynw2gIepOL#3C{qrkudl0_a% zz00~sz*&!AA2i5V~H{`}ioB`1>^|Iy-VF&+5bxRLaiR zGA6DHsD}zK?-H5bpxDv!zLY;pz^64mrc6o6WWA@UV7^TF27Pkrkjs-7Svu6dlpV?z z;S9u~jEN!fY&#%^P(s7+u$k zYwK`1Kc`niuRFhd@7K71KJe>FPC5}E#CO1eg4fg&s33&n$(Rzk59};ox$vTzuso50 zILNrpIhY(;;c~C(TTK|HHO0&tp+si0S^u8#{%ydZLt z$a=r>ATbKEY+~zK_8pf;vxXHf3=zVJmzYVzijf(CE51U^!itd!jBLv!-(pxXG7{H1 z;IE?|^;jcYTVzK<1e)tD5FZLYVXn zJE#~r6s04VmJ^FX#fc$bOdxE9jjcf>F;h=yXo?EfT^k9&%m<|~B#t=8eM1O|Gmh9}ao>}BwC{*v zKYyOldeQ;w4Iz;)z(fIJVZ=zrSe7fy73^IaMvNlGb1*7vHjN`@3eUE_B#s#QSopG- z>J~?w5Jt0>S!W|9ju;Cs*D5;ztaFz!VHP~nmJk|zo?%H9(sR$Qk;I8Ss>~h4_M(x* z36af`C_kG-5_{!QHI(>C&HR#ttMH(H99lJ+7@tSwEs>%`6JvU&LCS*Jb~G_b3+P+q zHaNMomMCJ2+n{waXmY-mxmk*TW_`EndnBG1sVa4l0vf}k@x)AYX=0HzjVDHJ?hpD>biIM7e=8(k`d$jGi3_rO(p*ub`?hvMrsJ#K1iTy|PXi|>`jVC6t z0elj~B%YY*@N%MGYt!P1v0`FnEhX&8%7GxF(v~^Z>?aMjL{gVMshtFS_o=| zF_f69bV*;geT^ihCS5B)L+$pZ`$fPKLkzW>NqR_3V~7*RZ?F&vj=zi{hTLk5`o{RM zSy>PsnL*jC%G{6jnfYxWL zU=livBwf@WZp18fn1eHUEwxYy9lqy)gbqK=7TxvQ!z{W`2_0sZaV%4vCx{)Ua?7LY z6xP^bj5!JzsddiSVVVO`tjuIbG`FB!uC8r{X`k;LSa#en)5Q~0nq;qH+%WgQ&dP3_ zMNK#uFw^Z^kHBHb90eN%vcO?d|EylCb;Q77=&PlfgY4_!ZBn-#ILviFL|^SE8+M># zZ)D^!87kJx#c5)Z!$f`-I2qvDwe%9WkE~iuphCik;6}8s|PJhBEJt> z8_g2mhOI*X=18TTg*B6>ZDBy447bD$yY$$79P&pjJM?`#OgYpYn;a@p!#gc}28|g` zr`$UUiLmU!TMC$h+4+GCk1y#C2;yabILh9oqWaE2W@jFo4z zC1~U@Mn*~h=^vnj;9+0>VZSGRqgo%(eO%#5441qa4AgTr<_;T9eTxDpuk3g(RL96< zxb3UiBbc5)Lkz_~Ii)T|(L)^BB`jBTO!Z}PZL=nYh*7pQZv$GVJ$9Xi9<0T`w?fZZ z=+)DK;MBnEVwlRtX3&poPeO*%I5Vp4pkXL9B{P^!gNCt%eMM0k=UgLGAe-y0D{+mf z4+$BDF>v}}A;UNxEBWSZ8ZzvcsaBh7@eV_JGC+!-ND=qrr$8 zhUwn+7cFY|)7JjDVeh?pV<+{0qp9!7eLPxD0(pm)K!O3P@zSVnNF-wTX_y%Eo%bxl zT9eR851xxFlp@!a{s>NsnM7gh{23b-JDfME>oYhlZ^Zxn6DXtyzCq968K4VX)_YE1 z%ot5PO%=N_NWbVDPwhWW>-{c?r zeIUJ1%yl!uZU~`{U^z1gOdb=LbgGt0O;Vt|ivJr7>$xgn$g-}cnlW=^d2*`{m^NTr z@>ro)NNJEZ>O`9T9{7yzfjTL<&!`*z^MYsa%&7O7`&%Y-JFv#<=93Fz;O`gE-g>g? zA3@*O^ZSpeRqAoA`hc3eZxptX6`mhbcbNJs3>p7iYKEYaO49}Sx>)~w`qXODa04R%3_?1HcxihZteW*E~{ z%@*vQHK)Jdj3K+TC5hlLl$o3XQKg=Lxh zh2bdV@m?@4&kRS*PAV@B@!+fY)^Km zLQ*rB8uKXP>0)_hk?@lGNO}i}n>H|#EwvH+Vt!iSFAIMMbo>$aGZ6PW6qGzz=H^`t zsfmi263-Q-tgzt15FB4Wx^QI8aqthfV9f096*63)BM2 z<%C&(0`=z<($An!{=A`>lrLyxVdXB&1T}I?i>#~s#pxbdx{C5hGDHY!YEuJbP*jb*Ku9yok88!QJ%Xf^wg5WlpGEZ z{up!HqjuVXGS9D1Ch>WS*~`+&!1i6q@dcN>YXsA4OwN`p{KDp4CaK87e)YpXShx2B zWs@6zPI6+|>RF2TYEb*$j3((E{hILDa=+42+WUs!-mfh1@-iMa{m64T%JeRLK{?x* z19F<_$TMc!F`BTCq)Zn>iYDz$OAN!th9J}nyKJkCMon1Z`=rt~?!nN7Jg&?G6}hA6 zz-3YpiVn=P(ES>DSWWM$Ozy$B+g$f$u-24Sc;9zn+n2`KAsvTKsYQ$fpb5*;{}68} z_e1a7$*+%_gae&g^XSUSX%Rpo8P|JRu+D=9dDu1RTCtiCGVn+gLE8X`%QqyxPzG3Zzsq7A1n5DtpsN~1{ zH&)G~_n)qoaPON~B{AQ3qslJjJ6kQy-;2babAq$CIRT%qx{=t;yGBgA@i4YJ=IL?F z9V*H3sC?HEj44`C7>9A4s2=9F)9nj+lzUL~nu+-+u~$LNBiO4b+V>d(#P62-xpmG7 z8a=sRhuF*B?++u!770$iiR}bc?yg*z8-0gLj{N;b$)&%)ZAtfcDZ&4!xg_acA56d7CsZ-%oFg zMe~v{>|Xco$-S=j8{GnQ-*!uNx6&=?-J1)uOvoFRsXD%tUV#zoDd_j5Due0x8O zqh{v&sU9?O`Id(zGy8?(p4Tx^_ieXmcPriE-o3dnHxC>t>GAg)C5`_6w&mO3 zt(44s-y2KU@cllC9bQ8F$xD*@#!Ke=+t=u5E3Z-1-aL%A&Vy2)_5z1W);tQH!W2}$ z7p?r#_sv*4W_+g!)zlnCzCO#Uswv#>&0pmQld;=>g$X#4`*~B^EB_VTUTiyDn{%p+ zoMvB`)B6sUH2M3Dl1_iVT>V7d4Xl!$?|V?i=Djz44R`W#u;-k#>}^M??yHyhwRP7p zX)hiI^mU-G1@BNM%KHyR&8K%Qin@ilW=BoV_r0_DxqHrUeoiMZ_v9Aqe&ZH@+&kwU zqun?+mez+0a;w~-k|BS;P%`PySHn)Y_pJ+h((%0rdhv7XHp@WtlG#r>3GO#`chkH- zeGP~<@ftVn%EJi%!({)p>@?ZGN`5|b@&9>U;xfL^f_7zzvz8{t|6Okl|Equ7zkwHh zHtFC0NB^Dl-xa^HR>Z2O;)E39E|WMmOPW6D?-z9E88+JwKcV3yD!Mm(LU-=7IU=6H zFnqGVItxCa{srUv?VShOEgIjse}G&c?T3$$ORe7Rct+=DGO!N6Bkq^)1BReLB%HN@U_`5%(seVF-Pq+RAh53+w{Q>o(>e}>(hVhV` z{0W_hNns1@8Fatjf`0^ktIi-ifxfTXH2Hvf0lv?hm+54q@~Rfx)OlLef79B3A=i5q zKCIQZ7X9s<`gx9@-v|#useu{ZbjVH3|E@^q&qSAzh@yGOXc&{p)5|!Xd00|8D#-#v z6<@~vBEKR|wglP0qg6aPYeEhnIyW`$*R+s&2a)jw{_*S{!ggB`lEts4BxUTDF;kIA zx!bH^?iI}ZDW>n-kPL>D2z&v}jAQ>Ba+4Z;_2=d|CH4GN92l6>& zk1|fa)!GCLC^#sIQ|qvy?OX=`k{KeUm(dN0MoUfD;&HhO8HHLBi6-`AC=wF`hXAib zG&We>Vhck)o8nYLkr4*#+p&R6eA~t1T}K>t1m!@JOnmuw*hOUB!;fIps&Brs_6zzp zDeoHg=xfFC`p*T%UHR*J?;~jWOOa{1Pk{X_en0&^-LwARr+oST*aI}beqSwr{rk){ z2WIU49HCr?Oal;1mqZL{f>WjeXPr!#7&=TwplRZIJ%NTm7g@3*v1hJrUI`?k71lUB zk5zh`b?Pn!(YY8g!?MoQor#y1p^F;EY+;Sv<#U{lIOt3@2ToaRntky8w+Xg?zyCGm zpXv4AN3sflW_%9GiHX90gIhN0JRIpG?!PI7f-5aac50K=m?IA0xiVQPmyV!{J(adl zPhVB@c0;lhO_9` z-RAeDqburd{c%aLBBgW&6(5CYNJ<`ZOW?f$)W2;x@f5ohu5{|_O0o?hp!18-$;OIv zA{>nwDd(YGXOOayw5Rs{szs>Ad6q5goRqE9S&+42rT*zP|38^vUgd8vTiwDY2eL+N z*Eh7Tp0q&ZA&a+&!ncBnK`NPYyQ(kCaMxc{a{K8Y%N7UhUYGRvcYPO^LK$o*u7PgE zcSjuNRsOB59(3Km(YL1D|FZCWP!Yfs9c|(w4hbxMTpJ0BbgtDweG^>BenK_`4VlOr zc2`Igpo|ki1e|hn!lNZ3rU(JHEg)>fzqB!p^4_u#8lQUS=XIk)(_2E$;|0C;Mtcb@ zn+7%0TnnaXzJQLRT*bP-Rezn>+DB;0-w2VxxbxjhAkv9tD#alhB1}Yp`I=j9Xl~Hr zqwAShA3*#0TC9!kMy~Q@bz~ca8KF0qyyt`lxEW8+5Q&(jN^8~8ZQ9wqcB_19s1nGAn1u%;z93;#&mY$2PMff9Rw z--s!WNSlK11>OHc5dNT2Sr4VCtr?IvS*q7$9o2C>RQFxIq4)}_@Zc-*KIwm9YPA3G z;B9-{(Gk)@#D`?YBBCX8n~kThQ!jK8_z^_pgcw?vMJec87`}sSjq7tLc>&7f;u^-1 ztU6fQd=FJ0ldw@0h<~5S&42kw*f-IJ!ga$2>~&awU1J@0d5eI`p;ZS~Dyoo+TZMdeDolkMP;4wF~ z9cp6nZ#41wZy!PXR@#vGuIR|Ujqg3^#~oQnv_XSvqg*XPwrX4|rAO33ajw?H!8joE zb6HOuR)qA=Wrm#hWbdntOI$xK zt=gBn#U=K&4@7HYmPNW}v2?{j*P=JjL?f@`NlGM`?Zc7hEXcY=T`H@Ik+Tz{Qe=(p zuGr|kkMgUkw<0o0uB_4l5pdsm>2r=)r5v@KgiAs7mjtPCt;C8j(0Vzgm3t&yKWxBWhxJv%n`aqu&=R?L(6Te~Np8#Q z*?bO6{X1ICKqlXJHoFO72z=D9q{N>+;@@4*uu2$J;T4Gf?$?38l z*g4cMZ#%D|=pl$FvVSgYcfY+3ahryn@3IUjlO&~eyAa}Tze6siZlFrTzeq*qzvyHe z++~ptg6qK^tG6-L8}f6FVb=PNTy+OY59+BA;U41?a(?*sh2QsgkLBnwD@kQ%lxJ+- zA9(pwPo8D?Ta`CRf3z=1UjIJdbwBz5mbX5~llyzneFu68+ue-bL$E9DdGWr3{`c>n zdTD{(dHuPc9j6EB?Hb4l{#@={1ey# z-wpTAlW+gzuO|ur`TJJ?3mKo^|Mj05m;u29`YD6wQM!as6>MpV6pETGlJHdN@C-$I zAf;EdyicimT383j!Ws=ro6*&*>$(;z#Ocn63v5xm?EAS2Y6iQRTgt8vV9Q8>RZhv3 zL@v$RNQtOEf<9640q$%)zoRlF3uNJXGl`vrct~dG)UJ$KF*0x*(m7ZG zg`IuqMrVQFN#0nxY~GcW@c4F^a?(K!-nFlOX@!me5>2spy3}IYy|J@|@Ao-hcnR$% zDakBGM_C8QDI(9I%i$s~tJt5x=(sKgNv_!dHn#w z?tm(K51QncXqfS+Va9nw&aC5tGQl0!xj2SY9LX1iSmCLL2w9zV()L_bt~Djr)|=}H zIrg^gg`nP-1udhdpRK*}N@A+Fw2>aR!qb~(63Nt7lCDu)vNUz~l!#A)uy=xk09YbX z3?@v^ajIoce+H-9w)QP?3e%u{#M(|1KEHJsg5@xQiS}7c3n3`Gi}xRK{+w7jg8@!f zNkLXF`m#DOWtps#P1lK)*XS2{a-xU|WVrNWP#K1|)p$;P6&@30(fcRqiykAY6$zGf z3|$U#yMyJJhn9j|nsf%~&j?m{&U6c|A6eMXVV4#vM_HMY|n`em&cBT=p^OC2dB1 z5-Nzqazhxt9J^W|Yf=|=7f z+o~tVbtqY;XaY$IrhNlf6E(rucY&A9q6UjC4k;pQ%V&RRFSFx9^UKj(Xnxt63+-uv zW8pW6bPAhFsUa{X>;OHY4Hdz{j?g2OQY+Naswj<0iN&HrG&e7)lu)Evy-&iUw1Kjd z(Kl2#SyFZJ#h*}1P+w?YXEC)HfY?7*bCrMS`ZF;YC?nj_ryHff8h}L|!zuf^-00T60qbG-uDu&6U)4$=wSD z%RiR1Loq2*2~+M^gh8pIQWDrW(6M<5JJXk)emybvg%D}BiI+Fok+dUQ)PZrUVF&CEG)&?*c>L2Z;Z zQR<|58`V%y-lPf++BM>O+e6-@g|*W$;Z5?`C4zQ@CA>*^<5Frx=P-GbDjA+zwNs1` zC!vk86g$O`ISGAP2Z<<`1$|Ev8~CxAll&wZn;NLCt>xCbsUvBFWgCMZGZt=zard8SbyMq70kGkTKRrG<1`ETdVtOeXaDem29=d8 zdf`jrPiG1yZX^j}nJ(jOsE?a`Nm!-8jvU}9JOCwxg2cdKKl3&Qx4umWI?Nq2-Vi4&!lT699e@lX-vzRm=y%#|^z zk|5kvys;x~sXaorJ#2A5KxOkJZ73^A5=I?qmfO*^v?pdqYdc(2Ns=&+)|u2!10YFi zxJ^kdyEXctk7i{?YH%+O zi(nu#5+`to7NH6FSm_yA|!qwA8c>$L)VBs|UUKx=p zLgLmLRpyW|B2{pFjckbp($0W6X`7reB4Gy3pr>acM1p=8smACWPoWrB&K(daVR|Q%GN_ znX9f+Wu&HJwp}Z*6t8GPAwQy&hK2&kA?G$C?KlL*oL?SH5-Y5pES`pzRP1(BPeKj% z_j-7+lhEoe`RQffkdx5cp7Uw{+QE-Q8IRf>AwYHv_-A=FTsRyqrk(i~y8 zJ{R>CM2_uXREc}Y%5_wQde82C*yM)|;@3yD??9)pJbEG+FrPmOxzeL0?V4bg6$Y(zh;j)kJEse~K%=b87gWotvve$0b zNuAiO_mHLjU!V{J`PX$N5c1#c#x&&H*M*VD_d)x2`q_=$$jjn9wIycna*{pYbVINk z=SNEW@IIm(=)PlQ+(3I!=ztnBaakjd>W{QRP1>OMR7Nm_t`w4DQjw5~sDbw^SbS`_ zg)ofQsIhXQg}>TUdC-r0y=)^|s*VmIxK*zUpW$iA%XylE{iPzZqhw8}~pX<$aW2R=XQ~4+`s# zpJG|rf&665n@7k`+pLU3er_ivWbu-iM-qFLxaan2a_`&g?)vgxp{|W5oNsp}y$`+z zh4ANooe%@vA2tf1yNN#d zIG#<)eFdq4dHVLW?-QD<&GwMn%nvApKlkf|7|4IP`}w(B*oA7yccF{<>UVRcE%HJ* zPi;}1cWs%vk6zN(=J`R=Uc3+H%NSqU{ea~A@gK=b3*?)V_a?O)ot0w9_bn?Gk)P>C zS>z?OYOFhzyB&w8<*0&21+1fgv-;R;_8QjiqeYk*AQ z@v2N1=j9(w0+Iu)(>b!Uk)|dozec@~5o89(pU3h^q;@FofjV68iKkEa(~$O=pq-gb zo;am4@@NYE#|goL8PSJ{6?6t&jTonfV=QuP>DNsx8_!gc3{FGIuvn<&{b%9CVlhpy z8pD51w8u!V0}|Z)H|;B)o6jmF?n%>Eo1XqU;ZK6H`p#oT%j z7Kiw_>>auk6iqu^(_{pcW_Yg?6OfnTr(cQK)@hU_kV}iFIHQCFm{1c!t;>X=wkO}i zEM=L`=-Tqf{#<(wt}yXx$>5jd@&;%f?@|+Gwhpiftwt`85hWL-CKLs_9F+#{Vznw7G`iTj$M`OL}DP7oA=;CK($f0?QtN>Kao% zoky!U+@a%BO5vc`79%lp(=)E?b=!yGOB+~`dI!cs_T}f2<3PiA+H@$}(;1Pluvri? z%a)fRGdqXD07B^@Z|N|vMq@<0N+rQS_<9l2uUqqmot=QmZ#$Wx2|n1teBKOx0=d-Q zHwrmgrC3H~qVzPH5m{`@@n~Qb&{OWQYaws6*zq278f-2ckxb8MirZV7U3uGRWtky= zxe7_BZ??WD`)`x-*bh7PuXm03qE|oeyH8sE!)AKzB%gO9zlXgK&~KUV>21O*l5t5y zbu1xKu$gFT!fuh`1;Es1Nn+}9v>4M9wW#+|5tq`ji-k}6m@ zpIwW0g+br7YRpdBdnTNmKQ9&0ap0yLI1A-=4i)R;Ag|j-!KP6MnI5oq7!j6nO(<~$ zQgM_QpR{87WK)Vpgymp06WBZkg?X&)OFEDC9Rvol9qZmF)Nb#<*0bcqR`nekMh>4& z0yotCVrUpRpJMJ)FbNFQh4I_P3;jJ%{rx_ZSkmVs8z2MG;B1@s=7{;^OC4a=ww(U36#R6@g0p&E5vCNT*OOSG^V|6byb4MWND-q~x| zO^gjojLAZb4Xk0_m5Q|XpThR1^M0eG^s;L~k0O;NBXG&Rka3x0^MEbLs4&(mk2I55 zy@z383oIcw6}W_jr6Qb+EK`D*unqKW*leh3G#FphczXxk%xJJArNLmt6!Fu;$>Lmgh7Q3`=fJ;iij$kzi{nEX$}( znf4M1hD8Tvlupbd!N4w*_X4xa^c*Bm{UZtv8mnV<-f*KJdE}9ISX5XR8wg`WsWZG~ ziF!`eK;j%iv{glgH((YMhV{8@Y^sr|F=1Sv4Ofcnl2d24%Z zgoA-M6VV-_x-1-w>Y8kJLR0~-0p>|fZRmU|!nU>sFzTt@qQMfP!q+SnU2maZUSOZl zUDL{m{26UKGR&h@gTpWp)@DO1xM*+~8LF1jZNw}%EW!R+b7pV}GB|9Bcd40z>2_A? z!t)A@C1$rW(`2KmG2AH0Rx5F0q-k8XfSfWcP7Jhm(1KzgNSqi(DfMK=1>?k$ zBu-^Hom!k2MsC~iMxN&}4G5!=un+l(N1R^14EmwSn9TGZh`Ha>Ij=rVu!G zd8vkrEwu7pi0xz)RyynkI2$rr%wugwi@l&na1K>vBCCu3k{ew6NE3&iMT>#G5ywzH zn=)DqY@tg{#Od2f=4Uwul^rd{c{oVei>@j73>i8A($D4>#l!M>S6voOhQo~c z4h)59mUK20jV4P{6;YpaRH$HCQg1{wVePZ5@{zr5BELTF4GwhL%%f);*l5*IGE60y zAEHYolq_v(EVNrA$zT`SYAHs4%QDlPn@184GJ`Dfhn?b!X6ya&s5$;YT6$jv9Ay8} zGf{p5WsDXWtpwyJG;PAu^ZO?(I~vU6E`G<7uE`6G@D?r|ffutN61~6!>}Bw|v?`mz zvad&DSl2?wnz4{6&axeW+L=|%d76UO##q8c;g}lm>pyh0%hEOQw+C}PCY}BI#+HT5 z1ci-a>mM{nBkC-Ic8ZIzG{LZQladWZ>obqLa5v5v`D8x+pA6dU7p&{v?9n6Gvaf2N z!Q@D6k4xztbA#`G{R!Q3>S5xNLN#02SJ{hoLbvU#HSqTh?)Pq@v)!GK;H4J#??0h? zuAW9cf%Fd^mH7InUJkmI^aRCw3cmjB+xW1^e#>t1wp9PTf8$d-|CMaKaG!R9vtu}| zKlil;_Q!+?u*f# zc0;M)B~Twzo3T1r`}RKlaFKYV(6yE+cf97P2d(Q;22H#V=BNix;IfUjSp!Esi6HldgE;Cv)_gVbjUJc$sV@B) zbw$S8EIfNVM?F39OZmv*LLBw*7ojAEVB)BUPkg4PK6!Q2lM1%BppIQS>TwWi>o6dm zGG%iOX9GOmdbqHIkmsK#$r1?G;q9(RN$(bzhwa?;EdLGP$=7z*L+rg*y>pR%yS^ZS5qY}K zU622~zB96OuREbRr+sn$&EuX2`r@&NtXgIY)kYzMlz1h+J@y$%rNYmAJocG2Q9<>7 zJoY$F>49uJ?LBr*TOKvnJ>S?!)3aUo{Pb+RpT-gl4AbmWElmG`hjf4wZ- z^W%g6bd9mzK8PQ`kT;1QF6YMwU3S_l&m0+8WBn)8 zdF9Vt}tK8PouOSg5s zy9=-S&bjkRpW1m-wNdD(anM8%3lJWwei-? zT=_EB<)Z1h@)ugdC{w)Y;>yQ0;QDI}iR>{)K9}N<+J5H9M;VBv zC5pdrz%pKXR<}fR$nEzWtdazetLAs1AjWOU#5gj(q4s z^&dM&ez7#~(2x$N74Pnj+A zNAJYbyB)f#TEjMbeUdD2S#Nj6i(gJOmhIk0 z$7e`VbsXg7jTBZ5k<} z3*%u4y(=$s=4W^JWhhTWQ|}z*KVqj3`!Vz7W5>`u?Cr~E8^?CCv*iza$gfXZ!@-{do`XVvPVPVtgr3PE%Wu|%?<3ZFYH)ODLABX1)YRy>W=4}?b?Q|)v<-#06kln)L!n0{cUO&E zj!uZ*aL^h0joB4Psr-I_hECVq+n%t^Hgo8`9riG6zhyZ4{{0#(4(7qKW6rmCK4Zp0 zUeBES0NStJh3*qbABX$p+u!P2Jgs;@;+LnnfBDlby@OR04Me%24i^X66EN;+&LJh^ zao{j%i6OGi!n1VU;uA@;P~m-@7rSlyoLy%UZpzqT7p2a@d4cBFD)al@LF&LQLHFxt z%*Mo8a}XFcwYGy5Mt@X|np-*-s$#Ixv7W|T31Nr~P}H|-EM3oQ4HecROBUX@>}**O zp)iRGvMTVk{Cb##H}}0wW9pfV|CjVTxQklYwlcDCTB4QbGDN+ktc)=1w~6tDP&3%D z(h-*vjB&31EYfQ{UcHoMeAgG(CE9i_Nu_`#`k?G_Zi^{oZmxPzk^kL)U&xO>?q( z?3k(^J?>Pn1e;htp_|JHjL%K{m&eJv&=NzwqM=C>-O?2eU8M$4)#wj#vR3k474;Q~ zleL0AS9k)p>$H~dHy0~--1`XL7hB2X*3@xI4=dC?=-Fr*@uphswpCZSDdM49_wF!5Te`jUOuIT8>WE0r2 z&Z}BkiZ)!)(O7_M=7;FKs#t-wwU_8)92j4u-;rm^_|Y0j2qsrRqrP(@*j)|>e+j4l($qS#+tr(R~C(7jbSsXwE~q3Tg{ zsDjvkt%a~pB%QqJ>t*RBK$_EQ9k|7YqDNJT^k+$a$v!OZ*F}Fks@Q@iYLhw?MC8e0 zQ00gQ?NW1iiI1-EW~3pqdX!-j3OL#P-w5*G&&R@DKYx8~=@u_<3I8|RzliY=xI^p7y>>UqI9H1rT zd$VaG$1kKSKDy$XX2~o1cG7!0UgD!G$?e(|A6-Gao<=HOMi0V#-}%g~%Gx<`dPh-} z=uBNibgGi*UL!Y-Qx$8P6%xOWSJi6@^QwC6GF6{+$|s|AM~;|R6+58v+HbFFb<`Ed zxeCcmsdu=YtCXCcf~G4u@akH{Bn+?5RjXF8J*!m{Xz%!FlnN=);sbWQfi+un1JQB= z5Bt;)`=6EP0INV$zu2BtenyI6Y`3LrkaMlFj@5%)X63mQnp!<6u{g!{sp5-v zlsrCFw2g%=zqV5qT`+&_UKkH6=v{r8SG78SxuLYsbV8V074@4Lva51YdUI&J1r+XtGDd=RH9<`N>-HO7Zd)l<^K`BX8zY_XV6l@&Ymj%JJD zL15%<0v~A;>xxvVa|mxY^=*_thn-yenepOJ|wnm19{TQ~b&MFJ|Zd(80tHCGHde5%a>&GwwTG7;% z++b9+=A0Hu8U5aT76&soXcM1Fe}>LLd$2+?^(3sm(fsr4v|dRoJ=dy@Rd?~J4CS~6 z(!FGvFOwv`2^7w@iNol3k}`-KtD!>)`3K{gKgohlNXgI;Lzjl_$|(v#D`LQBSGtIV z8rNTruJ&}rVMkgAG}#Cd{4;V~#{O-Opyj<2?coW1o2|cP7MHU&YEM}vajCCfrTe{) zpgJY%{H{M@=8v22KI?;7&6AoR|5U%RYrqo}s*yVexRhMlZC|RJ^PU&3W6NT^0+IgFe=1&GQcwdK5?{>zVPs>=c7gkvtd39^( zTt;l5@LPlJP%Sdn7(|@~cN@>HIOt5qa{CusaaS5If17CQ9-Vh2%Ac30kK#R&J{Sz- z2`XePq?$~skxH{5{UWKQ%$!1L^U}a97lE@?&y_UlYncugfbHa*jY9%zboMeFh#|sV zvKo&Q1wNn$dTbhC+L-070~|;Iiq(@5OAoESjq^y2cKeXuNKL27i3#dR_J)HE%UAxhAwR>sYR+&JhAx12-r99DNRlj!bu(3yTOGw1W{yY`HBf@#E)&cZ=mTqNdjZ$@Qs zY!vK|CzxD3_*i;cUVVG|uQh6g%dlf;5w`PSJb{M$h1*HyJ{)$X`P07OlV7zT!6&qy z4dc>fANAqC($lsnkX_ahk{A)2N2`_(29e=ft9FmZ^1%%*si1ejRz0{ON*P5t)!ISz z;EoI46z!G)U+LIzPdur}swbG!EaAGJLqgV?z(q|Wln?GKy_MD5Y2|}E6hdc(Abgnh zgF7Zd)`cVGgFB-00}Cu*fl2w`1-28`ZUuxr+I9)y&T4Z_iLSJQaEFyLht5K&AdCjF zc!eluRuJwq#Kb32b_HQ{a{WARm+~?{Is)-SD*m$D3+>o5OSq_A?Z?}go-`2L=27B89oBqdmb-Ls%{Fl8N+#>-pjU>TLHF{x5I*pJ@O(!p++ z$F3agXGGt%gB>b&ElJUuriJNh@nF0aZcvTdVew$Js6{3K@TvvHgE7TXOIIjmtaxw- ze_SWGB(7RmJQ!Zrf9 zOVLan$O*xeZ9jwhI7^M`P_TG#N4?1yGrr z5I0)DwbTyo#YcXbYouQZR}ZMW1aNP-QSb-Kl(iDVcoY#16d?-;V`{I-n*@^r!syRB z%|yExkOIP;S5Ku`xb;#TkP%{ob8!y;TefyJ(BZhLrTTE|4pNb6ml9Gy7^Al|k7l-5 z0bvYu7xs~%^@H2|-hGzp!3Vjt&>`hx6+Q@By*mm1kDR9m4hkkVL`N3Iao#|szJfZ!Dr}-)(v(eTzA=EKN;$->gp%X zGkSJ?|Aq@qHMFMvk@CTqJ1gT2D3T0HnkH5nmy zeo|TSFli_=^pHBdGH6mf7!%UP2Wk0WY?jIvy)AesWu<&HL+uuYTILX02Um%EF3~Be zmbuvZ*fCyC0}F!NI5+=QrVX1jO3oKgGvcS2X3ngtb#i;Yy@K$v_q^-r@}@(ammMJ& zQJBJt)(^%?3OjUEjO%;NnHk=3yh3?^A*F-;TZV)N_|MHQW(c`-4jI`dIKxHE3F>n11>)0l_HZD0k2F=N+ywr~;_5bo!qWZ80; z*`hX!E|0=xWeaG3$t|@Kb_rp>D5sVX_KVlN@=wbg%fHXVg?i$o#@Z}~@Plu3Ad72E z^#Dkm)WWE<)z7AJQiC-qlWjGOlN!l;oFq=lW9Rb8qbDM&_wOGdyNv1xAShKq4Up=c zdy?L}OMukE>cIWa*9nm7ozqoss5C&TlZ7V-A0X91T(k^9&jd+1o|$Q80$4yRD`#wU zkVU5?OMhI4;eqR_xhVx*RE(;6|&lVpt400V4KMbpj@BQ=l;-i3l{$4Ge@?ieWt zx)`Z}ySm6|FBc;<5Kpu0bu-)%BQ=obk&1>*NQ~5AIXnhGxEQGsBr`U-7^yy4MC6Kc zazb-aQhmNgPW>kK9y!%{7Nf>L@9d01iqi#2bubggtRXNOB-JazL8irRFc@ZG?OgXs zn3TuP%JHa$O7V@&Sau{-il3f#Cbv*2G%~IM*TXwQrO=tR{;Q{ud|I8atM-ISVXj7~ zHHTvI!!}p@WzD+PA{f4!EN7uo3q_R$-N+?WsyBaOEWuJ9bJA%3np6U&@W!lc&lWJn zZ%4T=IssEywKM6-MB=5;m5^)pDWiT4oPen_TTW<{pH~;!gLv;Yip97rIis&)z!X+v z8>~Be0;aGS+uCo73z))coFmvZFaxHr99vG*qnJCXRE9ml|LRX;Im6EnW&sw=p(yhf8tgwsIYHE&=aD5lqb9{7I=Z z3wx@nlz=HrNe%q8Xep}l9s4QaQk*L^T~D~w!j=Xps^2wQs*~edmA-{Vd3k+8ZP)M; ze@0KRlt(RCYDAVp+wn9Amco2ls?vPp8Z3pW)t55RlLLaK78G!C>QhahmiOzjKfzK< z?CYPS`E3JRtLp~E`SQVU&^y(vw+giB$Brbg9UxD&P0a}m;ypk0)|pn6g6Q45$FxZY}#_^Sa^oa%{{7+k>Apxe;m z+$CTN+qf3RIud>ui}x|IfGMmYt*N$A?vf=2%gR8+6q+8Z-7r|h6vVXVy?8Pu5DD|^ z^icw)Jaz)6UQm`s|0aKmMwU#}hYmexb!;6?H*oh}3TFz%4yR1wXnk#M?zHsDhZW#E$9e3Udo$9Arn1xQED<~il z-3obHOYe%zLZ@){$v4yj?67KLtb4mX5_w^|?!`9br634bmKSmsKla7dO07srd_R zE%7c>SV{vArfc%D_Li7%0jK-1?3K{U^gG5I?6G*9T^1#Ow-u**E2Y) z)ZCkU4+_zUT-^7-b2@M%=^9pc(U8-D3$xs|8d!U1G z-N<@3=Q?W;rDP&;&za!%+m3+USIw?B*s zm1$Wm+QhP>3{F=r%#FT7rT*{zMky0~f7=QQ->sC=!*^%;YnQur*a=3Sanjo_a&q3E zyhcPDca5BO;$e(m);n*=rO@S#O7UMm%c|B0_S3QMYQlcrHmy7Cr?=H)^6TIfZ}JOf zKk3%hexqA}?%Qsu?pB^9eR^|YRs!-yr2?>jW6?sv{@Z1j6!xtwT71~|rl@h{`)$~* z0Nj&XlKYKL=I+~WbapGRQPkc%jQ5KUxaWaGr4F#0alC3kxnMUp@g*%R>}IhXF%>#!@G2r`+QZxAewpACtTPbyj zeQ&G~o9}nsm5sfG+>=g{`;AWK``g#(Xe+N#)ZRRdx6T7I(eAy#p;9JzC|$WJyDU4* z_WYYMKkAMIgIS8C2Q=L*;&|`jmt9ihRM&1i}@dC$XeL;xHhNk!f2=2 z7v}W7Lz!jpb-z&x2%k@5r?r`SnutvqrnBoqR_f?`*H?;ZCkgl5j-0c%nOOZtFY#;Z zu3^$%JPhc|K;H}Ap(HYKAL87rqD4-kSG@-rE?APB`o39lv3tr}iDNIV{iGA>e&dn8 zefNyfY1|ph-G>WutK6Yd8Tfvo6cBcwExXdNZ(q?PkMBp(`=496S(Rfi8~5av;eO*5 zwEOZkAlk%h+_WnXBm57m9ItgJ<%n~ZipHhO|E>1-fB$v0<3Xp5dpAlQhyVWn{Xc8_ zbEDT_elJOOEBd^;TpQY5|JOugugY^;snQU?B~Za*Q~CI3{}!6D2WXC6mzO^c zxQKIL2_SlfFk@K9%ylGY^;f|BM%!E@0VM|Cfa_I7&8$aoH;z9gq=3)Z){U8()Q14H^h^no%Oe~@DOR^rf($S)U7|jFA9SJ;?_uoTVY=YHIe}ty~ z-TKqtyDR=j&!Ba155og;{qXhA*HKD{_W@YzQU+xUd`7-$*1l{ylQ)m>?u8CK&A$6;_VAu)XI8}J1YgZ_uoAvloUNHD{XOy-}^VFY3lA&M=- z;4J}k*PslII-l3)OALEuZxCc=L0!xa{`~?gxw*hS{taC1I_rjUCQp&=SVxE53;^sou@c8 z5zGYEZi-+%F`8(%b)*DcSAYW#SM&hqI=Rs^MbXY0WlN1EgZhh0bj`oLsREGYq<~Dp zjBBX#3|#oR@$aw>yhEns(iu_oELovMEua(%LTDltr3tKQn97 zy=Kjx2%5lvy9<=p$GpuF7u}f=kWb6>u1YSkVoX~WdAd!rzW|$Lc zPpCD|KneBxf(Nf$_Vly4_7U!9vL=an`w4b0i4xQQ8NM{{fl+>%z6yYinc)C4junYu zS_@Y+&%|gaUHCoKDC@Z~Fcs3AGjq-g+t7>R*q{#E9C6&w4pbj5^3npT)+qWn#U`4o z;yUE$U+6o+*aVB}U+|=`Rcn7OQS~nZ7yu4XrDdIQQagh$kQ+8psWtrwCpQ@GC9iO> z-DRBydaYYsXWcUp!=8qy>k)N-N{Gr59o|aPp-3nfwbgYP`fSWC%cix?9#!_hcyD*{ zYchDH zRahds03)1bNMDzdYVxd3PAWxQ+$A&D;=ICVQz^37EW?S)5ut3$$g?T4 z=5tZqhNP7$dsqz8g=JfCf#NP6v8WKsz<-UVA*N_dFy<^nu9&jpl`!D63lc=hdHeyc z=g{Qd@d?c(zs)a)2G%(r)1gJS?;*c0ZJ8@cBwhx02(SS$QdO<$IJ3+pu;&=WnlU;rqlf_g1@RXYSxgmV5@mq?Y^a|n%Pv# z*q^d$!2VR4u0})w>C@}XQBBXUqjr-wmt|9j_T>i=!MwA)fcHG8-=n`D_yj}n8iV+` zp-_=>#y2(gY`X76>tCujS`&2`C5oTgG>av+k7f6PPr=s%-*tpL@O6Ycu!iXC(&w9( zb&(mw3{bqP+(0&GELwrO;IiF_qmxItDt2d*D1@`8>7Qo$VUAx`&tzvhFGLVh;>)8bk_?ExS-++ZJ0Ukj5rrn2Ws2)V40rEEI?!E_K zPGpbv>EGJE?nE}2Ekwb3YU#rt{tAN4BfEsE7ifgjQ}VCLL%u0b3#EiCs5So^;uL5NIH6q)}o+`tp2WL z?0EjlVi2P~G8cF;+d{8AIGWwQtmI$6ezF*zjexV=A1~`1G7gR41CD3keN0>YV z+NyQ#l~3SsBp`F#rGe|Um4lN|yAhf1>}6lZ625CO9CUexCGB~E zu65|?aX%NBVwCKS;0*w{G)LF7BT4~u9WBH|G;L{0tXLGjRWG|PZOqARVS!;5TX0xg&A0>?>$jw}Ufnw25uF3KpvvuXyrHlwWVoL`g5)u^{l0!nZ0sBSrXGK* z-pu+MtVU9!{JG$`ne?xBKZ5&AQ?`ll0o*^gOa2eweEH?;-*&O+n(+Wl{oDHV`nQ{> z2h86nyjW$&5Rz!QONey7Mmjn4-lC0W1)bJjRl3>IYs+8_xwTh?RAo-br->TFwQ=M& z?q`?LP-h+b)|9cCVoi}zN?NdX3F_kr(iTyxY%TrWacao<)vp7(iF&}PD_1g)-~Zl{ zp5HUy!?BU6e_rFa|8#=i*wwxz;y5n3LkHzt&eAu5N29X< z5K%VIKLe`J(M65agm?q)U^%N%){xE@Z3hFDwWzo?7t0iT1^QQ-h_q?3m^yvbdj1S% zTh-WxJUaR)QuvJ4QS8$3x>oC+myvu&^5V9PEv~##LzSKnSOcZ(>U7Y?nBh>7LJzuI zwYbjeZZ4n^i@$@86U)21WUrWefb!_)@fkY|!eq+$cz5C-xi|9PmoOYhA?sVv2 z*S>mfiJ!OC%W5{zy?ij@GTyBi-&uWsXHp~Kzvz{c^(=~eqF*w&Op$v%j-+~jKZ{Fe z@pQPi8uRhpfXWJ21K-mwaS2 zKfpfJO|L|(6s-j;DE5m2Uv@%>*P{?OBO3V5wRZ;r=fD=i8xWA5h-|Toge2cWwPf5; zVjR@YYn*<#TFSic?Gma9zLEGM+D7UVxi)j~5b_g)*CQ6!0QQrtaBQMT2I)_xOa{bd zm;*F1*df!MlqH6Q1Sryqz&mw04Uz$+P-4p-3mR{tUf?6fjfoiT+RMk^q^VhsFYp@5 zQEA?~7sHQPirnOo2nCwBAvazlLe`4yQ_S1O^v0jYY?V3VslHVPd<4vyaxdsC$nxgV!EfADkJ zfFuZjz{V2)JmI5E+Vgmlkyis`Y;8HYU4knXL8MIncDE$&iNHw7EEQ`S5;g>o6po33 zSZ#Vni&mSY!?^!S9)^e#+qkI%@qa8o2<}N+;FzgNKq-~)fg@d1fDHs?@F^!)2J+LR zdd`qj4lEV+!V_9bmQ&8JwM&zMFP0}4mK1fo9-kscr6hSM=#*B3tuRH^pA4JQ^yDC= zpXLSJl+tB4&ADaYwY7vukRNne99xT{Qb0~wHg2&SCvfpA*)O875?{!6_ub^m2r7-Y zN#7Q8x*?wFDgfB)51XX~y~g|OSU4gs#vq_#EJXpX(S6ciq{35NSoA83i$w+YVo+;A zz*`>Td~M|B0kKFVQe`X^U5~Su7mEf4Q=z4+Tg4;5RCqm6+*dS6ps95Eef!j?BT=j6 z)-2!=Uy1s2X4l_{MPV@?WcEMa-vYdfcNZaU3eDwsZqS{6+dx|fuCZJT2 zAhYQbw#vAO#u^cN?~HV^N+CLfOTw=rv8%HT@G4Eo!1>@^1AG-s0y|-?QEar6_ZOTz zGPAMqhQ+ew$VyS;31Wr!GIXmu*6oe6pO>nwDPkge6#x$BlQg21@ zCJC^b#2qv-rh{y$47G9-AL{d)9Qv*&)64Qtc>e^ki`!yojdec0Szca)GPc-RLF6GZ z8pO&~_3iglCtfA$#Qpgx_GoLO=L(Jl9W;6O4sXxcOgn3Yn}mbZVnGV_*!y<-{qhe$q z&R^p1u*34WmVSS~Y@B$B!$6MrN^$pxI20jC5TL;$lI(@E)ztr1D8fJ_Ng`O?CKF|$ zQOH$XA1rxcAMq6sF%}1>iP<-ma7`eM@buFb?{@+~!8t_ce{O7&C6o^5k-_7-65DkG zhuWye9`518E4VIX-9#ceclZ<@<#M$rwwZE9QObl1KQkEiA0MfyQly+ zY224KItc|OjiU6C^bR(R}WC^|m!V1sfSlLYspeIY# zujDK_+N301+INQyZ9m(~mK1XJou+1DgkdII`C-7;6eODP6 zrCocpGKNZh2!%#)EAS@xw)a5&z!4+f!XbR?XD&4A=kpqXpXD%EKlNc+kyuTYxyS^4 zQZ5Nm2qOh*X&6BvI2FQ?iK8uyys|C{QB-k@JSgEI#o2Xzs(if~)it;V;Oi9z8&}q* z^|A||g5ug9kqj7=T`oyc882nTeOnn>r9LDD*_6O4i3g!5#LUf_9a*CX>-tuY;MJ-g z*T)F-XkUX(w&Y=2>1}&NG7wRuGjA0UZoNH50F)KZ3%Ev0fGp(_7@lq$co5TV1HZ0s zowK1;TZC%>zFuLlzOrFjAG<)ehpK@0J>pafyB0Z-cM-pxgeqefJyKVZ|$+b1v9<4Gc%xt^=JyBt}ibsf3uqBEcIK%)mH+ zdGBQ%>;zg1DeGZAQ}pdilL)NpW*gae%Dt;S&osFD_EoWQ#`UuqeJ=HL3p^x*lN;9; zh`m*Q_-oh5s$YpZgUY}y<63`DOt_AQCnf~$UEeC7L#r($CCulB2&42>4)ck`>*jEB zmS@4M)g*6?q4#3wEODU446rbzq7P=bbQI#fDXwposaLDY{CfbtPBzxKqBg6S)&DmT zVi*(!M^#W!00vVW3FY4eggF!YrO`%?2vhzq1UH_4{s;eEv%swUC;vOemwBX? z0u}Lso0hsm8X}{5WXw~>R=J29m`9F}ny4${R@=UML}fFOD+Wv!Sa@TDxJ} z=8ObtT%aAPlolL3^xKALVkUR?ND2S^@1#&PkHz2>%7FJl4|oVgNjq93;QZ5$LF_iA zU^A1X0Z=Wm7Vr;9CgpFb3KwsuqjwS+Egw6(3R$p-%FtYzC%JhlYtaYFffFguH_yra>|=LK&g#qO z0>mmp6Gvn)g~lXgY$8e%k*9m0z!#^WQIIzUY|@heur^YsRi*MoTyZTV_aNT$B^~%1 zIY>P~gMjsKG?Rn=(>IdF!u^ROx~Lfbl5;y!K@bRkyec04@W@msIfXeg`S*JzlpPP; zgTz`DHD`GCE|NSEHxW95d`r&2KmWn20{D86^FEu2kw#jf5K^8Mt!~YZ8?q*9XxV?A zh>k*%5Bl4+2$sUp1`-b#o?LzkL%#D_WGo`e&TxvcfP@q(I#UC|vA~^1^=9xu9NPj$ zD%IT${ZjDXTuXEDWQ@qc*?0~82{Q@1)c^Qx8(YfK{X=?Fn|pz95T7} zqF^^byX!(ehNfn5*4#VaRUPF>x#5n=e?&Yg)|yLFgD34`g3%YYdXhP&ya2i*$E)b+ zd>q2(-+FB#{j~Hqg0>jsvHlh1u73YY%WrT4U#RIVhyDu{Pp5SYcnk`$0Ym}Y5%F&} z*CQuM=RvJ93YQbc4;G(C%JyA(Tu=u5JZuc-aO-|MXs%(qLAsiS#L0hBY z_;To|*%HZ|y-61fnyeff4Lxnb8&UA)MFnN#cIXs|R^Z`msA3g`I9|O5^2H)?hF9xA z9+YPEaSsf{kQkmxC+FNbo+#!qWMBhjdO~IbW*|U@nE1N`(@PXt1jaOjEI4p2nGRc@UQw{ee8g!(|}DLT!}HO`TP~pC$m6 z_?(OZZ!#~;kcSx@pEZQMa?1k$bS_UZlTz3w{%5?9Nl_I|lOJc5NG)+(Hs#wIW{D_8 zCHiFmE0GEB0y0Y;@h?45J$-LFpi^3OAK|6Y+wv2kZOmP{Z%ZX_i?ZX_ooTwQl3XDAeuwhhQArQf&*f&)^xR&L#b zjIxBNDG!(Q@$?8nI2bCv^xH`Z2K#Px>a*B20^BBIEYd(FQb**eBn$=OeGw^@Yw;#t z*}^eL#$$^Ux>tkai0ismjw0VF<|(Z4y%QK~!LmhyL5p1MTBCJ<{F8Gp3q|eO)5ie1 z&%>Tw04@^K)$CbB%r{Y})Sg955aqw$_Ux8mnup=K6u;yfIoPiFcXJcGP~CvFpTCi! zaI#T7sP$}B6PJOg?4-ux{&u#3Ufp*Si3C3=2 zntB$@-9U^iajKiVp;0$^z5i(O`cU2C^%?2i>6<|9-b|@GwZ(6Cro^~t_#&o+GGA}Y z7vz@L)A9uw*~Smc7fH34!e#j)s14=8F3T4}I;Z)xd|myyEMFtn{5Y!5ztzz7oWM6y zmcP?{{X6P8{;Mz4Xz#jUd#A>;?o)lIURE&JRR?e9UNFVvu zXlBoE5t{;W5N+a2(tmJOG`kVEnqY2*z(D2IJSsm+|Z5VEm#p0A5|zFC&$-pNI7eC^Q294Aw8E zTgA1SKK94M1iple8p2R-7>myAo=j<3n`M|8!lp>whVW8wf@law1=9@S7iIMKH=+Hn zE`xvLdTO7-C>p~yZoRBO6-C)jLtk#y7$%lctaZ(|Iw;2&Aq`XhE5a(0UiV@WA7w=B zjLRg3;=*us!6ZJ!WKaES6bIt1_$bv4_DalAUez`l;<29z z%oeuHB3yp#x_Lw>Cu1U-iLyCiJLit7KOi2hg9NJ@FqVqq_6y~U-NZi^(Nu>&A(iE( z0z`m)lCEdqLa9}b*93@gA>vunEelzP9D1mq0H@*m2GO02*QZ`bDzHe_P9TnmHDWLS zj?O1<@Gqn|PjBy)=oyk&u=YZHF6SRv=58$@zI@9vE43N`MQHa6(ImgYo_r(P&x>ZG zy%NO&v0r}tZAOd@Q=@jF4;mR z{1ok{EXH#LeE1L(*^s%y1`Qxyme%FuKM!*4fjskH$$_cf#1~@wI68rbjlI%zBF(BM zeL+k;@u@*#ofugSxP!u!ffQ_3CXR{U`G8OXQnKA-@btw$|JgzqLp3<1o%f%=+IU#Ng#r3nkqLTp8Qo|Fjz1qpKfP!N@j6p=z8sVy>-|XT+pg zG@Si6a!A1i2nv=Ybmz_!Y0-FN`!k5UaotdBJ0I^K@b_L10Q{Gn*bvJ~$Fvdi|P^_AY z_!}`Z!2vi-5AoPvh$JC60jZ`NnY$ubjge_CZ4xjW$Y+Pj10ld_I3}->8&Y1w09Lc8 zzrqjtyV2W7Qy0Rb9xys;QiX*$If3u3kq2S$aWRb~K3mAmZddOcu)^ z-v~CxYKA@(+AU<)X#A8y)j+Qv7C&WBHE^9Qi=Psx8cJAY2Q%Z;%%?j;DBTfiCQ?c( z3sgg>fjV3_3&Vg=a|W1EgNja^BGhaPR}E+LS8$rg+frfYSv^~mw9!QiAu&{aZAngs7gV>ox80Hg_>AqWi%7ZBz1-~@Wan7N5k!6>(()kcMyukoy4Jp3K;z#%Q*jJPWeNS@Y(r7C87qh5=&8GuFm~nim0A zLPkKwSrelqi55T5n?O0(nEx^%K0ZOP;PLTGTz|p`)OX6({a5Q8# ztKI9kGtR`XpAyTj3-AOlC*Hix6BKwOw?6$dyPY`!V7!Qg1}VHIJR zhGYFE0-my=1vnaZ{qzyZ1bA|I%;(+UXlN63_Ll@W8c4`qC00k^Xz;*VG>}x`Xi%z1 zJqQ7gW|@K(%z#KV>{1mHJ;Ao%?jCL==>&kpCS%9NKF*gnsYYs<4h_y@19)_bKXhn7EI~)zAq!ylp z!O_&<3^O69OC!k^_s{ehNo}_JCRk-eI{` z0~`%PlB&f0DjZFvD8gE9ZoP2!^9BuYG#Pmz>eZX3A`7eqj+(;JR88omCozMg0W8y$ zfE$COaoN%xj>d@(75PmLeba@PW`_x)i3nMBO)iI{*;>J%Jg@;5Dt-`I;b_20G0t|x zm{F}aq;_VqlpbFK`DchG3pe-V(=$B$$8bM@%0U^jg^Q99rb6XXKdhfC8qMe3_t#q$ zMPTK!M#?Gc(wU=maM_>#-NULWqS2fw@DM0dXmS!bCaX%Mg2sfq&%tOe#l%r(E;Z)D zs9E+_98hi&I}yWZ@mf|jqB?-lECnP67Y7P;u}XT!j49<-WYwLfFf?eZCUuOLF1>Dv zne|RFz%2nc21By}6_Uq&eqPSnr`&TG8rUh~1aA>@MXK$=I?uM#r4Z9)ogWQ$g07k_g zD2dmy7Wn~-&wT>>A`n-2)w;;2mp=Gg2{&25Ps1(MD5xp1*$eB1FC-dinPTC#Nxll7 zl0Hhs$xnx`u7rBL`}HL%F;!0bgwoR(=LH$vEP>CO$OBd#=1M@Jxy1-qBRHRrrk@Cr zas)TE7dQ)KT>rCHM*PrL$+>cM4;1dBWw8B$kroYlJ1c_6X_^u6QtHL5ZzzPV%6a=Ft6p!zJKN@WgQ%dMTAx`%j=+CIi`CSqOuJRiMB zhpe%lfI6Mn%YQC1)J2NnV=@wl`ObtltPsp5MlnVf4ZEOfAPu-N+9-5~zVWU{+p0Es zcRHqbO;gwagncHT35~@^AZ_s*>uW{WL@|P*;u(6^`(>k|T4fd2A;9xHFHWvY^B0bU z%u^O}?JgnbXQ;DrnzbNrK{_m;jy#BAA4M{-Fh~bPtAvUS0Np~d<2-^%d;xrM6Gs<~ zmVo;hs<#mQjnB(OT;zcft?exuS3CwU&eXV^XsP@L?g$0OsEtppF)63eXS ziSphcsw)%03WZ`@0+F%FSU?8y#-lT^Izy|_1oE6T|lGzZzx!1IBa4%D|B(=YQMi1IiI(2j{bCJ6S#dwLTc~n)@ z;Uj@>$MI+{x!=Uc(RDK3*y#@URw-GZprm{NkP=6HCDS2ztn}nF>SBFGW>ki%@wfDv zQ4cs4!_4=$sF~D?q^NK5fr(HpRYV#U>fvqH7M)Irzftfa$?K+4`G}cGKw*)1NpK~f zD`4Y^fWAGaX~})lTAMNesyq&BGE>DES@*7~P)F~kaI!EhfBd{IF@ODpE-*ARPQQgN z(B${nVT+Z!Qqy3arJ>|tRb8O0C8|taY4C!dKf8pk9Yw3NRBw5T+6yCMX4wTHnL*X; zmKCh!3)L*`KUWhEGF)2nu*;4$ZscrhiRU_p3b#G!4J&O?RL(85n0REUgl>)8i)v4! z)*|jUTqBJ*2A{(1Zx8BMaLm!AyK?LIw@5r(tWuq8ED7xh07^vPE_#)psPblG=ob zw1B~e&Q>AYyZVc8LWkM@YBNJ|l2_UU5tvl@fM|`U=)XA=- z{SzlOe<^NS+!+qBw(Nb~znqpnrU^-gLqrJI!#1@995PG_6%h_s_@D%*IxgblRJi#) zwt$#7#&w1T!qE}bSMaYecv%=!b5C3tedR&&t{I7#f_MZ9ihC&P1_MbotRiA`9j zv41W(URA>DSO+D@6fvu0R)cD4eJCb9O35y+H~$tVQSuW9iGs=Jd)aYNuQsVx=YM=| z6oVU9ksAkiZq5(lrJHpZF~^t@6JJ^-f!5jSq646p+b(6PeXQ_HVF_3k$gJr7Fql-j z>RimZvKdjh-V_WZ#FC0_Y=PU$9p#f_IYw(Cf7cT*klM2Xs-iX(#D&-JO=#lJ{Km-O)S#mH-oV z-l4d9YUSs4-r*HkjU#j3?O(dy=DJhTbxAnU+;(V>(zt@(4n0>fIfLI0qwErzV}3iI zkGbQ*)Pv)$ozpOPn%9?jZyde+M9*D=@1!I?0PeYK4H9#+qNAR>)*_CBczXcS(B{HZ`Y_c zr8o}NZ`TZ+G5GB+V%SBItbRLcb&6)9emfdLl5`>W+tFy*f$e^~Ft6Z?a~@oNI~-}= zGvQkVu2Z?L;J52A5R)LbncuF%TaYUsMD^SC98%8JZx@L1f(c~z+j*AGKe8yR$^A^^qTbyF)(QD&z9owMJN9>+;(jVzb~g zcig!Exg2*vu0+S(A>-LxG;(v?H58CgOb~J0H6-O~xRpBYu&0pd{Bt|*AaYX4{H&^u zJ8Yl6G?-B?m6r?XaWh?hJL2tH`LctEznom=emn5DvX40W?ZDruE;{wwfeS}0i~CXh zb`6PYMW43KZwFay+s*Fs)&e-q3pIM^yoCo9MWgG(afg*?Q$H5R-66Kw1a?aucR2HB zkL-uzt|9ku-hMl*L|xM|hHq}$0Um<_aP^xFKX$wPc1N3-Ne8EXyN(>OEGmfl?I7>% zII7<+5U-;f$?CTYtp>lH4dC|M=}@EF&gK(bahLF#Q42U$=c@O&(6j}HQoVL8QfvRY zy>@3Q&Ps}$6sH}nnTlj}+Fis;e7o7APCII}Y|#wZX-EBcapbwvj)pq6`q$WL7bX=P zaq$KVPCGz3Xzs3kyI}Ygfh|+79adBQgTZTuqOw^BD_%QV!YQ|%dhKwv3&KY9+VvE( ztJHENQT;b+bkBt*9%MM6u5dUer(<#m`kH#}Q2bpH)y!*$H~%3@mV50WBt{hnoqFvS zh1)1d(TD04y>_^A&y6teZ#(>QlC`dGJ3jv6Aau7KL%Z2Kxopk_n+fl4<5-*Os?GWv` zMPE?2-F7S^b=o=UvN+VZGKU@F_LBr9n8OYWpB4+Y;IKm!cxo)#%wcEqi5Jz&rS@ru z1&1BX{4`4>vvxX#XbwA06s&r!>7Ig5s2UQ1c==nQbOO{W%ni?|0;Of(x3r#*=>W)3NE`HBC32Ztq?q9E<4{1?uNT=BzM_CWhrZn z`&;;~vJll}*G5bpHJ2UMWv6jxVK=LV5qx$R@w$|qtUkNYsypq%2%^(2jMklYVP3%z z7uAv;W#r5n3t``Gu3+#Jop#;vrlZ#midE(02>06c6mb>BYj+VZ%}mMewewbk*Um?9 zyX|bW(QRk*s`<94bmcRJ*wKF->iQ0DJKQ~nFW_!FoX$mvbir-ckQuDLJayZ>sN{cB z^-+X`<*&N!a49l6UvS%DSoSpH`v~Ry^!Mtv3)>(_`j=aQu8ZEZ6m3mjspX<-!88za z9g?Di(rQ@ps+t^ZPb1NFK%E5oZ;60>_Fhl>Q079geyQOj@ zq*%_OPZToWJ>TOiC}Fc6Gl@h??!2g4Da{+@8#%#Lwf;E{S<0{ZP~j$M9Hj0OqSTdp z+DhVy3v=Rk%)`4mRh+M`ZE4~t<09I8KG&P~LDk~$*FK0;6iOre3ppM|&H_rRVS{1( zn=!;wD8B}BRkKb@wROa!Z;3Nb51uHAe+=lZc7JzHnFL0K_Hxpsz^m`0<<5_BdgyhS zQF_@Ak&1e0kPla*sH}$C*w+BO3fnbUE!cKVYCfkvwP$CLeB*2kEji1tUVVAO2z?>L zT%K$GkO`%S(mfYhi=>5}*R7md*rh#`Uh@q-tV&zh_rr3M!wE6sB^=_ne(FN2c0jNG z{Va#E+NqDTibTi9xyV{0EwtLKnwk%wg~DrLtj&tFg;_N#=N357Lglx>t?OH1>(!_m z*kJ&^T4AhlU2Rq`d*C4`?#&U&S|ZK2BB^>@OwG3~DN0&+&9^w`Z&8spKM3T#e&NlI zype--e=A4uZdH!!a|Cj<@6m=N7@t>q+a8guHPWtDwVK*B0G!`FPkh> zywN16J3av1+;KC@U~$h&Zj8?d#QdR41Xc-G;&+Pqd$p$_*^j<`RcxGb{cJ{`Oa0ga zPZ{B4t(E4z(eC7`YGGvE??jzJw<>L6rrqkfU1!5t)~`xZ(e#W476F+Qn1Jy8|kPN^t4F{=fc5hmX2o;<>Rf z7Oux6NH0eHLq(pB1p{}pQMsrT>_*VemQE1vs8V{kj-L}8&*UwDLSp2_$qfmJXElMf z-ZZ%hKB-<%QzH_)M>GWLu`yT2L#H%~1e*p})YZBUfH1R;LEerCnG6$8dE$piS#6o1 z-hED6B3t6@mG+x!rE%noQU5%s3W!8ywf0}Abf^AsSvCnHd?5wizpWE6Ya+c$>;F8y zUd`LsYM)4?u_vdp}4;=uq zuNyG9N?}pOV};+e0dTGs+NVA#U8p$yYT2c4OKL^s!a)BC6nI{yFsU^@V24?Q4j59x z=t&vxvO70nQby7{-mvNQou0cvMC74NQW8GHD2;fZ2P6M^kR{pnJ`rEYQ!mB4k*{P? zFYjG+k$o~orfGA8L_^@>?o=FxvgVL8afqcgEUB&|!5Cr745_oiJcrj3<&2-J!lfPR zW1YB(qxQ7HP0ZPF!J)f;HZG6hY?R7l7&S>w^cnA31J)flf!M4?lPGOA+4nlLc$Um) zy$@cVft5;*u>IGL3}o-n$UHR4lWVwf2e~q68V%352s$`I+9dCp@@Dc_11QGIrqY0t z{d05e_d~d;z8G1c;*y7SiWv4#m2<~$TWzOlCmy-sKfYQ#jCC?E@paxbj1!j#9`-qZZ8693< z;bC~BCG8QeEY|}Y(sjwlxToJ^6X_l+o9n+=akDU=Knya$h{ho;Klwqplyq(4;<;ntwWFTb(VgiyWOyNGl`(d_;f7LbVK#vn&an}@*3y*P zP#=FQf3@P+Cqc`&g$2{Uq6ARVr1IPdhB+j-5tj&HmY*nN%Q#bD&9S_T7PUHD*esgI zteuLs;*qKh);F4Sy1Ue0WEQsg1;#{h2_Ws!Md%`xkxvl(4^!8-s4PD#ou>%+L4dUM z#=EoBP&`6+JV*U@()b8|o>;z6Do1lP#)2)}AE32)5XdEwI*hKqNE8iExA4FUuzGkm z3X(s?=LZ(4KMRtTV*u<6l>ICyIYcZ{fcvZ&BT-|*vW_Mv1K_t*Uq-eD zU<&24Y?$zkYN;)o4&S_C(oFa*^;U9U{*9HwiY-~$th-k$vE>8wT3j{{C&dW|s&dBL za|U|X7q5MoVO@MOzJ4F;{QI%|Jyz_hGtU`>r z=&~RgctUXqqbr7b7Uto^Ys)*;x#NunK3e}b%Wb4#acnxih97JF*aAJra#GNqp=}2; zpCro3Iz%fcg+vANMD-NQNo|TTBD3d>a@Msf8T}OeD#;fFoKM@g(wGK%V@L5bXp)G_KV^ID){6bG;H zu=Eo5l2I~&sCCDM4<)0PCIiNAH-gx^Hrlz~(?Ed|?H^3$qnxr@u_zc-Srla5%Q`2g z-GYFLfj8VDTzAaBTCDdbthS<1G|ZM|Rir4CO(?G3%SwOV2UZmd!S9r{>6)SeXa?of zD>8w1R!E47HmL@sftKe^&&l)wajpg8tq}+nl2lP0tx;@uDUaj>z_h%Sk`1;OFS}%u z>h;zL^enM%*=wxZ6dSOzNq1*fVkr#Fi!p^MIPr1+Db*R{jRqF_04{d>V8hb*e0&K% zmiqHL2z8qlg>aWhrm9IrrMHpjjb1FUM3^pm^-kpGeT>FJW*MW*VGqAHUVwN3l^WlXQ1)1(jr!TyiPSLn!wR zP##>dW}JD};mu|pTU-&FL|nO-Rpz=(4M;Hk>GDLRd!r=p;PNDNVxFG6JSk49ucyls zPx&}FKhfn$VRSu3m#0-O34Tw?;#oQRJqw`>*4yui`0%vS)9;B~nzLDMzo$mYM#rbq z-2O6}Iqi@`!g2O5q+qiKqPq$Sd6us&cYRU>{7O&PC#Ic9@(0%^C6T0ZyFQ(1QHMdK z3FYfupW-g9{q}!SFkj}5{htyxc>6yCam89xLUcA2fzSA)=)(SqKYS+! zPbZSg>KpZA3u{52EsaF~XCQYkF%z49B^nrYReA7E3q@Z1%m0bEoae-^S#v>-0&f^5?a3`e)?1 z(cBYCnD7+G89bpF-%;tGK1DENsRu?qp~$H@)r%6uQl%)FfL z4lOdt=ny5aZ*_n@s%!G)@cGakI6j!7Q9q7GjkyrQ;Mf?L#S*Hv?Esju5I zZYn3bBN54uljqxDvF^z5V0qCB8a`b#e*jT z>`iIp$G6C?D6@%=Rf>v1-=!*vFoeCR7@~U?e`+fFlS`~AHlw4^Yl=;(jU-m5)D(k1rXWxWQMy`Fj8cGEEea*YP)%=TCR<6dPJxe` zRVXdz#+F$u4jzE9S&#^aLt7!LyW;K_Igzz*1g}2CxU;TPQCkg{BJ1Q;CCG%ZpV8 zewz0=eL2&=ABVk%@?zM|m1@#DS&ByuF*T&T*ddm)EyW{_c*ZGngQ?1rPs@v;u7OQh zii`!?&6;jp)PiGZv(G6GaVa=P{TFfnSiLa}6<#Oao>FfNlPY!bMx0?IsZacE8>Tq-x?az*-WXx2 zBz9z3y)m5gp_BWRmL*mkLmvIy>;4vz{mJ$MRk%Wdjx_a*TE#KC9romjX~i+xO62OM zO~)0-P#$J$05&R)dBwCzDAa^uX4i|c@jE$OMz$2+$SYPHbMmB$V*(qUDitAOdzX=Y zQJ1N+1rZ945q7*j`)k25xF~XZ9P}5V@RSxK792w)VUZv!D}e=IJYq2!-HEGhp$uZq zYV~WuG1Qq#X|wVp1;?;*N9kri5)~X{2~_jq7*ek{hSmHq_b#H97BeKsZ$$gKA?<%7 zhTi@cvdJkMmI7YhrWd?R&ESQ?W@a+=n-60ya9Q7>0W}@b@^Pd zP;RUPguO>9-@UD|0<7i62I_Q+X%otg4Fq4yaFHc>-~aI-M>aay zL=es&YF0joN32NHfL9wsjh(vG!XHDFxbttb-GilS*mB8wu`$}6OG4~WY;5tCoh$8j zGwX$~pZ94fHU=X~!_y2g_;gaJk|^0&iSPfR)$U0vPhRf;)x@e8S&TXp#0vlCd=nqq z^Q#E@swTJ1I#;rodg#uRupe+6Xjvi__(27$$GW0;nx4JPSXDzd_+u|kI20P=;_#1e z5j9xkna2u^4Mj!4l@p+z$JpZgwL)W4;fV#9aQ2_KOYg7OsbC@FmexXJgPum@me)dK zKCBXp5nu{DgyMz9x&|bHxIdKJ5=)Imtt6Bha}6dCtID+4F3tjB0>#mm5MJno#=HU= zxG2ewP)>)bW%8us#D@l_RDaT;Mwdj6dEI0QRUQHF8%a+Dqf4%LeiFc(=tccHL@x*K zQ}l(3W0kjVB$H;Cx4e01#WAQ8NxwAX9aqq*YP>rSyS-oeY58;zf4gd&c!|S6j<<@E zCzTwlQshJ)Z6=o-+qAd*tt^xri|z|`D$zdN=F@nQax{ zLb!i0s03hyp!ex5zXmK4lma`Vp1tP^Tf(&ihQ~3X{s-5HusEg$sEY1Rb}I5z$n5oo zDsp(K8r0S4As_iK+h4~AA{P}5Gr5TN`gBnhFeEgZ4O%1&AO{!{A8R(mk}#qC%OLr6 z+Sve50&~K5%EZu~@%!r8m&QkVEuzlnWxaVHFx<~`A4ICcg`nifq|&&MssbzmV!~*s zGXo*Pw4gAuND{yjfQuudhKWy}6azpxMBo7C`@17HM|rkaa+er^tM4P+(#JTnEpnJq z{@f22RY60pMipM<8h}HQT!U5El50})IrXVMJA>pKXJcr|S$_5E%M(WE3mN9}T=R!a zXfx!mUu1;}@tsGREF7_7o0L*s6o16`Gc|m^t93=$lgZ#V^I4}YLO5oP@t@1Ur zYD;kS@2llwz1CG{^|l8dg5usBkqn@a)uN=pUDg(Ze%iLBG-`z(@h#5wBtez3J2poRo8m&T= zgn4-$Y2d*O04RZ9*SF5u(5kP(H3DC;Fj`;RFt3k&pwdIsz=uZRR7DR#ahgpo4-#vP zGt#U&YA?Z-z{t2hEYx7ZFTvDA5wEvCq3mP?NBOS;-FP>UxJvHTS>0MuIt+}?wA}|X zg^L(f38yMt$knIdo$}`vjLWb`A8*?TbBr|8fGEccgnr1J>~SHZ(kJ~XIwv> z(aTalw!rfOaWYg?8HDskyR$dh7&5Xp{Z5n_z~ej`55Q&`k}I#X;Q%Pkz583?^WCbf ziS_Pl7e?u;9OiQoudBn!Ssn$iR+GFmhTezckA#5^Gs41@hJl(~;?V(60;{fXm8n;& z%KUo(zD_pQxS~3%x7Gjm0Z>j0j8syO7Tb18M|h_8Ukrfq?*gBoT9PG-Iq*rwKc~t3 zpXZ+*{{JQa-n97u_Ay$>{dVej1s(WKeghr&MqVGN7VjiZje$dk9^OAGGs$?bU%pev z{-r*LIF?uH)TEEQ-EUO3sQ*O%eWCUb6p|OxXd$ySuG2d;CYKwu#FFy@dd6@=ksJ_T%sN>p7G+lKvfAiGTa5#9zHrHG21gXn3cNEj@4x5>E1!YW}Q5 z4+nptE}x?Q{Driiqj~(@BYs3&%2#qYh;fsAAwT!jbCv)3*7jGC@Nv-p)$GHmd_Tc& zr}AH~|G(IgU(UzPk7HTTW5~Hp0QimUEJZc;=L^eTq;LV^EW~byfTIQ&depB9Z$&_8<-vKhX!D<>5g@^Ym zPPD|(Xg~m0;GlQ_-Vq84#=a^iF`NrA!-NEJWl|@R1>6Z4VJvdvZ~3_ic6R%6PUx{l zh#$y)Mbd?2ite$bO{({S1lCOHAJjPk4p9#BYHP_rcaxsr0jB6>niP^KD2KIm!XU88 z=b|vrfl0{Z+k}qk-%-g4gan|QbF)dbcqS|p8YC5E_$?Vj38p1xIq@J4n#2$fR4<#m zM%uZCET`6qUGW&2LVv%JlIPYMaZqwPqKr8Kad5W)80X|g1g+EX_C|OaPx+`kNHfDB ztDCbNYnzpqkatpKm(rNoZJe%aILcKX4t1tZdkTXrg_qie ztIow}kzY<)Pa-#Q)r+z2dPX)2!g>?Vs@mKpmtau|m@F_n2 z4ja)Yi?U)!h9(S));pivga}?<&_)43*fnc#i56t5_bTEOa8)e&0qe(GHoxq|Y&(&P zDeiiGi8R!{s~#o( zHNpAS!dv>UE6t;M;2CIHXIZK(NShKqgS2SKv5+bw`$*hyEgFrwaJn#Nzw+Bon7Erv4ZxYB=bJ} z_%2hekw=4C+4%0eQ03NqkCOlsZ7$d0F>INt6_@}$e}xD+2p3$;w;j5AAu)F>kAVm?U6kv<8n6_G!BX^3p>FX9 z5dT~jCVY7$3TMBB7PF>%UVUeUoC~A0do9ey@48C^zAwP<*J$9C5ku>SBjlriZD`I2 zhr-!3pB86E!p1Je{;6^puW$(05*e>wLgrG5>d>MHqr2-#5CZ!eqzen1Oi;uw<@eUk zUiG{Gmd2?HE+<^;LKF#@`RAen=(Q|P+MTc`Cd#n_iHee$v4MEFBtw5Q4!|yQ+aD8q zalZWFbz_x_oe@Z^ck7aAzbPkEO8rDv)I~L?Qz;Y^`!_1bk3FdrP4ENSQGd2tDvc;e zxR9MrUhv-p0Wc?OG_q2InqCAHR45>u^nlzMfk5S=(tZ;FK}}RT(Z2*Hz#K&s)7m=Y zi?mA6F|eglk~0eHEy;PDgQD$-?^%@R)kkJp(u-=Zqj=Ddr-m?+;E=Y}GC|V#e`DidH@Ankx4Xghwt%iSpUXzhjI-9idX5 z6i){3AEn@?>8|^^H1hYg(w~SE{#AMM!<2UP9HWNG0YZ-l|XwWEGCWV)fhzwTQAMwXwm2Rz=-L zInl~{dFCQ6)b=SGW+)Vk-Apy@&p3pyxb~ArD8YB%hLWzUcLmOjR&<%xgB~+bC@8`BFXBQs|t+F z7M-RH#XzZq$wRc%*=7M-%8)Pf5dw|n@DccG)PLS#+3v8T>y;#Cy?%*pO;`@p4;;q0 zP&36hL4Bqb<8^jd`8hFZ{e(S@o2fEpS){oL_TBIAo zNw){25L44k&Ey#C|3%Day<-1H&Gx1nTlhw`tgx_~A{BuY3t5&%B|bG&kOHj{#~1)_ zlFY}Wz!VH8tP(V&nI$Ld-V5hHw(|3~Yj`&;&3(9bQ=}e&D$;2cN=coW{3#;t@PtEK z`RIoViMKZ*ut|kCAj_3V1k9wk_t)9-T=^1SBkUD1P|28_TltCTGrh-#Qt{AGWj~G0 z;{I4h{NaSrKqETmj1{C~aPdWslYN9SADPYZPY_>qBz@t2?rx>=%-f<=-s{VwLU-Pv z=YAHnGE@l?eJ$gujs?T9{3f3bhWPm-)LP}+b3dq%K1y!mIkvtFFOV)85*c>8X-_3c zUxscaNU2c&NZ*<2zrgk$qNokCnf;k-tC0_xcn%%&SSkjX;dGm0mg(}<@N#N2v7E{o zI(oRpZBdaX2%1|-2GeGUzPLKzq+uINT}u7)c4C_9Ygzo5@+I!OuBu6;moQ=lXHlRJ zt;7pGfVT{LK?iSyHiudWId9?kry4e+Q3=LU))0EhlMh)E#6;t&lvU=U zHm(cKV)=PnD+aJroEm*`{)bR*9w9A%BGF#3OaJu<3NT9i;j@Q7cfZqslq1ccW`?>a zUucgGo`33FTA7NG{YKKib9((d_G>@-Mrr(g z|9unsPyWvvpa1zcM*ZL6^c5Lb4COO!I23j-kIkYqKgjme7t+0>Dj}`QC1Uv(7nSlL zDJitWH_8_i5+;e(81f0uy3`of(1jiG5tMH+haSaQ$@96jNBh6DUA{B4O+_Sb=DLpb@U6X@XVFPrC6)BgD5~b6q zzbu_tCtEFn(->l3In%5yXKv`zSHTAtS4$`HxvrWWonP16smOEWR&yn-3@Q*mVPMz< zFoKQ-pl_HB@Mf{DL|K+J=}j=vM0@g~S<)u(0ZI|g#=eu#z^l1F2?X)camNe%HNvW@ zbeKt`wa~RwDarBYZV}m#`_VTgPRg%+l*qB<#rMg~=ai>0%NQfyIQO)nz-I3;u7{2- zuA9!`bA^B3CmrD>q>cXbpdz8M#*>afxj~Ln-;89L4bBh@yEaL^E#KPa6ANrm+I`~V zmwKYSJv(|=&vr<|80|2JxkOr3%*2aINsRH>!*)cr&NMT>;b1z)?z&Uu&z>NJJw+`k>;BqQjw@Qf9@7L`%16Ak^ES1 z0f3id(`peMB{JsykWy%Zt&N*hSIcsCL zaS?QYaj|qFpUe7K?#H2bYTI(=r6byaT_lM3-nYfsVWpHgmC-#E%0 z|I)eWEw=D#=Y7Xz(NV_L)7gBk^S_@+c{nVUG1%Z?)rh zrrPl>mX6<x9MwBN5w8S2H`ApZ%Jk9zTEfT$NAtHrOy)#7P@RxJKdsaSlh6_44G zpEnLrY1aub>YoRdVgIhZ{!XQn`jKM!mFlUmzGEWQ=3vxNA%1775MN_~_?@{xye%7H zQe$_ZKD?HL-{~$7A9jkAhrgDETcGmru{u2Z>X0#^I6TH#6Te(}ZFtOoX9||LO6|K? zplUoVYAoI-E2g6hb!ja7#l4GaeHk?rg+DYDh0n1j{905K{!tQsQIgB(KgtP9z$-L8-K0D~Q_)sL!Z-V0O@ZZPWsoIqh!-#g~0`PI%hh~xAHo=`OQ;nH` zGfNN4Pd@P}?^+XJH-8Ka)T(jWNPMhRj(8W1%uWOGaGB4sMP?%meNk*3X2Ox#lt+?M zlx!h>-e|uii<&g)C<8C5u`J_x_3u;*8@QF#9YI;Jf(O7Mab9ws_JOne9}Z5JYARb!7^(Ut~t`r@(k8ed7=*Ec=J^l6K<{ z5tS`Dwu4fn*S4r^svw^Gl$*O%u0@?!O+urHJK`H7Vi}E@J~LHg@Gr3qkc7{}X<8UO zW6Kk*%XLnbNTv9uHiJeRZH>jV@QuwR`QjT}>_-n|rbI9bL)SQ{IuWQi3G(jo*Z7hj>38=4>@>~p>mGoOb)N(I zQ@d*bHqw0AONrle;3-60g{tB-K0>Ke5LNgRAk>`&ki=g@_?;VrZ!3$xPEejHxf>Ir z_-kB3naX19uJP9i8D<3av75(VXHt4AQ#Jk?qKjp0^C+w=Nr_*GZZd?Qe<50sb=XLe zitwua@Q*EQRNC)VL$3)&VkM?o=ryg+B9%+)Vch#bVy|CzjP9iNx|5tLvDY~NCCTVH z_L^i|89XG5y~d(1LK}jT&au}x>YIgo|85uMhQz;KWzHgkD2(l`+^mmp=CO@X%|*h$650_2uDN zmKHhm8l0TGX5B-ti8?Bu6$`y4YSW=>=ry#9%IniL^g66r*U;;i)m4Q@VB#MNk5a3| z1LAgYD|v`g*40JgcsV2x5{o&Bye8BF3Qi2hWHh(zS>~%@<~gwA|KOj?kbDK0-qJp~j1UYTL#d9(WBFRkc7Q@EUiTcvI$W@CftOr#1PcGMmot zCGt9{6d_GtBd=jNb38VgYZQ4MPOerReL3PP@FhCqA@G&jHS!vwhXbl{|B8R@Q%R6Z z=y0cse5H`%G_}SHG5J#+u+VFQGNFiq@FmjzC@Fwet+UZCWi@vYiMv9)$xgGMKIl+PEwdc>S_e z96aCf-f)!Qk^s^^*x#53`Hp$}rXkXDm``p-+2 zX-|$Y;sXk!=VQ}=j@sqSsV0{UsE$pdp6LB+S??kWUuf~SsF?&b1MQvDJ>XQE^ge{B zp5{F^Zd{20{xLKelO8KU-$Cs0A42azCGXg`MO50 z3;(&1xcE6xL7B%u($muCXVOJ3YQhvP{L(J#*6Bq66`4m~{2d@g6`Ns_^NgQN;R;9T z-$9je^}J9qW_uI}CBV;poND|IwSu#FAqY>DX!{IOHU>HCe{(4Lth(et6Q%OTM`slm zt$>LZ%FtV^@EDjVz7*>BI3FIyNXARt_SMe4@}!MLyS+6M5z`k zl?%iS8A%ic%k&9FfJB|-uUAf!u!K;V^^H`#a+4FYLP=Ht)zrqiw%~|jVv`?6lEY$F zC_kH5icv8u@_buil3-mrr*_D%EW9=L^(C05y0^e$7DSEq#m_?qi&+Rwtu7fO!D4!a zc%Mt4IlBT;nRB-6%r^@I$@vwC-Ulicj$!QLTHKXkS0lTSAHlGz#xIn3XV}%ig&r&r z=U2nUkjwQYaB2y5HSmidPxgNBtHGrvkJies7M}NYE=~*lYR^cRkURcDiZ^i!fdwzb z?VzDZe{65mhX7Q$sL$xhfkd4eC2(x_l^Bw;J(}c|Xg@FE1^San@4MlbAAgTu&tbfg zru-d4bK>7&TRJf-DrA8=ND!CwR7Mb&;5 zZ{sck3(~0Xq$#(@+V6h{hC9*62uIsi->@+Jh?+V^doUac+=Ocu7=AVq7fA|ijFQtB zUhx~$cMo44+U&dc$Z*JZg5A3qUMZtg0&RrjUaZ<@6KLV0apIKgL){(Ezm>gwt@T&R zlt1Gl`k&#JDjrE7c%ryM=bCzb5S}PTM}=1DsX*XFkyA#GT_ixLtR}bx4P*L2kJtIO zD1<^jk9~iZ3KgEEmly&Q#SK-b2&gUF8qUAfMFn9bQEar?llUnZO0-b8PUkf;C{a?2 zw!ViemMD~+^D}*35iC)tRVB$$6D(02s$M70S+GRu=Bo0lOjx3Fc#pDQbw0DO>W8q* zi#x6j2JUo#eybYF-yNy3v*>e#B+8f6sF`IYA&H920i>ra%i5DKB%Eh?tZICj9l0d$ zH-;nnBK-AIc-|oY@NJ_*Cm2y`_M8#%ED?$*(Yk(S=!KXMmx87EsK!DNAxy(X|IHl* z(*zgCWjK&jJZqx{(`ZZ+PtMwI)E7oCkXOZ3SS^;Lhv!Gu%3hRW{xOH#$1j)qRK39! zO)%>j*EG2$!x(pP_{mh_anUJ5NzCMEvF{)d?5E-*J+w#M4wXYr9DbD)Kh(uUR`^gS zUApfjO}CG`t5+{;*-QFlpuDpH|4wv$mJ!weM9Zb>#JJt zWEc)_u`I255&Nc9Bq&ZFW4OL-E`fGwz4tx${kFXH-E9_#wm!%&UawIMisRW(x*FE(@Vr<|{;~Zi>thzdA)$p;p$RbNA zpBuf(v-U=s-fu2?IpqZ{lMfrU$V5Zq{B|xnHp^mbcA}8 zn5B0CnZ{6NSr^Efm<<48m;|k$> zIiJ5D=T<{@{^5N(vUqePkOv#TspAL1C7{&V#QHj-hC>=FiMh(c4+!!+^I>!3@&l1} zb7L6aj%qAv^nf+x7o4L#ZO&-I0g}9N0!5eM*UI~BS`y>Qo zg*_FigmIty)#3tNW#VUpF?Z*>f|>+G-q|9@@SKk#C!{73V7XO^MLRmUluqnvPi_zx zt6p7IPhFwtEjeHNZ&ZCD`E#{!Q&%BiOo)PdhRQ_L8|}h&3MfXY!`xK_9R-X9x&TdX zf*vVN&h0wp8oSuf&9zuqoeiLq`Ve(WV?ntjy3xOcXPe*}Y0V+Iu;QE5ZXCS?$aXmt zXJhho&V5gwJZ#pqvurF%%mM8z8oxC)wRJ#E7J#I8L}1)Es@)uc_3zZ;KKej~F-QRz z*bqZQ%#Kn!rPw*)Op`G_tV$%B(h5XL8UN-n@Xs(h3kW+mDQ(A5}!7F7e{3-vO-XNYnOn9 zN~qa52B}|ce_M*rCCau$K#{FI5J>{9E%DTc*NyiKFge6U)z!;=%+^|DoRu;lNh;|K z&(X>IqA4#_e!cO{sVY?HbmiPWh$Bn3N;%tDsclqofA>LIJXrN3EZQ~BfoEzBVH|tu zmOHwX_)f~E5J+fMNdrpq3y<>~k1be(dE7@&F|dO~U86W84=M4Iuw(&3`m&_1NDusB z3y_S~AS^Py1eJ?+E3YqN<*S-10VwufPlt;g0vzEdM>tD_fU8G*O-jTw2MmF8T>HWz zKyH21Q~noaINx6a6mUvl#H8F4IzN&n69OZ!XSnJug-}pn5-Q>LBB2c&knnb6{p}{y z7zf0EXVEH=4Ix+a`QJSvt>Gf7X4hv}$<3lUQsEN|oVl+orae^%3$Za(!zsgLl(&ez zPM(x7#%{UB!_t^YKeBL=s^A3r{DXh%qAV)yR<6Q}lBKpwviwd8fY24y&;pQHG*3nW zgx@Q5Q8YPHDIAf{!}KZ0I6jOOO~HHds4>#mn)nnX7VOXjB;fL0bSgg})}XOX{S;ZY z%ge3u`}-U>nM^)AZ{oSFy&DgFUo9j!(JR3 zn~)a7@S(xaAD@8RP?)&zRNPP^DM`AXe7Am~HoZO-;{_cwWLD%bZ2TCxOXluBItA)a zZwu1GV=;nv1IgDh5cTPL>hmsD8cKKF7Vjv&@vusqf z9*iHHYz0lIa}X|eOeC^hfu4`QL%lPK4#PA*&nI zmnE9@QL9LP(p!U^_1q9}$r50tCP6`CR`O#`c>2QoQIM4W&eRaKNlrlj4pC@DU*

  • &_RfYMil+yr-Ft)f10jZfg`dF8uAYQE768z3k^ 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 literal 0 HcmV?d00001 diff --git a/packages/webcontent_converter/screenshots/receipt.jpeg b/packages/webcontent_converter/screenshots/receipt.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9148e278b1c80d794ad8bde956570afecfc092ce GIT binary patch literal 1301880 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%0D9r?4mE1?|?Pyhy2tb+pGv_WO>JRE~tVt%`0>b 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

    6}|{@Pck30K&v8%}rsSz^MGdj_4d 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ξsRuT(mFhL{ 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%0DN3N&0qPdA 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⪼Sv7ptuFv?0*@~_ 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

    r(HmedE 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 z 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 fKJo8!;qSBYKVN+Cb4d8 Date: Fri, 9 Dec 2022 15:25:51 +0800 Subject: [PATCH 09/12] =?UTF-8?q?fix:=20webcontent=5Fconverter=20android?= =?UTF-8?q?=20=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebcontentConverterPlugin.kt | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/WebcontentConverterPlugin.kt b/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/WebcontentConverterPlugin.kt index 5824e9ea..24db57da 100644 --- a/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/WebcontentConverterPlugin.kt +++ b/packages/webcontent_converter/android/src/main/kotlin/app/mylekha/webcontent_converter/WebcontentConverterPlugin.kt @@ -93,13 +93,22 @@ class WebcontentConverterPlugin : FlutterPlugin, MethodCallHandler, ActivityAwar webView.evaluateJavascript("document.body.offsetHeight") { offsetHeight -> print("\noffsetWidth : $offsetWidth") print("\noffsetHeight : $offsetHeight") - var data = webView.toBitmap(offsetWidth!!.toDouble(), offsetHeight!!.toDouble()) - if (data != null) { - val bytes = data.toByteArray() + try { + if (offsetWidth != null && offsetHeight != null) { + var data = webView.toBitmap( + offsetWidth!!.toDouble(), + offsetHeight!!.toDouble() + ) + if (data != null) { + val bytes = data.toByteArray() // saveWebView(data) - //ByteArray(0) - result.success(bytes) - println("\n Got snapshot") + //ByteArray(0) + result.success(bytes) + println("\n Got snapshot") + } + } + } catch (e : Exception) { + print("\nerror : $e") } } } From e59627bc932c5262949f504c1ba62641cb0b3fd0 Mon Sep 17 00:00:00 2001 From: chenliang Date: Mon, 12 Dec 2022 13:58:00 +0800 Subject: [PATCH 10/12] =?UTF-8?q?fix:=20webcontent=5Fconverter=20iOS?= =?UTF-8?q?=E7=AB=AF=20top=E6=9C=89=E7=99=BD=E8=BE=B9=E5=92=8C=E9=97=AA?= =?UTF-8?q?=E9=80=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Classes/SwiftWebcontentConverterPlugin.swift | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/webcontent_converter/ios/Classes/SwiftWebcontentConverterPlugin.swift b/packages/webcontent_converter/ios/Classes/SwiftWebcontentConverterPlugin.swift index 80846434..5ea21b71 100644 --- a/packages/webcontent_converter/ios/Classes/SwiftWebcontentConverterPlugin.swift +++ b/packages/webcontent_converter/ios/Classes/SwiftWebcontentConverterPlugin.swift @@ -33,27 +33,32 @@ public class SwiftWebcontentConverterPlugin: NSObject, FlutterPlugin { } self.webView.isHidden = true self.webView.tag = 100 + self.webView.scrollView.contentInsetAdjustmentBehavior = .never + // self.webView.evaluateJavaScript("document.body.style.margin='0';document.body.style.padding = '0'") self.webView.loadHTMLString(content!, baseURL: Bundle.main.resourceURL)// load html into hidden webview var bytes = FlutterStandardTypedData.init(bytes: Data() ) urlObservation = webView.observe(\.isLoading, changeHandler: { (webView, change) in DispatchQueue.main.asyncAfter(deadline: .now() + (duration!/10000) ) { - print("height = \(self.webView.scrollView.contentSize.height)") - print("width = \(self.webView.scrollView.contentSize.width)") + // print("===content===: \(String(describing: content))") + // print("===webview===: \(String(describing: self.webView))") + // print("height = \(String(describing: self.webView.scrollView.contentSize.height))") + // print("width = \(String(describing: self.webView.scrollView.contentSize.width))") if #available(iOS 11.0, *) { let configuration = WKSnapshotConfiguration() configuration.rect = CGRect(origin: .zero, size: (self.webView.scrollView.contentSize)) self.webView.snapshotView(afterScreenUpdates: true) self.webView.takeSnapshot(with: configuration) { (image, error) in + if image == nil {return}; guard let data = image!.jpegData(compressionQuality: 1) else { result( bytes ) - self.dispose() + // self.dispose() return } bytes = FlutterStandardTypedData.init(bytes: data) result(bytes) // UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil) //dispose - self.dispose() + // self.dispose() print("Got snapshot") } } else if #available(iOS 9.0, *) { From 9fffcfe3d501ce7a32b70b9484d7330e0cec2d34 Mon Sep 17 00:00:00 2001 From: lianbq Date: Tue, 31 Jan 2023 17:54:43 +0800 Subject: [PATCH 11/12] =?UTF-8?q?fix:=20walletConnect=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E4=B8=BB=E5=8A=A8kill,=20=E5=A4=9A=E6=AC=A1=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/src/walletconnect.dart | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/walletconnect_dart/lib/src/walletconnect.dart b/packages/walletconnect_dart/lib/src/walletconnect.dart index 4edbebfb..795e5b52 100644 --- a/packages/walletconnect_dart/lib/src/walletconnect.dart +++ b/packages/walletconnect_dart/lib/src/walletconnect.dart @@ -15,6 +15,8 @@ import 'package:walletconnect_dart/src/utils/bridge_utils.dart'; import 'package:walletconnect_dart/src/utils/event.dart'; import 'package:walletconnect_dart/src/utils/event_bus.dart'; +import 'utils/event.dart'; + const ethSigningMethods = [ 'eth_sendTransaction', 'eth_signTransaction', @@ -637,11 +639,21 @@ class WalletConnect { // Close the web socket connection await _transport.close(forceClose: forceClose); - - // Notify listeners - _eventBus.fire(Event>('disconnect', { - 'message': errorMessage ?? '', - })); + try { + if (forceClose) { + for (var key in _pendingRequests.keys) { + _pendingRequests.remove(key); + } + _eventBus.destroy(); + } else { + // Notify listeners + _eventBus.fire(Event>('disconnect', { + 'message': errorMessage ?? '', + })); + } + } catch (e) { + print(e); + } } } From baacf9b44589dbe186f5ed0d3ed13890d2cd5d50 Mon Sep 17 00:00:00 2001 From: lianbq Date: Fri, 26 May 2023 18:38:08 +0800 Subject: [PATCH 12/12] =?UTF-8?q?wechat=5Fassets=5Fpicker/wechat=5Fcamera?= =?UTF-8?q?=5Fpicker=E9=80=82=E9=85=8Dflutter=203.10.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.all-contributorsrc | 186 ++ .../.github/FUNDING.yml | 12 + .../ISSUE_TEMPLATE/bug-report--bug---.md | 45 + .../.github/ISSUE_TEMPLATE/config.yml | 1 + .../ISSUE_TEMPLATE/feature-request-------.md | 30 + .../.github/jetbrains-variant.png | Bin 0 -> 181839 bytes .../.github/no-response.yml | 11 + .../.github/workflows/issue_labeler.yml | 17 + .../.github/workflows/publish.yml | 22 + .../.github/workflows/publishable.yml | 29 + .../.github/workflows/runnable.yml | 71 + .../flutter_wechat_assets_picker/.gitignore | 77 + .../flutter_wechat_assets_picker/.metadata | 10 + .../flutter_wechat_assets_picker/.pubignore | 1 + .../flutter_wechat_assets_picker/CHANGELOG.md | 532 ++++ packages/flutter_wechat_assets_picker/LICENSE | 201 ++ .../flutter_wechat_assets_picker/README-ZH.md | 366 +++ .../flutter_wechat_assets_picker/README.md | 419 ++++ .../flutter_wechat_assets_picker/_config.yml | 1 + .../analysis_options.yaml | 216 ++ .../example/.gitignore | 41 + .../example/.metadata | 10 + .../example/README.md | 3 + .../example/android/.gitignore | 11 + .../example/android/app/build.gradle | 78 + .../android/app/src/main/AndroidManifest.xml | 39 + .../ExampleAppGlideModule.java | 8 + .../wechatAssetsPickerExample/MainActivity.kt | 7 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values/styles.xml | 18 + .../example/android/build.gradle | 31 + .../example/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + .../example/android/key.jks | Bin 0 -> 4255 bytes .../example/android/settings.gradle | 11 + .../example/assets/flutter_candies_logo.png | Bin 0 -> 133916 bytes .../example/ios/.gitignore | 32 + .../ios/Flutter/AppFrameworkInfo.plist | 26 + .../example/ios/Flutter/Debug.xcconfig | 2 + .../example/ios/Flutter/Release.xcconfig | 2 + .../ios/Runner.xcodeproj/project.pbxproj | 575 +++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../example/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 128 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 83320 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 756 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1762 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 2942 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1221 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 2856 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 4675 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1762 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 4211 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 6924 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 6924 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 11364 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 3862 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 9166 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 10274 bytes .../AppIcon.appiconset/ItunesArtwork@2x.png | Bin 0 -> 83320 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 26 + .../example/ios/Runner/Info.plist | 58 + .../ios/Runner/Runner-Bridging-Header.h | 1 + .../lib/constants/custom_pick_method.dart | 20 + .../example/lib/constants/extensions.dart | 32 + .../example/lib/constants/page_mixin.dart | 88 + .../example/lib/constants/picker_method.dart | 397 +++ .../example/lib/constants/screens.dart | 64 + .../example/lib/customs/CONTRIBUTING.md | 21 + .../lib/customs/custom_picker_page.dart | 137 + .../pickers/directory_file_asset_picker.dart | 1576 ++++++++++++ .../pickers/multi_tabs_assets_picker.dart | 554 +++++ .../example/lib/main.dart | 69 + .../example/lib/pages/home_page.dart | 142 ++ .../example/lib/pages/multi_assets_page.dart | 97 + .../example/lib/pages/single_assets_page.dart | 48 + .../example/lib/pages/splash_page.dart | 55 + .../lib/widgets/asset_widget_builder.dart | 93 + .../example/lib/widgets/method_list_view.dart | 98 + .../widgets/selected_assets_list_view.dart | 150 ++ .../example/macos/.gitignore | 7 + .../macos/Flutter/Flutter-Debug.xcconfig | 2 + .../macos/Flutter/Flutter-Release.xcconfig | 2 + .../macos/Runner.xcodeproj/project.pbxproj | 644 +++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 97 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../example/macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 111864 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 11470 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 2216 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 24825 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 3176 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 54259 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 5687 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 339 +++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + .../macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 12 + .../example/macos/Runner/Info.plist | 41 + .../macos/Runner/MainFlutterWindow.swift | 15 + .../example/macos/Runner/Release.entitlements | 16 + .../example/pubspec.yaml | 29 + packages/flutter_wechat_assets_picker/go.mod | 5 + .../guides/migration_guide.md | 162 ++ .../lib/src/constants/config.dart | 185 ++ .../lib/src/constants/constants.dart | 12 + .../src/constants/custom_scroll_physics.dart | 46 + .../lib/src/constants/enums.dart | 45 + .../lib/src/constants/extensions.dart | 35 + .../lib/src/constants/typedefs.dart | 51 + .../asset_picker_builder_delegate.dart | 2201 +++++++++++++++++ .../delegates/asset_picker_text_delegate.dart | 846 +++++++ .../asset_picker_viewer_builder_delegate.dart | 1029 ++++++++ .../lib/src/delegates/sort_path_delegate.dart | 78 + .../lib/src/internal/methods.dart | 15 + .../lib/src/internal/singleton.dart | 24 + .../src/provider/asset_picker_provider.dart | 457 ++++ .../asset_picker_viewer_provider.dart | 48 + .../lib/src/widget/asset_picker.dart | 272 ++ .../lib/src/widget/asset_picker_app_bar.dart | 234 ++ .../src/widget/asset_picker_page_route.dart | 77 + .../lib/src/widget/asset_picker_viewer.dart | 116 + .../asset_entity_grid_item_builder.dart | 71 + .../widget/builder/audio_page_builder.dart | 185 ++ .../widget/builder/fade_image_builder.dart | 24 + .../widget/builder/image_page_builder.dart | 187 ++ .../builder/locally_available_builder.dart | 122 + .../builder/value_listenable_builder_2.dart | 34 + .../widget/builder/video_page_builder.dart | 227 ++ .../lib/src/widget/gaps.dart | 75 + .../widget/platform_progress_indicator.dart | 50 + .../lib/src/widget/scale_text.dart | 48 + .../lib/wechat_assets_picker.dart | 19 + .../flutter_wechat_assets_picker/pubspec.yaml | 22 + .../test/delegates/builder_delegate_test.dart | 83 + .../.all-contributorsrc | 99 + .../ISSUE_TEMPLATE/bug-report--bug---.md | 45 + .../.github/ISSUE_TEMPLATE/config.yml | 1 + .../ISSUE_TEMPLATE/feature-request-------.md | 30 + .../.github/workflows/publish.yml | 20 + .../.github/workflows/publishable.yml | 27 + .../.github/workflows/runnable.yml | 68 + .../flutter_wechat_camera_picker/.gitignore | 76 + .../flutter_wechat_camera_picker/.metadata | 10 + .../flutter_wechat_camera_picker/CHANGELOG.md | 184 ++ packages/flutter_wechat_camera_picker/LICENSE | 201 ++ .../flutter_wechat_camera_picker/README-ZH.md | 129 + .../flutter_wechat_camera_picker/README.md | 141 ++ .../flutter_wechat_camera_picker/_config.yml | 1 + .../analysis_options.yaml | 229 ++ .../example/.gitignore | 43 + .../example/.metadata | 10 + .../example/README.md | 16 + .../example/android/.gitignore | 7 + .../example/android/app/build.gradle | 77 + .../android/app/src/main/AndroidManifest.xml | 53 + .../ExampleAppGlideModule.kt | 7 + .../wechat_camera_picker_demo/MainActivity.kt | 5 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values/styles.xml | 18 + .../example/android/build.gradle | 31 + .../example/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + .../example/android/key.jks | Bin 0 -> 4255 bytes .../example/android/settings.gradle | 15 + .../example/ios/.gitignore | 32 + .../ios/Flutter/AppFrameworkInfo.plist | 26 + .../example/ios/Flutter/Debug.xcconfig | 2 + .../example/ios/Flutter/Release.xcconfig | 2 + .../ios/Runner.xcodeproj/project.pbxproj | 583 +++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../example/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 26 + .../example/ios/Runner/Info.plist | 51 + .../ios/Runner/Runner-Bridging-Header.h | 1 + .../example/lib/main.dart | 91 + .../example/pubspec.yaml | 18 + .../lib/src/constants/config.dart | 140 ++ .../lib/src/constants/constants.dart | 13 + .../lib/src/constants/styles.dart | 11 + .../camera_picker_text_delegate.dart | 178 ++ .../lib/src/internals/enums.dart | 8 + .../lib/src/internals/extensions.dart | 28 + .../lib/src/internals/methods.dart | 26 + .../lib/src/internals/type_defs.dart | 60 + .../builder/tween_animation_builder_2.dart | 41 + .../lib/src/widgets/camera_picker.dart | 1399 +++++++++++ .../src/widgets/camera_picker_page_route.dart | 77 + .../lib/src/widgets/camera_picker_viewer.dart | 486 ++++ .../src/widgets/circular_progress_bar.dart | 120 + .../src/widgets/exposure_point_widget.dart | 110 + .../lib/wechat_camera_picker.dart | 9 + .../flutter_wechat_camera_picker/pubspec.yaml | 18 + 248 files changed, 21117 insertions(+) create mode 100644 packages/flutter_wechat_assets_picker/.all-contributorsrc create mode 100644 packages/flutter_wechat_assets_picker/.github/FUNDING.yml create mode 100644 packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/bug-report--bug---.md create mode 100644 packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/config.yml create mode 100644 packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/feature-request-------.md create mode 100644 packages/flutter_wechat_assets_picker/.github/jetbrains-variant.png create mode 100644 packages/flutter_wechat_assets_picker/.github/no-response.yml create mode 100644 packages/flutter_wechat_assets_picker/.github/workflows/issue_labeler.yml create mode 100644 packages/flutter_wechat_assets_picker/.github/workflows/publish.yml create mode 100644 packages/flutter_wechat_assets_picker/.github/workflows/publishable.yml create mode 100644 packages/flutter_wechat_assets_picker/.github/workflows/runnable.yml create mode 100644 packages/flutter_wechat_assets_picker/.gitignore create mode 100644 packages/flutter_wechat_assets_picker/.metadata create mode 100644 packages/flutter_wechat_assets_picker/.pubignore create mode 100644 packages/flutter_wechat_assets_picker/CHANGELOG.md create mode 100644 packages/flutter_wechat_assets_picker/LICENSE create mode 100644 packages/flutter_wechat_assets_picker/README-ZH.md create mode 100644 packages/flutter_wechat_assets_picker/README.md create mode 100644 packages/flutter_wechat_assets_picker/_config.yml create mode 100644 packages/flutter_wechat_assets_picker/analysis_options.yaml create mode 100644 packages/flutter_wechat_assets_picker/example/.gitignore create mode 100644 packages/flutter_wechat_assets_picker/example/.metadata create mode 100644 packages/flutter_wechat_assets_picker/example/README.md create mode 100644 packages/flutter_wechat_assets_picker/example/android/.gitignore create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/build.gradle create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/AndroidManifest.xml create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechatAssetsPickerExample/ExampleAppGlideModule.java create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechatAssetsPickerExample/MainActivity.kt create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_assets_picker/example/android/app/src/main/res/values/styles.xml create mode 100644 packages/flutter_wechat_assets_picker/example/android/build.gradle create mode 100644 packages/flutter_wechat_assets_picker/example/android/gradle.properties create mode 100644 packages/flutter_wechat_assets_picker/example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/flutter_wechat_assets_picker/example/android/key.jks create mode 100644 packages/flutter_wechat_assets_picker/example/android/settings.gradle create mode 100644 packages/flutter_wechat_assets_picker/example/assets/flutter_candies_logo.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/.gitignore create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Flutter/AppFrameworkInfo.plist create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Flutter/Debug.xcconfig create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Flutter/Release.xcconfig create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.pbxproj create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/AppDelegate.swift create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Base.lproj/Main.storyboard create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Info.plist create mode 100644 packages/flutter_wechat_assets_picker/example/ios/Runner/Runner-Bridging-Header.h create mode 100644 packages/flutter_wechat_assets_picker/example/lib/constants/custom_pick_method.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/constants/extensions.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/constants/page_mixin.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/constants/picker_method.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/constants/screens.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/customs/CONTRIBUTING.md create mode 100644 packages/flutter_wechat_assets_picker/example/lib/customs/custom_picker_page.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/customs/pickers/directory_file_asset_picker.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/customs/pickers/multi_tabs_assets_picker.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/main.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/pages/home_page.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/pages/multi_assets_page.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/pages/single_assets_page.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/pages/splash_page.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/widgets/asset_widget_builder.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/widgets/method_list_view.dart create mode 100644 packages/flutter_wechat_assets_picker/example/lib/widgets/selected_assets_list_view.dart create mode 100644 packages/flutter_wechat_assets_picker/example/macos/.gitignore create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Flutter/Flutter-Release.xcconfig create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/project.pbxproj create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/AppDelegate.swift create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Debug.xcconfig create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Release.xcconfig create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Warnings.xcconfig create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/DebugProfile.entitlements create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Info.plist create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/MainFlutterWindow.swift create mode 100644 packages/flutter_wechat_assets_picker/example/macos/Runner/Release.entitlements create mode 100644 packages/flutter_wechat_assets_picker/example/pubspec.yaml create mode 100644 packages/flutter_wechat_assets_picker/go.mod create mode 100644 packages/flutter_wechat_assets_picker/guides/migration_guide.md create mode 100644 packages/flutter_wechat_assets_picker/lib/src/constants/config.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/constants/constants.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/constants/custom_scroll_physics.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/constants/enums.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/constants/extensions.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/constants/typedefs.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_builder_delegate.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_text_delegate.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_viewer_builder_delegate.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/delegates/sort_path_delegate.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/internal/methods.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/internal/singleton.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/provider/asset_picker_provider.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/provider/asset_picker_viewer_provider.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_app_bar.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_page_route.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_viewer.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/builder/asset_entity_grid_item_builder.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/builder/audio_page_builder.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/builder/fade_image_builder.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/builder/image_page_builder.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/builder/locally_available_builder.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/builder/value_listenable_builder_2.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/builder/video_page_builder.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/gaps.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/platform_progress_indicator.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/src/widget/scale_text.dart create mode 100644 packages/flutter_wechat_assets_picker/lib/wechat_assets_picker.dart create mode 100644 packages/flutter_wechat_assets_picker/pubspec.yaml create mode 100644 packages/flutter_wechat_assets_picker/test/delegates/builder_delegate_test.dart create mode 100644 packages/flutter_wechat_camera_picker/.all-contributorsrc create mode 100644 packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/bug-report--bug---.md create mode 100644 packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/config.yml create mode 100644 packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/feature-request-------.md create mode 100644 packages/flutter_wechat_camera_picker/.github/workflows/publish.yml create mode 100644 packages/flutter_wechat_camera_picker/.github/workflows/publishable.yml create mode 100644 packages/flutter_wechat_camera_picker/.github/workflows/runnable.yml create mode 100644 packages/flutter_wechat_camera_picker/.gitignore create mode 100644 packages/flutter_wechat_camera_picker/.metadata create mode 100644 packages/flutter_wechat_camera_picker/CHANGELOG.md create mode 100644 packages/flutter_wechat_camera_picker/LICENSE create mode 100644 packages/flutter_wechat_camera_picker/README-ZH.md create mode 100644 packages/flutter_wechat_camera_picker/README.md create mode 100644 packages/flutter_wechat_camera_picker/_config.yml create mode 100644 packages/flutter_wechat_camera_picker/analysis_options.yaml create mode 100644 packages/flutter_wechat_camera_picker/example/.gitignore create mode 100644 packages/flutter_wechat_camera_picker/example/.metadata create mode 100644 packages/flutter_wechat_camera_picker/example/README.md create mode 100644 packages/flutter_wechat_camera_picker/example/android/.gitignore create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/build.gradle create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/AndroidManifest.xml create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechat_camera_picker_demo/ExampleAppGlideModule.kt create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechat_camera_picker_demo/MainActivity.kt create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 packages/flutter_wechat_camera_picker/example/android/app/src/main/res/values/styles.xml create mode 100644 packages/flutter_wechat_camera_picker/example/android/build.gradle create mode 100644 packages/flutter_wechat_camera_picker/example/android/gradle.properties create mode 100644 packages/flutter_wechat_camera_picker/example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 packages/flutter_wechat_camera_picker/example/android/key.jks create mode 100644 packages/flutter_wechat_camera_picker/example/android/settings.gradle create mode 100644 packages/flutter_wechat_camera_picker/example/ios/.gitignore create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Flutter/AppFrameworkInfo.plist create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Flutter/Debug.xcconfig create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Flutter/Release.xcconfig create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.pbxproj create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/AppDelegate.swift create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Base.lproj/Main.storyboard create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Info.plist create mode 100644 packages/flutter_wechat_camera_picker/example/ios/Runner/Runner-Bridging-Header.h create mode 100644 packages/flutter_wechat_camera_picker/example/lib/main.dart create mode 100644 packages/flutter_wechat_camera_picker/example/pubspec.yaml create mode 100644 packages/flutter_wechat_camera_picker/lib/src/constants/config.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/constants/constants.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/constants/styles.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/delegates/camera_picker_text_delegate.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/internals/enums.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/internals/extensions.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/internals/methods.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/internals/type_defs.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/widgets/builder/tween_animation_builder_2.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker_page_route.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker_viewer.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/widgets/circular_progress_bar.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/src/widgets/exposure_point_widget.dart create mode 100644 packages/flutter_wechat_camera_picker/lib/wechat_camera_picker.dart create mode 100644 packages/flutter_wechat_camera_picker/pubspec.yaml diff --git a/packages/flutter_wechat_assets_picker/.all-contributorsrc b/packages/flutter_wechat_assets_picker/.all-contributorsrc new file mode 100644 index 00000000..af1bc33f --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.all-contributorsrc @@ -0,0 +1,186 @@ +{ + "files": [ + "README.md" + ], + "imageSize": 50, + "badgeTemplate": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg?style=flat-square&logo=github)](#contributors)", + "commit": false, + "contributors": [ + { + "login": "AlexV525", + "name": "Alex Li", + "avatar_url": "https://avatars1.githubusercontent.com/u/15884415?v=4", + "profile": "https://blog.alexv525.com", + "contributions": [ + "code", + "design", + "doc", + "example", + "ideas", + "maintenance", + "question", + "review" + ] + }, + { + "login": "CaiJingLong", + "name": "Caijinglong", + "avatar_url": "https://avatars0.githubusercontent.com/u/14145407?v=4", + "profile": "https://www.kikt.top", + "contributions": [ + "example", + "ideas" + ] + }, + { + "login": "SchnMar", + "name": "Marcel Schneider", + "avatar_url": "https://avatars3.githubusercontent.com/u/12902321?v=4", + "profile": "https://github.com/SchnMar", + "contributions": [ + "bug", + "code", + "ideas" + ] + }, + { + "login": "ganlanshu0211", + "name": "ganlanshu0211", + "avatar_url": "https://avatars0.githubusercontent.com/u/9670379?v=4", + "profile": "https://github.com/ganlanshu0211", + "contributions": [ + "bug", + "ideas" + ] + }, + { + "login": "JasonHezz", + "name": "JasonHezz", + "avatar_url": "https://avatars3.githubusercontent.com/u/15358765?v=4", + "profile": "https://github.com/JasonHezz", + "contributions": [ + "bug", + "code" + ] + }, + { + "login": "yanivshaked", + "name": "Yaniv Shaked", + "avatar_url": "https://avatars.githubusercontent.com/u/13107481?v=4", + "profile": "https://github.com/yanivshaked", + "contributions": [ + "translation", + "code", + "bug", + "maintenance" + ] + }, + { + "login": "avi-yadav", + "name": "avi-yadav", + "avatar_url": "https://avatars.githubusercontent.com/u/7314430?v=4", + "profile": "https://github.com/avi-yadav", + "contributions": [ + "code" + ] + }, + { + "login": "Letalus", + "name": "Letalus", + "avatar_url": "https://avatars.githubusercontent.com/u/41230136?v=4", + "profile": "https://github.com/Letalus", + "contributions": [ + "bug", + "translation" + ] + }, + { + "login": "greymag", + "name": "greymag", + "avatar_url": "https://avatars.githubusercontent.com/u/1502131?v=4", + "profile": "https://github.com/greymag", + "contributions": [ + "translation" + ] + }, + { + "login": "NaikSoftware", + "name": "Nickolay Savchenko", + "avatar_url": "https://avatars.githubusercontent.com/u/4218994?v=4", + "profile": "https://github.com/NaikSoftware", + "contributions": [ + "design" + ] + }, + { + "login": "KosukeSaigusa", + "name": "Kosuke Saigusa", + "avatar_url": "https://avatars.githubusercontent.com/u/13669049?v=4", + "profile": "https://github.com/KosukeSaigusa", + "contributions": [ + "translation" + ] + }, + { + "login": "Jon-Millent", + "name": "三闻书店", + "avatar_url": "https://avatars.githubusercontent.com/u/17584565?v=4", + "profile": "https://github.com/Jon-Millent", + "contributions": [ + "doc" + ] + }, + { + "login": "didiosn", + "name": "DidiosFaust", + "avatar_url": "https://avatars.githubusercontent.com/u/15895051?v=4", + "profile": "https://github.com/didiosn", + "contributions": [ + "translation" + ] + }, + { + "login": "ConanXie", + "name": "xiejie", + "avatar_url": "https://avatars.githubusercontent.com/u/10040846?v=4", + "profile": "https://github.com/ConanXie", + "contributions": [ + "bug" + ] + }, + { + "login": "maxzod", + "name": "Ahmed Masoud ", + "avatar_url": "https://avatars.githubusercontent.com/u/47630729?v=4", + "profile": "https://github.com/maxzod", + "contributions": [ + "translation" + ] + }, + { + "login": "luomo-pro", + "name": "luomo-pro", + "avatar_url": "https://avatars.githubusercontent.com/u/41097395?v=4", + "profile": "https://github.com/luomo-pro", + "contributions": [ + "a11y", + "bug" + ] + }, + { + "login": "paigupai", + "name": "paigupai", + "avatar_url": "https://avatars.githubusercontent.com/u/44311361?v=4", + "profile": "https://github.com/paigupai", + "contributions": [ + "translation" + ] + } + ], + "contributorsPerLine": 7, + "projectName": "flutter_wechat_assets_picker", + "projectOwner": "fluttercandies", + "repoType": "github", + "repoHost": "https://github.com", + "skipCi": true +} diff --git a/packages/flutter_wechat_assets_picker/.github/FUNDING.yml b/packages/flutter_wechat_assets_picker/.github/FUNDING.yml new file mode 100644 index 00000000..e9124e95 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: ['https://www.paypal.me/AlexV525', 'https://www.alexv525.com/wechat.png', 'https://www.alexv525.com/alipay.jpg'] diff --git a/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/bug-report--bug---.md b/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/bug-report--bug---.md new file mode 100644 index 00000000..4976f9a7 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/bug-report--bug---.md @@ -0,0 +1,45 @@ +--- +name: Bug report (BUG模板) +about: Create a bug report helping us fix it. (创建一个 BUG 报告以帮助我们进行修复) +title: "[BUG] Error with something" +labels: await investigate, bug + +--- + +**Describe the bug** + + +**How to reproduce** + + +Steps to reproduce the behavior: + + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. Error occurred. + +**Expected behavior** + + +**Screenshots (If contains)** + + +**Version information** + +- Device: [e.g. iPhone X] +- OS: [e.g. iOS 14.7.1] +- Package Version: [e.g. 2.4.1] +- Flutter Version: [e.g. v2.5.0] + +**Additional context** + diff --git a/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/config.yml b/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/feature-request-------.md b/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/feature-request-------.md new file mode 100644 index 00000000..1af355e5 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.github/ISSUE_TEMPLATE/feature-request-------.md @@ -0,0 +1,30 @@ +--- +name: Feature request (功能请求) +about: Request a new feature that the package didn't include. (请求一个依赖并未包含的功能) +title: "[Feature] Request a feature with something" +labels: feature, await investigate + +--- + +**Version information** + - Device: *e.g. iPhone X* + - OS: *e.g. iOS 14.7.1* + - Package Version: *e.g. v2.4.1* + - Flutter Version: *e.g. v2.5.0* + +**Is your feature request related to a problem?** + + +**Describe the solution you'd like** + + +**Describe alternatives you've considered** + + +**Additional context** + diff --git a/packages/flutter_wechat_assets_picker/.github/jetbrains-variant.png b/packages/flutter_wechat_assets_picker/.github/jetbrains-variant.png new file mode 100644 index 0000000000000000000000000000000000000000..150246099be31b4d86bbc3e5f6fecda202af809b GIT binary patch literal 181839 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ĩ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

    `}UL=(0{IZgFB1swu^;+YaoL@%)bYd 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

    c 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 z zCv&XFbE4x7Ea}bF>)agtOStRYxLJ5mhxG(8*Zwk3KE}lgQ$QJ;Jf~#_(5V4(+_?aU zC@jELf2NEr5n5X0$oUvG;PEsO=)6UU$=dMi_af^J!Sl@HC%tgby~ zSa2woz{KB9)tJG2%@U-(EJ<@2By^AJ!|yNGTlZDC^s9B=e!uh>NbYRe5lyTDZ}Or^ zCnp+1QWRYk#!moWvAXYGJi#`7f!%4tbgAOjhS+@g6646Zwa2G3c z1zs#k&v^M{wi-B(k69R?Qf^es_Sbaw1sU-?In*8dvZTb>f?R{p?Z z?%luX&ja>DH`(62Y+fD5`|Rh4=78_#F7=$hlZ*OYCS9%HBC({pxK`ke_#3lc0DyA? zOZ1K$2PpDpxd1)pWg&cpJUS)AyhXMUAY<#fk{Ct z=f;f#hs+?$iXW+EpX>+(HWU!pDuYMoaVfLc{8kynIQDA3J_0}B+Iox_sXphSzF1rv z+dPQP(X4I5lx=Y4#wm#bp6dmW#hs7i!eA;)o8+lUjG*+PoaD1-;kG`0F$`hrSFP5n zcBw-|z>FZ@XMKwIFXlG1L`n$Yvi8<`^#^XGJR5d&qh5C1KnVfUvf0FIHFuL@NCGAm z9+LH^Mm3Wi+rJW?+xVIeSBxMcr%U*LNSn@&7>Tk*(j9roJlxgXw*qAg^0GkTW_UjUT$BrpZk zg}L2|tAzW~^7Gcl`@A4u7yC(1u zwY2MFq?Zp#cKZNSlsMrC-e*T&jqdNh4t#I&aAyodSBNaCn$LvEiU4a=IzpAoUHREIb`-$wA+1Zt=6aH1LlU@rXK)q;G0)4*HA}4-- z+bzorFu!ysIrNYDYT5GLJMp_m1f63ne^&JN)v_UrX7!~slEIc%dXK)&hm042I9*?ZaG_t6~3!WmYnNk!iokr=F4 zG8*SC;iK8kTIUi+Kr8$c4&yK49~U^6+T*WpWap}aT@)SJ<1F0VJwz&cmK!W@3{^I7 zPWYCG5pR8c>Z{dY9ikdI{$+(vB^L2WcrWBf&%(2}6jqdu=H1IV@(b@?&rgqPWu_$g zX1Z>K0(_BrSt(A1kD5+cZp?77$jNHceS~n?Hi`Ns1=J7YJ5xI?tYUnv1i*H!(OV7I7q8mXx$9n!KfKt0M30Z~GU4N2*)0hf1#+qvsU_h~%V@$jx)VEj%wP#H$b-9i11&!g;TI zvjfUFNb~kQ*;OU3-%9NT81I4a?ZkapNY0aj|BWua5GnhEE~PX4(s7vqO`_ny1D|^t z8K->=4e71ca@^2^Q8alqkq;z0p5s6H+QcL`&~|^Cl|KD{eA#PzOyh*kOSvnR_23F{q$M} zh!7VA!m#4}b$Pv;S5>!@03|d5;D_mW-9E%MNGDOccIvmQ^;oFK@nPX@cOsU@5FkFfGQAi&*zVhaW^9s$pEN&PCqvbWoj{Yni%tUF+2 ziyN7F{*h?EUcVHIaCdp5hcGOQI7jA+X`n^}D6@V5BpdAoK^l<&)rlFnerUd%+%oAP z{D5eDki862UOqb>0@T4ZZ<3W29@3C(Q2#KDoRl7EtGV*8Ux|cKF%jU2 z&v$4QhN8(i+L|%AN5ADzam+Aoq24!ZuRv(%X{_=gKm==)ibaqPgr7}=G-tbPfFx@o zu15b4)!EaIBq^ZZIc=PNAMAXuiPh2XUw+N(UWujWGv1+3MamwP9?=i`I`nJ(QnTK~ z+6%qqIA!45S_n8}q9B3j+aoq9p~DN-&EZ`!(^OG!FVw6$zL3B@C2G!go+<+~Gpu0b z9oeeD4%|+BB?;K~KJuUc>6sfKJNcMK?V%sI7}j+lma$A^wTYf)6O83fhO_O^HT#a5 zX+eD_;2M3j=G3M^moIA4`(I#86+E$HvCcV8n4k!u4jjj3GI(sDkXr};*6C+vaZi~QBc9MuU?092 z)_VjYK|WuBO9YZUCR^M8*+7rb9XedzVqp1o-;AxRHWV1faf0{B*J&lbCnM7_!Jms% z9%&X?KR=rSFzfl?EZ(u2f;{(bde8HlRA50z4db9_TMwe+a^CjLMQ4Iwleb&pFVXg< za(3-;TlFh6de62=i<_;;N-&bT+-hO-?k}U~T^6g-ME^rtj!NC_by$)qGHziJAh3z! z%a3h5*_$rIFG`YCXI3-=!)Mk&FsUtTkDND%c3A+bpLv6$2EQ zOk#bDXp)M*%u=D$W|_fVFpy=U828jIh(&~KD$mC#`d{*s#HpXFz&VWj`bTZ-Y6F3J z8;U{!&s<|G{5I9t=n97%lPmkD`xn(0wjm8}8sl6!;XgjlxgRhZnE_n3bJ1Q^;1g;DLmcYZ>MSe*v@UlY6VvbY(ya|Y7^?}Q(T zAh<4XB*87zMiiZQ52VW%HMg_R;oMosb=%^C&Gd6)5LVts1ju;TeUmsM32f*Vn zptM~(l{M4u&DX` z6!TFN>5W3#+R5uOBsZKS$c9T|4CZ?=1%uW-r;qsXO&vT6BuB4E>2}obr5DJhUb=7! z2v|rdkN=Rm&m0#6|JzxJNXyz{6FOL*zhk?=s=| z*A>6td5SAUAoomBH2j8 z@R=MyIXK`xmcENKs$EExN76za<71CgrfF`$EpP7-0MrH|LvreO{j5I?9+q=KvJ$gO zThoDcbQKgmP)`IYn=bJ{wg89hJy0Q~*oB`5^xEK3q7>|aR}Qz?yHX#2`lcXJ)R-=!>p-kNIS+ zefV(Acb>ahBy3OZq+^gKhWQ%9PH;_Wq#0J3&-0|bJ^$M#^Uh+{666NpC>0ZUhJVnG z6IAVXIU0e#>j44?wc1eA!C3`!i}HlMkbh;1gYUdUS3*x?WvnR_E*uoqqr7tc_xe|= zQnBw$d(slJZbY!sb*bVjNAnnIavsR;|6klkl)SDHO47}|%od77r`Hx++a7S0Z0>qw z{~LIfIQB-N%XOhU3AiFAV88aaC z@DJa3GEwxum-BmjN&IaHYT{^FuX*_bJJe%>l}ut?ZrTo#kRefa$=7Os^Ix8H5KQ6W zqi;5|?C_raOy(8FnRDIy(*CUDspB|y>go8|0nfJYJEi%J^178I1dzrhHl=YetykSs zJ1wNe86KUp-dGig{%pzygI#uaG(Ah)3Xi|8JE_ z)qO4yA~_%Rcqd!5WXgiv>-@};OC$QBUzbIPv)!MpK`d)e<9XmlDdmWo;%83!D^;IW zzW`P;g6hf#kJ7*)y; zp7Z)QpCP@}CPH4?G_Mbt8<~9?BJ2ys-h1f#({mGYr>8ILyDj<^&*L98<)9Pu%IIUK+d7Ki{@nj z5XKtJEMF*4aUu=bO#hchEugUL0eLWYOTER`7B@fmT9ISUPsxHGx(=L4fuoP3HY?Uj zq?K}9Q#N-7umA8cxaX{M_yPFZ773DddJywsv1R^(qWzjjj+GK(a@yCY{tcvNlIC)K z64tjH#YAb)-)HYKD|6uqUKw-*XuRB6MiDUwXt?$7=zU}m3{A3=1ywf^ir)3i2?)fc zS^1NLy`fNcPlD6=HfapbhKe7FAgTlSCPKjDVe~hnq|OeK6-I*8?7ACzBCnXm+QG6= z{V)y=KZT{|CD?@P9ZHreilee>TY2xE<{$}61r(uafh#Y{M;Yb}(3lfy@^|1_H8L4= zWb!|N{_mEH>npy<;~#V!t(guHaDOswYS#ELIcd)dMe(QNQb%3XI09nUY}uYOrzpD7 zKNdr*F32>6$noSnesR20rP)Y;q36t147}0E`+7yd7kmH|12}|q=_X6^+~@~N-j|9#~>o1+nn|1!y7}90G!i%#3BmJqDlCVMo!&i6@En0i8kNXacSOHHaJM~jh zO_p8CL3C#A=l3KflR=Lr4G0UsdYHq*HRZv@G7814P0>f4(7Qxl*&6|Ac=jw{Of9=1;}* z6}+hruWdzj<q@K~$BdH7IVVH~g*W z7BuC}PW*}t>9I6Dv~jb2F)m^FiH?)E4GTt+xN*v6ZeffDN_1F)cp>|qe^A{A%58F(D?kWG0uzXWMZU_&(D0Dq<0@?W|c zaOf5ct4gy>ShXXRq>1Q-Va|IOXUu(10nuka3(P7ggA-K52_n4KG(lnB`ZRAmKRn1s z7(L6<^`q-TNG5-(d!Z(lGk-YZj%W{822)D;n+58x|M}p~_Vo^yX*cIj z8%Qbm_laV)d4aybf#@X;`FCV!P_k6V+Xc>HNi9ltVzB1g4BL}ydT@rZHW}2a&8Dgjpq!|3@nZr@||A+Ew(ur4M{^JmrDn|IrYo9`m=0xk_`eW^ZYC|vI5Ho^* z3L6{WYh=HDgGg8h8e6lHNrg?+rH#Q;>g7N9iK>5OGpNU*sxnRsh%I0H0YzPKa3u5k zGCG`@a8FuY(zMjU2)H!ggTB%Mjq>TAo*-H0dy={TNJXiy2%b5W-qtgBbH-cxKEn5d+1A?yKRFTe2sEqG%$Bs-(J#83K@@n^XB}PmIlIR`39CR zTk`u(P&9Riqd{dWaA+UXEv|T0Vy^hcirgb#8p1C=optNsAJ}1KK?knWW1lKcXq-!4`&*g4?r{s>mWp7NTML-F-@3$W{^smnx%^gUGQ(QwDtcZOl6nV>*61&GWqanS|;;nlgLo18Wi8eBAz z@0Up&m?iTXND*kqDt7`AfH0v0ga;HrTyiEDRN1~G3&<#y$sPuI@n#sZNuTRYt`g6@ z-V()NHuKjgWC_jmEM;xl3oOFV)te0As;w6XE&Lm4=!e2YgF8QQ3X|m+U5xn~$Mn(h zirkq9+8mqCofpi@sfvCD+#9;>y^V(8(C>meCk|VNO7&Zn-XtkSw~0aXEOQvx>fhGX zkX-@Q!>auLpN!pe(N6YW@vZ~&*Fkjc!#%*~SmMYpV2qV(8U7dmbe}_+Hw?WxZynHg z_6YP6b0tYKYLHe7sd;jcHQ4q(=^SLv`=sb!I_MF~J^pcgpD1J}g8jsNc?Bhj3JoHdD})Lb>m z1Bds3L5S#RWjOx++9O!Ch6=+vM~@rC^X$RtJ|;iOf#f>yE#Bi+7%D~ic0|_4^ErD% zGGN`LaDB)3ebDPwuQDCF}vaE9|Khp!wAqp5w3@_Rp9l2yL zX1UD3K9eOMs#jf1z=JZ#laVCUmfm%)+9>4IVaHAVi5RfyPI6LALQToLtv#zskODH) zriD-Ww77BY#vTX1Q6GoW9#;r03EgPvj?` zZ@aX76FAfEtb+<#^T!aS62Au;uVf$ar?uS*N2sx@KWQ8mdZt+X^tYWv;o0wlq{JV@ z!8A6OL6NZ#+q!nkwhmNLE@i9u(^nhtJUA{DQeR4gnDyw*TT#YhbGLCq=(vTgAXMOH z4h130fdy*O$eHC2W1x(Q&e9sR^WG&+%i6lc!C@bdBIaET zyfxZY$~gz`BcnEBD=%$vxI4?;uFb`n&B66~u^yUgQQEEMFBMFRrF!=5>eDCi_+CSqJ5%O4bUi~x)5>f@veqwG!Rg-B6w&m2OiE(di zyKTvjNmEtq+f)x9U%M`2q#YD2^pJBM%D%0Rc}JEbyPvfER?VpDvzU9ta9TDbm@b(6 zWN~}lPE-eTA@tj{dfGB>F|!!IS5zLAy`?QbFEn_4?wf_%{}6M)(K28V=iFI14@_d6 zu%l2w&D#nr!Fu^*WHiXcrHX#{&!1mkvnpFJWTPdZE}mMRVi`zXQPxpgA+K%&t;Zm>}Rq9EB^9Awjvk8I&5;nY=RD?~JC}g+5|S?*VZ6YC_Tz#;!Zi@$%OAF~&Z2>4$kEVGqWUcrIW93AU^2?JXST`A)5;(N zb8+zWQBW$!QW%8Ihi6OAhZk^9odIw%mguil>H1#Y^{UnI^`+NRRXr|xV4N$5QeHBx z)zUESSAgd$X;G_tB6rsCp|D1wBZW^gMSzWkfNSq`8%R@?5P&Qqjw@v>RsPNCl+DJV z;0}I`kMeo19&eZ3QYIMNApC03DLGADEYBDxwvms}mkWkq>>rjEPqWPwQuoCoP3) zj4!l==R1>z9%*r|L1_`4kDmYTCP(KCsGiqJOm`*WQHsrOuk1*Qn{AgeiC(Dja)qJg zRNbEv5PoA^CDs;|3qPL#WY&OKd&ccDWB>C7@1I0X-N^@23-MaNF z%E>#B5AvUhC}nur6Ov*Q{bcs82$iyE+jo~!o{<0gPiZx*N+0&8KSAYkN0H5e4B&V) z9mwgjHinPM#%2`DYO7qMGQyk%#9GuAE)4~YT zQm=pWVD;mh!xhhI{dV*9|5o@%F$D)cTW^xqxQFH z=;gzLGIM@@AOh{xSbs*j7x)ATqpF_EZ*yBE6qV5y?6DnXx6rmt0P&30bhbSK5~RV= z^K2N2bl|l6?%*5^`ku?iEzHMNLSXNKL;2K~{CG!fdXtAL9R#(7ef2? zkbuC3RTj;{Qy3~K#7(l=;-7C6x&_ifP0jfjK`p4@H~s8YP^}Li<5aHYz>qN;SF^_V zdj7K}jAG|S%II*9ueI*V&LU>v_5#nxWe^1p;=Nq z#Z-Sw>jME4zt)a{{e1&4WeVfsvZ;x^S3f3Z*w?50J{aW!#_OB|3DhH+HgPXQYrQ$B z>q=5Rb+=Dc_0ULb$bDqDb-DwFY})7gd<^3s&|&P`>h{88p6euZz=6j88>NT%vb$Q7)@aj44;ZN4Au`sD8z~*uyo#^xu8qwMP;ds zW94|`KrUKy$@@}pwII16#;iweUn&M;W2NG!{BA$h5VssIuvmRX z??Y)snVkRnx?66cxV02W5O`bb3b;YoC)(ny zKQFLbyQv=Nk^G0EXxr)MEqrw5(z-5u1M1Hq`;!?uL%3Sy)f8dY)qQDt%uffn zAyWWApb7L@LEtg#nL7$N52!yFyicckos(K<4qXHOhgjQ8NpJnW+P}feph#(3?=|r{ z1qCzyxw$X7!?+CokRe&*GNVsWbPQ4?+WI$lh?UMFDX%=DjHM1oz=O0fa*m%LdS@wy z`}o;j%pw*=0WO~m{N(j*`7uCmJL+K^JTjH`f@kKWum6#aU4y;p^deh{IA${2707Xc7E*?-GQkeHC!nj+ zDBF&hV8uGe;$w_jbKs*L`Am;$#{PgA!)M(6N3nY%mebjd)0e#F4ZDG+=oud)V?|zrn z7YCtSppmEqkPczdkyYL#>2wmLA&l*Nsinj7Q62(fjx>4*E#AkzW5?`sbWlDV=0A4q zv%MZI>+kO;z#*>*$=qt9S4?efF=}a-NDfi%L0`OXI#ig9BQQ=FUg(xUZ@dCqi%0(j z{HfmA03Bu#hZ5B88TYJwV=0j19h6^1w{t$9jE#%?dSoo{g!NOw1HET%qy!ZTn|*=> zojtcuou~ITC3j!!#L|-Nc&4^)Qk%uzyBBv|-Mjy~*m;rjpYvY-`XaJl-N!3|Ru!Op zOPXYaYRyHpD%OyTjHN0+7hyMYP^FGbxl~_F`iAglNt--}W#6FJJcLRNj;x!zvBojX z8?~9uOM0Jks=#yjaxTM|XU8^<{M|_LHtZ^GSm~Mo-|!3ZI+1qHCJyEp(!Yhw6i2xkOJJ>6$5Vq9FAOU~HJ4G|AZ z+{Uw*@Sh!X4=BqI8S6FNJ9XX*Y_x2%weqqjt8M4Fo2GDdN;FBy7E4tRwo(s>j(=R3 zf{bF&Hm7M59PSog=3{t5t}LLtyJ3+6{J#D5LnNoPWWoB9O8mEuxyO7;!bS?U-fLAP zk#tTmuZ9CnG<`+Wjt~^Fb6`b@*2LxMEdUac9`xA0*Tpaz)tv2zm^0{~d1}6sxxdpR z)y(-#UJHp(F(Pxap+BAbu`4D4)q7;>bthZ06voQCn_co`f&PCNKO=mUD3{nSFPOSY zU1GKt8fp*X`=RK%;wJ|ZQ6HnsKmqEJz@l9Fj2eK` zdNyWXZlk)AkQV#&efb_-L)_Rf5{k~@it(hLvXNfF|$D6V}nv z;q_t&v3@qWIjO8?&n{L8<18^N7E79CKD6=(DWcqUmur?%L{QI&RY1=?V7-l_O|=M| z=IBKAUj6ezh%+1a+@mvy8g#Vc%#+G2C2Ai2=?=3J3v>MaxhASHsF=<%g|AQWZ!}^$ zRkH5D++046Ek9cJ{j{($`^jU)Z`t?dWYzd4$MIhi3&^{R@Df(_fEDK4HEkYwfJInd z7$bBN6&40jD<7r3kt(yK8u^K$6lDD?)=0~{d7~L3GCN87OuDqh&-`_GrVQBB-PAau zRlbP(=3SLjS9<%%8KhpS4Tok~SzhtYt7S|lr)A$t^2sl$1B8N{f+gSGx_(|BP_4qL z%;UC+)XT0znh)EWX@3{Bb2eO@MY;H{sAOp3!ryLI5fH3%DTn#>fHwMNN_J5q#v;;V z?2hOt?d7fyH1Wx6*j8Cd;(!Td>XdmxBSr`Rdj@z@sQ+mO~R<Y#4+h!8f_xu>U9KVO#VJD={k+b< zNogCt0bX7*fy1Q^OJh;sSiT4WSWr!~BwnaVIGqGj?hxd2PC12_L%%W(2=CKq9_-_EE!&A`qSRF%=rGWr-()PyllHB-;cdr*sZ>c-V{ z>5*?cXH2T9vd@CUvulv)kg(-vt%!CE2tLe9SZSMIo~4n(m14G|<~7T>e$CRt6zLa! z?PTm5o<}^xH#f^F!9TqzT4#+vyEwKe5!$~Hr0s+&qkY}R@wrLza@&k3#zggP(@&o2 zx0{1yI4u+|1sEp7%&cE=Z%1P(NOE;y7f>(0sH=-EMx>)gNjY{3g6_D@5$a(Hvw;iE zZ5|1z%`eSrpXCGWvLDu$B)c}zj_CwG^aVV#HuSt`~Geea^(e*3xcL@0@ z$TKy=lxPolBqHJVl<^$kjyclzH8WEQ*B{I+=6T5hW&47xzt{IY0o@ucUNB1Aa@dq7 zWjSGU@gSJbS|!E>J0kSr60>T2`$qN}kT!@{crW z7j2TvJE}c4DpHu3m>mr=#-hMgA6U4NUgkeLe4?{c_cfYWjMR#n@ReS2_8odLb{j8G z{Z-xxo4&kB{9r%`IbLj{}SGR=?R^vosl#?`UBh#~xwn%6Ys zDZn<4!Gg5cnRy44<_<}P#j_LzN`I_3>0ncu0v4wyXKDEE_F0j;b9IK!nx&sPeKC#u6bxdPH#>feO{eE^;so~eL5-(2JmO20Z!TQ<5sWv|k&nhB&@`uYIjcr(z|+ zrMcuO<6B8{fUy_&-Tf;YquFDa6FL2_)YrlVWj~_u%%H}KABxn;jyaSZvnn}tU=B4j zzh;9)4K;7y7_oK_^P<(yKXr~R_s_fwls87tt;=mIx=7X?5u&Z_HN=@35_y?|pMst< zNZ2_dDsdMAJB(xjYx1Z4uHmBF`15{A^!(&|bQ+fW6kHI=%R-bx-P(}LW7aGxA2|)m&2fjHam^4 zhJWgoA`P{SiIavl-HJr7Gv(7GhcB{T)yumM7v*g}{&Waz zzsUG4oT)bOdj&T!$dhW74#OECJpv}Ey5TLzp4I7vN~F6iU_CO7rGZU{$2#`TVO<|6 zXWS%rGH%s}bqtXeKA?uA{})@8aS1W5dbrtVV%4(-^oxC&hhc6DnKZuP*ZsO;t(SfR zxi8W_kgOt=*1Xc2uw*v#u|7{>L5-vU*p70A3$mG$i-^1`>D=R>rnHDm{h`R8y14#T zN-aqq;yQORN*8Qw>r+p~^qS`!u}Rp$@dk5SMJ2b6UnOf=WQU}X5MrCmt7;Wpz1!B+ zsDJcxjbtKr-OT89w(W%37eHp~F_j?9#z*+=+D__fI#2b5-bIFSCjU@&H+g;5kU~Qd zF&_W77E=>%kP)Rbz{=L9Y6#L!0?6OnFa+JuLJu<9eSGh-s#Gn0YOY8Maq;mmTy%7a zvq!43YWx8(3K7%4%215UyWs&}^pLLAR0*b2g{yf^_h3ubE}-BZI3nfmqu@p4FW|h* z-vHl9U*)+iQ}1K0hy1?H)|r8A^56(;HwrZ{o>e3z81)~&Be2iMh% za}k|jp}sLD_(klmgS*m5ZET#}W(!|iMo1_(HX{7lN+E-5>W{IoSi_wY zKbkq! z8>~;UCo-5YG1b&DcSQ1;QrytGyPd46fBm*4`uL94^2KHa89@$?9cLy$X(c0`^=ksl zxw1d*o=nw!5Mx)4BrVPdvz4?=UW>9ybD0fF(*9=uwrU8j-Kh_R*JU3q@506hnOObOA&{mRHO!>3K37Oc^t-+aaTS{%>(rbU0a z{Dd@=e}7}qXXPB^9SmU1*%MK-rGtoidX;Z;SvNTq4WjIC+f$Zz6J`N37gS>U#l%F( zGS{EqE?RnpBH|e_FL&+axc}%%Y>D6M@0jYygc+q;V7WDw1UmxSH9XWB3BQU~1GlDBmwpJaOtB|OO_R)>>PG~ZJ?0;H*6vmvM zL|Nx$i2yiW8IGXK<(5x=DUuBEwjSt$&y_5dDP>EibH34c{?w1JYK9{>(H0jF!w?}X zT9YC?s$5tn4#O{vq zN0rjT5K5~e=s>yK9Bd*Y)Lg;y*7~QMr6$f~YRIfrig);ezj^l!aAJ&mv1sGkwD3s- z>~g@o%u|9%>50(G=_hChnlp^OirtN_GX264MV?6MS$7HA8@T5M8yD4DwYa58bFSFc zZ`yV5Kp_Mb!6dJ{N{ZXx9A+l*JcQGiqn4k&7?El>k1%V7mu}Wl4I#Vq{@s-BUZ)VW z$71avB|mEPE!|j`Hwgtf7rpI<9#2$%O+XC|UG~ZYsDVp%ADuEZE3}R|qlzy!)=i&N zDxg$)@b3rOXfN7W)((BL;p;<4oGY9}F?Eewo#-7J^tl}e68sq7yo9aHydam!jmUGk z*w<*TiC}VeH4;SiXoZI+kTS!0OC2Mul#M2Q2WkxAI^lpdVedo?%d*~x5r!zwfDZcp zN`=Fi5zI}i`^L{_+|_SKB-+cw$as+@+5Me4v13&)Pe$i`hTw}Y`3*42kTgH?n_==o zm`(B~^0LI-P+1XC&J2h8vZ9C`8L*UU^YOihBsasbnI#UcaREIO@R=*eIXGtT2ntM^ z@IF^#>%|I(6u#l7NRb4bOlg8Xd-)IE3Ak5nyw(&LeOEdB^vC5`BoS#_G;}>JYT7=i z_Xhw<<}j{z!KXdVeKF>+k`NCCEb3Qnnk!E;SQ#=}(yU}bO=i?5>%g~tY^EAvHKd@| z?{#8!fIex%hh(h2T7Vm|@8u_HCEEG`Hj{`P@XWy{8M)3@*N>Kcq1m|FVq+|HsBYyX zLgH*6S>YZ|fw)>H=p2mRpTS3s1(%|>^98v7fexVO6VT`yFq!xt4*uZIivIewB(ERe zmW2I_*k1DFvsgxPK}!(d?@UTTL4Z@wbojs$rHj3h(<_Ru*2}Wamu!fTZ44#htMlSF?n?uQ01(aK95RyNj6f z%`~Lo;#vhp@qPfv3C#oxc8-6IF35b*whdCSSALtPL8fX_cnICI{rQq+y+I0I8*J@D zlfN5-#(I)>d*g?VhE$k3bC$C7xK**t6A7z}b|FR(j)~@xj5Xi0?ZjV=+c**pLwB<- zsO#$|ffxNjlRl?(Po}6{vr=b6=Hx~k?fbm%OEyLx!0R?i#`D8C1qJ5U`K8vIZNj8) zYY>|vyg&Y>zuYm$%io)JshRRjoXEdigub2^JvO+bbE<4_k6b1>56C-q@)+=Mqydh@C#s#>f1MY$l=%i6h$%zl(7h9(z(5aHFq?s3}RzBSviISUIBB1B12U zS33do23*C&xk^yrK&I^9LU)sRl2lxY$}v--n~z6u6Ry(>_rU5uf5|x{wJud+RwYvQ z@PQ8Ho+v;E;1`oL%ZR_<$sCh$wKOo4E=E~nJl2+_jrdC_#UMuYwK^SrhL(TmvQe@I@z5v)8hoed@$tWmM^A97^ zn|wE)YMH(m<2l^Zl(UmlTAXE{kqi{N3!Vos<+GFMav1?d{06}pbAA48j{S7FL74FE zapBu3!{KPw30SzZ?GHsbZX?WW{G`V?RkaHb59#qqPfO2}qt9jq^y%CLs-br%+K-&y z`%&Pv=ILgsm()?7$Je`LN@hqAya#V&NAyXi#<`e&a;J${|pUq*Anl zIv&r*AHmNP5&lM9O{La)^w}PqYN__6s+#3zs4QBWD{8^iZ6dc9v zX3Ywa)mQKvbwOI%+Ptw2p)bsH{GMpIJ-I?lPCg0%M}Jt!hI=bBC33m3qQvC&6)F8L zkMW?_D`qNUYOy*puG*rdlc&rLG*-&o2V?XHc_O6M#D=3BDY>WIY!y1@I$>peiy?BZ znpt^$Jy|p0E!2F5!ODzypY!QKBv#bUd;+JVD?FLlk9eP1mZTUUWe!h))CO1#>8SrO z_}7lCXaRpqufGu@`(2L=YS*v|UbxSPoD#CiIv|*eJ{fCmEd{_S*XSc)aL@wV^_xrR z&6&5_tVKmT{+t2nkb+dZ!C-fj+aP33Hp^aR_vJ`Vk52Xlr1%-lU42jpfz*&_w++9_ z3mXf$CeC_rFCDxK(C%O9eu$Wj&b)Q^3}pAflVZwJkoGp{NWskq;E`j+Xog$Ey-AA{ zOb;=(d=j8CYvgt8d}L51_k8pSYxRcjimH9DLy)>m{cav-)6M?ESI|De(8b;QDW_o4 zM!f&L?&GOG$V@8B<76hm-F{O~EtEap55*;cRb(VlsA;c+De zs`Wajwtq0Y-#Ufi(P>DcFX75*ghh+8urpF6VD6`fRJ;uN&ZN^zpP% zqurl~rXB2^Pv+B6S$w{Y&#!9Y;TiyJf!fcnI{*l|*V86Zh57;2KG3`7)#NJwfb_aq zTE~@n;3hxBGuDL=#28OF;R)%rPn5grto5c6o4E)f zRJb(hQrD=*k=mld;IV@ic)Y8WC8Xw;*K~Rx2c$aQSy}$!p5Px{dX?vmZkTSAyTI0n zAHLq&iFobl9ChQ^X@ECJPR;q&df}vcJ2ZLx9!=z=CTw-%u=)LaAN}xf_NBjf+=gUV z%v7o*1>>P1b~NXnx25O{@ajSP!q>&O=}3#6et6;Szf8g`7}IIalViEOpug+S;;zYC zBn~SqC!q7|FC-L5AWC3*`g#G#j7x*yG;Dj*OBC< zNoY^Lu+=9&Bw;UoVgDH6HJaZz^5p{nd^}p!q+3!$;>UixoH1F)4w3)7prCGV+VHg{ z*}rZ<>xallE^10f@*WVFN=7k%cFLC@w_U+HtFDr*1&e2_w{aX;C@e5#Kiy31x(Wr`PC}jxh zlT11~m2(O^?RD_>8x$Dmoe*ib;wfp-BkRD{206lu2exk@!z&lEU~b6pq6@E~TXzY@ zY|d4JKWZDLZ;cd4`dCmMZ&BiQOQkBwNAH-u?-Q|+^ZUE%x!f(3qUQs87G{h|2J8|A z;0HewNUh4@=mr@{%HxB#<3EBSo9Ykf*UsfI=xzW%VK+wKo1F}QW-Cie#n`)D4gfZf zH~<;-{3x*VYiYu=?INh7&1LIno9|YtA33V{Wd_~*wGHyBl&Rgb z1@b7y$3$L&ZG>siPw`t7yY$IbM*Z1sW}DtKK3IFE^w1$#r)9(Ti92_IDH~S$nl7c_ zKu{y#X8tgo#CloDwtAEB;YfjN-h%rgb->$sBZO#`4()#URdZ}fa9zgbmJTip3$w@&%~=avj@@X!`U z(WZCxk4_~x?S6j10wlB+rWyrpjS}c0CJ)FiiH`z4rD+8E@Lp~oSPJ#i9UITQ^=Bff z9~sKWzD2H&Soss}NzmE`8Uk1yq}iY_~cFo{uz61R&(B zrwXI8@cWCVP~%{K$15kKEY~8UR@nACG;OB78CY1sQ_?%)q&iQG%sE4cE76|V%+#Le z3*BQt-PqD>I5G_#KtI@0|4D&w;>NF<55@p~n#GfAxlot+hh-^uYe=z4=dcXcYPtMw z#fW(O@KwCa+N=K#UP&Zi7eZwmd4d{(cJ;J&`rLI8@Z~xJoK=2u*whP(v;}R7$I@|! zlP?fsn{nfOyTSV0=v7T{6o2TRp=ZKLNAHet55HbLKz^o?dWAz3vDsVa z7=!x!-(BY6tiY-)0=o9IT*u3+c*xH+mh6MUZTd8fg{?CGJ2R!3djn+)EtK#>&!)AE7o^3Q-PYcwLW?g<_EZYQ=AJ$N+3N7)^5@w;Hk>`p~BJ* zoBU65{4Byin+@res1O&ZE{Y-l(_~1HLR_AxdgMn6mNq>8hrD;G>Vj>cZ-pU#*uxfH zT48z48(0Q!4g;Fp{Ftfp=Pq8Py|bZ?8YsCx&FU*ZCvYHdbp39y)qDu%VasSqvsHH` z^u=S)Kn;+!ePFnkS-R_wB^*KoADSN_2Wiml?yQ`0>rPlgTJR8eYup&}~U$(589h}tX{Q+Ax3sElRQqSN2R$G#L#1{#Rw&EhH6aJQxakq@ zjaI`Do;P`N3$Mr$Q?3hQ;^Fp@G z;G>FRtz21FH;l65qVmU2XMK9iC_6cOrPgfN_%Y~p|HFR6;|jiuJH-SiykL4DxQgE3 zEIL7sV~5;>4kYQj(4t-nyUL$Q{do+AG)mZsJ6|V}5sf9-Efw+`LLVcA+U>7jAe!gF zxNmwG=kxfTCqNBSq6!ZITP- z>Npk47ke^`wg&woa{MRQ>*%NvSpk29GA!7^59ZfcIIC;sZN1B!T?_FeGYy&q|`Ed00cU~n{H`1flF{^d^&hZ8} z#;BJjG56nh{-*GgNLyK)h1cecKnGGFNzd!3T_-A{qY2Qeg+AoqhT1W&Taad=g(+P4 zU{|LaF`A!Q^uM)Dnvwi3 zhip@Nl?&+fn3B(Wbmep$E3biK2}ob90p>Qjq(=Ikw3Cb<4a=_Bu;3MpYrX! zH2zAeDL-ttQNqgzALMwk`vOiV=0BnFv%8H4x)$tWyP&xq%Wix%B(vy3lD@^q^y%h$ zA}=BJUxN8Ezkh;zJ{)|);B{P{(&8)fWaQ8(n1K=bL5h}ISZ6Nur}I$F1ke%*p|$(y zyq2C#Yq|~-o-VIf--A(S7x#;%9|`G^*tp#dFg>URDx3^HJ|$;XY}4meP_g+2ef_dP zT2^b#T?f_LO4{Ui1Gei2bi8o=w#zO?n54|wb0zyU(~}WcW3QvHRPo>o21cB{`1KGr zYzYl1d)fVRn@{n5(mO}mWdCJBasawv#V{f0S*e6TYgJjrQscjB=rJupg&in0p4_V6 z1sUz@@Q8`N5Y7G3!kGEq8y=AN@7|T&_R`hLLDCa8&K=>ZB402qPOpZiMS_}q zErsFi$UJE34{|#hE*2NvRL4rOEXGyQMJ2V`Ge+c3R3~j20#bZgfw}5cZ_eO{`U2MZ z&vw*N9#EiSy~_zNqhF=yK5O8`cRt3T_PcY-b!W<}RHYo~6V*_=E4dSKQqsbA#M&`* zQfcC_u$oHpv^?EPXUzk)racB2q=6Tx=mNDwxx-Vu<*VZ~%v*!G9GTHt^kKVFNxya67BL=J8t{c zzt_Ldd^I1`hhNxPtER{9_;ILm>)+-5*-LL}2R#vYJrZ$srd#knU}ZFCyXiSuP<~o< z8Dc)eU-!m)&eQiiyK{Ki_OsId6XWFs&+}d1f4gp?lK--(w|iQj>-?;`ng~(d@Ne0H zwI_})ulaI9<}0h^aZcd0lFOCV=S)=cye8UD3*PnPmva7(M@NnTmk~HXv>ZqXSn$2k zJFM=6^2-5@I&N9ZQft)>+fqF z{sx}USXSe+<}omq3(KQVd!(MgV#E~{Ozd8eNy9l<+5q@^1u6P@4R|k7hMXC z)Px_J7ut`guDATY;n|lP@~-FVrzri)*3Q}=-u-8Oao7D$ncpFE^V!z|M`wfns1*IN zP|EX}m_K9P)qUZ=ecv8`Jo)k2RiL$gAh6i8(T+*a=H(&h?3F)%#CZ3g73}w%C_lMK zW?He#9A()#Pw$m8FtGdt-4P(7dEQ^}_wtU~;v@S$9+>yK+SNr_>6JB)sVu+F%6)&| z2McaAReE<`5IBvnSM!ni#K-HVJTe#jxy|F{wXh@WgS+CNgzUF`*A+eG3B>MEax?@+ zLtu!8z@Ptb4=RFMBMl4wua8ZHb_|E8XK*?@f@Mk2o + This issue has been automatically closed because there has been no response + to our request for more information from the original author. Please reach + out if you have or find the answers we need so that we can investigate further. diff --git a/packages/flutter_wechat_assets_picker/.github/workflows/issue_labeler.yml b/packages/flutter_wechat_assets_picker/.github/workflows/issue_labeler.yml new file mode 100644 index 00000000..3b965716 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.github/workflows/issue_labeler.yml @@ -0,0 +1,17 @@ +name: "Issue Labeler" + +on: + issues: + types: [opened] + +jobs: + label: + runs-on: ubuntu-latest + + steps: + - name: Auto label + uses: Renato66/auto-label@v2.1.2 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + ignore-comments: true + default-labels: '["await triage"]' diff --git a/packages/flutter_wechat_assets_picker/.github/workflows/publish.yml b/packages/flutter_wechat_assets_picker/.github/workflows/publish.yml new file mode 100644 index 00000000..0f773379 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.github/workflows/publish.yml @@ -0,0 +1,22 @@ +name: Publish + +on: + release: + types: [published] + workflow_dispatch: + +jobs: + publish: + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Publish + uses: sakebook/actions-flutter-pub-publisher@v1.3.0 + with: + credential: ${{ secrets.CREDENTIAL_JSON }} + flutter_package: true + skip_test: true + dry_run: false diff --git a/packages/flutter_wechat_assets_picker/.github/workflows/publishable.yml b/packages/flutter_wechat_assets_picker/.github/workflows/publishable.yml new file mode 100644 index 00000000..ed9fd573 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.github/workflows/publishable.yml @@ -0,0 +1,29 @@ +name: Publishable + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + dry_run: + name: Dry run publish on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: '11.x' + - uses: subosito/flutter-action@v1 + with: + channel: 'stable' + - run: dart --version + - run: flutter --version + - run: flutter pub get + - run: flutter pub publish --dry-run diff --git a/packages/flutter_wechat_assets_picker/.github/workflows/runnable.yml b/packages/flutter_wechat_assets_picker/.github/workflows/runnable.yml new file mode 100644 index 00000000..a56e1425 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.github/workflows/runnable.yml @@ -0,0 +1,71 @@ +name: Runnable (stable) + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + analyze: + name: Analyze on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: '11.x' + - uses: subosito/flutter-action@v1 + with: + channel: 'stable' + - run: dart --version + - run: flutter --version + - run: flutter pub get + - run: flutter analyze lib example/lib + - run: flutter test + + test_iOS: + needs: analyze + name: Test iOS on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: '11.x' + - uses: subosito/flutter-action@v1 + with: + channel: 'stable' + - run: dart --version + - run: flutter --version + - run: flutter pub get + - run: cd example; flutter build ios --no-codesign + + test_android: + needs: analyze + name: Test Android on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: '11.x' + - uses: subosito/flutter-action@v1 + with: + channel: 'stable' + - run: dart --version + - run: flutter --version + - run: flutter pub get + - run: sudo echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager "ndk;20.0.5594570" + - run: cd example; flutter build apk --debug diff --git a/packages/flutter_wechat_assets_picker/.gitignore b/packages/flutter_wechat_assets_picker/.gitignore new file mode 100644 index 00000000..cf903bd3 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.gitignore @@ -0,0 +1,77 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +build/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +*.lock +.env \ No newline at end of file diff --git a/packages/flutter_wechat_assets_picker/.metadata b/packages/flutter_wechat_assets_picker/.metadata new file mode 100644 index 00000000..b21d287c --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 0e6818650f2e3798c342f4be293693737e35a453 + channel: stable + +project_type: package diff --git a/packages/flutter_wechat_assets_picker/.pubignore b/packages/flutter_wechat_assets_picker/.pubignore new file mode 100644 index 00000000..654da7a3 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/.pubignore @@ -0,0 +1 @@ +go.mod diff --git a/packages/flutter_wechat_assets_picker/CHANGELOG.md b/packages/flutter_wechat_assets_picker/CHANGELOG.md new file mode 100644 index 00000000..c84c037e --- /dev/null +++ b/packages/flutter_wechat_assets_picker/CHANGELOG.md @@ -0,0 +1,532 @@ +# Changelog + +## 7.1.2 + +### Fixes + +- Fix context usages for inherited theme data. +- Fix unlinked path name builder. + +### Improvements + +- Update how paths get update. (#312) +- Expose `DefaultAssetPickerProvider.forTest`. + +## 7.1.1 + +### Fixes + +- Fix `selectPredicate` with the viewer. (#307) + +## 7.1.0 + +### New features + +- Add `PathNameBuilder`. (#303) +- Add `LimitedPermissionOverlayPredicate`. (#287) + +## 7.0.5 + +### Improvements + +- Support compile on the Web. (#273) + +## 7.0.4 + +### Improvements + +- Make all text delegates const. + +## 7.0.3 + +### Fixes + +- Fix the broken semantics on iOS/macOS. (#272) + +## 7.0.2 + +### Fixes + +- Fix wrong conditions judging when obtaining path thumbnails. + +## 7.0.1 + +### Improvements + +- Support semantics with Japanese text delegates. (#266). + +### Fixes + +- Obtain the path thumbnail only when asset is image or video. + +## 7.0.0 + +To know more about breaking changes, see [Migration Guide][]. + +### New features + +- Support predictable special item display. (#264) +- Support live photos display. (#251) +- Expose `AssetPickerPageRoute` for customization. (#248) +- Add full semantics support. (#232, #235, #240, #242, #243, #245, #254) + +### Improvements + +- Improve scaling with select indicators and numbers. +- Implement the default light theme. (#234) + +### Fixes + +- Fix `LocallyAvailableBuilder` with more edge conditions. (#263) +- Fix potentially "No elements" error with thumbnails. + +## 6.3.1 + +- Improve image type determine when resolving image data.This mostly resolved the occasionally HEIC loading issue when + apps are running under the release mode. + +## 6.3.0 + +- Support for Flutter 2.8.0, also drop supports for Flutter below 2.8.0. + +## 6.2.4 + +- Improve audio item layout. +- Improve workflows. +- Indicate path getter more precisely. +- Improve Arabic text delegate. + +## 6.2.3 + +- Pass through `selectPredicate` to `AssetPickerViewer`. (#211) +- Bump sdk constraints (since 6.2.1). + +## 6.2.2 + +- Use `.contentUri` for video preview only on Android. + +## 6.2.1 + +- Migrate to `extended_image` 5.x. +- Use `.contentUri` constructor for `VideoPlayerController`. + +## 6.2.0 + +- Introduce `shouldRevertGrid` to determine whether the assets grid should be reverted. +- Upgrade `photo_manager` to resolve issues against `AssetEntity`s comparison. + +## 6.1.2 + +- Fix limited resources refresh issue. +- Update callers to avoid deprecated usage. + +## 6.1.1 + +- Handle iCloud video more gracefully. + +## 6.1.0 + +- Introduce `selectPredicate` to predicate asset when picking. + +## 6.0.6 + +- Use the correct index reference with `selectedBackdrop`. (#195) + +## 6.0.5 + +- Upgrade dependencies. + +## 6.0.4 + +- Add French language text delegate. (Thanks to @didiosn) +- Export "Nothing here." as a field to text delegate. (#190) +- Fix selected backdrop not synced all the time. +- Improve the instructions for the example. + +## 6.0.3 + +- Fix path entity nullable issues with the asset grid. +- Fix assets displaying condition missing with the iOS layout. + +## 6.0.2 + +- Expose `shouldReversePreview` for `AssetPickerViewerBuilderDelegate`. + +## 6.0.1 + +- Improve total count calculation with `AssetPathEntity`. (#187) +- Obtain `AssetPathEntity.isAll` fix from `photo_manager`. +- Documents update. + +## 6.0.0 + +### New features + +- Sync all UI details from WeChat 8.x. +- Integrate iCloud progress overview in previews. +- Change the permission from the app settings when it's limited. +- Request more assets on iOS when the permission is limited. +- Fit the assets' grid's layout as the iOS `Photos` app (reverted and started from the bottom). +- Add Arabic language text delegate. +- Allow using `AssetPicker` and `AssetPickerViewer` directly with delegates. +- Add `keepScrollOffset` feature for the `AssetPickerBuilderDelegate`. + +### Improvements + +- Items that being banned from select (reached max assets or type conflict) + will have a stronger color cover to indicate. +- Video preview in the [SpecialPickerType.wechatMoment] is completely different from other previews. +- Grid items has removed fade builder for more straight feedback after it gets loaded. +- Better interaction when jumping between previewing assets. +- Path entities list layout structure performance & structure improved. +- More precise thumbnail's option for iOS. +- Improve text scale handling. (#177) +- Reduce font size for couple texts. + +To know more about breaking changes, see [Migration Guide][]. + +## 5.5.8 + +- Fix the viewer's select button issue with WeChat Moment on Android. + +## 5.5.7 + +- Make `switchPath` method in `AssetPickerProvider` async. + +## 5.5.6 + +- Add Japanese language text delegate. (Thanks to @KosukeSaigusa) +- Fix video judge condition with WeChat Moment mode. +- Fix wrong position for the confirm button on iOS with WeChat Moment mode. + +## 5.5.5 + +- Migrate permissions check to the new API in `photo_manager`. + +## 5.5.4 + +- Fix assets reduced under the WeChat Moment mode when previewing. + +## 5.5.3+1 + +- Fix static analysis issue. + +## 5.5.3 + +- Use `SystemUiOverlayStyle` from the provided theme first. + +## 5.5.2 + +- Add German language text delegate. (Thanks to @Letalus) +- Add Russian language text delegate. (Thanks to @greymag) + +## 5.5.1 + +- Implement `RenderToggleable` to support other channels of flutter (2.1.x - 2.3.x). (Thanks to @Letalus) + +## 5.5.0 + +- Add `findChildIndexBuilder` to indicates grid find reusable `RenderObject`. +- Fix padding issue for the assets' grid. + +## 5.4.3 + +- Fix missing `ScrollController` in the scroll view. + +## 5.4.2 + +- Split `AssetGridItemBuidler` to solve the rebuild issue. +- Fix GIF indicator stretched issue. + +## 5.4.1 + +- Export `AssetPickerPageRoute`. + +## 5.4.0+1 + +- Fix format that pub.dev suggest. + +## 5.4.0 + +- Fully support RTL languages. +- Add control for root navigator. +- Improve `AssetEntityImageProvider`'s constructor and decode. +- Grab iOS/macOS thumbnail's size fix from `photo_manager`. + +## 5.3.0 + +- Add `gridThumbSize` to control thumbnails in the select grid. +- Applies a further fix to the WeChat Moment video preview. +- Fix unlimited assets choose in preview mode. + +## 5.2.1 + +- Fix WeChat Moment preview issue. + +## 5.2.0 + +- Add `SpecialPickerType.noPreview` to disable the preview when picking. (Thanks to @yanivshaked) + +## 5.1.4 + +- Add Hebrew language text delegate. (Thanks to @yanivshaked) +- Fix slide page route issue when integrate with the `get` package. + +## 5.1.3 + +- Fix not synced issue when the picker is under single pick mode. + +## 5.1.2 + +- Fix selected assets not sync between thumbnail preview mode and grid view. +- Fix wrong index displays in thumbnail preview mode. +- Dependencies upgrade roll. + +## 5.1.1 + +- Integrate `lastModified` to sort path entities by default. + +## 5.1.0 + +- Reset to the top for the asset grid view after switching path. +- Add ability to select assets in any position of the picker. +- Implement mime type for image type judgement. +- Fix disappeared GIFs indicator. + +## 5.0.5 + +- Fix force cast null type issue with WeChat moment special pick type. +- Improve app bar's type definition. + +## 5.0.4 + +- Fix path thumb data's display issue. +- Fix default preview thumb size issue with image preview builder. + +## 5.0.3 + +- Remove required annotation for selected assets. + +## 5.0.2 + +- Fix wrong viewer provider state. +- Enhance page stream controller sink close. +- Fix `dartdoc` generate issue for pub. + +## 5.0.1 + +- Fix video indicator layout issue. +- Prevent video select in WeChat moment mode for edge cases. +- Pickup fixes from `photo_manager`. + +## 5.0.0 + +- Add ability to show the special item when the device has no assets. +- Allow users build their own picker with custom assets types. (See example for custom delegate.) +- Slightly reduce performance consume with layout. + +### Breaking changes + +- Migrate to non-nullable by default. +- `CustomItemBuilder` -> `SpecialItemBuilder`, `CustomItemPosition` -> `SpecialItemPosition` . +- Abstract `AssetPickerBuilderDelegate`, `AssetPickerViewerBuilderDelegate`, + `AssetPickerProvider`, and minify the `AssetPickerViewerProvider`. Support custom types by generic type. +- The `assets` param in `AssetPickerViewer.pushToViewer` is now `previewAssets` . + +## 4.2.2 + +- Suppress deprecated usage in example. +- Improve code format with dart format. +- Raise dependencies version. + +## 4.2.1 + +- Fix arguments judging condition with preview thumb size. +- Remove common exports and split out constants. + +## 4.2.0 + +- Add `previewThumbSize` for the viewer. + +## 4.1.0+4 + +- Upgrade `extended_image` . + +## 4.1.0+3 + +- Make widgets constant. +- Remove system ui overlays update. +- Migrate files to compatible with Flutter `1.20.0` . +- Sync analysis options. + +## 4.1.0+2 + +- Ignore size constraint for image assets. +- Format code using `dartfmt`. +- Upgrade `photo_manager`. + +## 4.1.0+1 + +- Adjust AppleOS layout. + +## 4.1.0 + +- Add backdrop widget in the picker, which makes the picker more like the one in WeChat. + +## 4.0.0 + +- Drop `asset_audio_player` . +- Experimenting status bar hidden on iOS. +- Remove video player listener before pause. + +### Breaking changes + +- `TextDelegate` -> `AssetsPickerTextDelegate` . + +## 3.0.0+1 + +- Constraint dependencies version. + +## 3.0.0 + +- Add `FilterOptionGroup`. Fix #41 . +- Add `SpecialPickerType`. Fix #37 . +- Add custom item build mode. Fix #39 . + +## 2.2.1 + +- Introduce `ColorScheme` for theme details. Fixed #32 . +- Enhance RTL compatibility. +- Enlarge select indicator's size. Related to #33 . + +## 2.2.0+2 + +- Remove path entity properties refresh. + +## 2.2.0+1 + +- Fix preview widget for audio assets in picker viewer. + +## 2.2.0 + +- A brand new example. +- Add `SortPathDelegate`. +- Using zoom page transition for viewer. +- Slightly add padding to viewer's assets list view. +- Migrate elevation and color to material rendering. +- Request thumb only when request type is not audio. +- Force request title for audio type asset. +- Expose `AssetType` enum. +- Fix issue with request type. + +## 2.1.0 + +- Add present english text delegate. +- Refactored theme constructor and getter with theme capability #22 . +- Update color scheme usage for assets grid #23 . +- Update picker viewer style for apple OS. +- Fix bottom bar disappearing on apple os when it's single asset mode. + +## 2.0.2 + +- Fix audio paused accidentally when the app is launching on Android #18 . + +## 2.0.1 + +- Expose observe register methods. + +## 2.0.0 + +- Support audio assets. +- Support single asset mode. +- Enlarge preview button's detector area size. +- Fix wrong properties' usage causing infinite build when the page reaches the end. + +### Breaking changes + +- `videoIndicatorBuilder` -> `durationIndicatorBuilder`. + +## 1.7.0 + +- Hide detail display when video start to play. +- Switch to `ExtendedImageGesturePageView`. Fix #16 . +- Add fully theme support. +- Add MacOS support. +- Add delay for the first init method to prevent stuck in page routing. Fix #13 . +- Update widgets style on iOS. Fix #14 . +- Fix state of the example not updated after the result was returned without input method activated. + +## 1.6.0 + +- Support HEIC/HEIF image type. + +## 1.5.0+1 + +- Upgrade `photo_manager` to `0.5.1`. +- Replace deprecate `TextTheme.title` API usage. +- Document (dartdoc) update. + +## 1.5.0 + +- Bumping flutter sdk minimum version to `1.17.0`. +- Declare API stability and compatibility with 1.0.0 + ( more details at: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0 ). + +## 1.4.1 + +- Remove loading indicator for image widget. +- Refactor video page's initialization for ratio update. +- Using constants to store text delegate. +- Add error catching for main methods. +- Update text delegate management. + +## 1.4.0+1 + +- Fix call on null with `currentlySelectedAssets`. + +## 1.4.0 + +- Support paging assets load. +- Fix selected assets not synced with picker provider. +- Bump `photo_manager` to `0.5.1-dev.5` + +## 1.3.2 + +- Expose page transition curve and duration to static method. +- Fix theme color not passed to static method. + +## 1.3.1+1 + +- Fix `pageBuilder` null issue. + +## 1.3.1 + +- Add upwards slide page transition. +- Add padding to bottom action bar in picker. + +## 1.3.0 + +- Add iOS style. +- Add cancel field to text delegate. +- `Set` -> `List`. + +## 1.2.1 + +- Fix missing aspect ratio for video player. +- Using common request type in example. + +## 1.2.0 + +- Add text delegate support. (Also with i18n support using delegate). + +## 1.1.0 + +- Support video assets. You can use `requestType` to select video or video+image. +- Hide system ui overlays according to flag and system. +- Update GIF indicator and add video indicator. + +## 1.0.0 + +- Initial release. + +[Migration Guide]: guides/migration_guide.md diff --git a/packages/flutter_wechat_assets_picker/LICENSE b/packages/flutter_wechat_assets_picker/LICENSE new file mode 100644 index 00000000..41c29a78 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [2020] [AlexV525] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/flutter_wechat_assets_picker/README-ZH.md b/packages/flutter_wechat_assets_picker/README-ZH.md new file mode 100644 index 00000000..f0ecd6c2 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/README-ZH.md @@ -0,0 +1,366 @@ +# Flutter WeChat Assets Picker + +[![pub package](https://img.shields.io/pub/v/wechat_assets_picker?color=42a012&label=%E7%A8%B3%E5%AE%9A%E7%89%88&logo=dart&style=flat-square)](https://pub.flutter-io.cn/packages/wechat_assets_picker) +[![pub package](https://img.shields.io/pub/v/wechat_assets_picker?color=42a012&include_prereleases&label=%E5%BC%80%E5%8F%91%E7%89%88&logo=dart&style=flat-square)](https://pub.flutter-io.cn/packages/wechat_assets_picker) +[![Build status](https://img.shields.io/github/workflow/status/fluttercandies/flutter_wechat_assets_picker/Build%20test?label=%E7%8A%B6%E6%80%81&logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_assets_picker/actions?query=workflow%3A%22Build+test%22) +[![CodeFactor](https://img.shields.io/codefactor/grade/github/fluttercandies/flutter_wechat_assets_picker?label=%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F&logo=codefactor&logoColor=%23ffffff&style=flat-square)](https://www.codefactor.io/repository/github/fluttercandies/flutter_wechat_assets_picker) +[![GitHub license](https://img.shields.io/github/license/fluttercandies/flutter_wechat_assets_picker?label=%E5%8D%8F%E8%AE%AE&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_assets_picker/blob/master/LICENSE) + +[![Awesome Flutter](https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true&style=flat-square)](https://github.com/Solido/awesome-flutter) +[![GitHub stars](https://img.shields.io/github/stars/fluttercandies/flutter_wechat_assets_picker?logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_assets_picker/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/fluttercandies/flutter_wechat_assets_picker?logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_assets_picker/network) +FlutterCandies + +Language: [English](README.md) | 中文 + +基于微信 UI 的 **资源选择器**, +基于 [`photo_manager`](https://pub.flutter-io.cn/packages/photo_manager) 实现资源相关功能, +[`extended_image`](https://pub.flutter-io.cn/packages/extended_image) 用于查看图片, +[`provider`](https://pub.flutter-io.cn/packages/provider) 用于协助管理选择器的状态。 + +需要拍照及录制视频,请查看示例的详细用法, +并前往 [wechat_camera_picker](https://pub.flutter-io.cn/packages/wechat_camera_picker) 。 + +当前的界面设计基于的微信版本:**8.x** +界面更新将在微信版本更新后随时进行跟进。 + +**注意:** 如果你觉得你的自定义实现会在某些程度上帮助其他人实现他们的需求, +你可以通过 PR 提交你的自定义实现。更多信息请参考 +[贡献自定义实现](example/lib/customs/CONTRIBUTING.md) 。 + +## 目录 🗂 + +* [迁移指南](#迁移指南-%EF%B8%8F) +* [特性](#特性-) +* [截图](#截图-) +* [准备工作](#准备工作-) + * [版本兼容](#版本兼容) + * [Flutter](#flutter) + * [Android](#android) + * [iOS](#ios) + * [macOS](#macos) +* [使用方法](#使用方法-) + * [简单的使用方法](#简单的使用方法) + * [使用自定义代理](#使用自定义代理) + * [更详细的使用方法](#更详细的使用方法) + * [展示选中的资源](#展示选中的资源) + * [注册资源变化回调](#注册资源变化回调) + * [自定义类型或 UI](#自定义类型或-ui) +* [常见问题](#常见问题-) + * [Execution failed for task ':photo_manager:compileDebugKotlin'](#execution-failed-for-task-photo_managercompiledebugkotlin) + * [如何获取资源的路径以进行上传或编辑等操作的整合?](#如何获取资源的路径以进行上传或编辑等操作的整合) + * [从 `File` 或 `Uint8List` 创建 `AssetEntity` 的方法](#从-file-或-uint8list-创建-assetentity-的方法) + * [控制台提示 'Failed to find GeneratedAppGlideModule'](#控制台提示-failed-to-find-generatedappglidemodule) + +## 迁移指南 ♻️ + +查看 [迁移指南](guides/migration_guide.md). + +## 特性 ✨ + +- ♻️ 支持基于代理重载的全量自定义 +- 💚 99% 的微信风格 +- ⚡️ 根据参数可调的性能优化 +- 📷 图片资源支持 + - 🔬 HEIF 格式图片支持 +- 🎥 视频资源支持 +- 🎶 音频资源支持 +- 1️⃣ 单资源模式 +- 💱 国际化支持 + - ⏪ RTL 语言支持 +- ➕ 特殊 widget 构建支持(前置/后置) +- 🗂 自定义路径排序支持 +- 📝 自定义文本构建支持 +- ⏳ 自定义筛选规则支持( `photo_manager` ) +- 🎏 完整的自定义主题 +- 💻 支持 MacOS + +## 截图 📸 + +| ![1](https://pic.alexv525.com/2021-07-05-picker_1.jpg) | ![2](https://pic.alexv525.com/2021-07-05-picker_2.jpg) | ![3](https://pic.alexv525.com/2021-07-05-picker_3.jpg) | +|----------------------------------------------------------|----------------------------------------------------------|----------------------------------------------------------| +| ![4](https://pic.alexv525.com/2021-07-05-picker_4.jpg) | ![5](https://pic.alexv525.com/2021-07-05-picker_5.jpg) | ![6](https://pic.alexv525.com/2021-07-05-picker_6.jpg) | +| ![7](https://pic.alexv525.com/2021-07-06-picker_7.jpg) | ![8](https://pic.alexv525.com/2021-07-05-picker_8.jpg) | ![9](https://pic.alexv525.com/2021-07-05-picker_9-1.jpg) | +| ![10](https://pic.alexv525.com/2021-07-05-picker_10.png) | ![10](https://pic.alexv525.com/2021-07-05-picker_11.png) | ![12](https://pic.alexv525.com/2021-07-05-picker_12.png) | + +## 开始前的注意事项 ‼️ + +尽管该库提供了资源的选择,其仍然要求使用者构建自己的方法来处理显示、上传等操作。 +如果你在使用该库的过程对某些方法或API有疑问,请运行示例并查看 +[photo_manager](https://github.com/CaiJingLong/flutter_photo_manager) +对相关方法的使用说明。 + +## 准备工作 🍭 + +### 版本兼容 + +| | <2.5.0 | 2.8.0 | 2.10.0 | +|--------|:------:|:-----:|:------:| +| 7.0.0+ | ❌ | ✅ | ✅ | +| 6.3.0+ | ❌ | ✅ | ✅ | + +如果在 `flutter pub get` 时遇到了 `resolve conflict` 失败问题, +请使用 `dependency_overrides` 解决。 + +### Flutter + +将 `wechat_assets_picker` 添加至 `pubspec.yaml` 引用。 + +```yaml +dependencies: + wechat_assets_picker: ^latest_version +``` + +最新的 **稳定** 版本是: +[![pub package](https://img.shields.io/pub/v/wechat_assets_picker?logo=dart&label=stable&style=flat-square)](https://pub.flutter-io.cn/packages/wechat_assets_picker) + +最新的 **开发** 版本是: +[![pub package](https://img.shields.io/pub/v/wechat_assets_picker?color=42a012&include_prereleases&label=dev&logo=dart&style=flat-square)](https://pub.flutter-io.cn/packages/wechat_assets_picker) + +在你的代码中导入: + +```dart +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; +``` + +### Android + +需要声明的权限:`READ_EXTERNAL_STORAGE`(已声明). +可选声明的权限:`WRITE_EXTERNAL_STORAGE`、`ACCESS_MEDIA_LOCATION`. + +如果你的目标 SDK 版本大于 29, +你必须声明在 `AndroidManifest.xml` 的 `` 节点中 +声明 `requestLegacyExternalStorage`。 +详情请参考示例。 + +如果你发现有一些与 `Glide` 有关的警告日志输出, +那么主项目就需要实现 `AppGlideModule`。详细信息请查看 +[Generated API](https://muyangmin.github.io/glide-docs-cn/doc/generatedapi.html). + +### iOS + +在 `ios/Podfile` 中指定最低构建版本至 **9.0**。 +```ruby +platform :ios, '9.0' +``` + +将以下内容添加至 `info.plist`。 +```plist +NSAppTransportSecurity + + NSAllowsArbitraryLoads + + +NSPhotoLibraryUsageDescription +你的相册权限描述 +``` + +### macOS + +目前 Flutter 桌面版仍然在开发阶段,所以请注意, +任何与桌面版本有关的问题都不会受到技术支持。 + +1. 在 `macos/Podfile` 中指定最低构建版本至 **10.15**。 + +2. 使用 **Xcode** 打开 `macos/Runner.xcworkspace`。 + 接着根据下面的截图将最低构建版本提升至 **10.15**。 + +3. ![step 1](https://tva1.sinaimg.cn/large/007S8ZIlgy1ghw67v4yk4j30qy0b50u0.jpg) + +4. ![step 2](https://tva1.sinaimg.cn/large/007S8ZIlgy1ghw67vd3f2j30jv04zgm5.jpg) + +5. 与 iOS 一样,添加相同的东西到 `info.plist` 里。 + +## 使用方法 📖 + +### 简单的使用方法 + +```dart +final List? result = await AssetPicker.pickAssets(context); +``` + +你可以使用 `AssetPickerConfig` 来调整选择时的行为。 + +```dart +final List? result = await AssetPicker.pickAssets( + context, + pickerConfig: const AssetPickerConfig(), +); +``` + +`AssetPickerConfig` 的成员说明: + +| 参数名 | 类型 | 描述 | 默认值 | +|-----------------------------------|--------------------------------------|-----------------------------|-----------------------------| +| selectedAssets | `List?` | 已选的资源。确保不重复选择。 | `null` | +| maxAssets | `int` | 最多选择的图片数量 | 9 | +| pageSize | `int` | 分页加载时每页加载的资源数量。**必须为网格数的倍数。 | 80 | +| gridThumbnailSize | `ThumbnailSize` | 预览网格的缩略图大小 | `ThumbnailSize.square(200)` | +| pathThumbnailSize | `ThumbnailSize` | 路径选择器的缩略图大小 | `ThumbnailSize.square(80)` | +| previewThumbnailSize | `ThumbnailSize?` | 预览时图片的缩略图大小 | `null` | +| requestType | `RequestType` | 选择器选择资源的类型 | `RequestType.common` | +| specialPickerType | `SpecialPickerType?` | 提供一些特殊的选择器类型以整合非常规的选择行为 | `null` | +| keepScrollOffset | `bool` | 选择器是否可以从同样的位置开始选择 | `null` | +| sortPathDelegate | `SortPathDelegate?` | 资源路径的排序实现,可自定义路径排序方法 | `CommonSortPathDelegate` | +| filterOptions | `FilterOptionGroup?` | 允许用户自定义资源过滤条件 | `null` | +| gridCount | `int` | 选择器网格数量 | 4 | +| themeColor | `Color?` | 选择器的主题色 | `Color(0xff00bc56)` | +| pickerTheme | `ThemeData?` | 选择器的主题提供,包括查看器 | `null` | +| textDelegate | `AssetPickerTextDelegate?` | 选择器的文本代理构建,用于自定义文本 | `AssetPickerTextDelegate()` | +| specialItemPosition | `SpecialItemPosition` | 允许用户在选择器中添加一个自定义item,并指定位置。 | `SpecialPosition.none` | +| specialItemBuilder | `SpecialItemBuilder?` | 自定义item的构造方法 | `null` | +| loadingIndicatorBuilder | `IndicatorBuilder?` | 加载器的实现 | `null` | +| selectPredicate | `AssetSelectPredicate` | 判断资源可否被选择 | `null` | +| shouldRevertGrid | `bool?` | 判断资源网格是否需要倒序排列 | `null` | +| limitedPermissionOverlayPredicate | `LimitedPermissionOverlayPredicate?` | 判断有限的权限情况下是否展示提示页面 | `null` | +| pathNameBuilder | `PathNameBuilder?` | 构建自定义路径名称 | `null` | + +### 更详细的使用方法 + +我们已将常用的调用方法封装在 [example](example) 中。 + +### 使用自定义代理 + +你只能在使用 `pickAssetsWithDelegate` 方法时 +使用 `keepScrollOffset` 的功能。 +更多细节请查看示例内的 `Keep scroll offset` 方法。 + +想要了解更多关于自定义代理实现的内容, +查阅 [`example/lib/customs`](example/lib/customs)。 + +#### 一般的调用选择情况 + +你可以在 `example/lib/pages/multi_assets_page.dart` 和 +`example/lib/pages/single_assets_page.dart` +找到 `List pickMethods`, +它分别定义了多选和单选可用的选择模式。 +在选择资源后,资源会暂存并展示在页面下方。 + +##### 多选资源 + +页面中的最大选择数是 `9`,你可以按需修改。 + +某些模式只能在多选下使用,例如「朋友圈」(WeChat Moment) 模式。 + +##### 单选资源 + +一次只能且最多能选择一个资源。 + +#### 自定义选择器 + +你可以在「Custom」页面尝试自定义的选择器。 +目前我们提供了一个基于 `Directory` 和 `File` +(与 `photo_manager` 完全无关)实现的选择器, +以及一个多 Tab 页切换的选择器。 +如果你觉得你的实现有价值或能帮助到其他人,欢迎以 PR 的形式进行提交。 +更多细节请阅读 +[贡献自定义实现][example/lib/customs/CONTRIBUTING.md]。 + +### 展示选中的资源 + +`AssetEntityImage` 和 `AssetEntityImageProvider` +可以为 **图片 & 视频** 展示缩略图,以及展示 **图片的原图**。 +它的使用方法与常见的 `Image` 和 `ImageProvider` 一致。 + +```dart +/// AssetEntityImage +AssetEntityImage(asset, isOriginal: false); + +/// AssetEntityImageProvider +Image(image: AssetEntityImageProvider(asset, isOriginal: false)); +``` + +### 注册资源变化回调 + +```dart +/// 注册回调 +AssetPicker.registerObserve(); + +/// 取消注册回调 +AssetPicker.unregisterObserve(); +``` + +### 自定义类型或 UI + +`AssetPickerBuilderDelegate`、`AssetPickerViewerBuilderDelegate`、 +`AssetPickerProvider` 及 `AssetPickerViewerProvider` 均已暴露且可重载。 +使用者可以使用自定义的泛型类型 ``, +配合继承与重载,实现对应抽象类和类中的方法。 +更多用法请查看示例中的 `Custom` 页面, +该页面包含一个以 `` 为类型基础的选择器。 + +## 常见问题 ❔ + +### Execution failed for task ':photo_manager:compileDebugKotlin' + +查看 [photo_manager#561][] 了解详细的解决方法。 + +[photo_manager#561]: https://github.com/CaiJingLong/flutter_photo_manager/issues/561 + +### 如何获取资源的路径以进行上传或编辑等操作的整合? + +你不需要获得路径(也许)。 + +`File` 对象可以通过 `entity.file` 或 `entity.originFile` 获得, +如果需要 `Uint8List` 则使用 `entity.originBytes`。 + +如果再此之后你仍然需要路径, +那么可以通过已获得的 `File` 对象获取: + +```dart +final File file = await entity.file; // 缩略图或编辑后的视频 +final File originFile = await entity.originFile; // 原图或者原视频 +final String path = file.path; +final String originPath = originFile.path; +``` + +### 从 `File` 或 `Uint8List` 创建 `AssetEntity` 的方法 + +如果需要使用此库结合一些拍照需求, +可通过以下方法将 `File` 或 `Uint8List` 转为 `AssetEntity`。 + +```dart +final File file = your_file; // 你的 File 对象 +final String path = file.path; +final AssetEntity fileEntity = await PhotoManager.editor.saveImageWithPath( + path, + title: basename(path), +); // 存入手机并生成 AssetEntity + +final Uint8List data = your_data; // 你的 Uint8List 对象 +final AssetEntity imageEntity = await PhotoManager.editor.saveImage( + file.path, + title: '带有后缀的名称.jpg', +); // 存入手机并生成 AssetEntity +``` + +**注意:如果不想保留文件,请尽量用 `File` 承载中间操作,** +否则在调用 `AssetEntity` 的删除时,某些系统下会触发系统弹窗事件: + +```dart +final List result = await PhotoManager.editor.deleteWithIds([entity.id]); +``` + +参考文档:[flutter_photo_manager#insert-new-item](https://github.com/CaiJingLong/flutter_photo_manager#insert-new-item) + +### 控制台提示 'Failed to find GeneratedAppGlideModule' + +``` +W/Glide (21133): Failed to find GeneratedAppGlideModule. You should include an annotationProcessor complie dependency on com.github.bumptech.glide:compiler in you application ana a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored. +``` + +`Glide` 通过注解来保证单例,防止单例或版本之间的冲突, +而因为 `photo_manager` 使用了 `Glide` 提供部分图片功能, +所以使用它的项目必须实现自己的 `AppGlideModule`。 +请移步 [Android](#android) 部分了解如何实现。 + +## 致谢 + +> IntelliJ IDEA 的每个方面都旨在最大化开发者生产力。结合智能编码辅助与符合人体工程学的设计,让开发不仅高效,更成为一种享受。 + +感谢 [JetBrains](https://www.jetbrains.com/?from=fluttercandies) +为开源项目提供免费的 +[IntelliJ IDEA](https://www.jetbrains.com/idea/?from=fluttercandies) +等 IDE 的授权。 + +[](https://www.jetbrains.com/?from=fluttercandies) \ No newline at end of file diff --git a/packages/flutter_wechat_assets_picker/README.md b/packages/flutter_wechat_assets_picker/README.md new file mode 100644 index 00000000..461cff63 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/README.md @@ -0,0 +1,419 @@ +# Flutter WeChat Assets Picker + +[![pub package](https://img.shields.io/pub/v/wechat_assets_picker?logo=dart&label=stable&style=flat-square)](https://pub.dev/packages/wechat_assets_picker) +[![pub package](https://img.shields.io/pub/v/wechat_assets_picker?color=42a012&include_prereleases&label=dev&logo=dart&style=flat-square)](https://pub.dev/packages/wechat_assets_picker) +[![Build status](https://img.shields.io/github/workflow/status/fluttercandies/flutter_wechat_assets_picker/Build%20test?label=CI&logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_assets_picker/actions?query=workflow%3A%22Build+test%22) +[![CodeFactor](https://img.shields.io/codefactor/grade/github/fluttercandies/flutter_wechat_assets_picker?logo=codefactor&logoColor=%23ffffff&style=flat-square)](https://www.codefactor.io/repository/github/fluttercandies/flutter_wechat_assets_picker) +[![GitHub license](https://img.shields.io/github/license/fluttercandies/flutter_wechat_assets_picker?style=flat-square)](https://github.com/fluttercandies/flutter_wechat_assets_picker/blob/master/LICENSE) + +[![Awesome Flutter](https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true&style=flat-square)](https://github.com/Solido/awesome-flutter) +[![GitHub stars](https://img.shields.io/github/stars/fluttercandies/flutter_wechat_assets_picker?logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_assets_picker/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/fluttercandies/flutter_wechat_assets_picker?logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_assets_picker/network) +FlutterCandies + +Language: English | [中文](README-ZH.md) + +An **assets picker** which based on the WeChat's UI, +using [`photo_manager`](https://pub.dev/packages/photo_manager) +for asset implementation, +[`extended_image`](https://pub.dev/packages/extended_image) +for image preview, +and [`provider`](https://pub.dev/packages/provider) +to help control the state of the picker. + +To take a photo or a video for assets, +please check the detailed usage in the example, +and head over to +[wechat_camera_picker](https://pub.dev/packages/wechat_camera_picker). + +Current WeChat version that UI based on: **8.x** +UI designs will be updated following the WeChat update in anytime. + +## Category 🗂 + +* [Migration Guide](#migration-guide-) +* [Features](#features-) +* [Screenshots](#screenshots-) +* [Preparing for use](#preparing-for-use-) + * [Versions compatibility](#versions-compatibility) + * [Flutter](#flutter) + * [Android](#android) + * [iOS](#ios) + * [macOS](#macos) +* [Usage](#usage-) + * [Simple usage](#simple-usage) + * [Detailed usage](#detailed-usage) + * [Using custom delegate](#using-custom-delegate) + * [Display selected assets](#display-selected-assets) + * [Register assets change observe callback](#register-assets-change-observe-callback) + * [Customize with your own type or UI](#customize-with-your-own-type-or-ui) +* [Frequently asked question](#frequently-asked-question-) + * [Execution failed for task ':photo_manager:compileDebugKotlin'](#execution-failed-for-task-photo_managercompiledebugkotlin) + * [How can I get path from the `AssetEntity` to integrate with `File` object, upload or edit?](#how-can-i-get-path-from-the-assetentity-to-integrate-with-file-object-upload-or-edit) + * [Create `AssetEntity` from `File` or `Uint8List` (rawData)](#create-assetentity-from-file-or-uint8list-rawdata) + * [Console warning 'Failed to find GeneratedAppGlideModule'](#glide-warning-failed-to-find-generatedappglidemodule) + +## Migration Guide ♻️ + +See [Migration Guide](guides/migration_guide.md). + +## Features ✨ + +- ♻️ Fully implementable with delegates override +- 💚 99% similar to WeChat style +- ⚡️ Adjustable performance according to parameters +- 📷 Image asset support + - 🔬 HEIF Image type support +- 🎥 Video asset support +- 🎶 Audio asset support +- 1️⃣ Single asset mode +- 💱 i18n support + - ⏪ RTL language support +- ➕ Special item builder (prepend/append) support +- 🗂 Custom sort path delegate support +- 📝 Custom text delegate support +- ⏳ Custom filter options support ( `photo_manager` ) +- 🎏 Fully customizable theme +- 💻 macOS support + +## Screenshots 📸 + +| ![1](https://pic.alexv525.com/2021-07-05-picker_1.jpg) | ![2](https://pic.alexv525.com/2021-07-05-picker_2.jpg) | ![3](https://pic.alexv525.com/2021-07-05-picker_3.jpg) | +|----------------------------------------------------------|----------------------------------------------------------|----------------------------------------------------------| +| ![4](https://pic.alexv525.com/2021-07-05-picker_4.jpg) | ![5](https://pic.alexv525.com/2021-07-05-picker_5.jpg) | ![6](https://pic.alexv525.com/2021-07-05-picker_6.jpg) | +| ![7](https://pic.alexv525.com/2021-07-06-picker_7.jpg) | ![8](https://pic.alexv525.com/2021-07-05-picker_8.jpg) | ![9](https://pic.alexv525.com/2021-07-05-picker_9-1.jpg) | +| ![10](https://pic.alexv525.com/2021-07-05-picker_10.png) | ![10](https://pic.alexv525.com/2021-07-05-picker_11.png) | ![12](https://pic.alexv525.com/2021-07-05-picker_12.png) | + +## READ THIS FIRST ‼️ + +Although the package provides assets selection, +it still requires users to build their own methods +to handle upload, image compress, etc. +If you have any questions about how to build them, +please run the example or refer to +[photo_manager](https://github.com/CaiJingLong/flutter_photo_manager) +for API usages. + +## Preparing for use 🍭 + +### Versions compatibility + +| | <2.5.0 | 2.8.0 | 2.10.0 | +|--------|:------:|:-----:|:------:| +| 7.0.0+ | ❌ | ✅ | ✅ | +| 6.3.0+ | ❌ | ✅ | ✅ | + +If you got a `resolve conflict` error when running `flutter pub get`, +please use `dependency_overrides` to fix it. + +### Flutter + +Add `wechat_assets_picker` to `pubspec.yaml` dependencies. +```yaml +dependencies: + wechat_assets_picker: ^latest_version +``` + +The latest **stable** version is: +[![pub package](https://img.shields.io/pub/v/wechat_assets_picker?logo=dart&label=stable&style=flat-square)](https://pub.dev/packages/wechat_assets_picker) + +The latest **dev** version is: +[![pub package](https://img.shields.io/pub/v/wechat_assets_picker?color=42a012&include_prereleases&label=dev&logo=dart&style=flat-square)](https://pub.dev/packages/wechat_assets_picker) + +Then import the package in your code: +```dart +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; +``` + +### Android + +Required permissions: `READ_EXTERNAL_STORAGE` (declared already). +Optional permissions: `WRITE_EXTERNAL_STORAGE`, `ACCESS_MEDIA_LOCATION`. + +If you're targeting Android SDK 29+, +you must declare `requestLegacyExternalStorage` +at the `` node of `AndroidManifest.xml`. +See the example for the detailed usage. + +If you found some warning logs with `Glide` appearing, +then the main project needs an implementation of `AppGlideModule`. +See [Generated API](https://sjudd.github.io/glide/doc/generatedapi.html). + +### iOS + +1. Platform version has to be at least *9.0*. + Modify `ios/Podfile` and update accordingly. +```ruby +platform :ios, '9.0' +``` + +2. Add the following content to `info.plist`. +``` +NSAppTransportSecurity + + NSAllowsArbitraryLoads + + +NSPhotoLibraryUsageDescription +Replace with your permission description. +``` + +### macOS + +1. Platform version has to be at least *10.15*. + Modify `macos/Podfile` and update accordingly. +```ruby +platform :osx, '10.15' +``` + +2. Set the minimum deployment target to *10.15*. + Use XCode to open `macos/Runner.xcworkspace` . + +3. ![step 1](https://tva1.sinaimg.cn/large/007S8ZIlgy1ghw67v4yk4j30qy0b50u0.jpg) + +4. ![step 2](https://tva1.sinaimg.cn/large/007S8ZIlgy1ghw67vd3f2j30jv04zgm5.jpg) + +5. Follow the iOS instructions and modify `info.plist` accordingly. + +## Usage 📖 + +### Simple usage + +```dart +final List? result = await AssetPicker.pickAssets(context); +``` + +Use `AssetPickerConfig` for more picking behaviors. + +```dart +final List? result = await AssetPicker.pickAssets( + context, + pickerConfig: const AssetPickerConfig(), +); +``` + +Fields in `AssetPickerConfig`: + +| Name | Type | Description | Default | +|-----------------------------------|--------------------------------------|---------------------------------------------------------------------------|-----------------------------| +| selectedAssets | `List?` | Selected assets. Prevent duplicate selection. | `null` | +| maxAssets | `int` | Maximum asset that the picker can pick. | 9 | +| pageSize | `int?` | Number of assets per page. **Must be a multiple of `gridCount`**. | 80 | +| gridThumbnailSize | `ThumbnailSize` | Thumbnail size for the grid's item. | `ThumbnailSize.square(200)` | +| pathThumbnailSize | `ThumbnailSize` | Thumbnail size for the path selector. | `ThumbnailSize.square(80)` | +| previewThumbnailSize | `ThumbnailSize?` | Preview thumbnail size in the viewer. | `null` | +| requestType | `RequestType` | Request type for picker. | `RequestType.common` | +| specialPickerType | `SpacialPickerType?` | Provides the option to integrate a custom picker type. | `null` | +| keepScrollOffset | `bool` | Whether the picker should save the scroll offset between pushes and pops. | `null` | +| sortPathDelegate | `SortPathDelegate?` | Path entities sort delegate for the picker, sort paths as you want. | `CommonSortPathDelegate` | +| filterOptions | `FilterOptionGroup?` | Allow users to customize assets filter options. | `null` | +| gridCount | `int` | Grid count in picker. | 4 | +| themeColor | `Color?` | Main theme color for the picker. | `Color(0xff00bc56)` | +| pickerTheme | `ThemeData?` | Theme data provider for the picker and the viewer. | `null` | +| textDelegate | `AssetPickerTextDelegate?` | Text delegate for the picker, for customize the texts. | `AssetPickerTextDelegate()` | +| specialItemPosition | `SpecialItemPosition` | Allow users set a special item in the picker with several positions. | `SpecialItemPosition.none` | +| specialItemBuilder | `SpecialItemBuilder?` | The widget builder for the special item. | `null` | +| loadingIndicatorBuilder | `IndicatorBuilder?` | Indicates the loading status for the builder. | `null` | +| selectPredicate | `AssetSelectPredicate` | Predicate whether an asset can be selected or unselected. | `null` | +| shouldRevertGrid | `bool?` | Whether the assets grid should revert. | `null` | +| limitedPermissionOverlayPredicate | `LimitedPermissionOverlayPredicate?` | Predicate whether the limited permission overlay should be displayed. | `null` | +| pathNameBuilder | `PathNameBuilder?` | Build customized path name. | `null` | + +### Detailed usage + +TL;DR, we've put multiple common usage +with the packages in the [example](example). + +### Using custom delegate + +You can use the `keepScrollOffset` feature +only with the `pickAssetsWithDelegate` method. +See the `Keep scroll offset` pick method +in the example for how to implement it. + +For more details about custom delegates, +head over to [`example/lib/customs`](example/lib/customs). + +#### Regular picking + +You can both found `List pickMethods` in +`example/lib/pages/multi_assets_page.dart` +and `example/lib/pages/single_assets_page.dart`, +which provide methods in multiple picking and single picking mode. +Assets will be stored temporary and displayed at the below of the page. + +##### Multiple assets picking + +The maximum assets limit is `9` in the multiple picking page, +and you can modify it as you wish. + +Some methods can only work with multiple mode, such as "WeChat Moment". + +##### Single asset picking + +Only one and maximum to one asset can be picked at once. + +#### Custom pickers + +You can try custom pickers with the "Custom" page. +We've defined a picker that integrates with `Directory` and `File` +(completely out of the `photo_manager` scope), +and a picker with multiple tabs switching. +You can submit PRs to create your own implementation +if you found your implementation might be useful for others. +See [Contribute custom implementations][lib/customs/CONTRIBUTING.md] +for more details. + +### Display selected assets + +The `AssetImage` and `AssetEntityImageProvider` can display the thumb image +of _images & videos_, and the original data of _image_. +Use it like a common `Image` and `ImageProvider`. + +```dart +/// AssetEntityImage +AssetEntityImage(asset, isOriginal: false); + +/// AssetEntityImageProvider +Image(image: AssetEntityImageProvider(asset, isOriginal: false)); +``` + +### Register assets change observe callback + +```dart +/// Register callback. +AssetPicker.registerObserve(); + +/// Unregister callback. +AssetPicker.unregisterObserve(); +``` + +### Customize with your own type or UI + +`AssetPickerBuilderDelegate`, `AssetPickerViewerBuilderDelegate`, +`AssetPickerProvider` and `AssetPickerViewerProvider` +are all exposed and overridable. +You can extend them and use your own +type with generic type ``, +then implement abstract methods. See the `Custom` page +in the example which has an implementation +based on `` types. + +## Frequently asked question ❔ + +### Execution failed for task ':photo_manager:compileDebugKotlin' + +See [photo_manager#561][] for more details. + +[photo_manager#561]: https://github.com/CaiJingLong/flutter_photo_manager/issues/561 + +### How can I get path from the `AssetEntity` to integrate with `File` object, upload or edit? + +You don't need it (might be). + +You can always request the `File` object with +`entity.file` or `entity.originFile`, +and `entity.originBytes` for `Uint8List`. + +If you still need path after requested the `File`, get it through `file.path`. + +```dart +final File file = await entity.file; // Thumbnails or edited files. +final File originFile = await entity.originFile; // Original files. +final String path = file.path; +final String originPath = originFile.path; +``` + +### Create `AssetEntity` from `File` or `Uint8List` (rawData) + +In order to combine this package with camera shooting or something related, +there's a solution about how to create an `AssetEntity` +with `File` or `Uint8List` object. + +```dart +final File file = your_file; // Your `File` object +final String path = file.path; +final AssetEntity fileEntity = await PhotoManager.editor.saveImageWithPath( + path, + title: basename(path), +); // Saved in the device then create an AssetEntity + +final Uint8List data = your_data; // Your `Uint8List` object +final AssetEntity imageEntity = await PhotoManager.editor.saveImage( + file.path, + title: 'title_with_extension.jpg', +); // Saved in the device then create an AssetEntity +``` + +**Notice: If you don't want to keep the file in your device, +use `File` for operations as much as possible.** +A deletion operation might call system popups with some OS: + +```dart +final List result = await PhotoManager.editor.deleteWithIds([entity.id]); +``` + +ref: [flutter_photo_manager#insert-new-item](https://github.com/CaiJingLong/flutter_photo_manager#insert-new-item) + +### Glide warning 'Failed to find GeneratedAppGlideModule' + +``` +W/Glide (21133): Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in you application ana a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored. +``` + +`Glide` needs annotation to keep singleton, +prevent conflict between instances and versions, +so while the photo manager uses `Glide` to implement image features, +the project which import this should define its own `AppGlideModule`. +See [Android](#android) section for implementation. + +## Contributors ✨ + +Many thanks to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Alex Li

    💻 🎨 📖 💡 🤔 🚧 💬 👀

    Caijinglong

    💡 🤔

    Marcel Schneider

    🐛 💻 🤔

    ganlanshu0211

    🐛 🤔

    JasonHezz

    🐛 💻

    Yaniv Shaked

    🌍 💻 🐛 🚧

    avi-yadav

    💻

    Letalus

    🐛 🌍

    greymag

    🌍

    Nickolay Savchenko

    🎨

    Kosuke Saigusa

    🌍

    三闻书店

    📖

    DidiosFaust

    🌍

    xiejie

    🐛

    Ahmed Masoud

    🌍

    luomo-pro

    ️️️️♿️ 🐛

    paigupai

    🌍
    + + + + + +This project follows the +[all-contributors](https://github.com/all-contributors/all-contributors) specification. +Contributions of any kind welcomed!! + +## Acknowledgement + +> Every aspect of IntelliJ IDEA has been designed to maximize developer productivity. +Together, intelligent coding assistance and ergonomic design make development not only productive but also enjoyable. + +Thanks to [JetBrains](https://www.jetbrains.com/?from=fluttercandies) +for allocating free open-source licenses for IDEs +such as [IntelliJ IDEA](https://www.jetbrains.com/idea/?from=fluttercandies). + +[](https://www.jetbrains.com/?from=fluttercandies) diff --git a/packages/flutter_wechat_assets_picker/_config.yml b/packages/flutter_wechat_assets_picker/_config.yml new file mode 100644 index 00000000..c4192631 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/packages/flutter_wechat_assets_picker/analysis_options.yaml b/packages/flutter_wechat_assets_picker/analysis_options.yaml new file mode 100644 index 00000000..3dd900e2 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/analysis_options.yaml @@ -0,0 +1,216 @@ +# Specify analysis options. +# +# Until there are meta linter rules, each desired lint must be explicitly enabled. +# See: https://github.com/dart-lang/linter/issues/288 +# +# For a list of lints, see: http://dart-lang.github.io/linter/lints/ +# See the configuration guide for more +# https://github.com/dart-lang/sdk/tree/master/pkg/analyzer#configuring-the-analyzer +# +# There are other similar analysis options files in the flutter repos, +# which should be kept in sync with this file: +# +# - analysis_options.yaml (this file) +# - packages/flutter/lib/analysis_options_user.yaml +# - https://github.com/flutter/plugins/blob/master/analysis_options.yaml +# - https://github.com/flutter/engine/blob/master/analysis_options.yaml +# +# This file contains the analysis options used by Flutter tools, such as IntelliJ, +# Android Studio, and the `flutter analyze` command. + +analyzer: + strong-mode: + implicit-casts: false + implicit-dynamic: false + errors: + # treat missing required parameters as a warning (not a hint) + missing_required_param: warning + # treat missing returns as a warning (not a hint) + missing_return: warning + # allow having TODOs in the code + todo: ignore + +linter: + rules: + # these rules are documented on and in the same order as + # the Dart Lint rules page to make maintenance easier + # https://github.com/dart-lang/linter/blob/master/example/all.yaml + - always_declare_return_types + - always_put_control_body_on_new_line + # - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219 + - always_require_non_null_named_parameters + - always_specify_types + # - always_use_package_imports # we do this commonly + - annotate_overrides + # - avoid_annotating_with_dynamic # conflicts with always_specify_types + # - avoid_as # required for implicit-casts: true + - avoid_bool_literals_in_conditional_expressions + # - avoid_catches_without_on_clauses # we do this commonly + # - avoid_catching_errors # we do this commonly + - avoid_classes_with_only_static_members + # - avoid_double_and_int_checks # only useful when targeting JS runtime + - avoid_empty_else + - avoid_equals_and_hash_code_on_mutable_classes + # - avoid_escaping_inner_quotes # not yet tested + - avoid_field_initializers_in_const_classes + - avoid_function_literals_in_foreach_calls + # - avoid_implementing_value_types # not yet tested + - avoid_init_to_null + # - avoid_js_rounded_ints # only useful when targeting JS runtime + - avoid_null_checks_in_equality_operators + # - avoid_positional_boolean_parameters # not yet tested + # - avoid_print # not yet tested + # - avoid_private_typedef_functions # we prefer having typedef (discussion in https://github.com/flutter/flutter/pull/16356) + # - avoid_redundant_argument_values # not yet tested + - avoid_relative_lib_imports + - avoid_renaming_method_parameters + - avoid_return_types_on_setters + # - avoid_returning_null # there are plenty of valid reasons to return null + # - avoid_returning_null_for_future # not yet tested + - avoid_returning_null_for_void + # - avoid_returning_this # there are plenty of valid reasons to return this + # - avoid_setters_without_getters # not yet tested + - avoid_shadowing_type_parameters + - avoid_single_cascade_in_expression_statements + - avoid_slow_async_io + # - avoid_type_to_string # we do this commonly + - avoid_types_as_parameter_names + # - avoid_types_on_closure_parameters # conflicts with always_specify_types + # - avoid_unnecessary_containers # not yet tested + - avoid_unused_constructor_parameters + - avoid_void_async + # - avoid_web_libraries_in_flutter # not yet tested + - await_only_futures + - camel_case_extensions + - camel_case_types + - cancel_subscriptions + # - cascade_invocations # not yet tested + - cast_nullable_to_non_nullable + # - close_sinks # not reliable enough + # - comment_references # blocked on https://github.com/flutter/flutter/issues/20765 + # - constant_identifier_names # needs an opt-out https://github.com/dart-lang/linter/issues/204 + - control_flow_in_finally + # - curly_braces_in_flow_control_structures # not required by flutter style + # - diagnostic_describe_all_properties # not yet tested + - directives_ordering + # - do_not_use_environment # we do this commonly + - empty_catches + - empty_constructor_bodies + - empty_statements + - exhaustive_cases + # - file_names # not yet tested + - flutter_style_todos + - hash_and_equals + - implementation_imports + # - invariant_booleans # too many false positives: https://github.com/dart-lang/linter/issues/811 + - iterable_contains_unrelated_type + # - join_return_with_assignment # not required by flutter style + - leading_newlines_in_multiline_strings + - library_names + - library_prefixes + # - lines_longer_than_80_chars # not required by flutter style + - list_remove_unrelated_type + # - literal_only_boolean_expressions # too many false positives: https://github.com/dart-lang/sdk/issues/34181 + # - missing_whitespace_between_adjacent_strings # not yet tested + - no_adjacent_strings_in_list + # - no_default_cases # too many false positives + - no_duplicate_case_values + - no_logic_in_create_state + # - no_runtimeType_toString # ok in tests; we enable this only in packages/ + - non_constant_identifier_names + - null_check_on_nullable_type_parameter + # - null_closures # not required by flutter style + # - omit_local_variable_types # opposite of always_specify_types + # - one_member_abstracts # too many false positives + # - only_throw_errors # https://github.com/flutter/flutter/issues/5792 + - overridden_fields + - package_api_docs + # - package_names # non conforming packages in sdk + - package_prefixed_library_names + # - parameter_assignments # we do this commonly + - prefer_adjacent_string_concatenation + - prefer_asserts_in_initializer_lists + # - prefer_asserts_with_message # not required by flutter style + - prefer_collection_literals + - prefer_conditional_assignment + - prefer_const_constructors + - prefer_const_constructors_in_immutables + - prefer_const_declarations + - prefer_const_literals_to_create_immutables + # - prefer_constructors_over_static_methods # far too many false positives + - prefer_contains + # - prefer_double_quotes # opposite of prefer_single_quotes + - prefer_equal_for_default_values + # - prefer_expression_function_bodies # conflicts with https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#consider-using--for-short-functions-and-methods + - prefer_final_fields + - prefer_final_in_for_each + - prefer_final_locals + - prefer_for_elements_to_map_fromIterable + - prefer_foreach + # - prefer_function_declarations_over_variables # not yet tested + - prefer_generic_function_type_aliases + - prefer_if_elements_to_conditional_expressions + - prefer_if_null_operators + - prefer_initializing_formals + - prefer_inlined_adds + # - prefer_int_literals # not yet tested + # - prefer_interpolation_to_compose_strings # not yet tested + - prefer_is_empty + - prefer_is_not_empty + - prefer_is_not_operator + - prefer_iterable_whereType + # - prefer_mixin # https://github.com/dart-lang/language/issues/32 + # - prefer_null_aware_operators # disable until NNBD, see https://github.com/flutter/flutter/pull/32711#issuecomment-492930932 + # - prefer_relative_imports # not yet tested + - prefer_single_quotes + - prefer_spread_collections + - prefer_typing_uninitialized_variables + - prefer_void_to_null + # - provide_deprecation_message # not yet tested + # - public_member_api_docs # enabled on a case-by-case basis; see e.g. packages/analysis_options.yaml + - recursive_getters + - require_trailing_commas + # - sized_box_for_whitespace # not yet tested + - slash_for_doc_comments + # - sort_child_properties_last # not yet tested + - sort_constructors_first + # - sort_pub_dependencies # prevents separating pinned transitive dependencies + - sort_unnamed_constructors_first + - test_types_in_equals + - throw_in_finally + - tighten_type_of_initializing_formals + # - type_annotate_public_apis # subset of always_specify_types + - type_init_formals + # - unawaited_futures # too many false positives + # - unnecessary_await_in_return # not yet tested + - unnecessary_brace_in_string_interps + - unnecessary_const + # - unnecessary_final # conflicts with prefer_final_locals + - unnecessary_getters_setters + # - unnecessary_lambdas # has false positives: https://github.com/dart-lang/linter/issues/498 + - unnecessary_new + - unnecessary_null_aware_assignments + # - unnecessary_null_checks # not yet tested + - unnecessary_null_in_if_null_operators + - unnecessary_nullable_for_final_variable_declarations + - unnecessary_overrides + - unnecessary_parenthesis + # - unnecessary_raw_strings # not yet tested + - unnecessary_statements + - unnecessary_string_escapes + - unnecessary_string_interpolations + - unnecessary_this + - unrelated_type_equality_checks + # - unsafe_html # not yet tested + - use_full_hex_values_for_flutter_colors + # - use_function_type_syntax_for_parameters # not yet tested + - use_is_even_rather_than_modulo + # - use_key_in_widget_constructors # not yet tested + - use_late_for_private_fields_and_variables + - use_raw_strings + - use_rethrow_when_possible + # - use_setters_to_change_properties # not yet tested + # - use_string_buffers # has false positives: https://github.com/dart-lang/sdk/issues/34182 + # - use_to_and_as_if_applicable # has false positives, so we prefer to catch this by code-review + - valid_regexps + - void_checks \ No newline at end of file diff --git a/packages/flutter_wechat_assets_picker/example/.gitignore b/packages/flutter_wechat_assets_picker/example/.gitignore new file mode 100644 index 00000000..9d532b18 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/.gitignore @@ -0,0 +1,41 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json diff --git a/packages/flutter_wechat_assets_picker/example/.metadata b/packages/flutter_wechat_assets_picker/example/.metadata new file mode 100644 index 00000000..bcc71ad1 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 0e6818650f2e3798c342f4be293693737e35a453 + channel: stable + +project_type: app diff --git a/packages/flutter_wechat_assets_picker/example/README.md b/packages/flutter_wechat_assets_picker/example/README.md new file mode 100644 index 00000000..9bda381d --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/README.md @@ -0,0 +1,3 @@ +# WeChat Assets Picker example + +This is the example for the `wechat_assets_picker` package. diff --git a/packages/flutter_wechat_assets_picker/example/android/.gitignore b/packages/flutter_wechat_assets_picker/example/android/.gitignore new file mode 100644 index 00000000..0a741cb4 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/.gitignore @@ -0,0 +1,11 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties diff --git a/packages/flutter_wechat_assets_picker/example/android/app/build.gradle b/packages/flutter_wechat_assets_picker/example/android/app/build.gradle new file mode 100644 index 00000000..d80e53ee --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/app/build.gradle @@ -0,0 +1,78 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-kapt' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 33 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + applicationId "com.fluttercandies.wechatAssetsPickerExample" + minSdkVersion 21 + targetSdkVersion 31 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + signingConfigs { + forAll { + storeFile file("${rootDir.absolutePath}/key.jks") + storePassword 'picker' + keyAlias 'picker' + keyPassword 'picker' + } + } + + buildTypes { + debug { + signingConfig signingConfigs.forAll + } + profile { + signingConfig signingConfigs.forAll + } + release { + signingConfig signingConfigs.forAll + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation 'com.github.bumptech.glide:glide:4.11.0' + kapt 'com.github.bumptech.glide:compiler:4.11.0' +} diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/AndroidManifest.xml b/packages/flutter_wechat_assets_picker/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..13de2cd7 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechatAssetsPickerExample/ExampleAppGlideModule.java b/packages/flutter_wechat_assets_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechatAssetsPickerExample/ExampleAppGlideModule.java new file mode 100644 index 00000000..0a901297 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechatAssetsPickerExample/ExampleAppGlideModule.java @@ -0,0 +1,8 @@ +package com.fluttercandies.wechatAssetsPickerExample; + +import com.bumptech.glide.annotation.GlideModule; +import com.bumptech.glide.module.AppGlideModule; + +@GlideModule +public class ExampleAppGlideModule extends AppGlideModule { +} \ No newline at end of file diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechatAssetsPickerExample/MainActivity.kt b/packages/flutter_wechat_assets_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechatAssetsPickerExample/MainActivity.kt new file mode 100644 index 00000000..c61035c3 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechatAssetsPickerExample/MainActivity.kt @@ -0,0 +1,7 @@ +package com.fluttercandies.wechatAssetsPickerExample + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { + // The default activity that extends flutter's activity. +} diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/drawable/launch_background.xml b/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/values/styles.xml b/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..1f83a33f --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/android/build.gradle b/packages/flutter_wechat_assets_picker/example/android/build.gradle new file mode 100644 index 00000000..1cf74192 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.0.3' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/packages/flutter_wechat_assets_picker/example/android/gradle.properties b/packages/flutter_wechat_assets_picker/example/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/packages/flutter_wechat_assets_picker/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/flutter_wechat_assets_picker/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..752ce5bc --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip diff --git a/packages/flutter_wechat_assets_picker/example/android/key.jks b/packages/flutter_wechat_assets_picker/example/android/key.jks new file mode 100644 index 0000000000000000000000000000000000000000..5eb0b84ce730fcaaea7b3eda5f77dfc6f4f01d6c GIT binary patch literal 4255 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 properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/packages/flutter_wechat_assets_picker/example/assets/flutter_candies_logo.png b/packages/flutter_wechat_assets_picker/example/assets/flutter_candies_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..751b29a4baf5c7bc02c8792b30dd529f0ff27880 GIT binary patch literal 133916 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 V@bh$0{;|0C{{S*-WitQ( literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/.gitignore b/packages/flutter_wechat_assets_picker/example/ios/.gitignore new file mode 100644 index 00000000..e96ef602 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/.gitignore @@ -0,0 +1,32 @@ +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Flutter/AppFrameworkInfo.plist b/packages/flutter_wechat_assets_picker/example/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..f2872cf4 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 9.0 + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Flutter/Debug.xcconfig b/packages/flutter_wechat_assets_picker/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..e8efba11 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/flutter_wechat_assets_picker/example/ios/Flutter/Release.xcconfig b/packages/flutter_wechat_assets_picker/example/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..399e9340 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.pbxproj b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..f512ff5f --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,575 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 2AC6D69FC85DBCBE615FE292 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4992C6E09AACD09AD87446E1 /* Pods_Runner.framework */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 4992C6E09AACD09AD87446E1 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 713E22BCE39FB127B8A0E6C1 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 997B4D7366AB53C6B71BFCE7 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + B3E25C4F9EEE9734FC2DF87F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2AC6D69FC85DBCBE615FE292 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 160535024E1A4CB99DF34291 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4992C6E09AACD09AD87446E1 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + DC6A09D914C781F3D9864908 /* Pods */, + 160535024E1A4CB99DF34291 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + DC6A09D914C781F3D9864908 /* Pods */ = { + isa = PBXGroup; + children = ( + 997B4D7366AB53C6B71BFCE7 /* Pods-Runner.debug.xcconfig */, + 713E22BCE39FB127B8A0E6C1 /* Pods-Runner.release.xcconfig */, + B3E25C4F9EEE9734FC2DF87F /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 85E256E8024B53B467F5E54D /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + A34F392B37BBED37711E6628 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 85E256E8024B53B467F5E54D /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + A34F392B37BBED37711E6628 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 64MAFNBS88; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.fluttercandies.wechatAssetsPickerDemo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 64MAFNBS88; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.fluttercandies.wechatAssetsPickerDemo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 64MAFNBS88; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.fluttercandies.wechatAssetsPickerDemo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..3db53b6e --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/AppDelegate.swift b/packages/flutter_wechat_assets_picker/example/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..99f7a0c1 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,128 @@ +{ + "images":[ + { + "idiom":"iphone", + "size":"20x20", + "scale":"2x", + "filename":"Icon-App-20x20@2x.png" + }, + { + "idiom":"iphone", + "size":"20x20", + "scale":"3x", + "filename":"Icon-App-20x20@3x.png" + }, + { + "idiom":"iphone", + "size":"29x29", + "scale":"1x", + "filename":"Icon-App-29x29@1x.png" + }, + { + "idiom":"iphone", + "size":"29x29", + "scale":"2x", + "filename":"Icon-App-29x29@2x.png" + }, + { + "idiom":"iphone", + "size":"29x29", + "scale":"3x", + "filename":"Icon-App-29x29@3x.png" + }, + { + "idiom":"iphone", + "size":"40x40", + "scale":"2x", + "filename":"Icon-App-40x40@2x.png" + }, + { + "idiom":"iphone", + "size":"40x40", + "scale":"3x", + "filename":"Icon-App-40x40@3x.png" + }, + { + "idiom":"iphone", + "size":"60x60", + "scale":"2x", + "filename":"Icon-App-60x60@2x.png" + }, + { + "idiom":"iphone", + "size":"60x60", + "scale":"3x", + "filename":"Icon-App-60x60@3x.png" + }, + { + "idiom":"iphone", + "size":"76x76", + "scale":"2x", + "filename":"Icon-App-76x76@2x.png" + }, + { + "idiom":"ipad", + "size":"20x20", + "scale":"1x", + "filename":"Icon-App-20x20@1x.png" + }, + { + "idiom":"ipad", + "size":"20x20", + "scale":"2x", + "filename":"Icon-App-20x20@2x.png" + }, + { + "idiom":"ipad", + "size":"29x29", + "scale":"1x", + "filename":"Icon-App-29x29@1x.png" + }, + { + "idiom":"ipad", + "size":"29x29", + "scale":"2x", + "filename":"Icon-App-29x29@2x.png" + }, + { + "idiom":"ipad", + "size":"40x40", + "scale":"1x", + "filename":"Icon-App-40x40@1x.png" + }, + { + "idiom":"ipad", + "size":"40x40", + "scale":"2x", + "filename":"Icon-App-40x40@2x.png" + }, + { + "idiom":"ipad", + "size":"76x76", + "scale":"1x", + "filename":"Icon-App-76x76@1x.png" + }, + { + "idiom":"ipad", + "size":"76x76", + "scale":"2x", + "filename":"Icon-App-76x76@2x.png" + }, + { + "idiom":"ipad", + "size":"83.5x83.5", + "scale":"2x", + "filename":"Icon-App-83.5x83.5@2x.png" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "scale" : "1x", + "filename" : "ItunesArtwork@2x.png" + } + ], + "info":{ + "version":1, + "author":"makeappicon" + } +} diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8205def91d051a7c510631852e36c393d789e1 GIT binary patch literal 83320 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

    OuEbg`;F;*>CdvD13h3PFOF@7xF8zhe~L`E?OFg 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 b4DJHur}jx|GY!F190176sK834OoRUq7_#Xv literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..2291d83e628915b37215894025b7c9021ac759cb GIT binary patch literal 756 zcmV+v>9|KVj(sbm3TyGYe~Y+BOwtx znn=394#{|gc0|P^1f6<}nuqCh`aO@uS2a_eILmwP@0@$j|DQw5j1s|sTaXk4D!xFa zV8+a=|Aw6P)MW@l)u2%8WKtvaNbj1b4-+3^I zieQgS8hm=l8Od=_Mbf|?T|{)nWhTqEo;|h~sJ`$@iGYWQLUPRDQ-d=}%XXRQ%e70% z3+Ju$=;tGc^A8>Zfa?lR6+sxAHsu0WDC=oVj*&;_krw6TRNpreq6MP~RHa5TxC@=+Kn@ zQRmQe+b2+^vZ~O*I~R8<-;9xAJNG_x{A77k6PO{y)U-X{*e;~Nt+>-2vjGlC*6PZ) z3|wD(Y`@yxZq-#RJlY*x+{}(cit=~b1Tdfom@ck=a>i}0^2-kfso&#~ddjY7o;1^Z ze`uojqMIEjA;646UKq zeC+Ahr8lx?UStECH~DpKN}E|b|1lg3qEyc4fAY!n`H;((sT64o`+W+Df}fUL2FyhN mSqCLyk9Vf`5Rnu!YyAfJgjjZIMHNy20000IXCiCd!HO4yk8FExWG^+#ho{$IeFA;#`rG2}$}bYQ#Re|6|X zE!ruOn4OZ)W1?b~SUFSh*ddt?Y^(qLQvc?h;^e3ftM}$lpaP&NEhk$&ab52@uUrz6 zF#Ka%T{T;5nYa1RJYR!;@x0}>~ zOGzpXsoyUV4;M>|Aqj#&1VIqQ0&sSAyN-XFefNTb-9HBrlqGzgtc@GB8P^`CiiQU} z8Xal|1flAxdZSSXoJlGX!X`GAiuFa((l7)f3fBgB=oBI_^Ng>VnTvT~p1aRc9}HwOxlAm4MYt6C#*pC(%-<%<})}&S2bCrFywff5*Z}}qUn*78Sm2^nh(vdd( z@)ycuKoFSGXW@yt@}Yu3^-3>S)?1-CyfPsw3@xQ8#nZ*s@_a)nC8ZpwdUN2|QR(r> z{Jg-^KY`nm2qz^M0g6#EOYE30V+xi=zlALcYF)Q}^klp@4xfZ|Q`K5BheJE4ae2OB z#Vsji?D#SB;}g!@9GMaDZ+U8jI&#EzvzOD!8~XXPYE!9vVD_L|-@}_vnV~rHT{Oo@ zY$qeLmeS0STPt@gI$q`4w?AXUx=7RcNcU-Sxph}4FlUA1wqmdbB@Z&?d2E+d9Z}A8 zll>lNLj34Sv(JK8BC3&NP>G9}Ss4;tosYe>d(kIH!UJ(5Cp+`GU2T=mx|huLJ-9S; zX@xtjV6-|i)Hk0JG$Yqd_Od=3;>S*zeHJ_t7Q;aZTHIu6VvaCv%ZrqpIdLu~V}8Hx z?CySbzvtd>^dJ9Rw)@>_1#DTP)iL2=+fM1NwPr8|pD{SE3^>3Y78;fOaT$H5EW@+n zp1?qFkEweg`QrxHr51lqy1017ym*NW1F3>KUO{hXwco%`%M6D=Obr#S%q)c4<^23` z&9M*a5De;uhWurB zCO5MqnDyIV%Iq2OPimKK+z@{MLr2-|U?!0wu2U#)EzO3Y>QAq(d*&^XnI~XbB+T$#YN3mz2&P`S&@if7GCf8y-ne^Xb7@2uU%aH*WH_7#_atn>$X53FWvj= zKfUtOxqJQ=dZ(`0@Oa?$f|)IqGM}eBV!K&N8&Xu)Hf?zJ9Thd<^*k{*lKt;9zp~2U za6nS^&sMKlQm8e=IM=#qz{B>T&zkohtcM{&O2FkzV^adkw9g z0JP?D2BewA_*b@R!?q2KD%2T7G!gpM;IG*J|NeaWFMeWz5bDqx9{>OV07*qoM6N<$ Ef(j{fssI20 literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..51fd05d80be2d05bda735ec53380b7decc204666 GIT binary patch literal 2942 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 Ef(j{fssI20 literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..076952292125fcab1148e76d3ea2e817546e36c2 GIT binary patch literal 4211 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 JPDHLkV1koyAg%xa literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..40bc0bb1e42bcb1fa42d4658c99d1e8d8489a5ed GIT binary patch literal 6924 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 z

    o4i;cNX2CCLa3gTpts6Nis)|#wBqCPT<+5L zzc}S}Z1w}goiN^Je>wJ+G|gyba9wj{r`SmHbe$_MH91tmiY4;kS*( zG=elDF1pvm3rIbp_xZrSMrzYzo*D|ckRiOW8mjtmnfw68IVul7oWKVbsj&$+irwN+ygP#9Q^%6~tgsJzR&o$dVfk za?5!oVI&%_#;5CpA)QZIzodi{5=EmpH#>{I0W!Sekk~yPbiS>5^C%#v=_=W3WzjmD zYHL0ty|$*^@yeX>_Z8F#FB}=X?&*cY)KMnfsrC~{@M^%sDnss(pCd++>x$B9;tdw- zP>9n@6GQ)1`RRz9huQ`>aZP1uY(4F?e zSWlB18r~wV<;SYKJC`iwWffe%k^Q1i44nXzhw?AO?p?h8o{btB2kBgF0 z_Q`Y*+2&5Y{qscf!9IZ!OTg^F6X{?p&Vv$VJz9oKB)=C~%0LnGH<=7~E z=OM^+IiW27i0KIeB6R(`%j@ZWCnO`EWI^=-eixb@N6283;KIzX3>^VrFC=>Y*=wy4 z3sORf4jL%9uSxe{(ybXYWEpO-#+JmI1jSL$O=^L*Tbi7|??pCuf9JSfA!ume;XV#{ z=(b2^d-gf)jyoI+=auo?%E=Vv1V`ZUxTrN>Nf_ROId;+VaXN-l-HXuTh7r*ESw0mn zb+!onBAMJ;XSAe2gAC*Ii|S_&m(ip9SU{tXr;_#~RpH8|BA{%YYqaV^n{YL~9MF~R zg353J0DDr9$!xy8w{z~@dB0gi#Qx$;tV_PFzhzT!KT@zWKs(4&1t$q%&{qNGdhjZ6 ztx~q>jkSw1m;+c=#tSXkakO-vPA;JxtN8<7QptY&EQ;XBo6-HTfDZhdMjy>r{8dC^ zKZ2Z?7P9SGG8<2l*b}is$|XF!n#1_H=|z2FYrW;RntDlIu%R4gp60B}i9H^OS9CUM zn1F38ty)FJK@RKFf(qq!xk4^9ZCcY6|P*m)ST{y-g3vQn?{xpmA% z&|_}3*v@r*6r^@JZHgKA#gZAH`@r#AIfud&WV3-BDK>@{+X-bO3E5EUUAXDqa@ZKY*^^UpSoBN=Z5S%OlIJR(+E= zyt(AncWq5PeiD_@0tyJn{1QSHTAQ~sy@9o0R31!fG=7h9fTY>mO-s9d;Y-1<{CxqE zlm)b@%3RqQZ~9k{xMHLEAL7;Wr)}IWP`!K5=l|as`d{PdTr!4*Y0oDwfBDhn0w~MB Km#dL6gZ&5UMT%em literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..40bc0bb1e42bcb1fa42d4658c99d1e8d8489a5ed GIT binary patch literal 6924 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 z

    o4i;cNX2CCLa3gTpts6Nis)|#wBqCPT<+5L zzc}S}Z1w}goiN^Je>wJ+G|gyba9wj{r`SmHbe$_MH91tmiY4;kS*( zG=elDF1pvm3rIbp_xZrSMrzYzo*D|ckRiOW8mjtmnfw68IVul7oWKVbsj&$+irwN+ygP#9Q^%6~tgsJzR&o$dVfk za?5!oVI&%_#;5CpA)QZIzodi{5=EmpH#>{I0W!Sekk~yPbiS>5^C%#v=_=W3WzjmD zYHL0ty|$*^@yeX>_Z8F#FB}=X?&*cY)KMnfsrC~{@M^%sDnss(pCd++>x$B9;tdw- zP>9n@6GQ)1`RRz9huQ`>aZP1uY(4F?e zSWlB18r~wV<;SYKJC`iwWffe%k^Q1i44nXzhw?AO?p?h8o{btB2kBgF0 z_Q`Y*+2&5Y{qscf!9IZ!OTg^F6X{?p&Vv$VJz9oKB)=C~%0LnGH<=7~E z=OM^+IiW27i0KIeB6R(`%j@ZWCnO`EWI^=-eixb@N6283;KIzX3>^VrFC=>Y*=wy4 z3sORf4jL%9uSxe{(ybXYWEpO-#+JmI1jSL$O=^L*Tbi7|??pCuf9JSfA!ume;XV#{ z=(b2^d-gf)jyoI+=auo?%E=Vv1V`ZUxTrN>Nf_ROId;+VaXN-l-HXuTh7r*ESw0mn zb+!onBAMJ;XSAe2gAC*Ii|S_&m(ip9SU{tXr;_#~RpH8|BA{%YYqaV^n{YL~9MF~R zg353J0DDr9$!xy8w{z~@dB0gi#Qx$;tV_PFzhzT!KT@zWKs(4&1t$q%&{qNGdhjZ6 ztx~q>jkSw1m;+c=#tSXkakO-vPA;JxtN8<7QptY&EQ;XBo6-HTfDZhdMjy>r{8dC^ zKZ2Z?7P9SGG8<2l*b}is$|XF!n#1_H=|z2FYrW;RntDlIu%R4gp60B}i9H^OS9CUM zn1F38ty)FJK@RKFf(qq!xk4^9ZCcY6|P*m)ST{y-g3vQn?{xpmA% z&|_}3*v@r*6r^@JZHgKA#gZAH`@r#AIfud&WV3-BDK>@{+X-bO3E5EUUAXDqa@ZKY*^^UpSoBN=Z5S%OlIJR(+E= zyt(AncWq5PeiD_@0tyJn{1QSHTAQ~sy@9o0R31!fG=7h9fTY>mO-s9d;Y-1<{CxqE zlm)b@%3RqQZ~9k{xMHLEAL7;Wr)}IWP`!K5=l|as`d{PdTr!4*Y0oDwfBDhn0w~MB Km#dL6gZ&5UMT%em literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3406dcbd5abda9a0eef29c510770187489a89055 GIT binary patch literal 11364 zcmcIqWm_B#uckn8m(oRwyF+o8qAl*lS=`+ghh=GTcXuuBUfkVTDDLidc+P)#uem1k zC38n6$t0NxQ&NydMcree<0|mL?@-^m>%)#plb0XY#>8X{BP8^J(*5y8LK( z?yuzpNqYlPWgpFNyuYmeheYaK3Mme!SJ|SD5^MW~oq8}OD*|MaHcPpx1PKv_4ot=L z`$B}C_Xl{|#xc9X zd%6}P_EwjJ_f5*sW*I(0;SYMzclhwq5;(s6eaTwOdp6*rmt`jpAd|(v6#|ANBjl!! z4~0nL3f*{3#xQFqJNswgSUZE6}jhm2sWY zvs3>aA2~3;C&tM7bFlVI_yx63D%x>YVy`#V+1!xX<>=O!;F5i+{}LiL9kz+}(fwH@Bom&lO7IL8w;6JRGb+|!?( zckM=quHTr|jd1DI$fKmC!a}kXIl;k??0`j06Ab&Or@ouV?i~iQ0NCa5y5A@wdOSZc zFmC(w?iDOaT^KWYJUxS6w>WlKc>(Iasa)z97_o&L9{#D3$8t`1M?;YF^;qX+5CxwdRZeQS4@RU?WUv_H+S`7*)Mvn{E;{G6PCPV1 zJWd(+Z@uarJ;$Gkzr>kAes&eU7R?xGqDEWcsbpiRR%ok@gI&Ugd`;9dH``V>i*kA! zyp%h+G%^c{aS5+J5opJ7?4fruuWc$q^-|KKu(sWB(ZTt@bI4PX-yl5r>COms?8BuHM;#i+pS2Zz^N`y_1SH zxetrAEjaoUCb?8227M(E9_7LDS8p3{iKU(P`yV;_&-{Sd22BYX_D*-kH^cq<=QOx- z2dO1egNvPmqEL6niuLWrtkMPUgIL&DBP?SK45k9>Lc(s?=CAD(gUf_d(~2 zT6;tD`DzFw%Z<(jlDrdV~oJPnO=MZ*YK66v_|(L$hDp={yD5ky$xzHXTBxMb1U z^L(LbZne#e%etU;{8Ef~QbRDpw%;TiubMt{XK2m5dDAF|Z<|{3a;^L!CrsdUajG zHR(|!v-jz{Zo~>fi~S7(AXH;oT@@{BG>ZDf%@g?b`Qajgz*nUCTos#{d?t8)vgOAc z3ta9?N%1I5+*jG;rNW)DGJR*xADN+t>t!br4jxc|^j3r7>fK>;-3E|YUsm%6H&cvx z-AbQa3|77STKh%fO1RRbdU;K=-W$UQFU60xqlPp_)rve-zLXbJ#7G}b6@(vAh*QOa z(|g{0|Bc&j!0w5fa7UKsW_{=WK4ro!K_BZhB6K&ue&r|S$rtRP3gF40CU*<;{}5f4 zeSOOE%~}RW%)oB_us`js&1$y~T~YWWPPv-9o^uw2uMIyyx<3^CW0a^Zs4$f!3;20f zHAlqyhYGjw&G(bFyVL~yaxRz?27#2@gkbG@pP!hD(%tH8JC!G)(|Fg8G>tdi1aWWo z{=sayQxQDteX1U(xk7W((FFfWF8Au;R4bAe}KvyU3 zv6kwY4>xw3c}Z)(q@|Yon6K6zezb4=5ax+yNdrQ@P{J8f7&ra=(oR|lj;}z)qKJ{t zuXA$W6hLyo=iruHDZw5kgE){q^a!BWk~&)xeWOA$tMbyYMju&t?jlX!k(V8Ak5cr; z#fS=z|NWDo3AN!;6lBbGP?dSm=~=7WuP`Ln_?%#GNRFd+`}Gn`T}H3!b=ZlorjQ;(v_GG8Di}iA5EtvAz-9@=5=aQ0Fqs0@nO>sxN`Dc(!^s2 zKsYTGsQJ=%zaxw}&SMDh&0~CxgTm%r5Gc}SdjFJ^c+iGO9y84I^Ou`VZpKjtm1)VW zEhhV1G`EN5xf{QmmLHV1+bVBD%!Nv5{&nSkn#}RwZ=3vS_ZTw8yh5ojHgcS^!hz?& z3L|$3`18Z)v$N}}uHX(Uqfxg5$-K=M-oA9UFgZC{LSl4>*`gX`+O>_{)O6;XYH$5< z7AaVcvsdwR`Mp&6GV7 zZ`F)gKt`8e`SyOCh7-bpE?=KP)jQBY$(UQf8D;<6r@8`5Od*gMOs23WsjYopXP=Bq zb8_!4&K2;hTE~=dS2*Dbi2i^M%brcLaGo;7E|DjJ7>nh3x2-L17CrcSWa|7czg;_t zV7bBr_}6AMb3p(|ETZ);&}+AW_O1;eIV@}1P)TJO08rVNq&ZIsqlWTn45(tk8sY$p zY8g^u)!}-QbnO(9<0lgBMpC@KePNO`?9zq;UM5L_bmh~QW*7@<^TfidbdApUa zkd$ZNdf$px5CGCbobn0p-REXRJmb!q{oVoLxL}Apjf`1#k>as2%%H8_*zo%8V*ccX zi${Mb6PT0ylVoS-b*sA~5~a2u=W{MqyD-k_q|lC3O9w|5Bj zG+Bxjx`kWSEYgJ^1A8g+*avt&|hy zMzvdyW8)}kNe}EwNL~6&1L#%xQ)^>!#kx#dA0LHCmq zj0(aeI_?x{vhZeaNs;aZ<4|X|oO-+RvrFddrk(S_;*m@AtJ(gqp(yfFqy0neVhAvw zapXoc3CL`F<83p38!li|Xt`eU8J@1Hs3O5QO=9sq!i?|Sp6diwLZ|CTq~G7bG1b() zJfL!J{Pgz+NsEa~aE$`+FRu)k5OtR8sJ0mBA&1SDm{V=xH3b9w*}a(Dnm@=7R#|=& zLsBScx&9&=)$?@%KLw z=l6UfM*;_%I&_H-PGF1Vl9OQdLoU|2TsP6Z;4$n`_P}@(nP=Re(!-k~X1rt26eSIB zNnFD@-ze2vQ((m&ZdKF)JEe3SOEP0FvAg;h^)t)6Vy2(9h6*LS2Bu(od@*#+Q`jQf z6dj$^bf#|7_HR4zqrz|KI~+4tY$(Z4NzBvPRnj?IW`GWjq&+=oVl5rQo>0A(j!!+J zgL~t=yu6Qp4EuN;(g*{_=bAW!=$aq4Y(V%Auq&@cW)|pc%Y4%1PMfI*ua{GLWr?R| zBkxY;9;)4It?r54^o+BQ#DRXE!{;boDT51x`J}F1ps5@3_AJkAAl`$8kC{R5@dCyrc*-W8{2!Rk9%FXv->0h~WO|7jA^NLU# z6Nc)w{|g(u_6Acg8SLWJ$_g3C{HIB#(g5#z*zyrWmj{{4+@73IrphG-nQ+qNw!afSS zC@MOGMEdOIwFM8#J7GJVGb+x*<7?xd!mNI>QaM4nWlj0_ZorjSC^d>(*r9gpVQigS zq_5$Y7PhV-H|VFqT*%QW0&m-go)KfvNT47fBn9y>f>MU}e*E)AJ+_K_Sa{zU=!n*? z|J&gHLtx&?YX{ZW9fuynix)?d$mnFTcss3FYki67q=^jgtJHRzP^wst&J207ldEqC zaC(@9x1TVoxU4cnw4* z9XXt;Zw{6fFGma|V)1~Vu?!3N_8j^(hQbxh`1VSHf`YGxghnSnH23to->0hw7kMm8AHt1ax0Uj1^QHb@IK%x}J#%1Wv6IJ^No;-x^4&A(b zCdK=NfGWG`PJ>(!PK^?6qPJCvZ6PSbIMfyaDXaxkO|Q1r>vy|LP`hznY1Dz5Mv=3= zcu2lK7FEc(ww<$cpJfpOjpDVASqrG%yEXns!{8?e=n7Pyv)8!Q9>sC;ZxwEPs8_P6 zP4>v9nqd9_F{v?Kc-17SrB;xmgDu)ua7c8(79mEChUfJ(DMeAlb%Ccu3nz6b8Ym-E zWoXl?6hAmp80C44{RY9#SiiI_vm12wP%Ne&Xk=0n(s|zdmMx387j;rMWxOY?K6h>A*ScMFv?US#G; z$Z+|mpNj4>QdzzrqI{ZnR0P14r$4;#Pp@?J}KMsUWOgg~7Zmy@Dh(!MH%nnhgR$vxJA+-bT>BeyNF5xaNPn zyR2ztmN;CB3hy~VUBe`7X_g)0Oa~A^iCCjZS1mc(0ubC;HQrY9QTdj-f%> zhw>F%7Cb|O!Zh{QpGOQ*3ku#le_1fz`$0t?LJmVg5gV9~RX9|Ve+J1D-y02{uBcG; z&O7~{h2HtR}6x-Olf+~iO$Xe6^Yc+N63e}6-9*ZC8L|EgEjx1$&4afqtd zTc4!Gt%5wb)kgNRqg9gZPX#r`3c_uJAP)kZxC1}4bQE%yA2OQB-cqohD$m)l(@5iU zrQ%%K+6C8`H!eZa_h^GJv-lisuP;$)D9erqC9X812^Dc7{FfZ>sHJP^ZBH1y7`KZ! z%uP~)5=aWvGnmkUCA5d<2l|4OFeJGcqhOXc$#*Pw4z0T+WUssKu8$@=07}W8 z1LM93X>f((kjFy^;Z(`7hxN(fv1e(Qk87r&y_3vGJ+6{CAdC{j&ESibJo5uAiKT`~ zK_FC66N7m6gmcR)A3Xa+_I2y0$+mW$WX%=G0|>-_??*bn%D5cv+s~=AdX0OJ|7&8| zPA5}brq<6ztR>O4IQYSe8kEkX%L#)9wT zbCse7eDF*l z0adGDQ9Ko-<W_XB#{wQATF| zruNA}v!n0`2vAg38&O{0v|dX*bMGPflxGEnasxb5$!(kYw85z9Y1!ns@R)`@`*1PdyTDt(VcwLi}1F_=tS z!$JYGHtVXP!&oat^&xx|;Oh4F&EmddzS8@7ru9IMR0%fzPrSxlg1WU&+;6zdvEz@Go`o=Ci&jhYgo69qhRp6V#<>I6sioGAAbp|Lqs@D9D94DR`^fj3E zigplj%GG^L`qYy&b)E6!d&bwMN6CIwc+L#X#~lPsw?f!-gnlpl`nMc&83fwt^`15J zVAwzZB&!teNbNHAHLpipN=)U|AHMJYB0!Ida@TOzd%Vqz#oBLf*k7#J-J@b`t%;RR zoA$f)^RK=v@11V7d=L=;CLXr8_{*fn%1JfimwJ&$j6@|Y=K;c`+i2~p5M$6;NOUvILBAOpi8?w-cD^bZC zR=uIiSCzvZt%0zgK7y2N2e#~4$+b*hc1!}{Xg-0_u7`_d?YVxEWG^9(kdxPNRc2CP zmhPhfe%fX}WO9nk)4;Ap2nutrw5^*tv)*IrNDLQ7zxn6nX!mApJkCWgP^-(j4oq2%6kvYMvFpvV4DZQR?r;YV=4aU*KV4LK@b9bjMyRcgyY2K; zCqnq8vU=zP*?c6Fu)(IAdLfe~Aq_nkK3U5h2u(rjttcb9e}W=JK3)E*op3Z^H_~qF z?MTIQ(9Ni?Q09u^6efKhm7Fi1IoO|^(Af+Sa&=LAI^0pk<)7?B0+#)+;zQpAz`h0;m~Js zq&8h?aqICLPAp5mq{F{tLn%}$+oxN zR8ZyXsUh~2JAQV)?mkBS+N6~~S}?4&ohlz+t&K_qtV{l<_eNsI!Ti*B=QAUvx#s43 z@Ib3HS+r$287Zw47jI``vJ_s0(Q=70pXwEac8$ubBcIfH7jTuuzt(O(%0ULxrX6IhZ5{G6B2+no@+HUZ_xmmZA={o#%%`4%pe(YshrhZB8)_? z01yY5BsAEek$WNYu6@<|&23~j4b3305KWa)J@bN&pe5Di&&QaP&e!z%&8AHQ(1iQ2 z`PE0ms);C(8*pp27(8s=S?7d^F)s|=n4uLr!$%EhNH1gegr)9d_0>O`_B-o1q2ZNu zRQd2L)R?U1ASY5YQX4e1WBwlt&*yp7t!Ll#+U4U-<=D7tWjOi#5xx$>C&g4^^M7A8 zGw+KY+?M(BYX_UeX{Hk?Sw=_SCxCcw}^=$J-X_ z_#n8~J!hpAUDJZKL>d)U{P*5pMnLzV==~#B4*4|N2ZWefUx|OL6F*I)!W@!q(>PPE zf1Xig`h1W>reGZ({6PPS{@wIn^r&oXTKk*1w#Mm5mH*V{TiG>Ize~XT9P{$0;cxy? zR^1Z0-q_fS!tlF+M?uKulEHK0H_ieFAyq9LyxmpDDW8Y+{6KX|$pZ_PPPf?*W1`xc zbJm#+EP=YeT?}NhSs^&F3`9!!b|N9PFF5)B!VD(RgTbJapgRmNPqi2^SJ4S{3s-^#0aJm!n+JtqjpoL|0vNKM;9 zwADR-#*BhRhMj4^jfT`Np%;OKo~8t~^@rDm4;9ei(flFsG1KuwF#%Lg6J`kkbgVyF2D zxAC-_;72i>QL?6RN`}7@p(%-?3U`AL#Ce_jXDjQiWm?klSzGc>sAGcmC(!Xu2*KK0 zB3^zSLQJb~Z(;4k+PR3qginpqz?Pj)`*KUdj3wL1WzAriK~C6K&6JXzk~$5Z3#HLk z*JggbUAXhS*!)F?M{qLR>gaM|HvaNr_P2on^6I1E;o)7xFK*m6{#f3Ah38-9FquMW zCpt&%=l4b(r%TgbP#LL%#LPzu>!aSL6!z%UdZrO)FuUS=mQp*8%O%e4Z)2KU9v4YE z9TS<8;1D5(O2NG~xjml+2R{qSBqnO*NpZjJMWFMn_2}Tj6u2@RWpS5Y|BD+VPvDOM zn=v34`MtIIK!3YgZqK9-e&7q0Pjz~M9G@N_R1C7p%^04#y^lkO&(0GPJ7b~AiB9@Hf$C^@>*GA@f*RKHS z@A!pNyB=NzL(vq+iXGSbFB4z>BvtZY5-aRbJH#WP$1#X9`6GN{bn8XLuG6?d$FKD@ zLj#PKiW0HBpkcruh_M&O|B{YkqokSE+X+hGpy+pNruK_m z$79TAEm&#GKzJ!sY8d3NHChGkeTdis7Hm)h*6jrboM49Fm%j;9~8`SC)%vhJ|ob<(vy7`{Lb((Sv2F5b-j%$wnmtz)Skd2uEC%uAn|@H+Ua7@D6uo{H6(!}xBIVmRaNU90y?rEQcobjAOEl2 z#AidZ#J~dHm-!@vpLN<;IGE70N`2XGrH&JSNCHk^X;DNJ25GVgi&yKyk*?i7`a(j6 zYvMSty)6|^4fP9CJ-Swx88i1jcM)&33I*OJ2`{!BzK4B7XHS6bYe**VGzt;P4QqLV zGER8s#of)F{zM_^D_cHk2NuXEIY-F%v0PiGTap&~uzcu!mLN|+foI1l9|QsDl>EA& zWTXk7mSg9H$jB8{SMLraNr^lGv{jiYjH+6aA;bd!*hZC}Et8;6H%#H5gk|3MEK6%D zn)iB3zG#R#&m;LbUK?z+)~1p{V{aa2FFrgDWGH^{W-uLW#@c5k}p8Qqag>xX=`A6ZcnY#s1$>wxA6&Nk(i) z4@x&d04uB?e69rTrR;}neykAE_Z z7TZs?E07dzq8P(1XG~krwp%>9R5o4*(zEh?9+Kn=sk)1 zuKP*6e~E-tPFtAo{;x?W^z}E0>3{?vXo1zr5+q3%pYfEVtSWTBLoiAnB+YH}g(AUd z@T=@MNtGVg2yzKYDwX@wV4n~F6#?Ab>qTshl92dT64FsLZt;Nry)WfHhjwZhE0N(i z_X2WYF$bK-Hj}`{EMi-k+QH@GU!|%TTX0s<7gCug*V~Y6JR*(jRsteZQ~e4sfz>@m z`k-74fk~>_ag4}Qe-zR49f6#m#}t;WB4m!lkap0~g(k1T4n4~Q)}KTm+e`n2-ls#l z{6%;jvTSDt581KcV3%GV2Ov6&cC?X*QUH>#a$RDGE zT>hA5D@bk?2Q{Hc3Pdp(uVDDyA@(mKuW01Ri4D(+yw)G2?GZ{Kl=N4;N1LGG=y{_) zZVs0JagQRdABc{}FM#NG%mk^htJH(3$YBD* zRYbNx-3H$9VLrr)sKk^GvT*#G7M}Gus+SJ za4O$3Mx<3CJc;r=KH5f zOVXnXuFYH38cp~0*vMCPkC~x@<$M4IOc2vE4(D*`Y9=P7^oH*FF-T^DN$BXCZpB76 zhvsaM9xeJ3aqWESg%cBfC7Su6W6PUAY5Zl?im&C<3?P3hqN_g5UZ`!HBNq@%urW~Z zr>t>5D@HdkS-%d)GB>=AQ}>wHr+;47(9aw8gJKZ-T9n~_K+)t|6*~z^?2RKIoCBRF zA1>J6TbV8@4b@ShSMa<3tAhy&H{l>cC{gq69!4`$CL9MfmA@AGjgJ4Mm+O7l+6s#o z4_;FbLeMu-AP~-)A8iG#OTq+Z@lhxu=o~6OCEsfEZd~MC2S^O-w_e1Pt79iP=1<|{ z3XNGVV$&6T zP4Gg^Z7w@6!ggIoE7G(Z)(plfHTmZ6qx8f}ycij^V3x)4M{t&27|DNkv^XbUrwGxW zb__<+lJ_O+W4(wsU5nS6qQ2~#slswNq&zPowu{*>)p^93)SF;(tx+B67j$9lY^B42)gy31B~J(-m7o_;jP=PPNz4I|Fn$ z7HNX!VAvsl*L8b+AFpwS+Rmk@mq8~FmDGaldi0^ZDj(mqT`lS3P^w~LgPWa6+c(uj z6}6{DqUr$y0^i@vocYIS00SaklLBq>#q}Mk_vL?u>;=>;<37Ps;wk23@oYmBm6WmZ zZzum#f$0%p#2>$?4|yL|FBeI`Z{-{ z+19dM6~j(6rjp}s%ema98{MET+x0wv&WS-P)P?Hbat8L2e4;0|*ffz)JxtbSEnodJ zhxBl3A(HQ}A{x1Ab^qi3yM^?h!wp>kxy;_`CFHHMF`eJh!4kS>^7cNhfoyE#{2m@V zS@hQoC2x-n+D_dr9Ir|c(Zan5{sOUhmqyyJV6SV{#Ky=DiRuTQCSWdz|AGb4sQhwa;PC|R7?~h= z#07ahlC)-15PRM%(a!#6=&AlOTHXc#hwPJ4u%U|iaBqlWN9MZa`9>EpmNu#d=M}rD f|If(H+XrN2dH()b3byyZhhb#DDM(g|8wUO#Su7+W literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..030b217464309a2c3ee59280f446c98fd9213f26 GIT binary patch literal 3862 zcmV+x59#oUP)a+UVuGZnHOGSNF0kuBo0TmQMt*ugP zD^**yYU}Xc>T`*{0ku4>vjzwdF#&~0LPF-;>729o@BMK?41wg{kioUo-^w3nC3oF( zK4%Z-w|{4cm>FO95MT8Lj7NNn{JO-q$gfL$Bap`UpK{pGECP+}j9&qgMtI4?kMTn? zdK;u6#u+*Z&W361E^j1#i2hdx}ZUT@T1fuZ{>0|Hg4+>eUAAm1%_7ElfC=UoKBB78rpL0F8C-+V|}%HmcP-be0Dy-3f`njHJT+a(Pmb zPz*V;VLZ0o)#Wf_#YXj7V`f713Ky2k6GlUbF-7(XAK0MYXv$a!Bo(fhF26frbc7f? zq&t@?#;-T1HNz366t0>s=Z>BbV}x{t4&zrf&RaVm`?AF{3TSs3TpWt#RLa=iQcJ3+EJ!z7V5}bcL42z3ZL#GZPAe zVmKPt%#=svkBJbYh;%cOl)^phoex_x6*?Mh2|#e1Po{SHPW=s6~-Ohz0Ro_ zj*x-tE99ZM>4aK?Xy3~-cMixPM%0q7Fy`Rywa$i)VF&@-SRt!25efl7ceJVP+jXo% z9aJa`ui=eIUpA2dGNSH3(iQgDSi07!?aWkYYY5|Jr4cei2zzs__152=t##bd z$%RpsbriG)N$CyyqNV=qDG&mzK|?L4_7mv}yKUUH*4f<2;mn1E8)q4_veODRNHqTT zch>4xvkxv|A;}*=I83G&js`&`yJGe_+iDI*Dr7J+bbId4deRkk*;rCNJfS4qoPm(F z2E@*le`tL0H@2zH1ml zgK$fwF*9u&YE44K>o@HD{Ue@&e7h&Ek`{zuJB79mP9|78A}f^oq@m^J$KtPVNN)MO zW!X}W$9k8cBS*Tzc8ix(J6n1U@G^S^z69OR8b~0st5tv)0dlE`1Cz+yD z$|x=KR2=3FPBg;VJ+Hpga{Cij!!A#Lbi#3mM<(7c4O69KZV`%JJ>&bXH}Tmqtp8 zq{q-oTOYmWJ@&iufXVwDoSC+yE8Lah#no#2Fom~fCh%*plSMAFGBK2Qw3< z6nq92RT)z=6lx7XZ`)39tcBml30vd^COvd(-n@&TH4#CG-d55&aMH=hFVwaLDFJ|l zZfJ0C)BYe`VRM2Pf2?-Ihan6YxUJGSII@S38G5iEBF&(Q#Z7ac)aN4pv-d0Gg^!vSk6J@Hms4b}fjeMfYqWB38CF$)k%8 zh6WgLQqmh9#5g#T0YTUi=f%}dYZ93VB_W{@F|nx1C=Kl)bdTR{(GPA^DU~kSWQY6} zYS4f9MEQ;0icT6Lph+YZ zuAIJS!1mT6x)Km33Wc2F54Tkr#epwJ4g+8i;fXr+;%7SI z0dqz|0C5Kk%H{Va_7gILNOyI1KX8xkXcwU%X$@&`JZ2tJ9=K%T9(9AgVyNe&AZSL| z#I04vp}Ev)4Sb-x!aN_{zL(G)9lxvX73xfc%&b)`r7k~2>?H&{PW-9I(A6PBAvlUb zIu@hc0^ive3@uE9>~s1hZklDxDWr~mPFI-k!|k)>#Jz-qaP3-qMZJ^lO+N@-p)$-w z(6?ZY?+25l(%kQcGBgs;JmGBG2-C|c3m`Z)`TfCpmx@q0ZE+xd#v=&KFa@rgX`D1s zxK3AC;HNug8%6$o2ya~HJpGx5KwXm4CUnGFd5mCt^Md;q9JOMZ)7CDgMKqS`u zSE_zJ%8EHFfJgv>SgGK77t6w;A%1BLGKqMBZz!(hN9G}*k}VuSWE zEQ#4MJh6P=IosbZ|LC=jykc)rp;h}y)55FSvPjCVHUIbdwKuCCTSNlxX&9FOpu;m4 zVz?#AzV?he2pAY3l!V)BoJZ<=h5c`k%_#9uv4?E_GV3B{WyLfsvc+0oDsj|iQ9G(7Nl3d56*%A}X>CvpIob|1LHB^#WF z>jnz@oDO5Mmx|0@Cjq2YcgVMJ`DGRV{g07G8baMH%1IdgC*gvje`o^&r8DRDQ=l z@P4Lbj7b8f))e$x>o)mH!g-m^~VdU|!@o!YWT zAMsC{24Gly6(dBt&+Ao<`s}x@(jeJ`)&%zmW}XuE%`d|bi&-VD?x&uCW5-|k_hj9c zgkg3%+-Paeyrqk?F1|4H_8cj)Z*bnU&iUiePG$ho@7wkF|K0ia`@x+2)k}YJWRbUN z>HUe9UKXLCIeBujaYv%9HS6Eb2%Rxk)qK`C@4hcOQ&YT549!eJkPxht?(QyG{fc*1 zMTX8%*sRo-0}SP429fl6cdmMI*L&~EqAAMa+^GMx>rSYU2`ifAEi8zC_(A>E*SR&T z&}m0TF8o1q;fhb+*w7UUPAALVIYB~jJTCL|OI~|b=H~V;0@B4OY&)af@BNp}GA=q$ zwxnPTIPY#@;|q`NdgB$!DN+#9CtKTNr#!G`YhkH(LSd@D&VK&Mtm1rV4W+uCdA)V% zGnOGH8(IPzw8?-Vf>I(9&R>3~%*zGq42R|D?5*o_-aX5>xNJ`+GlURc&yFYWZ(H*U z6_&9l2xg^N20V>BJLcZ>AGPnT*H1sH8QIgy@@7ndVZbAt`dxvFqm{r^PT7|83A{oI z-PswvWM1ghQ`m7bpI}FA17V+YX+=LLYe*psvEz|D+W)bdCe7qPPTwPzwFVimyY+wm znY+5-^{7-TR9skCIaQiQ$-Q^yoO714Ebjrul_dq;yV|zGBLPmPhIqF#w#Wg_OUh(R zl1-0C2x|EK9UULNOJzrJxDX`W>`)N2gNen#SLWwWIs350qyiC7K?vnI9uB`TF#(XH5OYz8PHlwA+CJ-o!_i@!JJ%blev2nD*#Ba627at-n+ix z&DQBt3m2SjmKHje^3~Lb>?r;8eAb$TfKsX2&E6U109Z5a@1EB&+0;vbAfYs`IQOW_ zFF(VM!IZLp5lexDPMz3RAB#ryrwuK){;6wCO>Wp&6D+)-@c;k}Vg{u2&M0R`0U$we z-}wwb#%h-&5d@K9e)z&8g|dJ9;zveSz)`y|kpV*lrcP9A*C8CTQ%>@ie_dPOGJofc zZ5yiz{KUc&m1Y4VVlsC3%;Ds#{bLNbXA>YmO7lY(AA7|ahdCW_L-w9d3h20c`IwW- ze*S$UnF_*D0pIy=`nK(~yhWiWU#_|Q(Kn?ar8N(K&9RRw8T0Mg49zSB{o+smc<{Lo zjI4mt46tCZ;_H80a8~@&#Ivv69zNoKB2x_~t{_ZFR!8ExbG~!$xkoC^awOZ&0gM9@ z{hZf4`S!2=@;-vzFaHqNo&rBC%d!NZdTYx>B#1i`w_bG2oo61dHH(os#{-Fe&g=jD z?#fl`h0oM(zAj+d8bX-Fde7HU22rdh`QXpzUV2jb2%Y1EL~l)Px#07*qoM6N<$f~g#QA^-pY literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..049edda11fcc837dafe52a4904c972f93608461c GIT binary patch literal 9166 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

    OuEbg`;F;*>CdvD13h3PFOF@7xF8zhe~L`E?OFg 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 b4DJHur}jx|GY!F190176sK834OoRUq7_#Xv literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 00000000..0bedcf2f --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/flutter_wechat_assets_picker/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Base.lproj/Main.storyboard b/packages/flutter_wechat_assets_picker/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Info.plist b/packages/flutter_wechat_assets_picker/example/ios/Runner/Info.plist new file mode 100644 index 00000000..b39627a9 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner/Info.plist @@ -0,0 +1,58 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Wechat Assets Picker Example + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + com.fluttercandies.wechatAssetsPickerExample + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + NSPhotoLibraryUsageDescription + Read your photos for display + NSCameraUsageDescription + Take a photo for display + NSMicrophoneUsageDescription + Take a video for display + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/packages/flutter_wechat_assets_picker/example/ios/Runner/Runner-Bridging-Header.h b/packages/flutter_wechat_assets_picker/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/packages/flutter_wechat_assets_picker/example/lib/constants/custom_pick_method.dart b/packages/flutter_wechat_assets_picker/example/lib/constants/custom_pick_method.dart new file mode 100644 index 00000000..83897c0c --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/constants/custom_pick_method.dart @@ -0,0 +1,20 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/5/10 16:56 +/// +import 'package:flutter/widgets.dart'; + +@immutable +class CustomPickMethod { + const CustomPickMethod({ + required this.icon, + required this.name, + required this.description, + required this.method, + }); + + final String icon; + final String name; + final String description; + final void Function(BuildContext context) method; +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/constants/extensions.dart b/packages/flutter_wechat_assets_picker/example/lib/constants/extensions.dart new file mode 100644 index 00000000..5e4c42fb --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/constants/extensions.dart @@ -0,0 +1,32 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/8/19 14:12 +/// +import 'package:flutter/material.dart' + show Color, Colors, HSLColor, MaterialColor; + +extension ColorExtension on Color { + MaterialColor get swatch => Colors.primaries.firstWhere( + (Color c) => c.value == value, + orElse: () => _swatch, + ); + + Map get getMaterialColorValues => { + 50: _swatchShade(50), + 100: _swatchShade(100), + 200: _swatchShade(200), + 300: _swatchShade(300), + 400: _swatchShade(400), + 500: _swatchShade(500), + 600: _swatchShade(600), + 700: _swatchShade(700), + 800: _swatchShade(800), + 900: _swatchShade(900), + }; + + MaterialColor get _swatch => MaterialColor(value, getMaterialColorValues); + + Color _swatchShade(int swatchValue) => HSLColor.fromColor(this) + .withLightness(1 - (swatchValue / 1000)) + .toColor(); +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/constants/page_mixin.dart b/packages/flutter_wechat_assets_picker/example/lib/constants/page_mixin.dart new file mode 100644 index 00000000..43634aa5 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/constants/page_mixin.dart @@ -0,0 +1,88 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/7/13 11:46 +/// +import 'package:flutter/widgets.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart' + show + AssetEntity, + DefaultAssetPickerProvider, + DefaultAssetPickerBuilderDelegate; + +import '../widgets/method_list_view.dart'; +import '../widgets/selected_assets_list_view.dart'; +import 'picker_method.dart'; + +@optionalTypeArgs +mixin ExamplePageMixin on State { + final ValueNotifier isDisplayingDetail = ValueNotifier(true); + + @override + void dispose() { + isDisplayingDetail.dispose(); + super.dispose(); + } + + int get maxAssetsCount; + + List assets = []; + + int get assetsLength => assets.length; + + List get pickMethods; + + /// These fields are for the keep scroll position feature. + late DefaultAssetPickerProvider keepScrollProvider = + DefaultAssetPickerProvider(); + DefaultAssetPickerBuilderDelegate? keepScrollDelegate; + + Future selectAssets(PickMethod model) async { + final List? result = await model.method(context, assets); + if (result != null) { + assets = List.from(result); + if (mounted) { + setState(() {}); + } + } + } + + void removeAsset(int index) { + assets.removeAt(index); + if (assets.isEmpty) { + isDisplayingDetail.value = false; + } + setState(() {}); + } + + void onResult(List? result) { + if (result != null && result != assets) { + assets = List.from(result); + if (mounted) { + setState(() {}); + } + } + } + + @override + @mustCallSuper + Widget build(BuildContext context) { + super.build(context); + return Column( + children: [ + Expanded( + child: MethodListView( + pickMethods: pickMethods, + onSelectMethod: selectAssets, + ), + ), + if (assets.isNotEmpty) + SelectedAssetsListView( + assets: assets, + isDisplayingDetail: isDisplayingDetail, + onResult: onResult, + onRemoveAsset: removeAsset, + ), + ], + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/constants/picker_method.dart b/packages/flutter_wechat_assets_picker/example/lib/constants/picker_method.dart new file mode 100644 index 00000000..31779678 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/constants/picker_method.dart @@ -0,0 +1,397 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020-05-30 20:56 +/// +import 'package:flutter/material.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; +import 'package:wechat_camera_picker/wechat_camera_picker.dart'; + +Future _pickFromCamera(BuildContext c) { + return CameraPicker.pickFromCamera( + c, + pickerConfig: const CameraPickerConfig(enableRecording: true), + ); +} + +/// Define a regular pick method. +class PickMethod { + const PickMethod({ + required this.icon, + required this.name, + required this.description, + required this.method, + this.onLongPress, + }); + + factory PickMethod.image(int maxAssetsCount) { + return PickMethod( + icon: '🖼️', + name: 'Image picker', + description: 'Only pick image from device.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.image, + ), + ); + }, + ); + } + + factory PickMethod.video(int maxAssetsCount) { + return PickMethod( + icon: '🎞', + name: 'Video picker', + description: 'Only pick video from device.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.video, + ), + ); + }, + ); + } + + factory PickMethod.audio(int maxAssetsCount) { + return PickMethod( + icon: '🎶', + name: 'Audio picker', + description: 'Only pick audio from device.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.audio, + ), + ); + }, + ); + } + + factory PickMethod.camera({ + required int maxAssetsCount, + required Function(BuildContext, AssetEntity) handleResult, + }) { + return PickMethod( + icon: '📷', + name: 'Pick from camera', + description: 'Allow pick an asset through camera.', + method: (BuildContext context, List assets) { + const AssetPickerTextDelegate textDelegate = AssetPickerTextDelegate(); + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.common, + specialItemPosition: SpecialItemPosition.prepend, + specialItemBuilder: ( + BuildContext context, + AssetPathEntity? path, + int length, + ) { + if (path?.isAll != true) { + return null; + } + return Semantics( + label: textDelegate.sActionUseCameraHint, + button: true, + onTapHint: textDelegate.sActionUseCameraHint, + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () async { + Feedback.forTap(context); + final AssetEntity? result = await _pickFromCamera(context); + if (result != null) { + handleResult(context, result); + } + }, + child: const Center( + child: Icon(Icons.camera_enhance, size: 42.0), + ), + ), + ); + }, + ), + ); + }, + ); + } + + factory PickMethod.cameraAndStay({required int maxAssetsCount}) { + return PickMethod( + icon: '📸', + name: 'Pick from camera and stay', + description: 'Take a photo or video with the camera picker, ' + 'select the result and stay in the entities list.', + method: (BuildContext context, List assets) { + const AssetPickerTextDelegate textDelegate = AssetPickerTextDelegate(); + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.common, + specialItemPosition: SpecialItemPosition.prepend, + specialItemBuilder: ( + BuildContext context, + AssetPathEntity? path, + int length, + ) { + if (path?.isAll != true) { + return null; + } + return Semantics( + label: textDelegate.sActionUseCameraHint, + button: true, + onTapHint: textDelegate.sActionUseCameraHint, + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () async { + final AssetEntity? result = await _pickFromCamera(context); + if (result == null) { + return; + } + final AssetPicker picker = + context.findAncestorWidgetOfExactType()!; + final DefaultAssetPickerBuilderDelegate builder = + picker.builder as DefaultAssetPickerBuilderDelegate; + final DefaultAssetPickerProvider p = builder.provider; + p.currentPath = + await p.currentPath!.obtainForNewProperties(); + await p.switchPath(p.currentPath!); + p.selectAsset(result); + }, + child: const Center( + child: Icon(Icons.camera_enhance, size: 42.0), + ), + ), + ); + }, + ), + ); + }, + ); + } + + factory PickMethod.common(int maxAssetsCount) { + return PickMethod( + icon: '📹', + name: 'Common picker', + description: 'Pick images and videos.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.common, + ), + ); + }, + ); + } + + factory PickMethod.threeItemsGrid(int maxAssetsCount) { + return PickMethod( + icon: '🔲', + name: '3 items grid', + description: 'Picker will served as 3 items on cross axis. ' + '(pageSize must be a multiple of gridCount)', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + gridCount: 3, + pageSize: 120, + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.all, + ), + ); + }, + ); + } + + factory PickMethod.customFilterOptions(int maxAssetsCount) { + return PickMethod( + icon: '⏳', + name: 'Custom filter options', + description: 'Add filter options for the picker.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.video, + filterOptions: FilterOptionGroup() + ..setOption( + AssetType.video, + const FilterOption( + durationConstraint: DurationConstraint( + max: Duration(minutes: 1), + ), + ), + ), + ), + ); + }, + ); + } + + factory PickMethod.prependItem(int maxAssetsCount) { + return PickMethod( + icon: '➕', + name: 'Prepend special item', + description: 'A special item will prepend to the assets grid.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.common, + specialItemPosition: SpecialItemPosition.prepend, + specialItemBuilder: ( + BuildContext context, + AssetPathEntity? path, + int length, + ) { + return const Center( + child: Text('Custom Widget', textAlign: TextAlign.center), + ); + }, + ), + ); + }, + ); + } + + factory PickMethod.noPreview(int maxAssetsCount) { + return PickMethod( + icon: '👁️‍🗨️', + name: 'No preview', + description: 'Pick assets like the WhatsApp/MegaTok pattern.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.common, + specialPickerType: SpecialPickerType.noPreview, + ), + ); + }, + ); + } + + factory PickMethod.keepScrollOffset({ + required DefaultAssetPickerBuilderDelegate Function() delegate, + required Function(PermissionState state) onPermission, + GestureLongPressCallback? onLongPress, + }) { + return PickMethod( + icon: '💾', + name: 'Keep scroll offset', + description: 'Pick assets from same scroll position.', + method: (BuildContext context, List assets) async { + final PermissionState _ps = + await PhotoManager.requestPermissionExtend(); + if (_ps != PermissionState.authorized && + _ps != PermissionState.limited) { + throw StateError('Permission state error with $_ps.'); + } + onPermission(_ps); + return AssetPicker.pickAssetsWithDelegate( + context, + delegate: delegate(), + ); + }, + onLongPress: onLongPress, + ); + } + + factory PickMethod.changeLanguages(int maxAssetsCount) { + return PickMethod( + icon: '🔤', + name: 'Change Languages', + description: 'Pass text delegates to change between languages. ' + '(e.g. EnglishTextDelegate)', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + textDelegate: const EnglishAssetPickerTextDelegate(), + ), + ); + }, + ); + } + + factory PickMethod.preventGIFPicked(int maxAssetsCount) { + return PickMethod( + icon: '🈲', + name: 'Prevent GIF being picked', + description: 'Use selectPredicate to banned GIF picking when tapped.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + selectPredicate: (BuildContext c, AssetEntity a, bool isSelected) { + print('Asset title: ${a.title}'); + return a.title?.endsWith('.gif') != true; + }, + ), + ); + }, + ); + } + + factory PickMethod.customizableTheme(int maxAssetsCount) { + return PickMethod( + icon: '🎨', + name: 'Customizable theme', + description: 'Picking assets with the light theme with different color.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + pickerTheme: AssetPicker.themeData( + Colors.lightBlueAccent, + light: true, + ), + ), + ); + }, + ); + } + + final String icon; + final String name; + final String description; + + /// The core function that defines how to use the picker. + final Future?> Function( + BuildContext context, + List selectedAssets, + ) method; + + final GestureLongPressCallback? onLongPress; +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/constants/screens.dart b/packages/flutter_wechat_assets_picker/example/lib/constants/screens.dart new file mode 100644 index 00000000..9530a2c6 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/constants/screens.dart @@ -0,0 +1,64 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/8/19 10:29 +/// +import 'dart:ui' as ui; + +import 'package:flutter/services.dart'; +import 'package:flutter/widgets.dart'; + +/// Screens utils with multiple properties access. +/// 获取屏幕各项属性的工具类 +class Screens { + const Screens._(); + + /// Get [MediaQueryData] from [ui.window] + /// 通过 [ui.window] 获取 [MediaQueryData] + static MediaQueryData get mediaQuery => MediaQueryData.fromWindow(ui.window); + + /// The number of device pixels for each logical pixel. + /// 设备每个逻辑像素对应的dp比例 + static double get scale => mediaQuery.devicePixelRatio; + + /// The horizontal extent of this size. + /// 水平范围的大小 + static double get width => mediaQuery.size.width; + + /// The horizontal pixels of this size. + /// 水平范围的像素值 + static int get widthPixels => (width * scale).toInt(); + + /// The vertical extent of this size. + /// 垂直范围的大小 + static double get height => mediaQuery.size.height; + + /// The vertical pixels of this size. + /// 垂直范围的像素值 + static int get heightPixels => (height * scale).toInt(); + + /// Top offset in the [ui.window], usually is the notch size. + /// 从 [ui.window] 获取的顶部偏移(间距),通常是刘海的大小。 + static double get topSafeHeight => mediaQuery.padding.top; + + /// Bottom offset in the [ui.window], usually is the action bar/navigation bar size. + /// 从 [ui.window] 获取的底部偏移(间距),通常是操作条/导航条的大小。 + static double get bottomSafeHeight => mediaQuery.padding.bottom; + + /// Height exclude top and bottom safe height. + /// 去除顶部和底部安全区域的高度 + static double get safeHeight => height - topSafeHeight - bottomSafeHeight; + + /// Method to update status bar's style. + /// 更新状态栏样式的方法 + static void updateStatusBarStyle(SystemUiOverlayStyle style) { + SystemChrome.setSystemUIOverlayStyle(style); + } + + /// Scale factor for the text. + /// 文字缩放的倍数 + static double get textScaleFactor => mediaQuery.textScaleFactor; + + /// Return a fixed font size according to text scale factor. + /// 根据文字缩放计算出的固定文字大小 + static double fixedFontSize(double fontSize) => fontSize / textScaleFactor; +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/customs/CONTRIBUTING.md b/packages/flutter_wechat_assets_picker/example/lib/customs/CONTRIBUTING.md new file mode 100644 index 00000000..5f31830a --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/customs/CONTRIBUTING.md @@ -0,0 +1,21 @@ +# Contribute custom implementations + +This folder allows people to contribute their delegates, use case, or even a brand-new picker. + +To add your works, make sure you follow this instruction. + +## Ensure that your picker is worth to contribute + +People usually have their own apps to build, and the thing like the picker is not always the same between apps. +However, some patterns can be consumed using arguments and fields override, without creating a new picker/delegate. +Please think twice before you confirmed it should be pushed as a new implementation example. + +## Contribute steps + +1. Fork this project. +2. Create a new branch named `custom-{write-your-implementation-name}`. +3. Create a new picker dart file named `{your_implementation_name}_asset_picker.dart` in the `pickers` folder. +4. Brought all your implementations into the file you've just created. +5. Add a `CustomPickMethod` at the `custom_picker_page.dart` file in `pickMethods` + in order to build an entrance to your picker. +6. Submit your PR with proper explanations with how your picker works. diff --git a/packages/flutter_wechat_assets_picker/example/lib/customs/custom_picker_page.dart b/packages/flutter_wechat_assets_picker/example/lib/customs/custom_picker_page.dart new file mode 100644 index 00000000..d4aadd34 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/customs/custom_picker_page.dart @@ -0,0 +1,137 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020-11-01 02:05 +/// +import 'package:flutter/material.dart'; + +import '../constants/custom_pick_method.dart'; +import 'pickers/directory_file_asset_picker.dart'; +import 'pickers/multi_tabs_assets_picker.dart'; + +class CustomPickersPage extends StatefulWidget { + @override + _CustomPickerPageState createState() => _CustomPickerPageState(); +} + +class _CustomPickerPageState extends State + with AutomaticKeepAliveClientMixin { + Widget get tips { + return const Padding( + padding: EdgeInsets.all(20.0), + child: Text( + 'This page contains customized pickers with different asset types, ' + 'different UI layouts, or some use case for specific apps. ' + 'Contribute to add your custom picker are welcomed.', + ), + ); + } + + List get pickMethods { + return [ + CustomPickMethod( + icon: '🗄', + name: 'Directory+File picker', + description: 'The picker is built with `Directory` and `File` ' + 'as entities, which allows users to display/select `File` ' + 'through `Directory`.', + method: (BuildContext context) => Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => const DirectoryFileAssetPicker(), + ), + ), + ), + CustomPickMethod( + icon: '🔀', + name: 'Multi tab picker', + description: 'The picker contains multiple tab with different types of ' + 'assets for the picking at the same time.', + method: (BuildContext context) => Navigator.of(context).push( + MaterialPageRoute(builder: (_) => const MultiTabAssetPicker()), + ), + ), + ]; + } + + @override + bool get wantKeepAlive => true; + + @override + Widget build(BuildContext context) { + super.build(context); + return Column( + children: [ + tips, + Expanded(child: _MethodListView(pickMethods: pickMethods)), + ], + ); + } +} + +class _MethodListView extends StatelessWidget { + const _MethodListView({ + Key? key, + required this.pickMethods, + }) : super(key: key); + + final List pickMethods; + + Widget methodItemBuilder(BuildContext context, int index) { + final CustomPickMethod model = pickMethods[index]; + return InkWell( + onTap: () => model.method(context), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 30.0, + vertical: 10.0, + ), + child: Row( + children: [ + Container( + margin: const EdgeInsets.all(2.0), + width: 48, + height: 48, + child: Center( + child: Text( + model.icon, + style: const TextStyle(fontSize: 24.0), + ), + ), + ), + const SizedBox(width: 12.0), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + model.name, + style: const TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 5), + Text( + model.description, + style: Theme.of(context).textTheme.caption, + overflow: TextOverflow.fade, + ), + ], + ), + ), + const Icon(Icons.chevron_right, color: Colors.grey), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return ListView.builder( + padding: const EdgeInsets.symmetric(vertical: 10.0), + itemCount: pickMethods.length, + itemBuilder: methodItemBuilder, + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/customs/pickers/directory_file_asset_picker.dart b/packages/flutter_wechat_assets_picker/example/lib/customs/pickers/directory_file_asset_picker.dart new file mode 100644 index 00000000..d3098797 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/customs/pickers/directory_file_asset_picker.dart @@ -0,0 +1,1576 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/5/10 16:44 +/// +import 'dart:io'; +import 'dart:math' as math; +import 'dart:typed_data'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:path/path.dart' show basename; +import 'package:path_provider/path_provider.dart'; +import 'package:provider/provider.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; + +import '../../constants/screens.dart'; + +const Color themeColor = Color(0xff00bc56); + +const List imagesExtensions = [ + 'jpg', + 'jpeg', + 'webp', + 'gif', + 'bmp', + 'wbmp', + 'tiff', + 'heic', +]; + +class DirectoryFileAssetPicker extends StatefulWidget { + const DirectoryFileAssetPicker({Key? key}) : super(key: key); + + @override + _DirectoryFileAssetPickerState createState() => + _DirectoryFileAssetPickerState(); +} + +class _DirectoryFileAssetPickerState extends State { + final List fileList = []; + + bool isDisplayingDetail = true; + + ThemeData get currentTheme => Theme.of(context); + + Future callPicker(BuildContext context) async { + final FileAssetPickerProvider provider = FileAssetPickerProvider( + selectedAssets: fileList, + ); + final FileAssetPickerBuilder builder = FileAssetPickerBuilder( + provider: provider, + locale: Localizations.maybeLocaleOf(context), + ); + final List? result = await AssetPicker.pickAssetsWithDelegate( + context, + delegate: builder, + ); + if (result != null) { + fileList + ..clear() + ..addAll(result); + if (mounted) { + setState(() {}); + } + } + } + + Widget get selectedAssetsWidget { + return AnimatedContainer( + duration: kThemeChangeDuration, + curve: Curves.easeInOut, + height: fileList.isNotEmpty + ? isDisplayingDetail + ? 120.0 + : 80.0 + : 40.0, + child: Column( + children: [ + SizedBox( + height: 20.0, + child: GestureDetector( + onTap: () { + if (fileList.isNotEmpty) { + setState(() { + isDisplayingDetail = !isDisplayingDetail; + }); + } + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Text('Selected Assets'), + Container( + margin: const EdgeInsets.symmetric( + horizontal: 10.0, + ), + padding: const EdgeInsets.all(4.0), + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey, + ), + child: Text( + '${fileList.length}', + style: const TextStyle( + color: Colors.white, + height: 1.0, + ), + ), + ), + if (fileList.isNotEmpty) + Icon( + isDisplayingDetail + ? Icons.arrow_downward + : Icons.arrow_upward, + size: 18.0, + ), + ], + ), + ), + ), + selectedAssetsListView, + ], + ), + ); + } + + Widget get selectedAssetsListView { + return Expanded( + child: ListView.builder( + physics: const BouncingScrollPhysics(), + padding: const EdgeInsets.symmetric(horizontal: 8.0), + scrollDirection: Axis.horizontal, + itemCount: fileList.length, + itemBuilder: (BuildContext _, int index) { + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 16.0, + ), + child: AspectRatio( + aspectRatio: 1.0, + child: Stack( + children: [ + Positioned.fill(child: _selectedAssetWidget(index)), + AnimatedPositionedDirectional( + duration: kThemeAnimationDuration, + top: isDisplayingDetail ? 6.0 : -30.0, + end: isDisplayingDetail ? 6.0 : -30.0, + child: _selectedAssetDeleteButton(index), + ), + ], + ), + ), + ); + }, + ), + ); + } + + Widget _selectedAssetWidget(int index) { + final File asset = fileList.elementAt(index); + return GestureDetector( + onTap: isDisplayingDetail + ? () async { + final Widget viewer = AssetPickerViewer( + builder: FileAssetPickerViewerBuilderDelegate( + currentIndex: index, + previewAssets: fileList, + provider: FileAssetPickerViewerProvider(fileList), + themeData: AssetPicker.themeData(themeColor), + ), + ); + final PageRouteBuilder> pageRoute = + PageRouteBuilder>( + pageBuilder: ( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + ) { + return viewer; + }, + transitionsBuilder: ( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + Widget child, + ) { + return FadeTransition(opacity: animation, child: child); + }, + ); + final List? result = + await Navigator.of(context).push>(pageRoute); + if (result != null && result != fileList) { + fileList + ..clear() + ..addAll(result); + if (mounted) { + setState(() {}); + } + } + } + : null, + child: RepaintBoundary( + child: ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: _assetWidgetBuilder(asset), + ), + ), + ); + } + + Widget _assetWidgetBuilder(File asset) { + return Image.file(asset, fit: BoxFit.cover); + } + + Widget _selectedAssetDeleteButton(int index) { + return GestureDetector( + onTap: () { + setState(() { + fileList.removeAt(index); + if (fileList.isEmpty) { + isDisplayingDetail = false; + } + }); + }, + child: DecoratedBox( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.0), + color: currentTheme.canvasColor.withOpacity(0.5), + ), + child: Icon( + Icons.close, + color: currentTheme.iconTheme.color, + size: 18.0, + ), + ), + ); + } + + Widget paddingText(String text) { + return Padding( + padding: const EdgeInsets.all(20), + child: SelectableText(text), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('Directory+File picker')), + body: Column( + children: [ + Expanded( + child: DefaultTextStyle.merge( + style: const TextStyle(fontSize: 18), + textAlign: TextAlign.center, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + paddingText( + 'This is a custom picker built for `File`.\n' + 'By browsing this picker, we want you to know that ' + 'you can build your own picker components using ' + 'the entity\'s type you desired.', + ), + paddingText( + 'In this page, picker will grab files from ' + '`getExternalStorageDirectory`, Then check whether ' + 'it contains images.', + ), + paddingText( + 'Put files into the path to see how this custom picker work.', + ), + TextButton( + onPressed: () => callPicker(context), + child: const Text( + '🎁 Call the Picker', + style: TextStyle(fontSize: 22), + ), + ), + ], + ), + ), + ), + selectedAssetsWidget, + ], + ), + ); + } +} + +class FileAssetPickerProvider extends AssetPickerProvider { + FileAssetPickerProvider({ + required List selectedAssets, + }) : super(selectedAssets: selectedAssets) { + Future.delayed(const Duration(milliseconds: 300), () async { + await getPaths(); + getAssetsFromPath(0, pathsList.keys.elementAt(0)); + }); + } + + @override + Future getPaths() async { + currentAssets = []; + pathsList.clear(); + final Directory? directory = await getExternalStorageDirectory(); + if (directory != null) { + pathsList[directory] = null; + currentPath = directory; + pathsList[directory] = await getThumbnailFromPath(directory); + } + } + + @override + Future getAssetsFromPath(int page, Directory path) async { + final List entities = + path.listSync().whereType().toList(); + currentAssets.clear(); + for (final FileSystemEntity entity in entities) { + final String extension = basename(entity.path).split('.').last; + if (entity is File && imagesExtensions.contains(extension)) { + currentAssets.add(entity); + } + } + hasAssetsToDisplay = currentAssets.isNotEmpty; + totalAssetsCount = currentAssets.length; + } + + @override + Future getThumbnailFromPath(Directory path) async { + final List entities = + path.listSync().whereType().toList(); + currentAssets.clear(); + for (final FileSystemEntity entity in entities) { + final String extension = basename(entity.path).split('.').last; + if (entity is File && imagesExtensions.contains(extension)) { + final Uint8List data = await entity.readAsBytes(); + return data; + } + } + return null; + } + + @override + void unSelectAsset(File item) { + final List _set = List.from(selectedAssets); + _set.removeWhere((File f) => f.path == item.path); + selectedAssets = _set; + } + + @override + Future loadMoreAssets() { + return Future.value(null); + } + + @override + Future switchPath([Directory? path]) async { + if (path == null) { + return; + } + currentPath = path; + totalAssetsCount = 0; + notifyListeners(); + await getAssetsFromPath(0, currentPath!); + } +} + +class FileAssetPickerBuilder + extends AssetPickerBuilderDelegate { + FileAssetPickerBuilder({ + required this.provider, + Locale? locale, + }) : super(initialPermission: PermissionState.authorized, locale: locale); + + final FileAssetPickerProvider provider; + + Duration get switchingPathDuration => kThemeAnimationDuration * 1.5; + + Curve get switchingPathCurve => Curves.easeInOut; + + @override + bool get isSingleAssetMode => provider.maxAssets == 1; + + Future?> pushToPicker( + BuildContext context, { + required int index, + required List previewAssets, + List? selectedAssets, + FileAssetPickerProvider? selectorProvider, + }) { + final Widget viewer = AssetPickerViewer( + builder: FileAssetPickerViewerBuilderDelegate( + currentIndex: index, + previewAssets: previewAssets, + provider: selectedAssets != null + ? FileAssetPickerViewerProvider(selectedAssets) + : null, + themeData: AssetPicker.themeData(themeColor), + selectedAssets: selectedAssets, + selectorProvider: selectorProvider, + ), + ); + final PageRouteBuilder> pageRoute = PageRouteBuilder>( + pageBuilder: ( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + ) { + return viewer; + }, + transitionsBuilder: ( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + Widget child, + ) { + return FadeTransition(opacity: animation, child: child); + }, + ); + return Navigator.of(context).push?>(pageRoute); + } + + @override + void selectAsset(BuildContext context, File asset, bool selected) { + if (selected) { + provider.unSelectAsset(asset); + } else { + if (isSingleAssetMode) { + provider.selectedAssets.clear(); + } + provider.selectAsset(asset); + } + } + + @override + Widget androidLayout(BuildContext context) { + return Scaffold( + body: Column( + children: [ + appBar(context), + Expanded( + child: Selector( + selector: ( + BuildContext _, + FileAssetPickerProvider provider, + ) => + provider.hasAssetsToDisplay, + builder: (_, bool hasAssetsToDisplay, __) { + return AnimatedSwitcher( + duration: switchingPathDuration, + child: hasAssetsToDisplay + ? Stack( + children: [ + RepaintBoundary( + child: Column( + children: [ + Expanded(child: assetsGridBuilder(context)), + if (!isSingleAssetMode) + bottomActionBar(context), + ], + ), + ), + pathEntityListBackdrop(context), + pathEntityListWidget(context), + ], + ) + : loadingIndicator(context), + ); + }, + ), + ), + ], + ), + ); + } + + @override + PreferredSizeWidget appBar(BuildContext context) { + return AppBar( + backgroundColor: theme.appBarTheme.backgroundColor, + centerTitle: isAppleOS, + title: pathEntitySelector(context), + leading: backButton(context), + actions: !isAppleOS + ? [ + confirmButton(context), + const SizedBox(width: 14.0), + ] + : null, + ); + } + + @override + Widget appleOSLayout(BuildContext context) { + return Stack( + children: [ + Positioned.fill( + child: Selector( + selector: ( + _, + FileAssetPickerProvider p, + ) => + p.hasAssetsToDisplay, + builder: (_, bool hasAssetsToDisplay, __) { + return AnimatedSwitcher( + duration: switchingPathDuration, + child: hasAssetsToDisplay + ? Stack( + children: [ + RepaintBoundary( + child: Stack( + children: [ + Positioned.fill( + child: assetsGridBuilder(context), + ), + if (!isSingleAssetMode || isAppleOS) + PositionedDirectional( + bottom: 0.0, + child: bottomActionBar(context), + ), + ], + ), + ), + pathEntityListBackdrop(context), + pathEntityListWidget(context), + ], + ) + : loadingIndicator(context), + ); + }, + ), + ), + appBar(context), + ], + ); + } + + @override + Widget assetsGridBuilder(BuildContext context) { + int totalCount = provider.currentAssets.length; + if (specialItemPosition != SpecialItemPosition.none) { + totalCount += 1; + } + final int placeholderCount; + if (isAppleOS && totalCount % gridCount != 0) { + placeholderCount = gridCount - totalCount % gridCount; + } else { + placeholderCount = 0; + } + final int row = (totalCount + placeholderCount) ~/ gridCount; + final double dividedSpacing = itemSpacing / gridCount; + final double topPadding = + MediaQuery.of(context).padding.top + kToolbarHeight; + + Widget _sliverGrid(BuildContext ctx, List assets) { + return SliverGrid( + delegate: SliverChildBuilderDelegate( + (_, int index) => Builder( + builder: (BuildContext c) { + if (isAppleOS) { + if (index < placeholderCount) { + return const SizedBox.shrink(); + } + index -= placeholderCount; + } + return Directionality( + textDirection: Directionality.of(context), + child: assetGridItemBuilder(c, index, assets), + ); + }, + ), + childCount: assetsGridItemCount( + context: ctx, + assets: assets, + placeholderCount: placeholderCount, + ), + findChildIndexCallback: (Key? key) { + if (key is ValueKey) { + return findChildIndexBuilder( + id: key.value, + assets: assets, + placeholderCount: placeholderCount, + ); + } + return null; + }, + ), + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: gridCount, + mainAxisSpacing: itemSpacing, + crossAxisSpacing: itemSpacing, + ), + ); + } + + return LayoutBuilder( + builder: (BuildContext c, BoxConstraints constraints) { + final double _itemSize = constraints.maxWidth / gridCount; + // Use [ScrollView.anchor] to determine where is the first place of + // the [SliverGrid]. Each row needs [dividedSpacing] to calculate, + // then minus one times of [itemSpacing] because spacing's count in the + // cross axis is always less than the rows. + final double anchor = math.min( + (row * (_itemSize + dividedSpacing) + topPadding - itemSpacing) / + constraints.maxHeight, + 1, + ); + + return Directionality( + textDirection: effectiveGridDirection(context), + child: ColoredBox( + color: theme.canvasColor, + child: Selector>( + selector: (_, FileAssetPickerProvider provider) => + provider.currentAssets, + builder: (_, List assets, __) => CustomScrollView( + physics: const AlwaysScrollableScrollPhysics(), + controller: gridScrollController, + anchor: isAppleOS ? anchor : 0, + center: isAppleOS ? gridRevertKey : null, + slivers: [ + if (isAppleOS) + SliverToBoxAdapter( + child: SizedBox( + height: + MediaQuery.of(context).padding.top + kToolbarHeight, + ), + ), + _sliverGrid(_, assets), + // Ignore the gap when the [anchor] is not equal to 1. + if (isAppleOS && anchor == 1) + SliverToBoxAdapter( + child: SizedBox( + height: MediaQuery.of(context).padding.bottom + + bottomSectionHeight, + ), + ), + if (isAppleOS) + SliverToBoxAdapter( + key: gridRevertKey, + child: const SizedBox.shrink(), + ), + ], + ), + ), + ), + ); + }, + ); + } + + @override + Widget assetGridItemBuilder( + BuildContext context, + int index, + List currentAssets, + ) { + int currentIndex; + switch (specialItemPosition) { + case SpecialItemPosition.none: + case SpecialItemPosition.append: + currentIndex = index; + break; + case SpecialItemPosition.prepend: + currentIndex = index - 1; + break; + } + + final File asset = currentAssets.elementAt(currentIndex); + final Widget builder = imageAndVideoItemBuilder( + context, + currentIndex, + asset, + ); + return Stack( + key: ValueKey(asset.path), + fit: StackFit.expand, + children: [ + Positioned.fill(child: builder), + selectIndicator(context, index, asset), + ], + ); + } + + @override + Semantics assetGridItemSemanticsBuilder( + BuildContext context, + int index, + File asset, + Widget child, + ) { + return Semantics(child: child); + } + + @override + int assetsGridItemCount({ + required BuildContext context, + required List assets, + int placeholderCount = 0, + }) { + int length; + switch (specialItemPosition) { + case SpecialItemPosition.none: + length = assets.length; + break; + case SpecialItemPosition.prepend: + case SpecialItemPosition.append: + length = assets.length + 1; + break; + } + return length + placeholderCount; + } + + @override + Widget audioIndicator(BuildContext context, File asset) { + return const SizedBox.shrink(); + } + + @override + Widget audioItemBuilder(BuildContext context, int index, File asset) { + return imageAndVideoItemBuilder(context, index, asset); + } + + @override + Widget confirmButton(BuildContext context) { + return Center( + child: Consumer( + builder: (_, FileAssetPickerProvider provider, __) { + return MaterialButton( + minWidth: provider.isSelectedNotEmpty ? 48.0 : 20.0, + height: appBarItemHeight, + padding: const EdgeInsets.symmetric(horizontal: 12.0), + color: + provider.isSelectedNotEmpty ? themeColor : theme.dividerColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(3.0), + ), + child: Text( + provider.isSelectedNotEmpty && !isSingleAssetMode + ? '${textDelegate.confirm}' + '(${provider.selectedAssets.length}/${provider.maxAssets})' + : textDelegate.confirm, + style: TextStyle( + color: provider.isSelectedNotEmpty + ? theme.textTheme.bodyText1?.color + : theme.textTheme.caption?.color, + fontSize: 17.0, + fontWeight: FontWeight.normal, + ), + ), + onPressed: () { + if (provider.isSelectedNotEmpty) { + Navigator.of(context).pop(provider.selectedAssets); + } + }, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + }, + ), + ); + } + + @override + Widget imageAndVideoItemBuilder(BuildContext context, int index, File asset) { + return RepaintBoundary(child: Image.file(asset, fit: BoxFit.cover)); + } + + @override + Widget loadingIndicator(BuildContext context) { + return Center( + child: Selector( + selector: (_, FileAssetPickerProvider p) => p.isAssetsEmpty, + builder: (_, bool isAssetsEmpty, __) { + if (isAssetsEmpty) { + return Text(textDelegate.emptyList); + } else { + return Center( + child: SizedBox.fromSize( + size: Size.square(Screens.width / gridCount / 3), + child: CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation( + theme.iconTheme.color ?? Colors.grey, + ), + ), + ), + ); + } + }, + ), + ); + } + + @override + Widget pathEntityListBackdrop(BuildContext context) { + return ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, __) => IgnorePointer( + ignoring: !isSwitchingPath, + child: GestureDetector( + onTap: () => this.isSwitchingPath.value = false, + child: AnimatedOpacity( + duration: switchingPathDuration, + opacity: isSwitchingPath ? 1.0 : 0.0, + child: Container(color: Colors.black.withOpacity(0.75)), + ), + ), + ), + ); + } + + @override + Widget pathEntityListWidget(BuildContext context) { + final double appBarHeight = kToolbarHeight + Screens.topSafeHeight; + final double maxHeight = Screens.height * 0.825; + return ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, Widget? w) => AnimatedPositioned( + duration: switchingPathDuration, + curve: switchingPathCurve, + top: isAppleOS + ? !isSwitchingPath + ? -maxHeight + : appBarHeight + : -(!isSwitchingPath ? maxHeight : 1.0), + child: AnimatedOpacity( + duration: switchingPathDuration, + curve: switchingPathCurve, + opacity: !isAppleOS || isSwitchingPath ? 1.0 : 0.0, + child: Container( + width: Screens.width, + height: maxHeight, + decoration: BoxDecoration( + borderRadius: isAppleOS + ? const BorderRadius.vertical(bottom: Radius.circular(10.0)) + : null, + color: theme.colorScheme.background, + ), + child: w, + ), + ), + ), + child: Selector>( + selector: (_, FileAssetPickerProvider p) => p.pathsList, + builder: (_, Map pathEntityList, __) { + return ListView.separated( + padding: const EdgeInsetsDirectional.only(top: 1.0), + itemCount: pathEntityList.length, + itemBuilder: (_, int index) => pathEntityWidget( + context: context, + list: pathEntityList, + index: index, + ), + separatorBuilder: (_, __) => Container( + margin: const EdgeInsetsDirectional.only(start: 60.0), + height: 1.0, + color: theme.canvasColor, + ), + ); + }, + ), + ); + } + + @override + Widget pathEntitySelector(BuildContext context) { + return UnconstrainedBox( + child: GestureDetector( + onTap: () => isSwitchingPath.value = !isSwitchingPath.value, + child: Container( + height: appBarItemHeight, + constraints: BoxConstraints(maxWidth: Screens.width * 0.5), + padding: const EdgeInsetsDirectional.only(start: 12.0, end: 6.0), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(999), + color: theme.dividerColor, + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Selector( + selector: (_, FileAssetPickerProvider p) => p.currentPath, + builder: (_, Directory? currentPathEntity, __) { + if (currentPathEntity == null) { + return const SizedBox.shrink(); + } + return Flexible( + child: Text( + provider.currentPath!.path, + style: const TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.normal, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ); + }, + ), + Padding( + padding: const EdgeInsetsDirectional.only(start: 5.0), + child: DecoratedBox( + decoration: BoxDecoration( + shape: BoxShape.circle, + color: theme.iconTheme.color?.withOpacity(0.5), + ), + child: ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, Widget? w) { + return Transform.rotate( + angle: isSwitchingPath ? math.pi : 0.0, + alignment: Alignment.center, + child: w, + ); + }, + child: Icon( + Icons.keyboard_arrow_down, + size: 20.0, + color: theme.colorScheme.primary, + ), + ), + ), + ), + ], + ), + ), + ), + ); + } + + @override + Widget pathEntityWidget({ + required BuildContext context, + required Map list, + required int index, + bool isAudio = false, + }) { + final Directory path = list.keys.elementAt(index); + final Uint8List? data = list.values.elementAt(index); + + Widget builder() { + if (data != null) { + return Image.memory(data, fit: BoxFit.cover); + } else { + return ColoredBox( + color: theme.colorScheme.primary.withOpacity(0.12), + ); + } + } + + return Material( + type: MaterialType.transparency, + child: InkWell( + splashFactory: InkSplash.splashFactory, + onTap: () { + provider.switchPath(path); + isSwitchingPath.value = false; + }, + child: SizedBox( + height: isAppleOS ? 64.0 : 52.0, + child: Row( + children: [ + RepaintBoundary( + child: AspectRatio(aspectRatio: 1.0, child: builder()), + ), + Expanded( + child: Padding( + padding: const EdgeInsetsDirectional.only( + start: 15.0, + end: 20.0, + ), + child: Padding( + padding: const EdgeInsetsDirectional.only(end: 10.0), + child: Text( + path.path, + style: const TextStyle(fontSize: 18.0), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ), + ), + Selector( + selector: (_, FileAssetPickerProvider p) => p.currentPath!, + builder: (_, Directory currentPathEntity, __) { + if (currentPathEntity == path) { + return const AspectRatio( + aspectRatio: 1.0, + child: Icon(Icons.check, color: themeColor, size: 26.0), + ); + } else { + return const SizedBox.shrink(); + } + }, + ), + ], + ), + ), + ), + ); + } + + @override + Widget previewButton(BuildContext context) { + return Selector( + selector: (_, FileAssetPickerProvider p) => p.isSelectedNotEmpty, + builder: (_, bool isSelectedNotEmpty, __) { + return GestureDetector( + onTap: isSelectedNotEmpty + ? () async { + final List? result = await pushToPicker( + context, + index: 0, + previewAssets: provider.selectedAssets, + selectedAssets: provider.selectedAssets, + selectorProvider: provider, + ); + if (result != null) { + Navigator.of(context).pop(result); + } + } + : null, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0), + child: Selector>( + selector: (_, FileAssetPickerProvider p) => p.selectedAssets, + builder: (_, List selectedAssets, __) { + return Text( + isSelectedNotEmpty + ? '${textDelegate.preview}' + '(${provider.selectedAssets.length})' + : textDelegate.preview, + style: TextStyle( + color: isSelectedNotEmpty + ? null + : theme.textTheme.caption?.color, + fontSize: 18.0, + ), + ); + }, + ), + ), + ); + }, + ); + } + + @override + Widget selectIndicator(BuildContext context, int index, File asset) { + return Selector>( + selector: (_, FileAssetPickerProvider p) => p.selectedAssets, + builder: (_, List selectedAssets, __) { + final bool isSelected = + selectedAssets.where((File f) => f.path == asset.path).isNotEmpty; + final double indicatorSize = Screens.width / gridCount / 3; + return Positioned( + top: 0.0, + right: 0.0, + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + if (isSelected) { + provider.unSelectAsset(asset); + } else { + if (isSingleAssetMode) { + provider.selectedAssets.clear(); + } + provider.selectAsset(asset); + } + }, + child: Container( + margin: EdgeInsets.all( + Screens.width / gridCount / (isAppleOS ? 12.0 : 15.0), + ), + width: indicatorSize, + height: indicatorSize, + alignment: AlignmentDirectional.topEnd, + child: AnimatedContainer( + duration: switchingPathDuration, + width: indicatorSize / (isAppleOS ? 1.25 : 1.5), + height: indicatorSize / (isAppleOS ? 1.25 : 1.5), + decoration: BoxDecoration( + border: !isSelected + ? Border.all(color: Colors.white, width: 2.0) + : null, + color: isSelected ? themeColor : null, + shape: BoxShape.circle, + ), + child: AnimatedSwitcher( + duration: switchingPathDuration, + reverseDuration: switchingPathDuration, + child: isSelected + ? isSingleAssetMode + ? const Icon(Icons.check, size: 18.0) + : Text( + '${index + 1}', + style: TextStyle( + color: isSelected + ? theme.textTheme.bodyText1?.color + : null, + fontSize: isAppleOS ? 16.0 : 14.0, + fontWeight: isAppleOS + ? FontWeight.w600 + : FontWeight.bold, + ), + ) + : const SizedBox.shrink(), + ), + ), + ), + ), + ); + }, + ); + } + + @override + Widget selectedBackdrop(BuildContext context, int index, File asset) { + return Selector>( + selector: (_, FileAssetPickerProvider p) => p.selectedAssets, + builder: (_, List selectedAssets, __) { + final bool isSelected = + selectedAssets.where((File f) => f.path == asset.path).isNotEmpty; + return Positioned.fill( + child: GestureDetector( + onTap: () async { + final List? result = await pushToPicker( + context, + index: index, + previewAssets: provider.currentAssets, + ); + if (result != null) { + Navigator.of(context).pop(result); + } + }, + child: AnimatedContainer( + duration: switchingPathDuration, + color: isSelected + ? theme.colorScheme.primary.withOpacity(0.45) + : Colors.black.withOpacity(0.1), + ), + ), // 点击预览同目录下所有资源 + ); + }, + ); + } + + @override + Widget videoIndicator(BuildContext context, File asset) { + return const SizedBox.shrink(); + } + + @override + int findChildIndexBuilder({ + required String id, + required List assets, + int placeholderCount = 0, + }) { + return assets.indexWhere((File file) => file.path == id); + } + + @override + Widget build(BuildContext context) { + return AnnotatedRegion( + value: overlayStyle, + child: Theme( + data: theme, + child: ChangeNotifierProvider.value( + value: provider, + builder: (BuildContext c, __) => Material( + color: theme.canvasColor, + child: Stack( + fit: StackFit.expand, + children: [ + if (isAppleOS) appleOSLayout(c) else androidLayout(c), + if (Platform.isIOS) iOSPermissionOverlay(c), + ], + ), + ), + ), + ), + ); + } +} + +class FileAssetPickerViewerProvider extends AssetPickerViewerProvider { + FileAssetPickerViewerProvider(List assets) : super(assets); + + @override + void unSelectAssetEntity(File entity) { + final List set = List.from(currentlySelectedAssets); + set.removeWhere((File f) => f.path == entity.path); + currentlySelectedAssets = List.from(set); + } +} + +class FileAssetPickerViewerBuilderDelegate + extends AssetPickerViewerBuilderDelegate { + FileAssetPickerViewerBuilderDelegate({ + required List previewAssets, + required ThemeData themeData, + required int currentIndex, + List? selectedAssets, + AssetPickerProvider? selectorProvider, + AssetPickerViewerProvider? provider, + }) : super( + provider: provider, + previewAssets: previewAssets, + themeData: themeData, + currentIndex: currentIndex, + selectedAssets: selectedAssets, + selectorProvider: selectorProvider, + maxAssets: selectorProvider?.maxAssets, + ); + + late final PageController _pageController = PageController( + initialPage: currentIndex, + ); + + bool _isDisplayingDetail = true; + + @override + void switchDisplayingDetail({bool? value}) { + _isDisplayingDetail = value ?? !_isDisplayingDetail; + if (viewerState.mounted) { + // ignore: invalid_use_of_protected_member + viewerState.setState(() {}); + } + } + + @override + Widget assetPageBuilder(BuildContext context, int index) { + final File asset = previewAssets.elementAt(index); + return GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: switchDisplayingDetail, + child: Image.file(asset, fit: BoxFit.contain), + ); + } + + @override + Widget bottomDetailBuilder(BuildContext context) { + return AnimatedPositioned( + duration: kThemeAnimationDuration, + curve: Curves.easeInOut, + bottom: _isDisplayingDetail + ? 0.0 + : -(Screens.bottomSafeHeight + bottomDetailHeight), + left: 0.0, + right: 0.0, + height: Screens.bottomSafeHeight + bottomDetailHeight, + child: Container( + padding: EdgeInsetsDirectional.only(bottom: Screens.bottomSafeHeight), + color: themeData.canvasColor.withOpacity(0.85), + child: Column( + children: [ + ChangeNotifierProvider>.value( + value: provider!, + child: SizedBox( + height: 90.0, + child: ListView.builder( + scrollDirection: Axis.horizontal, + padding: const EdgeInsets.symmetric(horizontal: 5.0), + itemCount: selectedAssets!.length, + itemBuilder: bottomDetailItemBuilder, + ), + ), + ), + Container( + height: 1.0, + color: themeData.dividerColor, + ), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Spacer(), + if (isAppleOS && provider != null) + ChangeNotifierProvider< + AssetPickerViewerProvider>.value( + value: provider!, + child: confirmButton(context), + ) + else + selectButton(context), + ], + ), + ), + ), + ], + ), + ), + ); + } + + @override + Widget bottomDetailItemBuilder(BuildContext context, int index) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 16.0), + child: AspectRatio( + aspectRatio: 1.0, + child: StreamBuilder( + initialData: currentIndex, + stream: pageStreamController.stream, + builder: (BuildContext _, AsyncSnapshot snapshot) { + final File asset = selectedAssets!.elementAt(index); + final bool isViewing = asset.path == currentAsset.path; + return GestureDetector( + onTap: () { + if (previewAssets == selectedAssets) { + pageController.jumpToPage(index); + } + }, + child: Selector, List>( + selector: (_, AssetPickerViewerProvider p) => + p.currentlySelectedAssets, + builder: (_, List currentlySelectedAssets, __) { + final bool isSelected = currentlySelectedAssets + .where((File f) => f.path == asset.path) + .isNotEmpty; + return Stack( + children: [ + Positioned.fill( + child: RepaintBoundary( + child: Image.file(asset, fit: BoxFit.cover), + ), + ), + AnimatedContainer( + duration: kThemeAnimationDuration, + curve: Curves.easeInOut, + decoration: BoxDecoration( + border: isViewing + ? Border.all( + color: themeData.colorScheme.secondary, + width: 2.0, + ) + : null, + color: isSelected + ? null + : themeData.colorScheme.surface.withOpacity(0.54), + ), + ), + ], + ); + }, + ), + ); + }, + ), + ), + ); + } + + Widget appBar(BuildContext context) { + return AnimatedPositioned( + duration: kThemeAnimationDuration, + curve: Curves.easeInOut, + top: + _isDisplayingDetail ? 0.0 : -(Screens.topSafeHeight + kToolbarHeight), + left: 0.0, + right: 0.0, + height: Screens.topSafeHeight + kToolbarHeight, + child: Container( + padding: EdgeInsetsDirectional.only( + top: Screens.topSafeHeight, + end: 12.0, + ), + color: themeData.canvasColor.withOpacity(0.85), + child: Row( + children: [ + const BackButton(), + if (!isAppleOS) + StreamBuilder( + initialData: currentIndex, + stream: pageStreamController.stream, + builder: (BuildContext _, AsyncSnapshot snapshot) { + return Text( + '${snapshot.data! + 1}/${previewAssets.length}', + style: const TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.bold, + ), + ); + }, + ), + const Spacer(), + if (isAppleOS && provider != null) selectButton(context), + if (!isAppleOS && provider != null) confirmButton(context), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: syncSelectedAssetsWhenPop, + child: Theme( + data: themeData, + child: AnnotatedRegion( + value: themeData.brightness == Brightness.dark + ? SystemUiOverlayStyle.light + : SystemUiOverlayStyle.dark, + child: Material( + color: Colors.black, + child: Stack( + children: [ + Positioned.fill( + child: PageView.builder( + physics: const BouncingScrollPhysics(), + controller: _pageController, + itemCount: previewAssets.length, + itemBuilder: assetPageBuilder, + onPageChanged: (int index) { + currentIndex = index; + pageStreamController.add(index); + }, + scrollDirection: Axis.horizontal, + ), + ), + appBar(context), + if (selectedAssets != null) bottomDetailBuilder(context), + ], + ), + ), + ), + ), + ); + } + + @override + Widget confirmButton(BuildContext context) { + return ChangeNotifierProvider>.value( + value: provider!, + child: Consumer>( + builder: (_, AssetPickerViewerProvider provider, __) { + return MaterialButton( + minWidth: () { + return provider.isSelectedNotEmpty ? 48.0 : 20.0; + }(), + height: 32.0, + padding: const EdgeInsets.symmetric(horizontal: 12.0), + color: () { + return provider.isSelectedNotEmpty + ? themeData.colorScheme.secondary + : themeData.dividerColor; + }(), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(3.0), + ), + child: Text( + () { + if (provider.isSelectedNotEmpty) { + return '${textDelegate.confirm}' + '(${provider.currentlySelectedAssets.length}' + '/' + '${selectorProvider!.maxAssets})'; + } + return textDelegate.confirm; + }(), + style: TextStyle( + color: () { + return provider.isSelectedNotEmpty + ? themeData.textTheme.bodyText1?.color + : themeData.textTheme.caption?.color; + }(), + fontSize: 17.0, + fontWeight: FontWeight.normal, + ), + ), + onPressed: () { + if (provider.isSelectedNotEmpty) { + Navigator.of(context).pop(provider.currentlySelectedAssets); + } + }, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + }, + ), + ); + } + + @override + Widget selectButton(BuildContext context) { + return Row( + children: [ + StreamBuilder( + initialData: currentIndex, + stream: pageStreamController.stream, + builder: (BuildContext _, AsyncSnapshot snapshot) { + return ChangeNotifierProvider< + AssetPickerViewerProvider>.value( + value: provider!, + child: Selector, List>( + selector: ( + BuildContext _, + AssetPickerViewerProvider provider, + ) => + provider.currentlySelectedAssets, + builder: (_, List currentlySelectedAssets, __) { + final File asset = previewAssets.elementAt(snapshot.data!); + final bool isSelected = + currentlySelectedAssets.contains(asset); + if (isAppleOS) { + return _appleOSSelectButton(isSelected, asset); + } else { + return _androidSelectButton(isSelected, asset); + } + }, + ), + ); + }, + ), + if (!isAppleOS) + Text( + textDelegate.select, + style: const TextStyle(fontSize: 18.0), + ), + ], + ); + } + + Widget _appleOSSelectButton(bool isSelected, File asset) { + return Padding( + padding: const EdgeInsetsDirectional.only(end: 10.0), + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + if (isSelected) { + provider?.unSelectAssetEntity(asset); + } else { + provider?.selectAssetEntity(asset); + } + }, + child: AnimatedContainer( + duration: kThemeAnimationDuration, + width: 28.0, + decoration: BoxDecoration( + border: !isSelected + ? Border.all(color: themeData.iconTheme.color!) + : null, + color: isSelected ? themeData.colorScheme.secondary : null, + shape: BoxShape.circle, + ), + child: Center( + child: isSelected + ? Text( + (currentIndex + 1).toString(), + style: const TextStyle( + fontSize: 16.0, + fontWeight: FontWeight.bold, + ), + ) + : const Icon(Icons.check, size: 20.0), + ), + ), + ), + ); + } + + Widget _androidSelectButton(bool isSelected, File asset) { + return Checkbox( + value: isSelected, + onChanged: (bool? value) { + if (isSelected) { + provider?.unSelectAssetEntity(asset); + } else { + provider?.selectAssetEntity(asset); + } + }, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/customs/pickers/multi_tabs_assets_picker.dart b/packages/flutter_wechat_assets_picker/example/lib/customs/pickers/multi_tabs_assets_picker.dart new file mode 100644 index 00000000..f8fc949d --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/customs/pickers/multi_tabs_assets_picker.dart @@ -0,0 +1,554 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2022/2/10 09:57 +/// +import 'dart:io'; +import 'dart:math' as math; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; + +const Color _themeColor = Color(0xfff2223a); + +class MultiTabAssetPicker extends StatefulWidget { + const MultiTabAssetPicker({Key? key}) : super(key: key); + + @override + _MultiTabAssetPickerState createState() => _MultiTabAssetPickerState(); +} + +class _MultiTabAssetPickerState extends State { + final int maxAssets = 9; + late final ThemeData theme = AssetPicker.themeData(_themeColor); + + List entities = []; + + bool isDisplayingDetail = true; + + Future callPicker(BuildContext context) async { + final PermissionState _ps = await AssetPicker.permissionCheck(); + + final DefaultAssetPickerProvider provider = DefaultAssetPickerProvider( + selectedAssets: entities, + maxAssets: maxAssets, + ); + final DefaultAssetPickerProvider imagesProvider = + DefaultAssetPickerProvider( + selectedAssets: entities, + maxAssets: maxAssets, + requestType: RequestType.image, + ); + final DefaultAssetPickerProvider videosProvider = + DefaultAssetPickerProvider( + selectedAssets: entities, + maxAssets: maxAssets, + requestType: RequestType.video, + ); + final MultiTabAssetPickerBuilder builder = MultiTabAssetPickerBuilder( + provider: provider, + imagesProvider: imagesProvider, + videosProvider: videosProvider, + initialPermission: _ps, + pickerTheme: theme, + locale: Localizations.maybeLocaleOf(context), + ); + final List? result = await AssetPicker.pickAssetsWithDelegate( + context, + delegate: builder, + ); + if (result != null) { + entities = result; + if (mounted) { + setState(() {}); + } + } + } + + Widget get selectedAssetsWidget { + return AnimatedContainer( + duration: kThemeChangeDuration, + curve: Curves.easeInOut, + height: entities.isNotEmpty + ? isDisplayingDetail + ? 120.0 + : 80.0 + : 40.0, + child: Column( + children: [ + SizedBox( + height: 20.0, + child: GestureDetector( + onTap: () { + if (entities.isNotEmpty) { + setState(() { + isDisplayingDetail = !isDisplayingDetail; + }); + } + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Text('Selected Assets'), + Container( + margin: const EdgeInsets.symmetric( + horizontal: 10.0, + ), + padding: const EdgeInsets.all(4.0), + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey, + ), + child: Text( + '${entities.length}', + style: const TextStyle( + color: Colors.white, + height: 1.0, + ), + ), + ), + if (entities.isNotEmpty) + Icon( + isDisplayingDetail + ? Icons.arrow_downward + : Icons.arrow_upward, + size: 18.0, + ), + ], + ), + ), + ), + selectedAssetsListView, + ], + ), + ); + } + + Widget get selectedAssetsListView { + return Expanded( + child: ListView.builder( + physics: const BouncingScrollPhysics(), + padding: const EdgeInsets.symmetric(horizontal: 8.0), + scrollDirection: Axis.horizontal, + itemCount: entities.length, + itemBuilder: (BuildContext _, int index) { + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 16.0, + ), + child: AspectRatio( + aspectRatio: 1.0, + child: Stack( + children: [ + Positioned.fill(child: _selectedAssetWidget(index)), + AnimatedPositionedDirectional( + duration: kThemeAnimationDuration, + top: isDisplayingDetail ? 6.0 : -30.0, + end: isDisplayingDetail ? 6.0 : -30.0, + child: _selectedAssetDeleteButton(index), + ), + ], + ), + ), + ); + }, + ), + ); + } + + Widget _selectedAssetWidget(int index) { + final AssetEntity asset = entities.elementAt(index); + + Future _onTap() async { + final List? result = await AssetPickerViewer.pushToViewer( + context, + currentIndex: index, + previewAssets: entities, + selectedAssets: entities, + themeData: theme, + maxAssets: maxAssets, + ); + if (result != null) { + entities = result; + if (mounted) { + setState(() {}); + } + } + } + + return GestureDetector( + onTap: isDisplayingDetail ? _onTap : null, + child: RepaintBoundary( + child: ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: _assetWidgetBuilder(asset), + ), + ), + ); + } + + Widget _assetWidgetBuilder(AssetEntity asset) { + return Image(image: AssetEntityImageProvider(asset), fit: BoxFit.cover); + } + + Widget _selectedAssetDeleteButton(int index) { + return GestureDetector( + onTap: () { + setState(() { + entities.removeAt(index); + if (entities.isEmpty) { + isDisplayingDetail = false; + } + }); + }, + child: DecoratedBox( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.0), + color: theme.canvasColor.withOpacity(0.5), + ), + child: Icon( + Icons.close, + color: theme.iconTheme.color, + size: 18.0, + ), + ), + ); + } + + Widget paddingText(String text) { + return Padding( + padding: const EdgeInsets.all(20), + child: SelectableText(text), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('Multi tab picker')), + body: Column( + children: [ + Expanded( + child: DefaultTextStyle.merge( + style: const TextStyle(fontSize: 18), + textAlign: TextAlign.center, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + paddingText( + 'The picker contains multiple tab with different types of ' + 'assets for the picking at the same time.', + ), + TextButton( + onPressed: () => callPicker(context), + child: const Text( + '🎁 Call the Picker', + style: TextStyle(fontSize: 22), + ), + ), + ], + ), + ), + ), + selectedAssetsWidget, + ], + ), + ); + } +} + +class MultiTabAssetPickerBuilder extends DefaultAssetPickerBuilderDelegate { + MultiTabAssetPickerBuilder({ + required DefaultAssetPickerProvider provider, + required this.videosProvider, + required this.imagesProvider, + required PermissionState initialPermission, + int gridCount = 3, + ThemeData? pickerTheme, + Color? themeColor, + AssetPickerTextDelegate? textDelegate, + Locale? locale, + }) : super( + provider: provider, + initialPermission: initialPermission, + gridCount: gridCount, + pickerTheme: pickerTheme, + themeColor: themeColor, + textDelegate: textDelegate, + locale: locale, + shouldRevertGrid: false, + ); + + final DefaultAssetPickerProvider videosProvider; + final DefaultAssetPickerProvider imagesProvider; + + late final TabController _tabController; + + @override + void initState(AssetPickerState state) { + super.initState(state); + _tabController = TabController(length: 3, vsync: state); + } + + @override + void dispose() { + _tabController.dispose(); + super.dispose(); + } + + @override + Widget pathEntitySelector(BuildContext context) { + final WidgetBuilder selector = (BuildContext context) { + return UnconstrainedBox( + child: GestureDetector( + onTap: () { + Feedback.forTap(context); + isSwitchingPath.value = !isSwitchingPath.value; + }, + child: Container( + height: appBarItemHeight, + constraints: BoxConstraints( + maxWidth: MediaQuery.of(context).size.width * 0.5, + ), + padding: const EdgeInsetsDirectional.only(start: 12, end: 6), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(999), + color: theme.dividerColor, + ), + child: Selector( + selector: (_, DefaultAssetPickerProvider p) => p.currentPath, + builder: (_, AssetPathEntity? p, Widget? w) => Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (p != null) + Flexible( + child: Text( + isPermissionLimited && p.isAll + ? textDelegate.accessiblePathName + : p.name, + style: const TextStyle( + fontSize: 17, + fontWeight: FontWeight.normal, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + w!, + ], + ), + child: Padding( + padding: const EdgeInsetsDirectional.only(start: 5), + child: DecoratedBox( + decoration: BoxDecoration( + shape: BoxShape.circle, + color: theme.iconTheme.color!.withOpacity(0.5), + ), + child: ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, Widget? w) { + return Transform.rotate( + angle: isSwitchingPath ? math.pi : 0, + alignment: Alignment.center, + child: w, + ); + }, + child: Icon( + Icons.keyboard_arrow_down, + size: 20, + color: theme.colorScheme.primary, + ), + ), + ), + ), + ), + ), + ), + ); + }; + return ChangeNotifierProvider.value( + value: _tabController, + builder: (_, __) => Selector( + selector: (_, TabController p) => p.index, + builder: (_, int index, __) { + final DefaultAssetPickerProvider _provider; + switch (index) { + case 1: + _provider = videosProvider; + break; + case 2: + _provider = imagesProvider; + break; + default: + _provider = provider; + } + return ChangeNotifierProvider.value( + value: _provider, + builder: (BuildContext c, _) => selector(c), + ); + }, + ), + ); + } + + @override + Widget confirmButton(BuildContext context) { + final Widget button = Consumer( + builder: (_, DefaultAssetPickerProvider p, __) { + return MaterialButton( + minWidth: p.isSelectedNotEmpty ? 48 : 20, + height: appBarItemHeight, + padding: const EdgeInsets.symmetric(horizontal: 12), + disabledColor: theme.dividerColor, + color: p.isSelectedNotEmpty ? themeColor : theme.dividerColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(3), + ), + child: Text( + p.isSelectedNotEmpty && !isSingleAssetMode + ? '${textDelegate.confirm}' + ' (${p.selectedAssets.length}/${p.maxAssets})' + : textDelegate.confirm, + style: TextStyle( + color: p.isSelectedNotEmpty + ? theme.textTheme.bodyText1?.color + : theme.textTheme.caption?.color, + fontSize: 17, + fontWeight: FontWeight.normal, + ), + ), + onPressed: p.isSelectedNotEmpty + ? () => Navigator.of(context).maybePop(p.selectedAssets) + : null, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + }, + ); + return ChangeNotifierProvider.value( + value: _tabController, + builder: (_, __) => Selector( + selector: (_, TabController p) => p.index, + builder: (_, int index, __) { + final DefaultAssetPickerProvider _provider; + switch (index) { + case 1: + _provider = videosProvider; + break; + case 2: + _provider = imagesProvider; + break; + default: + _provider = provider; + } + return ChangeNotifierProvider.value( + value: _provider, + builder: (_, __) => button, + ); + }, + ), + ); + } + + @override + AssetPickerAppBar appBar(BuildContext context) { + return AssetPickerAppBar( + backgroundColor: theme.appBarTheme.backgroundColor, + centerTitle: isAppleOS, + title: Semantics( + onTapHint: textDelegate.sActionSwitchPathLabel, + child: pathEntitySelector(context), + ), + leading: backButton(context), + actions: (isPreviewEnabled || !isSingleAssetMode) + ? [confirmButton(context)] + : null, + actionsPadding: const EdgeInsetsDirectional.only(end: 14), + blurRadius: isAppleOS ? appleOSBlurRadius : 0, + bottom: TabBar( + controller: _tabController, + tabs: const [ + Tab(text: '全部'), + Tab(text: '视频'), + Tab(text: '图片'), + ], + ), + ); + } + + @override + Widget androidLayout(BuildContext context) { + return AssetPickerAppBarWrapper( + appBar: appBar(context), + body: TabBarView( + controller: _tabController, + children: [ + ChangeNotifierProvider.value( + value: provider, + builder: (BuildContext context, _) => _buildGrid(context), + ), + ChangeNotifierProvider.value( + value: videosProvider, + builder: (BuildContext context, _) => _buildGrid(context), + ), + ChangeNotifierProvider.value( + value: imagesProvider, + builder: (BuildContext context, _) => _buildGrid(context), + ), + ], + ), + ); + } + + @override + Widget appleOSLayout(BuildContext context) => androidLayout(context); + + Widget _buildGrid(BuildContext context) { + return Selector( + selector: (_, DefaultAssetPickerProvider p) => p.hasAssetsToDisplay, + builder: (_, bool hasAssetsToDisplay, __) { + return AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + child: hasAssetsToDisplay + ? Stack( + children: [ + RepaintBoundary( + child: Column( + children: [ + Expanded(child: assetsGridBuilder(context)), + if (!isSingleAssetMode && isPreviewEnabled) + bottomActionBar(context), + ], + ), + ), + pathEntityListBackdrop(context), + pathEntityListWidget(context), + ], + ) + : loadingIndicator(context), + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return AnnotatedRegion( + value: overlayStyle, + child: Theme( + data: theme, + child: Material( + color: theme.canvasColor, + child: Stack( + fit: StackFit.expand, + children: [ + if (isAppleOS) appleOSLayout(context) else androidLayout(context), + if (Platform.isIOS) iOSPermissionOverlay(context), + ], + ), + ), + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/main.dart b/packages/flutter_wechat_assets_picker/example/lib/main.dart new file mode 100644 index 00000000..de13fd04 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/main.dart @@ -0,0 +1,69 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/5/30 15:39 +/// +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; + +import 'constants/extensions.dart'; +import 'constants/screens.dart'; +import 'pages/splash_page.dart'; + +const Color themeColor = Color(0xff00bc56); + +String? packageVersion; + +void main() { + runApp(MyApp()); + SystemChrome.setSystemUIOverlayStyle( + SystemUiOverlayStyle.dark.copyWith(statusBarColor: Colors.transparent), + ); + AssetPicker.registerObserve(); +} + +class MyApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'WeChat Asset Picker Demo', + theme: ThemeData( + brightness: Screens.mediaQuery.platformBrightness, + primarySwatch: themeColor.swatch, + textSelectionTheme: const TextSelectionThemeData( + cursorColor: themeColor, + ), + ), + home: const SplashPage(), + builder: (BuildContext c, Widget? w) { + return ScrollConfiguration( + behavior: const NoGlowScrollBehavior(), + child: w!, + ); + }, + localizationsDelegates: const >[ + GlobalWidgetsLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: const [ + Locale('zh'), // Chinese + // Locale('iw'), // Hebrew + ], + locale: const Locale('zh'), + ); + } +} + +class NoGlowScrollBehavior extends ScrollBehavior { + const NoGlowScrollBehavior(); + + @override + Widget buildViewportChrome( + BuildContext context, + Widget child, + AxisDirection axisDirection, + ) => + child; +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/pages/home_page.dart b/packages/flutter_wechat_assets_picker/example/lib/pages/home_page.dart new file mode 100644 index 00000000..d53c23dc --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/pages/home_page.dart @@ -0,0 +1,142 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020-05-31 21:38 +/// +import 'package:flutter/material.dart'; +import 'package:flutter/semantics.dart'; +import 'package:flutter/services.dart'; + +import '../constants/screens.dart'; +import '../customs/custom_picker_page.dart'; +import '../main.dart'; +import 'multi_assets_page.dart'; +import 'single_assets_page.dart'; + +bool get currentIsDark => + Screens.mediaQuery.platformBrightness == Brightness.dark; + +class HomePage extends StatefulWidget { + const HomePage({Key? key}) : super(key: key); + + @override + _HomePageState createState() => _HomePageState(); +} + +class _HomePageState extends State { + final PageController controller = PageController(); + int currentIndex = 0; + + @override + void initState() { + super.initState(); + controller.addListener(pageControllerListener); + } + + void selectIndex(int index) { + if (index == currentIndex) { + return; + } + controller.animateToPage( + index, + duration: kThemeAnimationDuration, + curve: Curves.easeInOut, + ); + } + + void pageControllerListener() { + final int? currentPage = controller.page?.round(); + if (currentPage != null && currentPage != currentIndex) { + currentIndex = currentPage; + if (mounted) { + setState(() {}); + } + } + } + + Widget header(BuildContext context) { + return Container( + margin: const EdgeInsetsDirectional.only(top: 30.0), + height: 60.0, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + AspectRatio( + aspectRatio: 1.0, + child: Hero( + tag: 'LOGO', + child: Image.asset('assets/flutter_candies_logo.png'), + ), + ), + const SizedBox(width: 10.0), + Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Semantics( + sortKey: const OrdinalSortKey(0), + child: Text( + 'WeChat Asset Picker', + style: Theme.of(context).textTheme.headline6, + ), + ), + Semantics( + sortKey: const OrdinalSortKey(0.1), + child: Text( + 'Version: ${packageVersion ?? 'unknown'}', + style: Theme.of(context).textTheme.caption, + ), + ), + ], + ), + const SizedBox(width: 20.0), + ], + ), + ); + } + + @override + Widget build(BuildContext context) { + return AnnotatedRegion( + value: currentIsDark + ? SystemUiOverlayStyle.light + : SystemUiOverlayStyle.dark, + child: Scaffold( + body: SafeArea( + child: Column( + children: [ + header(context), + Expanded( + child: PageView( + controller: controller, + children: [ + MultiAssetsPage(), + SingleAssetPage(), + CustomPickersPage(), + ], + ), + ), + ], + ), + ), + bottomNavigationBar: BottomNavigationBar( + currentIndex: currentIndex, + onTap: selectIndex, + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.photo_library), + label: 'Multi', + ), + BottomNavigationBarItem( + icon: Icon(Icons.photo), + label: 'Single', + ), + BottomNavigationBarItem( + icon: Icon(Icons.explore), + label: 'Custom', + ), + ], + ), + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/pages/multi_assets_page.dart b/packages/flutter_wechat_assets_picker/example/lib/pages/multi_assets_page.dart new file mode 100644 index 00000000..38307e6f --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/pages/multi_assets_page.dart @@ -0,0 +1,97 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020-05-31 20:21 +/// +import 'package:flutter/material.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; + +import '../constants/page_mixin.dart'; +import '../constants/picker_method.dart'; + +class MultiAssetsPage extends StatefulWidget { + @override + _MultiAssetsPageState createState() => _MultiAssetsPageState(); +} + +class _MultiAssetsPageState extends State + with AutomaticKeepAliveClientMixin, ExamplePageMixin { + @override + int get maxAssetsCount => 9; + + /// Check each method's source code for more details. + @override + List get pickMethods { + return [ + PickMethod.common(maxAssetsCount), + PickMethod.image(maxAssetsCount), + PickMethod.video(maxAssetsCount), + PickMethod.audio(maxAssetsCount), + PickMethod.camera( + maxAssetsCount: maxAssetsCount, + handleResult: (BuildContext context, AssetEntity result) => + Navigator.of(context).pop([...assets, result]), + ), + PickMethod.cameraAndStay(maxAssetsCount: maxAssetsCount), + PickMethod.changeLanguages(maxAssetsCount), + PickMethod.threeItemsGrid(maxAssetsCount), + PickMethod.prependItem(maxAssetsCount), + PickMethod( + icon: '🎭', + name: 'WeChat Moment', + description: 'Pick assets like the WeChat Moment pattern.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + specialPickerType: SpecialPickerType.wechatMoment, + ), + ); + }, + ), + PickMethod.noPreview(maxAssetsCount), + PickMethod.customizableTheme(maxAssetsCount), + PickMethod.customFilterOptions(maxAssetsCount), + PickMethod.preventGIFPicked(maxAssetsCount), + PickMethod.keepScrollOffset( + delegate: () => keepScrollDelegate!, + onPermission: (PermissionState state) { + keepScrollDelegate ??= DefaultAssetPickerBuilderDelegate( + provider: keepScrollProvider, + initialPermission: state, + keepScrollOffset: true, + ); + }, + onLongPress: () { + keepScrollProvider.dispose(); + keepScrollProvider = DefaultAssetPickerProvider(); + keepScrollDelegate?.dispose(); + keepScrollDelegate = null; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Resources have been released')), + ); + }, + ), + PickMethod( + icon: '🎚', + name: 'Custom image preview thumb size', + description: 'You can reduce the thumb size to get faster load speed.', + method: (BuildContext context, List assets) { + return AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.image, + gridThumbnailSize: const ThumbnailSize.square(80), + previewThumbnailSize: const ThumbnailSize.square(150), + ), + ); + }, + ), + ]; + } + + @override + bool get wantKeepAlive => true; +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/pages/single_assets_page.dart b/packages/flutter_wechat_assets_picker/example/lib/pages/single_assets_page.dart new file mode 100644 index 00000000..caaa8822 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/pages/single_assets_page.dart @@ -0,0 +1,48 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020-05-31 21:17 +/// +import 'package:flutter/material.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart' + show AssetEntity; + +import '../constants/page_mixin.dart'; +import '../constants/picker_method.dart'; + +class SingleAssetPage extends StatefulWidget { + @override + _SingleAssetPageState createState() => _SingleAssetPageState(); +} + +class _SingleAssetPageState extends State + with AutomaticKeepAliveClientMixin, ExamplePageMixin { + @override + int get maxAssetsCount => 1; + + /// Check each method's source code for more details. + @override + List get pickMethods { + return [ + PickMethod.common(maxAssetsCount), + PickMethod.image(maxAssetsCount), + PickMethod.video(maxAssetsCount), + PickMethod.audio(maxAssetsCount), + PickMethod.camera( + maxAssetsCount: maxAssetsCount, + handleResult: (BuildContext context, AssetEntity result) => + Navigator.of(context).pop([result]), + ), + PickMethod.cameraAndStay(maxAssetsCount: maxAssetsCount), + PickMethod.changeLanguages(maxAssetsCount), + PickMethod.threeItemsGrid(maxAssetsCount), + PickMethod.prependItem(maxAssetsCount), + PickMethod.customFilterOptions(maxAssetsCount), + PickMethod.preventGIFPicked(maxAssetsCount), + PickMethod.noPreview(maxAssetsCount), + PickMethod.customizableTheme(maxAssetsCount), + ]; + } + + @override + bool get wantKeepAlive => true; +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/pages/splash_page.dart b/packages/flutter_wechat_assets_picker/example/lib/pages/splash_page.dart new file mode 100644 index 00000000..c80cf0a7 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/pages/splash_page.dart @@ -0,0 +1,55 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020-05-31 21:36 +/// +import 'package:flutter/material.dart'; +import 'package:package_info_plus/package_info_plus.dart'; + +import '../main.dart'; +import 'home_page.dart'; + +class SplashPage extends StatefulWidget { + const SplashPage(); + + @override + _SplashPageState createState() => _SplashPageState(); +} + +class _SplashPageState extends State { + @override + void initState() { + super.initState(); + init(); + } + + Future init() async { + await PackageInfo.fromPlatform() + .then((PackageInfo p) => packageVersion = p.version) + .catchError((Object _) {}); + await Future.delayed(const Duration(seconds: 1)); + if (mounted) { + Navigator.of(context).pushReplacement( + PageRouteBuilder( + pageBuilder: (_, __, ___) => const HomePage(), + transitionsBuilder: (_, Animation a, __, Widget child) { + return FadeTransition(opacity: a, child: child); + }, + transitionDuration: const Duration(seconds: 1), + ), + ); + } + } + + @override + Widget build(BuildContext context) { + return Material( + color: Theme.of(context).canvasColor, + child: Center( + child: Hero( + tag: 'LOGO', + child: Image.asset('assets/flutter_candies_logo.png', width: 150.0), + ), + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/widgets/asset_widget_builder.dart b/packages/flutter_wechat_assets_picker/example/lib/widgets/asset_widget_builder.dart new file mode 100644 index 00000000..19475bd6 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/widgets/asset_widget_builder.dart @@ -0,0 +1,93 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/7/13 10:40 +/// +import 'package:flutter/material.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart' + show AssetEntity, AssetEntityImageProvider, AssetType; + +class AssetWidgetBuilder extends StatelessWidget { + const AssetWidgetBuilder({ + Key? key, + required this.entity, + required this.isDisplayingDetail, + }) : super(key: key); + + final AssetEntity entity; + final bool isDisplayingDetail; + + Widget _audioAssetWidget(BuildContext context) { + return ColoredBox( + color: Theme.of(context).dividerColor, + child: Stack( + children: [ + AnimatedPositionedDirectional( + duration: kThemeAnimationDuration, + top: 0.0, + start: 0.0, + end: 0.0, + bottom: isDisplayingDetail ? 20.0 : 0.0, + child: Center( + child: Icon( + Icons.audiotrack, + size: isDisplayingDetail ? 24.0 : 16.0, + ), + ), + ), + AnimatedPositionedDirectional( + duration: kThemeAnimationDuration, + start: 0.0, + end: 0.0, + bottom: isDisplayingDetail ? 0.0 : -20.0, + height: 20.0, + child: Text( + entity.title ?? '', + style: const TextStyle(height: 1.0, fontSize: 10.0), + maxLines: 1, + overflow: TextOverflow.ellipsis, + textAlign: TextAlign.center, + ), + ), + ], + ), + ); + } + + Widget _imageAssetWidget(BuildContext context) { + return Image( + image: AssetEntityImageProvider(entity, isOriginal: false), + fit: BoxFit.cover, + ); + } + + Widget _videoAssetWidget(BuildContext context) { + return Stack( + children: [ + Positioned.fill(child: _imageAssetWidget(context)), + ColoredBox( + color: Theme.of(context).dividerColor.withOpacity(0.3), + child: Center( + child: Icon( + Icons.video_library, + color: Colors.white, + size: isDisplayingDetail ? 24.0 : 16.0, + ), + ), + ), + ], + ); + } + + @override + Widget build(BuildContext context) { + switch (entity.type) { + case AssetType.audio: + return _audioAssetWidget(context); + case AssetType.video: + return _videoAssetWidget(context); + case AssetType.image: + case AssetType.other: + return _imageAssetWidget(context); + } + } +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/widgets/method_list_view.dart b/packages/flutter_wechat_assets_picker/example/lib/widgets/method_list_view.dart new file mode 100644 index 00000000..47d07eef --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/widgets/method_list_view.dart @@ -0,0 +1,98 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/7/13 11:00 +/// +import 'package:flutter/material.dart'; + +import '../constants/picker_method.dart'; + +class MethodListView extends StatefulWidget { + const MethodListView({ + Key? key, + required this.pickMethods, + required this.onSelectMethod, + }) : super(key: key); + + final List pickMethods; + final void Function(PickMethod method) onSelectMethod; + + @override + _MethodListViewState createState() => _MethodListViewState(); +} + +class _MethodListViewState extends State { + final ScrollController _controller = ScrollController(); + + Widget methodItemBuilder(BuildContext context, int index) { + final PickMethod model = widget.pickMethods[index]; + return InkWell( + onTap: () => widget.onSelectMethod(model), + onLongPress: model.onLongPress, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 20.0, + vertical: 10.0, + ), + child: Row( + children: [ + Container( + margin: const EdgeInsets.all(2.0), + width: 48, + height: 48, + child: Center( + child: Text( + model.icon, + style: const TextStyle(fontSize: 24.0), + ), + ), + ), + const SizedBox(width: 12.0), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + model.name, + style: const TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.bold, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 5), + Text( + model.description, + style: Theme.of(context).textTheme.caption, + ), + ], + ), + ), + const Icon(Icons.chevron_right, color: Colors.grey), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 10, + ).copyWith(bottom: 10.0), + child: Scrollbar( + controller: _controller, + isAlwaysShown: true, + radius: const Radius.circular(999), + child: ListView.builder( + controller: _controller, + padding: const EdgeInsets.symmetric(vertical: 10.0), + itemCount: widget.pickMethods.length, + itemBuilder: methodItemBuilder, + ), + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/example/lib/widgets/selected_assets_list_view.dart b/packages/flutter_wechat_assets_picker/example/lib/widgets/selected_assets_list_view.dart new file mode 100644 index 00000000..0551bdef --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/lib/widgets/selected_assets_list_view.dart @@ -0,0 +1,150 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/7/13 10:51 +/// +import 'package:flutter/material.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart' + show AssetEntity, AssetPicker, AssetPickerViewer; + +import '../main.dart' show themeColor; +import 'asset_widget_builder.dart'; + +class SelectedAssetsListView extends StatelessWidget { + const SelectedAssetsListView({ + Key? key, + required this.assets, + required this.isDisplayingDetail, + required this.onResult, + required this.onRemoveAsset, + }) : super(key: key); + + final List assets; + final ValueNotifier isDisplayingDetail; + final void Function(List? result) onResult; + final void Function(int index) onRemoveAsset; + + Widget _selectedAssetWidget(BuildContext context, int index) { + final AssetEntity asset = assets.elementAt(index); + return ValueListenableBuilder( + valueListenable: isDisplayingDetail, + builder: (_, bool value, __) => GestureDetector( + onTap: () async { + if (value) { + final List? result = + await AssetPickerViewer.pushToViewer( + context, + currentIndex: index, + previewAssets: assets, + themeData: AssetPicker.themeData(themeColor), + ); + onResult(result); + } + }, + child: RepaintBoundary( + child: ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: AssetWidgetBuilder( + entity: asset, + isDisplayingDetail: value, + ), + ), + ), + ), + ); + } + + Widget _selectedAssetDeleteButton(BuildContext context, int index) { + return GestureDetector( + onTap: () => onRemoveAsset(index), + child: DecoratedBox( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.0), + color: Theme.of(context).canvasColor.withOpacity(0.5), + ), + child: const Icon(Icons.close, size: 18.0), + ), + ); + } + + Widget get selectedAssetsListView { + return Expanded( + child: ListView.builder( + shrinkWrap: true, + physics: const BouncingScrollPhysics(), + padding: const EdgeInsets.symmetric(horizontal: 8.0), + scrollDirection: Axis.horizontal, + itemCount: assets.length, + itemBuilder: (BuildContext c, int index) { + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 16.0, + ), + child: AspectRatio( + aspectRatio: 1.0, + child: Stack( + children: [ + Positioned.fill(child: _selectedAssetWidget(c, index)), + ValueListenableBuilder( + valueListenable: isDisplayingDetail, + builder: (_, bool value, __) => AnimatedPositioned( + duration: kThemeAnimationDuration, + top: value ? 6.0 : -30.0, + right: value ? 6.0 : -30.0, + child: _selectedAssetDeleteButton(c, index), + ), + ), + ], + ), + ), + ); + }, + ), + ); + } + + @override + Widget build(BuildContext context) { + return ValueListenableBuilder( + valueListenable: isDisplayingDetail, + builder: (_, bool value, __) => AnimatedContainer( + duration: kThemeChangeDuration, + curve: Curves.easeInOut, + height: assets.isNotEmpty + ? value + ? 120.0 + : 80.0 + : 40.0, + child: Column( + children: [ + SizedBox( + height: 20.0, + child: GestureDetector( + onTap: () { + if (assets.isNotEmpty) { + isDisplayingDetail.value = !isDisplayingDetail.value; + } + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Text('Selected Assets'), + if (assets.isNotEmpty) + Padding( + padding: const EdgeInsetsDirectional.only(start: 10.0), + child: Icon( + value ? Icons.arrow_downward : Icons.arrow_upward, + size: 18.0, + ), + ), + ], + ), + ), + ), + selectedAssetsListView, + ], + ), + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/example/macos/.gitignore b/packages/flutter_wechat_assets_picker/example/macos/.gitignore new file mode 100644 index 00000000..575236c6 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/xcuserdata/ +Flutter/GeneratedPluginRegistrant.swift \ No newline at end of file diff --git a/packages/flutter_wechat_assets_picker/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/flutter_wechat_assets_picker/example/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 00000000..785633d3 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/packages/flutter_wechat_assets_picker/example/macos/Flutter/Flutter-Release.xcconfig b/packages/flutter_wechat_assets_picker/example/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 00000000..5fba960c --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/project.pbxproj b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..14c98d98 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,644 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 705A78E104612FC6336B232B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5EE8403A5672AAAE3F1D165 /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* wechat_assets_picker_demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = wechat_assets_picker_demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 6FA9A926ECBAE887080104CF /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + B9484FB509A16B6956AFA9E9 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + C5EE8403A5672AAAE3F1D165 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FEAAE02D3CE16A2490E66456 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 705A78E104612FC6336B232B /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + DB5EFA7D9DDC7F6AFBFAF05A /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* wechat_assets_picker_demo.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + C5EE8403A5672AAAE3F1D165 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + DB5EFA7D9DDC7F6AFBFAF05A /* Pods */ = { + isa = PBXGroup; + children = ( + FEAAE02D3CE16A2490E66456 /* Pods-Runner.debug.xcconfig */, + B9484FB509A16B6956AFA9E9 /* Pods-Runner.release.xcconfig */, + 6FA9A926ECBAE887080104CF /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 3BCD62CBFE19C43615578328 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ED8AE0AD2B44D656C5B52F42 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* wechat_assets_picker_demo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = "The Flutter Authors"; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; + }; + 3BCD62CBFE19C43615578328 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + ED8AE0AD2B44D656C5B52F42 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..b1c73173 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/AppDelegate.swift b/packages/flutter_wechat_assets_picker/example/macos/Runner/AppDelegate.swift new file mode 100644 index 00000000..d53ef643 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..a2ec33f1 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..a74f9e88b296fccfc49de1a1d303baeeba3c3a88 GIT binary patch literal 111864 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 HVDA3_{R?8Q literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..77cd6f2c5431488d6da671462a17d8af6fe83202 GIT binary patch literal 11470 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 Jr)mx{{|8^MEUf?l literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..52e68c67c764a2993c91e492d5d75af10ecf09eb GIT binary patch literal 2216 zcmbVOc~BEq9F7bXK@sZ#R>yH&r1jeDk%R1xQ6UKuG!d0nKv6flFR+qi+&vJ!8L0lkT@R`xOdk>(9z?;zt1_$BrTR?%3 zUMhj{rOqs_w2-5Dboel2Xpn&fUZAi@(ChKZOwf!r^D=O(PU9%j3{eWrXo_kO$#!HS z7EuC-L2JY~Qg1+#X)S5g>1lchLJ_11Crmi0!$>2eCm4!CLKh0HNxYjGXH5&)f?sB| zKvDb*jt2q(Z9u0LrF@*EX&NUeoT4y@z~mC2!Ui#)oY=}>1u`cIenk*{h|0*i#3IFv zLZvM(c>Q5opBxGk3>Y3{{Wz&5RF|58JQv3KizH98ah}702Y7)`ks+20WBmo9BFY8g zOQ^%kFBpKKbvVK{+SKCphE2$dtr)ry3P_u1Ijh7E@NqyEizE)%ilNLz)f+!!kpQcR zQkE!sS`(GoDjBg@)Wp!p00+wnKGlzb&+P(MRsm*|A}9hQOc+ULkp_k^GCF!NVPXiP z1?mua!Clf8l%yCk`2{Gf8=h6z{{-_K;}#_^3%wS+Y(BvKzI+r3$C9y#9#MjZp*r33 z^LC3RQxe^R2QJ9tMy4Wmo5e`dMk7XP$!56@2V?ii3hU#5-D*Z*gtUUdGn6ZtB{-hO zD4mJK^uS19F1_A>5jvU$I)Y73)^n}v^74RmDR_H{qfQmNa25BTHd=78o(wO&KAX z-sp0XCXyy8wf39KiAfh^nCOzwX&MivhejR&X|5oK<Ig*M{xT9!lm z0|fw*zM@K6tjnTX39u4K$%nCfy;8(q=7G!>zgqw6<+DXtTl!xp-T$pW6dAdt6V|zy3t6bE7(SSl{)$y^ry6Y~yyF9@%HYzQ}d32WTbndG1q*+5UR$Z=f7hPWZ z=JKn*_AWo+-F^1lAI6geUOs69*X#ET@1D=jDtFJ%WaNHnISHjrmGb1qXGi4D`{pj( zxvXKMCMKby6t!ZB?yYZ*t^4sqamizP-k_*%*qtM_duLp!DTyx|H1Xm)t!Z5)zF-*81_yt8X^TK%P^3H+Z&#;h&g z*T;PS)Lxx(AD#cx?Vk6l`yP+zai-IWd-_g5OOY(W_?W z?z)RzW_grlpK$O(^oW$n2dekk_9q>_7O>4r?Y8(a`}Lv5vY%N^-qi7L|CO=$ z*8Mb3$+8Yo3CJ6(wsY;vYL&8t=#`c>!ND_y()i{VLYZ(VQNC8Wg9Jl4H2?rLY$ zUsOD|d`GNnLBH8qr-9ZpWOXh5^IA7yc|0V1; Lr}dN6spWqI^q>*q literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6c69002e7db867ef28de0a7f07fea4c6f000e3 GIT binary patch literal 24825 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 b7yLK$I*gb_bA12%oIvq|%KIuA)8PLDyqNv| literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..e1fd9e76267418f0122466a9bdeb2de1c5229cc3 GIT binary patch literal 3176 zcmbVP2~-o;8jj#XQHX{`#cdiC+_FseL?TOqLNS1lA|i-GW=I0r%!E}ylpYij+E=xL zLd69NR;Vi~i-3{30AhpUf^e$ED2rP~5m5Ukh&=m_?dy4S&dl7o_q*T!{mcDxlHu>W z+{)6y5{JWCd3y;1us2}3EyiO{G%>Lcdwr(yT8-jxbGuCU82`BsU*mA&adL66E?BgJ zCs8ZO5Uh?s$ni=IhQ{GsT;ny6BpT5H5r|Z-;uD`%)(`OFme$wYg#yx7a&|VVhj7? z6J^?&}bwKK|&K$Iw+o`LLEOa2oY4Gm1}fzwF)pX zLJ{g19iNCPeeZ%&GfJyMN5X^!j1muNC?J_?a%mU{OGa^;7_DO1I4q$c3Pg#hbSQ=e zN3j~2TBk;3>c5~KUH+2+EVLrgsEto*Q7T7GpgPZ3%#D$Nd=ia{6Ep}V072C;S_$GA zi^+5}d86S8v_B7}4ZpGc$9s3a)eQ{kp#KSmCA>(rRtaHV%axE6 zp=eZ6A}|_Do3u2K#B$CZ!fLw?L(mw1LswFX| zIxy{jeB6j%^hy+t=&&3l9MECQcHEx@jDN z0QN}-3z=6uo>ToS)+)e-WCerXVZihcGXU)+t$E0LhB2?4N;f!J*(YQvJQK|V+U?tcwW-iX#fp_ z11&A{(7h9YV~qovl9#udbB7{0^zf>eGrOF(!#BqJuQrek(_6ak)!T?W*(C`$d(`gq z=KAQSH;RI9o%4B&ov#HyUVh8@hdFFdE@ z63!Jav8gVO@8j%W-?dqmPh^Rt*WVOZ{-j&HXK~RLPjszSYSXGUB@T+WC%O6Hkp{+lLk*7A{8K6c6k=!Ho*OJaU@@*O$Z=!s4>ndm?ye%#hD7f=!OzHgd#`M4 zy%Z*hdy1<9Zk&DgtaVEQt2}i@o;V*34T{&GYgNum9vPci{LE0}Ee6hRs+=FY6xvqt zE-0seFmkiUu4b>NJ%XHvGpsv3PD?zmwEsdhJeV8sybrhci|~~hVAAJ(`&(@Gm>sR_ zUcRiU-Y599&thDj+kwsw=(ixERmeE!pli8DnFrr(&8#XvcJhjT=@?t|#LjO{?N~^N zD+)5^xh2Hr85X88@=qg97moc>FeWHp}QQyCG z%F9`~aqJPjKD;cn$cVpuD*?aG7-l0X{h|2G_S~+S7Y*~UC}o8x!-*5 z!t}}HuE9pXq)MWjnM!gY%g|Lfi=6am-7L30v)Y;KbLvC&bF3~G?{{yk+I{!>@qT$= z(T?+9O}1La76sxz_c8wRbitViL-_m0vYN^X?n@FU|LT*zWp%Dyck=wqf$j__@GE`V zQU5D1epfl*qNx$awVy|wYbfZ9I=*Y~*sGR1j0fpXeLMHo{+uM^t)e^bx_Gp$_PpZ{ z3(vOp6{m;X|30&)yJ6p%(weh6``I^*?)Y{pzwBSL2gKQnMCRYnQUUv+bv_S%_Px5T zJG1e+ViH}5KRczYCMQa2I|e<8fFW&98h$$Y*z!y12APs~udc`<)b`cItQ2$4La?W# zbBL*vwmDSHI8`RcwX|@5_bPRY6gG;l%hpmHLkV09bQ8G*>4#6eBHS!`Tb1NK0ZwLB z`7VK6R1?GeyP3x;j*2dJ?!A81HT+sendQ=>#g}o8(^A{zJEqqjxo!Vqu45h{VbXk$ z{FZYk3hElJ8R&`qPu%aXwVSPPwX66#)pz~ag*V?_QbB0}`xjaE=6`K>hr9CNo=LwB zOvU*S=rbDcO|xs5n3%lU=eGlHn=DtXUi63c8vA_|eBO4mElZs<^9P+SRaO$4uTGD9 z{MFUdiJz6MY%uEt@)ep7)l|ymSYz&wiQ9>xW7g zg_MUS32w3T#xzz&w^fQVl@qFiH9i>!?CqV@@vzQQ+?@wKJ&!{qw? zeiw2}=itMl=H0K z303WYy{~!3ZG38P{LZ%5UW1WaT_0Es?f9-frKw}!>{`ku+w42u{e&eO4lFoU*EuK5 z$%0d$T(an1gnHgbWm|zx+nzt>JmS|pzMf*pewaAa{D@TBFlh6ti&ko| S*55Gw7x4D<6_$Cd+x%~ay7>SA literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000000000000000000000000000000000000..db797293ed44ae45839137ce18c75742904043a7 GIT binary patch literal 54259 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 literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/packages/flutter_wechat_assets_picker/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..cc75bfc6dbd7fa612369293259e47a83c85e8a83 GIT binary patch literal 5687 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 + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/AppInfo.xcconfig b/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 00000000..c25c86ec --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = Wechat Assets Picker Example + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.fluttercandies.wechatAssetsPickerExample + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2020 com.example. All rights reserved. diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Debug.xcconfig b/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 00000000..36b0fd94 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Release.xcconfig b/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 00000000..dff4f495 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Warnings.xcconfig b/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 00000000..42bcbf47 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/DebugProfile.entitlements b/packages/flutter_wechat_assets_picker/example/macos/Runner/DebugProfile.entitlements new file mode 100644 index 00000000..dddb8a30 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Info.plist b/packages/flutter_wechat_assets_picker/example/macos/Runner/Info.plist new file mode 100644 index 00000000..e1979e28 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/Info.plist @@ -0,0 +1,41 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundleDisplayName + Wechat Assets Picker Example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + NSPhotoLibraryUsageDescription + Select your photos, videos, and audios. + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/MainFlutterWindow.swift b/packages/flutter_wechat_assets_picker/example/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 00000000..2722837e --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController.init() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/packages/flutter_wechat_assets_picker/example/macos/Runner/Release.entitlements b/packages/flutter_wechat_assets_picker/example/macos/Runner/Release.entitlements new file mode 100644 index 00000000..8165abfd --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/macos/Runner/Release.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + com.apple.security.network.client + + com.apple.security.files.user-selected.read-only + + + diff --git a/packages/flutter_wechat_assets_picker/example/pubspec.yaml b/packages/flutter_wechat_assets_picker/example/pubspec.yaml new file mode 100644 index 00000000..0551e88f --- /dev/null +++ b/packages/flutter_wechat_assets_picker/example/pubspec.yaml @@ -0,0 +1,29 @@ +name: wechat_assets_picker_demo +description: The demo project for the wechat_assets_picker package. +version: 7.1.2+15 +publish_to: none + +environment: + sdk: '>=2.15.0 <3.0.0' + flutter: '>=2.8.0' + +dependencies: + flutter: + sdk: flutter + flutter_localizations: + sdk: flutter + + wechat_assets_picker: + path: ../ + wechat_camera_picker: ^3.2.0+1 + + meta: ^1.7.0 + package_info_plus: ^4.0.1 + path: ^1.8.0 + path_provider: ^2.0.8 + provider: ^6.0.2 + +flutter: + uses-material-design: true + assets: + - assets/ diff --git a/packages/flutter_wechat_assets_picker/go.mod b/packages/flutter_wechat_assets_picker/go.mod new file mode 100644 index 00000000..88796349 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/go.mod @@ -0,0 +1,5 @@ +module wechat_assets_picker + +go 1.16 + +require github.com/flutter/flutter 2.0.0 // indirect diff --git a/packages/flutter_wechat_assets_picker/guides/migration_guide.md b/packages/flutter_wechat_assets_picker/guides/migration_guide.md new file mode 100644 index 00000000..b35fa2c1 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/guides/migration_guide.md @@ -0,0 +1,162 @@ +# Migration Guide + +This document gathered all breaking changes and migrations requirement between major versions. + +## Major versions + +- [7.0.0](#7.0.0) +- [6.0.0](#6.0.0) +- [5.0.0](#5.0.0) + +## 7.0.0 + +### Summary + +- Nearly all delegates are updated due to semantic support and de-nested improvements. +- Most arguments in `pickAssets` have been gathered as the `AssetPickerConfig`. +- Most text delegates has been renamed with `*AssetPickerTextDelegate`. +- `AssetsPickerTextDelegate` has been renamed to `AssetPickerTextDelegate` (**Asset** without **s**). + +### Details + +#### `AssetPicker` + +- `gridThumbSize` has been renamed to `gridThumbnailSize` and has different type. +- `pathThumbSize` has been renamed to `pathThumbnailSize` and has different type. +- `previewThumbSize` has been renamed to `previewThumbnailSize` and has different type. + +##### `pickAssets` + +Before: + +```dart +AssetPicker.pickAssets( + context, + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.image, +) +``` + +After: + +```dart +AssetPicker.pickAssets( + context, + pickerConfig: AssetPickerConfig( + maxAssets: maxAssetsCount, + selectedAssets: assets, + requestType: RequestType.image, + ), +) +``` + +##### `pickAssetsWithDelegate` + +This method no longer requires the `provider` argument, delegate should hold provider itself if necessary. + +#### `AssetPickerBuilderDelegate` + +- **The abstract delegate doesn't require a `provider` anymore, custom delegates should maintain their own providers.** +- **The `ChangeNotifierProvider` is no longer held inside the `pickAssets` method, + custom delegates should provide the notifier on their own.** +- `keepScrollOffset` has been moved to the default delegate instead of the abstract one. +- Custom delegates must implement `isSingleAssetMode`, `selectAsset`, `assetGridItemSemanticsBuilder` and `build`. +- `selectIndicator` method now has a different signature. +- `dispose` must call super when extending. + +#### `AssetPickerProvider` + +- **`isSwitchingPath` now holds by the default delegate.** +- `currentPathEntity` has been renamed to `currentPath`. +- `getAssetsFromEntity` has been renamed to `getAssetsFromPath`. +- `getFirstThumbFromPathEntity` has been renamed to `getThumbnailFromPath`. +- `getAssetPathList` has been renamed to `getPaths`. +- `pathEntityList` has been renamed to `pathsList`. +- `validPathThumbCount` has been renamed to `validPathThumbnailsCount`. + +#### `AssetPickerViewer` + +##### `pushToViewer` + +- `previewThumbSize` has been renamed to `previewThumbnailSize` and has different type. + +## 6.0.0 + +### Summary + +_If you didn't extend `AssetPickerBuilderDelegate` or `AssetTextDelegate` to build delegates on your own, +you can stop reading._ + +- User who extended `AssetPickerBuilderDelegate` needs to update the subclass with the latest changes. +- `AssetsPickerTextDelegate` is not abstract anymore. + +### Details + +#### `AssetPickerBuilderDelegate` + +New arguments: + +- `PermissionState initialPermission`: The intention of this change is to be capable with various of `PermissionState`. + If your delegate didn't require a permission check, you can pass `PermissionState.authorized` directly. +- `keepScrollOffset`: To hold the provider and delegate without disposing, + and keep the scroll offset with the last picking. + +Other changes: + +- `assetsGridBuilder` is not implemented by default. +- The `findChildIndexBuilder` and `assetsGridItemCount` methods have new signature. + They require calculating placeholders count on iOS/macOS by default. + +#### `AssetPickerViewerBuilderDelegate` + +- Added the `isDisplayingDetail` notifier. +- Added double tap animation series of fields. + +#### `AssetsPickerTextDelegate` + +- This delegate is now a normal class with Chinese language implemented by default, + which makes `DefaultAssetsPickerTextDelegate` removed. If you used to use `DefaultAssetsPickerTextDelegate()`, + use `AssetsPickerTextDelegate()` instead. + +#### `AssetPickerProvider` + +- The `switchPath` method has a different signature: + +Before: + +```dart +void switchPath(Path pathEntity); +``` + +After: + +```dart +Future switchPath([P? pathEntity]); +``` + +### `SortPathDelegate` + +`SortPathDelegate` accepts a generic type `Path` now, and the type will be delivered to the `sort` method. + +## 5.0.0 + +### Summary + +_If you only use the `AssetPicker.pickAssets` and `AssetEntityImageProvider`, didn't use `AssetPickerViewer`, +`AssetPickerProvider`, or other components separately, you can stop reading._ + +The `AssetPicker` and the `AssetPickerViewer` are only a builder since 5.x, all widgets construct were moved +to `AssetPickerBuilderDelegate` and `AssetPickerViewerBuilderDelegate`, and these delegates are both abstract. + +By splitting delegates, now you can build your own picker with custom types, style, and widgets. + +#### Details + +For how to implement a custom picker, see the example's custom page for more implementation details. + +- If you have ever use `AssetPickerViewer.pushToViewer`, the properties `assets` has changed to + `previewAssets`. + +- If you have extended an `AssetPickerProvider` or `AssetPickerViewerProvider`, it now requires you to pass generic + type `Asset` and `Path`, and handle the entities on your own. diff --git a/packages/flutter_wechat_assets_picker/lib/src/constants/config.dart b/packages/flutter_wechat_assets_picker/lib/src/constants/config.dart new file mode 100644 index 00000000..7d659d39 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/constants/config.dart @@ -0,0 +1,185 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2022/2/14 13:25 +/// +import 'package:flutter/material.dart'; +import 'package:photo_manager/photo_manager.dart'; + +import '../constants/typedefs.dart'; +import '../delegates/asset_picker_text_delegate.dart'; +import '../delegates/sort_path_delegate.dart'; +import 'constants.dart'; +import 'enums.dart'; + +class AssetPickerConfig { + const AssetPickerConfig({ + this.selectedAssets, + this.maxAssets = 9, + this.pageSize = 80, + this.gridThumbnailSize = defaultAssetGridPreviewSize, + this.pathThumbnailSize = defaultPathThumbnailSize, + this.previewThumbnailSize, + this.requestType = RequestType.common, + this.specialPickerType, + this.keepScrollOffset = false, + this.sortPathDelegate, + this.filterOptions, + this.gridCount = 4, + this.themeColor, + this.pickerTheme, + this.textDelegate, + this.specialItemPosition = SpecialItemPosition.none, + this.specialItemBuilder, + this.loadingIndicatorBuilder, + this.selectPredicate, + this.shouldRevertGrid, + this.limitedPermissionOverlayPredicate, + this.pathNameBuilder, + }) : assert(maxAssets >= 1, 'maxAssets must be greater than 1.'), + assert( + pickerTheme == null || themeColor == null, + 'pickerTheme and themeColor cannot be set at the same time.', + ), + assert( + pageSize % gridCount == 0, + 'pageSize must be a multiple of gridCount.', + ), + assert( + specialPickerType != SpecialPickerType.wechatMoment || + requestType == RequestType.common, + 'SpecialPickerType.wechatMoment and requestType ' + 'cannot be set at the same time.', + ), + assert( + (specialItemBuilder == null && + identical(specialItemPosition, SpecialItemPosition.none)) || + (specialItemBuilder != null && + !identical(specialItemPosition, SpecialItemPosition.none)), + 'Custom item did not set properly.', + ); + + /// Selected assets. + /// 已选中的资源 + final List? selectedAssets; + + /// Maximum count for asset selection. + /// 资源选择的最大数量 + final int maxAssets; + + /// Assets should be loaded per page. + /// 资源选择的最大数量 + /// + /// Use `null` to display all assets into a single grid. + final int pageSize; + + /// Thumbnail size in the grid. + /// 预览时网络的缩略图大小 + /// + /// This only works on images and videos since other types does not have to + /// request for the thumbnail data. The preview can speed up by reducing it. + /// 该参数仅生效于图片和视频类型的资源,因为其他资源不需要请求缩略图数据。 + /// 预览图片的速度可以通过适当降低它的数值来提升。 + /// + /// This cannot be `null` or a large value since you shouldn't use the + /// original data for the grid. + /// 该值不能为空或者非常大,因为在网格中使用原数据不是一个好的决定。 + final ThumbnailSize gridThumbnailSize; + + /// Thumbnail size for path selector. + /// 路径选择器中缩略图的大小 + final ThumbnailSize pathThumbnailSize; + + /// Preview thumbnail size in the viewer. + /// 预览时图片的缩略图大小 + /// + /// This only works on images and videos since other types does not have to + /// request for the thumbnail data. The preview can speed up by reducing it. + /// 该参数仅生效于图片和视频类型的资源,因为其他资源不需要请求缩略图数据。 + /// 预览图片的速度可以通过适当降低它的数值来提升。 + /// + /// Default is `null`, which will request the origin data. + /// 默认为空,即读取原图。 + final ThumbnailSize? previewThumbnailSize; + + /// Request assets type. + /// 请求的资源类型 + final RequestType requestType; + + /// The current special picker type for the picker. + /// 当前特殊选择类型 + /// + /// Several types which are special: + /// * [SpecialPickerType.wechatMoment] When user selected video, + /// no more images can be selected. + /// * [SpecialPickerType.noPreview] Disable preview of asset; + /// Clicking on an asset selects it. + /// + /// 这里包含一些特殊选择类型: + /// * [SpecialPickerType.wechatMoment] 微信朋友圈模式。 + /// 当用户选择了视频,将不能选择图片。 + /// * [SpecialPickerType.noPreview] 禁用资源预览。 + /// 多选时单击资产将直接选中,单选时选中并返回。 + final SpecialPickerType? specialPickerType; + + /// Whether the picker should save the scroll offset between pushes and pops. + /// 选择器是否可以从同样的位置开始选择 + final bool keepScrollOffset; + + /// Delegate to sort asset path entities. + /// 资源路径排序的实现 + final SortPathDelegate? sortPathDelegate; + + /// Filter options for the picker. + /// 选择器的筛选条件 + /// + /// Will be merged into the base configuration. + /// 将会与基础条件进行合并。 + final FilterOptionGroup? filterOptions; + + /// Assets count for the picker. + /// 资源网格数 + final int gridCount; + + /// Main color for the picker. + /// 选择器的主题色 + final Color? themeColor; + + /// Theme for the picker. + /// 选择器的主题 + /// + /// Usually the WeChat uses the dark version (dark background color) + /// for the picker. However, some others want a light or a custom version. + /// 通常情况下微信选择器使用的是暗色(暗色背景)的主题, + /// 但某些情况下开发者需要亮色或自定义主题。 + final ThemeData? pickerTheme; + + final AssetPickerTextDelegate? textDelegate; + + /// Allow users set a special item in the picker with several positions. + /// 允许用户在选择器中添加一个自定义item,并指定位置 + final SpecialItemPosition specialItemPosition; + + /// The widget builder for the the special item. + /// 自定义item的构造方法 + final SpecialItemBuilder? specialItemBuilder; + + /// Indicates the loading status for the builder. + /// 指示目前加载的状态 + final LoadingIndicatorBuilder? loadingIndicatorBuilder; + + /// {@macro wechat_assets_picker.AssetSelectPredicate} + final AssetSelectPredicate? selectPredicate; + + /// Whether the assets grid should revert. + /// 判断资源网格是否需要倒序排列 + /// + /// [Null] means judging by [isAppleOS]. + /// 使用 [Null] 即使用 [isAppleOS] 进行判断。 + final bool? shouldRevertGrid; + + /// {@macro wechat_assets_picker.LimitedPermissionOverlayPredicate} + final LimitedPermissionOverlayPredicate? limitedPermissionOverlayPredicate; + + /// {@macro wechat_assets_picker.PathNameBuilder} + final PathNameBuilder? pathNameBuilder; +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/constants/constants.dart b/packages/flutter_wechat_assets_picker/lib/src/constants/constants.dart new file mode 100644 index 00000000..71151725 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/constants/constants.dart @@ -0,0 +1,12 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/3/31 16:02 +/// +import 'package:flutter/painting.dart'; +import 'package:photo_manager/photo_manager.dart'; + +/// Default theme color from WeChat. +const Color defaultThemeColorWeChat = Color(0xff00bc56); + +const ThumbnailSize defaultAssetGridPreviewSize = ThumbnailSize.square(200); +const ThumbnailSize defaultPathThumbnailSize = ThumbnailSize.square(80); diff --git a/packages/flutter_wechat_assets_picker/lib/src/constants/custom_scroll_physics.dart b/packages/flutter_wechat_assets_picker/lib/src/constants/custom_scroll_physics.dart new file mode 100644 index 00000000..b999c05e --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/constants/custom_scroll_physics.dart @@ -0,0 +1,46 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/3/31 17:34 +/// +import 'package:flutter/cupertino.dart'; +import 'package:flutter/physics.dart'; + +class CustomBouncingScrollPhysics extends BouncingScrollPhysics { + const CustomBouncingScrollPhysics({ + ScrollPhysics? parent, + }) : super(parent: parent); + + @override + CustomBouncingScrollPhysics applyTo(ScrollPhysics? ancestor) { + return CustomBouncingScrollPhysics(parent: buildParent(ancestor)); + } + + @override + SpringDescription get spring { + return SpringDescription.withDampingRatio( + mass: 0.5, + stiffness: 400.0, + ratio: 1.1, + ); + } +} + +class CustomClampingScrollPhysics extends ClampingScrollPhysics { + const CustomClampingScrollPhysics({ + ScrollPhysics? parent, + }) : super(parent: parent); + + @override + CustomClampingScrollPhysics applyTo(ScrollPhysics? ancestor) { + return CustomClampingScrollPhysics(parent: buildParent(ancestor)); + } + + @override + SpringDescription get spring { + return SpringDescription.withDampingRatio( + mass: 0.5, + stiffness: 400.0, + ratio: 1.1, + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/constants/enums.dart b/packages/flutter_wechat_assets_picker/lib/src/constants/enums.dart new file mode 100644 index 00000000..f265ae8e --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/constants/enums.dart @@ -0,0 +1,45 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/7/8 12:32 +/// + +/// Provide some special picker types to integrate +/// un-common pick pattern. +/// 提供一些特殊的选择器类型以整合非常规的选择行为。 +enum SpecialPickerType { + /// WeChat Moments mode. + /// 微信朋友圈模式 + /// + /// The user can only select *one video* or *multiple images* at the same time, + /// and those two asset types cannot be selected at the same time. + /// 用户只可以选择 **一个视频** 或 **多个图片**,并且两种类型互斥。 + wechatMoment, + + /// Disable preview of assets. + /// 禁用资源预览 + /// + /// There is no preview mode when clicking grid items. + /// In multiple select mode, any click (either on the select indicator or on + /// the asset itself) will select the asset. + /// In single select mode, any click directly selects the asset and returns. + /// 用户在点击网格的 item 时无法进入预览。 + /// 在多选模式下无论点击选择指示还是 item 都将触发选择, + /// 而在单选模式下将直接返回点击的资源。 + noPreview, +} + +/// Provide an item slot for custom widget insertion. +/// 提供一个自定义位置供特殊item放入资源列表中。 +enum SpecialItemPosition { + /// Not insert to the list. + /// 不放入列表 + none, + + /// Add as leading of the list. + /// 在列表前放入 + prepend, + + /// Add as trailing of the list. + /// 在列表后放入 + append, +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/constants/extensions.dart b/packages/flutter_wechat_assets_picker/lib/src/constants/extensions.dart new file mode 100644 index 00000000..fa8a649e --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/constants/extensions.dart @@ -0,0 +1,35 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/8/19 10:34 +/// +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +typedef CNP = ChangeNotifierProvider; + +extension BuildContextExtension on BuildContext { + MediaQueryData get mediaQuery => MediaQuery.of(this); + + ThemeData get themeData => Theme.of(this); + + double get topPadding => mediaQuery.padding.top; + + double get bottomPadding => mediaQuery.padding.bottom; + + double get bottomInsets => mediaQuery.viewInsets.bottom; +} + +extension BrightnessExtension on Brightness { + bool get isDark => this == Brightness.dark; + + bool get isLight => this == Brightness.light; +} + +extension ColorExtension on Color { + bool get isTransparent => this == Colors.transparent || alpha == 0x00; +} + +extension ThemeDataExtension on ThemeData { + Brightness get effectiveBrightness => + appBarTheme.systemOverlayStyle?.statusBarBrightness ?? brightness; +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/constants/typedefs.dart b/packages/flutter_wechat_assets_picker/lib/src/constants/typedefs.dart new file mode 100644 index 00000000..ee45c209 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/constants/typedefs.dart @@ -0,0 +1,51 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2022/3/3 09:55 +/// +import 'dart:async'; + +import 'package:flutter/widgets.dart'; +import 'package:photo_manager/photo_manager.dart' show PermissionState; + +/// {@template wechat_assets_picker.LoadingIndicatorBuilder} +/// Build the loading indicator with the given [isAssetsEmpty]. +/// 根据给定的 [isAssetsEmpty] 构建加载指示器。 +/// {@endtemplate} +typedef LoadingIndicatorBuilder = Widget Function( + BuildContext context, + bool isAssetsEmpty, +); + +/// {@template wechat_asset_picker.SpecialItemBuilder} +/// Build the special item with the given path and assets length. +/// 根据给定的目录和资源数量构建特殊 item。 +/// {@endtemplate} +typedef SpecialItemBuilder = Widget? Function( + BuildContext context, + Path? path, + int length, +); + +/// {@template wechat_assets_picker.AssetSelectPredicate} +/// Predicate whether an asset can be selected or unselected. +/// 判断资源可否被选择。 +/// {@endtemplate} +typedef AssetSelectPredicate = FutureOr Function( + BuildContext context, + Asset asset, + bool isSelected, +); + +/// {@template wechat_assets_picker.LimitedPermissionOverlayPredicate} +/// Predicate whether the limited permission overlay should be displayed. +/// 判断有限的权限情况下是否展示提示页面。 +/// {@endtemplate} +typedef LimitedPermissionOverlayPredicate = bool Function( + PermissionState permissionState, +); + +/// {@template wechat_assets_picker.PathNameBuilder} +/// Build customized path name. +/// 构建自定义路径名称。 +/// {@endtemplate} +typedef PathNameBuilder = String Function(Path path); diff --git a/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_builder_delegate.dart b/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_builder_delegate.dart new file mode 100644 index 00000000..9b2ff60c --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_builder_delegate.dart @@ -0,0 +1,2201 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020-10-29 21:50 +/// +import 'dart:async'; +import 'dart:io'; +import 'dart:math' as math; +import 'dart:typed_data'; +import 'dart:ui' as ui; + +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; +import 'package:flutter/semantics.dart'; +import 'package:flutter/services.dart'; +import 'package:photo_manager/photo_manager.dart'; +import 'package:provider/provider.dart'; + +import '../constants/constants.dart'; +import '../constants/enums.dart'; +import '../constants/extensions.dart'; +import '../constants/typedefs.dart'; +import '../delegates/asset_picker_text_delegate.dart'; +import '../internal/singleton.dart'; +import '../provider/asset_picker_provider.dart'; +import '../widget/asset_picker.dart'; +import '../widget/asset_picker_app_bar.dart'; +import '../widget/asset_picker_viewer.dart'; +import '../widget/builder/asset_entity_grid_item_builder.dart'; +import '../widget/builder/value_listenable_builder_2.dart'; +import '../widget/gaps.dart'; +import '../widget/platform_progress_indicator.dart'; +import '../widget/scale_text.dart'; + +/// The delegate to build the whole picker's components. +/// +/// By extending the delegate, you can customize every components on you own. +/// Delegate requires two generic types: +/// * [Asset] The type of your assets. Defaults to [AssetEntity]. +/// * [Path] The type of your paths. Defaults to [AssetPathEntity]. +abstract class AssetPickerBuilderDelegate { + AssetPickerBuilderDelegate({ + required this.initialPermission, + this.gridCount = 4, + this.pickerTheme, + this.specialItemPosition = SpecialItemPosition.none, + this.specialItemBuilder, + this.loadingIndicatorBuilder, + this.selectPredicate, + this.shouldRevertGrid, + this.limitedPermissionOverlayPredicate, + this.pathNameBuilder, + Color? themeColor, + AssetPickerTextDelegate? textDelegate, + Locale? locale, + }) : assert( + pickerTheme == null || themeColor == null, + 'Theme and theme color cannot be set at the same time.', + ), + themeColor = pickerTheme?.colorScheme.secondary ?? + themeColor ?? + defaultThemeColorWeChat { + Singleton.textDelegate = + textDelegate ?? assetPickerTextDelegateFromLocale(locale); + } + + /// The [PermissionState] when the picker is called. + /// 当选择器被拉起时的权限状态 + final PermissionState initialPermission; + + /// Assets count for the picker. + /// 资源网格数 + final int gridCount; + + /// Main color for the picker. + /// 选择器的主题色 + final Color? themeColor; + + /// Theme for the picker. + /// 选择器的主题 + /// + /// Usually the WeChat uses the dark version (dark background color) + /// for the picker. However, some others want a light or a custom version. + /// + /// 通常情况下微信选择器使用的是暗色(暗色背景)的主题, + /// 但某些情况下开发者需要亮色或自定义主题。 + final ThemeData? pickerTheme; + + /// Allow users set a special item in the picker with several positions. + /// 允许用户在选择器中添加一个自定义item,并指定位置 + final SpecialItemPosition specialItemPosition; + + /// The widget builder for the the special item. + /// 自定义item的构造方法 + final SpecialItemBuilder? specialItemBuilder; + + /// Indicates the loading status for the builder. + /// 指示目前加载的状态 + final LoadingIndicatorBuilder? loadingIndicatorBuilder; + + /// {@macro wechat_assets_picker.AssetSelectPredicate} + final AssetSelectPredicate? selectPredicate; + + /// The [ScrollController] for the preview grid. + final ScrollController gridScrollController = ScrollController(); + + /// If path switcher opened. + /// 是否正在进行路径选择 + final ValueNotifier isSwitchingPath = ValueNotifier(false); + + /// The [GlobalKey] for [assetsGridBuilder] to locate the [ScrollView.center]. + /// [assetsGridBuilder] 用于定位 [ScrollView.center] 的 [GlobalKey] + final GlobalKey gridRevertKey = GlobalKey(); + + /// Whether the assets grid should revert. + /// 判断资源网格是否需要倒序排列 + /// + /// [Null] means judging by [isAppleOS]. + /// 使用 [Null] 即使用 [isAppleOS] 进行判断。 + final bool? shouldRevertGrid; + + /// {@macro wechat_assets_picker.LimitedPermissionOverlayPredicate} + final LimitedPermissionOverlayPredicate? limitedPermissionOverlayPredicate; + + /// {@macro wechat_assets_picker.PathNameBuilder} + final PathNameBuilder? pathNameBuilder; + + /// [ThemeData] for the picker. + /// 选择器使用的主题 + ThemeData get theme => pickerTheme ?? AssetPicker.themeData(themeColor); + + /// Return a system ui overlay style according to + /// the brightness of the theme data. + /// 根据主题返回状态栏的明暗样式 + SystemUiOverlayStyle get overlayStyle => + theme.appBarTheme.systemOverlayStyle ?? + (theme.effectiveBrightness.isDark + ? SystemUiOverlayStyle.light + : SystemUiOverlayStyle.dark); + + /// The color for interactive texts. + /// 可交互的文字的颜色 + Color interactiveTextColor(BuildContext context) => Color.lerp( + context.themeData.iconTheme.color?.withOpacity(.7) ?? Colors.white, + Colors.blueAccent, + 0.4, + )!; + + /// Whether the current platform is Apple OS. + /// 当前平台是否苹果系列系统 (iOS & MacOS) + bool get isAppleOS => Platform.isIOS || Platform.isMacOS; + + /// Whether the picker is under the single asset mode. + /// 选择器是否为单选模式 + bool get isSingleAssetMode; + + /// Space between assets item widget. + /// 资源部件之间的间隔 + double get itemSpacing => 2; + + /// Item's height in app bar. + /// 顶栏内各个组件的统一高度 + double get appBarItemHeight => 32; + + /// Blur radius in Apple OS layout mode. + /// 苹果系列系统布局方式下的模糊度 + double get appleOSBlurRadius => 10; + + /// Height for the bottom occupied section. + /// 底部区域占用的高度 + double get bottomSectionHeight => + bottomActionBarHeight + permissionLimitedBarHeight; + + /// Height for bottom action bar. + /// 底部操作栏的高度 + double get bottomActionBarHeight => kToolbarHeight / 1.1; + + /// Height for the permission limited bar. + /// 权限受限栏的高度 + double get permissionLimitedBarHeight => isPermissionLimited ? 75 : 0; + + /// Notifier for the current [PermissionState]. + /// 当前 [PermissionState] 的监听 + late final ValueNotifier permission = + ValueNotifier( + initialPermission, + ); + late final ValueNotifier permissionOverlayDisplay = ValueNotifier( + limitedPermissionOverlayPredicate?.call(permission.value) ?? + (permission.value == PermissionState.limited), + ); + + /// Whether the permission is limited currently. + /// 当前的权限是否为受限 + bool get isPermissionLimited => permission.value == PermissionState.limited; + + bool get effectiveShouldRevertGrid => shouldRevertGrid ?? isAppleOS; + + AssetPickerTextDelegate get textDelegate => Singleton.textDelegate; + + AssetPickerTextDelegate get semanticsTextDelegate => + Singleton.textDelegate.semanticsTextDelegate; + + /// Keep a `initState` method to sync with [State]. + /// 保留一个 `initState` 方法与 [State] 同步。 + @mustCallSuper + void initState(AssetPickerState state) {} + + /// Keep a `dispose` method to sync with [State]. + /// 保留一个 `dispose` 方法与 [State] 同步。 + @mustCallSuper + void dispose() { + Singleton.scrollPosition = null; + gridScrollController.dispose(); + isSwitchingPath.dispose(); + permission.dispose(); + permissionOverlayDisplay.dispose(); + } + + /// The method to select assets. Delegates can implement this method + /// to involve with predications, callbacks, etc. + /// 选择资源的方法。自定义的 delegate 可以通过实现该方法,整合判断、回调等操作。 + @protected + void selectAsset(BuildContext context, Asset asset, bool selected); + + /// Called when assets changed and obtained notifications from the OS. + /// 系统发出资源变更的通知时调用的方法 + Future onAssetsChanged(MethodCall call, StateSetter setState) async {} + + /// Yes, the build method. + /// 没错,是它是它就是它,我们亲爱的 build 方法~ + Widget build(BuildContext context); + + /// Path entity select widget builder. + /// 路径选择部件构建 + Widget pathEntitySelector(BuildContext context); + + /// Item widgets for path entity selector. + /// 路径单独条目选择组件 + Widget pathEntityWidget({ + required BuildContext context, + required Map list, + required int index, + bool isAudio = false, + }); + + /// A backdrop widget behind the [pathEntityListWidget]. + /// 在 [pathEntityListWidget] 后面的遮罩层 + /// + /// While the picker is switching path, this will displayed. + /// If the user tapped on it, it'll collapse the list widget. + /// + /// 当选择器正在选择路径时,它会出现。用户点击它时,列表会折叠收起。 + Widget pathEntityListBackdrop(BuildContext context); + + /// List widget for path entities. + /// 路径选择列表组件 + Widget pathEntityListWidget(BuildContext context); + + /// Confirm button. + /// 确认按钮 + Widget confirmButton(BuildContext context); + + /// Audio asset type indicator. + /// 音频类型资源指示 + Widget audioIndicator(BuildContext context, Asset asset); + + /// Video asset type indicator. + /// 视频类型资源指示 + Widget videoIndicator(BuildContext context, Asset asset); + + /// Animated backdrop widget for items. + /// 部件选中时的动画遮罩部件 + Widget selectedBackdrop( + BuildContext context, + int index, + Asset asset, + ); + + /// Indicator for assets selected status. + /// 资源是否已选的指示器 + Widget selectIndicator(BuildContext context, int index, Asset asset); + + /// The main grid view builder for assets. + /// 主要的资源查看网格部件 + Widget assetsGridBuilder(BuildContext context); + + /// Indicates how would the grid found a reusable [RenderObject] through [id]. + /// 为 Grid 布局指示如何找到可复用的 [RenderObject]。 + /// + /// See also: + /// * [SliverChildBuilderDelegate.findChildIndexCallback]. + int? findChildIndexBuilder({ + required String id, + required List assets, + int placeholderCount = 0, + }) => + null; + + /// The function which return items count for the assets' grid. + /// 为资源列表提供内容数量计算的方法 + int assetsGridItemCount({ + required BuildContext context, + required List assets, + int placeholderCount = 0, + }); + + /// The item builder for the assets' grid. + /// 资源列表项的构建 + Widget assetGridItemBuilder( + BuildContext context, + int index, + List currentAssets, + ); + + /// The [Semantics] builder for the assets' grid. + /// 资源列表项的语义构建 + Widget assetGridItemSemanticsBuilder( + BuildContext context, + int index, + Asset asset, + Widget child, + ); + + /// The item builder for audio type of asset. + /// 音频资源的部件构建 + Widget audioItemBuilder( + BuildContext context, + int index, + Asset asset, + ); + + /// The item builder for images and video type of asset. + /// 图片和视频资源的部件构建 + Widget imageAndVideoItemBuilder( + BuildContext context, + int index, + Asset asset, + ); + + /// Preview button to preview selected assets. + /// 预览已选资源的按钮 + Widget previewButton(BuildContext context); + + /// Custom app bar for the picker. + /// 选择器自定义的顶栏 + PreferredSizeWidget appBar(BuildContext context); + + /// Layout for Apple OS devices. + /// 苹果系列设备的选择器布局 + Widget appleOSLayout(BuildContext context); + + /// Layout for Android devices. + /// Android设备的选择器布局 + Widget androidLayout(BuildContext context); + + /// GIF image type indicator. + /// GIF 类型图片指示 + Widget gifIndicator(BuildContext context, Asset asset) { + return PositionedDirectional( + start: 0, + bottom: 0, + child: Container( + padding: const EdgeInsets.all(6), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: AlignmentDirectional.bottomCenter, + end: AlignmentDirectional.topCenter, + colors: [theme.dividerColor, Colors.transparent], + ), + ), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 1), + decoration: !isAppleOS + ? BoxDecoration( + borderRadius: BorderRadius.circular(2), + color: theme.iconTheme.color!.withOpacity(0.75), + ) + : null, + child: ScaleText( + textDelegate.gifIndicator, + style: TextStyle( + color: isAppleOS + ? theme.textTheme.bodyText2?.color + : theme.primaryColor, + fontSize: 13, + fontWeight: FontWeight.w500, + ), + semanticsLabel: semanticsTextDelegate.gifIndicator, + strutStyle: const StrutStyle(forceStrutHeight: true, height: 1), + ), + ), + ), + ); + } + + /// Indicator when the asset cannot be selected. + /// 当资源无法被选中时的遮罩 + Widget itemBannedIndicator(BuildContext context, Asset asset) { + return Consumer>( + builder: (_, AssetPickerProvider p, __) { + if (!p.selectedAssets.contains(asset) && p.selectedMaximumAssets) { + return Container( + color: theme.colorScheme.background.withOpacity(.85), + ); + } + return const SizedBox.shrink(); + }, + ); + } + + /// Loading indicator. + /// 加载指示器 + Widget loadingIndicator(BuildContext context) { + return Center( + child: Selector, bool>( + selector: (_, AssetPickerProvider p) => p.isAssetsEmpty, + builder: (BuildContext c, bool isAssetsEmpty, Widget? w) { + if (loadingIndicatorBuilder != null) { + return loadingIndicatorBuilder!(c, isAssetsEmpty); + } + if (isAssetsEmpty) { + return ScaleText( + textDelegate.emptyList, + maxScaleFactor: 1.5, + semanticsLabel: semanticsTextDelegate.emptyList, + ); + } + return w!; + }, + child: PlatformProgressIndicator( + color: theme.iconTheme.color, + size: context.mediaQuery.size.width / gridCount / 3, + ), + ), + ); + } + + /// Item widgets when the thumb data load failed. + /// 资源缩略数据加载失败时使用的部件 + Widget failedItemBuilder(BuildContext context) { + return Center( + child: ScaleText( + textDelegate.loadFailed, + textAlign: TextAlign.center, + style: const TextStyle(fontSize: 18), + semanticsLabel: semanticsTextDelegate.loadFailed, + ), + ); + } + + /// The effective direction for the assets grid. + /// 网格实际的方向 + /// + /// By default, the direction will be reversed if it's iOS/macOS. + /// 默认情况下,在 iOS/macOS 上方向会反向。 + TextDirection effectiveGridDirection(BuildContext context) { + final TextDirection _od = Directionality.of(context); + if (effectiveShouldRevertGrid) { + if (_od == TextDirection.ltr) { + return TextDirection.rtl; + } + return TextDirection.ltr; + } + return _od; + } + + /// The tip widget displays when the access is limited. + /// 当访问受限时在底部展示的提示 + Widget accessLimitedBottomTip(BuildContext context) { + return GestureDetector( + onTap: () { + Feedback.forTap(context); + PhotoManager.openSetting(); + }, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 10), + height: permissionLimitedBarHeight, + color: theme.primaryColor.withOpacity(isAppleOS ? 0.90 : 1), + child: Row( + children: [ + const SizedBox(width: 5), + Icon( + Icons.warning, + color: Colors.orange[400]!.withOpacity(.8), + ), + const SizedBox(width: 15), + Expanded( + child: ScaleText( + textDelegate.accessAllTip, + style: context.themeData.textTheme.caption?.copyWith( + fontSize: 14, + ), + semanticsLabel: semanticsTextDelegate.accessAllTip, + ), + ), + Icon( + Icons.keyboard_arrow_right, + color: context.themeData.iconTheme.color?.withOpacity(.5), + ), + ], + ), + ), + ); + } + + /// Action bar widget aligned to bottom. + /// 底部操作栏部件 + Widget bottomActionBar(BuildContext context) { + Widget child = Container( + height: bottomActionBarHeight + context.bottomPadding, + padding: const EdgeInsets.symmetric(horizontal: 20).copyWith( + bottom: context.bottomPadding, + ), + color: theme.primaryColor.withOpacity(isAppleOS ? 0.90 : 1), + child: Row( + children: [ + if (!isSingleAssetMode || !isAppleOS) previewButton(context), + if (isAppleOS) const Spacer(), + if (isAppleOS) confirmButton(context), + ], + ), + ); + if (isPermissionLimited) { + child = Column( + mainAxisSize: MainAxisSize.min, + children: [accessLimitedBottomTip(context), child], + ); + } + child = ClipRect( + child: BackdropFilter( + filter: ui.ImageFilter.blur( + sigmaX: appleOSBlurRadius, + sigmaY: appleOSBlurRadius, + ), + child: child, + ), + ); + return child; + } + + /// Back button. + /// 返回按钮 + Widget backButton(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: IconButton( + onPressed: Navigator.of(context).maybePop, + tooltip: MaterialLocalizations.of(context).backButtonTooltip, + icon: const Icon(Icons.close), + ), + ); + } + + /// The overlay when the permission is limited on iOS. + Widget iOSPermissionOverlay(BuildContext context) { + final Size size = context.mediaQuery.size; + final Widget _closeButton = Container( + margin: const EdgeInsetsDirectional.only(start: 16, top: 4), + alignment: AlignmentDirectional.centerStart, + child: IconButton( + onPressed: Navigator.of(context).maybePop, + icon: const Icon(Icons.close), + padding: EdgeInsets.zero, + constraints: BoxConstraints.tight(const Size.square(32)), + tooltip: MaterialLocalizations.of(context).closeButtonTooltip, + ), + ); + + final Widget _limitedTips = Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ScaleText( + textDelegate.unableToAccessAll, + style: const TextStyle(fontSize: 22), + textAlign: TextAlign.center, + semanticsLabel: semanticsTextDelegate.unableToAccessAll, + ), + SizedBox(height: size.height / 30), + ScaleText( + textDelegate.accessAllTip, + style: const TextStyle(fontSize: 18), + textAlign: TextAlign.center, + semanticsLabel: semanticsTextDelegate.accessAllTip, + ), + ], + ), + ); + + final Widget _goToSettingsButton = MaterialButton( + elevation: 0, + minWidth: size.width / 2, + height: appBarItemHeight * 1.25, + padding: const EdgeInsets.symmetric(horizontal: 24), + color: themeColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + child: ScaleText( + textDelegate.goToSystemSettings, + style: const TextStyle(fontSize: 17), + semanticsLabel: semanticsTextDelegate.goToSystemSettings, + ), + onPressed: PhotoManager.openSetting, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + + final Widget _accessLimitedButton = GestureDetector( + onTap: () => permissionOverlayDisplay.value = false, + child: ScaleText( + textDelegate.accessLimitedAssets, + style: TextStyle(color: interactiveTextColor(context)), + semanticsLabel: semanticsTextDelegate.accessLimitedAssets, + ), + ); + + return ValueListenableBuilder2( + firstNotifier: permission, + secondNotifier: permissionOverlayDisplay, + builder: (_, PermissionState ps, bool isDisplay, __) { + if (ps.isAuth || !isDisplay) { + return const SizedBox.shrink(); + } + return Positioned.fill( + child: Semantics( + sortKey: const OrdinalSortKey(0), + child: Container( + padding: context.mediaQuery.padding, + color: context.themeData.canvasColor, + child: Column( + children: [ + _closeButton, + Expanded(child: _limitedTips), + _goToSettingsButton, + SizedBox(height: size.height / 18), + _accessLimitedButton, + ], + ), + ), + ), + ); + }, + ); + } +} + +class DefaultAssetPickerBuilderDelegate + extends AssetPickerBuilderDelegate { + DefaultAssetPickerBuilderDelegate({ + required this.provider, + required PermissionState initialPermission, + int gridCount = 4, + ThemeData? pickerTheme, + SpecialItemPosition specialItemPosition = SpecialItemPosition.none, + SpecialItemBuilder? specialItemBuilder, + LoadingIndicatorBuilder? loadingIndicatorBuilder, + AssetSelectPredicate? selectPredicate, + bool? shouldRevertGrid, + LimitedPermissionOverlayPredicate? limitedPermissionOverlayPredicate, + PathNameBuilder? pathNameBuilder, + this.gridThumbnailSize = defaultAssetGridPreviewSize, + this.previewThumbnailSize, + this.specialPickerType, + this.keepScrollOffset = false, + Color? themeColor, + AssetPickerTextDelegate? textDelegate, + Locale? locale, + }) : super( + initialPermission: initialPermission, + gridCount: gridCount, + pickerTheme: pickerTheme, + specialItemPosition: specialItemPosition, + specialItemBuilder: specialItemBuilder, + loadingIndicatorBuilder: loadingIndicatorBuilder, + selectPredicate: selectPredicate, + shouldRevertGrid: shouldRevertGrid, + limitedPermissionOverlayPredicate: limitedPermissionOverlayPredicate, + pathNameBuilder: pathNameBuilder, + themeColor: themeColor, + textDelegate: textDelegate, + locale: locale, + ) { + // Add the listener if [keepScrollOffset] is true. + if (keepScrollOffset) { + gridScrollController.addListener(keepScrollOffsetListener); + } + } + + /// [ChangeNotifier] for asset picker. + /// 资源选择器状态保持 + final DefaultAssetPickerProvider provider; + + /// Thumbnail size in the grid. + /// 预览时网络的缩略图大小 + /// + /// This only works on images and videos since other types does not have to + /// request for the thumbnail data. The preview can speed up by reducing it. + /// 该参数仅生效于图片和视频类型的资源,因为其他资源不需要请求缩略图数据。 + /// 预览图片的速度可以通过适当降低它的数值来提升。 + /// + /// This cannot be `null` or a large value since you shouldn't use the + /// original data for the grid. + /// 该值不能为空或者非常大,因为在网格中使用原数据不是一个好的决定。 + final ThumbnailSize gridThumbnailSize; + + /// Preview thumbnail size in the viewer. + /// 预览时图片的缩略图大小 + /// + /// This only works on images and videos since other types does not have to + /// request for the thumbnail data. The preview can speed up by reducing it. + /// 该参数仅生效于图片和视频类型的资源,因为其他资源不需要请求缩略图数据。 + /// 预览图片的速度可以通过适当降低它的数值来提升。 + /// + /// Default is `null`, which will request the origin data. + /// 默认为空,即读取原图。 + final ThumbnailSize? previewThumbnailSize; + + /// The current special picker type for the picker. + /// 当前特殊选择类型 + /// + /// Several types which are special: + /// * [SpecialPickerType.wechatMoment] When user selected video, no more images + /// can be selected. + /// * [SpecialPickerType.noPreview] Disable preview of asset; Clicking on an + /// asset selects it. + /// + /// 这里包含一些特殊选择类型: + /// * [SpecialPickerType.wechatMoment] 微信朋友圈模式。当用户选择了视频,将不能选择图片。 + /// * [SpecialPickerType.noPreview] 禁用资源预览。多选时单击资产将直接选中,单选时选中并返回。 + final SpecialPickerType? specialPickerType; + + /// Whether the picker should save the scroll offset between pushes and pops. + /// 选择器是否可以从同样的位置开始选择 + final bool keepScrollOffset; + + /// [Duration] when triggering path switching. + /// 切换路径时的动画时长 + Duration get switchingPathDuration => const Duration(milliseconds: 300); + + /// [Curve] when triggering path switching. + /// 切换路径时的动画曲线 + Curve get switchingPathCurve => Curves.easeInOutQuad; + + /// Whether the [SpecialPickerType.wechatMoment] is enabled. + /// 当前是否为微信朋友圈选择模式 + bool get isWeChatMoment => + specialPickerType == SpecialPickerType.wechatMoment; + + /// Whether the preview of assets is enabled. + /// 资源的预览是否启用 + bool get isPreviewEnabled => specialPickerType != SpecialPickerType.noPreview; + + @override + bool get isSingleAssetMode => provider.maxAssets == 1; + + /// The listener to track the scroll position of the [gridScrollController] + /// if [keepScrollOffset] is true. + /// 当 [keepScrollOffset] 为 true 时,跟踪 [gridScrollController] 位置的监听。 + void keepScrollOffsetListener() { + if (gridScrollController.hasClients) { + Singleton.scrollPosition = gridScrollController.position; + } + } + + /// Be aware that the method will do nothing when [keepScrollOffset] is true. + /// 注意当 [keepScrollOffset] 为 true 时方法不会进行释放。 + @override + void dispose() { + // Skip delegate's dispose when it's keeping scroll offset. + if (keepScrollOffset) { + return; + } + super.dispose(); + } + + @override + Future selectAsset( + BuildContext context, + AssetEntity asset, + bool selected, + ) async { + final bool? selectPredicateResult = await selectPredicate?.call( + context, + asset, + selected, + ); + if (selectPredicateResult == false) { + return; + } + final DefaultAssetPickerProvider provider = + context.read(); + if (selected) { + provider.unSelectAsset(asset); + return; + } + if (isSingleAssetMode) { + provider.selectedAssets.clear(); + } + provider.selectAsset(asset); + if (isSingleAssetMode && !isPreviewEnabled) { + Navigator.of(context).maybePop(provider.selectedAssets); + } + } + + @override + Future onAssetsChanged(MethodCall call, StateSetter setState) async { + if (!isPermissionLimited) { + return; + } + final AssetPathEntity? _currentPathEntity = provider.currentPath; + if (call.arguments is Map) { + final Map arguments = + call.arguments as Map; + if (arguments['newCount'] == 0) { + provider + ..currentAssets = [] + ..currentPath = null + ..hasAssetsToDisplay = false + ..isAssetsEmpty = true; + return; + } + if (_currentPathEntity == null) { + await provider.getPaths(); + } + } + if (_currentPathEntity != null) { + final AssetPathEntity newPath = + await _currentPathEntity.obtainForNewProperties(); + provider + ..currentPath = newPath + ..hasAssetsToDisplay = newPath.assetCount != 0 + ..isAssetsEmpty = newPath.assetCount == 0 + ..totalAssetsCount = newPath.assetCount; + isSwitchingPath.value = false; + if (newPath.isAll) { + await provider.getAssetsFromCurrentPath(); + } + } + } + + Future _pushAssetToViewer( + BuildContext context, + int index, + AssetEntity asset, + ) async { + final DefaultAssetPickerProvider provider = + context.read(); + bool selectedAllAndNotSelected() => + !provider.selectedAssets.contains(asset) && + provider.selectedMaximumAssets; + bool selectedPhotosAndIsVideo() => + isWeChatMoment && + asset.type == AssetType.video && + provider.selectedAssets.isNotEmpty; + // When we reached the maximum select count and the asset + // is not selected, do nothing. + // When the special type is WeChat Moment, pictures and videos cannot + // be selected at the same time. Video select should be banned if any + // pictures are selected. + if (selectedAllAndNotSelected() || selectedPhotosAndIsVideo()) { + return; + } + final List _current; + final List? _selected; + final int _index; + if (isWeChatMoment) { + if (asset.type == AssetType.video) { + _current = [asset]; + _selected = null; + _index = 0; + } else { + _current = provider.currentAssets + .where((AssetEntity e) => e.type == AssetType.image) + .toList(); + _selected = provider.selectedAssets; + _index = _current.indexOf(asset); + } + } else { + _current = provider.currentAssets; + _selected = provider.selectedAssets; + _index = index; + } + final List? result = await AssetPickerViewer.pushToViewer( + context, + currentIndex: _index, + previewAssets: _current, + themeData: theme, + previewThumbnailSize: previewThumbnailSize, + selectPredicate: selectPredicate, + selectedAssets: _selected, + selectorProvider: provider, + specialPickerType: specialPickerType, + maxAssets: provider.maxAssets, + shouldReversePreview: isAppleOS, + ); + if (result != null) { + Navigator.of(context).maybePop(result); + } + } + + @override + AssetPickerAppBar appBar(BuildContext context) { + return AssetPickerAppBar( + backgroundColor: theme.appBarTheme.backgroundColor, + centerTitle: isAppleOS, + title: Semantics( + onTapHint: semanticsTextDelegate.sActionSwitchPathLabel, + child: pathEntitySelector(context), + ), + leading: backButton(context), + // Condition for displaying the confirm button: + // - On Android, show if preview is enabled or if multi asset mode. + // If no preview and single asset mode, do not show confirm button, + // because any click on an asset selects it. + // - On iOS, show if no preview and multi asset mode. This is because for iOS + // the [bottomActionBar] has the confirm button, but if no preview, + // [bottomActionBar] is not displayed. + actions: (!isAppleOS || !isPreviewEnabled) && + (isPreviewEnabled || !isSingleAssetMode) + ? [confirmButton(context)] + : null, + actionsPadding: const EdgeInsetsDirectional.only(end: 14), + blurRadius: isAppleOS ? appleOSBlurRadius : 0, + ); + } + + @override + Widget androidLayout(BuildContext context) { + return AssetPickerAppBarWrapper( + appBar: appBar(context), + body: Consumer( + builder: (BuildContext context, DefaultAssetPickerProvider p, __) { + final Widget? _specialItem = specialItemBuilder?.call( + context, + p.currentPath, + p.currentAssets.length, + ); + final bool shouldDisplayAssets = p.hasAssetsToDisplay || + (_specialItem != null && + specialItemPosition != SpecialItemPosition.none); + return AnimatedSwitcher( + duration: switchingPathDuration, + child: shouldDisplayAssets + ? Stack( + children: [ + RepaintBoundary( + child: Column( + children: [ + Expanded(child: assetsGridBuilder(context)), + if (!isSingleAssetMode && isPreviewEnabled) + bottomActionBar(context), + ], + ), + ), + pathEntityListBackdrop(context), + pathEntityListWidget(context), + ], + ) + : loadingIndicator(context), + ); + }, + ), + ); + } + + @override + Widget appleOSLayout(BuildContext context) { + Widget _gridLayout(BuildContext context) { + return ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, __) => Semantics( + excludeSemantics: isSwitchingPath, + child: RepaintBoundary( + child: Stack( + children: [ + Positioned.fill(child: assetsGridBuilder(context)), + if ((!isSingleAssetMode || isAppleOS) && isPreviewEnabled) + Positioned.fill( + top: null, + child: bottomActionBar(context), + ), + ], + ), + ), + ), + ); + } + + Widget _layout(BuildContext context) { + return Stack( + children: [ + Positioned.fill( + child: Consumer( + builder: (_, DefaultAssetPickerProvider p, __) { + final Widget _child; + final Widget? _specialItem = specialItemBuilder?.call( + context, + p.currentPath, + p.currentAssets.length, + ); + final bool shouldDisplayAssets = p.hasAssetsToDisplay || + (_specialItem != null && + specialItemPosition != SpecialItemPosition.none); + if (shouldDisplayAssets) { + _child = Stack( + children: [ + _gridLayout(context), + pathEntityListBackdrop(context), + pathEntityListWidget(context), + ], + ); + } else { + _child = loadingIndicator(context); + } + return AnimatedSwitcher( + duration: switchingPathDuration, + child: _child, + ); + }, + ), + ), + appBar(context), + ], + ); + } + + return ValueListenableBuilder( + valueListenable: permissionOverlayDisplay, + builder: (_, bool value, Widget? child) { + if (value) { + return ExcludeSemantics(child: child); + } + return child!; + }, + child: _layout(context), + ); + } + + @override + Widget assetsGridBuilder(BuildContext context) { + return Selector( + selector: (_, DefaultAssetPickerProvider p) => p.currentPath, + builder: (_, AssetPathEntity? path, __) { + // First, we need the count of the assets. + int totalCount = path?.assetCount ?? 0; + // If user chose a special item's position, add 1 count. + if (specialItemPosition != SpecialItemPosition.none && + path?.isAll == true) { + totalCount += 1; + } + // Then we use the [totalCount] to calculate placeholders we need. + final int placeholderCount; + if (effectiveShouldRevertGrid && totalCount % gridCount != 0) { + // When there are left items that not filled into one row, + // filled the row with placeholders. + placeholderCount = gridCount - totalCount % gridCount; + } else { + // Otherwise, we don't need placeholders. + placeholderCount = 0; + } + // Calculate rows count. + final int row = (totalCount + placeholderCount) ~/ gridCount; + // Here we got a magic calculation. [itemSpacing] needs to be divided by + // [gridCount] since every grid item is squeezed by the [itemSpacing], + // and it's actual size is reduced with [itemSpacing / gridCount]. + final double dividedSpacing = itemSpacing / gridCount; + final double topPadding = context.topPadding + kToolbarHeight; + + Widget _sliverGrid(BuildContext ctx, List assets) { + return SliverGrid( + delegate: SliverChildBuilderDelegate( + (_, int index) => Builder( + builder: (BuildContext c) { + if (effectiveShouldRevertGrid) { + if (index < placeholderCount) { + return const SizedBox.shrink(); + } + index -= placeholderCount; + } + return MergeSemantics( + child: Directionality( + textDirection: Directionality.of(context), + child: assetGridItemBuilder(c, index, assets), + ), + ); + }, + ), + childCount: assetsGridItemCount( + context: ctx, + assets: assets, + placeholderCount: placeholderCount, + ), + findChildIndexCallback: (Key? key) { + if (key is ValueKey) { + return findChildIndexBuilder( + id: key.value, + assets: assets, + placeholderCount: placeholderCount, + ); + } + return null; + }, + // Explicitly disable semantic indexes for custom usage. + addSemanticIndexes: false, + ), + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: gridCount, + mainAxisSpacing: itemSpacing, + crossAxisSpacing: itemSpacing, + ), + ); + } + + return LayoutBuilder( + builder: (BuildContext c, BoxConstraints constraints) { + final double itemSize = constraints.maxWidth / gridCount; + // Check whether all rows can be placed at the same time. + final bool onlyOneScreen = row * itemSize <= + constraints.maxHeight - + context.bottomPadding - + topPadding - + permissionLimitedBarHeight; + final double height; + if (onlyOneScreen) { + height = constraints.maxHeight; + } else { + // Reduce [permissionLimitedBarHeight] for the final height. + height = constraints.maxHeight - permissionLimitedBarHeight; + } + // Use [ScrollView.anchor] to determine where is the first place of + // the [SliverGrid]. Each row needs [dividedSpacing] to calculate, + // then minus one times of [itemSpacing] because spacing's count in the + // cross axis is always less than the rows. + final double anchor = math.min( + (row * (itemSize + dividedSpacing) + topPadding - itemSpacing) / + height, + 1, + ); + + return Directionality( + textDirection: effectiveGridDirection(context), + child: ColoredBox( + color: theme.canvasColor, + child: Selector>( + selector: (_, DefaultAssetPickerProvider p) => + p.currentAssets, + builder: (_, List assets, __) { + final SliverGap _bottomGap = SliverGap.v( + context.bottomPadding + bottomSectionHeight, + ); + return CustomScrollView( + physics: const AlwaysScrollableScrollPhysics(), + controller: gridScrollController, + anchor: effectiveShouldRevertGrid ? anchor : 0, + center: effectiveShouldRevertGrid ? gridRevertKey : null, + slivers: [ + if (isAppleOS) + SliverGap.v(context.topPadding + kToolbarHeight), + _sliverGrid(_, assets), + // Ignore the gap when the [anchor] is not equal to 1. + if (effectiveShouldRevertGrid && anchor == 1) + _bottomGap, + if (effectiveShouldRevertGrid) + SliverToBoxAdapter( + key: gridRevertKey, + child: const SizedBox.shrink(), + ), + if (isAppleOS && !effectiveShouldRevertGrid) _bottomGap, + ], + ); + }, + ), + ), + ); + }, + ); + }, + ); + } + + /// There are several conditions within this builder: + /// * Return [specialItemBuilder] while the current path is all and + /// [specialItemPosition] is not equal to [SpecialItemPosition.none]. + /// * Return item builder according to the asset's type. + /// * [AssetType.audio] -> [audioItemBuilder] + /// * [AssetType.image], [AssetType.video] -> [imageAndVideoItemBuilder] + /// * Load more assets when the index reached at third line counting + /// backwards. + /// + /// 资源构建有几个条件: + /// * 当前路径是全部资源且 [specialItemPosition] 不等于 + /// [SpecialItemPosition.none] 时,将会通过 [specialItemBuilder] 构建内容。 + /// * 根据资源类型返回对应类型的构建: + /// * [AssetType.audio] -> [audioItemBuilder] 音频类型 + /// * [AssetType.image], [AssetType.video] -> [imageAndVideoItemBuilder] + /// 图片和视频类型 + /// * 在索引到达倒数第三列的时候加载更多资源。 + @override + Widget assetGridItemBuilder( + BuildContext context, + int index, + List currentAssets, + ) { + final int _length = currentAssets.length; + final AssetPathEntity? currentPathEntity = + context.select( + (DefaultAssetPickerProvider p) => p.currentPath, + ); + + final Widget? specialItem; + if (specialItemPosition == SpecialItemPosition.none) { + specialItem = null; + } else { + specialItem = specialItemBuilder?.call( + context, + currentPathEntity, + _length, + ); + } + + if (specialItem != null) { + if ((index == 0 && specialItemPosition == SpecialItemPosition.prepend) || + (index == _length && + specialItemPosition == SpecialItemPosition.append)) { + return specialItem; + } + } + + final int currentIndex; + if (specialItem != null && + specialItemPosition == SpecialItemPosition.prepend) { + currentIndex = index - 1; + } else { + currentIndex = index; + } + + if (specialItemPosition != SpecialItemPosition.none) { + final Widget? specialItem = specialItemBuilder?.call( + context, + currentPathEntity, + _length, + ); + if (specialItem != null) {} + } + + if (currentPathEntity == null) { + return const SizedBox.shrink(); + } + + if (index == _length - gridCount * 3 && + context.select( + (DefaultAssetPickerProvider p) => p.hasMoreToLoad, + )) { + context.read().loadMoreAssets(); + } + + final AssetEntity asset = currentAssets.elementAt(currentIndex); + final Widget builder; + switch (asset.type) { + case AssetType.audio: + builder = audioItemBuilder(context, currentIndex, asset); + break; + case AssetType.image: + case AssetType.video: + builder = imageAndVideoItemBuilder(context, currentIndex, asset); + break; + case AssetType.other: + builder = const SizedBox.shrink(); + break; + } + final Widget _content = Stack( + key: ValueKey(asset.id), + children: [ + builder, + selectedBackdrop(context, currentIndex, asset), + if (!isWeChatMoment || asset.type != AssetType.video) + selectIndicator(context, index, asset), + itemBannedIndicator(context, asset), + ], + ); + return assetGridItemSemanticsBuilder(context, index, asset, _content); + } + + int semanticIndex(int index) { + if (specialItemPosition != SpecialItemPosition.prepend) { + return index + 1; + } + return index; + } + + @override + Widget assetGridItemSemanticsBuilder( + BuildContext context, + int index, + AssetEntity asset, + Widget child, + ) { + return ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, Widget? child) { + return Consumer( + builder: (_, DefaultAssetPickerProvider p, __) { + final bool isBanned = (!p.selectedAssets.contains(asset) && + p.selectedMaximumAssets) || + (isWeChatMoment && + asset.type == AssetType.video && + p.selectedAssets.isNotEmpty); + final bool isSelected = p.selectedDescriptions.contains( + asset.toString(), + ); + final int selectedIndex = p.selectedAssets.indexOf(asset) + 1; + String hint = ''; + if (asset.type == AssetType.audio || + asset.type == AssetType.video) { + hint += '${semanticsTextDelegate.sNameDurationLabel}: '; + hint += semanticsTextDelegate.durationIndicatorBuilder( + asset.videoDuration, + ); + } + if (asset.title?.isNotEmpty == true) { + hint += ', ${asset.title}'; + } + return Semantics( + button: false, + enabled: !isBanned, + excludeSemantics: true, + focusable: !isSwitchingPath, + label: '${semanticsTextDelegate.semanticTypeLabel(asset.type)}' + '${semanticIndex(index)}, ' + '${asset.createDateTime.toString().replaceAll('.000', '')}', + hidden: isSwitchingPath, + hint: hint, + image: asset.type == AssetType.image || + asset.type == AssetType.video, + onTap: () => selectAsset(context, asset, isSelected), + onTapHint: semanticsTextDelegate.sActionSelectHint, + onLongPress: isPreviewEnabled + ? () => _pushAssetToViewer(context, index, asset) + : null, + onLongPressHint: semanticsTextDelegate.sActionPreviewHint, + selected: isSelected, + sortKey: OrdinalSortKey( + semanticIndex(index).toDouble(), + name: 'GridItem', + ), + value: selectedIndex > 0 ? '$selectedIndex' : null, + child: GestureDetector( + // Regression https://github.com/flutter/flutter/issues/35112. + onLongPress: + isPreviewEnabled && context.mediaQuery.accessibleNavigation + ? () => _pushAssetToViewer(context, index, asset) + : null, + child: IndexedSemantics( + index: semanticIndex(index), + child: child, + ), + ), + ); + }, + ); + }, + child: child, + ); + } + + @override + int findChildIndexBuilder({ + required String id, + required List assets, + int placeholderCount = 0, + }) { + int index = assets.indexWhere((AssetEntity e) => e.id == id); + if (specialItemPosition == SpecialItemPosition.prepend) { + index += 1; + } + index += placeholderCount; + return index; + } + + @override + int assetsGridItemCount({ + required BuildContext context, + required List assets, + int placeholderCount = 0, + }) { + final AssetPathEntity? currentPathEntity = + context.select( + (DefaultAssetPickerProvider p) => p.currentPath, + ); + + if (currentPathEntity == null && + specialItemPosition != SpecialItemPosition.none) { + return 1; + } + + /// Return actual length if current path is all. + /// 如果当前目录是全部内容,则返回实际的内容数量。 + final int _length = assets.length + placeholderCount; + if (currentPathEntity?.isAll != true) { + return _length; + } + switch (specialItemPosition) { + case SpecialItemPosition.none: + return _length; + case SpecialItemPosition.prepend: + case SpecialItemPosition.append: + return _length + 1; + } + } + + @override + Widget audioIndicator(BuildContext context, AssetEntity asset) { + return Container( + width: double.maxFinite, + alignment: AlignmentDirectional.bottomStart, + padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 8), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: AlignmentDirectional.bottomCenter, + end: AlignmentDirectional.topCenter, + colors: [theme.dividerColor, Colors.transparent], + ), + ), + child: Padding( + padding: const EdgeInsetsDirectional.only(start: 4), + child: ScaleText( + textDelegate.durationIndicatorBuilder( + Duration(seconds: asset.duration), + ), + style: const TextStyle(fontSize: 16), + semanticsLabel: '${semanticsTextDelegate.sNameDurationLabel}: ' + '${semanticsTextDelegate.durationIndicatorBuilder( + Duration(seconds: asset.duration), + )}', + ), + ), + ); + } + + @override + Widget audioItemBuilder(BuildContext context, int index, AssetEntity asset) { + return Stack( + children: [ + Container( + width: double.maxFinite, + alignment: AlignmentDirectional.topStart, + padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 8), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: AlignmentDirectional.topCenter, + end: AlignmentDirectional.bottomCenter, + colors: [theme.dividerColor, Colors.transparent], + ), + ), + child: Padding( + padding: const EdgeInsetsDirectional.only(start: 4, end: 30), + child: ScaleText( + asset.title ?? '', + style: const TextStyle(fontSize: 16), + maxLines: 3, + overflow: TextOverflow.ellipsis, + ), + ), + ), + const Align( + alignment: AlignmentDirectional(0.9, 0.8), + child: Icon(Icons.audiotrack), + ), + audioIndicator(context, asset), + ], + ); + } + + /// It'll pop with [AssetPickerProvider.selectedAssets] + /// when there are any assets were chosen. + /// 当有资源已选时,点击按钮将把已选资源通过路由返回。 + @override + Widget confirmButton(BuildContext context) { + return Consumer( + builder: (_, DefaultAssetPickerProvider p, __) { + return MaterialButton( + minWidth: p.isSelectedNotEmpty ? 48 : 20, + height: appBarItemHeight, + padding: const EdgeInsets.symmetric(horizontal: 12), + disabledColor: theme.dividerColor, + color: p.isSelectedNotEmpty ? themeColor : theme.dividerColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(3), + ), + child: ScaleText( + p.isSelectedNotEmpty && !isSingleAssetMode + ? '${textDelegate.confirm}' + ' (${p.selectedAssets.length}/${p.maxAssets})' + : textDelegate.confirm, + style: TextStyle( + color: p.isSelectedNotEmpty + ? theme.textTheme.bodyText1?.color + : theme.textTheme.caption?.color, + fontSize: 17, + fontWeight: FontWeight.normal, + ), + semanticsLabel: p.isSelectedNotEmpty && !isSingleAssetMode + ? '${semanticsTextDelegate.confirm}' + ' (${p.selectedAssets.length}/${p.maxAssets})' + : semanticsTextDelegate.confirm, + ), + onPressed: p.isSelectedNotEmpty + ? () => Navigator.of(context).maybePop(p.selectedAssets) + : null, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + }, + ); + } + + @override + Widget imageAndVideoItemBuilder( + BuildContext context, + int index, + AssetEntity asset, + ) { + final AssetEntityImageProvider imageProvider = AssetEntityImageProvider( + asset, + isOriginal: false, + thumbnailSize: gridThumbnailSize, + ); + SpecialImageType? type; + if (imageProvider.imageFileType == ImageFileType.gif) { + type = SpecialImageType.gif; + } else if (imageProvider.imageFileType == ImageFileType.heic) { + type = SpecialImageType.heic; + } + return Stack( + children: [ + Positioned.fill( + child: RepaintBoundary( + child: AssetEntityGridItemBuilder( + image: imageProvider, + failedItemBuilder: failedItemBuilder, + ), + ), + ), + if (type == SpecialImageType.gif) // 如果为GIF则显示标识 + gifIndicator(context, asset), + if (asset.type == AssetType.video) // 如果为视频则显示标识 + videoIndicator(context, asset), + ], + ); + } + + @override + Widget loadingIndicator(BuildContext context) { + return Center( + child: Selector( + selector: (_, DefaultAssetPickerProvider p) => p.isAssetsEmpty, + builder: (_, bool isAssetsEmpty, __) { + if (isAssetsEmpty) { + return ScaleText( + textDelegate.emptyList, + maxScaleFactor: 1.5, + semanticsLabel: semanticsTextDelegate.emptyList, + ); + } + return PlatformProgressIndicator( + color: theme.iconTheme.color, + size: context.mediaQuery.size.width / gridCount / 3, + ); + }, + ), + ); + } + + /// While the picker is switching path, this will displayed. + /// If the user tapped on it, it'll collapse the list widget. + /// + /// 当选择器正在选择路径时,它会出现。用户点击它时,列表会折叠收起。 + @override + Widget pathEntityListBackdrop(BuildContext context) { + return ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, __) => Positioned.fill( + child: IgnorePointer( + ignoring: !isSwitchingPath, + ignoringSemantics: true, + child: GestureDetector( + onTap: () => this.isSwitchingPath.value = false, + child: AnimatedOpacity( + duration: switchingPathDuration, + opacity: isSwitchingPath ? .75 : 0, + child: const ColoredBox(color: Colors.black), + ), + ), + ), + ), + ); + } + + @override + Widget pathEntityListWidget(BuildContext context) { + return Positioned.fill( + top: isAppleOS ? context.topPadding + kToolbarHeight : 0, + bottom: null, + child: ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, Widget? child) => Semantics( + hidden: isSwitchingPath ? null : true, + child: AnimatedAlign( + duration: switchingPathDuration, + curve: switchingPathCurve, + alignment: Alignment.bottomCenter, + heightFactor: isSwitchingPath ? 1 : 0, + child: AnimatedOpacity( + duration: switchingPathDuration, + curve: switchingPathCurve, + opacity: !isAppleOS || isSwitchingPath ? 1 : 0, + child: ClipRRect( + borderRadius: const BorderRadius.vertical( + bottom: Radius.circular(10), + ), + child: Container( + constraints: BoxConstraints( + maxHeight: + context.mediaQuery.size.height * (isAppleOS ? .6 : .8), + ), + color: theme.colorScheme.background, + child: child, + ), + ), + ), + ), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ValueListenableBuilder( + valueListenable: permission, + builder: (_, PermissionState ps, Widget? child) => Semantics( + label: '${semanticsTextDelegate.viewingLimitedAssetsTip}, ' + '${semanticsTextDelegate.changeAccessibleLimitedAssets}', + button: true, + onTap: PhotoManager.presentLimited, + hidden: !isPermissionLimited, + focusable: isPermissionLimited, + excludeSemantics: true, + child: isPermissionLimited ? child : const SizedBox.shrink(), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 12, + ), + child: Text.rich( + TextSpan( + children: [ + TextSpan( + text: textDelegate.viewingLimitedAssetsTip, + ), + TextSpan( + text: ' ' + '${textDelegate.changeAccessibleLimitedAssets}', + style: TextStyle(color: interactiveTextColor(context)), + recognizer: TapGestureRecognizer() + ..onTap = PhotoManager.presentLimited, + ), + ], + ), + style: context.themeData.textTheme.caption?.copyWith( + fontSize: 14, + ), + ), + ), + ), + Flexible( + child: Consumer( + builder: (_, DefaultAssetPickerProvider p, __) { + return ListView.separated( + padding: const EdgeInsetsDirectional.only(top: 1), + shrinkWrap: true, + itemCount: p.pathsList.length, + itemBuilder: (BuildContext c, int i) => pathEntityWidget( + context: c, + list: p.pathsList, + index: i, + isAudio: p.requestType == RequestType.audio, + ), + separatorBuilder: (_, __) => Container( + margin: const EdgeInsetsDirectional.only(start: 60), + height: 1, + color: theme.canvasColor, + ), + ); + }, + ), + ), + ], + ), + ), + ); + } + + @override + Widget pathEntitySelector(BuildContext context) { + Widget _text( + BuildContext context, + String text, + String semanticsText, + ) { + return Flexible( + child: ScaleText( + text, + style: const TextStyle( + fontSize: 17, + fontWeight: FontWeight.normal, + ), + maxLines: 1, + overflow: TextOverflow.fade, + maxScaleFactor: 1.2, + semanticsLabel: semanticsText, + ), + ); + } + + return UnconstrainedBox( + child: GestureDetector( + onTap: () { + Feedback.forTap(context); + if (isPermissionLimited && provider.isAssetsEmpty) { + PhotoManager.presentLimited(); + return; + } + isSwitchingPath.value = !isSwitchingPath.value; + }, + child: Container( + height: appBarItemHeight, + constraints: BoxConstraints( + maxWidth: context.mediaQuery.size.width * 0.5, + ), + padding: const EdgeInsetsDirectional.only(start: 12, end: 6), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(999), + color: theme.dividerColor, + ), + child: Selector( + selector: (_, DefaultAssetPickerProvider p) => p.currentPath, + builder: (_, AssetPathEntity? p, Widget? w) => Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (p == null && isPermissionLimited) + _text( + context, + textDelegate.changeAccessibleLimitedAssets, + semanticsTextDelegate.changeAccessibleLimitedAssets, + ), + if (p != null) + _text( + context, + isPermissionLimited && p.isAll + ? textDelegate.accessiblePathName + : pathNameBuilder?.call(p) ?? p.name, + isPermissionLimited && p.isAll + ? semanticsTextDelegate.accessiblePathName + : pathNameBuilder?.call(p) ?? p.name, + ), + w!, + ], + ), + child: Padding( + padding: const EdgeInsetsDirectional.only(start: 5), + child: DecoratedBox( + decoration: BoxDecoration( + shape: BoxShape.circle, + color: theme.iconTheme.color!.withOpacity(0.5), + ), + child: ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, Widget? w) { + return Transform.rotate( + angle: isSwitchingPath ? math.pi : 0, + alignment: Alignment.center, + child: w, + ); + }, + child: Icon( + Icons.keyboard_arrow_down, + size: 20, + color: theme.colorScheme.primary, + ), + ), + ), + ), + ), + ), + ), + ); + } + + @override + Widget pathEntityWidget({ + required BuildContext context, + required Map list, + required int index, + bool isAudio = false, + }) { + final AssetPathEntity pathEntity = list.keys.elementAt(index); + final Uint8List? data = list.values.elementAt(index); + + Widget builder() { + if (isAudio) { + return ColoredBox( + color: theme.colorScheme.primary.withOpacity(0.12), + child: const Center(child: Icon(Icons.audiotrack)), + ); + } + + // The reason that the `thumbData` should be checked at here to see if it + // is null is that even the image file is not exist, the `File` can still + // returned as it exist, which will cause the thumb bytes return null. + // + // 此处需要检查缩略图为空的原因是:尽管文件可能已经被删除, + // 但通过 `File` 读取的文件对象仍然存在,使得返回的数据为空。 + if (data != null) { + return Image.memory(data, fit: BoxFit.cover); + } + return ColoredBox(color: theme.colorScheme.primary.withOpacity(0.12)); + } + + final String pathName = + pathNameBuilder?.call(pathEntity) ?? pathEntity.name; + final String name = isPermissionLimited && pathEntity.isAll + ? textDelegate.accessiblePathName + : pathName; + final String semanticsName = isPermissionLimited && pathEntity.isAll + ? semanticsTextDelegate.accessiblePathName + : pathName; + final String semanticsCount = '${pathEntity.assetCount}'; + return Selector( + selector: (_, DefaultAssetPickerProvider p) => p.currentPath, + builder: (_, AssetPathEntity? currentPathEntity, __) { + final bool isSelected = currentPathEntity == pathEntity; + return Semantics( + label: '$semanticsName, ' + '${semanticsTextDelegate.sUnitAssetCountLabel}: ' + '$semanticsCount', + selected: isSelected, + onTapHint: semanticsTextDelegate.sActionSwitchPathLabel, + button: false, + child: Material( + type: MaterialType.transparency, + child: InkWell( + splashFactory: InkSplash.splashFactory, + onTap: () { + Feedback.forTap(context); + context + .read() + .switchPath(pathEntity); + isSwitchingPath.value = false; + gridScrollController.jumpTo(0); + }, + child: SizedBox( + height: isAppleOS ? 64 : 52, + child: Row( + children: [ + RepaintBoundary( + child: AspectRatio(aspectRatio: 1, child: builder()), + ), + Expanded( + child: Padding( + padding: const EdgeInsetsDirectional.only( + start: 15, + end: 20, + ), + child: ExcludeSemantics( + child: Row( + children: [ + Flexible( + child: Padding( + padding: const EdgeInsetsDirectional.only( + end: 10, + ), + child: ScaleText( + name, + style: const TextStyle(fontSize: 17), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ), + ScaleText( + '($semanticsCount)', + style: TextStyle( + color: theme.textTheme.caption?.color, + fontSize: 17, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + ), + ), + if (isSelected) + AspectRatio( + aspectRatio: 1, + child: Icon(Icons.check, color: themeColor, size: 26), + ), + ], + ), + ), + ), + ), + ); + }, + ); + } + + @override + Widget previewButton(BuildContext context) { + Future _onTap() async { + final DefaultAssetPickerProvider p = + context.read(); + final List _selectedAssets = p.selectedAssets; + final List _selected; + if (isWeChatMoment) { + _selected = _selectedAssets + .where((AssetEntity e) => e.type == AssetType.image) + .toList(); + } else { + _selected = _selectedAssets; + } + final List? result = await AssetPickerViewer.pushToViewer( + context, + currentIndex: 0, + previewAssets: _selected, + previewThumbnailSize: previewThumbnailSize, + selectPredicate: selectPredicate, + selectedAssets: _selected, + selectorProvider: provider, + themeData: theme, + maxAssets: p.maxAssets, + ); + if (result != null) { + Navigator.of(context).maybePop(result); + } + } + + return Consumer( + builder: (_, DefaultAssetPickerProvider p, Widget? child) { + return ValueListenableBuilder( + valueListenable: isSwitchingPath, + builder: (_, bool isSwitchingPath, __) => Semantics( + enabled: p.isSelectedNotEmpty, + focusable: !isSwitchingPath, + hidden: isSwitchingPath, + onTapHint: semanticsTextDelegate.sActionPreviewHint, + child: child, + ), + ); + }, + child: Consumer( + builder: (_, DefaultAssetPickerProvider p, __) => GestureDetector( + onTap: p.isSelectedNotEmpty ? _onTap : null, + child: Selector( + selector: (_, DefaultAssetPickerProvider p) => + p.selectedDescriptions, + builder: (BuildContext c, __, ___) => Padding( + padding: const EdgeInsets.symmetric(vertical: 12), + child: ScaleText( + '${textDelegate.preview}' + '${p.isSelectedNotEmpty ? ' (${p.selectedAssets.length})' : ''}', + style: TextStyle( + color: p.isSelectedNotEmpty + ? null + : c.themeData.textTheme.caption?.color, + fontSize: 17, + ), + maxScaleFactor: 1.2, + semanticsLabel: '${semanticsTextDelegate.preview}' + '${p.isSelectedNotEmpty ? ' (${p.selectedAssets.length})' : ''}', + ), + ), + ), + ), + ), + ); + } + + @override + Widget itemBannedIndicator(BuildContext context, AssetEntity asset) { + return Consumer( + builder: (_, DefaultAssetPickerProvider p, __) { + final bool isDisabled = + (!p.selectedAssets.contains(asset) && p.selectedMaximumAssets) || + (isWeChatMoment && + asset.type == AssetType.video && + p.selectedAssets.isNotEmpty); + if (isDisabled) { + return Container( + color: theme.colorScheme.background.withOpacity(.85), + ); + } + return const SizedBox.shrink(); + }, + ); + } + + @override + Widget selectIndicator(BuildContext context, int index, AssetEntity asset) { + final double indicatorSize = context.mediaQuery.size.width / gridCount / 3; + final Duration duration = switchingPathDuration * 0.75; + return Selector( + selector: (_, DefaultAssetPickerProvider p) => p.selectedDescriptions, + builder: (BuildContext context, String descriptions, __) { + final bool selected = descriptions.contains(asset.toString()); + final Widget innerSelector = AnimatedContainer( + duration: duration, + width: indicatorSize / (isAppleOS ? 1.25 : 1.5), + height: indicatorSize / (isAppleOS ? 1.25 : 1.5), + padding: EdgeInsets.all(indicatorSize / 10), + decoration: BoxDecoration( + border: !selected + ? Border.all( + color: context.themeData.selectedRowColor, + width: indicatorSize / 25, + ) + : null, + color: selected ? themeColor : null, + shape: BoxShape.circle, + ), + child: FittedBox( + child: AnimatedSwitcher( + duration: duration, + reverseDuration: duration, + child: + selected ? const Icon(Icons.check) : const SizedBox.shrink(), + ), + ), + ); + final Widget selectorWidget = GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () => selectAsset(context, asset, selected), + child: Container( + margin: EdgeInsets.all(indicatorSize / 4), + width: isPreviewEnabled ? indicatorSize : null, + height: isPreviewEnabled ? indicatorSize : null, + alignment: AlignmentDirectional.topEnd, + child: (!isPreviewEnabled && isSingleAssetMode && !selected) + ? const SizedBox.shrink() + : innerSelector, + ), + ); + if (isPreviewEnabled) { + return PositionedDirectional( + top: 0, + end: 0, + child: selectorWidget, + ); + } + return selectorWidget; + }, + ); + } + + @override + Widget selectedBackdrop(BuildContext context, int index, AssetEntity asset) { + final double indicatorSize = context.mediaQuery.size.width / gridCount / 3; + return Positioned.fill( + child: GestureDetector( + onTap: isPreviewEnabled + ? () => _pushAssetToViewer(context, index, asset) + : null, + child: Consumer( + builder: (_, DefaultAssetPickerProvider p, __) { + final int index = p.selectedAssets.indexOf(asset); + final bool selected = index != -1; + return AnimatedContainer( + duration: switchingPathDuration, + padding: EdgeInsets.all(indicatorSize * .35), + color: selected + ? theme.colorScheme.primary.withOpacity(.45) + : theme.backgroundColor.withOpacity(.1), + child: selected && !isSingleAssetMode + ? Align( + alignment: AlignmentDirectional.topStart, + child: SizedBox( + height: indicatorSize / 2.5, + child: FittedBox( + alignment: AlignmentDirectional.topStart, + fit: BoxFit.cover, + child: Text( + '${index + 1}', + style: TextStyle( + color: theme.textTheme.bodyText1?.color + ?.withOpacity(.75), + fontWeight: FontWeight.w600, + height: 1, + ), + ), + ), + ), + ) + : const SizedBox.shrink(), + ); + }, + ), + ), + ); + } + + /// Videos often contains various of color in the cover, + /// so in order to keep the content visible in most cases, + /// the color of the indicator has been set to [Colors.white]. + /// + /// 视频封面通常包含各种颜色,为了保证内容在一般情况下可见,此处 + /// 将指示器的图标和文字设置为 [Colors.white]。 + @override + Widget videoIndicator(BuildContext context, AssetEntity asset) { + return PositionedDirectional( + start: 0, + end: 0, + bottom: 0, + child: Container( + width: double.maxFinite, + height: 26, + padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 2), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: AlignmentDirectional.bottomCenter, + end: AlignmentDirectional.topCenter, + colors: [theme.dividerColor, Colors.transparent], + ), + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon(Icons.videocam, size: 22, color: Colors.white), + Expanded( + child: Padding( + padding: const EdgeInsetsDirectional.only(start: 4), + child: ScaleText( + textDelegate.durationIndicatorBuilder( + Duration(seconds: asset.duration), + ), + style: const TextStyle(color: Colors.white, fontSize: 15), + strutStyle: const StrutStyle( + forceStrutHeight: true, + height: 1.4, + ), + maxLines: 1, + maxScaleFactor: 1.2, + semanticsLabel: + semanticsTextDelegate.durationIndicatorBuilder( + Duration(seconds: asset.duration), + ), + ), + ), + ), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + // Schedule the scroll position's restoration callback if this feature + // is enabled and offsets are different. + if (keepScrollOffset && Singleton.scrollPosition != null) { + SchedulerBinding.instance!.addPostFrameCallback((_) { + // Update only if the controller has clients. + if (gridScrollController.hasClients) { + gridScrollController.jumpTo(Singleton.scrollPosition!.pixels); + } + }); + } + return AnnotatedRegion( + value: overlayStyle, + child: Theme( + data: theme, + child: CNP.value( + value: provider, + builder: (BuildContext context, _) => Material( + color: theme.canvasColor, + child: Stack( + fit: StackFit.expand, + children: [ + if (isAppleOS) + appleOSLayout(context) + else + androidLayout(context), + if (Platform.isIOS) iOSPermissionOverlay(context), + ], + ), + ), + ), + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_text_delegate.dart b/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_text_delegate.dart new file mode 100644 index 00000000..4eaac2fd --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_text_delegate.dart @@ -0,0 +1,846 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/4/7 10:25 +/// +import 'dart:io' show Platform; + +import 'package:flutter/rendering.dart'; +import 'package:photo_manager/photo_manager.dart' show AssetType; + +/// All text delegates. +const List assetPickerTextDelegates = + [ + AssetPickerTextDelegate(), + EnglishAssetPickerTextDelegate(), + HebrewAssetPickerTextDelegate(), + GermanAssetPickerTextDelegate(), + RussianAssetPickerTextDelegate(), + JapaneseAssetPickerTextDelegate(), + ArabicAssetPickerTextDelegate(), + FrenchAssetPickerTextDelegate(), +]; + +/// Obtain the text delegate from the given locale. +AssetPickerTextDelegate assetPickerTextDelegateFromLocale(Locale? locale) { + if (locale == null) { + return const AssetPickerTextDelegate(); + } + final String languageCode = locale.languageCode.toLowerCase(); + for (final AssetPickerTextDelegate delegate in assetPickerTextDelegates) { + if (delegate.languageCode == languageCode) { + return delegate; + } + } + return const AssetPickerTextDelegate(); +} + +/// Text delegate that controls text in widgets. +/// 控制部件中的文字实现 +class AssetPickerTextDelegate { + const AssetPickerTextDelegate(); + + String get languageCode => 'zh'; + + /// Confirm string for the confirm button. + /// 确认按钮的字段 + String get confirm => '确认'; + + /// Cancel string for back button. + /// 返回按钮的字段 + String get cancel => '取消'; + + /// Edit string for edit button. + /// 编辑按钮的字段 + String get edit => '编辑'; + + /// GIF indicator string. + /// GIF指示的字段 + String get gifIndicator => 'GIF'; + + /// Load failed string for item. + /// 资源加载失败时的字段 + String get loadFailed => '加载失败'; + + /// Original string for original selection. + /// 选择是否原图的字段 + String get original => '原图'; + + /// Preview string for preview button. + /// 预览按钮的字段 + String get preview => '预览'; + + /// Select string for select button. + /// 选择按钮的字段 + String get select => '选择'; + + /// Empty list string for empty asset list. + /// 资源列表为空时的占位字段 + String get emptyList => '列表为空'; + + /// Un-supported asset type string for assets that + /// belongs to [AssetType.other]. + /// 未支持的资源类型的字段 + String get unSupportedAssetType => '尚未支持的资源类型'; + + /// "Unable to access all assets in album". + String get unableToAccessAll => '无法访问所有资源'; + + String get viewingLimitedAssetsTip => '应用只能访问部分资源和相册'; + + String get changeAccessibleLimitedAssets => '点击设置可访问的资源'; + + String get accessAllTip => '你已设置应用只能访问设备部分资源,' + '建议允许访问「所有资源」'; + + String get goToSystemSettings => '前往系统设置'; + + /// "Continue accessing some assets". + String get accessLimitedAssets => '继续访问部分资源'; + + String get accessiblePathName => '可访问的资源'; + + /// This is used in video asset item in the picker, in order + /// to display the duration of the video or audio type of asset. + /// 该字段用在选择器视频或音频部件上,用于显示视频或音频资源的时长。 + String durationIndicatorBuilder(Duration duration) { + const String separator = ':'; + final String minute = duration.inMinutes.toString().padLeft(2, '0'); + final String second = + ((duration - Duration(minutes: duration.inMinutes)).inSeconds) + .toString() + .padLeft(2, '0'); + return '$minute$separator$second'; + } + + /// Semantics fields. + /// + /// Fields below are only for semantics usage. For customizable these fields, + /// head over to [EnglishAssetPickerTextDelegate] for fields understanding. + String get sTypeAudioLabel => '音频'; + + String get sTypeImageLabel => '图片'; + + String get sTypeVideoLabel => '视频'; + + String get sTypeOtherLabel => '其他资源'; + + String semanticTypeLabel(AssetType type) { + switch (type) { + case AssetType.audio: + return sTypeAudioLabel; + case AssetType.image: + return sTypeImageLabel; + case AssetType.video: + return sTypeVideoLabel; + case AssetType.other: + return sTypeOtherLabel; + } + } + + String get sActionPlayHint => '播放'; + + String get sActionPreviewHint => '预览'; + + String get sActionSelectHint => '选中'; + + String get sActionSwitchPathLabel => '切换路径'; + + String get sActionUseCameraHint => '使用相机'; + + String get sNameDurationLabel => '时长'; + + String get sUnitAssetCountLabel => '数量'; + + /// Fallback delegate for semantics determined by platform. + /// + /// The purpose of this field is to provide a fallback delegate references + /// when a language does not supported by Talkback or VoiceOver. Set this to + /// another text delegate makes screen readers read accordingly. + /// + /// See also: + /// * Talkback: https://support.google.com/accessibility/android/answer/11101402) + /// * VoiceOver: https://support.apple.com/en-us/HT206175 + AssetPickerTextDelegate get semanticsTextDelegate => this; +} + +/// [AssetPickerTextDelegate] implements with English. +/// English Localization +class EnglishAssetPickerTextDelegate extends AssetPickerTextDelegate { + const EnglishAssetPickerTextDelegate(); + + @override + String get languageCode => 'en'; + + @override + String get confirm => 'Confirm'; + + @override + String get cancel => 'Cancel'; + + @override + String get edit => 'Edit'; + + @override + String get gifIndicator => 'GIF'; + + @override + String get loadFailed => 'Load failed'; + + @override + String get original => 'Origin'; + + @override + String get preview => 'Preview'; + + @override + String get select => 'Select'; + + @override + String get emptyList => 'Empty list'; + + @override + String get unSupportedAssetType => 'Unsupported HEIC asset type.'; + + @override + String get unableToAccessAll => 'Unable to access all assets on the device'; + + @override + String get viewingLimitedAssetsTip => + 'Only view assets and albums accessible to app.'; + + @override + String get changeAccessibleLimitedAssets => + 'Click to update accessible assets'; + + @override + String get accessAllTip => 'App can only access some assets on the device. ' + 'Go to system settings and allow app to access all assets on the device.'; + + @override + String get goToSystemSettings => 'Go to system settings'; + + @override + String get accessLimitedAssets => 'Continue with limited access'; + + @override + String get accessiblePathName => 'Accessible assets'; + + @override + String get sTypeAudioLabel => 'Audio'; + + @override + String get sTypeImageLabel => 'Image'; + + @override + String get sTypeVideoLabel => 'Video'; + + @override + String get sTypeOtherLabel => 'Other asset'; + + @override + String get sActionPlayHint => 'play'; + + @override + String get sActionPreviewHint => 'preview'; + + @override + String get sActionSelectHint => 'select'; + + @override + String get sActionSwitchPathLabel => 'switch path'; + + @override + String get sActionUseCameraHint => 'use camera'; + + @override + String get sNameDurationLabel => 'duration'; + + @override + String get sUnitAssetCountLabel => 'count'; +} + +/// [AssetPickerTextDelegate] implements with Hebrew. +/// תרגום בשפה העברית +class HebrewAssetPickerTextDelegate extends AssetPickerTextDelegate { + const HebrewAssetPickerTextDelegate(); + + @override + String get languageCode => 'he'; + + @override + String get confirm => 'אישור'; + + @override + String get cancel => 'ביטול'; + + @override + String get edit => 'עריכה'; + + @override + String get gifIndicator => 'GIF'; + + @override + String get loadFailed => 'הטעינה נכשלה'; + + @override + String get original => 'מקור'; + + @override + String get preview => 'תצוגה מקדימה'; + + @override + String get select => 'בחר'; + + @override + String get emptyList => 'הרשימה ריקה'; + + @override + String get unSupportedAssetType => 'סוג קובץ HEIC אינו נתמך'; + + @override + String get unableToAccessAll => 'לא ניתן לגשת לכל הקבצים במכשיר'; + + @override + String get viewingLimitedAssetsTip => + 'הצג רק קבצים ואלבומים נגישים לאפליקציה.'; + + @override + String get changeAccessibleLimitedAssets => 'אפשר גישה לקבצים נוספים'; + + @override + String get accessAllTip => 'האפליקציה יכולה לגשת רק לחלק מהקבצים במכשיר. ' + 'פתח הגדרות מערכת ואפשר לאפליקציה גישה לכל הקבצים במכשיר.'; + + @override + String get goToSystemSettings => 'פתח הגדרות מערכת'; + + @override + String get accessLimitedAssets => 'המשך גישה מוגבלת'; + + @override + String get accessiblePathName => 'קבצים נגישים'; + + @override + String get sTypeAudioLabel => 'שמע'; + + @override + String get sTypeImageLabel => 'תמונה'; + + @override + String get sTypeVideoLabel => 'סרטון'; + + @override + String get sTypeOtherLabel => 'קובץ אחר'; + + @override + String get sActionPlayHint => 'נגן'; + + @override + String get sActionPreviewHint => 'תצוגה מקדימה'; + + @override + String get sActionSelectHint => 'בחר'; + + @override + String get sActionSwitchPathLabel => 'החלף תיקייה'; + + @override + String get sActionUseCameraHint => 'השתמש במצלמה'; + + @override + String get sNameDurationLabel => 'משך'; + + @override + String get sUnitAssetCountLabel => 'כמות'; + + @override + AssetPickerTextDelegate get semanticsTextDelegate { + if (Platform.isAndroid) { + return const EnglishAssetPickerTextDelegate(); + } + return this; + } +} + +/// [AssetPickerTextDelegate] implementiert mit der deutschen Übersetzung. +/// Deutsche Textimplementierung. +class GermanAssetPickerTextDelegate extends AssetPickerTextDelegate { + const GermanAssetPickerTextDelegate(); + + @override + String get languageCode => 'de'; + + @override + String get confirm => 'Bestätigen'; + + @override + String get cancel => 'Abbrechen'; + + @override + String get edit => 'Bearbeiten'; + + @override + String get gifIndicator => 'GIF'; + + @override + String get loadFailed => 'Ladevorgang ist fehlgeschlagen'; + + @override + String get original => 'Ursprung'; + + @override + String get preview => 'Vorschau'; + + @override + String get select => 'Auswählen'; + + @override + String get emptyList => 'Leere Liste'; + + @override + String get unSupportedAssetType => 'HEIC Format ist nicht unterstützt.'; + + @override + String get unableToAccessAll => 'Zugriff nicht möglich'; + + @override + String get viewingLimitedAssetsTip => + 'Zeigen Sie nur Dateien und Alben an, auf die die App zugreifen kann'; + + @override + String get accessAllTip => + 'Die App kann nur auf einige der Dateien auf dem Gerät zugreifen. ' + 'Öffnen Sie die Systemeinstellungen und erlauben Sie der App, ' + 'auf alle Dateien auf dem Gerät zuzugreifen'; + + @override + String get goToSystemSettings => 'Gehe zu den Systemeinstellungen'; + + @override + String get accessLimitedAssets => 'Fahre fort mit limitierten Zugriff'; + + @override + String get accessiblePathName => 'Verfügbare Assets'; + + @override + String get sTypeAudioLabel => 'Audio'; + + @override + String get sTypeImageLabel => 'Bild'; + + @override + String get sTypeVideoLabel => 'Video'; + + @override + String get sTypeOtherLabel => 'Andere Medien'; + + @override + String get sActionPlayHint => 'Abspielen'; + + @override + String get sActionPreviewHint => 'Vorschau'; + + @override + String get sActionSelectHint => 'Auswählen'; + + @override + String get sActionSwitchPathLabel => 'Dateipfad ändern'; + + @override + String get sActionUseCameraHint => 'Kamera benutzen'; + + @override + String get sNameDurationLabel => 'Dauer'; + + @override + String get sUnitAssetCountLabel => 'Anzahl'; +} + +/// [AssetPickerTextDelegate] implements with Russian. +/// Локализация на русский язык. +class RussianAssetPickerTextDelegate extends AssetPickerTextDelegate { + const RussianAssetPickerTextDelegate(); + + @override + String get languageCode => 'ru'; + + @override + String get confirm => 'Готово'; + + @override + String get cancel => 'Отмена'; + + @override + String get edit => 'Изменить'; + + @override + String get gifIndicator => 'GIF'; + + @override + String get loadFailed => 'Ошибка при загрузке'; + + @override + String get original => 'Оригинал'; + + @override + String get preview => 'Предпросмотр'; + + @override + String get select => 'Выбрать'; + + @override + String get emptyList => 'Пустой список'; + + @override + String get unSupportedAssetType => 'Неподдерживаемый формат ресурса.'; + + @override + String get unableToAccessAll => 'Не все файлы доступны на устройстве'; + + @override + String get viewingLimitedAssetsTip => + 'Показать только файлы, которые доступны приложению.'; + + @override + String get changeAccessibleLimitedAssets => + 'Разрешить доступ к дополнительным файлам'; + + @override + String get accessAllTip => + 'У приложения доступ только к некоторым файлам на устройстве. ' + 'Откройте настройки системы и разрешите приложению доступ ко всем файлам на устройстве.'; + + @override + String get goToSystemSettings => 'Открыть настройки системы'; + + @override + String get accessLimitedAssets => 'Продолжить с ограниченным доступом'; + + @override + String get accessiblePathName => 'Доступные файлы'; + + @override + String get sTypeAudioLabel => 'Аудио'; + + @override + String get sTypeImageLabel => 'Изображение'; + + @override + String get sTypeVideoLabel => 'Видео'; + + @override + String get sTypeOtherLabel => 'Другой файл'; + + @override + String get sActionPlayHint => 'воспроизвести'; + + @override + String get sActionPreviewHint => 'просмотреть'; + + @override + String get sActionSelectHint => 'выбрать'; + + @override + String get sActionSwitchPathLabel => 'изменить путь'; + + @override + String get sActionUseCameraHint => 'использовать камеру'; + + @override + String get sNameDurationLabel => 'продолжительность'; + + @override + String get sUnitAssetCountLabel => 'количество'; +} + +/// [AssetPickerTextDelegate] implements with Japanese. +/// 日本語の TextDelegate +class JapaneseAssetPickerTextDelegate extends AssetPickerTextDelegate { + const JapaneseAssetPickerTextDelegate(); + + @override + String get languageCode => 'ja'; + + @override + String get confirm => '確認'; + + @override + String get cancel => 'キャンセル'; + + @override + String get edit => '編集'; + + @override + String get gifIndicator => 'GIF画像'; + + @override + String get loadFailed => '読み込みに失敗しました'; + + @override + String get original => '元の画像'; + + @override + String get preview => 'プレビュー'; + + @override + String get select => '選択'; + + @override + String get emptyList => 'リストが空です'; + + @override + String get unSupportedAssetType => '未対応のフォーマット'; + + @override + String get unableToAccessAll => 'すべてのリソースへのアクセスができない'; + + @override + String get viewingLimitedAssetsTip => 'アプリは一部のリソースと' + '写真にしかアクセスできない'; + + @override + String get changeAccessibleLimitedAssets => 'アクセスできるリソースを設定する'; + + @override + String get accessAllTip => 'アプリがデバイスのリソースの一部にのみ' + 'アクセスするように設定されています。' + '「すべてのリソース」へのアクセスを許可することを推奨します'; + + @override + String get goToSystemSettings => '「システム設定」に移動'; + + @override + String get accessLimitedAssets => 'リソースの一部へのアクセスを続行'; + + @override + String get accessiblePathName => 'アクセスできるリソース'; + + @override + String get sTypeAudioLabel => 'オーディオ'; + + @override + String get sTypeImageLabel => '画像'; + + @override + String get sTypeVideoLabel => '動画'; + + @override + String get sTypeOtherLabel => 'その他のリソース'; + + @override + String get sActionPlayHint => '再生'; + + @override + String get sActionPreviewHint => 'プレビュー'; + + @override + String get sActionSelectHint => '選択'; + + @override + String get sActionSwitchPathLabel => 'パス切り替え'; + + @override + String get sActionUseCameraHint => 'カメラを使う'; + + @override + String get sNameDurationLabel => '動画の時間'; + + @override + String get sUnitAssetCountLabel => '数'; +} + +/// [AssetPickerTextDelegate] implements with Arabic. +/// الترجمة العربية +class ArabicAssetPickerTextDelegate extends AssetPickerTextDelegate { + const ArabicAssetPickerTextDelegate(); + + @override + String get languageCode => 'ar'; + + @override + String get confirm => 'تاكيد'; + + @override + String get cancel => 'إلغاء'; + + @override + String get edit => 'تعديل'; + + @override + String get gifIndicator => 'GIF'; + + @override + String get loadFailed => 'فشل التحميل'; + + @override + String get original => 'أصلي'; + + @override + String get preview => 'معاينة'; + + @override + String get select => 'تحديد'; + + @override + String get emptyList => 'القائمة فارغة'; + + @override + String get unSupportedAssetType => 'نوع HEIC غير مدعوم'; + + @override + String get unableToAccessAll => + 'لا يمكن الوصول إلى جميع الملفات الموجودة على الجهاز'; + + @override + String get viewingLimitedAssetsTip => + 'إظهار الملفات والألبومات التي يمكن للتطبيق الوصول إليها فقط.'; + + @override + String get changeAccessibleLimitedAssets => 'السماح بالوصول إلى ملفات إضافية'; + + @override + String get accessAllTip => + 'يمكن للتطبيق الوصول فقط إلى بعض الملفات الموجودة على الجهاز. ' + 'افتح إعدادات النظام واسمح للتطبيق بالوصول إلى جميع الملفات الموجودة على الجهاز.'; + + @override + String get goToSystemSettings => 'فتح إعدادات النظام'; + + @override + String get accessLimitedAssets => 'الاستمرار مع صلاحيات محدوده'; + + @override + String get accessiblePathName => 'ملفات يمكن الوصول إليها'; + + @override + String get sTypeAudioLabel => 'صوتي'; + + @override + String get sTypeImageLabel => 'صورة'; + + @override + String get sTypeVideoLabel => 'فيديو'; + + @override + String get sTypeOtherLabel => 'آخر'; + + @override + String get sActionPlayHint => 'تشغيل'; + + @override + String get sActionPreviewHint => 'معاينة'; + + @override + String get sActionSelectHint => 'تحديد'; + + @override + String get sActionSwitchPathLabel => 'تبديل المسار'; + + @override + String get sActionUseCameraHint => 'استخدم الكاميرا'; + + @override + String get sNameDurationLabel => 'مدة'; + + @override + String get sUnitAssetCountLabel => 'عدد'; +} + +/// [AssetPickerTextDelegate] implements with French. +/// Délégué texte français +class FrenchAssetPickerTextDelegate extends AssetPickerTextDelegate { + const FrenchAssetPickerTextDelegate(); + + @override + String get languageCode => 'fr'; + + @override + String get confirm => 'OK'; + + @override + String get cancel => 'Annuler'; + + @override + String get edit => 'Modifier'; + + @override + String get gifIndicator => 'GIF'; + + @override + String get loadFailed => 'Echec du chargement'; + + @override + String get original => 'Original'; + + @override + String get preview => 'Aperçu'; + + @override + String get select => 'Choisir'; + + @override + String get emptyList => 'Liste vide'; + + @override + String get unSupportedAssetType => 'Type de fichier non supporté'; + + @override + String get unableToAccessAll => + 'Impossible d\'accéder aux médias de votre appareil'; + + @override + String get viewingLimitedAssetsTip => + 'Affichage des médias et albums limité '; + + @override + String get changeAccessibleLimitedAssets => + "Modifier l'accès limité aux médias"; + + @override + String get accessAllTip => + "L'application ne peut accéder qu'à certains medias. " + "Allez dans les paramètres système et autoriser l'application " + "à accéder à tous les medias sur l'appareil"; + + @override + String get goToSystemSettings => 'Allez dans les paramètres système'; + + @override + String get accessLimitedAssets => 'Continuer avec un accès limité'; + + @override + String get accessiblePathName => 'Medias accessible'; + + @override + String get sTypeAudioLabel => "l'audio"; + + @override + String get sTypeImageLabel => 'image'; + + @override + String get sTypeVideoLabel => 'vidéo'; + + @override + String get sTypeOtherLabel => 'Autre'; + + @override + String get sActionPlayHint => 'jouer'; + + @override + String get sActionPreviewHint => 'aperçu'; + + @override + String get sActionSelectHint => 'choisir'; + + @override + String get sActionSwitchPathLabel => 'changer le dossier'; + + @override + String get sActionUseCameraHint => 'Utiliser la Caméra'; + + @override + String get sNameDurationLabel => 'durée'; + + @override + String get sUnitAssetCountLabel => 'quantité'; +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_viewer_builder_delegate.dart b/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_viewer_builder_delegate.dart new file mode 100644 index 00000000..31a90f21 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/delegates/asset_picker_viewer_builder_delegate.dart @@ -0,0 +1,1029 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020-10-31 00:15 +/// +import 'dart:async'; +import 'dart:io'; +import 'dart:math' as math; + +import 'package:extended_image/extended_image.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/semantics.dart'; +import 'package:flutter/services.dart'; +import 'package:photo_manager/photo_manager.dart'; +import 'package:provider/provider.dart'; + +import '../constants/custom_scroll_physics.dart'; +import '../constants/enums.dart'; +import '../constants/extensions.dart'; +import '../constants/typedefs.dart'; +import '../delegates/asset_picker_text_delegate.dart'; +import '../internal/singleton.dart'; +import '../provider/asset_picker_provider.dart'; +import '../provider/asset_picker_viewer_provider.dart'; +import '../widget/asset_picker_viewer.dart'; +import '../widget/builder/audio_page_builder.dart'; +import '../widget/builder/fade_image_builder.dart'; +import '../widget/builder/image_page_builder.dart'; +import '../widget/builder/value_listenable_builder_2.dart'; +import '../widget/builder/video_page_builder.dart'; +import '../widget/scale_text.dart'; + +abstract class AssetPickerViewerBuilderDelegate { + AssetPickerViewerBuilderDelegate({ + required this.previewAssets, + required this.themeData, + required this.currentIndex, + this.selectorProvider, + this.provider, + this.selectedAssets, + this.maxAssets, + this.shouldReversePreview = false, + this.selectPredicate, + }); + + /// [ChangeNotifier] for photo selector viewer. + /// 资源预览器的状态保持 + final AssetPickerViewerProvider? provider; + + /// Assets provided to preview. + /// 提供预览的资源 + final List previewAssets; + + /// Theme for the viewer. + /// 主题 + final ThemeData themeData; + + /// Selected assets. + /// 已选的资源 + final List? selectedAssets; + + /// Provider for [AssetPicker]. + /// 资源选择器的状态保持 + final AssetPickerProvider? selectorProvider; + + /// Whether the preview sequence is reversed. + /// 预览时顺序是否为反向 + /// + /// Usually this will be true when users are previewing on Apple OS and + /// clicked one item of the asset grid. + /// 通常用户使用苹果系统时,点击网格内容进行预览,是反向进行预览。 + final bool shouldReversePreview; + + /// {@macro wechat_assets_picker.AssetSelectPredicate} + final AssetSelectPredicate? selectPredicate; + + /// [StreamController] for viewing page index update. + /// 用于更新当前正在浏览的资源页码的流控制器 + /// + /// The main purpose is to narrow down build parts when index is changing, + /// prevent widely [setState] and causing other widgets rebuild. + /// 使用 [StreamController] 的主要目的是缩小页码变化时构建组件的范围, + /// 防止滥用 [setState] 导致其他部件重新构建。 + final StreamController pageStreamController = + StreamController.broadcast(); + + /// The [ScrollController] for the previewing assets list. + /// 正在预览的资源的 [ScrollController] + final ScrollController previewingListController = ScrollController(); + + /// Whether detail widgets displayed. + /// 详情部件是否显示 + final ValueNotifier isDisplayingDetail = ValueNotifier(true); + + /// The [State] for a viewer. + /// 预览器的状态实例 + late final AssetPickerViewerState viewerState; + + /// The [TickerProvider] for animations. + /// 用于动画的 [TickerProvider] + late final TickerProvider vsync; + + /// [AnimationController] for double tap animation. + /// 双击缩放的动画控制器 + late final AnimationController doubleTapAnimationController; + + /// [CurvedAnimation] for double tap. + /// 双击缩放的动画曲线 + late final Animation doubleTapCurveAnimation; + + /// [Animation] for double tap. + /// 双击缩放的动画 + Animation? doubleTapAnimation; + + /// Callback for double tap. + /// 双击缩放的回调 + late VoidCallback doubleTapListener; + + /// [PageController] for assets preview [PageView]. + /// 查看图片资源的页面控制器 + ExtendedPageController get pageController => _pageController; + late final ExtendedPageController _pageController = ExtendedPageController( + initialPage: currentIndex, + ); + + /// Current previewing index in assets. + /// 当前查看的索引 + int currentIndex; + + /// Maximum count for asset selection. + /// 资源选择的最大数量 + final int? maxAssets; + + /// Whether the viewer is under preview mode for selected assets. + /// 当前是否处于查看已选中资源的模式 + late final bool isSelectedPreviewing = selectedAssets == previewAssets; + + /// Getter for the current asset. + /// 当前资源的Getter + Asset get currentAsset => previewAssets.elementAt(currentIndex); + + /// Height for bottom preview widget. + /// 底栏预览部件的高度 + double get bottomPreviewHeight => 90.0; + + /// Height for bottom bar widget. + /// 底栏部件的高度 + double get bottomBarHeight => 50.0; + + double get bottomDetailHeight => bottomPreviewHeight + bottomBarHeight; + + /// Whether the current platform is Apple OS. + /// 当前平台是否为苹果系列系统 + bool get isAppleOS => Platform.isIOS || Platform.isMacOS; + + AssetPickerTextDelegate get textDelegate => Singleton.textDelegate; + + AssetPickerTextDelegate get semanticsTextDelegate => + Singleton.textDelegate.semanticsTextDelegate; + + /// Call when viewer is calling [initState]. + /// 当预览器调用 [initState] 时注册 [State] 和 [TickerProvider]。 + void initStateAndTicker( + AssetPickerViewerState s, + TickerProvider v, + ) { + viewerState = s; + vsync = v; + doubleTapAnimationController = AnimationController( + duration: const Duration(milliseconds: 200), + vsync: v, + ); + doubleTapCurveAnimation = CurvedAnimation( + parent: doubleTapAnimationController, + curve: Curves.easeInOut, + ); + } + + /// Keep a dispose method to sync with [State]. + /// 保留一个 dispose 方法与 [State] 同步。 + void dispose() { + provider?.dispose(); + pageController.dispose(); + pageStreamController.close(); + previewingListController.dispose(); + selectedNotifier.dispose(); + isDisplayingDetail.dispose(); + doubleTapAnimationController + ..stop() + ..reset() + ..dispose(); + } + + /// Produce [OrdinalSortKey] with the fixed name. + OrdinalSortKey ordinalSortKey(double value) { + return OrdinalSortKey(value, name: 'AssetPickerViewerBuilderDelegate'); + } + + /// Execute scale animation when double tap. + /// 双击时执行缩放动画 + void updateAnimation(ExtendedImageGestureState state) { + final double begin = state.gestureDetails!.totalScale!; + final double end = state.gestureDetails!.totalScale! == 1.0 ? 3.0 : 1.0; + final Offset pointerDownPosition = state.pointerDownPosition!; + + doubleTapAnimation?.removeListener(doubleTapListener); + doubleTapAnimationController + ..stop() + ..reset(); + doubleTapListener = () { + state.handleDoubleTap( + scale: doubleTapAnimation!.value, + doubleTapPosition: pointerDownPosition, + ); + }; + doubleTapAnimation = Tween( + begin: begin, + end: end, + ).animate(doubleTapCurveAnimation) + ..addListener(doubleTapListener); + doubleTapAnimationController.forward(); + } + + /// The length getter for selected assets currently. + /// 当前选中的资源的长度获取 + int get selectedCount => selectedAssets?.length ?? 0; + + /// 是否已经选择了最大数量的资源 + bool get selectedMaximumAssets => + selectedAssets != null && selectedAssets!.length == maxAssets; + + /// Construct a notifier to notify + /// whether if a new asset is selected or unselected. + /// 构造一个通知器,在新资源选中或取消选中时通知。 + late final ValueNotifier selectedNotifier = + ValueNotifier(selectedCount); + + void unSelectAsset(Asset entity) { + provider?.unSelectAssetEntity(entity); + if (!isSelectedPreviewing) { + selectedAssets?.remove(entity); + } + if (selectedCount != selectedNotifier.value) { + selectedNotifier.value = selectedCount; + } + } + + void selectAsset(Asset entity) { + if (maxAssets != null && selectedCount >= maxAssets!) { + return; + } + provider?.selectAssetEntity(entity); + if (!isSelectedPreviewing) { + selectedAssets?.add(entity); + } + if (selectedCount != selectedNotifier.value) { + selectedNotifier.value = selectedCount; + } + } + + Future onChangingSelected( + BuildContext context, + Asset asset, + bool isSelected, + ) async { + final bool? selectPredicateResult = await selectPredicate?.call( + context, + asset, + isSelected, + ); + if (selectPredicateResult == false) { + return; + } + if (isSelected) { + unSelectAsset(asset); + return; + } + selectAsset(asset); + } + + /// Method to switch [isDisplayingDetail]. + /// 切换显示详情状态的方法 + void switchDisplayingDetail({bool? value}) { + isDisplayingDetail.value = value ?? !isDisplayingDetail.value; + } + + /// Sync selected assets currently with asset picker provider. + /// 在预览中当前已选的图片同步到选择器的状态 + Future syncSelectedAssetsWhenPop() async { + if (provider?.currentlySelectedAssets != null) { + selectorProvider?.selectedAssets = provider!.currentlySelectedAssets; + } + return true; + } + + /// Split page builder according to type of asset. + /// 根据资源类型使用不同的构建页 + Widget assetPageBuilder(BuildContext context, int index); + + /// Common image load state changed callback with [Widget]. + /// 图片加载状态的部件回调 + Widget previewWidgetLoadStateChanged( + BuildContext context, + ExtendedImageState state, { + bool hasLoaded = false, + }) { + Widget loader; + switch (state.extendedImageLoadState) { + case LoadState.completed: + loader = state.completedWidget; + if (!hasLoaded) { + loader = FadeImageBuilder(child: loader); + } + break; + case LoadState.failed: + loader = failedItemBuilder(context); + break; + default: + loader = const SizedBox.shrink(); + break; + } + return loader; + } + + /// The item widget when [AssetEntity.thumbData] load failed. + /// 资源缩略数据加载失败时使用的部件 + Widget failedItemBuilder(BuildContext context) { + return Center( + child: ScaleText( + textDelegate.loadFailed, + textAlign: TextAlign.center, + style: const TextStyle(fontSize: 18.0), + semanticsLabel: semanticsTextDelegate.loadFailed, + ), + ); + } + + /// Confirm button. + /// 确认按钮 + Widget confirmButton(BuildContext context); + + /// Select button. + /// 选择按钮 + Widget selectButton(BuildContext context); + + /// Thumb item widgets in bottom detail. + /// 底部信息栏单个资源缩略部件 + Widget bottomDetailItemBuilder(BuildContext context, int index); + + /// Detail widget aligned to bottom. + /// 底部信息部件 + Widget bottomDetailBuilder(BuildContext context); + + /// Yes, the build method. + /// 没错,是它是它就是它,我们亲爱的 build 方法~ + Widget build(BuildContext context); +} + +class DefaultAssetPickerViewerBuilderDelegate + extends AssetPickerViewerBuilderDelegate { + DefaultAssetPickerViewerBuilderDelegate({ + required int currentIndex, + required List previewAssets, + AssetPickerProvider? selectorProvider, + required ThemeData themeData, + AssetPickerViewerProvider? provider, + List? selectedAssets, + this.previewThumbnailSize, + this.specialPickerType, + int? maxAssets, + bool shouldReversePreview = false, + AssetSelectPredicate? selectPredicate, + }) : super( + currentIndex: currentIndex, + previewAssets: previewAssets, + provider: provider, + themeData: themeData, + selectedAssets: selectedAssets, + selectorProvider: selectorProvider, + maxAssets: maxAssets, + shouldReversePreview: shouldReversePreview, + selectPredicate: selectPredicate, + ); + + /// Thumb size for the preview of images in the viewer. + /// 预览时图片的缩略图大小 + final ThumbnailSize? previewThumbnailSize; + + /// The current special picker type for the viewer. + /// 当前特殊选择类型 + /// + /// If the type is not null, the title of the viewer will not display. + /// 如果类型不为空,则标题将不会显示。 + final SpecialPickerType? specialPickerType; + + /// Whether the [SpecialPickerType.wechatMoment] is enabled. + /// 当前是否为微信朋友圈选择模式 + bool get isWeChatMoment => + specialPickerType == SpecialPickerType.wechatMoment; + + /// Whether there are videos in preview/selected assets. + /// 当前正在预览或已选的资源是否有视频 + bool get hasVideo => + previewAssets.any((AssetEntity e) => e.type == AssetType.video) || + (selectedAssets?.any((AssetEntity e) => e.type == AssetType.video) ?? + false); + + @override + Widget assetPageBuilder(BuildContext context, int index) { + final AssetEntity asset = previewAssets.elementAt(index); + final Widget _builder; + switch (asset.type) { + case AssetType.audio: + _builder = AudioPageBuilder(asset: asset); + break; + case AssetType.image: + _builder = ImagePageBuilder( + asset: asset, + delegate: this, + previewThumbnailSize: previewThumbnailSize, + ); + break; + case AssetType.video: + _builder = VideoPageBuilder( + asset: asset, + delegate: this, + hasOnlyOneVideoAndMoment: isWeChatMoment && hasVideo, + ); + break; + case AssetType.other: + _builder = Center( + child: ScaleText( + textDelegate.unSupportedAssetType, + semanticsLabel: semanticsTextDelegate.unSupportedAssetType, + ), + ); + break; + } + return MergeSemantics( + child: Consumer?>( + builder: ( + BuildContext c, + AssetPickerViewerProvider? p, + Widget? w, + ) { + final bool isSelected = + (p?.currentlySelectedAssets ?? selectedAssets)?.contains(asset) == + true; + String hint = ''; + if (asset.type == AssetType.audio || asset.type == AssetType.video) { + hint += '${semanticsTextDelegate.sNameDurationLabel}: '; + hint += textDelegate.durationIndicatorBuilder(asset.videoDuration); + } + if (asset.title?.isNotEmpty == true) { + hint += ', ${asset.title}'; + } + return Semantics( + label: '${semanticsTextDelegate.semanticTypeLabel(asset.type)}' + '${index + 1}, ' + '${asset.createDateTime.toString().replaceAll('.000', '')}', + selected: isSelected, + hint: hint, + image: + asset.type == AssetType.image || asset.type == AssetType.video, + child: w, + ); + }, + child: _builder, + ), + ); + } + + /// Preview item widgets for audios. + /// 音频的底部预览部件 + Widget _audioPreviewItem(AssetEntity asset) { + return ColoredBox( + color: viewerState.context.themeData.dividerColor, + child: const Center(child: Icon(Icons.audiotrack)), + ); + } + + /// Preview item widgets for images. + /// 图片的底部预览部件 + Widget _imagePreviewItem(AssetEntity asset) { + return Positioned.fill( + child: RepaintBoundary( + child: ExtendedImage( + image: AssetEntityImageProvider(asset, isOriginal: false), + fit: BoxFit.cover, + ), + ), + ); + } + + /// Preview item widgets for video. + /// 视频的底部预览部件 + Widget _videoPreviewItem(AssetEntity asset) { + return Positioned.fill( + child: Stack( + children: [ + _imagePreviewItem(asset), + Center( + child: Icon( + Icons.video_library, + color: themeData.iconTheme.color?.withOpacity(0.54), + ), + ), + ], + ), + ); + } + + /// The back button when previewing video in [SpecialPickerType.wechatMoment]. + /// 使用 [SpecialPickerType.wechatMoment] 预览视频时的返回按钮 + Widget momentVideoBackButton(BuildContext context) { + return PositionedDirectional( + start: 16, + top: context.topPadding + 16, + child: Semantics( + sortKey: ordinalSortKey(0), + child: IconButton( + onPressed: Navigator.of(context).maybePop, + padding: EdgeInsets.zero, + constraints: BoxConstraints.tight(const Size.square(28)), + tooltip: MaterialLocalizations.of(context).backButtonTooltip, + iconSize: 18, + icon: Container( + padding: const EdgeInsets.all(5), + decoration: BoxDecoration( + color: themeData.iconTheme.color, + shape: BoxShape.circle, + ), + child: Icon( + Icons.keyboard_return_rounded, + color: themeData.canvasColor, + ), + ), + ), + ), + ); + } + + @override + Widget bottomDetailBuilder(BuildContext context) { + final Color _backgroundColor = themeData.primaryColor.withOpacity(.9); + return ValueListenableBuilder2( + firstNotifier: isDisplayingDetail, + secondNotifier: selectedNotifier, + builder: (_, bool v, __, Widget? child) => AnimatedPositionedDirectional( + duration: kThemeAnimationDuration, + curve: Curves.easeInOut, + bottom: v ? 0 : -(context.bottomPadding + bottomDetailHeight), + start: 0, + end: 0, + height: context.bottomPadding + bottomDetailHeight, + child: child!, + ), + child: CNP?>.value( + value: provider, + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + if (provider != null) + ValueListenableBuilder( + valueListenable: selectedNotifier, + builder: (_, int count, __) => Container( + width: count > 0 ? double.maxFinite : 0, + height: bottomPreviewHeight, + color: _backgroundColor, + child: ListView.builder( + controller: previewingListController, + scrollDirection: Axis.horizontal, + padding: const EdgeInsets.symmetric(horizontal: 5.0), + physics: const ClampingScrollPhysics(), + itemCount: count, + itemBuilder: bottomDetailItemBuilder, + ), + ), + ), + Container( + height: bottomBarHeight + context.bottomPadding, + padding: const EdgeInsets.symmetric(horizontal: 20.0) + .copyWith(bottom: context.bottomPadding), + decoration: BoxDecoration( + border: Border( + top: BorderSide( + width: 1.0, + color: themeData.canvasColor, + ), + ), + color: _backgroundColor, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Spacer(), + if (isAppleOS && (provider != null || isWeChatMoment)) + confirmButton(context) + else + selectButton(context), + ], + ), + ), + ], + ), + ), + ); + } + + @override + Widget bottomDetailItemBuilder(BuildContext context, int index) { + const double padding = 8.0; + + void onTap(AssetEntity asset) { + final int page; + if (previewAssets != selectedAssets) { + page = previewAssets.indexOf(asset); + } else { + page = index; + } + if (pageController.page == page.toDouble()) { + return; + } + pageController.jumpToPage(page); + final double offset = + (index - 0.5) * (bottomPreviewHeight - padding * 3) - + context.mediaQuery.size.width / 4; + previewingListController.animateTo( + math.max(0, offset), + curve: Curves.ease, + duration: kThemeChangeDuration, + ); + } + + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: padding, + vertical: padding * 2, + ), + child: AspectRatio( + aspectRatio: 1.0, + child: StreamBuilder( + initialData: currentIndex, + stream: pageStreamController.stream, + builder: (_, AsyncSnapshot snapshot) { + final AssetEntity asset = selectedAssets!.elementAt(index); + final bool isViewing = previewAssets[snapshot.data!] == asset; + final Widget _item = () { + switch (asset.type) { + case AssetType.image: + return _imagePreviewItem(asset); + case AssetType.video: + return _videoPreviewItem(asset); + case AssetType.audio: + return _audioPreviewItem(asset); + default: + return const SizedBox.shrink(); + } + }(); + return Semantics( + label: '${semanticsTextDelegate.semanticTypeLabel(asset.type)}' + '${index + 1}', + selected: isViewing, + onTap: () => onTap(asset), + onTapHint: semanticsTextDelegate.sActionPreviewHint, + excludeSemantics: true, + child: GestureDetector( + onTap: () => onTap(asset), + child: Selector?, + List?>( + selector: (_, AssetPickerViewerProvider? p) => + p?.currentlySelectedAssets, + child: _item, + builder: ( + _, + List? currentlySelectedAssets, + Widget? w, + ) { + final bool isSelected = + currentlySelectedAssets?.contains(asset) ?? false; + return Stack( + children: [ + w!, + AnimatedContainer( + duration: kThemeAnimationDuration, + curve: Curves.easeInOut, + decoration: BoxDecoration( + border: isViewing + ? Border.all( + color: themeData.colorScheme.secondary, + width: 3, + ) + : null, + color: isSelected + ? null + : themeData.colorScheme.surface + .withOpacity(0.54), + ), + ), + ], + ); + }, + ), + ), + ); + }, + ), + ), + ); + } + + /// AppBar widget. + /// 顶栏部件 + Widget appBar(BuildContext context) { + return ValueListenableBuilder( + valueListenable: isDisplayingDetail, + builder: (_, bool value, Widget? child) => AnimatedPositionedDirectional( + duration: kThemeAnimationDuration, + curve: Curves.easeInOut, + top: value ? 0.0 : -(context.topPadding + kToolbarHeight), + start: 0.0, + end: 0.0, + height: context.topPadding + kToolbarHeight, + child: child!, + ), + child: Container( + padding: EdgeInsetsDirectional.only(top: context.topPadding), + color: themeData.canvasColor, + child: Row( + children: [ + Expanded( + child: Align( + alignment: AlignmentDirectional.centerStart, + child: Semantics( + sortKey: ordinalSortKey(0), + child: IconButton( + icon: const Icon(Icons.close), + tooltip: MaterialLocalizations.of( + context, + ).backButtonTooltip, + onPressed: Navigator.of(context).maybePop, + ), + ), + ), + ), + if (!isAppleOS && specialPickerType == null) + Expanded( + child: Center( + child: Semantics( + sortKey: ordinalSortKey(0.1), + child: StreamBuilder( + initialData: currentIndex, + stream: pageStreamController.stream, + builder: (_, AsyncSnapshot snapshot) => ScaleText( + '${snapshot.data! + 1}/${previewAssets.length}', + style: const TextStyle( + fontSize: 17, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + ), + ), + if (isAppleOS && provider != null) + Expanded( + child: Align( + alignment: AlignmentDirectional.centerEnd, + child: Semantics( + sortKey: ordinalSortKey(0.2), + child: selectButton(context), + ), + ), + ) + else if (isAppleOS) + const Spacer(), + if (!isAppleOS && (provider != null || isWeChatMoment)) + Expanded( + child: Align( + alignment: AlignmentDirectional.centerEnd, + child: Semantics( + sortKey: ordinalSortKey(0.3), + child: Padding( + padding: const EdgeInsetsDirectional.only(end: 14), + child: confirmButton(context), + ), + ), + ), + ) + else if (!isAppleOS) + const Spacer(), + ], + ), + ), + ); + } + + /// It'll pop with [AssetPickerProvider.selectedAssets] when there are + /// any assets were chosen. Then, the assets picker will pop too. + /// 当有资源已选时,点击按钮将把已选资源通过路由返回。 + /// 资源选择器将识别并一同返回。 + @override + Widget confirmButton(BuildContext context) { + return CNP?>.value( + value: provider, + child: Consumer?>( + builder: (_, AssetPickerViewerProvider? provider, __) { + assert( + isWeChatMoment || provider != null, + 'Viewer provider must not be null' + 'when the special type is not WeChat moment.', + ); + return MaterialButton( + minWidth: () { + if (isWeChatMoment && hasVideo) { + return 48.0; + } + return provider!.isSelectedNotEmpty ? 48.0 : 20.0; + }(), + height: 32.0, + padding: const EdgeInsets.symmetric(horizontal: 12.0), + color: themeData.colorScheme.secondary, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(3.0), + ), + child: ScaleText( + () { + if (isWeChatMoment && hasVideo) { + return textDelegate.confirm; + } + if (provider!.isSelectedNotEmpty) { + return '${textDelegate.confirm}' + ' (${provider.currentlySelectedAssets.length}' + '/' + '${selectorProvider!.maxAssets})'; + } + return textDelegate.confirm; + }(), + style: TextStyle( + color: themeData.textTheme.bodyText1?.color, + fontSize: 17, + fontWeight: FontWeight.normal, + ), + semanticsLabel: () { + if (isWeChatMoment && hasVideo) { + return semanticsTextDelegate.confirm; + } + if (provider!.isSelectedNotEmpty) { + return '${semanticsTextDelegate.confirm}' + ' (${provider.currentlySelectedAssets.length}' + '/' + '${selectorProvider!.maxAssets})'; + } + return semanticsTextDelegate.confirm; + }(), + ), + onPressed: () { + if (isWeChatMoment && hasVideo) { + Navigator.of(context).pop([currentAsset]); + return; + } + if (provider!.isSelectedNotEmpty) { + Navigator.of(context).pop(provider.currentlySelectedAssets); + return; + } + selectAsset(currentAsset); + Navigator.of(context).pop( + selectedAssets ?? [currentAsset], + ); + }, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + }, + ), + ); + } + + /// Select button for apple OS. + /// 苹果系列系统的选择按钮 + Widget _appleOSSelectButton( + BuildContext context, + bool isSelected, + AssetEntity asset, + ) { + if (!isSelected && selectedMaximumAssets) { + return const SizedBox.shrink(); + } + return Padding( + padding: const EdgeInsetsDirectional.only(end: 10.0), + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + Feedback.forTap(context); + onChangingSelected(context, asset, isSelected); + }, + child: AnimatedContainer( + duration: kThemeAnimationDuration, + width: 28.0, + decoration: BoxDecoration( + border: !isSelected + ? Border.all(color: themeData.iconTheme.color!) + : null, + color: isSelected ? themeData.colorScheme.secondary : null, + shape: BoxShape.circle, + ), + child: const Center(child: Icon(Icons.check, size: 20.0)), + ), + ), + ); + } + + /// Select button for Android. + /// 安卓系统的选择按钮 + Widget _androidSelectButton( + BuildContext context, + bool isSelected, + AssetEntity asset, + ) { + return Checkbox( + value: isSelected, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(999999), + ), + onChanged: (_) => onChangingSelected(context, asset, isSelected), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + } + + @override + Widget selectButton(BuildContext context) { + return CNP>.value( + value: provider!, + builder: (_, Widget? w) => StreamBuilder( + initialData: currentIndex, + stream: pageStreamController.stream, + builder: (BuildContext _, AsyncSnapshot s) { + final AssetEntity asset = previewAssets.elementAt(s.data!); + return Selector, + List>( + selector: (_, AssetPickerViewerProvider p) => + p.currentlySelectedAssets, + builder: (BuildContext c, List assets, _) { + final bool isSelected = assets.contains(asset); + return Semantics( + selected: isSelected, + label: semanticsTextDelegate.select, + onTap: () => onChangingSelected(context, asset, isSelected), + onTapHint: semanticsTextDelegate.select, + excludeSemantics: true, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + if (isAppleOS) + _appleOSSelectButton(c, isSelected, asset) + else + _androidSelectButton(c, isSelected, asset), + if (!isAppleOS) + ScaleText( + textDelegate.select, + style: const TextStyle(fontSize: 17, height: 1), + semanticsLabel: semanticsTextDelegate.select, + ), + ], + ), + ); + }, + ); + }, + ), + ); + } + + Widget _pageViewBuilder(BuildContext context) { + return Semantics( + sortKey: ordinalSortKey(1), + child: ExtendedImageGesturePageView.builder( + physics: previewAssets.length == 1 + ? const CustomClampingScrollPhysics() + : const CustomBouncingScrollPhysics(), + controller: pageController, + itemCount: previewAssets.length, + itemBuilder: assetPageBuilder, + reverse: shouldReversePreview, + onPageChanged: (int index) { + currentIndex = index; + pageStreamController.add(index); + }, + scrollDirection: Axis.horizontal, + ), + ); + } + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: syncSelectedAssetsWhenPop, + child: Theme( + data: themeData, + child: AnnotatedRegion( + value: themeData.appBarTheme.systemOverlayStyle ?? + (themeData.effectiveBrightness.isDark + ? SystemUiOverlayStyle.light + : SystemUiOverlayStyle.dark), + child: Material( + color: themeData.colorScheme.onSecondary, + child: Stack( + children: [ + Positioned.fill(child: _pageViewBuilder(context)), + if (isWeChatMoment && hasVideo) ...[ + momentVideoBackButton(context), + PositionedDirectional( + end: 16, + bottom: context.bottomPadding + 16, + child: confirmButton(context), + ), + ] else ...[ + appBar(context), + if (selectedAssets != null || + (isWeChatMoment && hasVideo && isAppleOS)) + bottomDetailBuilder(context), + ], + ], + ), + ), + ), + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/delegates/sort_path_delegate.dart b/packages/flutter_wechat_assets_picker/lib/src/delegates/sort_path_delegate.dart new file mode 100644 index 00000000..ab6619e9 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/delegates/sort_path_delegate.dart @@ -0,0 +1,78 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020-05-30 13:08 +/// +import 'package:photo_manager/photo_manager.dart'; + +/// Delegate to sort asset path entities. +/// 用于资源路径排序的实现 +/// +/// Define [sort] to sort the asset path list. +/// Usually integrate with [List.sort]. +/// 通过定义 [sort] 方法对资源路径列表进行排序。通常使用 [List.sort]。 +abstract class SortPathDelegate { + const SortPathDelegate(); + + void sort(List list); + + static const SortPathDelegate common = + CommonSortPathDelegate(); +} + +/// Common sort path delegate. +/// 常用的路径排序实现 +/// +/// This delegate will bring "Recent" (All photos), "Camera", "Screenshot(?s)" +/// to the front of the paths list. +/// 该实现会把“最近”、“相机”、“截图”排到列表头部。 +class CommonSortPathDelegate extends SortPathDelegate { + const CommonSortPathDelegate(); + + @override + void sort(List list) { + if (list.any((AssetPathEntity e) => e.lastModified != null)) { + list.sort((AssetPathEntity path1, AssetPathEntity path2) { + if (path1.lastModified == null || path2.lastModified == null) { + return 0; + } + if (path2.lastModified!.isAfter(path1.lastModified!)) { + return 1; + } + return -1; + }); + } + list.sort((AssetPathEntity path1, AssetPathEntity path2) { + if (path1.isAll) { + return -1; + } + if (path2.isAll) { + return 1; + } + if (_isCamera(path1)) { + return -1; + } + if (_isCamera(path2)) { + return 1; + } + if (_isScreenShot(path1)) { + return -1; + } + if (_isScreenShot(path2)) { + return 1; + } + return 0; + }); + } + + int otherSort(AssetPathEntity path1, AssetPathEntity path2) { + return path1.name.compareTo(path2.name); + } + + bool _isCamera(AssetPathEntity entity) { + return entity.name == 'Camera'; + } + + bool _isScreenShot(AssetPathEntity entity) { + return entity.name == 'Screenshots' || entity.name == 'Screenshot'; + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/internal/methods.dart b/packages/flutter_wechat_assets_picker/lib/src/internal/methods.dart new file mode 100644 index 00000000..7feb248c --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/internal/methods.dart @@ -0,0 +1,15 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2022/2/6 14:57 +/// +import 'dart:developer'; + +import 'package:flutter/foundation.dart'; + +/// Log only when debugging. +/// 只在调试模式打印 +void realDebugPrint(dynamic message) { + if (!kReleaseMode) { + log('$message'); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/internal/singleton.dart b/packages/flutter_wechat_assets_picker/lib/src/internal/singleton.dart new file mode 100644 index 00000000..31fc6e47 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/internal/singleton.dart @@ -0,0 +1,24 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2022/2/6 14:54 +/// +/// Define an inner static singleton for picker libraries. +import 'package:flutter/widgets.dart'; + +import '../delegates/asset_picker_text_delegate.dart'; +import '../delegates/sort_path_delegate.dart'; + +class Singleton { + const Singleton._(); + + static GlobalKey pickerKey = GlobalKey(); + + static AssetPickerTextDelegate textDelegate = const AssetPickerTextDelegate(); + static SortPathDelegate sortPathDelegate = SortPathDelegate.common; + + /// The last scroll position where the picker scrolled. + /// + /// See also: + /// * [AssetPickerBuilderDelegate.keepScrollOffset] + static ScrollPosition? scrollPosition; +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/provider/asset_picker_provider.dart b/packages/flutter_wechat_assets_picker/lib/src/provider/asset_picker_provider.dart new file mode 100644 index 00000000..e3b4cb0d --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/provider/asset_picker_provider.dart @@ -0,0 +1,457 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/3/31 15:28 +/// +import 'dart:math' as math; +import 'dart:typed_data'; + +import 'package:flutter/material.dart'; +import 'package:photo_manager/photo_manager.dart'; + +import '../constants/constants.dart'; +import '../delegates/sort_path_delegate.dart'; +import '../internal/singleton.dart'; + +/// [ChangeNotifier] for assets picker. +/// +/// The provider maintain all methods that control assets and paths. +/// By extending it you can customize how you can get all assets or paths, +/// how to fetch the next page of assets, +/// and how to get the thumbnail data of a path. +abstract class AssetPickerProvider extends ChangeNotifier { + AssetPickerProvider({ + this.maxAssets = 9, + this.pageSize = 320, + this.pathThumbnailSize = defaultPathThumbnailSize, + List? selectedAssets, + }) { + if (selectedAssets?.isNotEmpty == true) { + _selectedAssets = List.from(selectedAssets!); + } + } + + /// Maximum count for asset selection. + /// 资源选择的最大数量 + final int maxAssets; + + /// Assets should be loaded per page. + /// 资源选择的最大数量 + /// + /// Use `null` to display all assets into a single grid. + final int pageSize; + + /// Thumbnail size for path selector. + /// 路径选择器中缩略图的大小 + final ThumbnailSize pathThumbnailSize; + + /// Clear all fields when dispose. + /// 销毁时重置所有内容 + @override + void dispose() { + _isAssetsEmpty = false; + _pathsList.clear(); + _currentPath = null; + _currentAssets.clear(); + _selectedAssets.clear(); + super.dispose(); + } + + /// Get paths. + /// 获取所有的资源路径 + Future getPaths(); + + /// Get the thumbnail from the first asset under the specific path entity. + /// 获取指定路径下的第一个资源的缩略图数据 + Future getThumbnailFromPath(Path path); + + /// Switch between paths. + /// 切换路径 + Future switchPath([Path? path]); + + /// Get assets under the specific path entity. + /// 获取指定路径下的资源 + Future getAssetsFromPath(int page, Path path); + + /// Load more assets. + /// 加载更多资源 + Future loadMoreAssets(); + + /// Whether there are assets on the devices. + /// 设备上是否有资源文件 + bool get isAssetsEmpty => _isAssetsEmpty; + bool _isAssetsEmpty = false; + + set isAssetsEmpty(bool value) { + if (value == _isAssetsEmpty) { + return; + } + _isAssetsEmpty = value; + notifyListeners(); + } + + /// Whether there are any assets can be displayed. + /// 是否有资源可供显示 + bool get hasAssetsToDisplay => _hasAssetsToDisplay; + bool _hasAssetsToDisplay = false; + + set hasAssetsToDisplay(bool value) { + if (value == _hasAssetsToDisplay) { + return; + } + _hasAssetsToDisplay = value; + notifyListeners(); + } + + /// Whether more assets are waiting for a load. + /// 是否还有更多资源可以加载 + bool get hasMoreToLoad => _currentAssets.length < _totalAssetsCount; + + /// The current page for assets list. + /// 当前加载的资源列表分页数 + int get currentAssetsListPage => + (math.max(1, _currentAssets.length) / pageSize).ceil(); + + /// Total count for assets. + /// 资源总数 + int get totalAssetsCount => _totalAssetsCount; + int _totalAssetsCount = 0; + + set totalAssetsCount(int value) { + if (value == _totalAssetsCount) { + return; + } + _totalAssetsCount = value; + notifyListeners(); + } + + /// Map for all path entity. + /// 所有包含资源的路径里列表 + /// + /// Using [Map] in order to save the thumbnail data + /// for the first asset under the path. + /// 使用 [Map] 来保存路径下第一个资源的缩略图数据 + Map get pathsList => _pathsList; + final Map _pathsList = {}; + + /// Set thumbnail [data] for the specific [path]. + /// 为指定的路径设置缩略图数据 + void setPathThumbnail(Path path, Uint8List? data) { + _pathsList[path] = data; + notifyListeners(); + } + + /// How many path has a valid thumb data. + /// 当前有多少目录已经正常载入了缩略图 + /// + /// This getter provides a "Should Rebuild" condition judgement to [Selector] + /// with the path entities widget. + /// 它为目录部件展示部分的 [Selector] 提供了是否重建的条件。 + int get validPathThumbnailsCount => + _pathsList.values.where((Uint8List? d) => d != null).length; + + /// The path which is currently using. + /// 正在查看的资源路径 + Path? get currentPath => _currentPath; + Path? _currentPath; + + set currentPath(Path? value) { + if (value == _currentPath) { + return; + } + _currentPath = value; + notifyListeners(); + } + + /// Assets under current path entity. + /// 正在查看的资源路径下的所有资源 + List get currentAssets => _currentAssets; + List _currentAssets = []; + + set currentAssets(List value) { + if (value == _currentAssets) { + return; + } + _currentAssets = List.from(value); + notifyListeners(); + } + + /// Selected assets. + /// 已选中的资源 + List get selectedAssets => _selectedAssets; + List _selectedAssets = []; + + set selectedAssets(List value) { + if (value == _selectedAssets) { + return; + } + _selectedAssets = List.from(value); + notifyListeners(); + } + + /// Descriptions for selected assets currently. + /// 当前已被选中的资源的描述 + /// + /// This getter provides a "Should Rebuild" condition judgement to [Selector] + /// with the preview widget's selective part. + /// 它为预览部件的选中部分的 [Selector] 提供了是否重建的条件。 + String get selectedDescriptions => _selectedAssets.fold( + [], + (List list, Asset a) => list..add(a.toString()), + ).join(); + + /// 选中资源是否为空 + bool get isSelectedNotEmpty => selectedAssets.isNotEmpty; + + /// 是否已经选择了最大数量的资源 + bool get selectedMaximumAssets => selectedAssets.length == maxAssets; + + /// Select asset. + /// 选中资源 + void selectAsset(Asset item) { + if (selectedAssets.length == maxAssets || selectedAssets.contains(item)) { + return; + } + final List _set = List.from(selectedAssets); + _set.add(item); + selectedAssets = _set; + } + + /// Un-select asset. + /// 取消选中资源 + void unSelectAsset(Asset item) { + final List _set = List.from(selectedAssets); + _set.remove(item); + selectedAssets = _set; + } +} + +class DefaultAssetPickerProvider + extends AssetPickerProvider { + DefaultAssetPickerProvider({ + List? selectedAssets, + this.requestType = RequestType.image, + this.sortPathDelegate = SortPathDelegate.common, + this.filterOptions, + int maxAssets = 9, + int pageSize = 80, + ThumbnailSize pathThumbnailSize = const ThumbnailSize.square(80), + }) : super( + maxAssets: maxAssets, + pageSize: pageSize, + pathThumbnailSize: pathThumbnailSize, + selectedAssets: selectedAssets, + ) { + Singleton.sortPathDelegate = sortPathDelegate ?? SortPathDelegate.common; + // Call [getAssetList] with route duration when constructing. + Future(() async { + await getPaths(); + await getAssetsFromCurrentPath(); + }); + } + + @visibleForTesting + DefaultAssetPickerProvider.forTest({ + List? selectedAssets, + this.requestType = RequestType.image, + this.sortPathDelegate = SortPathDelegate.common, + this.filterOptions, + int maxAssets = 9, + int pageSize = 80, + ThumbnailSize pathThumbnailSize = const ThumbnailSize.square(80), + }) : super( + maxAssets: maxAssets, + pageSize: pageSize, + pathThumbnailSize: pathThumbnailSize, + selectedAssets: selectedAssets, + ) { + Singleton.sortPathDelegate = sortPathDelegate ?? SortPathDelegate.common; + } + + /// Request assets type. + /// 请求的资源类型 + final RequestType requestType; + + /// Delegate to sort asset path entities. + /// 资源路径排序的实现 + final SortPathDelegate? sortPathDelegate; + + /// Filter options for the picker. + /// 选择器的筛选条件 + /// + /// Will be merged into the base configuration. + /// 将会与基础条件进行合并。 + final FilterOptionGroup? filterOptions; + + @override + set currentPath(AssetPathEntity? value) { + if (value == _currentPath) { + return; + } + _currentPath = value; + if (value != null && + _pathsList.keys.any((AssetPathEntity p) => p.id == value.id)) { + final AssetPathEntity previous = _pathsList.keys.singleWhere( + (AssetPathEntity p) => p.id == value.id, + ); + final int index = _pathsList.keys.toList().indexOf(previous); + final List> newEntries = + _pathsList.entries.toList() + ..removeAt(index) + ..insert(index, MapEntry(value, null)); + _pathsList + ..clear() + ..addEntries(newEntries); + getThumbnailFromPath(value); + } + notifyListeners(); + } + + @override + Future getPaths() async { + // Initial base options. + // Enable need title for audios and image to get proper display. + final FilterOptionGroup options = FilterOptionGroup( + imageOption: const FilterOption( + needTitle: true, + sizeConstraint: SizeConstraint(ignoreSize: true), + ), + audioOption: const FilterOption( + needTitle: true, + sizeConstraint: SizeConstraint(ignoreSize: true), + ), + containsPathModified: true, + ); + + // Merge user's filter option into base options if it's not null. + if (filterOptions != null) { + options.merge(filterOptions!); + } + + final List _list = await PhotoManager.getAssetPathList( + type: requestType, + filterOption: options, + ); + + // Sort path using sort path delegate. + Singleton.sortPathDelegate.sort(_list); + + for (final AssetPathEntity pathEntity in _list) { + // Use sync method to avoid unnecessary wait. + _pathsList[pathEntity] = null; + getThumbnailFromPath(pathEntity); + } + + // Set first path entity as current path entity. + if (_pathsList.isNotEmpty) { + _currentPath ??= pathsList.keys.elementAt(0); + } + } + + @override + Future getAssetsFromPath(int page, AssetPathEntity path) async { + final List list = await path.getAssetListPaged( + page: page, + size: pageSize, + ); + _currentAssets = List.of(list); + _hasAssetsToDisplay = currentAssets.isNotEmpty; + notifyListeners(); + } + + @override + Future loadMoreAssets() async { + final List list = await currentPath!.getAssetListPaged( + page: currentAssetsListPage, + size: pageSize, + ); + final List assets = List.of(list); + if (assets.isNotEmpty && currentAssets.contains(assets[0])) { + return; + } + final List tempList = []; + tempList.addAll(_currentAssets); + tempList.addAll(assets); + currentAssets = tempList; + } + + @override + Future switchPath([AssetPathEntity? path]) async { + assert( + () { + if (_currentPath == null && path == null) { + throw FlutterError.fromParts([ + ErrorSummary('Empty $AssetPathEntity was switched.'), + ErrorDescription( + 'Neither currentPathEntity nor pathEntity is non-null, ' + 'which makes this method useless.', + ), + ErrorHint( + 'You need to pass a non-null $AssetPathEntity ' + 'or call this method when currentPathEntity is not null.', + ), + ]); + } + return true; + }(), + ); + if (_currentPath == null && path == null) { + return; + } + path ??= _currentPath!; + _currentPath = path; + _totalAssetsCount = path.assetCount; + notifyListeners(); + await getAssetsFromPath(0, currentPath!); + } + + @override + Future getThumbnailFromPath( + AssetPathEntity path, + ) async { + assert( + () { + if (path.assetCount < 1) { + throw FlutterError.fromParts([ + ErrorSummary('No assets in the path ${path.id}.'), + ErrorDescription( + 'Thumbnail can only obtained when the path contains assets.', + ), + ]); + } + return true; + }(), + ); + if (requestType == RequestType.audio) { + return null; + } + final List assets = await path.getAssetListRange( + start: 0, + end: 1, + ); + if (assets.isEmpty) { + return null; + } + final AssetEntity asset = assets.single; + // Obtain the thumbnail only when the asset is image or video. + if (asset.type != AssetType.image && asset.type != AssetType.video) { + return null; + } + final Uint8List? assetData = await asset.thumbnailDataWithSize( + pathThumbnailSize, + ); + _pathsList[path] = assetData; + notifyListeners(); + return assetData; + } + + /// Get assets list from current path entity. + /// 从当前已选路径获取资源列表 + Future getAssetsFromCurrentPath() async { + if (_pathsList.isNotEmpty) { + totalAssetsCount = currentPath!.assetCount; + await getAssetsFromPath(0, currentPath!); + } else { + isAssetsEmpty = true; + } + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/provider/asset_picker_viewer_provider.dart b/packages/flutter_wechat_assets_picker/lib/src/provider/asset_picker_viewer_provider.dart new file mode 100644 index 00000000..714402f3 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/provider/asset_picker_viewer_provider.dart @@ -0,0 +1,48 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/3/31 15:37 +/// +import 'package:flutter/material.dart'; + +/// [ChangeNotifier] for assets picker viewer. +/// 资源选择查看器的 provider model. +class AssetPickerViewerProvider extends ChangeNotifier { + /// Copy selected assets for editing when constructing. + /// 构造时深拷贝已选择的资源集合,用于后续编辑。 + AssetPickerViewerProvider(List? assets) { + _currentlySelectedAssets = List.from(assets ?? []); + } + + /// Selected assets in the viewer. + /// 查看器中已选择的资源 + late List _currentlySelectedAssets; + + List get currentlySelectedAssets => _currentlySelectedAssets; + + set currentlySelectedAssets(List value) { + if (value == _currentlySelectedAssets) { + return; + } + _currentlySelectedAssets = value; + notifyListeners(); + } + + /// 选中资源是否为空 + bool get isSelectedNotEmpty => currentlySelectedAssets.isNotEmpty; + + /// Select asset. + /// 选中资源 + void selectAssetEntity(A entity) { + final List set = List.from(currentlySelectedAssets); + set.add(entity); + currentlySelectedAssets = List.from(set); + } + + /// Un-select asset. + /// 取消选中资源 + void unSelectAssetEntity(A entity) { + final List set = List.from(currentlySelectedAssets); + set.remove(entity); + currentlySelectedAssets = List.from(set); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker.dart new file mode 100644 index 00000000..1c085cc2 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker.dart @@ -0,0 +1,272 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/3/31 15:39 +/// +// ignore_for_file: deprecated_member_use +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:photo_manager/photo_manager.dart'; + +import '../constants/config.dart'; +import '../constants/constants.dart'; +import '../delegates/asset_picker_builder_delegate.dart'; +import '../internal/methods.dart'; +import '../internal/singleton.dart'; +import '../provider/asset_picker_provider.dart'; +import 'asset_picker_page_route.dart'; + +class AssetPicker extends StatefulWidget { + const AssetPicker({Key? key, required this.builder}) : super(key: key); + + final AssetPickerBuilderDelegate builder; + + static Future permissionCheck() async { + final PermissionState _ps = await PhotoManager.requestPermissionExtend(); + if (_ps != PermissionState.authorized && _ps != PermissionState.limited) { + throw StateError('Permission state error with $_ps.'); + } + return _ps; + } + + /// Static method to push with the navigator. + /// 跳转至选择器的静态方法 + static Future?> pickAssets( + BuildContext context, { + AssetPickerConfig pickerConfig = const AssetPickerConfig(), + bool useRootNavigator = true, + AssetPickerPageRouteBuilder>? pageRouteBuilder, + }) async { + final PermissionState _ps = await permissionCheck(); + final DefaultAssetPickerProvider provider = DefaultAssetPickerProvider( + maxAssets: pickerConfig.maxAssets, + pageSize: pickerConfig.pageSize, + pathThumbnailSize: pickerConfig.pathThumbnailSize, + selectedAssets: pickerConfig.selectedAssets, + requestType: pickerConfig.requestType, + sortPathDelegate: pickerConfig.sortPathDelegate, + filterOptions: pickerConfig.filterOptions, + ); + final Widget picker = AssetPicker( + key: Singleton.pickerKey, + builder: DefaultAssetPickerBuilderDelegate( + provider: provider, + initialPermission: _ps, + gridCount: pickerConfig.gridCount, + pickerTheme: pickerConfig.pickerTheme, + gridThumbnailSize: pickerConfig.gridThumbnailSize, + previewThumbnailSize: pickerConfig.previewThumbnailSize, + specialPickerType: pickerConfig.specialPickerType, + specialItemPosition: pickerConfig.specialItemPosition, + specialItemBuilder: pickerConfig.specialItemBuilder, + loadingIndicatorBuilder: pickerConfig.loadingIndicatorBuilder, + selectPredicate: pickerConfig.selectPredicate, + shouldRevertGrid: pickerConfig.shouldRevertGrid, + limitedPermissionOverlayPredicate: + pickerConfig.limitedPermissionOverlayPredicate, + pathNameBuilder: pickerConfig.pathNameBuilder, + textDelegate: pickerConfig.textDelegate, + themeColor: pickerConfig.themeColor, + locale: Localizations.maybeLocaleOf(context), + ), + ); + final List? result = await Navigator.of( + context, + rootNavigator: useRootNavigator, + ).push>( + pageRouteBuilder?.call(picker) ?? + AssetPickerPageRoute>(builder: (_) => picker), + ); + return result; + } + + /// Call the picker with provided [delegate]. + /// 通过指定的 [delegate] 调用选择器 + static Future?> pickAssetsWithDelegate>( + BuildContext context, { + required AssetPickerBuilderDelegate delegate, + bool useRootNavigator = true, + AssetPickerPageRouteBuilder>? pageRouteBuilder, + }) async { + await permissionCheck(); + + final Widget picker = AssetPicker( + key: Singleton.pickerKey, + builder: delegate, + ); + final List? result = await Navigator.of( + context, + rootNavigator: useRootNavigator, + ).push>( + pageRouteBuilder?.call(picker) ?? + AssetPickerPageRoute>(builder: (_) => picker), + ); + return result; + } + + /// Register observe callback with assets changes. + /// 注册资源(图库)变化的监听回调 + static void registerObserve([ValueChanged? callback]) { + if (callback == null) { + return; + } + try { + PhotoManager.addChangeCallback(callback); + PhotoManager.startChangeNotify(); + } catch (e) { + realDebugPrint('Error when registering assets callback: $e'); + } + } + + /// Unregister the observation callback with assets changes. + /// 取消注册资源(图库)变化的监听回调 + static void unregisterObserve([ValueChanged? callback]) { + if (callback == null) { + return; + } + try { + PhotoManager.removeChangeCallback(callback); + PhotoManager.stopChangeNotify(); + } catch (e) { + realDebugPrint('Error when unregistering assets callback: $e'); + } + } + + /// Build a dark theme according to the theme color. + /// 通过主题色构建一个默认的暗黑主题 + static ThemeData themeData(Color? themeColor, {bool light = false}) { + themeColor ??= defaultThemeColorWeChat; + if (light) { + return ThemeData.light().copyWith( + primaryColor: Colors.grey[50], + primaryColorLight: Colors.grey[50], + primaryColorDark: Colors.grey[50], + canvasColor: Colors.grey[100], + scaffoldBackgroundColor: Colors.grey[50], + bottomAppBarColor: Colors.grey[50], + cardColor: Colors.grey[50], + highlightColor: Colors.transparent, + toggleableActiveColor: themeColor, + textSelectionTheme: TextSelectionThemeData( + cursorColor: themeColor, + selectionColor: themeColor.withAlpha(100), + selectionHandleColor: themeColor, + ), + indicatorColor: themeColor, + appBarTheme: const AppBarTheme( + systemOverlayStyle: SystemUiOverlayStyle( + statusBarBrightness: Brightness.light, + statusBarIconBrightness: Brightness.dark, + ), + elevation: 0, + ), + buttonTheme: ButtonThemeData(buttonColor: themeColor), + colorScheme: ColorScheme( + primary: Colors.grey[50]!, + primaryVariant: Colors.grey[50]!, + secondary: themeColor, + secondaryVariant: themeColor, + background: Colors.grey[50]!, + surface: Colors.grey[50]!, + brightness: Brightness.light, + error: const Color(0xffcf6679), + onPrimary: Colors.white, + onSecondary: Colors.white, + onSurface: Colors.black, + onBackground: Colors.black, + onError: Colors.white, + ), + ); + } + return ThemeData.dark().copyWith( + primaryColor: Colors.grey[900], + primaryColorLight: Colors.grey[900], + primaryColorDark: Colors.grey[900], + canvasColor: Colors.grey[850], + scaffoldBackgroundColor: Colors.grey[900], + bottomAppBarColor: Colors.grey[900], + cardColor: Colors.grey[900], + highlightColor: Colors.transparent, + toggleableActiveColor: themeColor, + textSelectionTheme: TextSelectionThemeData( + cursorColor: themeColor, + selectionColor: themeColor.withAlpha(100), + selectionHandleColor: themeColor, + ), + indicatorColor: themeColor, + appBarTheme: const AppBarTheme( + systemOverlayStyle: SystemUiOverlayStyle( + statusBarBrightness: Brightness.dark, + statusBarIconBrightness: Brightness.light, + ), + elevation: 0, + ), + buttonTheme: ButtonThemeData(buttonColor: themeColor), + colorScheme: ColorScheme( + primary: Colors.grey[900]!, + primaryVariant: Colors.grey[900]!, + secondary: themeColor, + secondaryVariant: themeColor, + background: Colors.grey[900]!, + surface: Colors.grey[900]!, + brightness: Brightness.dark, + error: const Color(0xffcf6679), + onPrimary: Colors.black, + onSecondary: Colors.black, + onSurface: Colors.white, + onBackground: Colors.white, + onError: Colors.black, + ), + ); + } + + @override + AssetPickerState createState() => + AssetPickerState(); +} + +class AssetPickerState extends State> + with TickerProviderStateMixin, WidgetsBindingObserver { + @override + void initState() { + super.initState(); + WidgetsBinding.instance!.addObserver(this); + AssetPicker.registerObserve(_onLimitedAssetsUpdated); + widget.builder.initState(this); + } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + super.didChangeAppLifecycleState(state); + if (state == AppLifecycleState.resumed) { + PhotoManager.requestPermissionExtend().then( + (PermissionState ps) => widget.builder.permission.value = ps, + ); + } + } + + @override + void dispose() { + WidgetsBinding.instance!.removeObserver(this); + AssetPicker.unregisterObserve(_onLimitedAssetsUpdated); + widget.builder.dispose(); + super.dispose(); + } + + Future _onLimitedAssetsUpdated(MethodCall call) async { + await widget.builder.onAssetsChanged( + call, + (VoidCallback fn) { + fn(); + if (mounted) { + setState(() {}); + } + }, + ); + } + + @override + Widget build(BuildContext context) { + return widget.builder.build(context); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_app_bar.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_app_bar.dart new file mode 100644 index 00000000..7192489d --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_app_bar.dart @@ -0,0 +1,234 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2019-11-19 10:06 +/// +import 'dart:ui' as ui; + +import 'package:flutter/material.dart'; +import 'package:flutter/semantics.dart'; +import 'package:flutter/services.dart'; + +/// A custom app bar. +/// 自定义的顶栏 +class AssetPickerAppBar extends StatelessWidget implements PreferredSizeWidget { + const AssetPickerAppBar({ + Key? key, + this.automaticallyImplyLeading = true, + this.automaticallyImplyActions = true, + this.brightness, + this.title, + this.leading, + this.bottom, + this.centerTitle = true, + this.backgroundColor, + this.elevation = 0, + this.actions, + this.actionsPadding, + this.height, + this.blurRadius = 0, + this.iconTheme, + this.semanticsBuilder, + }) : super(key: key); + + /// Title widget. Typically a [Text] widget. + /// 标题部件 + final Widget? title; + + /// Leading widget. + /// 头部部件 + final Widget? leading; + + /// Action widgets. + /// 尾部操作部件 + final List? actions; + + /// This widget appears across the bottom of the app bar. + /// 显示在顶栏下方的 widget + final PreferredSizeWidget? bottom; + + /// Padding for actions. + /// 尾部操作部分的内边距 + final EdgeInsetsGeometry? actionsPadding; + + /// Whether it should imply leading with [BackButton] automatically. + /// 是否会自动检测并添加返回按钮至头部 + final bool automaticallyImplyLeading; + + /// Whether the [title] should be at the center of the [FixedAppBar]. + /// [title] 是否会在正中间 + final bool centerTitle; + + /// Whether it should imply actions size with [effectiveHeight]. + /// 是否会自动使用 [effectiveHeight] 进行占位 + final bool automaticallyImplyActions; + + /// Background color. + /// 背景颜色 + final Color? backgroundColor; + + /// Height of the app bar. + /// 高度 + final double? height; + + /// Elevation to [Material]. + /// 设置在 [Material] 的阴影 + final double elevation; + + /// The blur radius applies on the bar. + /// 顶栏的高斯模糊值 + final double blurRadius; + + /// Set the brightness for the status bar's layer. + /// 设置状态栏亮度层 + final Brightness? brightness; + + final IconThemeData? iconTheme; + + final Semantics Function(Widget appBar)? semanticsBuilder; + + bool canPop(BuildContext context) => + Navigator.of(context).canPop() && automaticallyImplyLeading; + + double get _barHeight => height ?? kToolbarHeight; + + double get effectiveHeight => + _barHeight + (bottom?.preferredSize.height ?? 0); + + @override + Size get preferredSize => Size.fromHeight(effectiveHeight); + + @override + Widget build(BuildContext context) { + Widget? _title = title; + if (centerTitle) { + _title = Center(child: _title); + } + Widget child = Container( + width: double.maxFinite, + height: _barHeight + MediaQuery.of(context).padding.top, + padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top), + child: Stack( + children: [ + if (canPop(context)) + PositionedDirectional( + top: 0.0, + bottom: 0.0, + child: leading ?? const BackButton(), + ), + if (_title != null) + PositionedDirectional( + top: 0.0, + bottom: 0.0, + start: canPop(context) ? _barHeight : 0.0, + end: automaticallyImplyActions ? _barHeight : 0.0, + child: Align( + alignment: centerTitle + ? Alignment.center + : AlignmentDirectional.centerStart, + child: DefaultTextStyle( + child: _title, + style: Theme.of(context) + .textTheme + .headline6! + .copyWith(fontSize: 23.0), + maxLines: 1, + softWrap: false, + overflow: TextOverflow.ellipsis, + ), + ), + ), + if (canPop(context) && (actions?.isEmpty ?? true)) + SizedBox(width: _barHeight) + else if (actions?.isNotEmpty ?? false) + PositionedDirectional( + top: 0.0, + end: 0.0, + height: _barHeight, + child: Padding( + padding: actionsPadding ?? EdgeInsets.zero, + child: Row(mainAxisSize: MainAxisSize.min, children: actions!), + ), + ), + ], + ), + ); + + // Allow custom blur radius using [ui.ImageFilter.blur]. + if (blurRadius > 0.0) { + child = ClipRect( + child: BackdropFilter( + filter: ui.ImageFilter.blur(sigmaX: blurRadius, sigmaY: blurRadius), + child: child, + ), + ); + } + + if (iconTheme != null) { + child = IconTheme.merge(data: iconTheme!, child: child); + } + + // Set [SystemUiOverlayStyle] according to the brightness. + final Brightness _effectiveBrightness = brightness ?? + Theme.of(context).appBarTheme.systemOverlayStyle?.statusBarBrightness ?? + Theme.of(context).brightness; + child = AnnotatedRegion( + value: _effectiveBrightness == Brightness.dark + ? SystemUiOverlayStyle.light + : SystemUiOverlayStyle.dark, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + child, + if (bottom != null) bottom!, + ], + ), + ); + + final Widget _result = Material( + // Wrap to ensure the child rendered correctly + color: Color.lerp( + backgroundColor ?? Theme.of(context).colorScheme.surface, + Colors.transparent, + blurRadius > 0.0 ? 0.1 : 0.0, + ), + elevation: elevation, + child: child, + ); + return semanticsBuilder?.call(_result) ?? + Semantics(sortKey: const OrdinalSortKey(0), child: _result); + } +} + +/// Wrapper for [AssetPickerAppBar]. Avoid elevation covered by body. +/// 顶栏封装。防止内容块层级高于顶栏导致遮挡阴影。 +class AssetPickerAppBarWrapper extends StatelessWidget { + const AssetPickerAppBarWrapper({ + Key? key, + required this.appBar, + required this.body, + }) : super(key: key); + + final AssetPickerAppBar appBar; + final Widget body; + + @override + Widget build(BuildContext context) { + return Material( + type: MaterialType.transparency, + child: Stack( + children: [ + Positioned.fill( + top: MediaQuery.of(context).padding.top + + appBar.preferredSize.height, + child: MediaQuery.removePadding( + context: context, + removeTop: true, + child: body, + ), + ), + Positioned.fill(bottom: null, child: appBar), + ], + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_page_route.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_page_route.dart new file mode 100644 index 00000000..76c94b2f --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_page_route.dart @@ -0,0 +1,77 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/4/13 18:04 +/// +import 'package:flutter/material.dart'; + +/// Build [AssetPickerPageRoute] with the given generic type. +/// 构建匹配泛型的 [AssetPickerPageRoute] +typedef AssetPickerPageRouteBuilder = AssetPickerPageRoute Function( + Widget picker, +); + +/// Built a slide page transition for the picker. +/// 为选择器构造一个上下进出的页面过渡动画 +class AssetPickerPageRoute extends PageRoute { + AssetPickerPageRoute({ + required this.builder, + this.transitionCurve = Curves.easeIn, + this.transitionDuration = const Duration(milliseconds: 250), + this.barrierColor, + this.barrierDismissible = false, + this.barrierLabel, + this.maintainState = true, + this.opaque = true, + this.canTransitionFromPredicate, + }); + + final WidgetBuilder builder; + + final Curve transitionCurve; + @override + final Duration transitionDuration; + + @override + final Color? barrierColor; + @override + final bool barrierDismissible; + @override + final String? barrierLabel; + @override + final bool opaque; + @override + final bool maintainState; + + final bool Function(TransitionRoute)? canTransitionFromPredicate; + + @override + bool canTransitionFrom(TransitionRoute previousRoute) => + canTransitionFromPredicate?.call(previousRoute) ?? false; + + @override + Widget buildPage( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + ) { + return builder(context); + } + + @override + Widget buildTransitions( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + Widget child, + ) { + return SlideTransition( + position: Tween( + begin: const Offset(0, 1), + end: Offset.zero, + ).animate( + CurvedAnimation(curve: transitionCurve, parent: animation), + ), + child: ClipRect(child: child), // Clip the overflowed part. + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_viewer.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_viewer.dart new file mode 100644 index 00000000..c7cbe0cd --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/asset_picker_viewer.dart @@ -0,0 +1,116 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/3/31 16:27 +/// +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:photo_manager/photo_manager.dart'; + +import '../constants/enums.dart'; +import '../constants/typedefs.dart'; +import '../delegates/asset_picker_viewer_builder_delegate.dart'; +import '../provider/asset_picker_provider.dart'; +import '../provider/asset_picker_viewer_provider.dart'; +import 'asset_picker.dart'; + +class AssetPickerViewer extends StatefulWidget { + const AssetPickerViewer({ + Key? key, + required this.builder, + }) : super(key: key); + + final AssetPickerViewerBuilderDelegate builder; + + @override + AssetPickerViewerState createState() => + AssetPickerViewerState(); + + /// Static method to push with the navigator. + /// 跳转至选择预览的静态方法 + static Future?> pushToViewer( + BuildContext context, { + int currentIndex = 0, + required List previewAssets, + required ThemeData themeData, + DefaultAssetPickerProvider? selectorProvider, + ThumbnailSize? previewThumbnailSize, + List? selectedAssets, + SpecialPickerType? specialPickerType, + int? maxAssets, + bool shouldReversePreview = false, + AssetSelectPredicate? selectPredicate, + }) async { + await AssetPicker.permissionCheck(); + final Widget viewer = AssetPickerViewer( + builder: DefaultAssetPickerViewerBuilderDelegate( + currentIndex: currentIndex, + previewAssets: previewAssets, + provider: selectedAssets != null + ? AssetPickerViewerProvider(selectedAssets) + : null, + themeData: themeData, + previewThumbnailSize: previewThumbnailSize, + specialPickerType: specialPickerType, + selectedAssets: selectedAssets, + selectorProvider: selectorProvider, + maxAssets: maxAssets, + shouldReversePreview: shouldReversePreview, + selectPredicate: selectPredicate, + ), + ); + final PageRouteBuilder> pageRoute = + PageRouteBuilder>( + pageBuilder: (_, __, ___) => viewer, + transitionsBuilder: (_, Animation animation, __, Widget child) { + return FadeTransition(opacity: animation, child: child); + }, + ); + final List? result = + await Navigator.of(context).push>(pageRoute); + return result; + } + + /// Call the viewer with provided delegate and provider. + /// 通过指定的 [delegate] 调用查看器 + static Future?> pushToViewerWithDelegate( + BuildContext context, { + required AssetPickerViewerBuilderDelegate delegate, + }) async { + await AssetPicker.permissionCheck(); + final Widget viewer = AssetPickerViewer(builder: delegate); + final PageRouteBuilder> pageRoute = PageRouteBuilder>( + pageBuilder: (_, __, ___) => viewer, + transitionsBuilder: (_, Animation animation, __, Widget child) { + return FadeTransition(opacity: animation, child: child); + }, + ); + final List? result = await Navigator.of(context).push>( + pageRoute, + ); + return result; + } +} + +class AssetPickerViewerState + extends State> + with TickerProviderStateMixin { + AssetPickerViewerBuilderDelegate get builder => widget.builder; + + @override + void initState() { + super.initState(); + builder.initStateAndTicker(this, this); + } + + @override + void dispose() { + builder.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return builder.build(context); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/builder/asset_entity_grid_item_builder.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/asset_entity_grid_item_builder.dart new file mode 100644 index 00000000..706293f3 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/asset_entity_grid_item_builder.dart @@ -0,0 +1,71 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/5/11 11:37 +/// +import 'package:extended_image/extended_image.dart'; +import 'package:flutter/material.dart'; +import 'package:photo_manager/photo_manager.dart'; + +import '../../internal/singleton.dart'; +import '../../widget/scale_text.dart'; + +class AssetEntityGridItemBuilder extends StatefulWidget { + const AssetEntityGridItemBuilder({ + Key? key, + required this.image, + required this.failedItemBuilder, + }) : super(key: key); + + final AssetEntityImageProvider image; + final WidgetBuilder failedItemBuilder; + + @override + AssetEntityGridItemWidgetState createState() => + AssetEntityGridItemWidgetState(); +} + +class AssetEntityGridItemWidgetState extends State { + Widget? child; + + Widget get newChild { + return ExtendedImage( + image: widget.image, + fit: BoxFit.cover, + loadStateChanged: (ExtendedImageState state) { + Widget loader = const SizedBox.shrink(); + switch (state.extendedImageLoadState) { + case LoadState.loading: + loader = const ColoredBox(color: Color(0x10ffffff)); + break; + case LoadState.completed: + loader = RepaintBoundary(child: state.completedWidget); + break; + case LoadState.failed: + loader = widget.failedItemBuilder(context); + break; + } + return loader; + }, + ); + } + + /// Item widgets when the thumbnail data load failed. + /// 资源缩略数据加载失败时使用的部件 + Widget failedItemBuilder(BuildContext context) { + return Center( + child: ScaleText( + Singleton.textDelegate.loadFailed, + textAlign: TextAlign.center, + style: const TextStyle(fontSize: 18.0), + semanticsLabel: Singleton.textDelegate.semanticsTextDelegate.loadFailed, + ), + ); + } + + @override + @mustCallSuper + Widget build(BuildContext context) { + child ??= newChild; + return child!; + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/builder/audio_page_builder.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/audio_page_builder.dart new file mode 100644 index 00000000..85e52f6b --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/audio_page_builder.dart @@ -0,0 +1,185 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/5/21 14:18 +/// +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:photo_manager/photo_manager.dart'; +import 'package:video_player/video_player.dart'; + +import '../../constants/extensions.dart'; +import '../../internal/methods.dart'; +import '../../internal/singleton.dart'; +import '../scale_text.dart'; + +class AudioPageBuilder extends StatefulWidget { + const AudioPageBuilder({Key? key, required this.asset}) : super(key: key); + + /// Asset currently displayed. + /// 展示的资源 + final AssetEntity asset; + + @override + State createState() => _AudioPageBuilderState(); +} + +class _AudioPageBuilderState extends State { + /// A [StreamController] for current position of the [_controller]. + /// 控制器当前的播放进度 + final StreamController durationStreamController = + StreamController.broadcast(); + + /// Create a [VideoPlayerController] instance for the page builder state. + /// 创建一个 [VideoPlayerController] 的实例 + late final VideoPlayerController _controller; + + /// Whether the audio loaded. + /// 音频是否已经加载完成 + bool isLoaded = false; + + /// Whether the player is playing. + /// 播放器是否在播放 + bool isPlaying = false; + + /// Whether the controller is playing. + /// 播放控制器是否在播放 + bool get isControllerPlaying => _controller.value.isPlaying; + + /// Duration of the audio. + /// 音频的时长 + late final Duration assetDuration; + + @override + void initState() { + super.initState(); + openAudioFile(); + } + + @override + void dispose() { + /// Stop and dispose player instance to stop playing + /// when dispose (e.g. page switched). + /// 状态销毁时停止并销毁实例(例如页面切换时) + _controller.pause(); + _controller.removeListener(audioPlayerListener); + _controller.dispose(); + super.dispose(); + } + + /// Load content url from the asset. + /// 通过content地址加载资源 + Future openAudioFile() async { + try { + final String? url = await widget.asset.getMediaUrl(); + assetDuration = Duration(seconds: widget.asset.duration); + _controller = VideoPlayerController.network(url!); + await _controller.initialize(); + _controller.addListener(audioPlayerListener); + } catch (e) { + realDebugPrint('Error when opening audio file: $e'); + } finally { + isLoaded = true; + if (mounted) { + setState(() {}); + } + } + } + + /// Listener for the player. + /// 播放器的监听方法 + void audioPlayerListener() { + if (isControllerPlaying != isPlaying) { + isPlaying = isControllerPlaying; + if (mounted) { + setState(() {}); + } + } + + /// Add the current position into the stream. + durationStreamController.add(_controller.value.position); + } + + void playButtonCallback() { + if (isPlaying) { + _controller.pause(); + } else { + _controller.play(); + } + } + + /// Title widget. + /// 标题组件 + Widget get titleWidget { + return ScaleText( + widget.asset.title ?? '', + style: const TextStyle(fontSize: 20, fontWeight: FontWeight.normal), + ); + } + + /// Button to control audio play/pause. + /// 控制音频播放或暂停的按钮 + Widget get audioControlButton { + return GestureDetector( + onTap: playButtonCallback, + child: Container( + margin: const EdgeInsets.all(20), + decoration: const BoxDecoration( + boxShadow: [BoxShadow(color: Colors.black12)], + shape: BoxShape.circle, + ), + child: Icon( + isPlaying ? Icons.pause_circle_outline : Icons.play_circle_filled, + size: 70, + ), + ), + ); + } + + /// Duration indicator for the audio. + /// 音频的时长指示器 + Widget get durationIndicator { + final String Function(Duration) durationBuilder = + Singleton.textDelegate.durationIndicatorBuilder; + final String Function(Duration) semanticsDurationBuilder = + Singleton.textDelegate.semanticsTextDelegate.durationIndicatorBuilder; + return StreamBuilder( + initialData: Duration.zero, + stream: durationStreamController.stream, + builder: (BuildContext _, AsyncSnapshot data) { + return ScaleText( + '${durationBuilder(data.data!)} / ${durationBuilder(assetDuration)}', + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.normal, + ), + semanticsLabel: '${semanticsDurationBuilder(data.data!)}' + ' / ' + '${semanticsDurationBuilder(assetDuration)}', + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Semantics( + onLongPress: playButtonCallback, + onLongPressHint: + Singleton.textDelegate.semanticsTextDelegate.sActionPlayHint, + child: ColoredBox( + color: context.themeData.backgroundColor, + child: isLoaded + ? Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + titleWidget, + audioControlButton, + durationIndicator, + ], + ) + : const SizedBox.shrink(), + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/builder/fade_image_builder.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/fade_image_builder.dart new file mode 100644 index 00000000..eb3981f9 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/fade_image_builder.dart @@ -0,0 +1,24 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/4/1 13:07 +/// +import 'package:flutter/material.dart'; + +class FadeImageBuilder extends StatelessWidget { + const FadeImageBuilder({Key? key, required this.child}) : super(key: key); + + final Widget child; + + @override + Widget build(BuildContext context) { + return TweenAnimationBuilder( + tween: Tween(begin: 0, end: 1), + duration: const Duration(milliseconds: 150), + builder: (_, double value, Widget? w) => Opacity( + opacity: value, + child: w, + ), + child: child, + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/builder/image_page_builder.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/image_page_builder.dart new file mode 100644 index 00000000..be402dc2 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/image_page_builder.dart @@ -0,0 +1,187 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/4/6 15:07 +/// +import 'dart:io'; + +import 'package:extended_image/extended_image.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:photo_manager/photo_manager.dart'; +import 'package:video_player/video_player.dart'; + +import '../../delegates/asset_picker_viewer_builder_delegate.dart'; +import 'locally_available_builder.dart'; + +class ImagePageBuilder extends StatefulWidget { + const ImagePageBuilder({ + Key? key, + required this.asset, + required this.delegate, + this.previewThumbnailSize, + }) : super(key: key); + + /// Asset currently displayed. + /// 展示的资源 + final AssetEntity asset; + + final AssetPickerViewerBuilderDelegate delegate; + + final ThumbnailSize? previewThumbnailSize; + + @override + _ImagePageBuilderState createState() => _ImagePageBuilderState(); +} + +class _ImagePageBuilderState extends State { + bool _isLocallyAvailable = false; + VideoPlayerController? _controller; + + bool get _isOriginal => widget.previewThumbnailSize == null; + + bool get _isLivePhoto => widget.asset.isLivePhoto; + + @override + void dispose() { + _controller?.dispose(); + super.dispose(); + } + + Future _initializeLivePhoto() async { + final File? file; + if (_isOriginal) { + file = await widget.asset.originFileWithSubtype; + } else { + file = await widget.asset.fileWithSubtype; + } + if (!mounted || file == null) { + return; + } + final VideoPlayerController c = VideoPlayerController.file( + file, + videoPlayerOptions: VideoPlayerOptions(mixWithOthers: true), + ); + setState(() => _controller = c); + c + ..initialize() + ..setVolume(0) + ..addListener(() { + if (mounted) { + setState(() {}); + } + }); + } + + void _play() { + if (_controller?.value.isInitialized == true) { + // Only impact when initialized. + HapticFeedback.lightImpact(); + _controller?.play(); + } + } + + Future _stop() async { + await _controller?.pause(); + await _controller?.seekTo(Duration.zero); + } + + Widget _imageBuilder(BuildContext context, AssetEntity asset) { + return ExtendedImage( + image: AssetEntityImageProvider( + asset, + isOriginal: _isOriginal, + thumbnailSize: widget.previewThumbnailSize, + ), + fit: BoxFit.contain, + mode: ExtendedImageMode.gesture, + onDoubleTap: widget.delegate.updateAnimation, + initGestureConfigHandler: (ExtendedImageState state) { + return GestureConfig( + initialScale: 1.0, + minScale: 1.0, + maxScale: 3.0, + animationMinScale: 0.6, + animationMaxScale: 4.0, + cacheGesture: false, + inPageView: true, + ); + }, + loadStateChanged: (ExtendedImageState state) { + return widget.delegate.previewWidgetLoadStateChanged( + context, + state, + hasLoaded: state.extendedImageLoadState == LoadState.completed, + ); + }, + ); + } + + Widget _buildLivePhotosWrapper(BuildContext context, AssetEntity asset) { + return Stack( + children: [ + if (_controller?.value.isInitialized == true) + Center( + child: AspectRatio( + aspectRatio: _controller!.value.aspectRatio, + child: ValueListenableBuilder( + valueListenable: _controller!, + builder: (_, VideoPlayerValue value, Widget? child) { + return Opacity( + opacity: value.isPlaying ? 1 : 0, + child: child, + ); + }, + child: VideoPlayer(_controller!), + ), + ), + ), + if (_controller == null) + Positioned.fill(child: _imageBuilder(context, asset)) + else + Positioned.fill( + child: ValueListenableBuilder( + valueListenable: _controller!, + builder: (_, VideoPlayerValue value, Widget? child) { + return Opacity( + opacity: value.isPlaying ? 0 : 1, + child: child, + ); + }, + child: _imageBuilder(context, asset), + ), + ), + ], + ); + } + + @override + Widget build(BuildContext context) { + return LocallyAvailableBuilder( + asset: widget.asset, + isOriginal: _isOriginal, + builder: (BuildContext context, AssetEntity asset) { + // Initialize the video controller when the asset is a Live photo + // and available for further use. + if (!_isLocallyAvailable && _isLivePhoto) { + _initializeLivePhoto(); + } + _isLocallyAvailable = true; + // TODO(Alex): Wait until `extended_image` support synchronized zooming. + return GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: widget.delegate.switchDisplayingDetail, + onLongPress: _isLivePhoto ? () => _play() : null, + onLongPressEnd: _isLivePhoto ? (_) => _stop() : null, + child: Builder( + builder: (BuildContext context) { + if (!_isLivePhoto) { + return _imageBuilder(context, asset); + } + return _buildLivePhotosWrapper(context, asset); + }, + ), + ); + }, + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/builder/locally_available_builder.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/locally_available_builder.dart new file mode 100644 index 00000000..b1c9e7e3 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/locally_available_builder.dart @@ -0,0 +1,122 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/7/23 16:07 +/// +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:photo_manager/photo_manager.dart'; + +import '../../constants/extensions.dart'; +import '../../internal/methods.dart'; +import '../scale_text.dart'; + +class LocallyAvailableBuilder extends StatefulWidget { + const LocallyAvailableBuilder({ + Key? key, + required this.asset, + required this.builder, + this.isOriginal = true, + }) : super(key: key); + + final AssetEntity asset; + final Widget Function(BuildContext context, AssetEntity asset) builder; + final bool isOriginal; + + @override + _LocallyAvailableBuilderState createState() => + _LocallyAvailableBuilderState(); +} + +class _LocallyAvailableBuilderState extends State { + bool _isLocallyAvailable = false; + PMProgressHandler? _progressHandler; + + @override + void initState() { + super.initState(); + _checkLocallyAvailable(); + } + + Future _checkLocallyAvailable() async { + _isLocallyAvailable = await widget.asset.isLocallyAvailable( + isOrigin: widget.isOriginal, + ); + if (!mounted) { + return; + } + setState(() {}); + if (!_isLocallyAvailable) { + _progressHandler = PMProgressHandler(); + Future(() async { + final File? file = await widget.asset.loadFile( + isOrigin: widget.isOriginal, + withSubtype: true, + progressHandler: _progressHandler, + ); + realDebugPrint('Produced file: $file.'); + if (file != null) { + _isLocallyAvailable = true; + if (mounted) { + setState(() {}); + } + } + }); + } + _progressHandler?.stream.listen((PMProgressState s) { + realDebugPrint('Handling progress: $s.'); + if (s.state == PMRequestState.success) { + _isLocallyAvailable = true; + if (mounted) { + setState(() {}); + } + } + }); + } + + Widget _indicator(BuildContext context) { + return StreamBuilder( + stream: _progressHandler!.stream, + initialData: const PMProgressState(0, PMRequestState.prepare), + builder: (BuildContext c, AsyncSnapshot s) { + if (s.hasData) { + final double progress = s.data!.progress; + final PMRequestState state = s.data!.state; + return Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + state == PMRequestState.failed + ? Icons.cloud_off + : Icons.cloud_queue, + color: context.themeData.iconTheme.color?.withOpacity(.4), + size: 28, + ), + if (state != PMRequestState.success && + state != PMRequestState.failed) + ScaleText( + ' iCloud ${(progress * 100).toInt()}%', + style: TextStyle( + color: context.themeData.textTheme.bodyText2?.color + ?.withOpacity(.4), + ), + ), + ], + ); + } + return const SizedBox.shrink(); + }, + ); + } + + @override + Widget build(BuildContext context) { + if (_isLocallyAvailable) { + return widget.builder(context, widget.asset); + } + if (_progressHandler != null) { + return Center(child: _indicator(context)); + } + return const SizedBox.shrink(); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/builder/value_listenable_builder_2.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/value_listenable_builder_2.dart new file mode 100644 index 00000000..77b5ad9b --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/value_listenable_builder_2.dart @@ -0,0 +1,34 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021-03-27 18:53 +/// +import 'package:flutter/material.dart'; + +class ValueListenableBuilder2 extends StatelessWidget { + const ValueListenableBuilder2({ + Key? key, + required this.firstNotifier, + required this.secondNotifier, + required this.builder, + this.child, + }) : super(key: key); + + final ValueNotifier firstNotifier; + final ValueNotifier secondNotifier; + final Widget Function(BuildContext, A, B, Widget?) builder; + final Widget? child; + + @override + Widget build(BuildContext context) { + return ValueListenableBuilder( + valueListenable: firstNotifier, + builder: (_, A first, __) => ValueListenableBuilder( + valueListenable: secondNotifier, + builder: (BuildContext context, B second, Widget? w) { + return builder(context, first, second, w); + }, + child: child, + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/builder/video_page_builder.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/video_page_builder.dart new file mode 100644 index 00000000..1d597d89 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/builder/video_page_builder.dart @@ -0,0 +1,227 @@ +/// +/// [Author] Alex (https://github.com/Alex525) +/// [Date] 2020/4/6 18:58 +/// +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:photo_manager/photo_manager.dart'; +import 'package:video_player/video_player.dart'; + +import '../../delegates/asset_picker_viewer_builder_delegate.dart'; +import '../../internal/methods.dart'; +import '../../internal/singleton.dart'; +import '../scale_text.dart'; +import 'locally_available_builder.dart'; + +class VideoPageBuilder extends StatefulWidget { + const VideoPageBuilder({ + Key? key, + required this.asset, + required this.delegate, + this.hasOnlyOneVideoAndMoment = false, + }) : super(key: key); + + /// Asset currently displayed. + /// 展示的资源 + final AssetEntity asset; + + final AssetPickerViewerBuilderDelegate delegate; + + /// Only previewing one video and with the [SpecialPickerType.wechatMoment]. + /// 是否处于 [SpecialPickerType.wechatMoment] 且只有一个视频 + final bool hasOnlyOneVideoAndMoment; + + @override + _VideoPageBuilderState createState() => _VideoPageBuilderState(); +} + +class _VideoPageBuilderState extends State { + /// Controller for the video player. + /// 视频播放的控制器 + VideoPlayerController get controller => _controller!; + VideoPlayerController? _controller; + + /// Whether the controller has initialized. + /// 控制器是否已初始化 + bool hasLoaded = false; + + /// Whether there's any error when initialize the video controller. + /// 初始化视频控制器时是否发生错误 + bool hasErrorWhenInitializing = false; + + /// Whether the player is playing. + /// 播放器是否在播放 + final ValueNotifier isPlaying = ValueNotifier(false); + + /// Whether the controller is playing. + /// 播放控制器是否在播放 + bool get isControllerPlaying => _controller?.value.isPlaying ?? false; + + bool _isInitializing = false; + bool _isLocallyAvailable = false; + + @override + void dispose() { + /// Remove listener from the controller and dispose it when widget dispose. + /// 部件销毁时移除控制器的监听并销毁控制器。 + _controller + ?..removeListener(videoPlayerListener) + ..pause() + ..dispose(); + super.dispose(); + } + + /// Get media url from the asset, then initialize the controller and add with a listener. + /// 从资源获取媒体url后初始化,并添加监听。 + Future initializeVideoPlayerController() async { + _isInitializing = true; + _isLocallyAvailable = true; + final String? url = await widget.asset.getMediaUrl(); + if (url == null) { + hasErrorWhenInitializing = true; + if (mounted) { + setState(() {}); + } + return; + } + if (Platform.isAndroid) { + _controller = VideoPlayerController.contentUri(Uri.parse(url)); + } else { + _controller = VideoPlayerController.network(url); + } + try { + await controller.initialize(); + hasLoaded = true; + controller + ..addListener(videoPlayerListener) + ..setLooping(widget.hasOnlyOneVideoAndMoment); + if (widget.hasOnlyOneVideoAndMoment) { + controller.play(); + } + } catch (e) { + realDebugPrint('Error when initialize video controller: $e'); + hasErrorWhenInitializing = true; + } finally { + if (mounted) { + setState(() {}); + } + } + } + + /// Listener for the video player. + /// 播放器的监听方法 + void videoPlayerListener() { + if (isControllerPlaying != isPlaying.value) { + isPlaying.value = isControllerPlaying; + } + } + + /// Callback for the play button. + /// 播放按钮的回调 + /// + /// Normally it only switches play state for the player. If the video reaches the end, + /// then click the button will make the video replay. + /// 一般来说按钮只切换播放暂停。当视频播放结束时,点击按钮将从头开始播放。 + Future playButtonCallback() async { + if (isPlaying.value) { + controller.pause(); + return; + } + if (widget.delegate.isDisplayingDetail.value) { + widget.delegate.switchDisplayingDetail(value: false); + } + if (controller.value.duration == controller.value.position) { + controller + ..seekTo(Duration.zero) + ..play(); + return; + } + controller.play(); + } + + Widget _contentBuilder(BuildContext context) { + return Stack( + fit: StackFit.expand, + children: [ + Positioned.fill( + child: Center( + child: AspectRatio( + aspectRatio: controller.value.aspectRatio, + child: VideoPlayer(controller), + ), + ), + ), + if (!widget.hasOnlyOneVideoAndMoment) + ValueListenableBuilder( + valueListenable: isPlaying, + builder: (_, bool value, __) => GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: value + ? playButtonCallback + : widget.delegate.switchDisplayingDetail, + child: Center( + child: AnimatedOpacity( + duration: kThemeAnimationDuration, + opacity: value ? 0.0 : 1.0, + child: GestureDetector( + onTap: playButtonCallback, + child: DecoratedBox( + decoration: const BoxDecoration( + boxShadow: [ + BoxShadow(color: Colors.black12) + ], + shape: BoxShape.circle, + ), + child: Icon( + value + ? Icons.pause_circle_outline + : Icons.play_circle_filled, + size: 70.0, + color: Colors.white, + ), + ), + ), + ), + ), + ), + ), + ], + ); + } + + @override + Widget build(BuildContext context) { + return LocallyAvailableBuilder( + asset: widget.asset, + builder: (BuildContext context, AssetEntity asset) { + if (hasErrorWhenInitializing) { + return Center( + child: ScaleText( + Singleton.textDelegate.loadFailed, + semanticsLabel: + Singleton.textDelegate.semanticsTextDelegate.loadFailed, + ), + ); + } + if (!_isLocallyAvailable && !_isInitializing) { + initializeVideoPlayerController(); + } + if (!hasLoaded) { + return const SizedBox.shrink(); + } + return Semantics( + onLongPress: playButtonCallback, + onLongPressHint: + Singleton.textDelegate.semanticsTextDelegate.sActionPlayHint, + child: GestureDetector( + onLongPress: MediaQuery.of(context).accessibleNavigation + ? playButtonCallback + : null, + child: _contentBuilder(context), + ), + ); + }, + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/gaps.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/gaps.dart new file mode 100644 index 00000000..6644e0d6 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/gaps.dart @@ -0,0 +1,75 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/10/27 17:14 +/// +import 'package:flutter/material.dart'; + +class Gap extends StatelessWidget { + const Gap.h( + double width, { + Key? key, + double? height, + this.color, + }) : _width = width, + _height = height, + super(key: key); + + const Gap.v( + double height, { + Key? key, + double? width, + this.color, + }) : _width = width, + _height = height, + super(key: key); + + final double? _width; + final double? _height; + final Color? color; + + @override + Widget build(BuildContext context) { + Widget _w = SizedBox(width: _width, height: _height); + if (color != null) { + _w = ColoredBox(color: color!, child: _w); + } + return _w; + } +} + +class SliverGap extends StatelessWidget { + const SliverGap.h( + double width, { + Key? key, + double? height, + this.color, + }) : _width = width, + _height = height, + super(key: key); + + const SliverGap.v( + double height, { + Key? key, + double? width, + this.color, + }) : _width = width, + _height = height, + super(key: key); + + final double? _width; + final double? _height; + final Color? color; + + @override + Widget build(BuildContext context) { + Widget child; + if (_width != null) { + child = Gap.h(_width!, height: _height, color: color); + } else if (_height != null) { + child = Gap.v(_height!, width: _width, color: color); + } else { + child = const SizedBox.shrink(); + } + return SliverToBoxAdapter(child: child); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/platform_progress_indicator.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/platform_progress_indicator.dart new file mode 100644 index 00000000..4f5713b6 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/platform_progress_indicator.dart @@ -0,0 +1,50 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/8/19 10:36 +/// +import 'dart:io'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +/// Progress Indicator. Used in loading data. +class PlatformProgressIndicator extends StatelessWidget { + const PlatformProgressIndicator({ + Key? key, + this.strokeWidth = 4.0, + this.radius = 10.0, + this.size = 48.0, + this.color, + this.value, + this.brightness, + }) : super(key: key); + + final double strokeWidth; + final double radius; + final double size; + final Color? color; + final double? value; + final Brightness? brightness; + + bool get isAppleOS => Platform.isIOS || Platform.isMacOS; + + @override + Widget build(BuildContext context) { + return SizedBox.fromSize( + size: Size.square(size), + child: isAppleOS + ? CupertinoTheme( + data: CupertinoThemeData( + brightness: brightness ?? Brightness.dark, + ), + child: CupertinoActivityIndicator(radius: radius), + ) + : CircularProgressIndicator( + strokeWidth: strokeWidth, + valueColor: + color != null ? AlwaysStoppedAnimation(color!) : null, + value: value, + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/src/widget/scale_text.dart b/packages/flutter_wechat_assets_picker/lib/src/widget/scale_text.dart new file mode 100644 index 00000000..2c8ec1c2 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/src/widget/scale_text.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; + +class ScaleText extends StatelessWidget { + const ScaleText( + this.text, { + this.style, + this.strutStyle, + this.maxLines, + this.overflow, + this.textAlign, + this.textDirection, + this.semanticsLabel, + this.minScaleFactor = 0.7, + this.maxScaleFactor = 1.3, + }); + + final String text; + final TextStyle? style; + final StrutStyle? strutStyle; + final int? maxLines; + final TextOverflow? overflow; + final TextAlign? textAlign; + final TextDirection? textDirection; + final String? semanticsLabel; + + final double minScaleFactor; + final double maxScaleFactor; + + @override + Widget build(BuildContext context) { + final MediaQueryData mqd = MediaQuery.of(context); + final double effectiveFactor = + mqd.textScaleFactor.clamp(minScaleFactor, maxScaleFactor).toDouble(); + return MediaQuery( + data: mqd.copyWith(textScaleFactor: effectiveFactor), + child: Text( + text, + style: style, + strutStyle: strutStyle, + maxLines: maxLines, + textAlign: textAlign, + overflow: overflow, + textDirection: textDirection, + semanticsLabel: semanticsLabel, + ), + ); + } +} diff --git a/packages/flutter_wechat_assets_picker/lib/wechat_assets_picker.dart b/packages/flutter_wechat_assets_picker/lib/wechat_assets_picker.dart new file mode 100644 index 00000000..4a4c8f28 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/lib/wechat_assets_picker.dart @@ -0,0 +1,19 @@ +library wechat_assets_picker; + +export 'package:photo_manager/photo_manager.dart'; + +export 'src/constants/config.dart'; +export 'src/constants/constants.dart'; +export 'src/constants/enums.dart'; +export 'src/constants/typedefs.dart'; +export 'src/delegates/asset_picker_builder_delegate.dart'; +export 'src/delegates/asset_picker_text_delegate.dart'; +export 'src/delegates/asset_picker_viewer_builder_delegate.dart'; +export 'src/delegates/sort_path_delegate.dart'; +export 'src/provider/asset_picker_provider.dart'; +export 'src/provider/asset_picker_viewer_provider.dart'; +export 'src/widget/asset_picker.dart'; +export 'src/widget/asset_picker_app_bar.dart'; +export 'src/widget/asset_picker_page_route.dart'; +export 'src/widget/asset_picker_viewer.dart'; +export 'src/widget/builder/asset_entity_grid_item_builder.dart'; diff --git a/packages/flutter_wechat_assets_picker/pubspec.yaml b/packages/flutter_wechat_assets_picker/pubspec.yaml new file mode 100644 index 00000000..9244d130 --- /dev/null +++ b/packages/flutter_wechat_assets_picker/pubspec.yaml @@ -0,0 +1,22 @@ +name: wechat_assets_picker +description: An audio/video/image picker in pure Dart which is the same with WeChat, support multi picking. +version: 7.1.2 +homepage: https://github.com/fluttercandies/flutter_wechat_assets_picker + +environment: + sdk: '>=2.15.0 <3.0.0' + flutter: '>=2.8.0' + +dependencies: + flutter: + sdk: flutter + + extended_image: ^8.0.1 + meta: ^1.7.0 + photo_manager: ^2.0.7 + provider: ^6.0.1 + video_player: ^2.2.14 + +dev_dependencies: + flutter_test: + sdk: flutter diff --git a/packages/flutter_wechat_assets_picker/test/delegates/builder_delegate_test.dart b/packages/flutter_wechat_assets_picker/test/delegates/builder_delegate_test.dart new file mode 100644 index 00000000..82c112fd --- /dev/null +++ b/packages/flutter_wechat_assets_picker/test/delegates/builder_delegate_test.dart @@ -0,0 +1,83 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2022/04/27 12:14 +/// +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; + +void main() { + PhotoManager.withPlugin(TestPhotoManagerPlugin()); + final Finder _defaultButtonFinder = find.byType(TextButton); + Widget _defaultApp({void Function(BuildContext)? onButtonPressed}) { + return MaterialApp( + home: Builder( + builder: (BuildContext context) => Scaffold( + body: Center( + child: TextButton( + onPressed: () => onButtonPressed?.call(context), + child: const Text('Press'), + ), + ), + ), + ), + ); + } + + testWidgets('PathNameBuilder called correctly', (WidgetTester tester) async { + final AssetPathEntity pathEntity = AssetPathEntity( + id: 'test', + name: 'pathEntity', + ); + final PathNameBuilder pathNameBuilder = + (AssetPathEntity p) => 'testPathNameBuilder'; + final AssetPickerConfig config = AssetPickerConfig( + pathNameBuilder: pathNameBuilder, + ); + final DefaultAssetPickerProvider provider = + DefaultAssetPickerProvider.forTest( + maxAssets: config.maxAssets, + pageSize: config.pageSize, + pathThumbnailSize: config.pathThumbnailSize, + selectedAssets: config.selectedAssets, + requestType: config.requestType, + sortPathDelegate: config.sortPathDelegate, + filterOptions: config.filterOptions, + ); + provider + ..currentAssets = [ + const AssetEntity(id: 'test', typeInt: 0, width: 0, height: 0), + ] + ..currentPath = pathEntity + ..hasAssetsToDisplay = true + ..setPathThumbnail(pathEntity, null); + final DefaultAssetPickerBuilderDelegate delegate = + DefaultAssetPickerBuilderDelegate( + provider: provider, + initialPermission: PermissionState.authorized, + pathNameBuilder: pathNameBuilder, + ); + await tester.pumpWidget( + _defaultApp( + onButtonPressed: (BuildContext context) { + AssetPicker.pickAssetsWithDelegate(context, delegate: delegate); + }, + ), + ); + await tester.tap(_defaultButtonFinder); + await tester.pumpAndSettle(); + await tester.tap(find.byIcon(Icons.keyboard_arrow_down)); + await tester.pumpAndSettle(); + expect(find.text('testPathNameBuilder'), findsNWidgets(2)); + }); +} + +class TestPhotoManagerPlugin extends PhotoManagerPlugin { + @override + Future requestPermissionExtend( + PermisstionRequestOption requestOption, + ) { + return SynchronousFuture(PermissionState.authorized); + } +} diff --git a/packages/flutter_wechat_camera_picker/.all-contributorsrc b/packages/flutter_wechat_camera_picker/.all-contributorsrc new file mode 100644 index 00000000..dfe849f3 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.all-contributorsrc @@ -0,0 +1,99 @@ +{ + "files": [ + "README.md" + ], + "imageSize": 50, + "badgeTemplate": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg?style=flat-square&logo=github)](#contributors)", + "commit": false, + "contributors": [ + { + "login": "AlexV525", + "name": "Alex Li", + "avatar_url": "https://avatars1.githubusercontent.com/u/15884415?v=4", + "profile": "https://blog.alexv525.com", + "contributions": [ + "code", + "design", + "doc", + "example", + "ideas", + "maintenance", + "question", + "review" + ] + }, + { + "login": "CaiJingLong", + "name": "Caijinglong", + "avatar_url": "https://avatars0.githubusercontent.com/u/14145407?v=4", + "profile": "https://www.kikt.top", + "contributions": [ + "example", + "ideas" + ] + }, + { + "login": "LaelLuo", + "name": "Lael", + "avatar_url": "https://avatars3.githubusercontent.com/u/26056971?v=4", + "profile": "https://github.com/LaelLuo", + "contributions": [ + "doc" + ] + }, + { + "login": "mjl0602", + "name": "mjl0602", + "avatar_url": "https://avatars1.githubusercontent.com/u/32868496?v=4", + "profile": "https://github.com/mjl0602", + "contributions": [ + "code", + "ideas" + ] + }, + { + "login": "siyukok", + "name": "AliasWang", + "avatar_url": "https://avatars0.githubusercontent.com/u/21030561?v=4", + "profile": "https://github.com/siyukok", + "contributions": [ + "code", + "ideas" + ] + }, + { + "login": "leftcoding", + "name": "leftcoding", + "avatar_url": "https://avatars.githubusercontent.com/u/7122926?v=4", + "profile": "https://github.com/leftcoding", + "contributions": [ + "bug" + ] + }, + { + "login": "TheVinhLuong", + "name": "Luong The Vinh", + "avatar_url": "https://avatars.githubusercontent.com/u/20371879?v=4", + "profile": "https://github.com/TheVinhLuong", + "contributions": [ + "code" + ] + }, + { + "login": "luomo-pro", + "name": "luomo-pro", + "avatar_url": "https://avatars.githubusercontent.com/u/41097395?v=4", + "profile": "https://github.com/luomo-pro", + "contributions": [ + "a11y", + "bug" + ] + } + ], + "contributorsPerLine": 7, + "projectName": "flutter_wechat_camera_picker", + "projectOwner": "fluttercandies", + "repoType": "github", + "repoHost": "https://github.com", + "skipCi": true +} diff --git a/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/bug-report--bug---.md b/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/bug-report--bug---.md new file mode 100644 index 00000000..4976f9a7 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/bug-report--bug---.md @@ -0,0 +1,45 @@ +--- +name: Bug report (BUG模板) +about: Create a bug report helping us fix it. (创建一个 BUG 报告以帮助我们进行修复) +title: "[BUG] Error with something" +labels: await investigate, bug + +--- + +**Describe the bug** + + +**How to reproduce** + + +Steps to reproduce the behavior: + + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. Error occurred. + +**Expected behavior** + + +**Screenshots (If contains)** + + +**Version information** + +- Device: [e.g. iPhone X] +- OS: [e.g. iOS 14.7.1] +- Package Version: [e.g. 2.4.1] +- Flutter Version: [e.g. v2.5.0] + +**Additional context** + diff --git a/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/config.yml b/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/feature-request-------.md b/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/feature-request-------.md new file mode 100644 index 00000000..1af355e5 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.github/ISSUE_TEMPLATE/feature-request-------.md @@ -0,0 +1,30 @@ +--- +name: Feature request (功能请求) +about: Request a new feature that the package didn't include. (请求一个依赖并未包含的功能) +title: "[Feature] Request a feature with something" +labels: feature, await investigate + +--- + +**Version information** + - Device: *e.g. iPhone X* + - OS: *e.g. iOS 14.7.1* + - Package Version: *e.g. v2.4.1* + - Flutter Version: *e.g. v2.5.0* + +**Is your feature request related to a problem?** + + +**Describe the solution you'd like** + + +**Describe alternatives you've considered** + + +**Additional context** + diff --git a/packages/flutter_wechat_camera_picker/.github/workflows/publish.yml b/packages/flutter_wechat_camera_picker/.github/workflows/publish.yml new file mode 100644 index 00000000..379474e4 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.github/workflows/publish.yml @@ -0,0 +1,20 @@ +name: Publish + +on: + release: + types: [published] + workflow_dispatch: + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Publish + uses: sakebook/actions-flutter-pub-publisher@v1.3.1 + with: + credential: ${{ secrets.CREDENTIAL_JSON }} + flutter_package: true + skip_test: true + dry_run: false diff --git a/packages/flutter_wechat_camera_picker/.github/workflows/publishable.yml b/packages/flutter_wechat_camera_picker/.github/workflows/publishable.yml new file mode 100644 index 00000000..f04eea90 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.github/workflows/publishable.yml @@ -0,0 +1,27 @@ +name: Publishable + +on: + push: + branches: + - master + pull_request: + +jobs: + dry_run: + name: Dry run publish on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: '11.x' + - uses: subosito/flutter-action@v1 + with: + channel: 'stable' + - run: dart --version + - run: flutter --version + - run: flutter pub get + - run: flutter pub publish --dry-run diff --git a/packages/flutter_wechat_camera_picker/.github/workflows/runnable.yml b/packages/flutter_wechat_camera_picker/.github/workflows/runnable.yml new file mode 100644 index 00000000..5dacff49 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.github/workflows/runnable.yml @@ -0,0 +1,68 @@ +name: Runnable (stable) + +on: + push: + branches: + - master + pull_request: + +jobs: + analyze: + name: Analyze on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: '11.x' + - uses: subosito/flutter-action@v1 + with: + channel: 'stable' + - run: dart --version + - run: flutter --version + - run: flutter pub get + - run: flutter analyze lib example/lib + + test_iOS: + needs: analyze + name: Test iOS on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: '11.x' + - uses: subosito/flutter-action@v1 + with: + channel: 'stable' + - run: dart --version + - run: flutter --version + - run: flutter pub get + - run: cd example; flutter build ios --no-codesign + + test_android: + needs: analyze + name: Test Android on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: '11.x' + - uses: subosito/flutter-action@v1 + with: + channel: 'stable' + - run: dart --version + - run: flutter --version + - run: flutter pub get + - run: sudo echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager "ndk;20.0.5594570" + - run: cd example; flutter build apk --debug diff --git a/packages/flutter_wechat_camera_picker/.gitignore b/packages/flutter_wechat_camera_picker/.gitignore new file mode 100644 index 00000000..44b5f1eb --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.gitignore @@ -0,0 +1,76 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +build/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +*.lock \ No newline at end of file diff --git a/packages/flutter_wechat_camera_picker/.metadata b/packages/flutter_wechat_camera_picker/.metadata new file mode 100644 index 00000000..eeda8507 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 8af6b2f038c1172e61d418869363a28dffec3cb4 + channel: stable + +project_type: package diff --git a/packages/flutter_wechat_camera_picker/CHANGELOG.md b/packages/flutter_wechat_camera_picker/CHANGELOG.md new file mode 100644 index 00000000..3e410d6f --- /dev/null +++ b/packages/flutter_wechat_camera_picker/CHANGELOG.md @@ -0,0 +1,184 @@ +# Changelog + +## 3.0.1 + +### Fixes + +- Remove redundant dispose with the controller. + +## 3.0.0 + +### New features + +- Add full semantics support. (#72) +- Add `lockCaptureOrientation`, allowing users to determine lock to the specific orientation during captures. (#68) +- Export `CameraPickerPageRoute`. +- Abstract `CamearPickerConfig`, which moved all arguments from `pickFromCamera` to `pickerConfig`. + +### Improvements + +- Improve camera initializes by adding a lock. +- Tweak asynchronous methods call during initializations. +- Make camera controllers available as soon as possible. + +### Fixes + +- Fix scaling issues with turns and orientations. +- Fix lint issues on Flutter 2.10. + +## 2.6.5 + +- Remove duplicate future requests when saving an entity. + +## 2.6.4 + +- Drop initialize when the controller has been already initialized. (#70) + +## 2.6.3 + +- Fix set exposure point crashes when switching between cameras. (#66) + +## 2.6.2 + +- Bind circular progress color with the theme. + +## 2.6.1 + +- Allow saving entities when the permission is limited on iOS. + +## 2.6.0 + +- Add `preferredLensDirection`, allowing users to choose which lens direction is preferred when first using the camera. +- Add `enableTapRecording`, allowing users to determine whether to allow the record can start with a single tap. +- Add `shouldAutoPreviewVideo`, allowing users to determine whether the video should be played instantly in the preview. + +## 2.5.2 + +- Request the permission state again when saving. +- Provide better experiences when video records need to be prepared. + +## 2.5.1 + +- Fix invalid widgets binding observer caller. + +## 2.5.0 + +- Add `onError` to handle errors during the picking process. +- `SaveEntityCallback` -> `EntitySaveCallback`. +- Improve folder structure of the plugin. + +## 2.4.2 + +- Flip the preview if the user is using a front camera. + +## 2.4.1 + +- Handle save exceptions more gracefully. +- Dispose the controller when previewing for better performance. + +## 2.4.0 + +- Bump `camera` to `0.9.x` . +- Remove `shouldLockPortrait` in picking. + +## 2.3.1 + +- Expose `enablePullToZoomInRecord` for the `pickFromCamera` method. +- Trigger shooting preparation only when start recording on iOS. + +## 2.3.0 + +- Expose `useRootNavigator` while picking. +- Initialize a new controller if failed to stop recording. (#39) +- Throw or rethrow exceptions that used to be caught. (#41) +- Update the back icon with preview. +- Enhance video capture on iOS with preparation. + +## 2.2.0 + +- Add `EntitySaveCallback` for the custom save method. + +## 2.1.2 + +- Improve the UI of the exposure point widget when manually focus. + +## 2.1.1 + +- Use basename when saving entities. + +## 2.1.0 + +- Add `shouldLockPortrait` to fit orientation for the device. +- Fix exposure offset issue when resetting the exposure point after adjusting the exposure offset manually. + +## 2.0.0 + +### New Features + +- Add `enableSetExposure`, allowing users to update the exposure from the point tapped on the screen. +- Add `enableExposureControlOnPoint`, allowing users to control the exposure offset with an offset slide from the exposure point. +- Add `enablePinchToZoom`, allowing users to zoom by pinching the screen. +- Add `enablePullToZoomInRecord`, allowing users to zoom by pulling up when recording video. +- Add `foregroundBuilder`, allowing users to build customized widgets beyond the camera preview. +- Add `shouldDeletePreviewFile`, allowing users to choose whether the captured file should be deleted. +- Sync `imageFormatGroup` from the `camera` plugin. + +### Breaking Changes + +- Migrate to non-nullable by default. +- `isAllowRecording` -> `enableRecording` +- `isOnlyAllowRecording` -> `onlyAllowRecording` + +### Fixes + +- All fixes from the `camera` plugin. + +## 1.3.1 + +- Constraint dependencies version. #22 + +## 1.3.0 + +- Add `enableAudio` parameter to control whether the package will require audio integration. #17 + +## 1.2.3 + +- Fix `maximumRecordingDuration` not passed in static method. #14 + +## 1.2.2 + +- Raise dependencies versions. + +## 1.2.1 + +- Add `cameraQuarterTurns`. + +## 1.2.0 + +- Expose resolution preset control. + +## 1.1.2 + +- Remove common exports. + +## 1.1.1 + +- Documents update. + +## 1.1.0+1 + +- Link confirm button's text with delegate. Fix #6. + +## 1.1.0 + +- Add `isOnlyAllowRecording` . Resolves #4. +- Make camera switching available. Resolves #5. + +## 1.0.0+1 + +- Fix potential non exist directory access. + +## 1.0.0 + +- Support taking pictures and videos. +- Support video recording duration limitation. diff --git a/packages/flutter_wechat_camera_picker/LICENSE b/packages/flutter_wechat_camera_picker/LICENSE new file mode 100644 index 00000000..e2509f39 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [2020] [AlexV525] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/packages/flutter_wechat_camera_picker/README-ZH.md b/packages/flutter_wechat_camera_picker/README-ZH.md new file mode 100644 index 00000000..dd126ca1 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/README-ZH.md @@ -0,0 +1,129 @@ +# Flutter WeChat Camera Picker + +[![pub package](https://img.shields.io/pub/v/wechat_camera_picker?logo=dart&label=%E7%A8%B3%E5%AE%9A%E7%89%88&style=flat-square)](https://pub.flutter-io.cn/packages/wechat_camera_picker) +[![pub package](https://img.shields.io/pub/v/wechat_camera_picker?color=42a012&include_prereleases&label=%E5%BC%80%E5%8F%91%E7%89%88&logo=dart&style=flat-square)](https://pub.flutter-io.cn/packages/wechat_camera_picker) +[![GitHub stars](https://img.shields.io/github/stars/fluttercandies/flutter_wechat_camera_picker?logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_camera_picker/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/fluttercandies/flutter_wechat_camera_picker?logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_camera_picker/network) +[![Build status](https://img.shields.io/github/workflow/status/fluttercandies/flutter_wechat_camera_picker/Build%20test?label=%E7%8A%B6%E6%80%81&logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_camera_picker/actions?query=workflow%3A%22Build+test%22) +[![CodeFactor](https://img.shields.io/codefactor/grade/github/fluttercandies/flutter_wechat_camera_picker?logo=codefactor&label=%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F&logoColor=%23ffffff&style=flat-square)](https://www.codefactor.io/repository/github/fluttercandies/flutter_wechat_camera_picker) +[![GitHub license](https://img.shields.io/github/license/fluttercandies/flutter_wechat_camera_picker?style=flat-square&label=%E5%8D%8F%E8%AE%AE)](https://github.com/fluttercandies/flutter_wechat_camera_picker/blob/master/LICENSE) +FlutterCandies + +Language: [English](README.md) | 中文简体 + +[**仿微信资源选择器**](https://pub.flutter-io.cn/packages/wechat_assets_picker) 的扩展。 +基于 `camera` 实现相机相关功能,`photo_manager` 实现资源相关内容。 + +## 目录 🗂 + +- [Flutter WeChat Camera Picker](#flutter-wechat-camera-picker) + - [目录 🗂](#目录-) + - [特性 ✨](#特性-) + - [截图 📸](#截图-) + - [准备工作 🍭](#准备工作-) + - [使用方法 📖](#使用方法-) + - [简单的使用方法](#简单的使用方法) + - [使用配置](#使用配置) + - [常见问题 💭](#常见问题-) + - [iOS 上的预览在旋转时行为诡异](#iOS-上的预览在旋转时行为诡异) + +## 特性 ✨ + +- [x] 🔐 支持健全的空安全 +- [x] 💚 99% 的微信风格 +- [x] 📷 支持拍照 + - [x] ☀️ 支持设置曝光参数 + - [x] 🔍️ 支持捏合缩放 +- [x] 🎥 支持录像 + - [x] ⏱ 支持限制录像时间 + - [x] 🔍 支持录像时缩放 +- [x] 🖾 支持自定义前景 widget 构建 + +## 截图 📸 + +| ![](https://tva1.sinaimg.cn/large/007S8ZIlgy1ggtt6yrdqej30u01t017w.jpg) | ![](https://tva1.sinaimg.cn/large/007S8ZIlgy1ggtt6yh3x4j30u01t0wuo.jpg) | +|-------------------------------------------------------------------------|-------------------------------------------------------------------------| +| ![](https://tva1.sinaimg.cn/large/007S8ZIlgy1ggtt6z1h7xj30u01t01kx.jpg) | ![](https://tva1.sinaimg.cn/large/007S8ZIlgy1ggtt6zarvhj30u01t0x5f.jpg) | + +## 准备工作 🍭 + +### 版本限制 + +Flutter SDK:`>=2.0.0` 。 + +### 配置 + +- [wechat_assets_picker#准备工作](https://github.com/fluttercandies/flutter_wechat_assets_picker/blob/master/README-ZH.md#preparing-for-use-) +- [camera#installation](https://pub.flutter-io.cn/packages/camera#installation) + +## 使用方法 📖 + +### 简单的使用方法 + +```dart +final AssetEntity? entity = await CameraPicker.pickFromCamera(context); +``` + +### 使用配置 + +你可以使用 `CameraPickerConfig` 来调整选择时的行为。 + +```dart +final AssetEntity? entity = await CameraPicker.pickFromCamera( + context, + pickerConfig: const CameraPickerConfig(), +); +``` + +`CameraPickerConfig` 的成员说明: + +### 简单的使用方法 + +```dart +final AssetEntity? entity = await CameraPicker.pickFromCamera(context); +``` + +你可以使用 `CameraPickerConfig` 来调整选择时的行为。 + +```dart +final AssetEntity? entity = await CameraPicker.pickFromCamera( + context, + pickerConfig: const CameraPickerConfig(), +); +``` + +`CameraPickerConfig` 的成员说明: + +| 参数名 | 类型 | 描述 | 默认值 | +|------------------------------|-----------------------------|----------------------------------------------------|----------------------------------------| +| enableRecording | `bool` | 选择器是否可以录像 | `false` | +| onlyEnableRecording | `bool` | 选择器是否仅可以录像。只在 `enableRecording` 为 `true` 时有效。 | `false` | +| enableTapRecording | `bool` | 选择器是否可以单击录像。只在 `onlyEnableRecording` 为 `true` 时生效。 | `false` | +| enableAudio | `bool` | 选择器是否需要录制音频。只在 `enableRecording` 为 `true` 时有效。 | `true` | +| enableSetExposure | `bool` | 用户是否可以在界面上通过点击设定曝光点 | `true` | +| enableExposureControlOnPoint | `bool` | 用户是否可以根据已经设置的曝光点调节曝光度 | `true` | +| enablePinchToZoom | `bool` | 用户是否可以在界面上双指缩放相机对焦 | `true` | +| enablePullToZoomInRecord | `bool` | 用户是否可以在录制视频时上拉缩放 | `true` | +| shouldDeletePreviewFile | `bool` | 返回页面时是否删除预览文件 | `false` | +| shouldAutoPreviewVideo | `bool` | 在预览时是否直接播放视频 | `false` | +| maximumRecordingDuration | `Duration` | 录制视频最长时长 | `const Duration(seconds: 15)` | +| theme | `ThemeData?` | 选择器的主题 | `CameraPicker.themeData(C.themeColor)` | +| textDelegate | `CameraPickerTextDelegate?` | 控制部件中的文字实现 | `DefaultCameraPickerTextDelegate` | +| resolutionPreset | `ResolutionPreset` | 相机的分辨率预设 | `ResolutionPreset.max` | +| cameraQuarterTurns | `int` | 摄像机视图顺时针旋转次数,每次 90 度 | `0` | +| imageFormatGroup | `ImageFormatGroup` | 输出图像的格式描述 | `ImageFormatGroup.unknown` | +| preferredLensDirection | `CameraLensDirection` | 首次使用相机时首选的镜头方向 | `CameraLensDirection.back` | +| lockCaptureOrientation | `DeviceOrientation?` | 摄像机在拍摄时锁定的旋转角度 | null | +| foregroundBuilder | `ForegroundBuilder?` | 覆盖在相机预览上方的前景构建 | null | +| previewTransformBuilder | `PreviewTransformBuilder?` | 对相机预览做变换的构建 | null | +| onEntitySaving | `EntitySaveCallback?` | 在查看器中保存图片时的回调 | null | +| onError | `CameraErrorHandler?` | 拍摄照片过程中的自定义错误处理 | null | + +## 常见问题 💭 + +### iOS 上的预览在旋转时行为诡异 + +目前,iOS 上的预览画面在旋转时并未正确地同步, +你可以在这个 issue 里了解更多相关的信息: +https://github.com/flutter/flutter/issues/89216 。 +除此之外的问题,你可以提交 issue 进行提问。 diff --git a/packages/flutter_wechat_camera_picker/README.md b/packages/flutter_wechat_camera_picker/README.md new file mode 100644 index 00000000..f6a7bdb3 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/README.md @@ -0,0 +1,141 @@ +# Flutter WeChat Camera Picker + +[![pub package](https://img.shields.io/pub/v/wechat_camera_picker?logo=dart&label=stable&style=flat-square)](https://pub.dev/packages/wechat_camera_picker) +[![pub package](https://img.shields.io/pub/v/wechat_camera_picker?color=42a012&include_prereleases&label=dev&logo=dart&style=flat-square)](https://pub.dev/packages/wechat_camera_picker) +[![GitHub stars](https://img.shields.io/github/stars/fluttercandies/flutter_wechat_camera_picker?logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_camera_picker/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/fluttercandies/flutter_wechat_camera_picker?logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_camera_picker/network) +[![Build status](https://img.shields.io/github/workflow/status/fluttercandies/flutter_wechat_camera_picker/Build%20test?label=CI&logo=github&style=flat-square)](https://github.com/fluttercandies/flutter_wechat_camera_picker/actions?query=workflow%3A%22Build+test%22) +[![CodeFactor](https://img.shields.io/codefactor/grade/github/fluttercandies/flutter_wechat_camera_picker?logo=codefactor&logoColor=%23ffffff&style=flat-square)](https://www.codefactor.io/repository/github/fluttercandies/flutter_wechat_camera_picker) +[![GitHub license](https://img.shields.io/github/license/fluttercandies/flutter_wechat_camera_picker?style=flat-square)](https://github.com/fluttercandies/flutter_wechat_camera_picker/blob/master/LICENSE) +FlutterCandies + +Language: English | [中文简体](README-ZH.md) + +A **camera picker** which is an extension for +[wechat_assets_picker](https://pub.dev/packages/wechat_assets_picker). +Based on `camera` for camera functions and `photo_manager` for asset implementation. + +## Category 🗂 + +- [Flutter WeChat Camera Picker](#flutter-wechat-camera-picker) + - [Category 🗂](#category-) + - [Features ✨](#features-) + - [Screenshots 📸](#screenshots-) + - [Preparing for use 🍭](#preparing-for-use-) + - [Usage 📖](#usage-) + - [Simple usage](#simple-usage) + - [With configurations](#with-configurations) + - [Frequently asked question 💭](#frequently-asked-question-) + - [Why the orientation behavior is strange on iOS?](#why-the-orientation-behavior-is-strange-on-ios) + - [Contributors ✨](#contributors-) + +## Features ✨ + +- [x] 🔐 Non-nullable by default +- [x] 💚 99% similar to WeChat style +- [x] 📷 Picture taking support + - [x] ☀️ Exposure adjust support + - [x] 🔍️ Scale with pinch support +- [x] 🎥 Video recording support + - [x] ⏱ Duration limitation support + - [x] 🔍 Scale when recording support +- [x] 🖾 Foreground custom widget builder support + +## Screenshots 📸 + +| ![](https://tva1.sinaimg.cn/large/007S8ZIlgy1ggtt6yrdqej30u01t017w.jpg) | ![](https://tva1.sinaimg.cn/large/007S8ZIlgy1ggtt6yh3x4j30u01t0wuo.jpg) | +|-------------------------------------------------------------------------|-------------------------------------------------------------------------| +| ![](https://tva1.sinaimg.cn/large/007S8ZIlgy1ggtt6z1h7xj30u01t01kx.jpg) | ![](https://tva1.sinaimg.cn/large/007S8ZIlgy1ggtt6zarvhj30u01t0x5f.jpg) | + +## Preparing for use 🍭 + +### Version constraints + +Flutter SDK: `>=2.0.0` . + +### Setup + +- [wechat_assets_picker#preparing-for-use](https://github.com/fluttercandies/flutter_wechat_assets_picker#preparing-for-use-) +- [camera#installation](https://pub.dev/packages/camera#installation) + +## Usage 📖 + +### Simple usage + +```dart +final AssetEntity? entity = await CameraPicker.pickFromCamera(context); +``` + +### With configurations + +Use `CameraPickerConfig` for more picking behaviors. + +```dart +final AssetEntity? entity = await CameraPicker.pickFromCamera( + context, + pickerConfig: const CameraPickerConfig(), +); +``` + +Fields in `CameraPickerConfig`: + +| Name | Type | Description | Default Value | +|------------------------------|-----------------------------|-------------------------------------------------------------------------------------------------------|----------------------------------------| +| enableRecording | `bool` | Whether the picker can record video. | `false` | +| onlyEnableRecording | `bool` | Whether the picker can only record video. Only available when `enableRecording` is `true `. | `false` | +| enableTapRecording | `bool` | Whether allow the record can start with single tap. Only available when `enableRecording` is `true `. | `false` | +| enableAudio | `bool` | Whether Whether the picker should record audio. Only available with recording. | `true` | +| enableSetExposure | `bool` | Whether users can set the exposure point by tapping. | `true` | +| enableExposureControlOnPoint | `bool` | Whether users can adjust exposure according to the set point. | `true` | +| enablePinchToZoom | `bool` | Whether users can zoom the camera by pinch. | `true` | +| enablePullToZoomInRecord | `bool` | Whether users can zoom by pulling up when recording video. | `true` | +| shouldDeletePreviewFile | `bool` | Whether the preview file will be delete when pop. | `false` | +| shouldAutoPreviewVideo | `bool` | Whether the video should be played instantly in the preview. | `false` | +| maximumRecordingDuration | `Duration` | The maximum duration of the video recording process. | `const Duration(seconds: 15)` | +| theme | `ThemeData?` | Theme data for the picker. | `CameraPicker.themeData(C.themeColor)` | +| textDelegate | `CameraPickerTextDelegate?` | Text delegate that controls text in widgets. | `DefaultCameraPickerTextDelegate` | +| resolutionPreset | `ResolutionPreset` | Present resolution for the camera. | `ResolutionPreset.max` | +| cameraQuarterTurns | `int` | The number of clockwise quarter turns the camera view should be rotated. | `0` | +| imageFormatGroup | `ImageFormatGroup` | Describes the output of the raw image format. | `ImageFormatGroup.unknown` | +| preferredLensDirection | `CameraLensDirection` | Which lens direction is preferred when first using the camera. | `CameraLensDirection.back` | +| lockCaptureOrientation | `DeviceOrientation?` | Whether the camera should be locked to the specific orientation during captures. | null | +| foregroundBuilder | `ForegroundBuilder?` | The foreground widget builder which will cover the whole camera preview. | null | +| previewTransformBuilder | `PreviewTransformBuilder?` | The widget builder which will transform the camera preview. | null | +| onEntitySaving | `EntitySaveCallback?` | The callback type define for saving entity in the viewer. | null | +| onError | `CameraErrorHandler?` | The error handler when any error occurred during the picking process. | null | + +## Frequently asked question 💭 + +### Why the orientation behavior is strange on iOS? + +Currently, the preview is not correctly synced on the iOS. +You can find more details in this issue: +https://github.com/flutter/flutter/issues/89216 . +Other than that, please submit issues to describe your question. + +## Contributors ✨ + +Thank goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + +

    Alex Li

    💻 🎨 📖 💡 🤔 🚧 💬 👀

    Caijinglong

    💡 🤔

    Lael

    📖

    mjl0602

    💻 🤔

    AliasWang

    💻 🤔

    leftcoding

    🐛

    Luong The Vinh

    💻

    luomo-pro

    ️️️️♿️ 🐛
    + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! diff --git a/packages/flutter_wechat_camera_picker/_config.yml b/packages/flutter_wechat_camera_picker/_config.yml new file mode 100644 index 00000000..c4192631 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/packages/flutter_wechat_camera_picker/analysis_options.yaml b/packages/flutter_wechat_camera_picker/analysis_options.yaml new file mode 100644 index 00000000..0cc1d70f --- /dev/null +++ b/packages/flutter_wechat_camera_picker/analysis_options.yaml @@ -0,0 +1,229 @@ +# Specify analysis options. +# +# Until there are meta linter rules, each desired lint must be explicitly enabled. +# See: https://github.com/dart-lang/linter/issues/288 +# +# For a list of lints, see: http://dart-lang.github.io/linter/lints/ +# See the configuration guide for more +# https://github.com/dart-lang/sdk/tree/master/pkg/analyzer#configuring-the-analyzer +# +# There are other similar analysis options files in the flutter repos, +# which should be kept in sync with this file: +# +# - analysis_options.yaml (this file) +# - packages/flutter/lib/analysis_options_user.yaml +# - https://github.com/flutter/plugins/blob/master/analysis_options.yaml +# - https://github.com/flutter/engine/blob/master/analysis_options.yaml +# +# This file contains the analysis options used by Flutter tools, such as IntelliJ, +# Android Studio, and the `flutter analyze` command. + +analyzer: + strong-mode: + implicit-casts: false + implicit-dynamic: false + errors: + # treat missing required parameters as a warning (not a hint) + missing_required_param: warning + # treat missing returns as a warning (not a hint) + missing_return: warning + # allow having TODOs in the code + todo: ignore + # allow self-reference to deprecated members (we do this because otherwise we have + # to annotate every member in every test, assert, etc, when we deprecate something) + deprecated_member_use_from_same_package: ignore + # Ignore analyzer hints for updating pubspecs when using Future or + # Stream and not importing dart:async + # Please see https://github.com/flutter/flutter/pull/24528 for details. + sdk_version_async_exported_from_core: ignore + exclude: + - "bin/cache/**" + # the following two are relative to the stocks example and the flutter package respectively + # see https://github.com/dart-lang/sdk/issues/28463 + - "lib/i18n/messages_*.dart" + - "lib/src/http/**" + - "test_fixes/**" + +linter: + rules: + # these rules are documented on and in the same order as + # the Dart Lint rules page to make maintenance easier + # https://github.com/dart-lang/linter/blob/master/example/all.yaml + - always_declare_return_types + - always_put_control_body_on_new_line + # - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219 + - always_require_non_null_named_parameters + - always_specify_types + # - always_use_package_imports # we do this commonly + - annotate_overrides + # - avoid_annotating_with_dynamic # conflicts with always_specify_types + # - avoid_as # required for implicit-casts: true + - avoid_bool_literals_in_conditional_expressions + # - avoid_catches_without_on_clauses # we do this commonly + # - avoid_catching_errors # we do this commonly + - avoid_classes_with_only_static_members + # - avoid_double_and_int_checks # only useful when targeting JS runtime + - avoid_empty_else + - avoid_equals_and_hash_code_on_mutable_classes + # - avoid_escaping_inner_quotes # not yet tested + - avoid_field_initializers_in_const_classes + - avoid_function_literals_in_foreach_calls + # - avoid_implementing_value_types # not yet tested + - avoid_init_to_null + # - avoid_js_rounded_ints # only useful when targeting JS runtime + - avoid_null_checks_in_equality_operators + # - avoid_positional_boolean_parameters # not yet tested + # - avoid_print # not yet tested + # - avoid_private_typedef_functions # we prefer having typedef (discussion in https://github.com/flutter/flutter/pull/16356) + # - avoid_redundant_argument_values # not yet tested + - avoid_relative_lib_imports + - avoid_renaming_method_parameters + - avoid_return_types_on_setters + # - avoid_returning_null # there are plenty of valid reasons to return null + # - avoid_returning_null_for_future # not yet tested + - avoid_returning_null_for_void + # - avoid_returning_this # there are plenty of valid reasons to return this + # - avoid_setters_without_getters # not yet tested + - avoid_shadowing_type_parameters + - avoid_single_cascade_in_expression_statements + - avoid_slow_async_io + # - avoid_type_to_string # we do this commonly + - avoid_types_as_parameter_names + # - avoid_types_on_closure_parameters # conflicts with always_specify_types + # - avoid_unnecessary_containers # not yet tested + - avoid_unused_constructor_parameters + - avoid_void_async + # - avoid_web_libraries_in_flutter # not yet tested + - await_only_futures + - camel_case_extensions + - camel_case_types + - cancel_subscriptions + # - cascade_invocations # not yet tested + - cast_nullable_to_non_nullable + # - close_sinks # not reliable enough + # - comment_references # blocked on https://github.com/flutter/flutter/issues/20765 + # - constant_identifier_names # needs an opt-out https://github.com/dart-lang/linter/issues/204 + - control_flow_in_finally + # - curly_braces_in_flow_control_structures # not required by flutter style + # - diagnostic_describe_all_properties # not yet tested + - directives_ordering + # - do_not_use_environment # we do this commonly + - empty_catches + - empty_constructor_bodies + - empty_statements + - exhaustive_cases + # - file_names # not yet tested + - flutter_style_todos + - hash_and_equals + - implementation_imports + # - invariant_booleans # too many false positives: https://github.com/dart-lang/linter/issues/811 + - iterable_contains_unrelated_type + # - join_return_with_assignment # not required by flutter style + - leading_newlines_in_multiline_strings + - library_names + - library_prefixes + # - lines_longer_than_80_chars # not required by flutter style + - list_remove_unrelated_type + # - literal_only_boolean_expressions # too many false positives: https://github.com/dart-lang/sdk/issues/34181 + # - missing_whitespace_between_adjacent_strings # not yet tested + - no_adjacent_strings_in_list + # - no_default_cases # too many false positives + - no_duplicate_case_values + - no_logic_in_create_state + # - no_runtimeType_toString # ok in tests; we enable this only in packages/ + - non_constant_identifier_names + - null_check_on_nullable_type_parameter + # - null_closures # not required by flutter style + # - omit_local_variable_types # opposite of always_specify_types + # - one_member_abstracts # too many false positives + # - only_throw_errors # https://github.com/flutter/flutter/issues/5792 + - overridden_fields + - package_api_docs + # - package_names # non conforming packages in sdk + - package_prefixed_library_names + # - parameter_assignments # we do this commonly + - prefer_adjacent_string_concatenation + - prefer_asserts_in_initializer_lists + # - prefer_asserts_with_message # not required by flutter style + - prefer_collection_literals + - prefer_conditional_assignment + - prefer_const_constructors + - prefer_const_constructors_in_immutables + - prefer_const_declarations + - prefer_const_literals_to_create_immutables + # - prefer_constructors_over_static_methods # far too many false positives + - prefer_contains + # - prefer_double_quotes # opposite of prefer_single_quotes + - prefer_equal_for_default_values + # - prefer_expression_function_bodies # conflicts with https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#consider-using--for-short-functions-and-methods + - prefer_final_fields + - prefer_final_in_for_each + - prefer_final_locals + - prefer_for_elements_to_map_fromIterable + - prefer_foreach + # - prefer_function_declarations_over_variables # not yet tested + - prefer_generic_function_type_aliases + - prefer_if_elements_to_conditional_expressions + - prefer_if_null_operators + - prefer_initializing_formals + - prefer_inlined_adds + # - prefer_int_literals # not yet tested + # - prefer_interpolation_to_compose_strings # not yet tested + - prefer_is_empty + - prefer_is_not_empty + - prefer_is_not_operator + - prefer_iterable_whereType + # - prefer_mixin # https://github.com/dart-lang/language/issues/32 + # - prefer_null_aware_operators # disable until NNBD, see https://github.com/flutter/flutter/pull/32711#issuecomment-492930932 + # - prefer_relative_imports # not yet tested + - prefer_single_quotes + - prefer_spread_collections + - prefer_typing_uninitialized_variables + - prefer_void_to_null + # - provide_deprecation_message # not yet tested + # - public_member_api_docs # enabled on a case-by-case basis; see e.g. packages/analysis_options.yaml + - recursive_getters + # - sized_box_for_whitespace # not yet tested + - slash_for_doc_comments + # - sort_child_properties_last # not yet tested + - sort_constructors_first + # - sort_pub_dependencies # prevents separating pinned transitive dependencies + - sort_unnamed_constructors_first + - test_types_in_equals + - throw_in_finally + - tighten_type_of_initializing_formals + # - type_annotate_public_apis # subset of always_specify_types + - type_init_formals + # - unawaited_futures # too many false positives + # - unnecessary_await_in_return # not yet tested + - unnecessary_brace_in_string_interps + - unnecessary_const + # - unnecessary_final # conflicts with prefer_final_locals + - unnecessary_getters_setters + # - unnecessary_lambdas # has false positives: https://github.com/dart-lang/linter/issues/498 + - unnecessary_new + - unnecessary_null_aware_assignments + # - unnecessary_null_checks # not yet tested + - unnecessary_null_in_if_null_operators + - unnecessary_nullable_for_final_variable_declarations + - unnecessary_overrides + - unnecessary_parenthesis + # - unnecessary_raw_strings # not yet tested + - unnecessary_statements + - unnecessary_string_escapes + - unnecessary_string_interpolations + - unnecessary_this + - unrelated_type_equality_checks + # - unsafe_html # not yet tested + - use_full_hex_values_for_flutter_colors + # - use_function_type_syntax_for_parameters # not yet tested + - use_is_even_rather_than_modulo + # - use_key_in_widget_constructors # not yet tested + - use_late_for_private_fields_and_variables + - use_raw_strings + - use_rethrow_when_possible + # - use_setters_to_change_properties # not yet tested + # - use_string_buffers # has false positives: https://github.com/dart-lang/sdk/issues/34182 + # - use_to_and_as_if_applicable # has false positives, so we prefer to catch this by code-review + - valid_regexps + - void_checks \ No newline at end of file diff --git a/packages/flutter_wechat_camera_picker/example/.gitignore b/packages/flutter_wechat_camera_picker/example/.gitignore new file mode 100644 index 00000000..1ba9c339 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Exceptions to above rules. +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages diff --git a/packages/flutter_wechat_camera_picker/example/.metadata b/packages/flutter_wechat_camera_picker/example/.metadata new file mode 100644 index 00000000..ade6bc98 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 8af6b2f038c1172e61d418869363a28dffec3cb4 + channel: stable + +project_type: app diff --git a/packages/flutter_wechat_camera_picker/example/README.md b/packages/flutter_wechat_camera_picker/example/README.md new file mode 100644 index 00000000..8a501fdc --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/README.md @@ -0,0 +1,16 @@ +# wechat_camera_picker_demo + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/packages/flutter_wechat_camera_picker/example/android/.gitignore b/packages/flutter_wechat_camera_picker/example/android/.gitignore new file mode 100644 index 00000000..bc2100d8 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/.gitignore @@ -0,0 +1,7 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java diff --git a/packages/flutter_wechat_camera_picker/example/android/app/build.gradle b/packages/flutter_wechat_camera_picker/example/android/app/build.gradle new file mode 100644 index 00000000..8d915f87 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/app/build.gradle @@ -0,0 +1,77 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-kapt' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion flutter.compileSdkVersion + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + applicationId "com.fluttercandies.wechat_camera_picker_demo" + minSdkVersion 21 + targetSdkVersion flutter.compileSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + signingConfigs { + forAll { + storeFile file("${rootDir.absolutePath}/key.jks") + storePassword 'picker' + keyAlias 'picker' + keyPassword 'picker' + } + } + + buildTypes { + debug { + signingConfig signingConfigs.forAll + } + profile { + signingConfig signingConfigs.forAll + } + release { + signingConfig signingConfigs.forAll + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation 'com.github.bumptech.glide:glide:4.11.0' + kapt 'com.github.bumptech.glide:compiler:4.11.0' +} diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/AndroidManifest.xml b/packages/flutter_wechat_camera_picker/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..53cfe1f1 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechat_camera_picker_demo/ExampleAppGlideModule.kt b/packages/flutter_wechat_camera_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechat_camera_picker_demo/ExampleAppGlideModule.kt new file mode 100644 index 00000000..59b579fc --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechat_camera_picker_demo/ExampleAppGlideModule.kt @@ -0,0 +1,7 @@ +package com.fluttercandies.wechat_camera_picker_demo + +import com.bumptech.glide.annotation.GlideModule +import com.bumptech.glide.module.AppGlideModule + +@GlideModule +class ExampleAppGlideModule : AppGlideModule() diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechat_camera_picker_demo/MainActivity.kt b/packages/flutter_wechat_camera_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechat_camera_picker_demo/MainActivity.kt new file mode 100644 index 00000000..182c0525 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/app/src/main/kotlin/com/fluttercandies/wechat_camera_picker_demo/MainActivity.kt @@ -0,0 +1,5 @@ +package com.fluttercandies.wechat_camera_picker_demo + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/drawable/launch_background.xml b/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/values/styles.xml b/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..1f83a33f --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/packages/flutter_wechat_camera_picker/example/android/build.gradle b/packages/flutter_wechat_camera_picker/example/android/build.gradle new file mode 100644 index 00000000..538d08d5 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.0.3' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/packages/flutter_wechat_camera_picker/example/android/gradle.properties b/packages/flutter_wechat_camera_picker/example/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/packages/flutter_wechat_camera_picker/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/flutter_wechat_camera_picker/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..562c5e44 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip diff --git a/packages/flutter_wechat_camera_picker/example/android/key.jks b/packages/flutter_wechat_camera_picker/example/android/key.jks new file mode 100644 index 0000000000000000000000000000000000000000..5eb0b84ce730fcaaea7b3eda5f77dfc6f4f01d6c GIT binary patch literal 4255 zcmY+GXEYp)wuWcS7(^S4GJ1<%Ms%WglITIm=!_srkc?i3=q*U}o`^2G=)H#+{nN{6 z38F-llY7^_=dAN%uf5ju?*0CL5TVdaJRk@W3N?Zd@nJME7o!kHW6o9q|HJ9>E#;~Yt--S;BP2+a0PiU z{T)RD+ATbk%cC{)+tVwSou7z*2$nW=S@2K2xW1V1egpFPqJ|6^qfAt9x@HjdUL2hb3_H-4o|E%4DWo?6+GjS zqVYLVZIhcB9f>)tR7G_?XkNqf8!hRzWGW(60j}!%=jJ33{=w_pY_k-dfch=+OmyM; z-o0+=elmV{ke~#=HGR!NM5uY4(hGDLBFFJ0kgbtdv>X~`IWMdm}M#Eb08p(|m3YB@&eT$yK z7&WC1+I~*isO~?P)Y6Nw(D9#Zu4i8K{v4;*8k6-%JQWtfLZ#-a6pdHC&QmPTLl+xG zw{cNbOc-*$k3<_Ge}q@BFDIA14LtH5=;eU&q0uki;+e5Nij&qmo`|G0RPE~WgT<>V z#8v$$@qJt8(YP+C6a$f9K9-G6573D`usg*yNJ-S0tpsTZ=liAGg1rJ6-5hb*k5H<< z^WRgJim|k_J3E^>G%4woWhmDMPl@&JfcdN&I*zVn$-Og<^x1}*rHj|VMJGaS?ZwSX zsjch59O{QQPue;oJU`zGj9&`fo}@>(;ljbNrl_Nf$CgKWs8pkH3rR5vl@ zf@shC_MzeFSGrE;ygX;yNx*$kP?t;3$-W(QmoSx!a5#ThYhSt|L&G|G<9!W@Q)c9< zP`j%W-p|D!E)HwXsdth;Ka_9>p_3$j9`C+({1~vZK)iLke_ycWNkB!G^e^oa^LlDi zFrVl3qJrVX%W0LzR8WG&jjF-5gx4{OlW=EjxA@lcpq3n(&&VY+!Wu$m>MtsLMg0on z-%d^BtcYFW%pc82)v@clg>$edE2KM@1BB%J%5G=djAY%tSw<5+DPP4$N}@ht6pB15 z2+o$m6#M_g5LDc_0xb>|NZ2Y9;M~l)uK`cYO1_7-bg0^X09PkKMaQkzwFbs`D>p3r zQ-ry>mSEU;jHHe*cJ6%*^m1@7>*y*VPF9dOzKAr<_s-bwAD;nJhUd{R;jBBwcbE4B z2h&!7>qu(gFImQqR`z*KGhl3j$8F9KnnIhzNi*EuF+?qtrhv%CNQ$+(WVlR}52gH( zb{raWPUf6{7D$IR(!EE@@)A8 z%hsG;WVz0LB-__WQN1|8WA?R1n21h#I?Zj2qm|?;Nme}`pb`Cr{87jQK2uAZ{T8F} zTk%ePE+w{`>`B|cX`^*`Zu6Ws&-bObta1gCH?|cOGoDcs5^J$s!N2TbZ-cDV!)0~Q0vLXD#8)$M60%v8TS8w^eS!{V~7k1bFRe@FH<2+w1ws zuMR@o?ML<96ipJ7mxA=Ul|m=)^1k|ZW}ZI&@rFXzs_2O`x53TvKMpR5?D_$NF|M{g z6uji`L#vb~ST6nVV2VrN}~|wM6-`Ma1t9>C$U*<)~(cKBNPUva@fS%$~}T!~U4+%Z3qW^#m~HHHn&OqIzmg z{#nM63w%&~3Zz@%1IMe|%ioaGe__%~wXJ?BsXN}MBKB!WuSX{t0`tV|;|JfNG6bm>B+g@u)(t(7Mv|!IV$v`XK2N zgKb$#R4XEZ5QlKHn2~Vrb^s|oW*^JskE5Qh zK=?Qd13FKMqvDGRw7UJB3S4Qi%)%7`86O?%FsXOLQv zn7e&ZfPY=Q(8Hv@BhQvp5|mIyze0T2?OBx`?D+3 zaN<}IMFhjYRgDNHLdHx2a0fU6Yyr*ydw?f`?LQ&42n0FoC9`RjiWX*?j{?|Sf`1o&Tu2l*ev)6Db;w9Vj|AZuTTD7-2h!q>EV z_P>S~9EyKQXpu`Q#CSYFUU{mHv$j6%sw7n+t$Mywxt;2$S&)e7g5KB0ra*c& z!R8D{^8X-`&6a5IXb%t?laA`~QE>t}FCm8$c!pbPcQl2^3KG)Z(agINifO#`XBWsX zfeaLHPOC;m&^ea2{vsjqlY{h$6RO2v+)ED9S|-8@`Mo2=t@T&VjSS@58%__|88o*{ zYr%);bPbgI&Vk!{cb-kr6^KceuVptyML^r2zG`?PRqyDFu)GW&4TZ-RwDG3N;<>n# zlc;YaHL~k2DA|&`NgF?5le3;l;`TnNM(LVtF`X_a7wH|Q)6z0kVKi$fX%)NLsE3Ye zPDU7%0(iSI%Wr`M$6NFebz1S=jR=;bwM2Bo^&8A;hte-*R(JpQj870E1cWiz#z27T z>Pq*j{`i~Y3a->cU%W`k_@Zb#4%no4_RdR_$(o1-fif<)vmHHHxvn0}c|iC8zLQvdlgiP+sgnWQh-iuf`|;@nP(++}yyb0^QC zxX=NiY7;|J6&g&Sh+Rim1#Om-RpXA@Y7P34|A89tZ*hw1Q-sPORJ6g zu2tYZLKi6_7ogV;P?_*w@h=pg5E5=KgZlOA?OOZ@^ih5NU3qX`)fph5eY(FAZ$gk% zeXdcA@=i1xzl9EC;e$M)0Ok#JXV&XwNsp2F zhaz&E`X#FqEw~&X#?7tT%3h|0sE^?cq|cvq7qONWj>a~jRi+XthwYD-Jda%GAqF0t z4~_f^*m^QMinCewTTA)45nCx^rJLo!H3i=D8(Wpqmo!2X>dZN$VIYsShHCFPfq_oY z!Hdh~2Xo%@KUA$Aw6CU}I>2dMnZSg9OwVNbRFX;0FQ!c{Nt(JUJbC$Ak*vpWPQ1}3 zK#yHse}eTkMDUdAGU%W=+`EQ8*ati>vS9zIJEh=Gqjx(I#^eFxaW=>4+&olHJ;ptD zjc=r-$9+JD1_+@!S1NS3&D~7~sy@<9=%#)nI@Jkd(dF9zDWdW{PVgCZR#IL8En~2V ztNZ4&dv8EI5b#fkV)#TS9mdoGvtq4Vu&-uYjoY`I8cA{k=wFPmDLB(+PqTT#M-JoA zNyW9PSEw`GB;)&Tyk93JrpBcB`_V3U@IaH%bt!&Ko5n@QUJyeKH#S=KE0+mg=pkSn zV7|}l8#7n&WzYBpcn>5_Qqfe_{(~M2q3n#355>5`t714MRQkU?w0dYF7F#yeIv0ek zeRpulU|<_9W2oSDJhwr&^n7vDF7k>3r+iENT;So;uxE^ijrGLUisvl^Sof*um=Cbm zhLSI|pQm0qV1Z5TFR-_oB**W{m)69xVP{4vpC$Zf@@I4lE-S9t@t2oY%BP0hIIxzN zc=px<P3Tem|8^gCB?FD`g(fBOWzC8up2 zd)S<-wg{_lo?O;+(%UM9-d7K7{l{HI*!>6ler$kq8zh{0wqzWoHS}j;wXU=)X{@U6 zH*@V`R0U2;OUJuZu88vpM?h#jKS)T$c*qAZjdV%1LYeO%mzO0IlbFrMS4_u}?((F@ zACYMm2+5Rb^}Wlx^{*YEf5aKzQ`{05Gh4huDk9E6N0~ pUeTsckXd6^l*S7T!-XSN!7vVH5aCdr$l|$b0U6~tJP;6*_b properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/packages/flutter_wechat_camera_picker/example/ios/.gitignore b/packages/flutter_wechat_camera_picker/example/ios/.gitignore new file mode 100644 index 00000000..e96ef602 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/.gitignore @@ -0,0 +1,32 @@ +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Flutter/AppFrameworkInfo.plist b/packages/flutter_wechat_camera_picker/example/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..f2872cf4 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 9.0 + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Flutter/Debug.xcconfig b/packages/flutter_wechat_camera_picker/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..e8efba11 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/flutter_wechat_camera_picker/example/ios/Flutter/Release.xcconfig b/packages/flutter_wechat_camera_picker/example/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..399e9340 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.pbxproj b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..7f9ccb9f --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,583 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 0A0E89E1223357E5C8DF60A9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D89E84167F0EF469C20425C /* Pods_Runner.framework */; }; + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 180763EBD166204634D65430 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 3D89E84167F0EF469C20425C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 86785547D2CA1390AA68C185 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FF4130927988AA89C13011AF /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0A0E89E1223357E5C8DF60A9 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + AD82BCD6598FE589D9EE5885 /* Pods */, + C500A9C842C2026CDD7B2B42 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + ); + name = "Supporting Files"; + sourceTree = ""; + }; + AD82BCD6598FE589D9EE5885 /* Pods */ = { + isa = PBXGroup; + children = ( + 86785547D2CA1390AA68C185 /* Pods-Runner.debug.xcconfig */, + FF4130927988AA89C13011AF /* Pods-Runner.release.xcconfig */, + 180763EBD166204634D65430 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + C500A9C842C2026CDD7B2B42 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3D89E84167F0EF469C20425C /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + C187617FADA857B8B546364C /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 187C2E5DFF21C7CEB3EB430D /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 187C2E5DFF21C7CEB3EB430D /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + C187617FADA857B8B546364C /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 678MZVH5SX; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.hashkey.me; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 678MZVH5SX; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.hashkey.me; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 678MZVH5SX; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.hashkey.me; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..3db53b6e --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/AppDelegate.swift b/packages/flutter_wechat_camera_picker/example/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/flutter_wechat_camera_picker/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Base.lproj/Main.storyboard b/packages/flutter_wechat_camera_picker/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Info.plist b/packages/flutter_wechat_camera_picker/example/ios/Runner/Info.plist new file mode 100644 index 00000000..5f80c903 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + wechat_camera_picker_demo + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + NSCameraUsageDescription + Take a photo for display + NSMicrophoneUsageDescription + Take a video for display + NSPhotoLibraryUsageDescription + Read and write your photos + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/packages/flutter_wechat_camera_picker/example/ios/Runner/Runner-Bridging-Header.h b/packages/flutter_wechat_camera_picker/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/packages/flutter_wechat_camera_picker/example/lib/main.dart b/packages/flutter_wechat_camera_picker/example/lib/main.dart new file mode 100644 index 00000000..aa6b2859 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/lib/main.dart @@ -0,0 +1,91 @@ +import 'dart:typed_data'; +import 'dart:ui' as ui; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:wechat_camera_picker/wechat_camera_picker.dart'; + +void main() { + runApp(MyApp()); + SystemChrome.setSystemUIOverlayStyle( + const SystemUiOverlayStyle(statusBarColor: Colors.transparent), + ); +} + +class MyApp extends StatelessWidget { + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'WeChat Camera Picker Demo', + theme: ThemeData( + brightness: MediaQueryData.fromWindow(ui.window).platformBrightness, + primarySwatch: Colors.blue, + visualDensity: VisualDensity.adaptivePlatformDensity, + ), + home: const MyHomePage(), + ); + } +} + +class MyHomePage extends StatefulWidget { + const MyHomePage({Key? key}) : super(key: key); + + @override + _MyHomePageState createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + AssetEntity? entity; + Uint8List? data; + + Future pick(BuildContext context) async { + final Size size = MediaQuery.of(context).size; + final double scale = MediaQuery.of(context).devicePixelRatio; + try { + final AssetEntity? _entity = await CameraPicker.pickFromCamera( + context, + pickerConfig: const CameraPickerConfig(enableRecording: true), + ); + if (_entity != null && entity != _entity) { + entity = _entity; + if (mounted) { + setState(() {}); + } + data = await _entity.thumbnailDataWithSize( + ThumbnailSize( + (size.width * scale).toInt(), + (size.height * scale).toInt(), + ), + ); + if (mounted) { + setState(() {}); + } + } + } catch (e) { + rethrow; + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('WeChat Camera Picker Demo')), + body: Stack( + children: [ + if (entity != null && data != null) + Positioned.fill(child: Image.memory(data!, fit: BoxFit.contain)) + else if (entity != null && data == null) + const Center(child: CircularProgressIndicator()) + else + const Center(child: Text('Click the button to start picking.')), + ], + ), + floatingActionButton: FloatingActionButton( + onPressed: () => pick(context), + tooltip: 'Increment', + child: const Icon(Icons.camera_enhance), + ), + ); + } +} diff --git a/packages/flutter_wechat_camera_picker/example/pubspec.yaml b/packages/flutter_wechat_camera_picker/example/pubspec.yaml new file mode 100644 index 00000000..e0d86f1c --- /dev/null +++ b/packages/flutter_wechat_camera_picker/example/pubspec.yaml @@ -0,0 +1,18 @@ +name: wechat_camera_picker_demo +description: A new Flutter project. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev +version: 3.0.0+6 + +environment: + sdk: '>=2.14.0 <3.0.0' + flutter: '>=2.5.0' + +dependencies: + flutter: + sdk: flutter + + wechat_camera_picker: + path: ../ + +flutter: + uses-material-design: true diff --git a/packages/flutter_wechat_camera_picker/lib/src/constants/config.dart b/packages/flutter_wechat_camera_picker/lib/src/constants/config.dart new file mode 100644 index 00000000..185f6fdb --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/constants/config.dart @@ -0,0 +1,140 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2022/2/14 12:05 +/// +import 'package:camera/camera.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +import '../delegates/camera_picker_text_delegate.dart'; +import '../internals/type_defs.dart'; + +/// {@template wechat_camera_picker.CameraPickerConfig} +/// Configurations for the [CameraPicker]. +/// [CameraPicker] 的配置项 +/// {@endtemplate} +class CameraPickerConfig { + const CameraPickerConfig({ + this.enableRecording = false, + this.onlyEnableRecording = false, + this.enableTapRecording = false, + this.enableAudio = true, + this.enableSetExposure = true, + this.enableExposureControlOnPoint = true, + this.enablePinchToZoom = true, + this.enablePullToZoomInRecord = true, + this.shouldDeletePreviewFile = false, + this.shouldAutoPreviewVideo = false, + this.maximumRecordingDuration = const Duration(seconds: 15), + this.theme, + this.textDelegate, + this.cameraQuarterTurns = 0, + this.resolutionPreset = ResolutionPreset.max, + this.imageFormatGroup = ImageFormatGroup.unknown, + this.preferredLensDirection = CameraLensDirection.back, + this.lockCaptureOrientation, + this.foregroundBuilder, + this.previewTransformBuilder, + this.onEntitySaving, + this.onError, + }) : assert( + enableRecording == true || onlyEnableRecording != true, + 'Recording mode error.', + ); + + /// Whether the picker can record video. + /// 选择器是否可以录像 + final bool enableRecording; + + /// Whether the picker can record video. + /// 选择器是否可以录像 + final bool onlyEnableRecording; + + /// Whether allow the record can start with single tap. + /// 选择器是否可以单击录像 + /// + /// It only works when [onlyEnableRecording] is true. + /// 仅在 [onlyEnableRecording] 为 true 时生效。 + final bool enableTapRecording; + + /// Whether the picker should record audio. + /// 选择器录像时是否需要录制声音 + final bool enableAudio; + + /// Whether users can set the exposure point by tapping. + /// 用户是否可以在界面上通过点击设定曝光点 + final bool enableSetExposure; + + /// Whether users can adjust exposure according to the set point. + /// 用户是否可以根据已经设置的曝光点调节曝光度 + final bool enableExposureControlOnPoint; + + /// Whether users can zoom the camera by pinch. + /// 用户是否可以在界面上双指缩放相机对焦 + final bool enablePinchToZoom; + + /// Whether users can zoom by pulling up when recording video. + /// 用户是否可以在录制视频时上拉缩放 + final bool enablePullToZoomInRecord; + + /// {@template wechat_camera_picker.shouldDeletePreviewFile} + /// Whether the preview file will be delete when pop. + /// 返回页面时是否删除预览文件 + /// {@endtemplate} + final bool shouldDeletePreviewFile; + + /// {@template wechat_camera_picker.shouldAutoPreviewVideo} + /// Whether the video should be played instantly in the preview. + /// 在预览时是否直接播放视频 + /// {@endtemplate} + final bool shouldAutoPreviewVideo; + + /// The maximum duration of the video recording process. + /// 录制视频最长时长 + /// + /// Defaults to 15 seconds, allow `null` for unrestricted video recording. + /// 默认为 15 秒,可以使用 `null` 来设置无限制的视频录制 + final Duration? maximumRecordingDuration; + + /// Theme data for the picker. + /// 选择器的主题 + final ThemeData? theme; + + /// The number of clockwise quarter turns the camera view should be rotated. + /// 摄像机视图顺时针旋转次数,每次90度 + final int cameraQuarterTurns; + + /// Text delegate that controls text in widgets. + /// 控制部件中的文字实现 + final CameraPickerTextDelegate? textDelegate; + + /// Present resolution for the camera. + /// 相机的分辨率预设 + final ResolutionPreset resolutionPreset; + + /// The [ImageFormatGroup] describes the output of the raw image format. + /// 输出图像的格式描述 + final ImageFormatGroup imageFormatGroup; + + /// Which lens direction is preferred when first using the camera, + /// typically with the front or the back direction. + /// 首次使用相机时首选的镜头方向,通常是前置或后置。 + final CameraLensDirection preferredLensDirection; + + /// {@macro wechat_camera_picker.ForegroundBuilder} + final ForegroundBuilder? foregroundBuilder; + + /// {@macro wechat_camera_picker.PreviewTransformBuilder} + final PreviewTransformBuilder? previewTransformBuilder; + + /// Whether the camera should be locked to the specific orientation + /// during captures. + /// 摄像机在拍摄时锁定的旋转角度 + final DeviceOrientation? lockCaptureOrientation; + + /// {@macro wechat_camera_picker.EntitySaveCallback} + final EntitySaveCallback? onEntitySaving; + + /// {@macro wechat_camera_picker.CameraErrorHandler} + final CameraErrorHandler? onError; +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/constants/constants.dart b/packages/flutter_wechat_camera_picker/lib/src/constants/constants.dart new file mode 100644 index 00000000..83b41e2f --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/constants/constants.dart @@ -0,0 +1,13 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/7/15 02:06 +/// +import '../delegates/camera_picker_text_delegate.dart'; + +export 'package:photo_manager/photo_manager.dart'; + +class Constants { + const Constants._(); + + static CameraPickerTextDelegate textDelegate = CameraPickerTextDelegate(); +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/constants/styles.dart b/packages/flutter_wechat_camera_picker/lib/src/constants/styles.dart new file mode 100644 index 00000000..03a3a021 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/constants/styles.dart @@ -0,0 +1,11 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/9/30 17:00 +/// +import 'package:flutter/painting.dart'; + +class C { + static const Color themeColor = Color(0xff00bc56); // WeChat +} + +const BorderRadius maxBorderRadius = BorderRadius.all(Radius.circular(999999)); diff --git a/packages/flutter_wechat_camera_picker/lib/src/delegates/camera_picker_text_delegate.dart b/packages/flutter_wechat_camera_picker/lib/src/delegates/camera_picker_text_delegate.dart new file mode 100644 index 00000000..e6d9cb7d --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/delegates/camera_picker_text_delegate.dart @@ -0,0 +1,178 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/7/16 11:07 +/// +import 'package:camera/camera.dart' show CameraLensDirection, FlashMode; + +/// Text delegate that controls text in widgets, implemented with Chinese. +/// 控制部件中的文字实现,中文。 +class CameraPickerTextDelegate { + /// Confirm string for the confirm button. + /// 确认按钮的字段 + String get confirm => '确认'; + String get cropper => '裁剪'; + + /// Tips string above the shooting button before shooting. + /// 拍摄前确认按钮上方的提示文字 + String get shootingTips => '轻触拍照'; + + /// Load failed string for item. + /// 资源加载失败时的字段 + String get loadFailed => '加载失败'; + + /// Semantics fields. + /// + /// Fields below are only for semantics usage. For customizable these fields, + /// head over to [EnglishCameraPickerTextDelegate] for better understanding. + String get sActionManuallyFocusHint => '手动聚焦'; + + String get sActionPreviewHint => '预览'; + + String get sActionRecordHint => '录像'; + + String get sActionShootHint => '拍照'; + + String get sActionShootingButtonTooltip => '拍照按钮'; + + String get sActionStopRecordingHint => '停止录像'; + + String sCameraLensDirectionLabel(CameraLensDirection value) { + switch (value) { + case CameraLensDirection.front: + return '前置'; + case CameraLensDirection.back: + return '后置'; + case CameraLensDirection.external: + return '外置'; + } + } + + String? sCameraPreviewLabel(CameraLensDirection? value) { + if (value == null) { + return null; + } + return '${sCameraLensDirectionLabel(value)}画面预览'; + } + + String sFlashModeLabel(FlashMode mode) { + final String _modeString; + switch (mode) { + case FlashMode.off: + _modeString = '关闭'; + break; + case FlashMode.auto: + _modeString = '自动'; + break; + case FlashMode.always: + _modeString = '拍照时闪光'; + break; + case FlashMode.torch: + _modeString = '始终闪光'; + break; + } + return '闪光模式: $_modeString'; + } + + String sSwitchCameraLensDirectionLabel(CameraLensDirection value) { + return '切换至${sCameraLensDirectionLabel(value)}摄像头'; + } +} + +/// Default text delegate including recording implements with Chinese. +/// 中文文字实现(包括摄像) +class CameraPickerTextDelegateWithRecording extends CameraPickerTextDelegate { + @override + String get shootingTips => '轻触拍照,长按摄像'; +} + +/// Default text delegate including only recording implements with Chinese. +/// 中文文字实现(仅摄像) +class CameraPickerTextDelegateWithOnlyRecording + extends CameraPickerTextDelegate { + @override + String get shootingTips => '长按摄像'; +} + +/// Default text delegate including tap recording implements with Chinese. +/// 中文文字实现(仅轻触摄像) +class CameraPickerTextDelegateWithTapRecording + extends CameraPickerTextDelegate { + @override + String get shootingTips => '轻触摄像'; +} + +/// Default text delegate implements with English. +/// 英文文字实现 +class EnglishCameraPickerTextDelegate extends CameraPickerTextDelegate { + @override + String get confirm => 'Confirm'; + + @override + String get cropper => 'crop'; + + @override + String get shootingTips => 'Tap to take photo.'; + + @override + String get loadFailed => 'Load failed'; + + @override + String get sActionManuallyFocusHint => 'manually focus'; + + @override + String get sActionPreviewHint => 'preview'; + + @override + String get sActionRecordHint => 'record'; + + @override + String get sActionShootHint => 'take picture'; + + @override + String get sActionShootingButtonTooltip => 'shooting button'; + + @override + String get sActionStopRecordingHint => 'stop recording'; + + @override + String sCameraLensDirectionLabel(CameraLensDirection value) => value.name; + + @override + String? sCameraPreviewLabel(CameraLensDirection? value) { + if (value == null) { + return null; + } + return '${sCameraLensDirectionLabel(value)} camera preview'; + } + + @override + String sFlashModeLabel(FlashMode mode) => 'Flash mode: ${mode.name}'; + + @override + String sSwitchCameraLensDirectionLabel(CameraLensDirection value) => + 'Switch to the ${sCameraLensDirectionLabel(value)} camera'; +} + +/// Default text delegate including recording implements with English. +/// 英文文字实现(包括摄像) +class EnglishCameraPickerTextDelegateWithRecording + extends EnglishCameraPickerTextDelegate { + @override + String get shootingTips => 'Tap to take photo. Long press to record video.'; +} + +/// Default text delegate including only recording implements with English. +/// 英文文字实现(仅摄像) +class EnglishCameraPickerTextDelegateWithOnlyRecording + extends EnglishCameraPickerTextDelegate { + @override + String get shootingTips => 'Long press to record video.'; +} + +/// Default text delegate including tap recording implements with English. +/// 英文文字实现(仅轻触摄像) +class EnglishCameraPickerTextDelegateWithTapRecording + extends EnglishCameraPickerTextDelegate { + @override + String get shootingTips => 'Tap to record video.'; +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/internals/enums.dart b/packages/flutter_wechat_camera_picker/lib/src/internals/enums.dart new file mode 100644 index 00000000..8dc54c27 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/internals/enums.dart @@ -0,0 +1,8 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/9/30 17:06 +/// + +/// Two types for the viewer: image and video. +/// 两种预览类型:图片和视频 +enum CameraPickerViewType { image, video } diff --git a/packages/flutter_wechat_camera_picker/lib/src/internals/extensions.dart b/packages/flutter_wechat_camera_picker/lib/src/internals/extensions.dart new file mode 100644 index 00000000..609b4468 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/internals/extensions.dart @@ -0,0 +1,28 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/9/30 17:02 +/// +import 'dart:async'; + +import 'package:flutter/widgets.dart'; + +extension SafeSetStateExtension on State { + FutureOr safeSetState(FutureOr Function() fn) async { + await fn(); + if (mounted && + !context.debugDoingBuild && + context.owner?.debugBuilding != true) { + // ignore: invalid_use_of_protected_member + setState(() {}); + } + } +} + +extension NullableObjectExtension on Object? { + StackTrace? get nullableStackTrace { + if (this is Error?) { + return (this as Error?)?.stackTrace; + } + return null; + } +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/internals/methods.dart b/packages/flutter_wechat_camera_picker/lib/src/internals/methods.dart new file mode 100644 index 00000000..a04b9c26 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/internals/methods.dart @@ -0,0 +1,26 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/9/30 17:01 +/// +import 'dart:developer'; + +import 'package:flutter/foundation.dart'; + +import 'extensions.dart'; +import 'type_defs.dart'; + +/// Log only in debug mode. +/// 只在调试模式打印 +void realDebugPrint(dynamic message) { + if (!kReleaseMode) { + log('$message', name: 'CameraPicker - LOG'); + } +} + +void handleErrorWithHandler(Object error, CameraErrorHandler? handler) { + if (handler != null) { + handler(error, error.nullableStackTrace); + return; + } + throw error; +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/internals/type_defs.dart b/packages/flutter_wechat_camera_picker/lib/src/internals/type_defs.dart new file mode 100644 index 00000000..35be3b37 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/internals/type_defs.dart @@ -0,0 +1,60 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021/9/30 17:04 +/// +import 'dart:async' show FutureOr; +import 'dart:io' show File; + +import 'package:camera/camera.dart' show CameraController, CameraValue; +import 'package:flutter/widgets.dart' show BuildContext, Widget; + +import '../internals/enums.dart'; + +/// {@template wechat_camera_picker.EntitySaveCallback} +/// The callback type define for saving entity in the viewer. +/// 在查看器中保存图片时的回调 +/// +/// ### Notice about the implementation +/// * After the callback is implemented, the default saving method +/// won't called anymore. +/// * Don't call `Navigator.of(context).pop/maybePop` without popping `null` or +/// `AssetEntity`, otherwise there will be a type cast error occurred. +/// +/// ### 在实现时需要注意 +/// * 实现该方法后,原本的保存方法不会再被调用; +/// * 不要使用 `Navigator.of(context).pop/maybePop` 返回 `null` 或 `AssetEntity` +/// 以外类型的内容,否则会抛出类型转换异常。 +/// {@endtemplate} +typedef EntitySaveCallback = FutureOr Function({ + BuildContext context, + CameraPickerViewType viewType, + File file, +}); + +/// {@template wechat_camera_picker.CameraErrorHandler} +/// The error handler when any error occurred during the picking process. +/// 拍摄照片过程中的自定义错误处理 +/// {@endtemplate} +typedef CameraErrorHandler = void Function( + Object error, + StackTrace? stackTrace, +); + +/// {@template wechat_camera_picker.ForegroundBuilder} +/// Build the foreground/overlay widget with the given [cameraValue]. +/// 根据给定的 [cameraValue] 构建自定义的前景 widget +/// {@endtemplate} +typedef ForegroundBuilder = Widget Function( + BuildContext context, + CameraValue cameraValue, +); + +/// {@template wechat_camera_picker.PreviewTransformBuilder} +/// Build the transformed widget with the given [controller]. +/// 根据给定的 [controller] 构建自定义的变换 widget +/// {@endtemplate} +typedef PreviewTransformBuilder = Widget? Function( + BuildContext context, + CameraController controller, + Widget child, +); diff --git a/packages/flutter_wechat_camera_picker/lib/src/widgets/builder/tween_animation_builder_2.dart b/packages/flutter_wechat_camera_picker/lib/src/widgets/builder/tween_animation_builder_2.dart new file mode 100644 index 00000000..b1bff5e3 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/widgets/builder/tween_animation_builder_2.dart @@ -0,0 +1,41 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021-01-09 18:33 +/// +import 'package:flutter/material.dart'; + +class TweenAnimationBuilder2 extends StatelessWidget { + const TweenAnimationBuilder2({ + Key? key, + required this.firstTween, + required this.secondTween, + required this.builder, + this.firstTweenDuration = kThemeAnimationDuration, + this.secondTweenDuration = kThemeAnimationDuration, + this.firstTweenCurve = Curves.linear, + this.secondTweenCurve = Curves.linear, + }) : super(key: key); + + final Tween firstTween; + final Tween secondTween; + final Duration firstTweenDuration; + final Duration secondTweenDuration; + final Curve firstTweenCurve; + final Curve secondTweenCurve; + final Widget Function(BuildContext, A, B) builder; + + @override + Widget build(BuildContext context) { + return TweenAnimationBuilder( + tween: firstTween, + curve: firstTweenCurve, + duration: firstTweenDuration, + builder: (__, A first, _) => TweenAnimationBuilder( + tween: secondTween, + curve: secondTweenCurve, + duration: secondTweenDuration, + builder: (_, B second, __) => builder(context, first, second), + ), + ); + } +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker.dart b/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker.dart new file mode 100644 index 00000000..729c5a0d --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker.dart @@ -0,0 +1,1399 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/7/13 11:08 +/// +// ignore_for_file: deprecated_member_use +import 'dart:async'; +import 'dart:io'; +import 'dart:math' as math; + +import 'package:camera/camera.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; +import 'package:flutter/semantics.dart'; +import 'package:flutter/services.dart'; + +import '../constants/config.dart'; +import '../constants/constants.dart'; +import '../constants/styles.dart'; +import '../delegates/camera_picker_text_delegate.dart'; +import '../internals/enums.dart'; +import '../internals/extensions.dart'; +import '../internals/methods.dart'; +import '../widgets/circular_progress_bar.dart'; + +import 'camera_picker_page_route.dart'; +import 'camera_picker_viewer.dart'; +import 'exposure_point_widget.dart'; + +const Color _lockedColor = Colors.amber; +const Duration _kDuration = Duration(milliseconds: 300); + +/// Create a camera picker integrate with [CameraDescription]. +/// 通过 [CameraDescription] 整合的拍照选择 +/// +/// The picker provides create an [AssetEntity] through the camera. +/// 该选择器可以通过拍照创建 [AssetEntity]。 +class CameraPicker extends StatefulWidget { + CameraPicker({ + Key? key, + this.pickerConfig = const CameraPickerConfig(), + }) : super(key: key) { + // Set text delegate accordingly. + if (pickerConfig.textDelegate != null) { + Constants.textDelegate = pickerConfig.textDelegate!; + } else if (pickerConfig.enableRecording && + pickerConfig.onlyEnableRecording && + pickerConfig.enableTapRecording) { + Constants.textDelegate = CameraPickerTextDelegateWithTapRecording(); + } else if (pickerConfig.enableRecording && + pickerConfig.onlyEnableRecording) { + Constants.textDelegate = CameraPickerTextDelegateWithOnlyRecording(); + } else if (pickerConfig.enableRecording) { + Constants.textDelegate = CameraPickerTextDelegateWithRecording(); + } else { + Constants.textDelegate = CameraPickerTextDelegate(); + } + } + + final CameraPickerConfig pickerConfig; + + /// Static method to create [AssetEntity] through camera. + /// 通过相机创建 [AssetEntity] 的静态方法 + static Future pickFromCamera( + BuildContext context, { + CameraPickerConfig pickerConfig = const CameraPickerConfig(), + bool useRootNavigator = true, + CameraPickerPageRouteBuilder? pageRouteBuilder, + }) { + final Widget picker = CameraPicker(pickerConfig: pickerConfig); + return Navigator.of( + context, + rootNavigator: useRootNavigator, + ).push( + pageRouteBuilder?.call(picker) ?? + CameraPickerPageRoute(builder: (_) => picker), + ); + } + + /// Build a dark theme according to the theme color. + /// 通过主题色构建一个默认的暗黑主题 + static ThemeData themeData(Color themeColor) { + return ThemeData.dark().copyWith( + primaryColor: Colors.grey[900], + primaryColorLight: Colors.grey[900], + primaryColorDark: Colors.grey[900], + canvasColor: Colors.grey[850], + scaffoldBackgroundColor: Colors.grey[900], + bottomAppBarColor: Colors.grey[900], + cardColor: Colors.grey[900], + highlightColor: Colors.transparent, + toggleableActiveColor: themeColor, + textSelectionTheme: TextSelectionThemeData( + cursorColor: themeColor, + selectionColor: themeColor.withAlpha(100), + selectionHandleColor: themeColor, + ), + indicatorColor: themeColor, + appBarTheme: const AppBarTheme( + systemOverlayStyle: SystemUiOverlayStyle( + statusBarBrightness: Brightness.dark, + statusBarIconBrightness: Brightness.light, + ), + elevation: 0, + ), + buttonTheme: ButtonThemeData(buttonColor: themeColor), + colorScheme: ColorScheme( + primary: Colors.grey[900]!, + primaryVariant: Colors.grey[900]!, + secondary: themeColor, + secondaryVariant: themeColor, + background: Colors.grey[900]!, + surface: Colors.grey[900]!, + brightness: Brightness.dark, + error: const Color(0xffcf6679), + onPrimary: Colors.black, + onSecondary: Colors.black, + onSurface: Colors.white, + onBackground: Colors.white, + onError: Colors.black, + ), + ); + } + + @override + CameraPickerState createState() => CameraPickerState(); +} + +class CameraPickerState extends State + with WidgetsBindingObserver { + /// The [Duration] for record detection. (200ms) + /// 检测是否开始录制的时长 (200毫秒) + final Duration recordDetectDuration = const Duration(milliseconds: 200); + + /// The last exposure point offset on the screen. + /// 最后一次手动聚焦的点坐标 + final ValueNotifier _lastExposurePoint = + ValueNotifier(null); + + /// The last pressed position on the shooting button before starts recording. + /// 在开始录像前,最后一次在拍照按钮按下的位置 + Offset? _lastShootingButtonPressedPosition; + + /// Current exposure mode. + /// 当前曝光模式 + final ValueNotifier _exposureMode = + ValueNotifier(ExposureMode.auto); + + final ValueNotifier _isExposureModeDisplays = + ValueNotifier(false); + + /// The controller for the current camera. + /// 当前相机实例的控制器 + CameraController get controller => _controller!; + CameraController? _controller; + bool _shouldLockInitialize = false; + + /// Available cameras. + /// 可用的相机实例 + late List cameras; + + /// Current exposure offset. + /// 当前曝光值 + final ValueNotifier _currentExposureOffset = ValueNotifier(0); + + /// The maximum available value for exposure. + /// 最大可用曝光值 + double _maxAvailableExposureOffset = 0; + + /// The minimum available value for exposure. + /// 最小可用曝光值 + double _minAvailableExposureOffset = 0; + + /// The maximum available value for zooming. + /// 最大可用缩放值 + double _maxAvailableZoom = 1; + + /// The minimum available value for zooming. + /// 最小可用缩放值 + double _minAvailableZoom = 1; + + /// Counting pointers (number of user fingers on screen). + /// 屏幕上的触摸点计数 + int _pointers = 0; + double _currentZoom = 1; + double _baseZoom = 1; + + /// The index of the current cameras. Defaults to `0`. + /// 当前相机的索引。默认为0 + int currentCameraIndex = 0; + + /// Whether the [shootingButton] should animate according to the gesture. + /// 拍照按钮是否需要执行动画 + /// + /// This happens when the [shootingButton] is being long pressed. + /// It will animate for video recording state. + /// 当长按拍照按钮时,会进入准备录制视频的状态,此时需要执行动画。 + bool isShootingButtonAnimate = false; + + /// The [Timer] for keep the [_lastExposurePoint] displays. + /// 用于控制上次手动聚焦点显示的计时器 + Timer? _exposurePointDisplayTimer; + + Timer? _exposureModeDisplayTimer; + + /// The [Timer] for record start detection. + /// 用于检测是否开始录制的计时器 + /// + /// When the [shootingButton] started animate, this [Timer] will start + /// at the same time. When the time is more than [recordDetectDuration], + /// which means we should start recoding, the timer finished. + /// 当拍摄按钮开始执行动画时,定时器会同时启动。时长超过检测时长时,定时器完成。 + Timer? _recordDetectTimer; + + /// The [Timer] for record countdown. + /// 用于录制视频倒计时的计时器 + /// + /// Stop record When the record time reached the [maximumRecordingDuration]. + /// However, if there's no limitation on record time, this will be useless. + /// 当录像时间达到了最大时长,将通过定时器停止录像。 + /// 但如果录像时间没有限制,定时器将不会起作用。 + Timer? _recordCountdownTimer; + + //////////////////////////////////////////////////////////////////////////// + ////////////////////////////// Global Getters ////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + CameraPickerConfig get config => widget.pickerConfig; + + bool get enableRecording => config.enableRecording; + + bool get onlyEnableRecording => enableRecording && config.onlyEnableRecording; + + bool get enableTapRecording => + onlyEnableRecording && config.enableTapRecording; + + /// No audio integration required when it's only for camera. + /// 在仅允许拍照时不需要启用音频 + bool get enableAudio => enableRecording && config.enableAudio; + + /// Whether the picker needs to prepare for video recording on iOS. + /// 是否需要为 iOS 的录制视频执行准备操作 + bool get shouldPrepareForVideoRecording => + enableRecording && enableAudio && Platform.isIOS; + + bool get enableSetExposure => config.enableSetExposure; + + bool get enableExposureControlOnPoint => config.enableExposureControlOnPoint; + + bool get enablePinchToZoom => config.enablePinchToZoom; + + bool get enablePullToZoomInRecord => + enableRecording && config.enablePullToZoomInRecord; + + bool get shouldDeletePreviewFile => config.shouldDeletePreviewFile; + + bool get shouldAutoPreviewVideo => config.shouldAutoPreviewVideo; + + Duration? get maximumRecordingDuration => config.maximumRecordingDuration; + + /// Whether the recording restricted to a specific duration. + /// 录像是否有限制的时长 + bool get isRecordingRestricted => maximumRecordingDuration != null; + + /// A getter to the current [CameraDescription]. + /// 获取当前相机实例 + CameraDescription get currentCamera => cameras.elementAt(currentCameraIndex); + + /// If there's no theme provided from the user, use [CameraPicker.themeData] . + /// 如果用户未提供主题, + late final ThemeData _theme = + config.theme ?? CameraPicker.themeData(C.themeColor); + + /// Get [ThemeData] of the [CameraPicker] through [Constants.pickerKey]. + /// 通过常量全局 Key 获取当前选择器的主题 + ThemeData get theme => _theme; + + CameraPickerTextDelegate get _textDelegate => Constants.textDelegate; + + @override + void initState() { + super.initState(); + WidgetsBinding.instance?.addObserver(this); + + // TODO(Alex): Currently hide status bar will cause the viewport shaking on Android. + /// Hide system status bar automatically when the platform is not Android. + /// 在非 Android 设备上自动隐藏状态栏 + if (!Platform.isAndroid) { + SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual); + } + + initCameras(); + } + + @override + void dispose() { + if (!Platform.isAndroid) { + SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, + overlays: SystemUiOverlay.values); + } + WidgetsBinding.instance?.removeObserver(this); + _controller?.dispose(); + _currentExposureOffset.dispose(); + _lastExposurePoint.dispose(); + _exposureMode.dispose(); + _isExposureModeDisplays.dispose(); + _exposurePointDisplayTimer?.cancel(); + _exposureModeDisplayTimer?.cancel(); + _recordDetectTimer?.cancel(); + _recordCountdownTimer?.cancel(); + super.dispose(); + } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + final CameraController? c = _controller; + // App state changed before we got the chance to initialize. + if (c == null || !c.value.isInitialized) { + return; + } + if (state == AppLifecycleState.inactive) { + c.dispose(); + } else if (state == AppLifecycleState.resumed && !_shouldLockInitialize) { + // Drop initialize when the controller has been already initialized. + // This will typically resolve the lifecycle issue on iOS when permissions + // are requested for the first time. + initCameras(currentCamera); + } + } + + /// Adjust the proper scale type according to the [constraints]. + /// 根据 [constraints] 获取相机预览适用的缩放。 + double _effectiveCameraScale( + BoxConstraints constraints, + CameraController controller, + ) { + final int turns = config.cameraQuarterTurns; + final String orientation = controller.value.deviceOrientation.toString(); + // Fetch the biggest size from the constraints. + Size size = constraints.biggest; + // Flip the size when the preview needs to turn with an odd count of quarters. + if ((turns.isOdd && orientation.contains('portrait')) || + (turns.isEven && orientation.contains('landscape'))) { + size = size.flipped; + } + // Calculate scale depending on the size and camera ratios. + double scale = size.aspectRatio * controller.value.aspectRatio; + // Prevent scaling down. + if (scale < 1) { + scale = 1 / scale; + } + return scale; + } + + /// Initialize cameras instances. + /// 初始化相机实例 + void initCameras([CameraDescription? cameraDescription]) { + // Save the current controller to a local variable. + final CameraController? _c = _controller; + // Then unbind the controller from widgets, which requires a build frame. + safeSetState(() { + _shouldLockInitialize = true; + _maxAvailableZoom = 1; + _minAvailableZoom = 1; + _currentZoom = 1; + _baseZoom = 1; + _controller = null; + // Meanwhile, cancel the existed exposure point and mode display. + _exposureModeDisplayTimer?.cancel(); + _exposurePointDisplayTimer?.cancel(); + _lastExposurePoint.value = null; + if (_currentExposureOffset.value != 0) { + _currentExposureOffset.value = 0; + } + }); + // **IMPORTANT**: Push methods into a post frame callback, which ensures the + // controller has already unbind from widgets. + SchedulerBinding.instance?.addPostFrameCallback((_) async { + // Dispose at last to avoid disposed usage with assertions. + await _c?.dispose(); + + // When the [cameraDescription] is null, which means this is the first + // time initializing cameras, so available cameras should be fetched. + if (cameraDescription == null) { + cameras = await availableCameras(); + } + + // After cameras fetched, judge again with the list is empty or not to + // ensure there is at least an available camera for use. + if (cameraDescription == null && (cameras.isEmpty)) { + _shouldLockInitialize = false; + handleErrorWithHandler( + CameraException( + 'No CameraDescription found.', + 'No cameras are available in the controller.', + ), + config.onError, + ); + } + + final int preferredIndex = cameras.indexWhere( + (CameraDescription e) => + e.lensDirection == config.preferredLensDirection, + ); + final int index; + if (preferredIndex != -1 && _c == null) { + index = preferredIndex; + currentCameraIndex = preferredIndex; + } else { + index = currentCameraIndex; + } + // Initialize the controller with the given resolution preset. + _controller = CameraController( + cameraDescription ?? cameras[index], + config.resolutionPreset, + enableAudio: enableAudio, + imageFormatGroup: config.imageFormatGroup, + )..addListener(() { + if (controller.value.hasError) { + handleErrorWithHandler( + CameraException( + 'CameraController exception', + controller.value.errorDescription, + ), + config.onError, + ); + } + }); + + try { + await controller.initialize(); + safeSetState(() {}); + // Call recording preparation first. + if (shouldPrepareForVideoRecording) { + await controller.prepareForVideoRecording(); + } + // Then call other asynchronous methods. + await Future.wait(>[ + if (config.lockCaptureOrientation != null) + controller.lockCaptureOrientation(config.lockCaptureOrientation), + (() async => _maxAvailableExposureOffset = + await controller.getMaxExposureOffset())(), + (() async => _minAvailableExposureOffset = + await controller.getMinExposureOffset())(), + (() async => + _maxAvailableZoom = await controller.getMaxZoomLevel())(), + (() async => + _minAvailableZoom = await controller.getMinZoomLevel())(), + ]); + } catch (e) { + handleErrorWithHandler(e, config.onError); + } finally { + safeSetState(() { + _shouldLockInitialize = false; + }); + } + }); + } + + /// The method to switch cameras. + /// 切换相机的方法 + /// + /// Switch cameras in order. When the [currentCameraIndex] reached the length + /// of cameras, start from the beginning. + /// 按顺序切换相机。当达到相机数量时从头开始。 + void switchCameras() { + ++currentCameraIndex; + if (currentCameraIndex == cameras.length) { + currentCameraIndex = 0; + } + initCameras(currentCamera); + } + + /// Obtain the next camera description for semantics. + CameraDescription get _nextCameraDescription { + final int nextIndex = currentCameraIndex + 1; + if (nextIndex == cameras.length) { + return cameras[0]; + } + return cameras[nextIndex]; + } + + /// The method to switch between flash modes. + /// 切换闪光灯模式的方法 + Future switchFlashesMode() async { + switch (controller.value.flashMode) { + case FlashMode.off: + await controller.setFlashMode(FlashMode.auto); + break; + case FlashMode.auto: + await controller.setFlashMode(FlashMode.always); + break; + case FlashMode.always: + case FlashMode.torch: + await controller.setFlashMode(FlashMode.off); + break; + } + } + + Future zoom(double scale) async { + final double _zoom = (_baseZoom * scale) + .clamp(_minAvailableZoom, _maxAvailableZoom) + .toDouble(); + if (_zoom == _currentZoom) { + return; + } + _currentZoom = _zoom; + + await controller.setZoomLevel(_currentZoom); + } + + /// Handle when the scale gesture start. + /// 处理缩放开始的手势 + void _handleScaleStart(ScaleStartDetails details) { + _baseZoom = _currentZoom; + } + + /// Handle when the double tap scale details is updating. + /// 处理双指缩放更新 + Future _handleScaleUpdate(ScaleUpdateDetails details) async { + // When there are not exactly two fingers on screen don't scale + if (_pointers != 2) { + return; + } + + zoom(details.scale); + } + + void _restartPointDisplayTimer() { + _exposurePointDisplayTimer?.cancel(); + _exposurePointDisplayTimer = Timer(const Duration(seconds: 5), () { + _lastExposurePoint.value = null; + }); + } + + void _restartModeDisplayTimer() { + _exposureModeDisplayTimer?.cancel(); + _exposureModeDisplayTimer = Timer(const Duration(seconds: 2), () { + _isExposureModeDisplays.value = false; + }); + } + + /// Use the specific [mode] to update the exposure mode. + /// 设置曝光模式 + void switchExposureMode() { + if (_exposureMode.value == ExposureMode.auto) { + _exposureMode.value = ExposureMode.locked; + } else { + _exposureMode.value = ExposureMode.auto; + } + _exposurePointDisplayTimer?.cancel(); + if (_exposureMode.value == ExposureMode.auto) { + _exposurePointDisplayTimer = Timer(const Duration(seconds: 5), () { + _lastExposurePoint.value = null; + }); + } + controller.setExposureMode(_exposureMode.value); + _restartModeDisplayTimer(); + } + + /// Use the [details] point to set exposure and focus. + /// 通过点击点的 [details] 设置曝光和对焦。 + Future setExposureAndFocusPoint( + Offset position, + BoxConstraints constraints, + ) async { + _isExposureModeDisplays.value = false; + // Ignore point update when the new point is less than 8% and higher than + // 92% of the screen's height. + if (position.dy < constraints.maxHeight / 12 || + position.dy > constraints.maxHeight / 12 * 11) { + return; + } + realDebugPrint( + 'Setting new exposure point (x: ${position.dx}, y: ${position.dy})', + ); + _lastExposurePoint.value = position; + _restartPointDisplayTimer(); + _currentExposureOffset.value = 0; + if (_exposureMode.value == ExposureMode.locked) { + await controller.setExposureMode(ExposureMode.auto); + _exposureMode.value = ExposureMode.auto; + } + controller.setExposurePoint( + _lastExposurePoint.value!.scale( + 1 / constraints.maxWidth, + 1 / constraints.maxHeight, + ), + ); + if (controller.value.focusPointSupported == true) { + controller.setFocusPoint( + _lastExposurePoint.value!.scale( + 1 / constraints.maxWidth, + 1 / constraints.maxHeight, + ), + ); + } + } + + /// Update the exposure offset using the exposure controller. + /// 使用曝光控制器更新曝光值 + void updateExposureOffset(double value) { + if (value == _currentExposureOffset.value) { + return; + } + _currentExposureOffset.value = value; + controller.setExposureOffset(value); + if (!_isExposureModeDisplays.value) { + _isExposureModeDisplays.value = true; + } + _restartModeDisplayTimer(); + _restartPointDisplayTimer(); + } + + /// Update the scale value while the user is shooting. + /// 用户在录制时通过滑动更新缩放 + void onShootingButtonMove( + PointerMoveEvent event, + BoxConstraints constraints, + ) { + _lastShootingButtonPressedPosition ??= event.position; + if (controller.value.isRecordingVideo) { + // First calculate relative offset. + final Offset _offset = + event.position - _lastShootingButtonPressedPosition!; + // Then turn negative, + // multiply double with 10 * 1.5 - 1 = 14, + // plus 1 to ensure always scale. + final double _scale = _offset.dy / constraints.maxHeight * -14 + 1; + zoom(_scale); + } + } + + /// The method to take a picture. + /// 拍照方法 + /// + /// The picture will only taken when [isInitialized], and the camera is not + /// taking pictures. + /// 仅当初始化成功且相机未在拍照时拍照。 + Future takePicture() async { + if (!controller.value.isInitialized) { + handleErrorWithHandler( + StateError('Camera has not initialized.'), + config.onError, + ); + } + if (controller.value.isTakingPicture) { + return; + } + try { + final XFile _file = await controller.takePicture(); + // Delay disposing the controller to hold the preview. + Future.delayed(const Duration(milliseconds: 500), () { + _controller?.dispose(); + safeSetState(() { + _controller = null; + }); + }); + final AssetEntity? entity = await CameraPickerViewer.pushToViewer( + context, + pickerState: this, + pickerType: CameraPickerViewType.image, + previewXFile: _file, + theme: theme, + shouldDeletePreviewFile: shouldDeletePreviewFile, + shouldAutoPreviewVideo: shouldAutoPreviewVideo, + onEntitySaving: config.onEntitySaving, + ); + if (entity != null) { + Navigator.of(context).pop(entity); + return; + } + initCameras(currentCamera); + safeSetState(() {}); + } catch (e) { + realDebugPrint('Error when preview the captured file: $e'); + handleErrorWithHandler(e, config.onError); + } + } + + /// When the [shootingButton]'s `onLongPress` called, the [_recordDetectTimer] + /// will be initialized to achieve press time detection. If the duration + /// reached to same as [recordDetectDuration], and the timer still active, + /// start recording video. + /// 当 [shootingButton] 触发了长按,初始化一个定时器来实现时间检测。如果长按时间 + /// 达到了 [recordDetectDuration] 且定时器未被销毁,则开始录制视频。 + void recordDetection() { + _recordDetectTimer = Timer(recordDetectDuration, () { + startRecordingVideo(); + safeSetState(() {}); + }); + setState(() { + isShootingButtonAnimate = true; + }); + } + + /// This will be given to the [Listener] in the [shootingButton]. When it's + /// called, which means no more pressing on the button, cancel the timer and + /// reset the status. + /// 这个方法会赋值给 [shootingButton] 中的 [Listener]。当按钮释放了点击后,定时器 + /// 将被取消,并且状态会重置。 + void recordDetectionCancel(PointerUpEvent event) { + _recordDetectTimer?.cancel(); + if (isShootingButtonAnimate) { + safeSetState(() { + isShootingButtonAnimate = false; + }); + } + if (controller.value.isRecordingVideo) { + _lastShootingButtonPressedPosition = null; + safeSetState(() {}); + stopRecordingVideo(); + } + } + + /// Set record file path and start recording. + /// 设置拍摄文件路径并开始录制视频 + Future startRecordingVideo() async { + if (!controller.value.isRecordingVideo) { + controller.startVideoRecording().then((dynamic _) { + safeSetState(() {}); + if (isRecordingRestricted) { + _recordCountdownTimer = Timer(maximumRecordingDuration!, () { + stopRecordingVideo(); + }); + } + }).catchError((Object e) { + realDebugPrint('Error when start recording video: $e'); + if (controller.value.isRecordingVideo) { + controller.stopVideoRecording().catchError((Object e) { + realDebugPrint( + 'Error when stop recording video after an error start: $e', + ); + stopRecordingVideo(); + }); + } + handleErrorWithHandler(e, config.onError); + }); + } + } + + /// Stop the recording process. + /// 停止录制视频 + Future stopRecordingVideo() async { + void _handleError() { + _recordCountdownTimer?.cancel(); + isShootingButtonAnimate = false; + safeSetState(() {}); + } + + if (controller.value.isRecordingVideo) { + controller.stopVideoRecording().then((XFile file) async { + final AssetEntity? entity = await CameraPickerViewer.pushToViewer( + context, + pickerState: this, + pickerType: CameraPickerViewType.video, + previewXFile: file, + theme: theme, + shouldDeletePreviewFile: shouldDeletePreviewFile, + shouldAutoPreviewVideo: shouldAutoPreviewVideo, + ); + if (entity != null) { + Navigator.of(context).pop(entity); + } + }).catchError((Object e) { + realDebugPrint('Error when stop recording video: $e'); + realDebugPrint('Try to initialize a new CameraController...'); + initCameras(); + _handleError(); + handleErrorWithHandler(e, config.onError); + }).whenComplete(() { + isShootingButtonAnimate = false; + safeSetState(() {}); + }); + return; + } + _handleError(); + } + + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + /////////////////////////// Just a line breaker //////////////////////////// + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + + PointerUpEventListener? get onPointerUp { + if (enableRecording && !enableTapRecording) { + return recordDetectionCancel; + } + return null; + } + + PointerMoveEventListener? onPointerMove(BoxConstraints c) { + if (enablePullToZoomInRecord) { + return (PointerMoveEvent e) => onShootingButtonMove(e, c); + } + return null; + } + + GestureTapCallback? get onTap { + if (enableTapRecording) { + if (_controller?.value.isRecordingVideo == true) { + return stopRecordingVideo; + } + return () { + startRecordingVideo(); + setState(() { + isShootingButtonAnimate = true; + }); + }; + } + if (!onlyEnableRecording) { + return takePicture; + } + return null; + } + + String? get onTapHint { + if (enableTapRecording) { + if (_controller?.value.isRecordingVideo == true) { + return _textDelegate.sActionStopRecordingHint; + } + return _textDelegate.sActionRecordHint; + } + if (!onlyEnableRecording) { + return _textDelegate.sActionShootHint; + } + return null; + } + + GestureLongPressCallback? get onLongPress { + if (enableRecording && !enableTapRecording) { + return recordDetection; + } + return null; + } + + String? get onLongPressHint { + if (enableRecording && !enableTapRecording) { + return _textDelegate.sActionRecordHint; + } + return null; + } + + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + /////////////////////////// Just a line breaker //////////////////////////// + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + + /// Settings action section widget. + /// 设置操作区 + /// + /// This displayed at the top of the screen. + /// 该区域显示在屏幕上方。 + Widget settingsAction(BuildContext context) { + return _initializeWrapper( + builder: (CameraValue v, __) { + if (v.isRecordingVideo) { + return const SizedBox.shrink(); + } + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 12.0), + child: Row( + children: [ + switchFlashesButton(v), + const Spacer(), + if (cameras.length > 1) switchCamerasButton, + ], + ), + ); + }, + ); + } + + /// The button to switch between cameras. + /// 切换相机的按钮 + Widget get switchCamerasButton { + return IconButton( + tooltip: _textDelegate.sSwitchCameraLensDirectionLabel( + _nextCameraDescription.lensDirection, + ), + onPressed: switchCameras, + icon: Icon( + Platform.isIOS + ? Icons.flip_camera_ios_outlined + : Icons.flip_camera_android_outlined, + size: 24, + ), + ); + } + + /// The button to switch flash modes. + /// 切换闪光灯模式的按钮 + Widget switchFlashesButton(CameraValue value) { + IconData icon; + switch (value.flashMode) { + case FlashMode.off: + icon = Icons.flash_off; + break; + case FlashMode.auto: + icon = Icons.flash_auto; + break; + case FlashMode.always: + case FlashMode.torch: + icon = Icons.flash_on; + break; + } + return IconButton( + onPressed: switchFlashesMode, + tooltip: _textDelegate.sFlashModeLabel(value.flashMode), + icon: Icon(icon, size: 24), + ); + } + + /// Text widget for shooting tips. + /// 拍摄的提示文字 + Widget tipsTextWidget(CameraController? controller) { + return AnimatedOpacity( + duration: recordDetectDuration, + opacity: controller?.value.isRecordingVideo == true ? 0 : 1, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 20.0), + child: Text( + _textDelegate.shootingTips, + style: const TextStyle(fontSize: 15.0), + ), + ), + ); + } + + /// Shooting action section widget. + /// 拍照操作区 + /// + /// This displayed at the top of the screen. + /// 该区域显示在屏幕下方。 + Widget shootingActions( + BuildContext context, + CameraController? controller, + BoxConstraints constraints, + ) { + return SizedBox( + height: 118, + child: Row( + children: [ + if (controller?.value.isRecordingVideo != true) + Expanded(child: backButton(context, constraints)) + else + const Spacer(), + Expanded( + child: Center( + child: MergeSemantics(child: shootingButton(constraints)), + ), + ), + const Spacer(), + ], + ), + ); + } + + /// The back button near to the [shootingButton]. + /// 靠近拍照键的返回键 + Widget backButton(BuildContext context, BoxConstraints constraints) { + return IconButton( + onPressed: Navigator.of(context).pop, + tooltip: MaterialLocalizations.of(context).backButtonTooltip, + icon: Container( + alignment: Alignment.center, + width: 24, + height: 24, + decoration: const BoxDecoration( + color: Colors.white, + shape: BoxShape.circle, + ), + child: const Icon(Icons.keyboard_arrow_down, color: Colors.black), + ), + ); + } + + /// The shooting button. + /// 拍照按钮 + Widget shootingButton(BoxConstraints constraints) { + final scal = MediaQuery.of(context).size.width/375.0; + Size outerSize = Size.square(90.0*scal); + Size innerSize = Size.square(64.0*scal); + return Semantics( + label: _textDelegate.sActionShootingButtonTooltip, + onTap: onTap, + onTapHint: onTapHint, + onLongPress: onLongPress, + onLongPressHint: onLongPressHint, + child: Listener( + behavior: HitTestBehavior.opaque, + onPointerUp: onPointerUp, + onPointerMove: onPointerMove(constraints), + child: GestureDetector( + onTap: onTap, + onLongPress: onLongPress, + child: SizedBox.fromSize( + size: outerSize, + child: Stack( + children: [ + Center( + child: AnimatedContainer( + duration: kThemeChangeDuration, + width: isShootingButtonAnimate + ? outerSize.width + : innerSize.width, + height: isShootingButtonAnimate + ? outerSize.height + : innerSize.height, + padding: EdgeInsets.all(isShootingButtonAnimate ? 41*scal : 11*scal), + decoration: BoxDecoration( + color: theme.canvasColor.withOpacity(0.30), + shape: BoxShape.circle, + ), + child: const DecoratedBox( + decoration: BoxDecoration( + color: Colors.white, + shape: BoxShape.circle, + ), + ), + ), + ), + _initializeWrapper( + isInitialized: () => + controller.value.isRecordingVideo && + isRecordingRestricted, + builder: (_, __) => CircularProgressBar( + duration: maximumRecordingDuration!, + outerRadius: outerSize.width, + ringsColor: theme.indicatorColor, + ringsWidth: 2.0, + ), + ), + ], + ), + ), + ), + ), + ); + } + + Widget _exposureSlider( + ExposureMode mode, + double size, + double height, + double gap, + ) { + final bool isLocked = mode == ExposureMode.locked; + final Color? color = isLocked ? _lockedColor : theme.iconTheme.color; + + Widget _line() { + return ValueListenableBuilder( + valueListenable: _isExposureModeDisplays, + builder: (_, bool value, Widget? child) => AnimatedOpacity( + duration: _kDuration, + opacity: value ? 1 : 0, + child: child, + ), + child: Center(child: Container(width: 1, color: color)), + ); + } + + return ValueListenableBuilder( + valueListenable: _currentExposureOffset, + builder: (_, double exposure, __) { + final double _effectiveTop = (size + gap) + + (_minAvailableExposureOffset.abs() - exposure) * + (height - size * 3) / + (_maxAvailableExposureOffset - _minAvailableExposureOffset); + final double _effectiveBottom = height - _effectiveTop - size; + return Stack( + clipBehavior: Clip.none, + children: [ + Positioned.fill( + top: _effectiveTop + gap, + child: _line(), + ), + Positioned.fill( + bottom: _effectiveBottom + gap, + child: _line(), + ), + Positioned( + top: (_minAvailableExposureOffset.abs() - exposure) * + (height - size * 3) / + (_maxAvailableExposureOffset - _minAvailableExposureOffset), + child: Transform.rotate( + angle: exposure, + child: Icon( + Icons.wb_sunny_outlined, + size: size, + color: color, + ), + ), + ), + Positioned.fill( + top: -10, + bottom: -10, + child: RotatedBox( + quarterTurns: 3, + child: Directionality( + textDirection: TextDirection.ltr, + child: Opacity( + opacity: 0, + child: Slider( + value: exposure, + min: _minAvailableExposureOffset, + max: _maxAvailableExposureOffset, + onChanged: updateExposureOffset, + ), + ), + ), + ), + ), + ], + ); + }, + ); + } + + /// The area widget for the last exposure point that user manually set. + /// 用户手动设置的曝光点的区域显示 + Widget _focusingAreaWidget(BoxConstraints constraints) { + Widget _buildControl(double size, double height) { + const double _verticalGap = 3; + return ValueListenableBuilder( + valueListenable: _exposureMode, + builder: (_, ExposureMode mode, __) { + final bool isLocked = mode == ExposureMode.locked; + return Column( + children: [ + ValueListenableBuilder( + valueListenable: _isExposureModeDisplays, + builder: (_, bool value, Widget? child) => AnimatedOpacity( + duration: _kDuration, + opacity: value ? 1 : 0, + child: child, + ), + child: GestureDetector( + onTap: switchExposureMode, + child: SizedBox.fromSize( + size: Size.square(size), + child: Icon( + isLocked ? Icons.lock_rounded : Icons.lock_open_rounded, + size: size, + color: isLocked ? _lockedColor : null, + ), + ), + ), + ), + const SizedBox(height: _verticalGap), + Expanded( + child: _exposureSlider(mode, size, height, _verticalGap), + ), + const SizedBox(height: _verticalGap), + SizedBox.fromSize(size: Size.square(size)), + ], + ); + }, + ); + } + + Widget _buildFromPoint(Offset point) { + const double _controllerWidth = 20; + final double _pointWidth = constraints.maxWidth / 5; + final double _exposureControlWidth = + enableExposureControlOnPoint ? _controllerWidth : 0; + final double _width = _pointWidth + _exposureControlWidth + 2; + + final bool _shouldReverseLayout = point.dx > constraints.maxWidth / 4 * 3; + + final double _effectiveLeft = math.min( + constraints.maxWidth - _width, + math.max(0, point.dx - _width / 2), + ); + final double _effectiveTop = math.min( + constraints.maxHeight - _pointWidth * 3, + math.max(0, point.dy - _pointWidth * 3 / 2), + ); + + return Positioned( + left: _effectiveLeft, + top: _effectiveTop, + width: _width, + height: _pointWidth * 3, + child: ExcludeSemantics( + child: Row( + textDirection: + _shouldReverseLayout ? TextDirection.rtl : TextDirection.ltr, + children: [ + ExposurePointWidget( + key: ValueKey(DateTime.now().millisecondsSinceEpoch), + size: _pointWidth, + color: theme.iconTheme.color!, + ), + if (enableExposureControlOnPoint) const SizedBox(width: 2), + if (enableExposureControlOnPoint) + SizedBox.fromSize( + size: Size(_exposureControlWidth, _pointWidth * 3), + child: _buildControl(_controllerWidth, _pointWidth * 3), + ), + ], + ), + ), + ); + } + + return ValueListenableBuilder( + valueListenable: _lastExposurePoint, + builder: (_, Offset? point, __) { + if (point == null) { + return const SizedBox.shrink(); + } + return _buildFromPoint(point); + }, + ); + } + + /// The [GestureDetector] widget for setting exposure point manually. + /// 用于手动设置曝光点的 [GestureDetector] + Widget _exposureDetectorWidget( + BuildContext context, + BoxConstraints constraints, + ) { + void _focus(TapUpDetails d) { + // Only call exposure point updates when the controller is initialized. + if (_controller?.value.isInitialized == true) { + Feedback.forTap(context); + setExposureAndFocusPoint(d.globalPosition, constraints); + } + } + + return Positioned.fill( + child: Semantics( + label: _textDelegate.sCameraPreviewLabel( + _controller?.description.lensDirection, + ), + image: true, + onTap: () { + // Focus on the center point when using semantics tap. + final Size size = MediaQuery.of(context).size; + final TapUpDetails details = TapUpDetails( + kind: PointerDeviceKind.touch, + globalPosition: Offset(size.width / 2, size.height / 2), + ); + _focus(details); + }, + onTapHint: _textDelegate.sActionManuallyFocusHint, + sortKey: const OrdinalSortKey(1), + hidden: _controller == null, + excludeSemantics: true, + child: GestureDetector( + onTapUp: _focus, + behavior: HitTestBehavior.translucent, + child: const SizedBox.expand(), + ), + ), + ); + } + + Widget _cameraPreview( + BuildContext context, { + required DeviceOrientation orientation, + required BoxConstraints constraints, + }) { + Widget _preview = Listener( + onPointerDown: (_) => _pointers++, + onPointerUp: (_) => _pointers--, + child: GestureDetector( + onScaleStart: enablePinchToZoom ? _handleScaleStart : null, + onScaleUpdate: enablePinchToZoom ? _handleScaleUpdate : null, + // Enabled cameras switching by default if we have multiple cameras. + onDoubleTap: cameras.length > 1 ? switchCameras : null, + child: CameraPreview(controller), + ), + ); + + // Make a transformed widget if it's defined. + final Widget? _transformedWidget = config.previewTransformBuilder?.call( + context, + controller, + _preview, + ); + _preview = _transformedWidget ?? _preview; + + _preview = RotatedBox( + quarterTurns: -config.cameraQuarterTurns, + child: Transform.scale( + scale: _effectiveCameraScale(constraints, controller), + child: Center(child: _preview), + ), + ); + return _preview; + } + + Widget _initializeWrapper({ + required Widget Function(CameraValue, Widget?) builder, + bool Function()? isInitialized, + Widget? child, + }) { + if (_controller != null) { + return ValueListenableBuilder( + valueListenable: controller, + builder: (_, CameraValue value, Widget? w) { + return isInitialized?.call() ?? value.isInitialized + ? builder(value, w) + : const SizedBox.shrink(); + }, + child: child, + ); + } + return const SizedBox.shrink(); + } + + Widget _cameraBuilder({ + required BuildContext context, + required CameraValue value, + required BoxConstraints constraints, + }) { + return RepaintBoundary( + child: Stack( + children: [ + Positioned.fill( + child: _cameraPreview( + context, + orientation: value.deviceOrientation, + constraints: constraints, + ), + ), + if (config.foregroundBuilder != null) + Positioned.fill(child: config.foregroundBuilder!(context, value)), + ], + ), + ); + } + + Widget _contentBuilder(BoxConstraints constraints) { + return SafeArea( + child: Padding( + padding: const EdgeInsets.only(bottom: 20.0), + child: Column( + children: [ + Semantics( + sortKey: const OrdinalSortKey(0), + hidden: _controller == null, + child: settingsAction(context), + ), + const Spacer(), + ExcludeSemantics(child: tipsTextWidget(_controller)), + Semantics( + sortKey: const OrdinalSortKey(2), + hidden: _controller == null, + child: shootingActions(context, _controller, constraints), + ), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return AnnotatedRegion( + value: SystemUiOverlayStyle.light, + child: Theme( + data: theme, + child: Material( + color: Colors.black, + child: RotatedBox( + quarterTurns: config.cameraQuarterTurns, + child: LayoutBuilder( + builder: (BuildContext c, BoxConstraints constraints) => Stack( + fit: StackFit.expand, + alignment: Alignment.center, + children: [ + ExcludeSemantics( + child: _initializeWrapper( + builder: (CameraValue value, __) => _cameraBuilder( + context: c, + value: value, + constraints: constraints, + ), + ), + ), + if (enableSetExposure) + _exposureDetectorWidget(c, constraints), + _initializeWrapper( + builder: (_, __) => _focusingAreaWidget(constraints), + ), + _contentBuilder(constraints), + ], + ), + ), + ), + ), + ), + ); + } +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker_page_route.dart b/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker_page_route.dart new file mode 100644 index 00000000..a9b56c1c --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker_page_route.dart @@ -0,0 +1,77 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/7/15 21:44 +/// +import 'package:flutter/material.dart'; + +/// Build [AssetPickerPageRoute] with the given generic type. +/// 构建匹配泛型的 [AssetPickerPageRoute] +typedef CameraPickerPageRouteBuilder = CameraPickerPageRoute Function( + Widget picker, +); + +/// Built a slide page transition for the picker. +/// 为选择器构造一个上下进出的页面过渡动画 +class CameraPickerPageRoute extends PageRoute { + CameraPickerPageRoute({ + required this.builder, + this.transitionCurve = Curves.easeIn, + this.transitionDuration = const Duration(milliseconds: 300), + this.barrierColor, + this.barrierDismissible = false, + this.barrierLabel, + this.maintainState = true, + this.opaque = true, + this.canTransitionFromPredicate, + }); + + final WidgetBuilder builder; + + final Curve transitionCurve; + @override + final Duration transitionDuration; + + @override + final Color? barrierColor; + @override + final bool barrierDismissible; + @override + final String? barrierLabel; + @override + final bool opaque; + @override + final bool maintainState; + + final bool Function(TransitionRoute)? canTransitionFromPredicate; + + @override + bool canTransitionFrom(TransitionRoute previousRoute) => + canTransitionFromPredicate?.call(previousRoute) ?? false; + + @override + Widget buildPage( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + ) { + return builder(context); + } + + @override + Widget buildTransitions( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + Widget child, + ) { + return SlideTransition( + position: Tween( + begin: const Offset(0, 1), + end: Offset.zero, + ).animate( + CurvedAnimation(curve: transitionCurve, parent: animation), + ), + child: child, + ); + } +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker_viewer.dart b/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker_viewer.dart new file mode 100644 index 00000000..6e22fd31 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/widgets/camera_picker_viewer.dart @@ -0,0 +1,486 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/7/16 22:02 +/// +import 'dart:async'; +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:camera/camera.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/semantics.dart'; +import 'package:image_cropper/image_cropper.dart'; +import 'package:path/path.dart' as path; +import 'package:video_player/video_player.dart'; + +import '../constants/constants.dart'; +import '../internals/enums.dart'; +import '../internals/methods.dart'; +import '../internals/type_defs.dart'; + +import 'camera_picker.dart'; + +class CameraPickerViewer extends StatefulWidget { + const CameraPickerViewer({ + Key? key, + required this.pickerState, + required this.pickerType, + required this.previewXFile, + required this.theme, + this.shouldDeletePreviewFile = false, + this.shouldAutoPreviewVideo = false, + this.onEntitySaving, + this.onError, + }) : super(key: key); + + /// State of the picker. + /// 选择器的状态实例 + final CameraPickerState pickerState; + + /// The type of the viewer. (Image | Video) + /// 预览的类型(图片或视频) + final CameraPickerViewType pickerType; + + /// The [XFile] of the preview file. + /// 预览文件的 [XFile] 实例 + final XFile previewXFile; + + /// The [ThemeData] which the picker is using. + /// 选择器使用的主题 + final ThemeData theme; + + /// {@macro wechat_camera_picker.shouldDeletePreviewFile} + final bool shouldDeletePreviewFile; + + /// {@macro wechat_camera_picker.shouldAutoPreviewVideo} + final bool shouldAutoPreviewVideo; + + /// {@macro wechat_camera_picker.EntitySaveCallback} + final EntitySaveCallback? onEntitySaving; + + /// {@macro wechat_camera_picker.CameraErrorHandler} + final CameraErrorHandler? onError; + + /// Static method to push with the navigator. + /// 跳转至选择预览的静态方法 + static Future pushToViewer( + BuildContext context, { + required CameraPickerState pickerState, + required CameraPickerViewType pickerType, + required XFile previewXFile, + required ThemeData theme, + bool shouldDeletePreviewFile = false, + bool shouldAutoPreviewVideo = false, + EntitySaveCallback? onEntitySaving, + CameraErrorHandler? onError, + }) { + return Navigator.of(context).push( + PageRouteBuilder( + pageBuilder: (_, __, ___) => CameraPickerViewer( + pickerState: pickerState, + pickerType: pickerType, + previewXFile: previewXFile, + theme: theme, + shouldDeletePreviewFile: shouldDeletePreviewFile, + shouldAutoPreviewVideo: shouldAutoPreviewVideo, + onEntitySaving: onEntitySaving, + onError: onError, + ), + transitionsBuilder: ( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + Widget child, + ) { + return FadeTransition(opacity: animation, child: child); + }, + ), + ); + } + + @override + _CameraPickerViewerState createState() => _CameraPickerViewerState(); +} + +class _CameraPickerViewerState extends State { + /// Controller for the video player. + /// 视频播放的控制器 + late final VideoPlayerController videoController = + VideoPlayerController.file(previewFile); + + /// Whether the controller has initialized. + /// 控制器是否已初始化 + late bool hasLoaded = pickerType == CameraPickerViewType.image; + + /// Whether there's any error when initialize the video controller. + /// 初始化视频控制器时是否发生错误 + bool hasErrorWhenInitializing = false; + + /// Whether the player is playing. + /// 播放器是否在播放 + final ValueNotifier isPlaying = ValueNotifier(false); + + /// Whether the controller is playing. + /// 播放控制器是否在播放 + bool get isControllerPlaying => videoController.value.isPlaying; + + CameraPickerState get pickerState => widget.pickerState; + + CameraPickerViewType get pickerType => widget.pickerType; + + XFile get previewXFile => widget.previewXFile; + + /// Construct an [File] instance through [previewXFile]. + /// 通过 [previewXFile] 构建 [File] 实例。 + File? _previewFile; + File get previewFile { + if(_previewFile == null) return File(previewXFile.path); + return _previewFile!; + } + set previewFile(File file){ + _previewFile = file; + } + ThemeData get theme => widget.theme; + + bool get shouldDeletePreviewFile => widget.shouldDeletePreviewFile; + + bool get shouldAutoPreviewVideo => widget.shouldAutoPreviewVideo; + + @override + void initState() { + super.initState(); + if (pickerType == CameraPickerViewType.video) { + initializeVideoPlayerController(); + } + } + + @override + void dispose() { + /// Remove listener from the controller and dispose it when widget dispose. + /// 部件销毁时移除控制器的监听并销毁控制器。 + videoController.removeListener(videoPlayerListener); + videoController.pause(); + videoController.dispose(); + super.dispose(); + } + + /// Get media url from the asset, then initialize the controller and add with + /// a listener. + /// 从资源获取媒体url后初始化,并添加监听。 + Future initializeVideoPlayerController() async { + try { + await videoController.initialize(); + videoController.addListener(videoPlayerListener); + hasLoaded = true; + if (shouldAutoPreviewVideo) { + videoController.play(); + } + } catch (e) { + hasErrorWhenInitializing = true; + realDebugPrint('Error when initializing video controller: $e'); + handleErrorWithHandler(e, widget.onError); + } finally { + if (mounted) { + setState(() {}); + } + } + } + + /// Listener for the video player. + /// 播放器的监听方法 + void videoPlayerListener() { + if (isControllerPlaying != isPlaying.value) { + isPlaying.value = isControllerPlaying; + } + } + + /// Callback for the play button. + /// 播放按钮的回调 + /// + /// Normally it only switches play state for the player. If the video reaches + /// the end, then click the button will make the video replay. + /// 一般来说按钮只切换播放暂停。当视频播放结束时,点击按钮将从头开始播放。 + Future playButtonCallback() async { + if (isPlaying.value) { + videoController.pause(); + } else { + if (videoController.value.duration == videoController.value.position) { + videoController + ..seekTo(Duration.zero) + ..play(); + } else { + videoController.play(); + } + } + } + + /// When users confirm to use the taken file, create the [AssetEntity]. + /// While the entity might returned null, there's no side effects if popping `null` + /// because the parent picker will ignore it. + Future createAssetEntityAndPop(File file) async { + if (widget.onEntitySaving != null) { + await widget.onEntitySaving!( + context: context, + viewType: pickerType, + file: file, + ); + return; + } + AssetEntity? entity; + try { + final PermissionState _ps = await PhotoManager.requestPermissionExtend(); + if (_ps == PermissionState.authorized || _ps == PermissionState.limited) { + switch (pickerType) { + case CameraPickerViewType.image: + final Uint8List data = await file.readAsBytes(); + entity = await PhotoManager.editor.saveImage( + data, + title: path.basename(file.path), + ); + break; + case CameraPickerViewType.video: + entity = await PhotoManager.editor.saveVideo( + file, + title: path.basename(file.path), + ); + break; + } + if (shouldDeletePreviewFile && file.existsSync()) { + file.delete(); + } + return; + } + handleErrorWithHandler( + StateError( + 'Permission is not fully granted to save the captured file.', + ), + widget.onError, + ); + } catch (e) { + realDebugPrint('Saving entity failed: $e'); + handleErrorWithHandler(e, widget.onError); + } finally { + Navigator.of(context).pop(entity); + } + } + + /// The back button for the preview section. + /// 预览区的返回按钮 + Widget previewBackButton(BuildContext context) { + return Semantics( + sortKey: const OrdinalSortKey(0), + child: Padding( + padding: const EdgeInsets.all(10.0), + child: IconButton( + onPressed: () { + if (previewFile.existsSync()) { + previewFile.delete(); + } + Navigator.of(context).pop(); + }, + padding: EdgeInsets.zero, + constraints: BoxConstraints.tight(const Size.square(28)), + tooltip: MaterialLocalizations.of(context).backButtonTooltip, + iconSize: 18, + icon: Container( + padding: const EdgeInsets.all(5), + child: Icon( + Icons.arrow_back_ios, + color: Theme.of(context).canvasColor, + ), + ), + ), + ), + ); + } + + Widget previewWidget(BuildContext context) { + final Widget _builder; + if (pickerType == CameraPickerViewType.video) { + _builder = Stack( + children: [ + Center( + child: AspectRatio( + aspectRatio: videoController.value.aspectRatio, + child: VideoPlayer(videoController), + ), + ), + playControlButton, + ], + ); + } else { + _builder = Image.file(previewFile); + } + return MergeSemantics( + child: Semantics( + label: Constants.textDelegate.sActionPreviewHint, + image: true, + onTapHint: Constants.textDelegate.sActionPreviewHint, + sortKey: const OrdinalSortKey(1), + child: _builder, + ), + ); + } + + /// The confirm button for the preview section. + /// 预览区的确认按钮 + Widget get previewConfirmButton { + return MaterialButton( + minWidth: 20.0, + height: 44.0, + padding: const EdgeInsets.symmetric(horizontal: 52.0), + color: const Color(0xfffa8232), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ), + child: Text( + Constants.textDelegate.confirm, + style: TextStyle( + color: theme.textTheme.bodyText1?.color, + fontSize: 16.0, + fontWeight: FontWeight.normal, + ), + ), + onPressed: ()=>createAssetEntityAndPop(previewFile), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + } + + /// The confirm button for the preview section. + /// 裁剪按钮 + Widget get cropperButton { + return MaterialButton( + minWidth: 20.0, + height: 44.0, + padding: const EdgeInsets.symmetric(horizontal: 52.0), + color: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ), + child: Text( + Constants.textDelegate.cropper, + style: const TextStyle( + color: Color(0xfffa8232), + fontSize: 16.0, + fontWeight: FontWeight.normal, + ), + ), + onPressed: ()=>imageCropper(), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ); + } + /// A play control button the video playing process. + /// 控制视频播放的按钮 + Widget get playControlButton { + return ValueListenableBuilder( + valueListenable: isPlaying, + builder: (_, bool value, Widget? child) => GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: value ? playButtonCallback : null, + child: Center( + child: AnimatedOpacity( + duration: kThemeAnimationDuration, + opacity: value ? 0.0 : 1.0, + child: GestureDetector( + onTap: playButtonCallback, + child: DecoratedBox( + decoration: const BoxDecoration( + boxShadow: [BoxShadow(color: Colors.black12)], + shape: BoxShape.circle, + ), + child: Icon( + value ? Icons.pause_circle_outline : Icons.play_circle_filled, + size: 70.0, + color: Colors.white, + ), + ), + ), + ), + ), + ), + ); + } + + /// Actions section for the viewer. Including 'back' and 'confirm' button. + /// 预览的操作区。包括"返回"和"确定"按钮。 + Widget viewerActions(BuildContext context) { + + final top = MediaQuery.of(context).padding.top > 5 ? MediaQuery.of(context).padding.top - 5 : MediaQuery.of(context).padding.top; + + + return Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding(padding: EdgeInsets.only(top: top ), + child:Row( + children: [ + previewBackButton(context), + const Spacer(), + ], + ),), + Container( + padding:const EdgeInsets.only(left: 15,right: 15,top: 15,bottom: 15), + child: Row( + children: [ + if (pickerType == CameraPickerViewType.image) cropperButton else const SizedBox(), + const Spacer(), + previewConfirmButton, + ], + ), + ), + + ], + ); + } + Future imageCropper() async{ + + File? croppedFile = await ImageCropper().cropImage( + sourcePath: previewFile.path , + aspectRatioPresets: [ + CropAspectRatioPreset.square, + CropAspectRatioPreset.ratio3x2, + CropAspectRatioPreset.original, + CropAspectRatioPreset.ratio4x3, + CropAspectRatioPreset.ratio16x9 + ], + androidUiSettings: const AndroidUiSettings( + toolbarTitle: 'Cropper', + toolbarColor: Colors.deepOrange, + toolbarWidgetColor: Colors.white, + initAspectRatio: CropAspectRatioPreset.original, + lockAspectRatio: false), + iosUiSettings:const IOSUiSettings( + minimumAspectRatio: 1.0, + ) + ); + + if(croppedFile != null){ + setState(() { + previewFile = croppedFile; + }); + } + } + @override + Widget build(BuildContext context) { + if (hasErrorWhenInitializing) { + return Center( + child: Text( + Constants.textDelegate.loadFailed, + style: const TextStyle(inherit: false), + ), + ); + } + if (!hasLoaded) { + return const SizedBox.shrink(); + } + return Material( + color: Colors.black, + child: Stack( + children: [ + Positioned.fill(child: previewWidget(context)), + viewerActions(context), + ], + ), + ); + } +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/widgets/circular_progress_bar.dart b/packages/flutter_wechat_camera_picker/lib/src/widgets/circular_progress_bar.dart new file mode 100644 index 00000000..b4b52a74 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/widgets/circular_progress_bar.dart @@ -0,0 +1,120 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2020/7/15 21:13 +/// +import 'dart:math' as math; + +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; + +import '../constants/styles.dart'; + +class CircularProgressBar extends StatefulWidget { + const CircularProgressBar({ + Key? key, + required this.outerRadius, + required this.ringsWidth, + this.ringsColor = C.themeColor, + this.progress = 0.0, + this.duration = const Duration(seconds: 15), + }) : super(key: key); + + final double outerRadius; + final double ringsWidth; + final Color ringsColor; + final double progress; + final Duration duration; + + @override + _CircleProgressState createState() => _CircleProgressState(); +} + +class _CircleProgressState extends State + with SingleTickerProviderStateMixin { + final GlobalKey paintKey = GlobalKey(); + + late final AnimationController progressController = AnimationController( + duration: widget.duration, + vsync: this, + )..value = widget.progress; + + @override + void initState() { + super.initState(); + SchedulerBinding.instance?.addPostFrameCallback((Duration _) { + progressController.forward(); + }); + } + + @override + void dispose() { + progressController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final Size size = Size.square(widget.outerRadius * 2); + return Center( + child: AnimatedBuilder( + animation: progressController, + builder: (_, __) => CustomPaint( + key: paintKey, + size: size, + painter: ProgressPainter( + progress: progressController.value, + ringsWidth: widget.ringsWidth, + ringsColor: widget.ringsColor, + ), + ), + ), + ); + } +} + +class ProgressPainter extends CustomPainter { + const ProgressPainter({ + required this.ringsWidth, + required this.ringsColor, + required this.progress, + }); + + final double ringsWidth; + final Color ringsColor; + final double progress; + + @override + void paint(Canvas canvas, Size size) { + final double center = size.width / 2; + final Offset offsetCenter = Offset(center, center); + final double drawRadius = size.width / 2 - ringsWidth; + final double angle = 360.0 * progress; + final double radians = angle.toRad; + + final double outerRadius = center; + final double innerRadius = center - ringsWidth * 2; + + final double progressWidth = outerRadius - innerRadius; + canvas.save(); + canvas.translate(0.0, size.width); + canvas.rotate(-90.0.toRad); + final Rect arcRect = Rect.fromCircle( + center: offsetCenter, + radius: drawRadius, + ); + final Paint progressPaint = Paint() + ..color = ringsColor + ..style = PaintingStyle.stroke + ..strokeWidth = progressWidth; + canvas + ..drawArc(arcRect, 0, radians, false, progressPaint) + ..restore(); + } + + @override + bool shouldRepaint(CustomPainter oldDelegate) => true; +} + +extension _MathExtension on double { + double get toRad => this * (math.pi / 180.0); +} diff --git a/packages/flutter_wechat_camera_picker/lib/src/widgets/exposure_point_widget.dart b/packages/flutter_wechat_camera_picker/lib/src/widgets/exposure_point_widget.dart new file mode 100644 index 00000000..1932e2b1 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/src/widgets/exposure_point_widget.dart @@ -0,0 +1,110 @@ +/// +/// [Author] Alex (https://github.com/AlexV525) +/// [Date] 2021-01-09 18:43 +/// +import 'package:flutter/material.dart'; + +import 'builder/tween_animation_builder_2.dart'; + +class ExposurePointWidget extends StatelessWidget { + const ExposurePointWidget({ + Key? key, + required this.size, + required this.color, + }) : super(key: key); + + final double size; + final Color color; + + @override + Widget build(BuildContext context) { + return TweenAnimationBuilder2( + firstTween: Tween(begin: 0, end: 1), + secondTween: Tween(begin: 1.5, end: 1), + secondTweenCurve: Curves.easeOutBack, + secondTweenDuration: const Duration(milliseconds: 400), + builder: (_, double opacity, double scale) => Opacity( + opacity: opacity, + child: Transform.scale( + scale: scale, + child: SizedBox.fromSize( + size: Size.square(size), + child: CustomPaint( + painter: ExposurePointPainter(size: size, color: color), + ), + ), + ), + ), + ); + } +} + +/// A [CustomPaint] that draws the exposure point with four arcs and one circle. +/// 包含了四条弧及一个圆的曝光点绘制 +class ExposurePointPainter extends CustomPainter { + const ExposurePointPainter({ + required this.size, + required this.color, + this.radius = 2, + this.strokeWidth = 2, + }) : assert(size > 0); + + final double size; + final double radius; + final double strokeWidth; + final Color color; + + Radius get _circularRadius => Radius.circular(radius); + + @override + void paint(Canvas canvas, Size size) { + final Size _dividedSize = size / 3; + final double _lineLength = _dividedSize.width - radius; + final Paint _paint = Paint() + ..style = PaintingStyle.stroke + ..color = color + ..strokeWidth = strokeWidth; + + final Path path = Path() + // 先移动到左上组弧的顺时针起始位 + ..moveTo(0, _dividedSize.height) + // 左上组弧 + ..relativeLineTo(0, -_lineLength) + ..relativeArcToPoint(Offset(radius, -radius), radius: _circularRadius) + ..relativeLineTo(_lineLength, 0) + // 移动至右上组弧起始位 + ..relativeMoveTo(_dividedSize.width, 0) + // 右上组弧 + ..relativeLineTo(_lineLength, 0) + ..relativeArcToPoint(Offset(radius, radius), radius: _circularRadius) + ..relativeLineTo(0, _lineLength) + // 移动至右下组弧起始位 + ..relativeMoveTo(0, _dividedSize.height) + // 右下组弧 + ..relativeLineTo(0, _lineLength) + ..relativeArcToPoint(Offset(-radius, radius), radius: _circularRadius) + ..relativeLineTo(-_lineLength, 0) + // 移动至左下组弧起始位 + ..relativeMoveTo(-_dividedSize.width, 0) + // 左下组弧 + ..relativeLineTo(-_lineLength, 0) + ..relativeArcToPoint(Offset(-radius, -radius), radius: _circularRadius) + ..relativeLineTo(0, -_lineLength) + // 移动至左上组弧起始位 + ..relativeMoveTo(0, -_dividedSize.height) + ..close(); + canvas + ..drawPath(path, _paint) + // 中心圆 + ..drawCircle( + Offset(size.width / 2, size.height / 2), + _dividedSize.width / 2, + _paint, + ); + } + + @override + bool shouldRepaint(ExposurePointPainter oldDelegate) { + return oldDelegate.size != size || oldDelegate.radius != radius; + } +} diff --git a/packages/flutter_wechat_camera_picker/lib/wechat_camera_picker.dart b/packages/flutter_wechat_camera_picker/lib/wechat_camera_picker.dart new file mode 100644 index 00000000..7a2a2917 --- /dev/null +++ b/packages/flutter_wechat_camera_picker/lib/wechat_camera_picker.dart @@ -0,0 +1,9 @@ +library wechat_camera_picker; + +export 'package:camera/camera.dart'; +export 'package:photo_manager/photo_manager.dart'; + +export 'src/constants/config.dart'; +export 'src/delegates/camera_picker_text_delegate.dart'; +export 'src/widgets/camera_picker.dart'; +export 'src/widgets/camera_picker_page_route.dart'; diff --git a/packages/flutter_wechat_camera_picker/pubspec.yaml b/packages/flutter_wechat_camera_picker/pubspec.yaml new file mode 100644 index 00000000..990ae36e --- /dev/null +++ b/packages/flutter_wechat_camera_picker/pubspec.yaml @@ -0,0 +1,18 @@ +name: wechat_camera_picker +description: A camera picker which is an extension to wechat_assets_picker, but can be run separately. +version: 3.0.1 +homepage: https://github.com/fluttercandies/flutter_wechat_camera_picker + +environment: + sdk: '>=2.14.0 <3.0.0' + flutter: '>=2.5.0' + +dependencies: + flutter: + sdk: flutter + image_cropper: ^1.5.1 + camera: 0.9.4+6 + path: ^1.8.0 + path_provider: ^2.0.8 + photo_manager: ^2.0.1 + video_player: ^2.2.1
  • +platform flutter +build +Star on Github +License: BSD-2-Clause +