From 461082fbf7988d062949d244266515f004007744 Mon Sep 17 00:00:00 2001 From: quinxx1909 Date: Tue, 16 Jul 2024 12:24:27 +0700 Subject: [PATCH] first commit --- .gitignore | 44 ++ .metadata | 45 ++ analysis_options.yaml | 29 + android/.gitignore | 13 + android/app/build.gradle | 72 ++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 33 + .../kotlin/com/example/app_ta/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 .../main/res/mipmap-hdpi/launcher_icon.png | Bin 0 -> 3252 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 0 -> 2059 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 0 -> 4567 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 0 -> 7004 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 0 -> 9656 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 31 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 11 + assets/audio/reset.mp3 | Bin 0 -> 50991 bytes assets/audio/set.mp3 | Bin 0 -> 32256 bytes assets/images/logo.png | Bin 0 -> 32040 bytes assets/images/ps.png | Bin 0 -> 10939 bytes ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 613 +++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 103880 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 739 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1707 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 2715 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1211 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 2645 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 4184 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1707 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 3811 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 5768 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 2248 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 4871 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 2585 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 5553 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 5768 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 9205 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 3252 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 7004 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 3673 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 7736 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 8490 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 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 51 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/detail copy.dart | 443 +++++++++++ lib/home_view.dart | 284 +++++++ lib/main.dart | 19 + lib/theme.dart | 17 + linux/.gitignore | 1 + linux/CMakeLists.txt | 139 ++++ linux/flutter/CMakeLists.txt | 88 +++ linux/flutter/generated_plugin_registrant.cc | 15 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 24 + linux/main.cc | 6 + linux/my_application.cc | 104 +++ linux/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 14 + macos/Runner.xcodeproj/project.pbxproj | 695 ++++++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 +++++++++ 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 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 8 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.lock | 522 +++++++++++++ pubspec.yaml | 101 +++ test/widget_test.dart | 30 + web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes web/index.html | 59 ++ web/manifest.json | 35 + windows/.gitignore | 17 + windows/CMakeLists.txt | 102 +++ windows/flutter/CMakeLists.txt | 104 +++ .../flutter/generated_plugin_registrant.cc | 14 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 24 + windows/runner/CMakeLists.txt | 40 + windows/runner/Runner.rc | 121 +++ windows/runner/flutter_window.cpp | 66 ++ windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 ++ windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes windows/runner/runner.exe.manifest | 20 + windows/runner/utils.cpp | 65 ++ windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 288 ++++++++ windows/runner/win32_window.h | 102 +++ 145 files changed, 5853 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/app_ta/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 assets/audio/reset.mp3 create mode 100644 assets/audio/set.mp3 create mode 100644 assets/images/logo.png create mode 100644 assets/images/ps.png create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/detail copy.dart create mode 100644 lib/home_view.dart create mode 100644 lib/main.dart create mode 100644 lib/theme.dart create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 linux/main.cc create mode 100644 linux/my_application.cc create mode 100644 linux/my_application.h create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/widget_test.dart create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..24476c5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +# 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/ + +# 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/.metadata b/.metadata new file mode 100644 index 0000000..30d90a7 --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# 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: 796c8ef79279f9c774545b3771238c3098dbefab + channel: stable + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 796c8ef79279f9c774545b3771238c3098dbefab + base_revision: 796c8ef79279f9c774545b3771238c3098dbefab + - platform: android + create_revision: 796c8ef79279f9c774545b3771238c3098dbefab + base_revision: 796c8ef79279f9c774545b3771238c3098dbefab + - platform: ios + create_revision: 796c8ef79279f9c774545b3771238c3098dbefab + base_revision: 796c8ef79279f9c774545b3771238c3098dbefab + - platform: linux + create_revision: 796c8ef79279f9c774545b3771238c3098dbefab + base_revision: 796c8ef79279f9c774545b3771238c3098dbefab + - platform: macos + create_revision: 796c8ef79279f9c774545b3771238c3098dbefab + base_revision: 796c8ef79279f9c774545b3771238c3098dbefab + - platform: web + create_revision: 796c8ef79279f9c774545b3771238c3098dbefab + base_revision: 796c8ef79279f9c774545b3771238c3098dbefab + - platform: windows + create_revision: 796c8ef79279f9c774545b3771238c3098dbefab + base_revision: 796c8ef79279f9c774545b3771238c3098dbefab + + # 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/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/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/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/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/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..efc1418 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,72 @@ +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 { + namespace "com.example.app_ta" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + 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.app_ta" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion 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" +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..ad86350 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/app_ta/MainActivity.kt b/android/app/src/main/kotlin/com/example/app_ta/MainActivity.kt new file mode 100644 index 0000000..4cdb042 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/app_ta/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.app_ta + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/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/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a1137f387a88d74dc22788df5ae85663ce4a1333 GIT binary patch literal 3252 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7411a9e44ceeddf0122bcf86ecffd3476aa26c GIT binary patch literal 4567 zcmaJ_^<-%r;3ag47yXKVbqXD1f-?I z(am>0f57v@J@==3&+ERh)@13+tjx^sN~~Mgmj_xsdy724KmG6d@i>v8!`+$sJrti_ z(YU+Ewsx*kG~IhkOUrW)jhx3pS~@zTnO$97zb;PpKMg6nb`N>}EO*Tt!Ef4}@(aM;b zngWKJ`PMFH2kb`2#KvyjWn+`)Puc>(5!kct`&!wu2K1=cJ=E4|(*Et}Td_9TZvC5L zKw8+_lE4ki@r)Y!D51}qcj042lX6y5MUKyfwx=_zZb@ z^wT`gx-TV9F@k*4@uOnI_##Qeqom{*Nw4*!bfQ~zFI}7Ubc=NRDle3gNN=}HR04~P z@=W%~O(@`aXXgGJN+{fViu<8SLvHX;n7Qw7@1^4z*SpR$bqu%VFDn|h%9^^wewskG z1>{Z!aX5PQ)CaVLy3ozkyWU;WUt?CV|TMY-{(_*pGE(`Ofi@P~JmnGVIR*DUgYc z{znc%R#-~>FT0%RZKpkU=~naB;AZ%%%Tv7NaIS(va!4nYgwlAqdFwu*eNWbW2$`%$ z^*WE8y5>6!>s_+eNAe?2mlNeZI})RoAff}0`z5XE)Vz?l4#8Z`9Es!OxJEnDkGGXl%P!_K>3@?YQL3a zm4}evct){;#@Kw7#G)q|oE!BG?=8${x(|EL8?yGxSJfx|*Lw(}6-*^B0 zFJsR1#TBQ@=fL8diq36j~8rW~sD(j*c)2*EZK6rH2If zCm^en(0N+m(%qkVND3~mYJK0WNzGEg(_#Klsa(p_2N}g}DG>Ks-tyY{^~+D5I_k4C zPd4U%yZ5m4ySH4QZz+B`Ui$4j&mez&nt$J+-AGO4WavpR4+*;^`cN|bJ(%7zqV56$ z58>E1ZuIzU`293T`RC!r7;?TPXd=d&qKxkE)yX{n+mG#G+}zxJrJ_Vt$Gg9aTO2~) z^S*d<9^X(p8ePtz8Lhqe2jG9X~jOnDQmU1loqv<^T;<7G)c08D19HkK z!(gs>u|>AUFO#yph^L%(&j4I)^h*)|MXoA7gEEtZ0~+BL%fWQ9?4;DaL>3wD{#1dj zUK5;KJV02>iZWq=&3~P}e2or|K$D<5pwdVHy7_E1Lrxy@i=KZ~?kVAQ@dY}cV}v99 zA1c|U$w@4b17B;Ysi`GQF*cbr`yVl{ZO^xwBc-NnI1I_GyJ%1ggtSil5bi@H3hcEz z+gL=b*br;Z-lSZuI-T~x40HO101~nF^T9JBcT_o_%~6T0Op~7yrpxnE!_VF;Dh>02 zfI?M%Y)MMA)x~6L7h3Vk7sUJ)fx9l&N(lNIP04{Rm%e>EwvlQ+&x{CyoYzQPX z$n6%=h{Ff34%ZV1Q|j6U=jYyVv^fDW54oy6hr;Wee!&UM21*ZOXix-TifE}AMSIy1 zDLhps`am&QU^fAwWkc3x9VUtj8J-N19MJLr57veZY-7Kp{@$U(lkt!|j`$Sc$|mb4 z*s}?kt=B8oX9Xb~9E#Rw8>^Rt+ZaGRE>MMI$7h*Q;!%x4qy);)MNcARqH|;Dc`b_- zI?ra`b}%m=h%9pcdMM6zAnLxPgzvkbv(kV)4XU;s^oUb6?WK}@2Dt6SolBrZv!RKO zBfV5`9eaL{Z3NW$G4;vk4`%yJGf!YAKchK~gqCUOCCLo*Q3)T#{sOO2@`!tB9BmG6 ze58ORi$k(gBK;5YG~Ybpx#Qh1og3jecTkj5RIS)B+^I|+7Dr&?7z4BakoL0;?#qD= z^89gOe^YoO4>ow$%P{p5U50z#4-%@*lH$mg7()fZPW^nn))Lj}>-tbPkXhM5;Wwzr@?xgFnpc8trH zFVZ2zG-!vU1}Ul@GT5dd_JqcwJJSyWR#e$47^qeRyT*6RQFRzyQup96BJcb1cgKqj z9!;$Ov?ATa#s8s5dIT19khdr#HP%x3%jw8z;o5Tc1iM7~!YqDsp+aQmNxZB~QS!WB|rkpKTTe2e0 zZ?TT&jI!UdHg2ybja@oDYjX$T7EN6$Wzk=a6zjJ5e|=PbGR7h>$zJ+Ab|W+Sv(M(Z z>RB8z_De* z2eNOG*nx9=3CFd-0;4B-BZTZra`B>Oux@bFs~p;kH|s6Q$r%xYfnXlofjeUY1d$n6 zQPY_>i3afLmlUv)3s1G9vc6iamcsj4N3O3fiW{=Fw%@@k=E0bKBJZ5=@NnicveU&# zHr>__;=G(MDkuKjUhSWc?-j_YBqEfGyGNsgywyYhg=E8 zR&P-@InK6vaJJ+> zsv3Lk%LuNw8A$ElPR3OxqvRB}J34(UrOAk2KVNMMQqV}NW6k0{*gIfMgB)j>5Z!mW z&d6}PBFfm$Yr9%h8OP zVhPHnAd>T4eoCJ~9pzle%~g@gz?^oKZQGpYl^m3>mZ>Op`>EASX(QnPanxO=Q9)K`w4?*zBA#1Mby$@(+v&xV)6urc;nskB?naZ-0eNo_)w z2feTZ)dUREb9nKmXuN|na=zAX0UXl#IjbhRI;4M5JuND=j zl0`PJfC)2({BbV*Si>FqNC7Hi?6nB%pZD`WsAw(2u$i<3by7T_g=OXa8QMb{j=ylT zIA;N}zDooEraUs!cQ2}NgBhRPK5bu}5$w`9P>`jB^%5L#@!yeN>vcbWSqWVkp0pRc zU9k^V!H_0Q{Pf!vsHNZ)QD+HMC+>ZX4frriF-02Fj68@&NAU?VdDQ`K37W}IT!Ey` zZMAuAWF#*_*S`pHUlYTn+$u!>3bCazVqyEQZqv*&Z5@|L>gT$AsVD*i+)7IHahc`# zhBtejGsrb63f4HvNn1g}T#kl{oa5e7BSbt%gn-5uA<>Jip!GY!%$2&Jc zt2hkm=1+;^|8Q7bu&jnFyN*xKltiA-k{XDwnX(U_wM%Z zf&3)#5XYH1=X~Ft>GxZ9VdqbVsW2raB_gBD-f;wvDo?oeIhWeIhN3Ox=t?F=+hyOocA(yw2-K7g}?_(_qA2tA0{( 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/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3c5b687963894dbb1e73e01180b96d68448ea694 GIT binary patch literal 7004 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 B8r%Q? literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/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/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4d3e93b99b62d8d21da260a16ba42cc3ddc871 GIT binary patch literal 9656 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..f7eb7f6 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.7.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.3.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') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3c472b9 --- /dev/null +++ b/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-7.5-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/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/assets/audio/reset.mp3 b/assets/audio/reset.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b43215680adb1a5904c88bb7b8f226ade782aa89 GIT binary patch literal 50991 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%0AhuvX}>nB+F3B{nZBEyK}wsFd-yPA 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 literal 0 HcmV?d00001 diff --git a/assets/audio/set.mp3 b/assets/audio/set.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7e43ba287f4ce84e0379ddce027884ce8b83f05f GIT binary patch literal 32256 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

