From 08e8657393515b06147bcf110f754e54bf2a5167 Mon Sep 17 00:00:00 2001 From: Amy Date: Wed, 2 Feb 2022 23:27:07 +0100 Subject: [PATCH] create basic installer format and start with welcome page --- .gitignore | 46 ++ .metadata | 10 + analysis_options.yaml | 29 ++ android/.gitignore | 13 + android/app/build.gradle | 68 +++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 34 ++ .../com/example/jade_gui/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + 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 | 6 + android/settings.gradle | 11 + assets/welcome-bg-alt.png | Bin 0 -> 17036 bytes assets/welcome-bg.png | Bin 0 -> 148432 bytes ios/.gitignore | 34 ++ ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 481 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 87 ++++ .../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 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 47 ++ ios/Runner/Runner-Bridging-Header.h | 1 + lib/functions/welcome.dart | 70 +++ lib/main.dart | 327 ++++++++++++ linux/.gitignore | 1 + linux/CMakeLists.txt | 116 +++++ linux/flutter/CMakeLists.txt | 87 ++++ linux/flutter/generated_plugin_registrant.cc | 11 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 15 + linux/main.cc | 6 + linux/my_application.cc | 104 ++++ linux/my_application.h | 18 + pubspec.lock | 167 ++++++ pubspec.yaml | 90 ++++ 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 | 104 ++++ web/manifest.json | 35 ++ 82 files changed, 2447 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/jade_gui/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-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.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/welcome-bg-alt.png create mode 100644 assets/welcome-bg.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-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-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 lib/functions/welcome.dart create mode 100644 lib/main.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 pubspec.lock create mode 100644 pubspec.yaml 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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0fa6b67 --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..fd70cab --- /dev/null +++ b/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 77d935af4db863f6abd0b9c31c7e6df2a13de57b + channel: stable + +project_type: app 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..273c807 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,68 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion flutter.compileSdkVersion + + 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.jade_gui" + 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..2dd9c06 --- /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..89d6e7e --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/jade_gui/MainActivity.kt b/android/app/src/main/kotlin/com/example/jade_gui/MainActivity.kt new file mode 100644 index 0000000..48f5fa4 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/jade_gui/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.jade_gui + +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-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/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/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..3db14bb --- /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..d460d1e --- /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..2dd9c06 --- /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..24047dc --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: 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..bc6a58a --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/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/welcome-bg-alt.png b/assets/welcome-bg-alt.png new file mode 100644 index 0000000000000000000000000000000000000000..0989d5110225447cd3c156cc076ece6e266d228e GIT binary patch literal 17036 zcmeHNdtA)f`~P&=N}`*xxiw7^WtwTG%XAf86lFt{Ycow#Qqzns8j(^_VMA^a$``wc zw!{{d23d>93WX?Xg{6z4BK1AzIqj}}{l5R~>-F3HYsSl~&vTx0-p}*A&+|Oze5Nvd z=gb_TK1Q9Qs1aVCZu2NgHHo5>xoRqC+l=RVC|0R1`CTV;Q)mx;PbtmQ54o6dmpWj6nJvsR5+5xYciHQP#g^fiM+jgg# zovs{cc%`{?)QDH_X5DICI$2xym_#bIth4hfQ}Mr9H|i&M4aV$*RE6y|lK6^3 zi?@Q6eKEg`UATN^d;Q6pE8T}qU#`(vqk5*|L+)+UyK$N=3#KLJpReLHmvnVlmoehg z2Kw5Z1c7URvRG{CBC7dr`H#|X3kzJY&K*DOoyNtL9fw^K+crDog~{|nCY*mh!7pQa z-FGu~ju9>PpSD6)b=kZ~Aae{TxUSWDLus5&=@p-xWhcFd6>?q5czXgxhi8j!883UJ zxZjjNMK|@AUzG#PYyAW3Kcy=Ea_P*|fJ+uHlx(WG)d%%&%GBPf`c+Wt&o>69`75Nv z`#KxVQ;4W^k2#je-muhdxW3s(2bJrs#+26dbCNW2wxUHGxiuSdbca1-%|8(>!Q#lXPai_PhIxox~nJiMWv7SoW1!# z^f>O#g~#UMnx_rhn1vpi;p;48^*@@2XU8ULPd7dI@|i~JDl_GuKKoK>FRm;aX|_=_ zI<0uA!Q8_d#_uIIuUIN7H|Y<2m<=Wu4Vxi%49Q(94bl>c>3ru#;j*^;yoYt?$ zj26U=n&4YZ`)IT1xlDCYry%!YPgDM9@$|v(^DZRTkgN}{_#b&K;|FXSbX{InSBvIjLqb( z&h% z@>FPiHGkkza^hpttc+gsC;7bM8B2uC<(tl(I}%`i?o-=VwVO(tzAe&TT3`KI<9OX& z3#x41SM>^73wo+Pn2Ns(7;ZYdTQc$ahL&p=FBBB{j--FXU>9BvKe?^K{9gA)PoKxi z8bb2yt@e*?*k2z(RLpkleE+COH`KxG z-N+-uF6?-`N&CRCho|;B+2=K!drFyWEt@cC7v8um>BiIEkAX(Vrz4%;RlbQk4Z5kA?z!eM1e zR$*NJOCAE$9rYTe6Z;n_>Q3|PHuCBgbuCBj#H`LP(BB$}y;b+jMjf7UTyJqK>wLH7eyfR7EHabBFI~#LdNO58aly!f zWLmFM^UIc_FX<-h_l{azCB3#vvpu2x=99RjJI7hKUXM|=dSX+1JvIB*>CK1z)vQ!k zY!ZeTL}%?vZtuM?GpRjp)uCSlds<&E=+akGq<2o`c;`q{r17;j+;-iWi@X+Q)MQ-q zzCi0VuG8Dr$Q`{*Um9|+`es9)xNUcHFv|e+_&~q^zX(T>gd!wzdmEB`uQ8YmH-#MF~N13 z1FDs4!}TVamLK(0e7Szrfo(yBLN|bm`p?Y1`a&dT(ah`Z= zX=!BmjR}(TN*c}vXQq_R+rGzlGSwd1?PHfWsQ+?N*T)C;*Ip@YKfL@{WKxPN@2uy; z-<;b=#(j9(xPRf`dg_CIRBXaph6Xx?#)P5MCcwwrULY1(@PoxcLJO%#f=(lfa-1fW z@CD(*7+R1pG%V7I-dY#e411g5gBbSb)o~VJ$lB&Ogasw#DqK11AKgGuHq;m&C0^cg2ix`hOK7Poz-cM zQNbbh^V~d!AduulUl9`{v1c;l;^HjgI2PilP^P7wogI_KX0q7~G=mYnCNhREWkg0B zV+exbCX5zDg-K$<#E~?N$qy38#yHXGNKgCSKas@8=MVVE=phymA51AL5eQf|0^8saTYw4{ z*n5bhM0~WJVIqF0kSU1_1qCMDe!8!h6P<0r`g6oLf*%ut7C6zp!y;p)e=7XKM8f$o ze9We$jTMKB{@GbtvDr2p>pv$g6h=j(OvIR$EDJUlGrMPRNq4h_4|0(|JW=Jmt|wi=36qX*=UQbSVBG{$eP7w@NHQ_TPtgu zV1cF8U(ut*Au)0MDB<)_6e)@ZB@jeIn+#M=`RnYs6++At3)MD4WwHI(YLQC8z6eG4Qu0%d<;P*WY5`Z%vkG*Z&(`>VLlQ2qV!gC=R{OxPA6*K(9h7L9=JN zQ76#T;EB~I^w7^?63<1^6g6BI|5u>)ANU##s>XQvxU0TURMfLDbZI`dhoWedm)mqd z>7zGK&d0WRjB@#9q2V!^t5Ei)g}p5!D){byrWia5d3JaBon`M|KUF(9kk&IYDR6?J z;h-ae!yi_~5pD8BS*gi}p0pKNh*85oOBuJE+ndnCe4ZrWpZdU~&A<~^fe?XKp zKBE!|4O#G=fP;1-f-ALFz+X(PrVS{frJC@)L49I)$&At%5tB!<@NCZVM~ zV#rtv3r(}Y>JcKSgJ7%;ni)hx1Vy6J0gX4&5J7`z0J_PIXo#Q;0*65Bf>2BZ;sJ+1 zk0%-;j38?Wv?|dMVJy)QXhWhQ0&s8#cq?=SM%6JnNymV;UGTNZ)Y+JuJP*t#&kI(& z18Fyb&f{PsU^CtvmwlLL85?%sHITUnOcW{tEHSYFV2^@{Q*IcR1}1pc0831m1MJUW zB49U$bpaEy8vsj8EHuSCz8y>?!JH)Q29*fWW$y=JkO+G~Xe2@w2-Ap=34)jiV1#NX z!Y0rd5+NCcToArK1j6^g{MW?J_e4YNv=R-m(@HeACwKO|f98(aB>3S~?TxRs*`1euIUkHlVeB6L7o?=qnr#i^>d41}-|6r{i3o2<$do z^%M^{8|F?`M!TsDlXAKqh9Z4^8m#vr>kWwtXyyfiQ?^F9Fk}P3^J?2!{Rs(D(0f7{ z_4hqHd-{5VjS$vRD3LcIM{At7X(d+ncg7yyhlcMM<83J%KG>g-IDw99cP-FSf1vkM zpQ9TO4SXOuH>It>x9ZaNK6~E2f`c&fro*VN@l`}qtzVbc22^KSfAF!+UaYYJ7EVRHjdDEN4gBEnOce4H1Lekar%HJBm zhXC-hP^&YpqAWv(42DBg`bGlE@GR3OEI6Z9e0qk{EMrE60b1|APa|T3K zXWf&T>nEXs`a?KwEt7#vcL-7+^t8@6Z|nd?dT&rwV-c8p<3*wURYMfeu>XalvA?t# z{Rg)IAroLR)fqPj7B7LMon$(2+XrLwW`l24RgEf;1E+zUojQq2+<3^;kKn4eXTL}X zdtSN+JH|5TEP=&MV_>mcRikyf49#9T3wx5C+FPbi5(>a{wG!(l0`r7PNpt%n0KX02 zM{9WZ3(r2>g4YYcHx-is_Un;&M$#(CNF|*_gM`u8ds#LFb1A*D`iw46>j)mWR0W1S z{uYPJf(&W;VRc*mtW3Ik-b=I1vBInk^Jt7d<(cYDzwv_9Rh73aynEZbr}_u~9*>US z{MWYoA=-w{^%UvD>nr1)ALAlpQvsVrXXQ6!;P%FXjb?3EtL`q-!Y5}4^yE!C8}`M+ z`67d|kn!lO+SN?lG^!`z)YC9kZ1;ilR0j|h-I|=B+Yr72Qq{^w!&ws!d=1y$&_m8* z24tQkU6O;%%NP*+R~a%N=z=9+UEf5p1p3@KXbl0`Y7J!ZC|JCT-th?9WadQdigLOv zTnD?(-47{dr1%5$-zE+0nM=A_xe9nv44zohJ0ieTD40riYuX1`w;?RI3|TQ)Zb$*F zNs11iTEr;or01}0tLTNCZ~FBSwOnYig$mmBi>{)(NRktv=V)!{aXNw{E7SyEjp-fh zLv^utAD|6Hcql(@g$sggJ%m0YL-v`NTni4_m?*~8K(udWwYX!Hnh5)H}>JbeaHVdJxpQ+SEH-J|U5u>+9-_Q;zgHhz*e$k`EoO+tju-x0ffN z5mqjCRF>1gaoJqi^#R2$8-rt|p1zr2G_U_)i6(k}0EHsi!AUtf1at~+b4@{^sa~Bu zfw@lyC&A^79GUs!3?^S~-0M8hcS#jRC0hW11*_dk^%7g(qAW;?g$-(G*~6PMaQm?; zG7%1?SNhQU*&jyXE+I*ut@z!LQS!^BaW5D~^M@R>2jr3OEAoEFVc+37FMvuPWcj0g*z6^T8-q&YfMqJ?9Ad3V8SwQ$|$l&e9 zIMPCMoH0qGfcb+EO)%u*n>lzRY18pGQ!pn9ovF2-8UbPgG$>x!&gBE^`@2%`WxDAw znAr1cNex=j0T*K#G1v<=B8!5h(u1&3^FZje0catZ>_~u^XG2S9x(0ARK`2ck5Il(R zmS~{-n%J<$7}|iu4$xKsbZI8onf%2?ho^zVq#_~VSmfGO0{bQ9f+iF4qr(^0jDwp} z6CcpH(6D8$;HbnA?359A#(@WMCUCh~1HQF+VA_(RNp@_+g+r0M8uuUwJtPrNB1(I5 z*X!X@{TUqL-a5Ls65V%-F{Lz8Dx=naLK{i-kUS!uP9SwgJar_Y5>KU5!8zh-hZLN% z1y6Y@pvi$4Smd^LAEL`9RbU2jR|7o~OJIa_=F)WVn#5DS4}@X}t{fUV)dfO7yx&ma za1rRW002^Q9i-C^RoeovbBge5P6X0Oz9MVjqR~NkBLyXmkB9xvbHQop0`#ikaCp(M zJ_ee`Sco$ZqN(2nZaQHCWSbz&6{Oig;=Am{=|Nt?s7H9$l6-)eJ3w;;F+m#aDlqW| zC|4s?GBKekX?20u!=}Po1VsOZ*X+D*7b7U!#Ec5q;#pBLW)!k?#Vd zuBZP>Q6tyjzXgy}4dst$_(!Og(<`SJ7xKUPO&%Paa-;IUMZ!5C|Lr=kATK~dgZx?r xJjl;_k`D4ey#XHNr!&wXZw~V2@Gl&cRe`Cuot@A7XSiUxz1-)x70loz{}-|#*NXrE literal 0 HcmV?d00001 diff --git a/assets/welcome-bg.png b/assets/welcome-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..153c76b11070dbabd83c4c05e32b4b4c35e016e7 GIT binary patch literal 148432 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%0AEs0XhA5GYgP&yRc&{ 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 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..8d4492f --- /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 + 9.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..59c0625 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,481 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 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 = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 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 = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.jadeGui; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.jadeGui; + 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.jadeGui; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata 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..c87d15a --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 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..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/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..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 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..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/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..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/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..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/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..04037b5 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Jade Gui + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + jade_gui + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/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/lib/functions/welcome.dart b/lib/functions/welcome.dart new file mode 100644 index 0000000..cdcba40 --- /dev/null +++ b/lib/functions/welcome.dart @@ -0,0 +1,70 @@ +import 'package:flutter/material.dart'; + +Widget welcome() { + return Container( + decoration: const BoxDecoration( + image: DecorationImage( + fit: BoxFit.cover, + image: AssetImage('assets/welcome-bg-alt.png'), + ), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + Text( + 'Welcome to Jade', + style: TextStyle( + fontSize: 50, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255)), + ), + ], + ), + const SizedBox(height: 10), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + Text( + 'Installing crystal made easy', + style: TextStyle( + fontSize: 40, + color: Color.fromARGB(255, 169, 0, 255), + ), + ), + ], + ), + Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Column( + children: [ + TextButton( + onPressed: () {}, + child: const Text('Start'), + style: TextButton.styleFrom( + primary: Colors.white, + backgroundColor: Color.fromARGB(255, 169, 0, 255), + minimumSize: Size(80, 50), + padding: EdgeInsets.all(10), + ), + ), + const SizedBox(height: 10), + ], + ), + const SizedBox(width: 30), + ], + ), + const SizedBox(height: 7) + ], + ), + ], + ), + ); +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..12e25d6 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,327 @@ +import 'package:flutter/material.dart'; +import 'functions/welcome.dart'; + +void main() => runApp( + MaterialApp( + debugShowCheckedModeBanner: false, + home: jadegui(), + ), + ); + +class jadegui extends StatefulWidget { + const jadegui({Key? key}) : super(key: key); + + @override + _jadeguiState createState() => _jadeguiState(); +} + +class _jadeguiState extends State { + int _selectedIndex = 0; + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromARGB(0, 17, 17, 17), + body: Row( + children: [ + NavigationRail( + backgroundColor: Color.fromARGB(0, 27, 27, 27), + selectedIndex: _selectedIndex, + onDestinationSelected: (int index) { + setState(() { + _selectedIndex = index; + }); + }, + labelType: NavigationRailLabelType.selected, + destinations: const [ + NavigationRailDestination( + icon: Icon( + Icons.home_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.home, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Welcome', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.location_on_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.location_on, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Locale', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.keyboard_alt_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.keyboard, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Keymap', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.access_time, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.access_time_filled, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Timezone', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.person_add_alt_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.person_add_alt, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Users', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.desktop_windows_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.desktop_windows_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Desktop', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.miscellaneous_services_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.miscellaneous_services, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Misc', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.pie_chart_outline, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.pie_chart, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Partitioning', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.summarize_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.summarize, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Summary', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + NavigationRailDestination( + icon: Icon( + Icons.download_outlined, + color: Color.fromARGB(255, 169, 0, 255), + ), + selectedIcon: Icon( + Icons.download, + color: Color.fromARGB(255, 169, 0, 255), + ), + label: Text( + 'Installing', + style: TextStyle( + color: Color.fromARGB(255, 169, 0, 255), + fontWeight: FontWeight.bold), + ), + ), + ], + ), + const VerticalDivider(thickness: 1, width: 1), + // This is the main content. + Expanded( + child: condition(), + ) + ], + ), + ); + } + + Widget condition() { + // other logic + // Declare a widget variable, + // it will be assigned later according + // to the condition + Widget widget; + + // Using switch statement to display desired + // widget if any certain condition is met + // You are free to use any condition + // For simplicity I have used boolean contition + switch (_selectedIndex) { + case 0: + widget = welcome(); + break; + case 1: + widget = const Text( + 'Showing Locale screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + case 2: + widget = const Text( + 'Showing Keymap screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + case 3: + widget = const Text( + 'Showing Timezone screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + case 4: + widget = const Text( + 'Showing Users screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + case 5: + widget = const Text( + 'Showing Desktop screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + case 6: + widget = const Text( + 'Showing Misc screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + case 7: + widget = const Text( + 'Showing Partitioning screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + case 8: + widget = const Text( + 'Showing Summary screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + case 9: + widget = const Text( + 'Showing Installing screen', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromARGB(255, 169, 0, 255), + ), + ); + break; + default: + widget = const Text( + 'You should not see this, report this at git.tar.black/crystal/jade_gui', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.red, + ), + ); + } + + // Finally returning a Widget + return widget; + } +} 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..06ea31f --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,116 @@ +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +set(BINARY_NAME "jade_gui") +set(APPLICATION_ID "com.example.jade_gui") + +cmake_policy(SET CMP0063 NEW) + +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() + +# Configure build 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. +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() + +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") + +# Flutter library and tool build rules. +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}") + +# Application build +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) +apply_standard_settings(${BINARY_NAME}) +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) +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) + +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. +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..33fd580 --- /dev/null +++ b/linux/flutter/CMakeLists.txt @@ -0,0 +1,87 @@ +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..e71a16d --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} 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..51436ae --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,15 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_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) 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..5ea8e0c --- /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, "jade_gui"); + 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, "jade_gui"); + } + + 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/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..306911b --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,167 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.8.2" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + lints: + dependency: transitive + description: + name: lints + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.11" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.3" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" +sdks: + dart: ">=2.15.1 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..08e17a2 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,90 @@ +name: jade_gui +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 used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.0+1 + +environment: + sdk: ">=2.15.1 <3.0.0" + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^1.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + - assets/ + + # 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/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 zcmdT|`#%%j|KDb2V@0DPm$^(Lx5}lO%Yv(=e*7hl@QqKS50#~#^IQPxBmuh|i9sXnt4ch@VT0F7% zMtrs@KWIOo+QV@lSs66A>2pz6-`9Jk=0vv&u?)^F@HZ)-6HT=B7LF;rdj zskUyBfbojcX#CS>WrIWo9D=DIwcXM8=I5D{SGf$~=gh-$LwY?*)cD%38%sCc?5OsX z-XfkyL-1`VavZ?>(pI-xp-kYq=1hsnyP^TLb%0vKRSo^~r{x?ISLY1i7KjSp z*0h&jG(Rkkq2+G_6eS>n&6>&Xk+ngOMcYrk<8KrukQHzfx675^^s$~<@d$9X{VBbg z2Fd4Z%g`!-P}d#`?B4#S-9x*eNlOVRnDrn#jY@~$jfQ-~3Od;A;x-BI1BEDdvr`pI z#D)d)!2_`GiZOUu1crb!hqH=ezs0qk<_xDm_Kkw?r*?0C3|Io6>$!kyDl;eH=aqg$B zsH_|ZD?jP2dc=)|L>DZmGyYKa06~5?C2Lc0#D%62p(YS;%_DRCB1k(+eLGXVMe+=4 zkKiJ%!N6^mxqM=wq`0+yoE#VHF%R<{mMamR9o_1JH8jfnJ?NPLs$9U!9!dq8 z0B{dI2!M|sYGH&9TAY34OlpIsQ4i5bnbG>?cWwat1I13|r|_inLE?FS@Hxdxn_YZN z3jfUO*X9Q@?HZ>Q{W0z60!bbGh557XIKu1?)u|cf%go`pwo}CD=0tau-}t@R2OrSH zQzZr%JfYa`>2!g??76=GJ$%ECbQh7Q2wLRp9QoyiRHP7VE^>JHm>9EqR3<$Y=Z1K^SHuwxCy-5@z3 zVM{XNNm}yM*pRdLKp??+_2&!bp#`=(Lh1vR{~j%n;cJv~9lXeMv)@}Odta)RnK|6* zC+IVSWumLo%{6bLDpn)Gz>6r&;Qs0^+Sz_yx_KNz9Dlt^ax`4>;EWrIT#(lJ_40<= z750fHZ7hI{}%%5`;lwkI4<_FJw@!U^vW;igL0k+mK)-j zYuCK#mCDK3F|SC}tC2>m$ZCqNB7ac-0UFBJ|8RxmG@4a4qdjvMzzS&h9pQmu^x&*= zGvapd1#K%Da&)8f?<9WN`2H^qpd@{7In6DNM&916TRqtF4;3`R|Nhwbw=(4|^Io@T zIjoR?tB8d*sO>PX4vaIHF|W;WVl6L1JvSmStgnRQq zTX4(>1f^5QOAH{=18Q2Vc1JI{V=yOr7yZJf4Vpfo zeHXdhBe{PyY;)yF;=ycMW@Kb>t;yE>;f79~AlJ8k`xWucCxJfsXf2P72bAavWL1G#W z;o%kdH(mYCM{$~yw4({KatNGim49O2HY6O07$B`*K7}MvgI=4x=SKdKVb8C$eJseA$tmSFOztFd*3W`J`yIB_~}k%Sd_bPBK8LxH)?8#jM{^%J_0|L z!gFI|68)G}ex5`Xh{5pB%GtlJ{Z5em*e0sH+sU1UVl7<5%Bq+YrHWL7?X?3LBi1R@_)F-_OqI1Zv`L zb6^Lq#H^2@d_(Z4E6xA9Z4o3kvf78ZDz!5W1#Mp|E;rvJz&4qj2pXVxKB8Vg0}ek%4erou@QM&2t7Cn5GwYqy%{>jI z)4;3SAgqVi#b{kqX#$Mt6L8NhZYgonb7>+r#BHje)bvaZ2c0nAvrN3gez+dNXaV;A zmyR0z@9h4@6~rJik-=2M-T+d`t&@YWhsoP_XP-NsVO}wmo!nR~QVWU?nVlQjNfgcTzE-PkfIX5G z1?&MwaeuzhF=u)X%Vpg_e@>d2yZwxl6-r3OMqDn8_6m^4z3zG##cK0Fsgq8fcvmhu z{73jseR%X%$85H^jRAcrhd&k!i^xL9FrS7qw2$&gwAS8AfAk#g_E_tP;x66fS`Mn@SNVrcn_N;EQm z`Mt3Z%rw%hDqTH-s~6SrIL$hIPKL5^7ejkLTBr46;pHTQDdoErS(B>``t;+1+M zvU&Se9@T_BeK;A^p|n^krIR+6rH~BjvRIugf`&EuX9u69`9C?9ANVL8l(rY6#mu^i z=*5Q)-%o*tWl`#b8p*ZH0I}hn#gV%|jt6V_JanDGuekR*-wF`u;amTCpGG|1;4A5$ zYbHF{?G1vv5;8Ph5%kEW)t|am2_4ik!`7q{ymfHoe^Z99c|$;FAL+NbxE-_zheYbV z3hb0`uZGTsgA5TG(X|GVDSJyJxsyR7V5PS_WSnYgwc_D60m7u*x4b2D79r5UgtL18 zcCHWk+K6N1Pg2c;0#r-)XpwGX?|Iv)^CLWqwF=a}fXUSM?n6E;cCeW5ER^om#{)Jr zJR81pkK?VoFm@N-s%hd7@hBS0xuCD0-UDVLDDkl7Ck=BAj*^ps`393}AJ+Ruq@fl9 z%R(&?5Nc3lnEKGaYMLmRzKXow1+Gh|O-LG7XiNxkG^uyv zpAtLINwMK}IWK65hOw&O>~EJ}x@lDBtB`yKeV1%GtY4PzT%@~wa1VgZn7QRwc7C)_ zpEF~upeDRg_<#w=dLQ)E?AzXUQpbKXYxkp>;c@aOr6A|dHA?KaZkL0svwB^U#zmx0 zzW4^&G!w7YeRxt<9;d@8H=u(j{6+Uj5AuTluvZZD4b+#+6Rp?(yJ`BC9EW9!b&KdPvzJYe5l7 zMJ9aC@S;sA0{F0XyVY{}FzW0Vh)0mPf_BX82E+CD&)wf2!x@{RO~XBYu80TONl3e+ zA7W$ra6LcDW_j4s-`3tI^VhG*sa5lLc+V6ONf=hO@q4|p`CinYqk1Ko*MbZ6_M05k zSwSwkvu;`|I*_Vl=zPd|dVD0lh&Ha)CSJJvV{AEdF{^Kn_Yfsd!{Pc1GNgw}(^~%)jk5~0L~ms|Rez1fiK~s5t(p1ci5Gq$JC#^JrXf?8 z-Y-Zi_Hvi>oBzV8DSRG!7dm|%IlZg3^0{5~;>)8-+Nk&EhAd(}s^7%MuU}lphNW9Q zT)DPo(ob{tB7_?u;4-qGDo!sh&7gHaJfkh43QwL|bbFVi@+oy;i;M zM&CP^v~lx1U`pi9PmSr&Mc<%HAq0DGH?Ft95)WY`P?~7O z`O^Nr{Py9M#Ls4Y7OM?e%Y*Mvrme%=DwQaye^Qut_1pOMrg^!5u(f9p(D%MR%1K>% zRGw%=dYvw@)o}Fw@tOtPjz`45mfpn;OT&V(;z75J*<$52{sB65$gDjwX3Xa!x_wE- z!#RpwHM#WrO*|~f7z}(}o7US(+0FYLM}6de>gQdtPazXz?OcNv4R^oYLJ_BQOd_l172oSK$6!1r@g+B@0ofJ4*{>_AIxfe-#xp>(1 z@Y3Nfd>fmqvjL;?+DmZk*KsfXJf<%~(gcLwEez%>1c6XSboURUh&k=B)MS>6kw9bY z{7vdev7;A}5fy*ZE23DS{J?8at~xwVk`pEwP5^k?XMQ7u64;KmFJ#POzdG#np~F&H ze-BUh@g54)dsS%nkBb}+GuUEKU~pHcYIg4vSo$J(J|U36bs0Use+3A&IMcR%6@jv$ z=+QI+@wW@?iu}Hpyzlvj-EYeop{f65GX0O%>w#0t|V z1-svWk`hU~m`|O$kw5?Yn5UhI%9P-<45A(v0ld1n+%Ziq&TVpBcV9n}L9Tus-TI)f zd_(g+nYCDR@+wYNQm1GwxhUN4tGMLCzDzPqY$~`l<47{+l<{FZ$L6(>J)|}!bi<)| zE35dl{a2)&leQ@LlDxLQOfUDS`;+ZQ4ozrleQwaR-K|@9T{#hB5Z^t#8 zC-d_G;B4;F#8A2EBL58s$zF-=SCr`P#z zNCTnHF&|X@q>SkAoYu>&s9v@zCpv9lLSH-UZzfhJh`EZA{X#%nqw@@aW^vPcfQrlPs(qQxmC|4tp^&sHy!H!2FH5eC{M@g;ElWNzlb-+ zxpfc0m4<}L){4|RZ>KReag2j%Ot_UKkgpJN!7Y_y3;Ssz{9 z!K3isRtaFtQII5^6}cm9RZd5nTp9psk&u1C(BY`(_tolBwzV_@0F*m%3G%Y?2utyS zY`xM0iDRT)yTyYukFeGQ&W@ReM+ADG1xu@ruq&^GK35`+2r}b^V!m1(VgH|QhIPDE 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 zcmeFZ_gj-)&^4Nb2tlbLMU<{!p(#yjqEe+=0IA_oih%ScH9@5#MNp&}Y#;;(h=A0@ zh7{>lT2MkSQ344eAvrhici!td|HJuyvJm#Y_w1Q9Yu3!26dNlO-oxUDK_C#XnW^Co z5C{VN6#{~B0)K2j7}*1Xq(Nqemv23A-6&=ZpEijkVnSwVGqLv40?n0=p;k3-U5e5+ z+z3>aS`u9DS=!wg8ROu?X4TFoW6CFLL&{GzoVT)ldhLekLM|+j3tIxRd|*5=c{=s&*vfPdBr(Fyj(v@%eQj1Soy7m4^@VRl1~@-PV7y+c!xz$8436WBn$t{=}mEdK#k`aystimGgI{(IBx$!pAwFoE9Y`^t^;> zKAD)C(Dl^s%`?q5$P|fZf8Xymrtu^Pv(7D`rn>Z-w$Ahs!z9!94WNVxrJuXfHAaxg zC6s@|Z1$7R$(!#t%Jb{{s6(Y?NoQXDYq)!}X@jKPhe`{9KQ@sAU8y-5`xt?S9$jKH zoi}6m5PcG*^{kjvt+kwPpyQzVg4o)a>;LK`aaN2x4@itBD3Aq?yWTM20VRn1rrd+2 zKO=P0rMjEGq_UqpMa`~7B|p?xAN1SCoCp}QxAv8O`jLJ5CVh@umR%c%i^)6!o+~`F zaalSTQcl5iwOLC&H)efzd{8(88mo`GI(56T<(&p7>Qd^;R1hn1Y~jN~tApaL8>##U zd65bo8)79CplWxr#z4!6HvLz&N7_5AN#x;kLG?zQ(#p|lj<8VUlKY=Aw!ATqeL-VG z42gA!^cMNPj>(`ZMEbCrnkg*QTsn*u(nQPWI9pA{MQ=IsPTzd7q5E#7+z>Ch=fx$~ z;J|?(5jTo5UWGvsJa(Sx0?S#56+8SD!I^tftyeh_{5_31l6&Hywtn`bbqYDqGZXI( zCG7hBgvksX2ak8+)hB4jnxlO@A32C_RM&g&qDSb~3kM&)@A_j1*oTO@nicGUyv+%^ z=vB)4(q!ykzT==Z)3*3{atJ5}2PV*?Uw+HhN&+RvKvZL3p9E?gHjv{6zM!A|z|UHK z-r6jeLxbGn0D@q5aBzlco|nG2tr}N@m;CJX(4#Cn&p&sLKwzLFx1A5izu?X_X4x8r@K*d~7>t1~ zDW1Mv5O&WOxbzFC`DQ6yNJ(^u9vJdj$fl2dq`!Yba_0^vQHXV)vqv1gssZYzBct!j zHr9>ydtM8wIs}HI4=E}qAkv|BPWzh3^_yLH(|kdb?x56^BlDC)diWyPd*|f!`^12_U>TD^^94OCN0lVv~Sgvs94ecpE^}VY$w`qr_>Ue zTfH~;C<3H<0dS5Rkf_f@1x$Gms}gK#&k()IC0zb^QbR!YLoll)c$Agfi6MKI0dP_L z=Uou&u~~^2onea2%XZ@>`0x^L8CK6=I{ge;|HXMj)-@o~h&O{CuuwBX8pVqjJ*o}5 z#8&oF_p=uSo~8vn?R0!AMWvcbZmsrj{ZswRt(aEdbi~;HeVqIe)-6*1L%5u$Gbs}| zjFh?KL&U(rC2izSGtwP5FnsR@6$-1toz?RvLD^k~h9NfZgzHE7m!!7s6(;)RKo2z} zB$Ci@h({l?arO+vF;s35h=|WpefaOtKVx>l399}EsX@Oe3>>4MPy%h&^3N_`UTAHJ zI$u(|TYC~E4)|JwkWW3F!Tib=NzjHs5ii2uj0^m|Qlh-2VnB#+X~RZ|`SA*}}&8j9IDv?F;(Y^1=Z0?wWz;ikB zewU>MAXDi~O7a~?jx1x=&8GcR-fTp>{2Q`7#BE#N6D@FCp`?ht-<1|y(NArxE_WIu zP+GuG=Qq>SHWtS2M>34xwEw^uvo4|9)4s|Ac=ud?nHQ>ax@LvBqusFcjH0}{T3ZPQ zLO1l<@B_d-(IS682}5KA&qT1+{3jxKolW+1zL4inqBS-D>BohA!K5++41tM@ z@xe<-qz27}LnV#5lk&iC40M||JRmZ*A##K3+!j93eouU8@q-`W0r%7N`V$cR&JV;iX(@cS{#*5Q>~4BEDA)EikLSP@>Oo&Bt1Z~&0d5)COI%3$cLB_M?dK# z{yv2OqW!al-#AEs&QFd;WL5zCcp)JmCKJEdNsJlL9K@MnPegK23?G|O%v`@N{rIRa zi^7a}WBCD77@VQ-z_v{ZdRsWYrYgC$<^gRQwMCi6);%R~uIi31OMS}=gUTE(GKmCI z$zM>mytL{uNN+a&S38^ez(UT=iSw=l2f+a4)DyCA1Cs_N-r?Q@$3KTYosY!;pzQ0k zzh1G|kWCJjc(oZVBji@kN%)UBw(s{KaYGy=i{g3{)Z+&H8t2`^IuLLKWT6lL<-C(! zSF9K4xd-|VO;4}$s?Z7J_dYqD#Mt)WCDnsR{Kpjq275uUq6`v0y*!PHyS(}Zmv)_{>Vose9-$h8P0|y;YG)Bo}$(3Z%+Gs0RBmFiW!^5tBmDK-g zfe5%B*27ib+7|A*Fx5e)2%kIxh7xWoc3pZcXS2zik!63lAG1;sC1ja>BqH7D zODdi5lKW$$AFvxgC-l-)!c+9@YMC7a`w?G(P#MeEQ5xID#<}W$3bSmJ`8V*x2^3qz zVe<^^_8GHqYGF$nIQm0Xq2kAgYtm#UC1A(=&85w;rmg#v906 zT;RyMgbMpYOmS&S9c38^40oUp?!}#_84`aEVw;T;r%gTZkWeU;;FwM@0y0adt{-OK z(vGnPSlR=Nv2OUN!2=xazlnHPM9EWxXg2EKf0kI{iQb#FoP>xCB<)QY>OAM$Dcdbm zU6dU|%Mo(~avBYSjRc13@|s>axhrPl@Sr81{RSZUdz4(=|82XEbV*JAX6Lfbgqgz584lYgi0 z2-E{0XCVON$wHfvaLs;=dqhQJ&6aLn$D#0i(FkAVrXG9LGm3pSTf&f~RQb6|1_;W> z?n-;&hrq*~L=(;u#jS`*Yvh@3hU-33y_Kv1nxqrsf>pHVF&|OKkoC)4DWK%I!yq?P z=vXo8*_1iEWo8xCa{HJ4tzxOmqS0&$q+>LroMKI*V-rxhOc%3Y!)Y|N6p4PLE>Yek>Y(^KRECg8<|%g*nQib_Yc#A5q8Io z6Ig&V>k|~>B6KE%h4reAo*DfOH)_01tE0nWOxX0*YTJgyw7moaI^7gW*WBAeiLbD?FV9GSB zPv3`SX*^GRBM;zledO`!EbdBO_J@fEy)B{-XUTVQv}Qf~PSDpK9+@I`7G7|>Dgbbu z_7sX9%spVo$%qwRwgzq7!_N;#Td08m5HV#?^dF-EV1o)Q=Oa+rs2xH#g;ykLbwtCh znUnA^dW!XjspJ;otq$yV@I^s9Up(5k7rqhQd@OLMyyxVLj_+$#Vc*}Usevp^I(^vH zmDgHc0VMme|K&X?9&lkN{yq_(If)O`oUPW8X}1R5pSVBpfJe0t{sPA(F#`eONTh_) zxeLqHMfJX#?P(@6w4CqRE@Eiza; z;^5)Kk=^5)KDvd9Q<`=sJU8rjjxPmtWMTmzcH={o$U)j=QBuHarp?=}c??!`3d=H$nrJMyr3L-& zA#m?t(NqLM?I3mGgWA_C+0}BWy3-Gj7bR+d+U?n*mN$%5P`ugrB{PeV>jDUn;eVc- zzeMB1mI4?fVJatrNyq|+zn=!AiN~<}eoM#4uSx^K?Iw>P2*r=k`$<3kT00BE_1c(02MRz4(Hq`L^M&xt!pV2 zn+#U3@j~PUR>xIy+P>51iPayk-mqIK_5rlQMSe5&tDkKJk_$i(X&;K(11YGpEc-K= zq4Ln%^j>Zi_+Ae9eYEq_<`D+ddb8_aY!N;)(&EHFAk@Ekg&41ABmOXfWTo)Z&KotA zh*jgDGFYQ^y=m)<_LCWB+v48DTJw*5dwMm_YP0*_{@HANValf?kV-Ic3xsC}#x2h8 z`q5}d8IRmqWk%gR)s~M}(Qas5+`np^jW^oEd-pzERRPMXj$kS17g?H#4^trtKtq;C?;c ztd|%|WP2w2Nzg@)^V}!Gv++QF2!@FP9~DFVISRW6S?eP{H;;8EH;{>X_}NGj^0cg@ z!2@A>-CTcoN02^r6@c~^QUa={0xwK0v4i-tQ9wQq^=q*-{;zJ{Qe%7Qd!&X2>rV@4 z&wznCz*63_vw4>ZF8~%QCM?=vfzW0r_4O^>UA@otm_!N%mH)!ERy&b!n3*E*@?9d^ zu}s^By@FAhG(%?xgJMuMzuJw2&@$-oK>n z=UF}rt%vuaP9fzIFCYN-1&b#r^Cl6RDFIWsEsM|ROf`E?O(cy{BPO2Ie~kT+^kI^i zp>Kbc@C?}3vy-$ZFVX#-cx)Xj&G^ibX{pWggtr(%^?HeQL@Z( zM-430g<{>vT*)jK4aY9(a{lSy{8vxLbP~n1MXwM527ne#SHCC^F_2@o`>c>>KCq9c(4c$VSyMl*y3Nq1s+!DF| z^?d9PipQN(mw^j~{wJ^VOXDCaL$UtwwTpyv8IAwGOg<|NSghkAR1GSNLZ1JwdGJYm zP}t<=5=sNNUEjc=g(y)1n5)ynX(_$1-uGuDR*6Y^Wgg(LT)Jp><5X|}bt z_qMa&QP?l_n+iVS>v%s2Li_;AIeC=Ca^v1jX4*gvB$?H?2%ndnqOaK5-J%7a} zIF{qYa&NfVY}(fmS0OmXA70{znljBOiv5Yod!vFU{D~*3B3Ka{P8?^ zfhlF6o7aNT$qi8(w<}OPw5fqA7HUje*r*Oa(YV%*l0|9FP9KW@U&{VSW{&b0?@y)M zs%4k1Ax;TGYuZ9l;vP5@?3oQsp3)rjBeBvQQ>^B;z5pc=(yHhHtq6|0m(h4envn_j787fizY@V`o(!SSyE7vlMT zbo=Z1c=atz*G!kwzGB;*uPL$Ei|EbZLh8o+1BUMOpnU(uX&OG1MV@|!&HOOeU#t^x zr9=w2ow!SsTuJWT7%Wmt14U_M*3XiWBWHxqCVZI0_g0`}*^&yEG9RK9fHK8e+S^m? zfCNn$JTswUVbiC#>|=wS{t>-MI1aYPLtzO5y|LJ9nm>L6*wpr_m!)A2Fb1RceX&*|5|MwrvOk4+!0p99B9AgP*9D{Yt|x=X}O% zgIG$MrTB=n-!q%ROT|SzH#A$Xm;|ym)0>1KR}Yl0hr-KO&qMrV+0Ej3d@?FcgZ+B3 ztEk16g#2)@x=(ko8k7^Tq$*5pfZHC@O@}`SmzT1(V@x&NkZNM2F#Q-Go7-uf_zKC( zB(lHZ=3@dHaCOf6C!6i8rDL%~XM@rVTJbZL09?ht@r^Z_6x}}atLjvH^4Vk#Ibf(^LiBJFqorm?A=lE zzFmwvp4bT@Nv2V>YQT92X;t9<2s|Ru5#w?wCvlhcHLcsq0TaFLKy(?nzezJ>CECqj zggrI~Hd4LudM(m{L@ezfnpELsRFVFw>fx;CqZtie`$BXRn#Ns%AdoE$-Pf~{9A8rV zf7FbgpKmVzmvn-z(g+&+-ID=v`;6=)itq8oM*+Uz**SMm_{%eP_c0{<%1JGiZS19o z@Gj7$Se~0lsu}w!%;L%~mIAO;AY-2i`9A*ZfFs=X!LTd6nWOZ7BZH2M{l2*I>Xu)0 z`<=;ObglnXcVk!T>e$H?El}ra0WmPZ$YAN0#$?|1v26^(quQre8;k20*dpd4N{i=b zuN=y}_ew9SlE~R{2+Rh^7%PA1H5X(p8%0TpJ=cqa$65XL)$#ign-y!qij3;2>j}I; ziO@O|aYfn&up5F`YtjGw68rD3{OSGNYmBnl?zdwY$=RFsegTZ=kkzRQ`r7ZjQP!H( zp4>)&zf<*N!tI00xzm-ME_a{_I!TbDCr;8E;kCH4LlL-tqLxDuBn-+xgPk37S&S2^ z2QZumkIimwz!c@!r0)j3*(jPIs*V!iLTRl0Cpt_UVNUgGZzdvs0(-yUghJfKr7;=h zD~y?OJ-bWJg;VdZ^r@vlDoeGV&8^--!t1AsIMZ5S440HCVr%uk- z2wV>!W1WCvFB~p$P$$_}|H5>uBeAe>`N1FI8AxM|pq%oNs;ED8x+tb44E) zTj{^fbh@eLi%5AqT?;d>Es5D*Fi{Bpk)q$^iF!!U`r2hHAO_?#!aYmf>G+jHsES4W zgpTKY59d?hsb~F0WE&dUp6lPt;Pm zcbTUqRryw^%{ViNW%Z(o8}dd00H(H-MmQmOiTq{}_rnwOr*Ybo7*}3W-qBT!#s0Ie z-s<1rvvJx_W;ViUD`04%1pra*Yw0BcGe)fDKUK8aF#BwBwMPU;9`!6E(~!043?SZx z13K%z@$$#2%2ovVlgFIPp7Q6(vO)ud)=*%ZSucL2Dh~K4B|%q4KnSpj#n@(0B})!9 z8p*hY@5)NDn^&Pmo;|!>erSYg`LkO?0FB@PLqRvc>4IsUM5O&>rRv|IBRxi(RX(gJ ztQ2;??L~&Mv;aVr5Q@(?y^DGo%pO^~zijld41aA0KKsy_6FeHIn?fNHP-z>$OoWer zjZ5hFQTy*-f7KENRiCE$ZOp4|+Wah|2=n@|W=o}bFM}Y@0e62+_|#fND5cwa3;P{^pEzlJbF1Yq^}>=wy8^^^$I2M_MH(4Dw{F6hm+vrWV5!q;oX z;tTNhz5`-V={ew|bD$?qcF^WPR{L(E%~XG8eJx(DoGzt2G{l8r!QPJ>kpHeOvCv#w zr=SSwMDaUX^*~v%6K%O~i)<^6`{go>a3IdfZ8hFmz&;Y@P%ZygShQZ2DSHd`m5AR= zx$wWU06;GYwXOf(%MFyj{8rPFXD};JCe85Bdp4$YJ2$TzZ7Gr#+SwCvBI1o$QP0(c zy`P51FEBV2HTisM3bHqpmECT@H!Y2-bv2*SoSPoO?wLe{M#zDTy@ujAZ!Izzky~3k zRA1RQIIoC*Mej1PH!sUgtkR0VCNMX(_!b65mo66iM*KQ7xT8t2eev$v#&YdUXKwGm z7okYAqYF&bveHeu6M5p9xheRCTiU8PFeb1_Rht0VVSbm%|1cOVobc8mvqcw!RjrMRM#~=7xibH&Fa5Imc|lZ{eC|R__)OrFg4@X_ ze+kk*_sDNG5^ELmHnZ7Ue?)#6!O)#Nv*Dl2mr#2)w{#i-;}0*_h4A%HidnmclH#;Q zmQbq+P4DS%3}PpPm7K_K3d2s#k~x+PlTul7+kIKol0@`YN1NG=+&PYTS->AdzPv!> zQvzT=)9se*Jr1Yq+C{wbK82gAX`NkbXFZ)4==j4t51{|-v!!$H8@WKA={d>CWRW+g z*`L>9rRucS`vbXu0rzA1#AQ(W?6)}1+oJSF=80Kf_2r~Qm-EJ6bbB3k`80rCv(0d` zvCf3;L2ovYG_TES%6vSuoKfIHC6w;V31!oqHM8-I8AFzcd^+_86!EcCOX|Ta9k1!s z_Vh(EGIIsI3fb&dF$9V8v(sTBC%!#<&KIGF;R+;MyC0~}$gC}}= zR`DbUVc&Bx`lYykFZ4{R{xRaUQkWCGCQlEc;!mf=+nOk$RUg*7 z;kP7CVLEc$CA7@6VFpsp3_t~m)W0aPxjsA3e5U%SfY{tp5BV5jH-5n?YX7*+U+Zs%LGR>U- z!x4Y_|4{gx?ZPJobISy991O znrmrC3otC;#4^&Rg_iK}XH(XX+eUHN0@Oe06hJk}F?`$)KmH^eWz@@N%wEc)%>?Ft z#9QAroDeyfztQ5Qe{m*#R#T%-h*&XvSEn@N$hYRTCMXS|EPwzF3IIysD2waj`vQD{ zv_#^Pgr?s~I*NE=acf@dWVRNWTr(GN0wrL)Z2=`Dr>}&ZDNX|+^Anl{Di%v1Id$_p zK5_H5`RDjJx`BW7hc85|> zHMMsWJ4KTMRHGu+vy*kBEMjz*^K8VtU=bXJYdhdZ-?jTXa$&n)C?QQIZ7ln$qbGlr zS*TYE+ppOrI@AoPP=VI-OXm}FzgXRL)OPvR$a_=SsC<3Jb+>5makX|U!}3lx4tX&L z^C<{9TggZNoeX!P1jX_K5HkEVnQ#s2&c#umzV6s2U-Q;({l+j^?hi7JnQ7&&*oOy9 z(|0asVTWUCiCnjcOnB2pN0DpuTglKq;&SFOQ3pUdye*eT<2()7WKbXp1qq9=bhMWlF-7BHT|i3TEIT77AcjD(v=I207wi-=vyiw5mxgPdTVUC z&h^FEUrXwWs9en2C{ywZp;nvS(Mb$8sBEh-*_d-OEm%~p1b2EpcwUdf<~zmJmaSTO zSX&&GGCEz-M^)G$fBvLC2q@wM$;n4jp+mt0MJFLuJ%c`tSp8$xuP|G81GEd2ci$|M z4XmH{5$j?rqDWoL4vs!}W&!?!rtj=6WKJcE>)?NVske(p;|#>vL|M_$as=mi-n-()a*OU3Okmk0wC<9y7t^D(er-&jEEak2!NnDiOQ99Wx8{S8}=Ng!e0tzj*#T)+%7;aM$ z&H}|o|J1p{IK0Q7JggAwipvHvko6>Epmh4RFRUr}$*2K4dz85o7|3#Bec9SQ4Y*;> zXWjT~f+d)dp_J`sV*!w>B%)#GI_;USp7?0810&3S=WntGZ)+tzhZ+!|=XlQ&@G@~3 z-dw@I1>9n1{+!x^Hz|xC+P#Ab`E@=vY?3%Bc!Po~e&&&)Qp85!I|U<-fCXy*wMa&t zgDk!l;gk;$taOCV$&60z+}_$ykz=Ea*)wJQ3-M|p*EK(cvtIre0Pta~(95J7zoxBN zS(yE^3?>88AL0Wfuou$BM{lR1hkrRibz=+I9ccwd`ZC*{NNqL)3pCcw^ygMmrG^Yp zn5f}Xf>%gncC=Yq96;rnfp4FQL#{!Y*->e82rHgY4Zwy{`JH}b9*qr^VA{%~Z}jtp z_t$PlS6}5{NtTqXHN?uI8ut8rOaD#F1C^ls73S=b_yI#iZDOGz3#^L@YheGd>L;<( z)U=iYj;`{>VDNzIxcjbTk-X3keXR8Xbc`A$o5# zKGSk-7YcoBYuAFFSCjGi;7b<;n-*`USs)IX z=0q6WZ=L!)PkYtZE-6)azhXV|+?IVGTOmMCHjhkBjfy@k1>?yFO3u!)@cl{fFAXnRYsWk)kpT?X{_$J=|?g@Q}+kFw|%n!;Zo}|HE@j=SFMvT8v`6Y zNO;tXN^036nOB2%=KzxB?n~NQ1K8IO*UE{;Xy;N^ZNI#P+hRZOaHATz9(=)w=QwV# z`z3+P>9b?l-@$@P3<;w@O1BdKh+H;jo#_%rr!ute{|YX4g5}n?O7Mq^01S5;+lABE+7`&_?mR_z7k|Ja#8h{!~j)| zbBX;*fsbUak_!kXU%HfJ2J+G7;inu#uRjMb|8a){=^))y236LDZ$$q3LRlat1D)%7K0!q5hT5V1j3qHc7MG9 z_)Q=yQ>rs>3%l=vu$#VVd$&IgO}Za#?aN!xY>-<3PhzS&q!N<=1Q7VJBfHjug^4|) z*fW^;%3}P7X#W3d;tUs3;`O&>;NKZBMR8au6>7?QriJ@gBaorz-+`pUWOP73DJL=M z(33uT6Gz@Sv40F6bN|H=lpcO z^AJl}&=TIjdevuDQ!w0K*6oZ2JBOhb31q!XDArFyKpz!I$p4|;c}@^bX{>AXdt7Bm zaLTk?c%h@%xq02reu~;t@$bv`b3i(P=g}~ywgSFpM;}b$zAD+=I!7`V~}ARB(Wx0C(EAq@?GuxOL9X+ffbkn3+Op0*80TqmpAq~EXmv%cq36celXmRz z%0(!oMp&2?`W)ALA&#|fu)MFp{V~~zIIixOxY^YtO5^FSox8v$#d0*{qk0Z)pNTt0QVZ^$`4vImEB>;Lo2!7K05TpY-sl#sWBz_W-aDIV`Ksabi zvpa#93Svo!70W*Ydh)Qzm{0?CU`y;T^ITg-J9nfWeZ-sbw)G@W?$Eomf%Bg2frfh5 zRm1{|E0+(4zXy){$}uC3%Y-mSA2-^I>Tw|gQx|7TDli_hB>``)Q^aZ`LJC2V3U$SABP}T)%}9g2pF9dT}aC~!rFFgkl1J$ z`^z{Arn3On-m%}r}TGF8KQe*OjSJ=T|caa_E;v89A{t@$yT^(G9=N9F?^kT*#s3qhJq!IH5|AhnqFd z0B&^gm3w;YbMNUKU>naBAO@fbz zqw=n!@--}o5;k6DvTW9pw)IJVz;X}ncbPVrmH>4x);8cx;q3UyiML1PWp%bxSiS|^ zC5!kc4qw%NSOGQ*Kcd#&$30=lDvs#*4W4q0u8E02U)7d=!W7+NouEyuF1dyH$D@G& zaFaxo9Ex|ZXA5y{eZT*i*dP~INSMAi@mvEX@q5i<&o&#sM}Df?Og8n8Ku4vOux=T% zeuw~z1hR}ZNwTn8KsQHKLwe2>p^K`YWUJEdVEl|mO21Bov!D0D$qPoOv=vJJ`)|%_ z>l%`eexY7t{BlVKP!`a^U@nM?#9OC*t76My_E_<16vCz1x_#82qj2PkWiMWgF8bM9 z(1t4VdHcJ;B~;Q%x01k_gQ0>u2*OjuEWNOGX#4}+N?Gb5;+NQMqp}Puqw2HnkYuKA zzKFWGHc&K>gwVgI1Sc9OT1s6fq=>$gZU!!xsilA$fF`kLdGoX*^t}ao@+^WBpk>`8 z4v_~gK|c2rCq#DZ+H)$3v~Hoi=)=1D==e3P zpKrRQ+>O^cyTuWJ%2}__0Z9SM_z9rptd*;-9uC1tDw4+A!=+K%8~M&+Zk#13hY$Y$ zo-8$*8dD5@}XDi19RjK6T^J~DIXbF5w&l?JLHMrf0 zLv0{7*G!==o|B%$V!a=EtVHdMwXLtmO~vl}P6;S(R2Q>*kTJK~!}gloxj)m|_LYK{ zl(f1cB=EON&wVFwK?MGn^nWuh@f95SHatPs(jcwSY#Dnl1@_gkOJ5=f`%s$ZHljRH0 z+c%lrb=Gi&N&1>^L_}#m>=U=(oT^vTA&3!xXNyqi$pdW1BDJ#^{h|2tZc{t^vag3& zAD7*8C`chNF|27itjBUo^CCDyEpJLX3&u+(L;YeeMwnXEoyN(ytoEabcl$lSgx~Ltatn}b$@j_yyMrBb03)shJE*$;Mw=;mZd&8e>IzE+4WIoH zCSZE7WthNUL$|Y#m!Hn?x7V1CK}V`KwW2D$-7&ODy5Cj;!_tTOOo1Mm%(RUt)#$@3 zhurA)t<7qik%%1Et+N1?R#hdBB#LdQ7{%-C zn$(`5e0eFh(#c*hvF>WT*07fk$N_631?W>kfjySN8^XC9diiOd#s?4tybICF;wBjp zIPzilX3{j%4u7blhq)tnaOBZ_`h_JqHXuI7SuIlNTgBk9{HIS&3|SEPfrvcE<@}E` zKk$y*nzsqZ{J{uWW9;#n=de&&h>m#A#q)#zRonr(?mDOYU&h&aQWD;?Z(22wY?t$U3qo`?{+amA$^TkxL+Ex2dh`q7iR&TPd0Ymwzo#b? zP$#t=elB5?k$#uE$K>C$YZbYUX_JgnXA`oF_Ifz4H7LEOW~{Gww&3s=wH4+j8*TU| zSX%LtJWqhr-xGNSe{;(16kxnak6RnZ{0qZ^kJI5X*It_YuynSpi(^-}Lolr{)#z_~ zw!(J-8%7Ybo^c3(mED`Xz8xecP35a6M8HarxRn%+NJBE;dw>>Y2T&;jzRd4FSDO3T zt*y+zXCtZQ0bP0yf6HRpD|WmzP;DR^-g^}{z~0x~z4j8m zucTe%k&S9Nt-?Jb^gYW1w6!Y3AUZ0Jcq;pJ)Exz%7k+mUOm6%ApjjSmflfKwBo6`B zhNb@$NHTJ>guaj9S{@DX)!6)b-Shav=DNKWy(V00k(D!v?PAR0f0vDNq*#mYmUp6> z76KxbFDw5U{{qx{BRj(>?|C`82ICKbfLxoldov-M?4Xl+3;I4GzLHyPOzYw7{WQST zPNYcx5onA%MAO9??41Po*1zW(Y%Zzn06-lUp{s<3!_9vv9HBjT02On0Hf$}NP;wF) zP<`2p3}A^~1YbvOh{ePMx$!JGUPX-tbBzp3mDZMY;}h;sQ->!p97GA)9a|tF(Gh{1$xk7 zUw?ELkT({Xw!KIr);kTRb1b|UL`r2_`a+&UFVCdJ)1T#fdh;71EQl9790Br0m_`$x z9|ZANuchFci8GNZ{XbP=+uXSJRe(;V5laQz$u18#?X*9}x7cIEbnr%<=1cX3EIu7$ zhHW6pe5M(&qEtsqRa>?)*{O;OJT+YUhG5{km|YI7I@JL_3Hwao9aXneiSA~a* z|Lp@c-oMNyeAEuUz{F?kuou3x#C*gU?lon!RC1s37gW^0Frc`lqQWH&(J4NoZg3m8 z;Lin#8Q+cFPD7MCzj}#|ws7b@?D9Q4dVjS4dpco=4yX5SSH=A@U@yqPdp@?g?qeia zH=Tt_9)G=6C2QIPsi-QipnK(mc0xXIN;j$WLf@n8eYvMk;*H-Q4tK%(3$CN}NGgO8n}fD~+>?<3UzvsrMf*J~%i;VKQHbF%TPalFi=#sgj)(P#SM^0Q=Tr>4kJVw8X3iWsP|e8tj}NjlMdWp z@2+M4HQu~3!=bZpjh;;DIDk&X}=c8~kn)FWWH z2KL1w^rA5&1@@^X%MjZ7;u(kH=YhH2pJPFQe=hn>tZd5RC5cfGYis8s9PKaxi*}-s6*W zRA^PwR=y^5Z){!(4D9-KC;0~;b*ploznFOaU`bJ_7U?qAi#mTo!&rIECRL$_y@yI27x2?W+zqDBD5~KCVYKFZLK+>ABC(Kj zeAll)KMgIlAG`r^rS{loBrGLtzhHY8$)<_S<(Dpkr(Ym@@vnQ&rS@FC*>2@XCH}M+an74WcRDcoQ+a3@A z9tYhl5$z7bMdTvD2r&jztBuo37?*k~wcU9GK2-)MTFS-lux-mIRYUuGUCI~V$?s#< z?1qAWb(?ZLm(N>%S%y10COdaq_Tm5c^%ooIxpR=`3e4C|@O5wY+eLik&XVi5oT7oe zmxH)Jd*5eo@!7t`x8!K=-+zJ-Sz)B_V$)s1pW~CDU$=q^&ABvf6S|?TOMB-RIm@CoFg>mjIQE)?+A1_3s6zmFU_oW&BqyMz1mY*IcP_2knjq5 zqw~JK(cVsmzc7*EvTT2rvpeqhg)W=%TOZ^>f`rD4|7Z5fq*2D^lpCttIg#ictgqZ$P@ru6P#f$x#KfnfTZj~LG6U_d-kE~`;kU_X)`H5so@?C zWmb!7x|xk@0L~0JFall*@ltyiL^)@3m4MqC7(7H0sH!WidId1#f#6R{Q&A!XzO1IAcIx;$k66dumt6lpUw@nL2MvqJ5^kbOVZ<^2jt5-njy|2@`07}0w z;M%I1$FCoLy`8xp8Tk)bFr;7aJeQ9KK6p=O$U0-&JYYy8woV*>b+FB?xLX`=pirYM z5K$BA(u)+jR{?O2r$c_Qvl?M{=Ar{yQ!UVsVn4k@0!b?_lA;dVz9uaQUgBH8Oz(Sb zrEs;&Ey>_ex8&!N{PmQjp+-Hlh|OA&wvDai#GpU=^-B70V0*LF=^bi+Nhe_o|azZ%~ZZ1$}LTmWt4aoB1 zPgccm$EwYU+jrdBaQFxQfn5gd(gM`Y*Ro1n&Zi?j=(>T3kmf94vdhf?AuS8>$Va#P zGL5F+VHpxdsCUa}+RqavXCobI-@B;WJbMphpK2%6t=XvKWWE|ruvREgM+|V=i6;;O zx$g=7^`$XWn0fu!gF=Xe9cMB8Z_SelD>&o&{1XFS`|nInK3BXlaeD*rc;R-#osyIS zWv&>~^TLIyBB6oDX+#>3<_0+2C4u2zK^wmHXXDD9_)kmLYJ!0SzM|%G9{pi)`X$uf zW}|%%#LgyK7m(4{V&?x_0KEDq56tk|0YNY~B(Sr|>WVz-pO3A##}$JCT}5P7DY+@W z#gJv>pA5>$|E3WO2tV7G^SuymB?tY`ooKcN3!vaQMnBNk-WATF{-$#}FyzgtJ8M^; zUK6KWSG)}6**+rZ&?o@PK3??uN{Q)#+bDP9i1W&j)oaU5d0bIWJ_9T5ac!qc?x66Q z$KUSZ`nYY94qfN_dpTFr8OW~A?}LD;Yty-BA)-be5Z3S#t2Io%q+cAbnGj1t$|qFR z9o?8B7OA^KjCYL=-!p}w(dkC^G6Nd%_I=1))PC0w5}ZZGJxfK)jP4Fwa@b-SYBw?% zdz9B-<`*B2dOn(N;mcTm%Do)rIvfXRNFX&1h`?>Rzuj~Wx)$p13nrDlS8-jwq@e@n zNIj_|8or==8~1h*Ih?w*8K7rYkGlwlTWAwLKc5}~dfz3y`kM&^Q|@C%1VAp_$wnw6zG~W4O+^ z>i?NY?oXf^Puc~+fDM$VgRNBpOZj{2cMP~gCqWAX4 z7>%$ux8@a&_B(pt``KSt;r+sR-$N;jdpY>|pyvPiN)9ohd*>mVST3wMo)){`B(&eX z1?zZJ-4u9NZ|~j1rdZYq4R$?swf}<6(#ex%7r{kh%U@kT)&kWuAszS%oJts=*OcL9 zaZwK<5DZw%1IFHXgFplP6JiL^dk8+SgM$D?8X+gE4172hXh!WeqIO>}$I9?Nry$*S zQ#f)RuH{P7RwA3v9f<-w>{PSzom;>(i&^l{E0(&Xp4A-*q-@{W1oE3K;1zb{&n28dSC2$N+6auXe0}e4b z)KLJ?5c*>@9K#I^)W;uU_Z`enquTUxr>mNq z1{0_puF-M7j${rs!dxxo3EelGodF1TvjV;Zpo;s{5f1pyCuRp=HDZ?s#IA4f?h|-p zGd|Mq^4hDa@Bh!c4ZE?O&x&XZ_ptZGYK4$9F4~{%R!}G1leCBx`dtNUS|K zL-7J5s4W@%mhXg1!}a4PD%!t&Qn%f_oquRajn3@C*)`o&K9o7V6DwzVMEhjVdDJ1fjhr#@=lp#@4EBqi=CCQ>73>R(>QKPNM&_Jpe5G`n4wegeC`FYEPJ{|vwS>$-`fuRSp3927qOv|NC3T3G-0 zA{K`|+tQy1yqE$ShWt8ny&5~)%ITb@^+x$w0)f&om;P8B)@}=Wzy59BwUfZ1vqw87 za2lB8J(&*l#(V}Id8SyQ0C(2amzkz3EqG&Ed0Jq1)$|&>4_|NIe=5|n=3?siFV0fI z{As5DLW^gs|B-b4C;Hd(SM-S~GQhzb>HgF2|2Usww0nL^;x@1eaB)=+Clj+$fF@H( z-fqP??~QMT$KI-#m;QC*&6vkp&8699G3)Bq0*kFZXINw=b9OVaed(3(3kS|IZ)CM? zJdnW&%t8MveBuK21uiYj)_a{Fnw0OErMzMN?d$QoPwkhOwcP&p+t>P)4tHlYw-pPN z^oJ=uc$Sl>pv@fZH~ZqxSvdhF@F1s=oZawpr^-#l{IIOGG=T%QXjtwPhIg-F@k@uIlr?J->Ia zpEUQ*=4g|XYn4Gez&aHr*;t$u3oODPmc2Ku)2Og|xjc%w;q!Zz+zY)*3{7V8bK4;& zYV82FZ+8?v)`J|G1w4I0fWdKg|2b#iaazCv;|?(W-q}$o&Y}Q5d@BRk^jL7#{kbCK zSgkyu;=DV+or2)AxCBgq-nj5=@n^`%T#V+xBGEkW4lCqrE)LMv#f;AvD__cQ@Eg3`~x| zW+h9mofSXCq5|M)9|ez(#X?-sxB%Go8};sJ?2abp(Y!lyi>k)|{M*Z$c{e1-K4ky` MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..7da2d80 --- /dev/null +++ b/web/index.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + jade_gui + + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..29323ba --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "jade_gui", + "short_name": "jade_gui", + "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" + } + ] +}