rj54A+Jfrw7;{oF3CB?>YM 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�J1xeusfVyCwh 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 literal 0 HcmV?d00001 diff --git a/assets/images/logo.png b/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..98ef9f561730c77be1b91df379492251368a02e7 GIT binary patch literal 32040 zcmd?RWn5O>_BMLc-Q6Xnv~)^Kh=>S?NSE|YcMB+`V9+_BbNbB;O2bzS3{+|$?7Bq3xZM4?b5T9?%fP$-OYK>lDnzCg-^LSg^9V`$=Saz$6x#@$uO%GTZ5PRQTY13ryH z$@|N~KV9v-t=RotUEI86{S|osenJ-hjl3+(t4PTH&tLMMw)V0HY8wCiDEyxSucNoO zhpe!$pP!$Q-$fyJPX}R985tR25iwygF+uo*pjUvKx0S!3n->>c=|3-}X6I$&dB?;1 zj=LK>a%n4TcOP#BUfzFw>K{Y0wfWa=JbXM|{@%paM%d29&ehJ%+e=tfNc2BOX=@|v zeaG9y?!N}E?Be}juejVno7#Wnyoqzk* z-&g+gLc;$ixBL6Ce|x(BhYzmo?d^HT`d<(4<|SnH_Z1&x#)M!og{^Fn#~1mJ$N$H- zWR-2b{%zpMlU%n$|JN%p0mvI3R-RsVh5;US3cLn(UhY1gHg^BM>i@i;s;8Zmx1Ft` zn24CTpoj$gmKXl7xBj(o^8b88-QQaaz9A!VQN~78Tu{_TL`G2DPEu4*#!g&XP*TEP zMpRrzL_);Y`d`=j$5;NhD`{B6g(Soz#3Uu)JEBrD64E07`p(}s|F^Fgy8GBTB9Emg z_ODO=uh;(9$Nw*u`9G)Ye;)Ner}h7%h4%QjorJ9N-z|!)FT4Tkd+|Tk7haQ9_VIRf z_f&MW@^rC7``mH!XZM#!KKws#{MW<%zYj%768{m0{~DpcmB;@Uf$(A3ztQ6EY3T0m zqNr-+=4-{yXJF@MYv*a_$uBSb-=Fxu8}I*Qpa1#{3Ss!wXHm!~b>Rg^bo= zfWlR_msj)@Kgt}0e(_tpgwGM}&#t$Ig1^Z%^)b1k$!8w&MNp{VZ(e@Xg1mW7+cKJ5 zMV^vdLsH6MAr}yg%_dTG#$yndtsO@2fdk6e%*`=52N8rAA5RqQ044O zN@0rOI4GWoFI*f+y`Pd6FfByVw^UrC{T|C%9Ere%a5TYQ^S3Zy};uwo6V!7bY`Bj$c9-?{pcM&nwJ)3v9xno{by@SNsOM@z7~t~ zQH$+U_?4QQdnOW2f>N1JiY52daYaq^_VtA!mn)bfwHL_8=E2I=E7&i6zoUbyL_RZ9 zuF`0JRsaJW$Bk;`@e{Ej;TEC$_RISRymUprPl=TM%9=kuhn|;K+3*=ROhQqs<#atA*u%CSNgKO9GhnLUb@y{4{QWF)mE%W0j={Rg?b!^KRiDMLN zqc)8mwPw5f&D{Mjo9l-^Yf@ zEv)jPt`Po3iEY*8SF}XVYw(FBy!z`e@3EnhTW6E6u4F1=i(nbnb4Q!CW2Cih9bfg& zkuowg%qlJ}ek8|Jc8TCK0ZcZJ`*__>{@mQ0CWhl2^59RzKYsk^=l0{>9sck#VqDeA zF^m9NZA;2vy*?~W8`wI;i|Y%5ws+}sGR}nXV0El()4ZJQr1zTPYY!&zmN_##A4#f)}wm?^Ga&@ zc&vh4rD4boA_12DwkO^U0bc}3lwJW-!SM1PMt6!FtxDYRQOx3j90{&!;#fqDoVI1P zzP`T5b#s zch4>re1?JGfSgHlef^EsaDOgs%P4AU>SL+CE#XK-CY87#{Xg<&25|YX9{75mGP5rs zA>nD_;z4sa3m!)_v3l9CQj^DYo5Ork`)z&9BR%+N{^S+?SACEbOR*tV`-td-jx*uf zSm%o|;My)z0jKNF>{V6bjw*lc9FoA>V;p|$o=jT=#W4A#eOrNFCHbPs`}&K9mk;g| z(b2-dvp#rZ4*c@I2m9?@_~lv~j_3yzZ)O8RlUglbr^u1lCXDi2%+^~h8(vnzfC!9p zxIehOQ|}{tJA5pn+fJ89BwG&;#v&VDh&(d~rS0<0;V^8}F?6@Ju3N!dpXH&m%Mcq< zwX^Ke~>&*0wnx@yol8 zuhBe=^il${;&G{iTk=Z1mLlRX@}h)v#q#yT#tCd>Tz>aqG2N41o|cOa;Jt^thF#Iq z3)Nkd#^aL(OqziG)|v@Ehnl?w%t9X%p0~dp zi2x)-W&J;#(d4MKquc3AJ`JU~uLgcS3T$k`zLfEI(lTp0wvNxiqd{8vGUp>v4hc>3 z(#Lpmm6ezCi;HLaYwTIQMNXEo*?J|z%RQ)bNH&VDNk5;nH~_mRcPv6W-gvMDa%>nj zvN6OSb*z87TsAEs0gGSob$RFIvjtTZ{Mv`^0Xco*^u&^|UvSF`BjDPTSjZPVFQ&qm zjX$zPSNf}ytkgF)C1Ioq{+-r^rWxrk7igvS?laQ&ZPh-TQ^)6MN8d6x&oTa-x^tf~ zjU8VYV?X`xgv9!%&(?%Jk;5;PZ$h5&Sea;-Ql)EnzXi}v-Z!%$HyJ-+))k+l9QE{{W?BQ65omWSQ{r% z0}FmvnUcVN!@|P$kB+$5*-=eRlUF6CrPu0aNl%$JnRgc-WGfwEcc7UCXo>3T>b?#R z;-r3zo|rJ--q~q&k&HhpGbnsE=tMzH9X&N=sivmZ($_~u*x7RAT&JPYThH9(`bZ96 z)8CdvqhNqvS#>cxiAE6~gf<>WBcH;dFQ;>JwhO&Eqi$$q^t`HyCL|3Vp*oSr^v$Di%41 zAM-@ZsZd>WGn=ccE1!_ihdk9-kEs?68Bffnz z$ddCTwX?H>u~Rsk!UP%>-Ox3OWGAlCVlX3eI8zKc6o-d^#SnEHlNK<2hp+QQpmqD# z00k>6X_cwq2esjt>uMW+^Iz6uxd#vbbXQtHb%A};*TWK9P`U2l=;YM)F_m}o^l05? zvMB_ar9mg0E;JTl*7UZ{h!oA+v+DIp%VuLf>bQgiHB(c@SGwtuGF}VpTwGYND)?k% zbgAhln{m#>Yw^EVR@83aW_eRogr4aj$ddITeEISvpRll|g~g=LFs_c_Zdb+GdSdxj zuhYE1FQ}YW{m<3+TggJh0cdjY@Mr{+)Cs+SIsI(lm3>%H*Y}%TMG;uXe7vI6FIU{^=3687{pI4@H-WAJMO6rdoR~Z+3Y( zerd_^#fukHyFcB#{>=A0Oiw2$F}mQpMz%J`n^eIjIx;z#{NaPf(oP^fF)lJQgM)*P z&dyAKG9JvzPD_D=I&1$J<@|0KdJ?LNqWM^l;E-vnX6|L}FH_wvs!iA`bh=};= zD6U`FwBGize*IyE(lC4yiQV((+n}y))K8v}{;YQIf&kUObt@irdc_Bc@AwABHYXmP zot@G_y8@hCTog=9L`Y0s))2sM>A{W4(^Ck80 zm!q&h6EBPmps7g_MgR8B*W0C3MT7TYILtDh*ih&8tHX|@x{Z~}zM1ZaT#oMUY#yq!1jD$f zG+iEMrBG&=;qLD4OCBB~s5)F`5Bs0*UGIA0iBhuq#o#FWQ?>Ba&Tdfe<`d@zEHE@2 z{w_kUupxC-tVUR^#E45!kObMHQDlm7{MTO*J8C~yaj{G+f)sVMyV}0H`V+nInL%7i zs@ zJPc%(^~Prl-RIEDk-s-IG=!le8_>RkLYbD(E)SKopB?v|u}ericC*%45br|E{Nv{K zILeM#t1ZDg#Uf63?zBD;ytVP^LfNzYe4CcZhPxpc^Ru&2ur0=XhHsnH`wH@0%}LnU z@Zfv=Y1zqr!uGXR>+RdOU%z>y0-VNoZS0sX=orEk)#3hak-@^8olfaCy_4u-kLj%06f6rbs&v*^$fZp6;-=R2LqB!~=8N+QjY z51_;&W9@jU^YrWJC;=NA8#W$Z{E6+ZSB`vo2+94E`j;!<#x-{DBjUA@43iA2?5HTO;pEZT)r(!yhxV zHzp^Cb!DuU>TECUEOvL-w@mmQ{n1{)&hHxyM{D(e!#^b@60+QMPSBdNo*pSCCT3|+ z122uo?!EX~>FvF}{DubR+^|y_B)L6*&iQ?4=)N;q(t@pxU)zMk)vII^0gEhS$lX+!AvU`wc~?+^&ZfVkbzQt;>TXG#P5{>guXA)CeK7n((WN z2iWi&X;SX23%!}Kb91&3`2S3h*iYjE;KBxcapVtF{M^xQHv zy)Ss{{j;}kJwMY}Mvc*OREWRg#xw4p}N%qA;o z7#L6j`Hg`+XbG(IvbMI0wKXR|i%zX?rLP~8=v{(UhYSt5R1J+5Z8}(B%2EnroeVt^ z3=AssxlwN4QSntx+HALK2&%OF$@V~8VxoFrpe)KsyMZ8?k$v%+1Ca0njN^habPbb{ zM|!Wl{MP4-{tM|2mg0=r=4s<^o;CDyHVSC?UGz8P>_Y3Ge~eE`s-de(3{+S&~kTXqB;BMI|LybWPVLaae5p8oY4|8l}U{U2W!ao zHQj7kpYIuYE|N@8^DBIojQ~L5J%0RnCb2t_^06FuS?jI5a)oKb^Mm16u0Ga&S>si$ zk+1CFz?-1K1-G)4%)~HjCQGM|WPesxM#dI)ENb7IaTkv*SbvN;)vPODmQX=3;?6v2 z3rj`h`eS4B*7=^N*(vNR>oGKhIDo7S3=GO0`#A;78|d%cx%1Vjs(jQ1z@%nam=fS9 zMkc0f78c2n-3*P5^WVRx_3`n6nyc#IP*5{EZRt78vvO2x(uPw?f{lO_2v20AOrGvm z*Q~z(88ha8{gd-g7s<{2puIJ9clY)1A93}Awy}Zh+Ak?jPfzjj@h@3gvLgXZMHLkt zjSVT5LsF8qzrP=!goK99#_0TG1dXbz;}GLwA^SQdB?V(^FbjPfKQbJOPs8pH=QL3p zT(OH6@8E6Z1sGy(y{_cNZ@YzJ1tQ_s7DL<&pV(hNJ9YQ=^OJk|pz_SR3(|ORhQxk< za%eQeMSHWoJ*Gxh=b?tco%0Cn`t^;QnuaFt-8*XIGIRASS4ebu27G!o)(kFR-0ijW zTKL@R)u#}fmBn1}y<;S(44?wlRr!c)Ilue)?BlCmC|sdFZhXw|P7+Y?AEu?n0XDV; zPz6{|OG_&*Ia$-hWQ4?7PW84bU@iZn)#?hbMLo!p*N!tUrqDYp?{^A^M)2nNV*(C) z)Ka=f+l5w2k&B!D^Y_8(Q9}Sb>n-n&RoHZGbaN#W@3-l6K5@*D^*JAU&|@)^B)0}r zI`yDOZ2b4m%8~Qo;o;YbiKI7g&OdteXlj3R7RhG!Acv zqVL|75k&aoY+u-ErOB2j?{04-b60Cu7al;XG+CcFHNPBTgFb)$yn`aE{g(~nZ$@h= z1;C*DJr<{!jpo8b`Y(AzcLQPd{14`zR(Q^9zcxJoL(}D%pL9|X5Z;)cfeiA(=|FNQ zn84ceAYX@XtK^1!3<(Z?keL}@kP}DT#XUVe zJr=Y5oolgMFymA6yZYm9Tbl}eDGvx;__5Y!>x!vN_aBZksT{s!Q5<2;+vYX^Hx)t8sQpDXRZcW--@XN?f-BCQwBXZ<9;ThomPT{t z1pemt_Vt}zStEW zsvkdpc7_x%4-O1O#l+wiWUFe9gzYjW;zGr*S)+rYr) zT&HTqJL1kl;ztIEgbtQn5NY+(9T0Bt;;wc-yfbBL+L{`*IR3&JKtDk2kxJl7Dcq z5;FSQ+J~l)qjIPX9Gb(Fdzu8F+sn1mW69V)Jmk{Ml9biS@1I($U;m&=rhr{ybo$G8 z*KZVZGzA5P$y-|j*m>olCxI&?6R~_q*(Zz9)&>Pdf(MHI*Z^4Kq=lnKKJ|<@@1%VXQj`bJI8+hy!M}|CoL_PbkjsI z0vkgOW4@A|GMgmw@bKUwvc>Pgq6%QH9UUEUSEBOAo9FpJ-H|`uXqOH>mWIN^Uby>- z^4+M*hqdu~bQg=C<>B@(@!HXLeatNpm+wCy8Ka~fMuJUD=tDQ-E!Zzy=y4?ywwwwK z0P>M0=O={BpjA6A;E!NPjmSlzwBiwC`Pox(b)h$Qb~+mZw#XS7&!2v|wqhdZx26^n z(s?!UUSudJDabk_I*nOV@Xc?cqY~H5 z%o0wH_H1T4?#;;F>$nIbWQQ#7C~n=A#Ip4JH)Yu3zVJa5ZPCm zCPFc^{Pc+5q}q)I3IrPTnBd(}2dL|8BGrTs%x}?PV}SBvQswmc`UDY5;O1LwB#BNm z24P(CJWC2Gc`VT^WKxd0U{u`lIsGD1`@+Lf$(PM`M;4XbC*)m5$}yUc#@EkDFjel2 z4G+gc&9q+qQI#fQ6?xr;CqEvVU6xgGQFvs}U%&3=w=heZeE++r;2+ILF0sE0zByIl6B4Qz8PP8E<&xzrKFrBUg5wM~@%h%T#*u_;FrE1;}J9Guj8$Z82YBV`643 zPUkJkeOFBj62IBvtglv2CLti8`JmSw2>k_~AJg&{dHOArlWY+52-IiJm*3r3UWE2CC zV%f=lx9fVLA@KMXU;*WK26#Ybl-=2~rix|rpTYo^I9nEWasen%tXb8h;s;=@FJ8Xn z0P=p({xfpNS9;m^U%%$t+>Ck}{RfxuE+(Yfcv`_WBuP)lvT0|0YjGowzkh#Y)FF2| zFP8Pso4%e*AZp~mg!VyN@Bm_1Ks*MB|3jV6vWQh1cG-og@H}2kJZx;sq2ilq63(=t z8&Pb}YHJyQeSsK;i4b$I#V^ya*JsFAAvVwP@K_)GnMcyQh}|b@wA**bj^)M0*c(Mg zR=>X&A}g(UFh>QzDXvOgNl8gfQ_}`E2y$rvoDUy8iiRgZ2r<{vN@`ZML=;`AiX@M*jm-+&fXnkYj*o6gqr~@DxvkM84g35_y zG{Yw7Vr~M^>_Z|`Y|vUQUSeXRb*lB{%lPmDuNzNb<-HI26h$X*Hg@yn<{1M^0iD2x zv~_T>IXgW`(a3yz?^m&J6VL!uj%bY?^l29su$99HojMP;7B?XjW#`je3>*y%QcO^_ zgcocNkB+Rw8T&!i22mVD+O=($X71QZ5{V_{{C*IFFp&_|(xQ+ucvse6^M>7~Y!+s< zqeBfQoHQ<$`>6FKG`};nT*uwLtj6o@pwnILmyt$A>M-E%PE`WA*9{G+jY`e#A$uEi zXVT z!4RbP^XJcdAOu{_ml!lFk#t@CLPG>gLio8gpZI=G6UBm9w;s#CqTSiqSz2Aa3q5~ij?*tXSWh$rK=gYYP})N9`i=Y0 zfesi0TT4eV2g(F2FQUCb>8aV4Q_)DGOk=XaxqRaW&30hp3!72856CyZefx%c94cP1 z*FQd<2xy9}toc;-ORiGbZ53K<41~)eH>+Q(BT81-r3YYho0d0-#m`AH z10pCf%&?y+*x0V-Q;aini%1QFzG~Bzl=t>6W%xUq8XCg8BXcvKd?uxnqCVQT0i-Z) z0C^EWE6axBN@mDs`-`P!wUNUXVJya_X03pgMSXr7ZlZ0sE9P$8ym_yoLH-z$Pk6s$ z!?euBbX{q$1!7nbM4jwn3u6Y7AQW$$r*HY|+e<`|1{iyn>}q9X+a&4 z`u{^rLLy^-d_6Q4c;aS7hXnKlHW4_?7P3tNJ)I5=sTKJOuMe=7-o1Z6gHU7Otx^CS zYUhG0)MP`C{Ws)=3qO3CSzTZ6LSV&{C$!q;Zm^V@);Q`~S_EHm6fWF}ra7W?sxn1j zX+=ea5JOF?HPTZs5B$ZAp6$(ajc5yXs50$`a@VJH#w^^p{q2F*^SG^waZ=y)iNx`G zzx?|8Tg+;n`CE2pLHYf0#ugzoK&hmHlPdYC2_d=IfaC~S4tL7mHM=ti5fEr-Za;l} zFDMUoDRi&De*4DBKV2?t37s9c`c+A^T}(d@J|?uC${qSxLAWK3vy*m_%&a-=hTW50 z$0y8?!H)mBu&@fW`(r|^J8dRAsimpGz=N1-7<2orIykU}o zRXv+~LMB$n7g5Wx`_jR66JAV7D$wV9W>kcbqU~+(r=)R~?J2RpkJ;8l-@JL_0UeC< zx*815i~@p!u$lVfhHT#{;bvaF0qVAC9w|RyFZn*zqCxGZX)0_CkP%^26k(cUWDt!; z1_qqI+B$a>=cGxY{F^lRSM*4&7L}ECffjj=L{T(d7jk-J&*6;^=atDp20>4^;ed1} z*P#E79pBN#g}Pb}JxG#jTJmA6)(dIwe9V^`O&ox&n?=uomejU%i=)9rU;_ZHIbVNe z@&{R22{1$T@2;DYV|#;oR#i2ackVN5ADY?p)-5Z^O#X;OPPkQtNyjTCO=Ew&@X}JD z*wknF(n;-eA5$Mbe8}-jx|j!`xs?cgOk=qiS^;iynH(DlFF>{_yuw(+Mj2oo0TsaS zKyBpoG!*TY1YcJT3u~UkN%*)SJ?q8l^kT-*de}!z4I3%%qzez8S69>VUd>ShDPpI& zjvuc1A(T`Pjjoup<-*4VA+tRAz>`<~azi?_{)oc(aU^e9YbSL^KNYq}N=u{H>atvK ztgB-zxSIQFZvGXreDR%;U{kofcFErFB^1O?7=7m?g%~wR#{G^6Ged}Ev)7!o%WW-V zbN7`hz&oO0r@ z9m3}PW5QIPD=LA3b*f#K^#lL_tY9L9+yiZ#HUG#92jt30=A8mmoFTszw6A1<-~~?fWbF8Pzhk*&D`s?TY`uKI=sK6W{MF!Kd4v%zdCQ`$%TJPUqxQJ2 z^HBq+ui2Xj+GIQ1WSdF);OVM9yS|>R9#7la*Vi{KJ+jy5B8k8>Jq8NhEWpN0Ryx8V zJA=k3=CePQZQP=w6o8~Wez0EICGgqEh*3Sc96%-&crx9vJJpqJr`7a(bwbz1^tV5bpd9P|189kYE zelRN?40jXC9oBG5e19EHRa|lk{ItgVSIWMeCIB6fkI(V)>iotlPfo5d5r7)3cJ*qX zAYRP7sw%D1Z$xcX z^@s6vtQi;>M&8;HJrTNnAIX;7+}w_ij^U#&F#rx+Tm+Ez2h6=Sv>E}qQ|5-{`@`n3 zuwVnF6131M=ph1Ff(0BCVbz=n0u*8YCF>p)ub#BLXeLY1^XHf#xn0)L$zSl7QX%+! zrCfLj8g^fYhH&qyOmDna9!eJVTF_NfSC@Gy0s}=FyU-J`6ruN+|3tIBy*>8!l4X(X z<&agV(~QunTN3o^z5$RTF76WaBcOQ`10u}pK_`@r10lvygX>>SH*a_uy)q&SG^EA4 z0=%Ipct}LES@@C-qitd05k^o4_9LaZq-2|;c$;+v^cA?o#i=2y%&d*>_Ejdw zvNQu9jwNMjdukDS4=8S0uRYwWqpQmXpomGGH~-A+Y@XqHZn6k6xE_cI8(-wsp|K-- z9AdynjVJ){u;p+M4`xj{iFyJ^B;g^og0w_mvgH;Z$?#fPS#^K>2rzV&8hG7Rr4wod zj@-Y0A0}wwTYxAi%z&kPdwbgh8w?6NK)I@L{V6#H4N3p)eobi4PrX(6I@ghMx8Jb? zUX1md455Sh7GX>TXcEP4_H*PrxE$6Swn!1ao_jpUo2C?YdL=XCu{JkkF>+>R`6Ae)6>jhhlzMk0+tQ2e89U<^eNy8x_f%Oere=*T2>80I&m3&ivz7*O-O^` z>r^Dp8q3h_@$-{%a&|`VuH1xf8`7Ynz*88hWGfaO>CJGs`Ns(&34v21-JsP&^o~Q zPB)XoriPnOC7?2A(Z<)qc-t%c6yw21c>gHiX2}p!s3J7AVZJ+nxj7@$U(Z5h6p~O$ z^+X#4_t%jT{LEh8cIR%Vsy3%8#CRgyw9ko1$M34E<*3P)+o3Ua$=CP&3$0#((f3gG zU_?Gk^tRsmm|j>b@jfs;Pz$vcb0FIuA8cVr=itL+Lotb>Gxx{1a^*@&5;vWZ{w)Do zW@!(Ud*co*EJTB+Iwb%)=wTzB5$F{&4T%%)9-vx)$ZrC~RsOT9u-k=;YBW!V)wCNK zP#Lj-uWfu_a)%D>r7?;h{q%??1`HHpqpY9+4~l+)GP4_)Ynd!1?#|3uLti?Uh-^rW zl7ZnK>=EtzU7(ggk7g!EFDGG;XEJDA;n9;P_nWt9i(~Ym9Rk{QqT^ga$d)BA1n9f+ z2h8d}i3Xy#F?7p4@68)0HLZuYyFf4=X$q+y@m_rmX`$o8hx=W=(csYmb^tJgd#`|E zF%O&P;%;YYNs0Q+o9XR-nJs%3U+xUN;!so!ZCTf#BtwCyI{h_I)w*?>1m_fhkH=g$ zMVVRJ4RUOxGYb*Tv{64TpL{axB8gBr$d>fGTkg@2yP>fFu7l!{Xc;pB4rswJD+Zg4 zk^8*ZEO%A{J#=(*RKI92#YqpA9J+LTf`Tu7D8{j&o?kOIUVOAO1fT|7FnLBrEOpLy zz1oX?xm|-r#@wAVLMw|ZG_Jujz6skEp7n#KK{sFp)TWoaU{Dljhr^1?Y zB{<4RQ^@{v8b+1r>Q`)YqcjO|aY&w*^7Q=&v+aF+s*FqT@Zt~eK1el)0#^;B7q3sa zNwCYCnpmOzO{xTNQemd;b5fO(0zdwdZe z6L!KvV76v<`3;<`Kv1Js3T>F1p5b!c-K3_C@4PTchXUJ{mSRk=z1Jr+O4^mqRWp@t z<0SERaBxG7Qu?F*I7E|xZXj@)>FsOpZRY@FVfY#^CY-(kP3>|V!J zLMk21JR=WA>knvV(5kONdN^>?D>UTf<;8=Gr_f>Q>FB6>c$6EDS^Ws31-bO$7~M<~ ztm6x<)Q-88ZbftG^Migw#iQ%->52}}1r-&QbKI&RY`iEa&|wS*?cFycN5<<_%>?MV z;GF~A1S0C$^tM|#Wm>|Dv7Tl7AdBlFUTNa{3~BW9>qfa(uU_qXcW2-nOZ)BeK5=Pj z`f6zKJ}A24FPk(g0*Fy-D;p}by*&?(sNMfMx5j@tO-+2Dn z#pm$*cSFzz?l&{>ADvnaO)im0`R621rhNt?kEF@9HMiL0Rt?k6t}ZSiAw2{6l~OSQ z0b(-w4HP&5&aw2dl;2D!aGWbF$RpzAAtLz@hI zs6o$ybk9@kl|CyCwHIlcg2eq;K1@T;Wqtz~(D8uMN$QLFsxbyo{zynVuZI4i(#@1~ zRSVJhhs4Ds>CyrcSJr#;7uqk|Vn~=kf_;l2@p_v1)=PtF#QFp}5$_!aJ`Hj(7huQz z%)8vWP*b67tfmM{KlJlwJao%HTAT;D7H;=3gfu}VuLXv+u|Jz^1610YvhobA8D(R5 z{xQsQ8wlpOIg8w6xE{tUjrI->vr1=MN)J;~IGcuB7o9g8<^VF;^*ot=+I-AyZEfv# zVA@`*Y+XhN-B^p0-^RlwzV2)T`ilZmQgmlK7H4-85{L`Fr$OiV_~bAalEZEp+CyPId47dnR6GW~+yii~?#cf#3Q_KhD-({?ZA`D~& z@J^gR4dvT)=KXPYq=6&tT-W>ga|hCxjb#nQ2fjGmX(oxRb~xPSwPyJR##WPBPwt7Z zvk)ZT0!0QG)if{9_CBrD&}I4X7Pkg01hm7DjvnxIlL~7b2vK_*k5%Ii-#&O(@v(;0b$-hG7<-M(NUZc)IdwvSO}r00QON)I6R8@ z&1h)u{{HP$@oSs{ZkGits4DnjqAtr(FB92Y4?vT;Y(7Y}xqVluV)6!A~7>}4l^5&zI*o=OH290zx0@tu0j*6-)#mkBylj?%1v_hwgK)pl=3aL&RAi0MISf067h0jw#R z(rqKX>~#-BJ~K0B5PbRXc)u8QQio3h;No^?)M3`lZO|PVpF|d1@C?iB!qn`{jK*r| zW0vdC80O?uVeXa4sy9ZuKSwK-Ddw5bKLVL}^sOBzhjsHowo&9GOP?#^LfjxdBZgW7 zgKyzi1XrDPrQY~}Bng5_@ae(g{?EzNn1O<;WG1N(6!s8t2~>#9t=uzasEX7D{KSKX zOW^GS{TS$m)wdT~*4Gd9Lu~Rl)1eK|AtS>8(UD?2UiSKRc&GK|r#lQeaNs2Y@s{`u zGMD6)Q`iEHAT0|NF)Q}4y0>hELsB2)hkJA`tmwtu8rBuFUmEwO?Q_ZGnjvQW*J>C4 z!lByQgSy!Y=l2kQM|90U9P&CATFD+fNvwJyL!Vnx1(pi7ga+@e}ng_3F@b^1L@}Mh6r?g`7 zTw3JC9&0Nr9l2-64v0wu#Mhb0*t&k}t`cxeAeKT8=2&=hu{z=7AdccuD3l;Bs2>{n z{dwywI!6ESc2ZRfah7UwM1wn5RBi=H z+4YxC%_CbaJ$gFb07O_@Kflhi1Sfs->*{_GT%*vuhM9UzUH$Hh(c@x%9sz-sI*zqy zX%%v8Kv`A*_aI1_`Y{IttR6poI=dcrR$o(JBgZW|L`KWNz+X%2SYe`XZobyB)O{H) z)QokYgWa zWyu%cVUSWK&<%x@Ze2O55Ac5N*)m^J{riP1P?&wrQE82Qvj@nfX=9VGTE%)_D2apUpzU3sn~0FhYAx{@);_7UtKbHnAXU|< zpN)OU!7O5E9`ri`ZL6PCxmh&GDJt48`1CDUbioS=yN1*+tuj)jXz<&8JRz{4cTfZx z?7kWR2V&{O8d9A>EJ#V7EtTl4Xj3RF6$J|Wyr@X$Tc8Vb7vkIil;tLaemX0yrlG;f z!O@zxcc(e99h@zlYL_+ex^CY}SA;eb+-GK8BT~XS7HlncY{CvUld0X^m;a$`MT1X% z)P;6fjJp&%;hiR_rka|u*CjjRVwfn zA9z=toZhrA5}_dPiGo~K&7?tQRxbpr11byefeEBkpvi8x2DW{-3+w5ZZGiKs`1w`8 z_(A7U@(k3hFU0+KMzYsHPk~O!v_9qa^N)dgw}KQ_$ma5>BC`mvkif0?pYv8706sxm z#HhsdE*OcbT^La8YgD}4l9F}^*ahRiUP2Nv9k&QWIrh-N0N25q_gD?uEwd%u8RrKy zD=YjrXP8O@L-Q9wOolBsn|pSU3pQlAA9<9)lLC#g<{Y!0N$0++u?1?BenQO1ieC&<7_=q{(@6NfI1dPE|ivGwy`1A2B`8&qs_9NcpqQ z^UZJj8p<)Tzwdv1)O;rQMBt|9z#{o#4-{v_X}z+ta%(8~<_sk^hJ4>_7+5_)lj1$? z9WTFD@}-9VH$*iU<)FVf_D61M6$%u1+WMv+moprF@$_TO?jkG)HD{)yLevh@#1DT{%XfoD(fpnGp*%V#xEEws21i2>FVtdg7%O6EF1=m< zPxYzAsY(UlJ}5{as{YlBK=*}~Wc>~aO*n>@6o6rbLcb!0Yz>Q|TI@qPj9$OctFr?- z8`vGciJDm8=vb~L(J(^Sa0FamYfVRP(A<3X;sv&#pdiF0QqQ0{HZwDW`~B;jrNy%f z?9Wb(5M_{KLEwx2Xd4Op8k7$pAV>#rU;qoOTmV6!i2{a~HptJg#bN&ZPQ}m#VUi`KGgcZZysH&o((NXhc@27IV6>V7 z$rnzi0#=7u%z#~xfFBBT9f0hJW|6uf#_mjEAtM+&03<2Dwq)T+$e`R=Jj%wabt#8Wsl6ayT38Z?5D zN(VBeu7Q05;2QMI)_COo_b`lubJhUXtHVeP&%;Q_E+|jx!dPnd(xpN)a)411jk*sD z*->7Ud(zz8Jn~u1B4?VxYyf=l%CI)z9Dp{;#?G)sKB$gHMLTs{v!5xVRas(Bl6ESA zTY$xZ1lpd`9#bgu;7xVJ4h0|$Bt^v!$!y7hrI&H9eDx8LhXqCGabFS0$Z&dT(8=cr zLtr9C(Uq>!v;>Y8JbiZ?2ZfHf1zLk>h^6P-GJbFxo7H)1>6*eMASzS;{)^@5AvhU@aO+$f5U#*Q58m|p zlQ>IvRj4&tk0Cc-i8Jtfykj4A^d6!fp0vV!QW1Q?;P<9Ph*T3Bt+2xkn&Y7X28Gktb zD%6ot0&3W~^_e&Nd{gV|!a{v&xNp~gf+87dUe*Pj*aQf=XB8FbZaqIgEmJA$-0l_L zesgfL!M<#Zz`{c)F=AdYdGC^5^Yvn8yhc+OI!l_<@TGy4Dd8u@h-<6E5aP9IKw0`7 zne{JvU}vgnOO&sVN;RhI^1$Gg%Z6tW#sY`dpo`YYgy(nFNa~{D3LGT?{_q-FdeALL z0IKEA??Hq@fwvCm#LPDgww&<6mKQuCQ$K9&`Rj|Qx7Z<1wp{GiV&81z-b6dN?JBH02|s5@5CPe- zc6AZp6_eD;v2Ur-PW_z0OUc6{&)b)%WZ8GF-Mb~+BJZYC~+)dD#R2R(A4%2D}Ol*5)$N1s3% zL#*M>!$Qa*9x$|z)S$V599HI-FqRN;1EQZSYe?uoIL}lHPr1$ zJXU`c+zgr<4?<3~j4Lf1Z=QeOB8nD-pt1+-`19w5+6R^wGL!GlbrM<+g_#%{Mk@sE zTEfvTIFZ6A^8EUzPxKR?PPc5%+}zwgz-b|mrLP>tCKZ^77ZW)qNJ;70qwurgo=P71 zQ44e9FDnTVZA%1@-5sIpV91;t4clxOoT8aZhJ!|k$pH?cQ1i0>RC+?3eBv+&+}Cd+ z01tZQQvs~VC7-LugA1}tjV)dKWr{pGq(DX$VXAc@jPZn!#X7@@oE8&~pWyE7c`7{H zD>d11dU6Cgm!CBDXjQYKin>Cr(wX1MHT?UUjP)x=BDJ5b|38lc4$fW36Hq_2&w6K#~fQg;YRjxm)>O@JR;AY`qC9=+M_+Bjc2 zavJYmVS;#_kkduCs@>GBtnz+J(EOnD-^Jp_Ez9fvk{oholHBU&-(&5WFdEL2LL8FonE%~KO2(jv zAa19Iv(qDK^h|V(9!F4C){1dO`BfDc=R?Gt4-8vYmJxjEARR+Hk4A3)2r2;_TZ3r& zK0KTcNeZeIoE~8Fyh~g=u|7p(jT{F!J`P@)Xk>C8DsF{55)0L|?B-zm&B=UdfHP_c zN1c(OP-kbW;{j&Z{hE|cjq#5-*^7+G)eB!g+r2svK^=y;nNeD*a}i?b&}fS0!+ zH#wF}A}eca;oM?FpF;t*z16D>z9Cx5G}DqH-+RV|hTwjGs%7IGM%{>)#l(N4xrYZ*0f$ zzIm%cfDv<^K4vBPTAQRgCXl!v+)JG*d$|2@CXq?XZ3c}0cQ4*#f&sNT!S&*y^KpZfLd9>B*0hKsn! zY{5a)(8FK6aK3X2GDwZjGA*RW+}{CrK1RPfn!09go&=)6ER6Xwcp-uRh`Nl3)YR9< zmxg?vn3y=H^UQ-lSD?ANr+q{qscEZ~H%K89#>e8qn$7IN6)z;^xMIqoNvp zm~H~&Oi9_yvEY$49zv zrzh)STyWw8G@2g~KkJB$P3srLiQ-xPnUc@C~ zj7BVJa1M)J%oZQ)_1pH2Q>T){y@e&V3o|p3a9(Vc(E>s<3L3ZY)rYyc$>54|^(m-W z?%A|6DH-|k<30o>H7zYCaOZeB;SV#N@tdD7_QhFikX^sR-TAnKKjJ1Ww+K<{<#Run z@=GKSe^1OoMnfNN-$8r=h&>c);?A3Vfz}Oavp;)qtRD=|_z4sF?qXmO{PEGb%=f^9_&H1Fx*V6BWk{nONs;vU*qDg_h9z=F9+U?#zkwtCw zIh?qsqoXUz$an)_83dp4P$fUNJLsEM5J)29*hAw?JW{o*kT!IgZx8=^f0vq$4mpE8 zQtu}WOn93|@V)n+8ErFPUtc(q)dE&@#2*UEWb5#-vHLCOt7b98UEKkJf!4s4>80G5 z;U`NV#~0zLAY`7ueAzkUYFp>342BIPi<&&?1Stc~|9mQt4a5&P&CJM12qpjSDDDCH z|5vS62~9SdXeO`};9k#Ch=io%?_NU=Y*5lcJRPg|BSVfQKnovnbipA`({~wP%Qv%@ zd+Er@!=cF!x|HSq#x%5BqCqUaBJqCteZ7A`fYtH-CcR>?H2i#( zQWFl=Uv?SW^T=UUklhIs{h8r;#J&qZj)jwt@3Ol|BspR*y>-j^`@s|?eYGN61v9dm zZ?K2P#uA`G5A8RT;@>KJn8rned>1aXgF7VwF@Yc(yu_WrEVIiWY1)DjFgeebA8-DJpaJ+dVag_&T+o$^LdZ!eO=d=#3q7vd>=dj ztbBh=Gk{pgB5~n1L@A3Vt)jBBNXpB_ZKhWjP*1RSNx*>&6EsfGU%beuztj^1 zQqYyBvRk0_ep*_3uC-)zyb8Qj;In}c&m?R!=u*CcC93ZIgB4kNAlKbT6ZCmVeV@8~L z*Rpa{*c=u>=IQ(Oa}32wn(@zxkVrbZdCa?)yg(*<_jFeInZ+D%XZUmO?phHMZcKi_ znpls6LD_hUH$W;0>rrAR3-V2O&$$guiP9q9XzeF!@1!CN)#(HTc` z$XF0lVwqdI-#SV-33CHQQB!-n?5hgzn#;*{rJ{*A1YwMYaEOo!(LTH3#Az3#U(X+M}G>%sLx$tB$;Fe0Q&V|2QBkpOC)U0qY?e;j^N2DW^FXb==*>)x6G zdftB9&%1jNYZ3K&fy?gj{viX>DZ%TI0nYnqpD6RVH~yyn?OP5E#%O}17_3Lw>Kh$x zUoRcZcf~Mx;Es6A~1!6s^Go*53aQH*B6pMK~$NVNn?|FRZ_RU3%sDKJfLVWEoEfK;mzO8F!zuObr=iE&Z`Lq_oXw522{v6i za#)87)3^qK_5fo-wv#Dx?fDVTqeqVPq1q#N20M(DhGVVy7g`6JBVXTWALZ9P-6)7f zZ3Wbz-JQe1%z9^t%_|_p3ix-z=$#$!0*3{J>kkX;n@ub4FH~aq{|tgSXgbL-9cu%H zggEZ>-cXKx;HMO~-w|FwIU7v20)n&li#Jlg7?_ry6<8w`C-p!rP&@qq!=v59J0hN0 z_|H!C)HldiM?ef=+~HPQj-CuCF&S(_s`a^}BOTeU#G#9d#sJE^P|zX~oploL2YFuo z^uprX%*+h7k|v>M5>#fg_gVXw(=yJcEaPe&&COTf2!P4G1jelZyPAcMiXR?H(mUI^ zZvX!M$kl0Ri6&=ev{QEZ^^T86k>aG%=a`!O`qsA{T?4w3Jftguwpbg?tD^jCotEKR zg+{|-b7>^hopi!x#e@owy^uyu#fgX7K&c$M$};E%`PibJow@cc=X0(ay|N7MjF2RC z9E6fw+}sSP<7C}T#m66G#nq(l2_%LfySLmPfB-{)DBy9<^i*H*2mGbgr2{I;%4h`H z0X|VgH6@*;9^oYEd+!!F1E9Bg6(c^}n!k?n>n&RVPyB8SUlcC=_O$D%>KbOwR13+3 z=gq|Sdzs!!|Ck*i!)VM_tY2K^BYJv7+@Hy5;Xj+~LxBlvqwgiy28ucsvtqkFSUpI# z>pfprJ-m_HCy|nQ_05YH%P^JjKEKS-dMB1$jYTiUbeIA>L!OJw(`F9Jc{vg`9{CQ% z1({wDl^1s7h1-cN_w_2`hw~gXaBA!#s;lK1`pYM(_QEBJB%F>DwX;nh6rFlTAgZ82 ze=6OjvJ_9g|NI%OFTEG!2{fz+Z`9=mJ47p^yoeCm&PD`?ASH3FUTs^vb3E*nph2cO zkn#u-HGa)MKX^$C1x_%?tfud~9}cB1R3>jb$Ae6i^^ku<-2N5%yRnTROuYs##)8Bp+v_=mlrRYL+t6;rz76+x=e4jT+RL4aVS^Ms)cc( z;OC9elGu}PSxGYc`u$Nbi!>jODbt@FI_2mXjXssYpU9b7`uY*wlC?K0>{1-U&(bO}saKLbsOpe>_U)-#FTGwFl7*mlSN&JAn7!F8Ax3UOpcyA+3ETNC~k9>Ia zfQ!P&0`=&|r150?um{gnIW<*MnJefTQ(dTkn(BT>SVHH_}17hvpJd;5>>tOY|8 zYM~2Tfb#L99&Mkxs0P3~^k2oXgtF<>GSB23;sN-K6X-;9mr#evAckI=8sLJmVj zlei-4hk99xM(fYyoD+W`WF~H6on>w-LBceA^X%L~*LwMxu~yDa$MWj7zEfZCdYpM1 zZ|FxvtvV!Q4}$7K=UP&hWm4-Ng?seMRtY7i1OzIGr{0gnxvX_&)w+Ob;0JmaCaMWy zO~!KSzH^h=^oI}s{wvQ5Ykfnvo}=Bx{xH@ zyLayrZ#Go+jY(<(=*m8g1)oY6*rv$c6)KEX79ps}NZ=-rV93+JFc^9A{8yPLAqEG{ z8_}eZ``8WHlk%C$4bQngiqyyH(K=g3a3c!5rcc{-SD314L~{u|f@_GoUvWuEJ*MMC zzyY%nzQEh_iG^@xjyrU@M!72Gq(t7xYD(V`m7(wyQibuPYc=h%c!hOor!%_;yer&~eYy21Gd@fFOYao<}ob;Vq=Fn61uyq%0v{m2?HVJqaPRK{h)?o(RkpUz(6Ka zJ`>j|qI*ZS&#*B1_|lkh>+R&28p@vyjTmwH{`uJoJQa$j>)j8YmUVc%bn@xqxg8zN z2^`BGSPRjZW1vtjDsZbfjEh~*6qWg_#ztg=<)}SEQTL!{Fw8%1?2)j+VV%giv4q~E z2M9wIY{dXfNoJq$@yG<+(K9?i^S@N|FO~vv{=#1FCD<`))^1gO^R%W)nwxwvoTjo~ z4xuU}9)I`>wlzDs1cF8(?ijvk-n+%zI+#7y2+%%}b<^9oqedP8e6|A;Kwvg032xnw zPMFWS?Y_)?OifJ*YFD-^>h)3NX`dswp zQ-q4fj1AHXQRBR}hYsTLjsR{~fdq#KC-MhW$L>wI*Ar2uL45;z} ztOlWEM5ZfRpa&S<(W-O3u;J;19jbk#6fze^F+qL>pf0Kv(A4$;A;(O%ueUeVFLfH% zhkB6oxuc_O0HWxM-jhWbAenn#WNgXk*!4bX_Giq?v(16S?xVfaUCL|EeA=sLX3u?u zF+HGB;=@rJHy?o%s}>6vrM`UGM})i>|g0wy3H+<^KV<+tb~V~0%1!k zvt+O>p}SmRT?wOL1Q zAbZd-;7W4%Iy$PmA|jseh&T_Gm0N1bCtT}4gK%T=RdKDGOHSh4Qlr6ViH0`@Wgo@? zFfk#lbAZtPD1Xsz!fi1M>>RKeYP*wr>a&{8I-v!;|8dly#0_N-7ONM%1e{XMzjN#J z?J=L5>U4QG)n2?QAt7OM`km%_d3jD0$)1zF3^+>f;2<*^W3>2IKZctuR8LxvMS*se z%>G;RPwuz3-;8J6H$KjRudxd&v#-~VsDW3V_;sDKibYZ!WM*cz&@t&(bn4w**@~xr z9cPa2JpG@4v=%gk6lfGsEEF#e>U?gS@(IxZ)PV0WPyh?`{Y*v?2KZ?)yR{zjT_}<) z7kc9t)KNwXp`xU_mhTB%ZUqF(u(BH+54I7ZaF;mtyxfrD+x&2cPHWgG`-N=@t0^mk zqH5OyOoO(T@FJiocPpzzbR;w#l^$Q-+K^Rat_w&bX!R@$2zV?NRS&N8h5_^mOb1?U_do{uBsSWEzP-?wvaLXYudEqJrzNQN{dF zq9@L=Bq{|@8pu*(q6#PO_!qZBU;4YBoa0^2DH=hHttxbnbWLHLP3oCBu&&h(?tnc4 zG0o796be3hY5s-Wlto$|^Y{wF6;3 zNfh%Cc-ncCFI&l9^Xyqb>#q5uE59G4A!5=5Lt2YPb^>h(;anHxw=m=8vkoxk=L)Z_ zSb(HI?w-KZWsbPD9f+0ggO540Nfg0iL?%se04UNDY%c?wAv993r`w0#fe=Kr z-j)lh7>i^%ca^%Z0A=`ER1KJAP1oNiusa~F0(Q7IJ=6vKQFy_Gx4t=;-bBI%@e1@R zTL0a7;N>a|K)JCtrQ3R_|JIK{G-~WJ+299AtSKadxp?q+Nvka0(of3gvO;wq?XZ$MMOeA-(EqU!I zi0g>o>2f+tDvne0Hy4VR-~-XC)EzYMppQp)cIrnJDlXd}2dgnFU;NXvXzwc5B^5G# zH#Rm9B<0EuPPV!yG6AN?A-^@1_Xki-Iwt$LRBTZeRBo0FcvL!}nvVJZoRLAEg4Uw9 z$leTi7^!7rZykoInE>SK-DhXN5+7dx7L6C}C{KN6w^;fC7%dfd=qO$VoMJ#Y~ei z*|H+O)!jb(!2_aC#DP6tKwm!j;Q|^WVt<-H+kuu8b;BGe{!{Z`Q0Zf7%$F4fxUxwoFc=e^q z?j1L0Ak88}D>$X3F)SQ@>HDQ)a zzkn$dMphJ2kMCa49jSFiqYQzcNQ!rtQ%#ZJyR8KrhcW)!#UvF_pRu8KaGCn0U%%n7 z_S{GNTJZxt+y_jI>c{@j-Lk$W)c>810%v;`?fHX_-@d8}3REJ(PO4f&R|012mGt!VnId%i?z0zU6cw*y6`ixU zr$5;sxqr*;5-&M)^}cxAm=yLFt?P2$57pbi5#7j$h;NT9nw~vl2oDbjBgQ6cK@})< z{*I1*Iz1BV)hAsnA?W0w7%8ab*i<&BpJU5rt@f^rG>=swuOb-fLPLp=gwiKg^zmlc7h#c3I3=Q0 zhE6x+m@rq*8mkDY;%RpEycP3EDg_9}4n>MQE%%sDi__i06b_r1T*1((Q?lL;WEw0k zGMpW*93LDE0%$idmR~*Yx^92e+9o}kZ}~f6wV7)Z^NgbJ1kRqvoTH++9J1}#r@b+D zaWCmV z09!Sk^(;9ic*u|S$vO`+48K;lQY?_r_l5)^k;re^vXxe0ky10jMoq&o{)iez%(~AZ6)!zkqtF1K0D!KiXp@ zS$I8?7{VZ$I@e7D?S;@I;&&$0lP(3qQ-cjV0cq_3J;7`9f)ebBK!Fq%F@r(ag#A_} zB?ZJ%<;$OdD17^7XSpynIr*N$>5E$CtCp4)>y+D@)28(!$dV)oJqt^yL3!%e!NF8O zeW(fS|5lWhCCqL!Ko=y!VfjT@FXhs&bD;}fsDA(c{;D~Beop!0^IP~PAz9>$+5l8W zu=Gph<(q(n77)guTO*OtfHg&_@nQAX%>aLMZ#i88y>Nv<*N^Gx7U97Q59i!P9PRA1 zTwGj2J6gPoRWnWNUsCIio)m9i=80Pl%cPqIB^O}V0JV4P&^t_<@L+<_oKOF%J!7R? zML&{)Ml`DfFs%(J*cCJN`+YKG_kyAaFJt@LdZTfLfCE`i-OSi}i|P@^ z2l*ZHpy%jBq7f-?V?h7cJr6hce~hl_b)02#2MBI?wt+|dEWD#*fIj~? zeMXT#=}eBq1L~E}Jn;(Yq6dc&7paHta>f8)ufoXRVRf@rmw01NtSFFD_&dGQbR*{C zL;`JbA}D_oBr{V)_h@k`r65D$(6MzFC3#j58WlzekH1}>>L=^bzFc$SV~zm)!_O24 z3=`u*WWP6sjxGtXdj`)|zgScC-O)gv_|ivmn;yh=BqO(Ac97=SQzhLsfnt>qG<7nX zw^X;rGY^f9{`&CzPUavSJ%Gum7jdN(5Yqz)$K6ybn=y8M1jcWyN985dHeNr+pTKO* z9k6lY0bY)zGkpbe7k-_yZ`83{5z#}D;TBZ1W`;+me)IZ&0m%^q1$aPr3>}x*1u|M$ zrT2H_kj7m{K4DmZ{`y7v1;72cK!^%MG4}nQ-0A>jATeq~e;2u{Dko>tuEpOjgou=u z?6n@i3}$YF8V&60T$6*PihXiF@A{Z0|IPLVVdG!F9#H*j64cRNbjEXICl{{*^Ct|hhK8I5&J}A_-(A_rqw1gcD6fc5wE%99^1;++mz|<@ z&TSJSSTvyqf?)@YiaG33Md5T@@j7`ba5KYskSw6rumecJ94TkvzAftQh-K~aJ7#!?EzIrj)< zI8m2XJoD#niR!Tp@;{4<}&U+wC_&M@wh*x!-9A_&(TM6J|@G0WqWg1=-=Fs z$VJWNZYVUR*1s3AK1eI2$ObR{RE?kF%x-3__HZT&h|;2zaBBS?R&j}0`EV_Xe?RWp zXUfP#i92<9wd!&JP-?+c=fn6(y~Y*aSSdyC$qRkLvKhjZ1Hy~hxbXuA`Td>$`vJET z64xUHRKv!3NMOcE8IY6G%B{P^$>+n^vGReoWKhhw(PO#t{lj7r;-j)lSC~c7=TgOc zYq;;|hifSrFMWb5d?Z)Ccj?dV?E1Pl{^Eh3#Mp~MyNwi&dw8`I*LBZV3XNN3Z#~c+ z-W?(Si+MQ(mNzT?1(vQ*tA8C&_~4OyfeLZMIb00zIQVU`^jmUvUy{%9N-6li48ptk z4AVpxG8&|HX_T76Z)cXC$ET=MZSR7ko*lN!WR{M7{mnG4l0i&o_&DyZZWm2($n=)( zM+sN4Oxji{1^lPAo*{n_m-TtM28ZHXgUdb};ks>=?g%#&9%FzZ8b6h_K*>WeWKFI~ zw&)6xu*G#ot|k{YXNcIoZ}oKj@pYMfzm zE{LPL>jR+d*HrO#1W`}U+8$?(L+#_Hi4Ywdmw4sQkwp-V)vQTad-`g6?A(EBsI_$)?V=a|c zvBW!=%6f(Zr5T-Ghem)n`<{`$p@BgjzbcpBh~me~tq3IC|+N#e48yiKk_`t_IZj=>ytH@pWAnx{9}F;1%8BX9QNoj)vbJ(pLNRqydg zKqK8saA=kiwUS(7e9hE`*(ah|`{QaTU}(*2+?iC-B5UKHL_DcA=_c9#26Je!YGm?; z-b++*{KT;1Uxmh%6!Rdwn~qv`A11~6c$HVxMprTFNWs!6-F>d0FGSg}^vsflOym44 zx7=Qo#OI^e?P+C$7v~M-8uFM^`N>M^+w-RI+tuXc3NR-qlv4A*s~QUPnTELo7g@#A zGVt)-O3kbG5AV)pkb1NMf7)XjM|bWrS|Q#)Wt$+Am~2(GNhV+HT(OP9JA zi|_KqQs2k#osY+g_JpTz*3J0t!CvdjsHz#n)prhCILUlV*6UZR-mfYX!DntER(~%W zZM?-Lv37ey;RSLOtREp`#xZ}BY;#;Kzmb3sHSEjwLb-(-=39ECT*W?J&ZrTBe2wv42!g7qGiJ_k@sTm(Z7EbrY+wpUY*x6<|xd+srD3!i5iTaME)x@V+C z*&$6nG**K$UIM4Uc|_bjRyX6pDO2||Iy$dvQK77%_}sIR2ny52QO97ZS*pBqXQ}ou zt?nvMJU0NMaJ)uBpR$p?R*Qj^M^%~{_OSsM=Zs;qs_XRWXp4UvBr%9WgHZOa@LMZR zc{bT~GBp5i!`oYAsB4igwPC~TE54ftBUPQ_Nz|(^{FX)G4|pptJ~*Xxut$k~TJ4su zo7phUZbcXEjaK$yB|I?>F%xosu9PB_ojBp!tbSi0?ar$&7vrqrjj@Ipj3ivugSf8A zl64YdrEUCOX`O6huF70Ul0kt-2 zh*cb8{PLPT!||-*C*Dw+P2;+z{&}+RW6)8M-uT)dS?zVCO!Kk5;GrlPDXrIHeM33S z7HqBJ{|5y5+|{aLY0*6Kw{WyT7XRbH)G2lU5ejt~M>v<6yGV_3F!lQK-KEfqBxJq6 zYRt%cXO*xrGebNK=B4rO9aR|jKm43WMVF?miyMdMB_|rKGR@SB zNNP^mG2on-@F!N&=dJB;l(Lzj+FhTSl zL9}Q=l!)M+I4AF~v(EdSwZ65!AKyD`W<6!!_1f3o&%O6Nac~1oDj*w>fPjEXTT9)T zfPe^pN<=_Tj6ZZ&+~~s}h<((wO~}c~=avi?@s||dTIN1@@u|N*LN#z+0RAScFU-sr z;pOD(Z~NGhz~A3r%+=G~$KKZ4QOxVHbKdT4HoP4IxSk2@^70Zd|9?OK7lHqOB5;kb zc?qBSrLVC8f`E{Sm;^vdMos~|MoC3YLrX``0AgffW?^Mx=iubxzRttTcY|L*5G*8o zQ$$ouTtZSxT1NJk97JA0@wSrk9TinIs5(qTQ%hS%S5M!-5N>3QFfqM*&&=Gy(#rb& z0~=dAdk04+XBSsD_lF*yUfz!$`}q1j@ec?L3JwVkdm0{rjEss##l*(NCnP2%r=+Gm zd!C+=nU$TBo0nfuScEPvDJ?6nsI024seMsb|FYrL>qbn|o933*w)VFjo$tD^@4I_? zKYZ-#$9)J)wT7F@0(lOJG(#j_78p@9vz?j zI{kh2=lo)ed`6alK!8_UUDbqzbq9MbJaP4cZ12aw?ramYMmmt6_c8r5ohtRDXU5Ar zPo6y!!%=Aar5hJNjoU!!#4#|&yywC3B&!LTM8%tB%}+Uc{XFN(>KHi7^Itd#bbjJo z_?axX!u5an&0t!Fr9yCoYm~}5m&zVvaO}?9$Gi68O^`Rt9 zs{f(^ptR*8i53K)yTX}>DS;{xgrcM@pl~8$3rYzv0e}?4Vgn}tQo2ZXp$R}N!*=1S zgkTADFF_;`+(spVko5mGMPz6@hNU5e=>J*RO)aQMeAcRebVQTSDXYHtlhlRJ_p z$Cu6AZ+KKPHNO!gOhF`ArVwj=Q5QAv(COuwBCF~x?>d5%h&Q#2Giy?nF~yKBw^-7^ z6Qs#JVT8^}_%ptUedpo^Qt`TSCc(+haRSwGmyznZ&=Vtx-^z78?E2Wy6ThwT64D!Z zFm!H55=Ci55Z3ibgH>Gqk2lEsg@i!!X(br}{_xai&nOv^et)*~54RXlZ1B8)sR6F} zqT}|+!BG)p;waVxk!}Vix4SSjwKRU`<(OC@XoC2nDUuMv2R$Cjm0e*D~249ogUU%1tK8I-d#r;Cx}Uv7isqLwU7xh!N@|EAoFasDNsk|6L` z4_(z`iYXStfTjK#jc<#2G7!TA`^$M1qX#3IY{MlV|Bedq@_5MX0Xb$v@=B~F@>nm1 zN$EH0bXzjVM{D;0#9mlQa2pdsc$L0`wm#ydB*07!3c`QAlZckpv&Oy0`U51SPc2 zoBo)2RYK2v9V&Wdwt7XDa?XnpUSs+z$=32YW%<>lSROQr5&}=k!h z;*DPj?MxREW?TtnD2!x|fO|E@G7aGUS1w#RJZ5%a)vI6hEkCI8U)e7o#H>F|w{RXS z9Q;qAD!uSyOpKp1W^3}YPW$pne_8Wye|LY<7w(3^M2_gxs~LBg72|sO7Q15@4WKH# z$fVob8KbhnR_~B~o-@oF3Rk1Oh#7bV z574v%LB{+x#K)Axf8R=Dd_IBBY9jB!eeYBQQ`CPLQE&`0j=Q70IUxgp-FVv<8!Sl( zE0ftd8sRo6ab~T$qGHu@s~_h?|3y%?5vO3jOoEZb){T7l7nWncTNCE~wPZC{9T$(e zud^y8c+$Eg{=q_{*Ww%M-C<6?_G;!E6z^5M^in5U0Na5WjOKx8#SdTn1OU45f2J2VY69E+yg-VhJtcqq#KDkNC>n z`8jO_6#m~m^#1p}XJ)+p;GIxc3+*%}?2ax_qK)Wla=>rZQqxE`N5b^#nS=U^A4BHP z2eZ>VoQB%Zf4G@9Qii{tV8cjpg#`696KXKOkq&y3bQ$bOvQ#(cxN;EkA@$EHU;FqG zZ!GR9_q(K#M$VfooPpPh+?J!!R<%zJ<_yl(!m5U?W}8E2?^tF;cFnC+M+YV*GiGC5 zroEp6%#6;4S;WU`j_pgecF)7pJ|c4X<^q;usYVm7<* zy`FjB(H7yBp!{6gH3M(N)pTt|S=87TF>~LN#mI+H#*t)a_c^I^%~z@IJPwP+7_~5q z)SrV5mNnfu80B_WRsBbOf{EFTO~q=s@(zKJ=d9>Hn&>|ufYiI3;jK|n6+9Tgx5mJ+ zX4y-glS&#*j}S)uH3Af_yrEW%p-4Gz71ecKy};g*N+arSZO~$=hU* z(f4cSCvYR#V%v1^I_Dymc! z>tp&avm%0&fq&qAh7mNI8G!|!xS|CDnCY&sBJ66f$7V8;?vxk6w6{i*vanGkp6ci_F#CeZ~q4q*at(N{X%*FV`AFS^$ zp2O)6oyhZQu$=!K?pD2t<2lrzShUtPp9FZv{fk~#tgqx@9rK94sN?BWx9C4{&sOE4 z*Y0$o(%@i{`hBA-ctX4f`O*hf#tS&nF1P2u{qtD(2m~0?z;vjMT-11{{IeTevt7Eu zsBXS#5Kr0#`)5`x2vt&09b3;1p3SFbKK+*~*n9FH0B8Oe>o`Nc8wYZIt)F*ruoU zzJKlQt_-v5$BId%HzAr8nd`63tb%LaDAR2qc=Y!Tscn zWJh{msYB~HDeXj%3Q8)fg6f}cf<%z5iZ08GtmM$ZO!8IRZeCKqYe)+%?9JFr80Zky z>L?>kZmZSjOp#g?zUOD>{Z4={`#wlSE&YZw!kbBN0$n{p{?RFuAkVg2IJboxYf^b# zk#*z|1>jECJfF-xX4_xM{9XR!U%$FI-9rA3K zd*>+?3Ow09V6&7eNC9$(E89}TCz2K=70lunjJqE4Zq$T^}xQt}1*?sD)x=?7z-*={GN)-0ym4}odDZzOBqvU)uxKYo9e2ggt?!@ zV@edb9Rk9r+zsIni+s%x$9ID>ZX&>X+*UOZs$>H!0})K-!z(bs_PIhu--_tdnS zCE`6J^ecbZ!|iPM%+WXgs0X9?Fw88n;@3r1w=Q;Wa7@HtAJ!t@-7s|z z(4Yq@WFh@xTX3N519WOVMyOIi?ZCh(UGMn)>-dw9wyc=#qKR{SZJySi!M#_{&opkigzan=v2}$fpLeZ>4sz&?Yr^55I$Ss;__dFafgqKo0|+3K+0w= z1Kv*!J{r&i)@zngm7wnct99ot_PUVu@`)|^^$jmB6qsJ`014t=zH0EuBGd|sjP6K_ zdUsf9L(A(S1_%R<#vEId-^@MlAwR2T6=~;5fUPW~KxZ%d7!EXxNYTr;nPgw`Chs96 znCUWGQr3tV;eBSa{>&oU+nN33xa~~xPZlc;Ey<7@`#%uJ`>{>X&)q!QKIZdpr64cV z!q<-Zd0(>`?=b++o*gR@CX5!E^^=>Qs=+HGkv5aZ_?0h)s!xi8@?+jBSA?FFrk_O#FrllQ zWX3pR@-?yIu~j;t?fsGlEaoMZPV?(C7hZ4S_<%Gg)FSN#mD9LC0puG?K;)R-i?Bzsmzj(XnOL7&tDZdHdR9kn!NnbR~?lm`?kNi<kroVi96%?( zZq&fmtE6H1n7tGeoKvB!Vkcm1?NfW_?9+8yhOtA*5HcZ za>EI@g*ojfHQ4ewdE>tp*=q1--tb;0e(!t?)m3;)=$FM-iTQK znWrz6Y~ajGRm|Xx6s;U>RmCVw;uX%jS7wX9Fp1Cw@CY0BMAn&Q(k#QMtF?AN>+oQC+_p_p&~mnd@CNLCW-+1-3mOzoM#RSXU@y^Q2zO?fn)l}EoxE+2yIoV%s zXv}I%Jz^%(V*U93Ni$%PGy600fGo(Uiwxwe>X2B1R#Xd4Udt_R=wYUo2$4?-qE-8i zs0|pesT}30mB=~P)Bb21N8`ErsJ#e$4gJTCDdUosy82F};D7>mv~Q&ih}T{oz*}V-3#|UdzmsFmS|XMsa=r1|jjTTg?U_ZN7Q3FM6-r>Y!a@`HMsL{^4MG=$yr3 zcGOsnz;cx{%fRj?MEKi_$Kn4e&P)eTC65SEjEsT%PKY+Ci|dn}IpWSca+}j5ZFjF+TtT-4%-wScrO| z1Q?^Gm=l69PU<;GeDPNMpr#-v&D!hu&=zhf1yA(9ZOW4JUSV`VgGRm5xPg-no`?Ku zW3*|^Bu6P2PzjGVd=4LIl-U=FKS(TLODRnqkvWp<3oAw6n)eq3Tp~@sBh1t4xaBkO{n+{6g0ODOs4ONDyrE$6AgKVlxa3m4ik4h;hd^%F*=sM7q3$5UO zb2-XS=19UpA8bZCRlYhhA0b7q`#8@Q(P=LG)b8@yZSV%>PL;u;6i6zyg0uwvy0&_h zIS%5VgUb4){UI2N81plYniKOOqQ3TPh2-cL5K7cY!Tm-E2^EyZ3zMQx;#=4 zds68EDQ+Ec$Pc6AW*~1PWyW@vkB7xM+mumzQh=0h4}{PL0i#%@+r8p&tc)y+;EhYI ziM6F{1(~1RQKJ#aYVWzbz#0|8&vGUn(7^mX34NtRhQi9Asio{ynMZPJ)oR$gEiXs` z>}WO38aYxy8FV!%q~1tu!ZIhkbXKy(G>+Vr7$Cb?KL^ex2Rxe`28epU56U%5VW=3P zI$6vXXB|Hx_uvIIW39V|HYfmXV^l@UQCJyCmX8y_VJh}d%T;ccEIsTE_}$R%rFwpl z716rXn^CF=1xWpSYSN}sqGWarcOuKIL6$r2y-zF-Ns?VN2kq7but;678PUCr!SdE^ z2gr#?oqWS_ZQRRC_uWkqi=Rve8(4JEVoRbD#%3(2pY4StYW9;G0gkKQG zyEmN2tUS$Is^tL*i}SALnCm~2YM<>f8;)g7jv~)9yz|!?NcZE&J}UJLceV{gBI#dR z4h{caZrS{4K71jl)Zj!17+k8*6k-9c|CYpfSp>uTV2v!Z2ndgdP=a|b>f7yFR$R?7 z_`{qdAJjaGXg2htJ#}IYQ7y`N4?Hguhcxi^6oQ_Xmy-2jEO78QH@-z3YKzzzD;T(R z!%+gf*%%5+9&a{a&C$lkYfr6DPy5)%Y^()=0$BY#FoYr5)E>}XB9S{(- zYe(1~6a??0#J&E3$_XRHwP9aL3r&+S7iePzAX5de-^SQfbSvX764ZpL`&W!|pu#2S z!`tysgw!I7>k$0b;9f4%R8Rg&-jL8#d8)7TtXr!q3t~9Vdn(=6( z{;RF_W>~HzVEqjo4%ppL!Ga*osI}L|HvMdEo2F*c8EePbRw0mYxZ?d1w0QoUq0e)h zLE5$&=@)@0Bnf0P3z@Z;3;rH50;P!p=naU+f$h-s!2>q?FF@aVMXhm;`g_J2GK!s z@I6+OX#<~g+ra|g3EhS@``j~D;Sdch72Jy!V5k;7A#>toCY@gY8<2V9M|mp%zN8H# zRqePm9;O%mld^W45zW7~QSW2hD+|(#0Nyj+djQVD*T@Ib==YT%OeEvc_t%0py;{J9 za3JfcOtUy$jcmzcFnC`W;ME-;<~#GFpL{311LTXM|B4tUufbQnmhk1fz}E&a7spHV zTo4atDSaGC?`5<{V8X7e>I^oDd?rU{@u1DKou+tvpxB0ed_xawR&{(0;D`Re1bpny zm;U_8Xeb{o(pi`vf!5#zhDF$AfTx!t*bv~HB^Ws$D@6g%mLYzNxVteDsROSS1xTa& zzJaJv+hH2&PY_xPBw#mEm=k=M$xX=+i-4~@#_dL};H)%0tOZH<&nV*zB6tmr_HK{o zLb0as6*nC9o9I>nMHZpp`pBGmdCFp0P-{F=9xiMvJ_x`;(=I4^E{(EVcL?|d--#o2 zLNa)i05BYxi>DWnNsS>ESaraSIt&9M_o?k1L?0$E&(=A(j1}X6z)fhmCnyocTUbE3 z(`=~(t{8l*F+cv($n57S#x8~|KCuGLZW5G*Y%kWbws>9E#2jrUlV`O56P=*+OV_w| zY0Gs)9=_rUT!_}WgMib-&%+XKrMTtc7iU(=hxar-FBCbwlXIA#e?UFlHUux@0^ETX z0||5IR-<|OT&)*A@FTwFymbksuIpc5%>3f}IS<~`o`7Hepbgl8PO2H)8-=yBg@L|< zCvZn5fCqX=8g!c&CUx*V*Oh$iG|*S~z5)n8R-Dm8BEVUdw42{^=iA7q$lEITL9S4& z2>9E~-`W?xqTS{Md4JcI{mTIfsG1htYRy$;oPsPW#yR_b8j2_X+Tr`jr0PH#aD>Kv z0lmFudQoP{6+yM&wehSDzG@BJMG2SUi~jiW5=*CG+mAU zTK59NdW^x9DtgB79toKd!f@+j^IYPfz@%Ng+!G}o|HN?K1tpoR2V8EL3L9#Z)6Crf zlH*XVdm_=oK42Fr+22Nc93bt%@|(&iV%M)@RISzU6?x!q)uitrOf+xS2;=3aaE8i1 zDsq@`UJs#cYW~}ELRBO%u2OcU^hjwz(TZ!oRnl}o4^LF0eZao}HGlHNvWuuIapLHp z=fybu%8ZzCw`?)A>UGZMxg6C{d8q2DR59)hU)nG(lr0j1jSDtI(}0Y|%4Lryiu;H` zZz&ivjfQFC=haqGSrNP^+og7-AXhD{6gag|)5n|w?!dx07sxkW-I(Y`70F9sE|Zl- zy^gO+#7s_6ZlR$}COTmmI-yjiYsTJy{9q(90)B%(Mu$opX?Kxf0#*dXQlJElo*cC6>_13c~;m+B_G_s_;4$CMs_C?q^_egR>&aN z5Zkp$!|h%W&v2oyN(LUyMwWYnWwX|f1y$2{K!;e0xTLnu{Xs&e%y%IsSw2d!7~!ce z=NnyV+)rNx3~BO_DLpa#NeS9#0YK4OqhYz9^rNLk!PzvX_%7jq-I#pWYWbB}GxXrJ z%qWs;=W*!RV{ncIyn(W2pb`zp{|?0_z{?(ouRZ=$lCFaRr}op zPmCpi<t(IA=VP$eN2B3U-XYm)L=dL1@s5+1&&P;Mh{>G5oxewB1LVxb(MtY^g{ z-*j^XvIbs42NN}_X)3FtORv(wl1|^vK;A)r0O=g_mzwA%%avAs?n@)$@DJYbj zv9qF8Z#ta=-D(R*D>+Kj5jz=AaseqzTUDgC<@1P$hbCrW=7K%p2I)IBfOSgX5K8Hu zF`OZ}{6b|W)1fDPMKt|975LH3*qeX*yPD6bw)ZwMYM5QJSPuG&Aen!4%!+w>tZ3~P z_7xYUt*)@0+9nffm^j&^r1he~nFSwCr6-L<)Iuy>2dmoR6UdS5AXTK&xvQrTM;lKT z&qHlkqSlx9w2!^Qp}MZSuG3=$Yhf|cbu?1x3$d&ntT^nX_nLq17Im;^ajOVqR4Snu zuQGsFfxotRpC*#q4mh@gVRO6}lOLkS86?XDp}0U?diX~Q}ZzC7uyWSPa?=t(VO zq}&mjo=QSqvoZ9;*Q)hp{;U>gc{^M=A?nzZemhqko6{gzfPA6Tu)Yn$*vQxoSYm8O zW*RDunE>A#gz}KshSl8;jLnvItYqgP#^%SD21g0NOoKZGz`XK$2&3T0Geue-N(-rK z-uM1GOaNV*DWCL2Xv^&aY1e*^9yBZFMq?w{5}RhfPeUy$jE3j-VCHacXcJxJ&@9wF zQwAEqRZ_*etuqhPHnY*O4&={3Zo&0nchA(_f0i zz)7U_jx29Xp#wFqqixL;tLW5P58YA5RMamVw2Cm=$m$+}$Vmy2(>mJj`T={hNlLe8 zCz2f)XX9?{k3oKbea7dDi$tKakHN=%|$j`%ZZQkFKv? z(-wa3qArx^$y zPD+z_L%FP#^C~fl3vMU!MULQ+6TufbI=3>h(oc_f)#h7o#)w&_k;2@z(X~&S)i~Um z^6Fm1&a~PY5wZG?8qFWJI zobDxQz5hce);;4w|DMRP>Z|d76Y<)c%lD^5YUJb@ae)si+!$)1-8uHeCfknU^WIOn zOf5z^X6e>1V}w_~&}3m|ppLivj#U)baQr4thU_gB7o;_hY*g4VM7KX!)VwNIw(>o& z4D|Ip`D9wmn0B~#S0U?Uvfq0uuyJD;wXli?q)FP4apwAQ&HE3g_%623JwxYc?e4jX z?VRnisjDv&&$)c=jJv1CP;k&EHQTrop{}lT`t+i!!BKxB6)1}N8S~I~I_#Hopt?z2 zr!EWX1&x>RwZW2}H{3h6ESZOO(O^j9I+8$iT5_lV69OIG8+?DN`5q~Yg^lWGX*$`; zrr|p`9 zI1R3Ukw!jPZNbUCeS*ubesJC*pBJw@Ix{PD(q(bTImoJ!eZ;sYX mK;!}c!?&^UZ*TP`U6TFE!(18;(aZmRWl$StpkA+LgZy8PtW=T! literal 0 HcmV?d00001 diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/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/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9625e10 --- /dev/null +++ b/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/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..444bad2 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,613 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + 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 = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + 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 = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa; + 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.appTa; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e42adcb --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/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/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/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/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..6a1b7c7738ae6492f083209031354c429ac08858 GIT binary patch literal 103880 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 B8r%Q? literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..1f1bbad855faf8500ea6eb8e61a6c1306916b1c0 GIT binary patch literal 3673 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 Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/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/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/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/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/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/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..4a7cdd4 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + App Ta + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + app_ta + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/detail copy.dart b/lib/detail copy.dart new file mode 100644 index 0000000..d092438 --- /dev/null +++ b/lib/detail copy.dart @@ -0,0 +1,443 @@ +import 'dart:async'; +import 'dart:convert'; +import 'package:app_ta/theme.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:http/http.dart' as http; + +class DetailTest extends StatefulWidget { + final String ip; + + DetailTest(this.ip); + @override + State createState() => _DetailTestState(); +} + +class _DetailTestState extends State { + TextEditingController durasi = TextEditingController(); + Timer? timer; // Gunakan nullable Timer + int sec = 0; + bool isLoading = true; // Tambahkan variabel untuk menunjukkan apakah sedang loading + + @override + void initState() { + super.initState(); + startTimer(); // Memulai timer saat initState dipanggil + } + + void startTimer() { + timer = Timer.periodic(Duration(seconds: 1), (Timer t) { + // Kirim permintaan ke ESP32 untuk mendapatkan waktu + http.get(Uri.parse('http://${widget.ip}/get-time')).then((response) { + // Periksa apakah respons berhasil dan memiliki data + if (response.statusCode == 200) { + // Ubah respons JSON menjadi Map + Map data = jsonDecode(response.body); + // Perbarui waktu sesuai respons dari ESP32 + setState(() { + // Ambil nilai jam, menit, dan detik dari respons + int hours = data['hours']; + int minutes = data['minutes']; + int seconds = data['seconds']; + // Ubah waktu menjadi detik dan perbarui state + sec = hours * 3600 + minutes * 60 + seconds; + isLoading = false; // Setelah waktu berhasil diambil, loading selesai + }); + // Jika waktu habis, atur nilai sec menjadi 0 + if (sec <= 0) { + t.cancel(); + } + } else { + // Jika respons gagal, tampilkan pesan kesalahan di konsol + print('Failed to fetch time: ${response.statusCode}'); + } + }).catchError((error) { + // Tangani kesalahan jaringan jika terjadi + print('Error fetching time: $error'); + }); + }); + } + + @override + void dispose() { + // Batalkan timer saat widget di dispose + timer?.cancel(); + super.dispose(); + } + + void onIncrementTime(int timeInMilliseconds) async { + // Kirim durasi waktu ke ESP32 dalam milidetik melalui HTTP POST + await http.post( + Uri.parse('http://${widget.ip}/set-timer'), + body: {'timer': timeInMilliseconds.toString()}, + ).then((response) { + if (response.statusCode == 200) { + // Jika waktu berhasil diatur pada ESP32 + showBottomNotification(context, 'timer telah diatur.'); + } + }).catchError((error) { + // Tangani kesalahan jika gagal mengatur waktu pada ESP32 + print('Error setting timer: $error'); + }); + + if (sec <= 0 && !timer!.isActive) { + // Jika waktu habis dan timer berhenti, mulai timer kembali + startTimer(); + } else { + // Jika waktu belum habis, tambahkan waktu baru ke nilai sec yang ada + setState(() { + sec += timeInMilliseconds ~/ 1000; // Konversi waktu ke detik + }); + } + } + + void resetTimer() async { + // Kirim permintaan ke ESP32 untuk mereset timer + await http.get(Uri.parse('http://${widget.ip}/reset-timer')).then((response) { + if (response.statusCode == 200) { + // Jika berhasil mereset timer, atur nilai sec menjadi 0 + setState(() { + sec = 0; + }); + showBottomNotification(context, 'timer telah direset.'); + } else { + // Jika gagal mereset timer, tampilkan pesan kesalahan di konsol + print('Failed to reset timer: ${response.statusCode}'); + } + }).catchError((error) { + // Tangani kesalahan jaringan jika terjadi + print('Error resetting timer: $error'); + }); + } + + void showBottomNotification(BuildContext context, String message) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(message, style: GoogleFonts.poppins(),), + duration: Duration(seconds: 2), + behavior: SnackBarBehavior.floating, + backgroundColor: primaryColor, + ), + ); + } + + Widget header() { + return Center( + child: Column( + children: [ + SizedBox( + height: 16, + ), + Container( + height: 90, + width: 90, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/images/ps.png'), + )), + ), + Text( + '${widget.ip}', + style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold), + ) + ], + ), + ); + } + + Widget countDown() { + int hours = sec ~/ 3600; + int minutes = (sec % 3600) ~/ 60; + int seconds = sec % 60; + + String hoursStr = hours.toString().padLeft(2, '0'); + String minutesStr = minutes.toString().padLeft(2, '0'); + String secondsStr = seconds.toString().padLeft(2, '0'); + + return Center( + child: Container( + margin: EdgeInsets.only(top: 36), + height: 84, + width: 400, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(14), + border: Border.all(width: 2, color: primaryColor)), + child: Center( + child: Text( + '$hoursStr:$minutesStr:$secondsStr', + style: GoogleFonts.spaceMono(fontSize: 52, fontWeight: FontWeight.bold, color: Colors.red), + ), + ), + ), + ); + } + + Widget billing() { + return Container( + margin: EdgeInsets.only(top: 36), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Tambah Durasi Sewa', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + SizedBox(height: 8), + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: EdgeInsets.only(top: 8), + height: 46, + width: 164, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all(width: 2, color: primaryColor)), + child: Center( + child: Container( + margin: EdgeInsets.only(left: 10), + child: TextFormField( + controller: durasi, + keyboardType: TextInputType.number, + style: primaryTextStyle, + cursorColor: primaryColor, + decoration: InputDecoration.collapsed( + hintText: 'masukkan durasi', + hintStyle: GoogleFonts.poppins(fontSize: 12)), + ), + ), + ), + ), + SizedBox( + width: 14, + ), + Container( + child: Center( + child: Text( + 'menit', + style: primaryTextStyle.copyWith(fontSize: 16), + ), + ), + ) + ], + ), + Container( + margin: EdgeInsets.only(top: 20), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + GestureDetector( + onTap: () { + setState(() { + durasi.text = "30"; + }); + }, + child: Container( + height: 38, + width: 102, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: primaryColor), + child: Center( + child: Text( + '30 menit', + style: secondTextStyle, + )), + ), + ), + GestureDetector( + onTap: () { + setState(() { + durasi.text = "60"; + }); + }, + child: Container( + height: 38, + width: 102, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: primaryColor), + child: Center( + child: Text( + '60 menit', + style: secondTextStyle, + )), + ), + ), + GestureDetector( + onTap: () { + setState(() { + durasi.text = "90"; + }); + }, + child: Container( + height: 38, + width: 102, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: primaryColor), + child: Center( + child: Text( + '90 menit', + style: secondTextStyle, + )), + ), + ), + ], + ), + Container( + margin: EdgeInsets.only(top: 10), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + GestureDetector( + onTap: () { + setState(() { + durasi.text = "120"; + }); + }, + child: Container( + height: 38, + width: 102, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: primaryColor), + child: Center( + child: Text( + '120 menit', + style: secondTextStyle, + )), + ), + ), + GestureDetector( + onTap: () { + setState(() { + durasi.text = "180"; + }); + }, + child: Container( + height: 38, + width: 102, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: primaryColor), + child: Center( + child: Text( + '180 menit', + style: secondTextStyle, + )), + ), + ), + GestureDetector( + onTap: () { + setState(() { + durasi.text = "240"; + }); + }, + child: Container( + height: 38, + width: 102, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: primaryColor), + child: Center( + child: Text( + '240 menit', + style: secondTextStyle, + )), + ), + ), + ], + ), + ) + ], + ), + ) + ], + ), + ); + } + + Widget button() { + return Center( + child: Container( + margin: EdgeInsets.only(top: 14), + height: 44, + width: 246, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), color: primaryColor), + child: TextButton( + onPressed: () { + // Konversi input dari menit menjadi milidetik + int durationInMilliseconds = int.parse(durasi.text) * 60 * 1000; + onIncrementTime(durationInMilliseconds); + }, + child: Text('Set', style: secondTextStyle), + ), + ), + ); + } + + Widget resetButton() { + return Center( + child: Column( + children: [ + Container( + margin: EdgeInsets.only(top: 14), + height: 44, + width: 246, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), color: Colors.red), + child: TextButton( + onPressed: () { + resetTimer(); // Panggil fungsi resetTimer saat tombol ditekan + }, + child: Text('Reset', style: secondTextStyle.copyWith(color: Colors.white)), + ), + ), + SizedBox(height: 14,), + Text('setiap waktu habis jangan lupa klik reset :)', style: primaryTextStyle,) + ], + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: 0, + leading: IconButton( + onPressed: () { + Navigator.pop(context); + }, + icon: Icon(Icons.arrow_back_ios_new_rounded, color: primaryColor,), + ), + ), + body: isLoading // Tampilkan loading widget jika sedang loading + ? Center( + child: CircularProgressIndicator( + color: primaryColor, + ), + ) + : Container( + margin: EdgeInsets.symmetric(horizontal: 30), + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + header(), + countDown(), + billing(), + button(), + resetButton() + ], + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/home_view.dart b/lib/home_view.dart new file mode 100644 index 0000000..3c5114c --- /dev/null +++ b/lib/home_view.dart @@ -0,0 +1,284 @@ +import 'dart:async'; +import 'dart:convert'; +import 'package:app_ta/detail%20copy.dart'; +import 'package:app_ta/theme.dart'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; + +class Home extends StatefulWidget { + @override + State createState() => _HomeState(); +} + +class _HomeState extends State { + TextEditingController _ipController = TextEditingController(); + Map> _esp32Data = + {}; // New structure to hold more information + Timer? _timer; + + @override + void initState() { + super.initState(); + _timer = Timer.periodic(Duration(seconds: 1), (timer) { + _updateTimeForAllDevices(); + }); + } + + @override + void dispose() { + _timer?.cancel(); + super.dispose(); + } + + Future _sendRequest() async { + String ipAddress = _ipController.text.trim(); + if (_esp32Data.containsKey(ipAddress)) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Device already connected')), + ); + return Navigator.of(context).pop(); + } + + try { + final response = await http.get(Uri.parse('http://$ipAddress/find')); + if (response.statusCode == 200) { + setState(() { + _esp32Data[ipAddress] = { + 'name': ipAddress, + 'time': 'loading...', + }; + }); + _ipController.clear(); + Navigator.of(context).pop(); + } else { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Failed to connect to $ipAddress')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error connecting to $ipAddress')), + ); + return Navigator.of(context).pop(); + } + } + + void _updateTimeForAllDevices() { + _esp32Data.forEach((ip, data) async { + try { + final response = await http.get(Uri.parse('http://$ip/get-time')); + if (response.statusCode == 200) { + var timeData = jsonDecode(response.body); + setState(() { + _esp32Data[ip]!['time'] = + "${timeData['hours'].toString().padLeft(2, '0')}:${timeData['minutes'].toString().padLeft(2, '0') + }:${timeData['seconds'].toString().padLeft(2, '0')}"; + }); + } + } catch (e) { + print('Failed to update time for $ip'); + } + }); + } + + Widget deviceWidget(String ip) { + var data = _esp32Data[ip]; + return Container( + margin: EdgeInsets.only(bottom: 10, left: 30, right: 30), + height: 100, + width: 320, + decoration: BoxDecoration( + border: Border.all(width: 2, color: primaryColor), + borderRadius: BorderRadius.circular(14), + ), + child: Row(children: [ + Container( + margin: EdgeInsets.only(left: 16), + height: 64, + width: 64, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/images/ps.png'), + )), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 144, + // color: Colors.yellow, + margin: EdgeInsets.only(left: 22), + child: Text(data!['name'], + style: primaryTextStyle.copyWith( + fontSize: 22, fontWeight: semiBold))), + // SizedBox(width: 20,), + Container( + // margin: EdgeInsets.only(left: 22), + child: Text(data['time'], + style: primaryTextStyle.copyWith( + fontSize: 14, fontWeight: semiBold, color: Colors.blue))), + ], + ), + SizedBox( + height: 8, + ), + Row( + children: [ + GestureDetector( + onTap: () { + _navigateToDetail(ip); + }, + child: Container( + margin: EdgeInsets.only(left: 22), + height: 26, + width: 78, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: primaryColor), + child: Center( + child: Text( + 'detail', + style: secondTextStyle, + )), + ), + ), + GestureDetector( + onTap: () { + _removeDevice(ip); + }, + child: Container( + margin: EdgeInsets.only(left: 22), + height: 26, + width: 78, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6), + color: Colors.red), + child: Center( + child: Text('delete', style: secondTextStyle), + ), + ), + ), + ], + ) + ], + ) + ]) + ); + } + + void _removeDevice(String ip) { + setState(() { + _esp32Data.remove(ip); + }); + } + + void _navigateToDetail(String ip) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => DetailTest(ip), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text( + 'ev center', + style: primaryTextStyle.copyWith( + fontSize: 28, fontWeight: FontWeight.bold), + ), + actions: [ + IconButton( + icon: Icon( + Icons.add_circle_outline, + color: Color(0xFF020518), + ), + onPressed: () => _showAddDialog(), + ) + ], + elevation: 0, + backgroundColor: Colors.transparent, + ), + body: _esp32Data.isEmpty + ? Center( + child: Text( + 'belum ada perangkat terhubung', + style: primaryTextStyle, + ), + ) + : ListView( + children: _esp32Data.keys.map((ip) => deviceWidget(ip)).toList(), + ), + ); + } + + void _showAddDialog() { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + contentPadding: EdgeInsets.all(16), // Atur padding konten + content: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Align( + alignment: Alignment.centerLeft, + child: Text( + 'IP Address', + style: primaryTextStyle.copyWith( + fontWeight: semiBold, + ), + ), + ), + Container( + margin: EdgeInsets.only(top: 8), + height: 45, + width: 283, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(14), + border: Border.all(width: 1)), + child: Center( + child: Container( + padding: EdgeInsets.only(left: 10), + child: TextFormField( + controller: _ipController, + style: primaryTextStyle, + cursorColor: primaryColor, + keyboardType: TextInputType.number, + decoration: InputDecoration.collapsed( + hintText: 'xxx.xxx.x.xx', + hintStyle: primaryTextStyle.copyWith( + color: Colors.grey.shade400)), + ), + ), + ), + ), + SizedBox(height: 20.0), + Container( + width: 123, + height: 45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: primaryColor), + child: TextButton( + onPressed: _sendRequest, + child: Text( + 'connect', + style: secondTextStyle, + ), + ), + ), + ], + ), + ); + }, + ); + } +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..5db555d --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,19 @@ +import 'package:app_ta/home_view.dart'; +// import 'package:firebase_core/firebase_core.dart'; +import 'package:flutter/material.dart'; + +void main() async { + // WidgetsFlutterBinding.ensureInitialized(); + // Firebase.initializeApp(); + runApp(MyApp()); +} + +class MyApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + return MaterialApp( + debugShowCheckedModeBanner: false, + home: Home(), + ); + } +} \ No newline at end of file diff --git a/lib/theme.dart b/lib/theme.dart new file mode 100644 index 0000000..d1f4a36 --- /dev/null +++ b/lib/theme.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +Color primaryColor = Color(0xFF020518); +Color backgroundColor = Color(0xFFF6F8FB); + +TextStyle primaryTextStyle = GoogleFonts.poppins( + color: primaryColor, +); +TextStyle secondTextStyle = GoogleFonts.poppins( + color: Colors.white, +); + +FontWeight reguler = FontWeight.w300; +FontWeight medium = FontWeight.w500; +FontWeight semiBold = FontWeight.w700; +FontWeight Bold = FontWeight.w900; \ No newline at end of file diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt new file mode 100644 index 0000000..dc1daf0 --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,139 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "app_ta") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.app_ta") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..1830e5c --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) audioplayers_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "AudioplayersLinuxPlugin"); + audioplayers_linux_plugin_register_with_registrar(audioplayers_linux_registrar); +} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..e9abb91 --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + audioplayers_linux +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/linux/main.cc b/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/linux/my_application.cc b/linux/my_application.cc new file mode 100644 index 0000000..331bc43 --- /dev/null +++ b/linux/my_application.cc @@ -0,0 +1,104 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "app_ta"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "app_ta"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/linux/my_application.h b/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/macos/.gitignore b/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..a9f2f23 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import audioplayers_darwin +import path_provider_foundation + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..34b892c --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,695 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* app_ta.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "app_ta.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* app_ta.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* app_ta.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app_ta.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app_ta"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app_ta.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app_ta"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app_ta.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app_ta"; + }; + name = Profile; + }; + 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.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + 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.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + 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.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + 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 */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..957fd98 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..d53ef64 --- /dev/null +++ b/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/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/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/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..82b6f9d9a33e198f5747104729e1fcef999772a5 GIT binary patch literal 102994 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ⅅ8MglG&ER{i5lN315cO?EdHNLrg? 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 z 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 Pe7HEdAEg|=c=LY&YVNkY literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..13b35eba55c6dabc3aac36f33d859266c18fa0d0 GIT binary patch literal 5680 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3f5fa40fb3d1e0710331a48de5d256da3f275d GIT binary patch literal 520 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1632cfddf3d9dade342351e627a0a75609fb46 GIT binary patch literal 2218 zcmV;b2vzrqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuE6iGxuRCodHTWf3-RTMruyW6Fu zQYeUM04eX6D5c0FCjKKPrco1(K`<0SL=crI{PC3-^hZU0kQie$gh-5!7z6SH6Q0J% zqot*`H1q{R5fHFYS}dje@;kG=v$L0(yY0?wY2%*c?A&{2?!D*x?m71{of2gv!$5|C z3>qG_BW}7K_yUcT3A5C6QD<+{aq?x;MAUyAiJn#Jv8_zZtQ{P zTRzbL3U9!qVuZzS$xKU10KiW~Bgdcv1-!uAhQxf3a7q+dU6lj?yoO4Lq4TUN4}h{N z*fIM=SS8|C2$(T>w$`t@3Tka!(r!7W`x z-isCVgQD^mG-MJ;XtJuK3V{Vy72GQ83KRWsHU?e*wrhKk=ApIYeDqLi;JI1e zuvv}5^Dc=k7F7?nm3nIw$NVmU-+R>> zyqOR$-2SDpJ}Pt;^RkJytDVXNTsu|mI1`~G7yw`EJR?VkGfNdqK9^^8P`JdtTV&tX4CNcV4 z&N06nZa??Fw1AgQOUSE2AmPE@WO(Fvo`%m`cDgiv(fAeRA%3AGXUbsGw{7Q`cY;1BI#ac3iN$$Hw z0LT0;xc%=q)me?Y*$xI@GRAw?+}>=9D+KTk??-HJ4=A>`V&vKFS75@MKdSF1JTq{S zc1!^8?YA|t+uKigaq!sT;Z!&0F2=k7F0PIU;F$leJLaw2UI6FL^w}OG&!;+b%ya1c z1n+6-inU<0VM-Y_s5iTElq)ThyF?StVcebpGI znw#+zLx2@ah{$_2jn+@}(zJZ{+}_N9BM;z)0yr|gF-4=Iyu@hI*Lk=-A8f#bAzc9f z`Kd6K--x@t04swJVC3JK1cHY-Hq+=|PN-VO;?^_C#;coU6TDP7Bt`;{JTG;!+jj(` zw5cLQ-(Cz-Tlb`A^w7|R56Ce;Wmr0)$KWOUZ6ai0PhzPeHwdl0H(etP zUV`va_i0s-4#DkNM8lUlqI7>YQLf)(lz9Q3Uw`)nc(z3{m5ZE77Ul$V%m)E}3&8L0 z-XaU|eB~Is08eORPk;=<>!1w)Kf}FOVS2l&9~A+@R#koFJ$Czd%Y(ENTV&A~U(IPI z;UY+gf+&6ioZ=roly<0Yst8ck>(M=S?B-ys3mLdM&)ex!hbt+ol|T6CTS+Sc0jv(& z7ijdvFwBq;0a{%3GGwkDKTeG`b+lyj0jjS1OMkYnepCdoosNY`*zmBIo*981BU%%U z@~$z0V`OVtIbEx5pa|Tct|Lg#ZQf5OYMUMRD>Wdxm5SAqV2}3!ceE-M2 z@O~lQ0OiKQp}o9I;?uxCgYVV?FH|?Riri*U$Zi_`V2eiA>l zdSm6;SEm6#T+SpcE8Ro_f2AwxzI z44hfe^WE3!h@W3RDyA_H440cpmYkv*)6m1XazTqw%=E5Xv7^@^^T7Q2wxr+Z2kVYr + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..52386b4 --- /dev/null +++ b/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 = app_ta + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.appTa + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/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/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/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/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/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/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..5418c9f --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import FlutterMacOS +import Cocoa +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..42d3be3 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,522 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + archive: + dependency: transitive + description: + name: archive + sha256: ecf4273855368121b1caed0d10d4513c7241dfc813f7d3c8933b36622ae9b265 + url: "https://pub.dev" + source: hosted + version: "3.5.1" + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + audioplayers: + dependency: "direct main" + description: + name: audioplayers + sha256: c05c6147124cd63e725e861335a8b4d57300b80e6e92cea7c145c739223bbaef + url: "https://pub.dev" + source: hosted + version: "5.2.1" + audioplayers_android: + dependency: transitive + description: + name: audioplayers_android + sha256: b00e1a0e11365d88576320ec2d8c192bc21f1afb6c0e5995d1c57ae63156acb5 + url: "https://pub.dev" + source: hosted + version: "4.0.3" + audioplayers_darwin: + dependency: transitive + description: + name: audioplayers_darwin + sha256: "3034e99a6df8d101da0f5082dcca0a2a99db62ab1d4ddb3277bed3f6f81afe08" + url: "https://pub.dev" + source: hosted + version: "5.0.2" + audioplayers_linux: + dependency: transitive + description: + name: audioplayers_linux + sha256: "60787e73fefc4d2e0b9c02c69885402177e818e4e27ef087074cf27c02246c9e" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + audioplayers_platform_interface: + dependency: transitive + description: + name: audioplayers_platform_interface + sha256: "365c547f1bb9e77d94dd1687903a668d8f7ac3409e48e6e6a3668a1ac2982adb" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + audioplayers_web: + dependency: transitive + description: + name: audioplayers_web + sha256: "22cd0173e54d92bd9b2c80b1204eb1eb159ece87475ab58c9788a70ec43c2a62" + url: "https://pub.dev" + source: hosted + version: "4.1.0" + audioplayers_windows: + dependency: transitive + description: + name: audioplayers_windows + sha256: "9536812c9103563644ada2ef45ae523806b0745f7a78e89d1b5fb1951de90e1a" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + bloc: + dependency: transitive + description: + name: bloc + sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" + url: "https://pub.dev" + source: hosted + version: "8.1.4" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + url: "https://pub.dev" + source: hosted + version: "0.4.1" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.dev" + source: hosted + version: "1.17.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + url: "https://pub.dev" + source: hosted + version: "1.0.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + sha256: f0ecf6e6eb955193ca60af2d5ca39565a86b8a142452c5b24d96fb477428f4d2 + url: "https://pub.dev" + source: hosted + version: "8.1.5" + flutter_launcher_icons: + dependency: "direct main" + description: + name: flutter_launcher_icons + sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + url: "https://pub.dev" + source: hosted + version: "0.13.1" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + sha256: "2776c66b3e97c6cdd58d1bd3281548b074b64f1fd5c8f82391f7456e38849567" + url: "https://pub.dev" + source: hosted + version: "4.0.5" + http: + dependency: "direct main" + description: + name: http + sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + image: + dependency: transitive + description: + name: image + sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" + url: "https://pub.dev" + source: hosted + version: "4.1.7" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + lints: + dependency: transitive + description: + name: lints + sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.dev" + source: hosted + version: "0.12.15" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + meta: + dependency: transitive + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" + source: hosted + version: "1.8.3" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + url: "https://pub.dev" + source: hosted + version: "5.4.0" + platform: + dependency: transitive + description: + name: platform + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + url: "https://pub.dev" + source: hosted + version: "3.1.4" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" + source: hosted + version: "1.9.1" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" + url: "https://pub.dev" + source: hosted + version: "3.1.0+1" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.dev" + source: hosted + version: "0.5.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + uuid: + dependency: transitive + description: + name: uuid + sha256: "22c94e5ad1e75f9934b766b53c742572ee2677c56bc871d850a57dad0f82127f" + url: "https://pub.dev" + source: hosted + version: "4.2.2" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + win32: + dependency: transitive + description: + name: win32 + sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" + url: "https://pub.dev" + source: hosted + version: "5.0.9" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" + xml: + dependency: transitive + description: + name: xml + sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" + url: "https://pub.dev" + source: hosted + version: "6.3.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.0.5 <4.0.0" + flutter: ">=3.10.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..da5e0fc --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,101 @@ +name: app_ta +description: A new Flutter project. +# 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 + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.0.5 <4.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 + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + google_fonts: ^4.0.4 + flutter_bloc: ^8.1.5 + http: ^1.1.0 + audioplayers: ^5.0.0 + flutter_launcher_icons: ^0.13.1 + +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: ^2.0.0 + +flutter_launcher_icons: + android: "launcher_icon" + ios: true + image_path: "assets/images/logo.png" + +# 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: + - assets/images/ + - assets/audio/ + # - 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/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..aaf0eda --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// 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:app_ta/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(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/web/favicon.png b/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/web/icons/Icon-192.png b/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/web/icons/Icon-512.png b/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/web/icons/Icon-maskable-192.png b/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/web/icons/Icon-maskable-512.png b/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/web/index.html b/web/index.html new file mode 100644 index 0000000..7837ae5 --- /dev/null +++ b/web/index.html @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + app_ta + + + + + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..762dc70 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "app_ta", + "short_name": "app_ta", + "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/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..308aae7 --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,102 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(app_ta LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "app_ta") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..930d207 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,104 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + windows-x64 $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..09e8e2c --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + AudioplayersWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("AudioplayersWindowsPlugin")); +} diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..375535c --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + audioplayers_windows +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..5bfd7aa --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "app_ta" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "app_ta" "\0" + VALUE "LegalCopyright", "Copyright (C) 2024 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "app_ta.exe" "\0" + VALUE "ProductName", "app_ta" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..b25e363 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,66 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..aea0082 --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"app_ta", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c04e20caf6370ebb9253ad831cc31de4a9c965f6 GIT binary patch literal 33772 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 literal 0 HcmV?d00001 diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..a42ea76 --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..b2b0873 --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length <= 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_

V!&d4Bb!)=-Yr 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 OqH;z3pZv@B9{qoEANKD6 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..704b81b07c30a272dc171c5b4d25c4084dfdacf0 GIT binary patch literal 739 zcmV<90v!E`P)mZ^< zixx?bMMEwW22o~Nkf1xU@i{j4+!-VLOk2zxxP15f?m55joO>Qp{9}>+S73jCzh+}& z&u_~2Hc{9U@hlihMOng3{KaoiM5C92weSQ6{tE)@(7Ecrk#fQns$hN-P=HJ(gIFxC13f-IqF5}Vy}g~kcXV`o+}hguYPDL&>VWKnwYCq1 zLRec{9Rn5xSw1~I#l*w} zPEJm^XWQG`7#|_VHPL7^ z97aDR&)x*QySw9tgM))$S;yhwAv_)rzc-uB28Y9e-rioYQo-%*?MrhZkg`e{-rwIx zAP~Up>?{wpmK4g}($W(2dObuUQETAL%naOaH_T=;E-o(6)6?^G=J)&IbULxQxrx2K zJ*=#(v<9+bb9)?=2=5^TD*N5)zZk{BrEd8TScTAnq+1bh8+0V+QQmIl042Q#KtQ>4( zW4wbfG&IDYi;Ih|hF_DbtE=;Jx%{gR$XdxaIy!2k-fT&DCb?WL%gSn55HgJ*ni|yT ze|uBb48+1LU0z_IeUVd*lu}P5{y&3Q|`3-y< V8E7qqEU5qh002ovPDHLkV1jgjSq=aI literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a3659f4d6deeb7c6969107e365dae077da2d4502 GIT binary patch literal 1707 zcmV;c22}ZpP)X3YvtNJxmEH*a3(`}gk)D@>5&jvP6X zFmBwq->QmO8E~04ZCYT97A?F+j2Q8&5lKUW;A0NMM+qV5Fp8VbZo&&+& zy?b|=KYxBi^-%kQ*|TSd?B2b5Pew*YmhHF$!N9=4AXit{GGk7H9M7LWN25lK;O_1Y ziO+Hkmz0#CxVRY4o;^eT`t>16W;l;F7cE*8K55dVfN}{kTgx(*n3#weGiKoF)2C`^ z(4aw(B!a)czXMScOHWV7=FOXtl9Gb_{Cw1_R}b5_Z^x7=Qw$$$`0(L=_G1nNTeoiQ zWkl}UwQCqZe!ONO4cxzfA7{^=MN(1{yuH0KapFWQU%ng`i-j?ag9i`d^5x6)47zvk zjt(6Z$=gF5@Rj`v zRg#MrFXF<53y}Cg-@biyY}2MqN|M(N8#dte>(^-5u%X@)9Y*ciwbh$^fPMS+Au=+O z`UlBW_3-)g=P`8XP^Y#lMDY0W<9eMrbEaOIB$9FX@Zp0Rq}QzE2qpu`7ZeoW&Ye5B zckdqFy?du|8xRnn1o!XXUo`}2=-jz;@bK`^1^4dVi#c=Vl-_UBqzOdBG+AtM;=~C| zojMgaZ{F0HYuU1;&RMZyg??wkacyTR;FKV}bp85u3>-KRHEY(?7@9nJGR~Yiqw+C& z^l0?y)5qa|ojZ4iR0+Iz@d6U`>N&1KLIVa2&?I{F=n=8r z^ShB3I(6!V`1pAE`ugJb?c2!C&MuwTty?$!->qA>%oBY0@S$GYv}yCzxYX)WgG>tk zW@di+^a)+NcEyAV6Eu5ClCfy}5MExNm5eIj3{DAhdk6-;E!wwluO8qw9zJ{+MMXuL zwIp)r&>^f`xe}vBjl$ZsYt`$vu&(v$)hqJ^8OS=(@?|RHiow2f=T42o{{8zSA|gV! zQ#v6?kB8{!Xq-BAN@I2U^y#XT&6+j)YAx&9rU-g^dg_&xBPS;ZyLRoumMvRUY8Z#> z*RR(^vE4!`Sr|5Km=ayObgAm#v17+Hiz)bwN1|!drsfGsccV3Q*|KG7j4?*RrL-`c zjj91b!cy0@9-lmU66@Bj!^VvpRoM9-mQ15^S80NE>(@>2 zsM5kM&&C@T+vPENi#_Xm}K6&y)JDjasw`!7w zhK8CW$Zq8A+qc>MUWc12u|9l4SHatVq?Ww&kH*4z4F zJC$NzT^v@Fes7O#K_J&F*IL!1BrYy4)_%}|Am5enbp%iR)x+yEBxw?olatf!#|`&H z&c>k<=s(Me-}n1d1G2KRE=jV57~L}@DCdX5kt0X?i&jNTdmkdPV_a~}qeMhJLC!TH zB1w5h6UvNglH^+_zK#%K4U-PVS2XXZs$eB#a^y^%EcHFkXj>~p(29(Vj7%w0s;E3v zi~gA^j~_pNEEXxruju?r8M8g{R~P>KuYi9v{sAE~yljm2((3>K002ovPDHLkV1jg! BPv8Im literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..08f225d06de70aa088b4ce29adb8f1c51d99730e GIT binary patch literal 2715 zcmV;M3S{+(P)fQZt|+m0$BvAB60tHCR2)%3 z#ojwY?(ZZ^9)`y&JPh&gH?zZg`*!c1@7`0sb6F?#8-vsT+JGO8Uxa^l{386b!!E-4 z^5t{s)~#EorcIlAySuxW)8F%C$dDnOqm47gw{PEKqobo=golS;JAC+X(3UM*wnaol zMB6%!O@txp>+3tEXV0GfHNmX5J}fy%moA+uRH%@PKHNM!JpSP4=QnrPu3Z}^PMkPd zPePQn<5*3&MT-`m0RaJj%bh!SLHkU0EYhY;o4#GUc0IM1wdvQd-yb(@*s#}{`>Y~7 zV8DPLOO`BI#Y2*3rsI(%OBUzAz`z}a3l|_AKxupxNu!k*Ct7rm|eGS-G5x|oOK&!5%f$B*T^PDoOgtVEhWX=uV@ z68q6CVQ+8mCe|8v?%X*wXwV>a@#01Kj&Y?*l_KGh;gy@4n?>^6_w?ygwRY`VrR%G@ zeEG7F2HZb)?p)QXRV%9|@!z)FM!0n8(&a3Uta0kpDWz+n`tadH{5h?PR9IM;9E%n$ zQayU~P<{LMRaL4~p?)SX8ltyv-&QMDtWe9AEmQB_z5B0c+_`f{>6)unuU@UR=&?w; zXwjnXnKNg0(pfvkYQhBy6v$(V?28vKRF^JYge*o395_%FD^^Sh=xnKO-MS^Kv~uN2 zIdIKs)21oyadLfdaIhLOWQe+X^QI6tp!0`n+_a=agL0Pd|@?Vy%I?V4F=AdHA_8w_)xx2nKDJl7_%Q68>>#7I3edwo;)e% zqN1YIym|A4F!!^nH*VaBAG2b`ifY`rajJd$_GH}n=inKgJ9k!k#pIc5)~vC(%I561 zyIXqx{JFRws9d?Snml=Oyb&1rTCGG)r7 ziWe^~VNtbeRXNYSx*RGeCnx#dv13PxYuzxY&6_u?nKNgitL?JeZo+%^>{0LEzn9Nr z$BtF$)Bi`COqw)FY2_mcORF?hu3R}ezDK1>m6R4X3CC-2rb+dSaJ+O-~D|qP8A^Gg$;v&YG;`Hg$at(iN1#!>4#I-4KcP8l4rAsmq zOtL*?&o08mrxBNw9-R@zNJ`4pt5+qff=7=YsnMfHt1@NEsNTJMn>CPockI|9Wl5_$ zNmibop5n&$@86fihIiS~{vkJr+XwsyK5Mf37^y!lz+dg~tOp+8R zU%tGmS+i!MJa#jbob$^AKDbxVyV2_|14YB?Yh=mdJj8FC~l|pesI?o?=`_jb$Qn z@x;b9>MuEj_@<8A0=rh23<->tOw1^LJdv3iWdcqAYW%Gbz| zBWX>|5~1xh@b>Lnc4cg`-)`XnOx2a?Z!``lp$iu-#Glt(`~LLN7B>ojP?A4={!4GfhjNwXm5m1~AJAdDB*ohZCC+-M@c-yfL^vvao;u z{^Aj)amk8upqdaZG#b&-(JCS$LUrxhRhkR>V6?h%pJ^LP=}K|JJeXud0y=y4thg@f zhejeWFi>Jk2G*s9t_bC1$?fQjm=MGV1Ub;@G#=HfS7%RL)K-HA4dhwC+1c4_4sj@9 zK%FHnNk$|YV#xp#(yUoCX&w*}w$w>Tu*$gg)TvXYv0y^??%gW~acxW}Re(vg6?UyK zi3RP8>ltJ-X3QvAcGRd*s#>*bcJF6#9~%Y4HP1nsZr{FLy?OISIwe3p@b&fmam@qj ziiAYFMqi8=@bdDC7aEQL!Ig*QC z{~t~bVB>%c&9;%FVHaV<`|jPlr99!*{{H^5FV(VTOErD^ba6dO2uTJ>$p(Fg4jn{7 z5{qP9uJ6~cpW3u(lax4gG35za2~nQG_}<>$Qu5fnWCH-%idJX$5`4eg;&8$=`Xng! znkgadTGGd|XH3$9Jih@9r?en0mM>o}lSC7b;^H?%20J8d7m?xFpkoXp8zV9hAWRqu z%)`S&Hu87|TeoAzj7fRI^r6&7wqEE>F^-+cfPer|OVnOt!;Y;OCWlQo>gTp?+eABa zFY?kLhLYO2aif$UwuK-O5)vZy7?nnXq*0*U8UKEvS7v+3RwP9@HnEdD6xYjo(CR1dQ?`8?Nn9)#e;E703;0H@~EeK_wGq8tyQa*3JMC6 zxJ97!>eWlGGc@_&!GmQ&QF6pAlem8UdJ!Mgdt@r-*b(8s6G@TP*S}5d2eX93!osd< z!oN%GH=1@1Q((M7zyO|rOPT^Q90r&$1IC6Q7(ae|{AY-og2_t?QBhIhdJ?}R_M2J4 zdKH6olCV8UQUQW+BQr2dSSOKfdS?CqPhNLOfQ@88GcZe7HwF)R4~kcVQpT*5L1<{` znc(2yznl9#$+D#5ZxZi8@oJFcO>;bS$&1k)*2tuGLXsq`OU47<(bD2!JFf;g+(O49 zPPdF>wURrR)I}Ca1O^7~(e2*IVtTx<;B8{CP5LimfYABHpL}xxOsYd zw&Fb~-2n9BZ5cN=x8K`3PBIXyb@)x{tZp1_NDTeoWMGL)CT^f6X{9Gfv?MkiNS z*X(J(-#~Ue;+{Tz`c8LHi7F^-k?fVxeQZo*WaP`_j`O3C+DnbY@r&@!j^7;Ne*$S7 V{7l97OcgTnKItN(+ih z-Nog>2NAS!L(n`ZCN)~EYuuNfb76)Vb<#{Lq#s=V|G#tY{my>xNbnUP`CpRi>gsB! zsj1!n(hV;zF0S_W_Ks90wYIjl%+AjKDIg#q(9qD(_)7_;*xlXT>gnm}Dkvx@T3A?E z`bSbp?NZ*47rtok&Vb!o7R-wWg+~#w#l;e<+aNCtSCZ+=9f!L}X=UVSaudv9Yn@`TqTTA>-=miYHH=z{A4> z>+9=qadE-f*_l`u5fPzat$f)jtyA83e0&^l-n4C}AWjrmL!|R3{Ay34yn_Hy1XHjEoe>u7iK$8l}FC zot+)*@9)FH!a{XY-pJhCTD8Bz`%egukGz^S%STK^-6(Iet#J$T`>-6{6*IjafGnOoDk~j z>UjSAIW#pjQBzYR+8);<$BmWZjXA4X2_Bz5ed2Re5KBS*_~hfqkAL1EWg&`77iDY| ze?NHeKnw;cBA(Q=Wwk4vW3XaU$j?hLG&D4De0+R*gOow1Lm^!;zULGF#>#&Q^496k z1o=4yQocmd$q_~k{TDt1?}9KsKK@5asNa>6GUyW3xwN$8mY<)WM@i&Q1_mdZQBHE@=4(ohV~l*xSdvP~MFORpGriLdgv Z;%}#S>5$;>g(3g|002ovPDHLkV1jYvP!a$D literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4f1fd5f7345e0c6240297a709e5d754fc4687863 GIT binary patch literal 2645 zcmV-b3aa&qP)@zl)(rg#wCBK(aDK2%qY>@F^S&h2xHV-5Fr@l45E$}C63(T z)KQ{@h%Qlr_cf5dGfp zgQ&SEUAnXrqo6ewqlUD!wDjcU{d;%l(81q};o#s<%;MQK z;M1p1ZxRv`{ycQ(P;6vmWYmotH|}Y9-fW`z^5x4D78W*P^ytx3^XJcBNc&QA277yZ zCvR`>mN+I%m=MZjmyR4ca&l^F>U*=EH|HjIclU}hF)`7eo}SHfwp{BVPo6yX0|pET z@%8oX(5qLko~KTo`qR`iCW$ghx45{t(=IM9Wv#PJ>%q;)pwhflO?*UsnU$&=@e z-D{L6+;#Kj%~9VXNd=rE95-#+w7FirdY&&|zD!fQ&nVH*(9rP>8Z>BO{pDE~<;$0^ zwsPglCEdGsAE({UE*T}9p zfZad_6AdwRQI%*wK!CrwGu*#_pVqHmPY)kHq~gVkQ~mn&sZEfO6H)v8s?ta1GP{R8;Je4?DbiA#x>Ig8uAeLDpQ z2h*!pud-b$P@n)Nrct9tQS;`_WlXg(u3o)LOP4MsPJF}(CEN9d3m4Mt*|Ul3w@I?) z%9X2%kbCgp!884928os}Th_T?!Gg}lX%d||bB22K=mFJ2dGqE)x~Hd4pVI5suj#{w z5AqUla7LtV-MYyO;l;?aZ{ED2h=>Te&ZU8LuQ85Gx%j zS+Zm{_k@RV*`U^~TZ?t!-czSeHMKN@{%sLa#MP=*tK>TthlHWv*|TS2EyU%ZL4#=U z;KA|{%$u@@mIlR1?GiQqBK@wz@`-Tl0CPeSv zy-VlLouj5ro8}Ht)|d40<40KptO6hbVG)Q$02btyN|K6)hlgs$1i@RkZi!{NE0LFk zF%cG=LDBD0=gysJ=+L23ehwTskb6W?>j2JhRJ(Rd2xiO!)_1R*gm;{ysTC`{(6XIO4 zVut%~xUQ3vlj?Y|BuK)IS&7M5xF2;FpNL1yp%8_ok=Ze>7HB34m%VoFntVq&0kDvr zJ9ml;Mn^|WtRZe;VU!-Fb{c}KtE*TNB-gE5C$1YF9!`mgiSqJrUUx1C3dE|CtZYUU zwGFWX)TmJ->pT{OQUP}cK(tPsIwmtDUJ~LEmgIJe5)u-`)s+4J2-rjN; z0z3vHKP4rFl9Q9QE?Ya%)YMe@gthc*qXG~_Jw&WR_UY?bSP$+G`4}4;D+g2)RF9IW z^?`H9z90&ntQ8hzT>wP&Gas(8pq6?V6BCm~5LONf3KA`=)KnxObSsc}5Fn>dpB62P z_HOaw#ZAb@n8O8$ODi-J zg*zgPDjf*`_eFf6Q$dWW?IxH42v@9FQDPTy4uadZZKD@2UdVNf3on7l&ON z9Xm?A;eKVG2wNtolh_MFqku96WrXV}PuPRHe*HSlpFdypFz&~m5&BbX*FgMhiB-)+ zCr_R%O?9VEo#Z?EL$pn3h@od80s!pq96fqe7K&W~?D!$EgoK1hD;5?OM$ex=mjfjQ z`%K8>=t|IVLr3GqKv7{kbjFMsGAI65O16h}jliHjG)R=| zW4hWX*k6S!Vp3#XxGu=SQXs6fZcsB&Ip|5@s<1As3=5+qLHc1&NgwEDP%AMuyawtB z?HLpj<}}scrl+TWG@B^L%?pmTRGz?5{~Gpw@EZ$U4sitx88Sr3>uONcJM@i8{J}y> zKZ;#z-G3EC9R+W8ft9kYD6uL)TPe zlzYTjHKN}tIO)ZzT~j3*85y~r6U=n{F~T;>vOa!es9jSff&cMDL_~yh0UvFfWmy-T z?0!FZ@L-(Ub)(keOghES&(EJbiWT7B4AWih{UF-)rh#vl7jT z6DR)g@bK{DMmU^R%+I9q8)R;RV{$jU>p)YMRA6>SWr2{!1w5FG_OC47gMVVMg;5l9 zi*#m6O3DLHIQY|JB!8aL^04O85g#9a`QN{|gs{#n&LX@DYg&j|TM^D=N&1NuQX)4G z+IO!1MUHA@Qc}`$961>yxA31413ASHqTd_-H$?vdi)M+!kLo!*00000NkvXXu0mjf DB=+{% literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6c1b5baf1e2f9b8f6b8c0a9a832dac06cce39f07 GIT binary patch literal 4184 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 BPv8Im literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2c56e9503d7682616c93c292a10d055191b5075a GIT binary patch literal 3811 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 Z;(yLi`~h4KK|=rl002ovPDHLkV1oGDU>*Pf literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2007e6ca40435ba8754c10185e5fed618dc531ea GIT binary patch literal 5768 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 T0Oi;Q7mkLCj`9bXb@cxLc5*jU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..b70f7d365068094db6fd600be8f5100f51bc03cb GIT binary patch literal 2585 zcmV+!3g-2RP)?mSI#kv~NSYySm*h}omE_P!#iW(a>>>9AGF4$I45*un_K}7|0tzeD4 zcR)o&vB2JQlgG}m^JnG{jLYtNlArnfdH=n8-hJ=hb06bC{{uMu(*}GG{2=*X!4Hz= zkU4W^DqXsCQD;W>?Ah%$Szo_?O?vtAWz4;M_a5_ovMqh+GA>i5Oyue5=`oPu;o;FD zZ{EB`Y#G!RBqSufjf{*8Th9m%4&Dp$*1l^s$tqQC~c;u58T|`svkXiG{W24d*t%v z%L6U7w@8u+w%fjadkF8rEa_un`XF1jY`K;#TlO2q18x}B!bMwjT-|p$`aLrgM&j3jzzz-L#l9a`eL$;*30eN zxA&-1r%p5bnU{VjS+b;?mzP(+6)RS(H}$Qa5hgppcLd zI&|m|l`UJ=k~x{HGI;FB)L)n+S*%zwXG=Z8$kC%mrx0x2x;12;7>LHfwS_og)+Ua$ChfLKSi=Ae zj^$RgXi?&%ECc~O!#*7~Y7~taF@jE=Iz@Z;?xpwd-;1|_YSpUA`|sYpqc&~YVE@Z< zj*E+vC99V9gb5R9_wL(`IC7|?C6O(fx+lP6Eg{qW(#WeF;P-0Ib< zY3=fl8DpAxjj2`}fnfZQE$}?Aa1rSbP&} zQR4bhQd7>HIfWSZcxY&-jITEj>m~_8h@JqJ76wGx@b&dIYWLv51G!*00){EWU@-FF zg$oy`Oqnt?Yt}6K@ZkeZnlwqgiad!6MRJ4wtiz|{#vL&|eyP=f{yWVYeu)Cxy^s^|Dr_Ye%ZbLW;kY1p3_$pNlHg$feP z)cAU!o8Z$$bd!YK0tyr;VDfty2#Atecm%{D1&0kAMni@S z(G=q7vrwTzM&s*&Zjw+l0A}12;5n!iZ*T9EY62)&u%PUva^=cNECRoB{@h3PMVNC|AI;ggnEtgrQ28e*5-KRLi*^Q6jASZ*qqT)TEnya7d`fV8r3;X>-trOV$YL`gPy zwq?tfGCAYMjgzQ~rH$O!q)8JI2uc#FRpIPxu|P^YNfg4sqeqV<$=|(umm(q}#4`Z$ zBlITrm zB-pJsgguKY1Gy4q8TKg1LR{bi5SaS(>7&1Iy)VE!*h^SSNX!WB*l%6CcD1PtN)7aZ zx)Sx}!Gi}yB;34tlZqEFE=mYmSubp=Lf|!&QVMA~xY7c0F!pBKwr$fqj?Mp#vIjAH zjgz7NKZ!kv5)FGhJ)xT)W@l1Sc$cXi@|*v_XCh2nZ12fKvjD1LXvP0HuRt6jU|{e$cvhBZ&xz{er_P zR2wLVKnAG;MXow*!ifRY3?>74)WyX`l77vaH6=H0-n?1bV^VPB`1b8v`t<3Oyql1a zAW;;=^5x4Xh4q**V?+}>Iyy=LU{{h?uU@6fl`BgH4~+`1Oq(`M&Q3v~V#SKm4yOb- z$buJ82*YSh4&)#bywafX9F82JczX8iNn5vWm3Jmjo{aNf5g#B1Ao8MJjvP63*=&*| zE17RvFW_Vi)c{C9%|KwItimBM&Q%pq&BIemmMjr(;TQxG4kvFQtCWjjxrM%LHtXcD$ z*7uqu@jIDc7#s*9ImqO+k9p~WBrdiG#>K_G*J@xkPvUnn-rnA$x$IeMuH8QgKR-X; zprD|A=Gs^k1Dqb#abC;f>+8D=KSD@9^U?<7M1Oz(`D4e9oo1=6Rf>m`_!^c{QM|V| zb3Nylb`#SE>_IG1OCD6PTGoYzhMs20_LG;FS6|kr1Kr)->+<98`TL$^u2P~mFgVBr znA?M?p-a26aQ=*6Sm1JUa>|4M(R0P_%*)trWLYsKJ$v>nmJ|I|u7EU^m^s*7PsYT= vybB8pJ7w$p-xC?CXto!Ako>RUe?jt3m{po(1w6kk00000NkvXXu0mjflN0j* literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7e062bb5d8c58fc77f801996cabda1776dfea523 GIT binary patch literal 5553 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