From 0b591288c15a1a566d5c69c4c794555647ae95fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Sat, 24 Jul 2021 20:27:02 +0200 Subject: [PATCH] Add minimal empty application --- .gitignore | 46 ++ .gitlab-ci.yml | 124 +++++ .metadata | 10 + README.md | 3 +- android/.gitignore | 11 + android/app/build.gradle | 70 +++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 41 ++ .../benoitharrault/plotter/MainActivity.java | 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 -> 2626 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1536 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3502 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5721 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 7943 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 | 29 ++ android/gradle.properties | 5 + .../gradle/wrapper/gradle-wrapper.properties | 6 + android/settings.gradle | 11 + assets/icons/application.png | Bin 0 -> 7943 bytes .../metadata/android/en-US/changelogs/1.txt | 1 + .../android/en-US/full_description.txt | 1 + .../metadata/android/en-US/images/icon.png | Bin 0 -> 23892 bytes .../android/en-US/short_description.txt | 1 + fastlane/metadata/android/en-US/title.txt | 1 + .../metadata/android/fr-FR/changelogs/1.txt | 1 + .../android/fr-FR/full_description.txt | 1 + .../android/fr-FR/short_description.txt | 1 + fastlane/metadata/android/fr-FR/title.txt | 1 + icons/build_application_icons.sh | 47 ++ icons/build_repository_icons.sh | 48 ++ icons/icon.svg | 98 ++++ ios/.gitignore | 33 ++ ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 472 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.h | 6 + ios/Runner/AppDelegate.m | 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 | 45 ++ ios/Runner/main.m | 9 + lib/main.dart | 34 ++ lib/provider/data.dart | 5 + lib/screens/home.dart | 32 ++ pubspec.lock | 161 ++++++ pubspec.yaml | 21 + test/widget_test.dart | 14 + 81 files changed, 1858 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 .metadata 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/java/org/benoitharrault/plotter/MainActivity.java 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/icons/application.png create mode 100644 fastlane/metadata/android/en-US/changelogs/1.txt create mode 100644 fastlane/metadata/android/en-US/full_description.txt create mode 100644 fastlane/metadata/android/en-US/images/icon.png create mode 100644 fastlane/metadata/android/en-US/short_description.txt create mode 100644 fastlane/metadata/android/en-US/title.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/1.txt create mode 100644 fastlane/metadata/android/fr-FR/full_description.txt create mode 100644 fastlane/metadata/android/fr-FR/short_description.txt create mode 100644 fastlane/metadata/android/fr-FR/title.txt create mode 100755 icons/build_application_icons.sh create mode 100755 icons/build_repository_icons.sh create mode 100644 icons/icon.svg 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.h create mode 100644 ios/Runner/AppDelegate.m 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/main.m create mode 100644 lib/main.dart create mode 100644 lib/provider/data.dart create mode 100644 lib/screens/home.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/widget_test.dart 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/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..9d0e11e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,124 @@ +image: cirrusci/flutter:latest + +stages: + - update + - build-debug + - build-release + - release + - deploy + +update: + stage: update + except: + - tags + script: + - flutter packages get + - flutter packages upgrade + interruptible: true + +android:build-debug: + stage: build-debug + except: + - tags + script: + # Flutter local configuration + - echo flutter.sdk=$FLUTTER_PATH > android/local.properties + - echo sdk.dir=$ANDROID_SDK_PATH >> android/local.properties + - echo flutter.buildMode=debug >> android/local.properties + # Android signing + - echo "$ANDROID_DEBUG_KEYSTORE_FILE" | base64 -d > android/app/my.keystore + - echo storeFile=my.keystore > android/key.properties + - echo storePassword=$ANDROID_DEBUG_KEYSTORE_PASSWORD >> android/key.properties + - echo keyAlias=$ANDROID_DEBUG_KEY_ALIAS >> android/key.properties + - echo keyPassword=$ANDROID_DEBUG_KEY_PASSWORD >> android/key.properties + # build flutter app + - flutter packages get + - flutter clean + - flutter build apk --debug + # prepare artifact + - find . -name "*.apk" # where is my apk? + artifacts: + paths: + - build/app/outputs/apk/debug + expire_in: 1 week + interruptible: true + +android:build-release: + stage: build-release + only: + - master + except: + - tags + dependencies: + - android:build-debug + script: + # Flutter local configuration + - echo flutter.sdk=$FLUTTER_PATH > android/local.properties + - echo sdk.dir=$ANDROID_SDK_PATH >> android/local.properties + - echo flutter.buildMode=release >> android/local.properties + # Android signing + - echo "$ANDROID_KEYSTORE_FILE" | base64 -d > android/app/my.keystore + - echo storeFile=my.keystore > android/key.properties + - echo storePassword=$ANDROID_KEYSTORE_PASSWORD >> android/key.properties + - echo keyAlias=$ANDROID_KEY_ALIAS >> android/key.properties + - echo keyPassword=$ANDROID_KEY_PASSWORD >> android/key.properties + # build flutter app + - VERSION_FILE="$(find . -name 'gradle.properties' | head -n1)" + - VERSION_NAME="$(grep '^app.versionName=' "${VERSION_FILE}" | cut -d'=' -f2)" + - VERSION_CODE="$(grep '^app.versionCode=' "${VERSION_FILE}" | cut -d'=' -f2)" + - TAG_NAME="Release_${VERSION_NAME}_${VERSION_CODE}" + - echo "${TAG_NAME}" + - > + if [ $(git tag -l "${TAG_NAME}") ]; then + echo "Tag ${TAG_NAME} already exists. Skipping build release." + else + flutter packages get + flutter clean + flutter build apk --release + fi + # prepare artifact + - find . -name "*.apk" # where is my apk? + artifacts: + paths: + - build/app/outputs/apk/release + expire_in: 1 week + interruptible: true + +application:release: + stage: release + image: + name: alpine/git + entrypoint: [""] + only: + - master + except: + - tags + dependencies: + - android:build-release + script: + - apk --no-cache add curl + - git config user.email "${GITLAB_USER_EMAIL}" + - git config user.name "${GITLAB_USER_NAME}" + - git remote set-url origin https://oauth2:${GITLAB_ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH} + - VERSION_FILE="$(find . -name 'gradle.properties' | head -n1)" + - VERSION_NAME="$(grep '^app.versionName=' "${VERSION_FILE}" | cut -d'=' -f2)" + - VERSION_CODE="$(grep '^app.versionCode=' "${VERSION_FILE}" | cut -d'=' -f2)" + - TAG_NAME="Release_${VERSION_NAME}_${VERSION_CODE}" + - echo "${TAG_NAME}" + - > + if [ $(git tag -l "${TAG_NAME}") ]; then + echo "Tag ${TAG_NAME} already exists. Skipping release and tag creation." + else + git tag -a "${TAG_NAME}" -m "Release ${VERSION_NAME} (${VERSION_CODE})" + git push origin "${TAG_NAME}" + curl --silent -d "{\"token\": \"${JABBER_NOTIFICATION_TOKEN}\", \"message\": \"New tag for ${CI_PROJECT_PATH}: ${TAG_NAME}\"}" -H "Content-Type: application/json" -X POST ${JABBER_NOTIFICATION_URL} + fi + +android:deploy: + stage: deploy + only: + - tags + dependencies: + - application:release + script: + - curl "${REPOSITORY_UPDATE_WEBHOOK}?token=${REPOSITORY_TOKEN}" diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..b2896b2 --- /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: 5bedb7b1d5698ce2c1c67aaf9afae7b3948b172a + channel: beta + +project_type: app diff --git a/README.md b/README.md index 8f39903..fece612 100644 --- a/README.md +++ b/README.md @@ -1,2 +1 @@ -# org.benoitharrault.plotter - +# Plotter application diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..0a741cb --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,11 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..4b0ecf5 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,70 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def gradleProperties = new Properties() +def gradlePropertiesFile = rootProject.file('gradle.properties') +if (gradlePropertiesFile.exists()) { + gradlePropertiesFile.withReader('UTF-8') { reader -> + gradleProperties.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 appVersionCode = gradleProperties.getProperty('app.versionCode') +if (appVersionCode == null) { + appVersionCode = '1' +} + +def appVersionName = gradleProperties.getProperty('app.versionName') +if (appVersionName == null) { + appVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + +android { + compileSdkVersion 30 + + defaultConfig { + applicationId "org.benoitharrault.plotter" + minSdkVersion 16 + targetSdkVersion 30 + versionCode appVersionCode.toInteger() + versionName appVersionName + archivesBaseName = "$applicationId" + "_" + "$versionCode" + } + + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword keystoreProperties['storePassword'] + } + } + buildTypes { + release { + signingConfig signingConfigs.release + } + } +} + +flutter { + source '../..' +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..55f3ee3 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="org.benoitharrault.plotter"> + <!-- Flutter needs it to communicate with the running application + to allow setting breakpoints, to provide hot reload, etc. + --> + <uses-permission android:name="android.permission.INTERNET"/> +</manifest> diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..eeaf6a1 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="org.benoitharrault.plotter"> + <application + android:label="plotter" + android:icon="@mipmap/ic_launcher"> + <activity + android:name=".MainActivity" + android:launchMode="singleTop" + android:theme="@style/LaunchTheme" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" + android:hardwareAccelerated="true" + android:windowSoftInputMode="adjustResize"> + <!-- Specifies an Android theme to apply to this Activity as soon as + the Android process has started. This theme is visible to the user + while the Flutter UI initializes. After that, this theme continues + to determine the Window background behind the Flutter UI. --> + <meta-data + android:name="io.flutter.embedding.android.NormalTheme" + android:resource="@style/NormalTheme" + /> + <!-- Displays an Android View that continues showing the launch screen + Drawable until Flutter paints its first frame, then this splash + screen fades out. A splash screen is useful to avoid any visual + gap between the end of Android's launch screen and the painting of + Flutter's first frame. --> + <meta-data + android:name="io.flutter.embedding.android.SplashScreenDrawable" + android:resource="@drawable/launch_background" + /> + <intent-filter> + <action android:name="android.intent.action.MAIN"/> + <category android:name="android.intent.category.LAUNCHER"/> + </intent-filter> + </activity> + <!-- Don't delete the meta-data below. + This is used by the Flutter tool to generate GeneratedPluginRegistrant.java --> + <meta-data + android:name="flutterEmbedding" + android:value="2" /> + </application> +</manifest> diff --git a/android/app/src/main/java/org/benoitharrault/plotter/MainActivity.java b/android/app/src/main/java/org/benoitharrault/plotter/MainActivity.java new file mode 100644 index 0000000..9a7aa31 --- /dev/null +++ b/android/app/src/main/java/org/benoitharrault/plotter/MainActivity.java @@ -0,0 +1,6 @@ +package org.benoitharrault.plotter; + +import io.flutter.embedding.android.FlutterActivity; + +public class MainActivity extends 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Modify this file to customize your launch splash screen --> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="?android:colorBackground" /> + + <!-- You can insert your own image assets here --> + <!-- <item> + <bitmap + android:gravity="center" + android:src="@mipmap/launch_image" /> + </item> --> +</layer-list> 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Modify this file to customize your launch splash screen --> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@android:color/white" /> + + <!-- You can insert your own image assets here --> + <!-- <item> + <bitmap + android:gravity="center" + android:src="@mipmap/launch_image" /> + </item> --> +</layer-list> 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..226c97602255b41275fc87cf8bdcbf9fb904b2d5 GIT binary patch literal 2626 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 MPgg&ebxsLQ0LbwHbpQYW 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..04b256bbfd67d480c76702b01964e398b4a680fa GIT binary patch literal 1536 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 WANf8n$vq!b9(%g_xvX<aXaWG1-2vbL literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd8d46ce51a051eb7d9288c1811a957aff1d77b GIT binary patch literal 3502 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 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..b6b4331382d93d62bdb3ba9494e0341d85e23e59 GIT binary patch literal 5721 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 SHJO2dfx*+&&t;ucLK6V;F7}}S 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..76722141910214eaac836f25b17cba4bf4b89e39 GIT binary patch literal 7943 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Bd2>3_*8t*cliYI14-?iy0V_W`i(e1oy*o z1_lPn64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<|Frg*wIhE&{o8(Uc+ zk~)jMTzqb6SzGCy(i9mp2bF|um)jFMAAEkIKmYjt^2Iw|_pLj3?!_CuE`vCMj1LkH zdYli1cDk^z?0o9RcUaL}@s9hBe3kF4SFXKZUAKDws&%hQ)I($M&i!6JZ~hU#^5v`c zeg9tj{_obTqs{F6ayAto9vsBQ*kKrD9HkTSK(c3=6UXk^`?@bCT}<i_aD2gBzV+1U z-_pjPd`_G_`#0LH=zvZ6+BX+0B!m2Z9BzrLE2!K5|GmUY-pYN>E*vgOPF<Y)w=BBs z{PAZ^Zo`)^Uv`_?9QW{Ca^JT&SFNR!L(`GL`=L3vot#fp-aFd^&X$(;%(s62t@r<6 zJW1@6&80g`GqPt2xU_^QH?I9~x~ZSNseS6qnU(9$Pyb!4puG6FeaaUDC0py?;yq6q zD&H~8iaulPu*Adr^j>vQ&xDx2zK8l}A3Hnw!sLeXFTd+&URxV|drRKVT>0uX&+UzZ zm}mGieCAGA*U6*Mv`u-*{ah8t8NL&itgcrmnC|%F>g-(gus`YVTOVXQ&A)x^`RSeO zy}!TP|LV>6`}|AnKc2BS3}QA}J|jNf?_8}ys}D<kijc}(y#?_fb}v5m^Aq<nF&-)V z#T5^JNM2_WPMhX_Xu(HgZHbk=9-sLoB_k|~?Nik1@1)FU<(%aFgSpXR_Mby9g|E!c z3Rq|$u`%gG%gnDoSub;a{=}3!DOLSKYkk7QFJE_XPW^bwda-?Y6~AuCzds)%p7!?J zB^%^0N;a->NK>$$u<%de<?FX5C?s+u?wG;YdRgt!p+ez$j-H^nlmDk2?2xRNu<<$} zkdk>|N9JQG&S{lSEgQbHmAi}Dux)+5_MvcvkYpdjCY39Schx+4M7U1hnfK>VW^1jx z-=ofCi>^9lb!}#@Wxc%K3p?ici`?hXzfk{X%cOAj-Upt^7G2@&y&=EEeRQ|^F5J*3 zy`^vVhspEzpZ~yVUU5ib-3q6}$Kp48E$m2VxvBD}aRbNu`F2vlrzamRU|wHuvF+Fd zCqWfwo68zX&%P<_eYo|2hZ@6S(LH7vDZM9*PhI%b<<KS|_-L|Q;{4mfKKTLqQ#cP4 zuru4Oz51zZSLYlhuMOGa%T2mAT)nUJXNQCu!(m^hfH=WV$0pdPol`Yh;k<T^@8S(H ze-}1qM$SEdue&>u$>5HPL-_vx2l@Kb>=~34Hm=*dOId*Ph@XJZ+HE&k=O{QlSZ8zj z6@M(xZNY8Jrhjg~{xQWc<~HM|&GM%z7P(u;hh1B5ooe^@yb<RKHHA=*D@yE4eK(nQ zJwLwZS99%!lN)pm871<B7I<&JzjWoMYx_Pww%mU(k3mRbZ`5S_T=9k&w+*bbycvA| zF1#wgYx=fd&$qSa9b-w@;n{F5($+dl<%Oolgk|qoChR`GB(@=kQJqs@+5gk8`2TI# z!4RsS%w!O=m2p?9{hW98yM#S1XllRS9{cxv%Uh;dVT&XWuM<-E(Qfk9eJ?`{hj7C~ zHAbU(uO>1Im7F{E%40V}Ptpx0BSxOG1~G}^K89KU=I34bU&z?MO8gMm`u6#MVz2A< zm%sM`DUA={ZIbF!n3=}D!>?fiBhUN(4`(4NrP)u^vFvtOu3mh}*l2h8g)0jGn*;Vg z<Yi*~GfDA{7UQj#YzD#&g6d2*^PawbbN=O}z|dx+UDBKk)*_!?Ffu-1JhfLIY^5*5 z3P(lj1NY_H3<MeYB=_GGJ;jo+go{z`<SRwN1<MUu1SO1x83Z5h5L{4uf%Ozi!j5-r zwXa^fpA?wJ$-u87+;EU3fyrP7gAW6na0BN9zrt@EsYiP9r|?>T*L3%vAM7`8_kuS% zmaBYzmbHGepD)s~_y7MkF|FPFvcX>ZF`sxuL$7+3=FSbOc{9bR^r6@3*C|W}j8aE0 ztSp}L+Whp?SF@s?o||jkWs~*#)f6ew&)0K;{$(e;Fy_84s<}P?ewa||m1|eIAMBd6 zu9{u=fVEHj9xskQ8;7Rb+uyfvN`&3I&ZK<wx!Rd%t&YI^7anj*<=r)kSzj}^-EW@Y z-Rm<Ld>T4_l>D-3{_yyD@N+$_?rY+j#o@UDWm9AX*PEJT914q$U!QYlYyAH|CuV+T zZQOIHY3uB%rqSiAZ!8VDdPSr3EAJz#kMF<zZ3h{}@mG_1@s!!3Q+Is`zkZD?^n}-S z`?_a)g5*W?1d=`+(HDMK_wUO?iNwhQ3pZNx&bFG)d4OfZu^&6Vr$}9GP+9oz#pm@o z_kSN(Om692uu{5f)B6*hEv8R4Hc#{_`SXTVjY0T;)NVex%i;eg2`~S8y_#P;WSh8r zSl^U+!T)|8z5eU<<b9E9HhQzV0_SgNdp5yy^ODy&0&7psWbkP)h}lsT%fZQWYNq$~ z7wZpSP<_wG!nukyuD<xjj|o)^_su&IyXmEscIfVegoiw848jUB*Xy({mp(oDdHU=1 z@jDBH?@NBLF40$$l}<UhV%5sfd(y_Lh40^{MSif#ZdrJqC4s5s;gVI_$q8HkziXHO zdVPPy4kyt+Rf!_W<_oSfuX@ORaCvNVS)0p|tMgBlEK=HW9Hb-h<M-$((c4Wzm+x71 z>w)?4Rs8<_GC#C#1uxn!zuQHlZ$p&jLaEt)uI2nImb{KP@csYKaPz)UufFMB^)nfK z7>+ZDww0v*_`dzE{SvM{TN9%{d|h;*`fC02wf9uw-hY1CvO!^%@Zv9rQtz&A&gPc9 zrwr2cJYdWABM<JkN3opeudFEOySnRbHIGwVSm4q>g(ouZ>aAF_PS9=R<OK@Ta>@@Z z{#-RhP8JmILL6CV<2J^LezM$E|Nqfe>8dEkKhFiER#;W=x*51Op42#YFz-|Ox1S}8 zJZ2PY?drbUc1ahMCEN>tJxW!)6OnqdyP3x;r9LR&OqRos36-4k)q582_F+(KP;N-< z6rIEJc=5@FC-i$_UE0pa?$cu7&Embs95f|7OxxQ$@9UA*hglMsEZR(Om%WaY;n)$Y z^1c4Qm7mO$KOdiO7G3Xu6qIFTPEC|t`TK(-)6MtuPb4rIFv>92yx_>0xc&KEjYT^= z`kHe$)LbrewrSuzz~W&gV-dGXdP}-qZ04809qd!W!(RS$2xy<w$uQ+v?dxy3sb8jZ z&tTA<$#CK2$^aI(4_92ZrT?DUkXh_nsiL~C)}U;a`gOkO7M^ke#=P4ZcIvzHw!g7H z!IE*3Wyan|)hmNm*{uo{Ir?EraQ(|$y#DK?v#!tV4nI=*An2Ui#$rLgIlBc`6$QWl zslQmwm@!I=QDe7o)0fAM%7H6oOTR7@>5M#my{hPLyiUx@<7yM;e1G`lMY2FgNO;Kg z7bol3msYW>IdCf-Xed;?Z(mZ`#o*4gXqRb_BWK8pig@#`h!feZ9VS6$Nq_s!?~BS< z5#OOYvyXFv63dT&$M;qha`)WI*kkG8vUubB6Q2I-q+7pFS<LdtY-&rp-#oKB^;^tX zgcVph8WxpDolF!_`nz-Ed4&(ItJUr-i`yZ<-aB6~=-`#?ncFI+9@LYttDX00Yu5EM z(R&SfZtT4$XL#{b-G<o*m!4+HP-JlkirgCVMb0-wTxBJHRe+Lf_g#~k#5a>3RzG}I zYU?UpWxFf*!Mrz8MGx&3e(IgSJLLa4Rq1U~K|6&vP3q-*U~@sHi|x{!#e#NAtX^My zboOJvSn}5O6I(+4_Bp?o|CDBG<{*?cxx;Dx{8QQ`?gtE~y7)ARs5`u0*vfYQ|B?J@ zroU$PFF#}E(jCYxa6Y^3z@<Lc`TOrQaPJ5VTNp3R6#F4>rla;=OQxRrCnXuS3hY)E zR%qpHSeLg+PPX^s_R{-~cfa><d07$vx$0_y`d4nIKhOJ*N0n6_c>mz;reAzfFBP9; z+|B4~oBS$dnbeVx;sY!mj!Xf1JS<jH;!0n#cP_p)rB(Y;)!w2^)fVw%YhqVVUM95Q zeTQdT^&CCP>pl%4N({TqCwynuay4<)5%%?6|7h;-{&Sb7d}jU>bye;3J<TsFt|ixd zHYNO<B+AGzr98;XB1?V-gQf?=i*sA9-VX>rl3~{@*0d!#=ktP<IyUxCR?XR3Gxuq= zN5Rq3TMqBU{{C!we`w$1zvuTEu>2HyX2Yn~@OfYTniUa|(!Y7E_DtOS!1bB>9{(-B zl1uCTMT1s<KWgOA(E7StXMa1--&L<}9m$+`nx%lPwRoCD$jppe;){-2a6a&VI<@fp z-+E`$vd)Hxr*D(^pEX-cNpti>)}H^VeZ9m~Q|i5hutFzC1CyAPyVrTQuQR1npB|Kb zJWZile6E(q{`OaC?hdc`MS2B$6z1KzaeYDF%3b!A$Jg}asyR#&VmO<f8k%<JdiUa2 zOJbDYN)$;s?qMib*_wLLv_T;3{p#+C4D)?9sxj<}zVN-rZwia0T7&UC5!)Y2xlG?M zs!Tj+-P9+b(R?KPQ@YuEy=(nWhu%HBx^?mcCylq8%wFDGr06i!i-G0anf>esQ_HnY z|D`f5VPN!_+PJPqmSJ^5?uL`PEo}djmLBEWvG>P>PdCHwO9d@Gem3&W&8^~ZEf+lh z|Hi&*(@mBYTNDpW;*Bn;W<TF}cY&r8gGhIXdq$4vJJpLUo^iZ;Z9@21e|*X`efF-n z;m#~uEv6ZJA_LZbc@t5p7%|afuHg)Zvxjfx?&ggX5@~i0NVt*o)TLHGXwlI=0UeWt zjE9BOnbn<kmsxUOdBfW^mEoE4{DKGb>u$u$+N3<5$*|Ii;mJ;ChgGiX+qF_(9?MM% zH+ar)FhI__df}$W2LuyC9vR1p?LB?KQ?KZjQPID-N(_@8I+ZehJ+;YYHFpA&i7~^n zRr;IvN3Rz-6DLy2T{wreZSlk>Vx4i!E4el)>Q^s);<7WNCt;Vq4pZu-%o!Eu>-pu* zvOM_qqVpza-!DN&(`c2@jiyH&7~U|1xa^O*BG^(Uw)+QzumUS5Lt_)S$ZEwq3(MFO zRD|4WcRGBIS{bop-HMwm3+6Iwg#>rKp2^_p!BA4)5HCNOud&hLfZc)f_ut>pzB1os zU!BR3LmSr=-Dzq{y|~I@3Tt%Lzex(hTv=yK*?byAlo=MSig<crf4=FFgW_6}2|VhT z^R9(39k4sZ_oGT_zW5oI0=3mbjw(CzwnfePR^-jW|0Vus`H%k@msBTBWSA<%IEl%p z;aT#zQ@p!Y^RMFP^1dL`Wh1v@*CcC|fYd4CKka=PuQI!MGt4PE2`ac6HhND?;5elj z`hM%`S55VEJQ}{|-K{sU<S4MNVtUZ<hCz72Qvrw7%qy<`u6*>s%954gRYOjIQlX!n z($zUC)4#9;lryX@;Zk$x5@J}%W5PF&$F#}StHAfd@8&N|LG1xt5?*@VeOHadm_m#g zqr@1y`sZHaR8X&cYguzAL7;z@W&Hox)D6`|OGKWegf%|!N@dz2z@%`o`<U9wg(Bye z7RyLU>?u0uzv93WH<^x!RV*_OvUr#>-H_a-!Jw{x^6RFey=w$24LE8JYRogKpSiHK z>yG)AbHY<R?oLS#YMjBa(w*VT`a=n>+z!Ro{eKR<TzFU|N6NeP5v#IGy^q)YeXHu` zht}8a2;Ashvopt6=pDmWrQK6FCpfVz=y79dS#znffBwz|+@@irtNYk*I8NZwE%%tc zC!z93-==jQ;d2wTRTgu#xHf|7n}+XgN(*l#@?TB7E4<+Tb&t@*A3q;ml~(%k^=kR+ zDZabATNQoo$=BT9c=@@m@Dq;-8Y{lJF)b0iV<yOOy|>y~S)b+S3<gaf2A_(lAtzZM z%Gu|8-uS(Od(#~!cKg$@S666D{dycx>gL=x!AIrKU6+E%vp5?b`){q@t6XNfnQMxD zALj%k7Kd|uth+L%bSl>$;<ldfujjJp)@GHSvr9J2a{lZ1uroA}BhI;4r&7g>S<{%Y z#aATc>5Aw3eHg4wJ2@w`us9sn5=x6YyRqxNO@&F){(6yS8BJStj*ahMc&2{q`r4+k zQSx>-zjTPoE2E7mkHbJMC2J;!3s3h=pYkqd^}p94wc1}Yt>(IF`|V#WeYI?@m(Wax z8=Ny4G@Tl{!`HuNY4Dey7;oh&sG@Nz_|lVYYA2YT+%ui0tyuLfqh-bB(y2y_GZ+e+ z=N#`pAjTAut{;2#s>l)cb$4|(=dw$zl;{8RchiT*&;6I57k+u<SL9ya?T_x6fZEg- zc9}1z%&A?m^!OIn)nC?~Qa=}WAz13fdj2GzdHZ9wIBa~))>!0xgZ0@d!$1FDL~?(5 zKmD@Co^{e4QyDrhylUlqz_4M};q|$B-yL6ZpSw0GydWsifu|(GqW<Ts75vBce~@|j zRVrBAa!;EGSMe`~rQQw;3hdTTznZsw27~TohG6k^SIQZ7FA(u)DtR7pOZimZMNwC4 zo!C`3RA1D-P<$fG=yt@X;d?IMtpp|&NyZ1KmK+F6&gAqcU$*PPsswA7&nGoI)Ex@e zt=#p0`|COZ*(GoH<)7Zy{43r3&4+chO1D&Ic`MCi&~0I8_n&*U)!>%%yhN47mT#t? zzNU5BJU_hdMzO;eepgkAb0>~=c3!+HS-+lJ?oF?Y5(D2sW$9&4Dl#P)?<F%WVPn)V z>W)qLI&E&@-`f@rO*W2C<+ce==M0dwVUf=DyAU8=#(P3<e!m)rK^m8^!cEQwyZI&` zBi^p@vnvs{2w5DJrTH$^|7`d5ycgDrL5I%T20UMXQ^v|GRMo*rw&g5KhSWV_rij;( zGv!-+-W`9uG+)-%_UXHe_t)G@DR?`{swLywny1;5SL<sDACO8`5oNK}TWe$bZgqmF z;auxyYGv{^VqE`LHu<^Bbl&@a@VcNt&o*Z>VTFU72IW`TVp(@Z2EIJ`M8>Mp?e(=a zQi|Ny{ykW^pku1tib;wFWe%ow7g?s?Ir2mHP4kl1J!e@q91A<iTlwKgroUSH)U1lh z(q-u<1JAdzvZtST#n;tbP<vvU?#CCBhKw<XZhD88{QtYj_qNT<Ir;(}+^_C&Y^&7O z`M?po@84vRGu$g(-uL{Q!#Tl=Wx-pyU*CW1^tPQTvqRz}pW`VPB@P~;uTNMUU;JPF z=#5eu(+(a>$+O=4JW5APgN)|gb-ecR*vHM!dE1%PN`4osIlOVO_qUaejD5K0&HYGi z(~Fy|>aVZXvfSx*h;zFBqNmmUb2_Yo&ao5-dSt2{Y-Z=!tM^twbN+Hehy1=TcNw^n zGT0r8;?^{^{$PF8RX9OD1k^9>v{CtE-*sDgYUVA*vj<LCxTkkKv&&!7F{As<Oa?h2 z2G872k^45VD=pN_br4(S#PN9J#`n|CE8LTKI`a@m%v;-<82e?M_njr@?s`?^ZGB#% zsr~-p`TUMsUN@*St1N1q^5L1?`}Nb-Ury#+u_KwO!lz-j=v2d{rsp%9b{U1VM;zaH z`MFY^deqtj_Ui@JpRK>XIn?~ER$s>VH9EHxJ34<HS@hMFZ$-%Ll10`V7aK6n>J0L< zc=*x5XqK$PlrY;mslyvq7P~~1EP2o7VesL;$4`$Hal7j_-??za+j`?Z#~peT19$mf z-FUH<NpjALxaL{yvIk<WG{^F<m$fTB_GyRmi<isw<3Jta(j`&6rh+CH%-T2~7%~PN zb!GmwX*%2Tnh!?;rka$6MxQu0W%73ca|bK;WG&tn$!)AnwF<jqo^gI!_(9%L&)nGN zJ6rV0=8F4kZXRJtU^?Q)Ao4iinMRAeRaG$8%ft)kqqhc%{J-L{n@MT!4c!YO3p97f zUirS_UBu$YwQ)?s3O_ju9#p)Tz_&u}?BCfLpN(oiW+if;Jo-Cec|yE`>Y<fO%$L+o z=4z8&VHszt=D@AmAhXqN>$J%$`8|#w=nKex)lj&2&7FytbL(!@I)vX%m|mdJ!zm!l zsIVmOI`4ur#V6Zzla@}qyGem5r+=ATM`NCN)$WRkMVneU53qF1WhgqkE;>{CMF-=0 zk((@T&O767*1o9lVNYIg*lcC^kG|sR>pQCxnG6_{!Wu6$cZ3DHY>f5fzh574zTZjL zpesJ*cSA=*nV#{qHDULp><(^XHVgZCSzJ%ruKP!G`dpP63@7~?*8b*yx$5N3)8}4a zEczVBp~n?}!fr)CIcu>D<A44T_Wlmty#=1#fhKp1zW6(p?7H>ZSOBDtq0lcf_5^QN z^0Yatyxk_vdb8B=R7+*({M|*(3Qk+j9(0+W`*m-{xspRX!VR1kQkWPlmPD_+>3U_m z<;%+_ev4mxv@0Op#%1zbtHfk?2fd4p$;-byOPF<0rf6YMid5wMqS>Bm48jX;vN$ww zy;lw8NNHeL^tWmYdzeC&P2Rbrivm7kaXTCq-gck;oqv)-E7MBp&tdr@Gq%>u)%fsn z(M|^81(GZWI^SOwU;l|GWcmdOMuw8C3E{b3`VCo4*9+pM%ioDx*)~NA`26W{cDV3+ z`Mo8JFXuJ=nX}~8*TXCYeGE4??QMDYsHcfx$@ax<l1<vv^=7f}`@YThltvtzU_yZV zXY-j1nr;jw2^n5i8)q}SCF`W;JF3pwU$!|YEO2RMij?QXYb7PRk9K?C6`Zu`D5vlN z$uF{&o~BCvT;F4z9{f=aY`bygx8qguKkq%P|9w1=m}qeM`=jT)*55nR_FcHWSLc5U zlgbOvkDw78)M2>;2~0b@8bAZ@*1wD2r!yJcQ9Ga<X<MV<a6RuP|7n&3OlMdUme?>} zl0QF*W5QCQ1NZl>{y&rbEK5Vpv55?KLzsTN|DKxqcNXV?f~gGtDfX9c&cD2Lu~$RS zySvsUr%wIS6^m11coL}QFi&g!I>84E=ggV^vu3A#I+MX8&xW4mRVgJ^M(TS(gRv)B z8gyq(6f|dA@|q=J`@;CLm-qgL_uI|-%K#oK-SF!$gWq@iyPPZmq4U}|d`Mz!)8b>= zBFy4Z-p_Dhb&XxTbT5OQBLis2f5VZP3_RwX4OjOsUibfd&i$Vs=iDy|5RcP2;KX;8 zRkG-%9Ai`~$AoFKtNqi`p6xZTk>lRwG?RfR{O*EPA1=RIztaA^O-HLZ_XZz^6Y3ln zyaX16Zsxpjs*j<rS^Y%4y>P?BRa{f9ZdPuYANGICf?v*Z3OXkyc%NAQfx*(h;Xv$< zq|J(JHtIjOQ)4)MRrW#W^8c*b_AT<e_E&z*PcLh<@@crH;1G8~VA@rMqIM%jiFH+t zA&bQu^@ZwQ{JUV6@s<Dbe`cru<&zi`og?nC8X3<Q-PTaGaH~xu&-F5f{r?>$_HHm& z{PVVX7600Q9Spk{{+q$`aDsKn8>UzCN9B*Z?wMpihx0%|C&S@v&kqapE}vS@T_5nB z-?d?`YQtMShgAZ4kDf9fp25Hq{^1k*;jF|rPFLH`@o$Y5s|%{l39E1COmJl?RsV7R zyL}>)LCit#_jOFt55zgj96vm4Z22YY_(L}KZ}iL?DmG4OLSJ5)|6ubMJIwp#mG}-W z=k0SHKg{2Kd%?FBrue?~|IAbj-m#qjeop^q?f-=~i9GHffAhC#Rpx)wS6g_z%fCt9 z|KWCZMjpPeOmP*(0S7<lKh@Uf2hCV4`Td+fTp_qJpI0JTtSa`y+N*NmE%&=vtOWmU zJufi-)Ri{zdvZ%AB}n)yEUrAX{?rBTS~jio`z;szYu(OP!Yf==eXu<Ahw`Ka;rkU? zEBD$Tn6~uKacg-_w$CX>NwHrQttTwpbMNm|@!x!M$qS#|;H-;jxj&7gva&Ka?u~iM z+5KOS9j#yR;C@^_{}Epe{cp(zN)A&6Gx#^X`BT0BfL46mg5GD>`CWv5?cm<GcD9NC z-Urj~{Vh22x%QLvk-P&5M>?M0m%H)dQoNna)ZeGHzu)-rRoLxAZgc8-K8b0Kvnw{n zFW3=&|KRoNud+)FB)&=1$Zq;{$lBR${|)mCN6#*p_FILcMd<k%(UcPp7KdrQoOzR9 z@if2byc1vD&Y7>O3;5H(rNGp+Q1T>W<voM`8UAOqy(9zAIQ{(Nk+Zl-Eb!vhX02U! zPQLh(B5ojl;lx*F*-e|}1#)!*ZasT{Q;wgFpTp(AVWtlcBu;Y9az3M8^b<5oFd=x> z#Pj{F0XiK@>yM|ec;V&tuz!Z7muGQ^y@JPrbqp)s9ArM&%qaL_f&-h4LF2ogB`sFv zGu#=9yPU+{{Frjd=Vb1Q_Y0fKwsS@8`NSn@?7mdXD5%weDe%SuI{_u82KLsuj7t(! z^pDuAIxuI_gVUO47uNhs=l%KTq)&s!D|VAm4i$$sc{vtAMt=5Hf^s5^+nAJpI((ik zCQ@}~z2VZGvs1l_H%aXeyvi@(u^_Lyf}uh{BkzFo!NZD92B4|F8y~k$c@|^4bf(aq zL!W+5uK2n=r1{C3KqbaJnP~Yi1{<CUjQng2njaQOob1cX)ohm+&^&8<D0o(Gi+v`i z04wLE_s4pL1^+bh%xvN@+Td+4N%+~$BY)JKyf&M&a7<D--^5YDQ6b^Nq5WW?;Uwm= zVvpiAOHJ&bXL@ZeSK(OZ7n~+<%V5JJDP_oU-f)u8Ldz-7%>sjF*?LYh7Isu?o+;9E zrLnT_^P1pU!G1s9dR(|waXG3|b#bf13d`PQrpupX+_jLD&}CUWS#h`VJ(q+nF<X8d kbUJY89Qq7!LGmB_YUx0iW{oIG1_lNOPgg&ebxsLQ0P&`LyZ`_I 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..449a9f9 --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on --> + <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar"> + <!-- Show a splash screen on the activity. Automatically removed when + Flutter draws its first frame --> + <item name="android:windowBackground">@drawable/launch_background</item> + </style> + <!-- Theme applied to the Android Window as soon as the process has started. + This theme determines the color of the Android Window while your + Flutter UI initializes, as well as behind your Flutter UI while its + running. + + This Theme is only used starting with V2 of Flutter's Android embedding. --> + <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar"> + <item name="android:windowBackground">?android:colorBackground</item> + </style> +</resources> 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..d74aa35 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off --> + <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar"> + <!-- Show a splash screen on the activity. Automatically removed when + Flutter draws its first frame --> + <item name="android:windowBackground">@drawable/launch_background</item> + </style> + <!-- Theme applied to the Android Window as soon as the process has started. + This theme determines the color of the Android Window while your + Flutter UI initializes, as well as behind your Flutter UI while its + running. + + This Theme is only used starting with V2 of Flutter's Android embedding. --> + <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar"> + <item name="android:windowBackground">?android:colorBackground</item> + </style> +</resources> diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..55f3ee3 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="org.benoitharrault.plotter"> + <!-- Flutter needs it to communicate with the running application + to allow setting breakpoints, to provide hot reload, etc. + --> + <uses-permission android:name="android.permission.INTERNET"/> +</manifest> diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..c9e3db0 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,29 @@ +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..bc2d95e --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,5 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true +app.versionName=0.0.1 +app.versionCode=1 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/icons/application.png b/assets/icons/application.png new file mode 100644 index 0000000000000000000000000000000000000000..76722141910214eaac836f25b17cba4bf4b89e39 GIT binary patch literal 7943 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 literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/changelogs/1.txt b/fastlane/metadata/android/en-US/changelogs/1.txt new file mode 100644 index 0000000..777d1a0 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/1.txt @@ -0,0 +1 @@ +Add initial empty app diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt new file mode 100644 index 0000000..9c64328 --- /dev/null +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -0,0 +1 @@ +Stepper plotter helper application diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5ffbd56a352b113e8b4ea1f3f4e26fb612df2cb2 GIT binary patch literal 23892 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 literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt new file mode 100644 index 0000000..9c64328 --- /dev/null +++ b/fastlane/metadata/android/en-US/short_description.txt @@ -0,0 +1 @@ +Stepper plotter helper application diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt new file mode 100644 index 0000000..9c64328 --- /dev/null +++ b/fastlane/metadata/android/en-US/title.txt @@ -0,0 +1 @@ +Stepper plotter helper application diff --git a/fastlane/metadata/android/fr-FR/changelogs/1.txt b/fastlane/metadata/android/fr-FR/changelogs/1.txt new file mode 100644 index 0000000..9246663 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/1.txt @@ -0,0 +1 @@ +Création de l'application minimale, vide. diff --git a/fastlane/metadata/android/fr-FR/full_description.txt b/fastlane/metadata/android/fr-FR/full_description.txt new file mode 100644 index 0000000..5a563b8 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/full_description.txt @@ -0,0 +1 @@ +Application assistante du traceur pas à pas diff --git a/fastlane/metadata/android/fr-FR/short_description.txt b/fastlane/metadata/android/fr-FR/short_description.txt new file mode 100644 index 0000000..5a563b8 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/short_description.txt @@ -0,0 +1 @@ +Application assistante du traceur pas à pas diff --git a/fastlane/metadata/android/fr-FR/title.txt b/fastlane/metadata/android/fr-FR/title.txt new file mode 100644 index 0000000..5a563b8 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/title.txt @@ -0,0 +1 @@ +Application assistante du traceur pas à pas diff --git a/icons/build_application_icons.sh b/icons/build_application_icons.sh new file mode 100755 index 0000000..92aadae --- /dev/null +++ b/icons/build_application_icons.sh @@ -0,0 +1,47 @@ +#! /bin/bash + +# Check dependencies +command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; } +command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; } +command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; } + +CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +BASE_DIR="$(dirname "${CURRENT_DIR}")" + +OPTIPNG_OPTIONS="-preserve -quiet -o7" + +# optimize svg +function optimize_svg() { + SOURCE="$1" + + cp ${SOURCE} ${SOURCE}.tmp + scour \ + --remove-descriptive-elements \ + --enable-id-stripping \ + --enable-viewboxing \ + --enable-comment-stripping \ + --nindent=4 \ + -i ${SOURCE}.tmp \ + -o ${SOURCE} + rm ${SOURCE}.tmp +} + +# build icons +function build_asset_image() { + ICON_SIZE=192 + SOURCE="$1" + TARGET="$2" + + optimize_svg "${SOURCE}" + + inkscape \ + --export-width=${ICON_SIZE} \ + --export-height=${ICON_SIZE} \ + --export-filename=${TARGET} \ + ${SOURCE} + + optipng ${OPTIPNG_OPTIONS} ${TARGET} +} + +# Icons +build_asset_image ${CURRENT_DIR}/icon.svg ${BASE_DIR}/assets/icons/application.png diff --git a/icons/build_repository_icons.sh b/icons/build_repository_icons.sh new file mode 100755 index 0000000..569a16a --- /dev/null +++ b/icons/build_repository_icons.sh @@ -0,0 +1,48 @@ +#! /bin/bash + +# Check dependencies +command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; } +command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; } +command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; } + +CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +BASE_DIR="$(dirname "${CURRENT_DIR}")" + +SOURCE="${CURRENT_DIR}/icon.svg" +OPTIPNG_OPTIONS="-preserve -quiet -o7" + +# optimize svg +cp ${SOURCE} ${SOURCE}.tmp +scour \ + --remove-descriptive-elements \ + --enable-id-stripping \ + --enable-viewboxing \ + --enable-comment-stripping \ + --nindent=4 \ + -i ${SOURCE}.tmp \ + -o ${SOURCE} +rm ${SOURCE}.tmp + +# build icons +function build_icon() { + ICON_SIZE="$1" + TARGET="$2" + + TARGET_PNG="${TARGET}.png" + + inkscape \ + --export-width=${ICON_SIZE} \ + --export-height=${ICON_SIZE} \ + --export-filename=${TARGET_PNG} \ + ${SOURCE} + + optipng ${OPTIPNG_OPTIONS} ${TARGET_PNG} +} + + +build_icon 72 ${BASE_DIR}/android/app/src/main/res/mipmap-hdpi/ic_launcher +build_icon 48 ${BASE_DIR}/android/app/src/main/res/mipmap-mdpi/ic_launcher +build_icon 96 ${BASE_DIR}/android/app/src/main/res/mipmap-xhdpi/ic_launcher +build_icon 144 ${BASE_DIR}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher +build_icon 192 ${BASE_DIR}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher +build_icon 512 ${BASE_DIR}/fastlane/metadata/android/en-US/images/icon diff --git a/icons/icon.svg b/icons/icon.svg new file mode 100644 index 0000000..e0a3729 --- /dev/null +++ b/icons/icon.svg @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" viewBox="0 0 28.747 28.747" xmlns="http://www.w3.org/2000/svg"> + <defs> + <filter id="filter6206-7" x="-.072" y="-.072" width="1.144" height="1.144" color-interpolation-filters="sRGB"> + <feGaussianBlur stdDeviation="0.658125"/> + </filter> + </defs> + <g transform="translate(0 -1093.8)"> + <path transform="matrix(1.0781 0 0 1.0641 -.093733 2.7509)" d="m4.4177 1028.2v1.6051h-1.6052v18.192h1.6052v2.1402h18.192v-2.1402h2.1402v-18.192h-2.1402v-1.6051z" fill="#263238" filter="url(#filter6206-7)" opacity=".2"/> + <rect x="2.9987" y="1096.8" width="22.749" height="22.749" rx="1.1973" ry="1.1974" fill="#607d8b"/> + <g transform="translate(-22.32 1056.5)"> + <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/> + <g transform="matrix(.33601 0 0 .33601 1.5296 73.043)"> + <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/> + </g> + <g transform="matrix(.37187 0 0 .37187 38.802 63.239)"> + <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/> + <g transform="matrix(2.6891 0 0 2.6891 -82.906 -48.45)"> + <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/> + </g> + </g> + </g> + <path d="m4.1958 1096.8c-0.66332 0-1.1979 0.5346-1.1979 1.1979v0.3334c0-0.6634 0.53459-1.1979 1.1979-1.1979h20.354c0.66332 0 1.1979 0.5345 1.1979 1.1979v-0.3334c0-0.6633-0.5346-1.1979-1.1979-1.1979z" fill="#fff" opacity=".2"/> + <rect x="128" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="128" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="128" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="128" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="128" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="213.33" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="213.33" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="213.33" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="213.33" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="213.33" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="298.67" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="298.67" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="298.67" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="298.67" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="298.67" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="170.67" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="170.67" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="170.67" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="170.67" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="170.67" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="256" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="256" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="256" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="256" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="256" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="128" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="213.33" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="298.67" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="170.67" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="256" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="341.33" y="589.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="341.33" y="631.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="341.33" y="717.19" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="341.33" y="546.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="341.33" y="674.52" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="341.33" y="759.85" width="42.667" height="42.667" fill="none" stroke-width="1.0667"/> + <rect x="160" y="578.52" width="192" height="192" fill="none" stroke-width="1.0667"/> + <g transform="matrix(.37344 0 0 .37344 4.7333 1097.4)"> + <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/> + </g> + <g transform="matrix(.36471 0 0 .36471 5.1356 1097.4)"> + <path d="m0 0h51.2v51.2h-51.2z" fill="none" stroke-width="1.0667"/> + </g> + <g transform="matrix(.41585 0 0 .41585 84.325 1055.9)"> + <g transform="matrix(.062269 0 0 .062269 -28.238 185.29)"> + <g transform="matrix(38.618 0 0 38.618 14724 -13542)"> + <g transform="matrix(.71436 0 0 .71436 -400.52 188.34)"> + <path d="m1293.2-120.67c-181.75 0.2763-511.18 0.13525-699.05 0.13998-2.3216 10.413-3.593 21.251-3.593 32.384v114c207.65 0.73695 494.72 0.38136 706.23 0.3733v-114.37c0-11.18-1.2522-22.07-3.593-32.523zm-458.69 295.56c-78.385-4e-3 -158.85 0.17892-243.95 0.55995v138.63c286.34-0.39317 421.73-0.13827 706.23-0.32664v-137.75c-163.2-0.53005-311.22-1.1113-462.28-1.1199z" opacity="0" stroke-width="1.4932"/> + </g> + </g> + </g> + </g> + <path d="m24.549 1119.5c0.66325 0 1.1979-0.5346 1.1979-1.1979v-0.3333c0 0.6632-0.53461 1.1978-1.1979 1.1978h-20.354c-0.66325 0-1.1979-0.5346-1.1979-1.1978v0.3333c0 0.6633 0.53461 1.1979 1.1979 1.1979z" fill="#263238" opacity=".2"/> + </g> + <g transform="matrix(.14457 0 0 .14457 7.1593 7.1448)" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"> + <circle cx="33.5" cy="7.8" r="1.6"/> + <circle cx="20.2" cy="53.9" r="1.6"/> + <path d="m2.2 84.6h-0.2c-0.6-0.1-1-0.7-0.9-1.3l3.9-25.7c0.1-0.5 0.5-0.9 1.1-1 0.5 0 1 0.3 1.2 0.8 1.6 5.9 7 10 13.1 10s11.5-4.1 13.1-10c0.1-0.5 0.6-0.8 1.2-0.8 0.5 0 1 0.4 1.1 1l3.9 25.7c0.1 0.6-0.3 1.2-0.9 1.3s-1.2-0.3-1.3-0.9l-3.3-21.7c-2.8 4.8-7.9 7.8-13.6 7.8s-10.8-3.1-13.6-7.8l-3.7 21.6c-0.1 0.6-0.6 1-1.1 1z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m20.2 61.7c-4.3 0-7.8-3.5-7.8-7.8s3.5-7.8 7.8-7.8 7.8 3.5 7.8 7.8-3.5 7.8-7.8 7.8zm0-13.3c-3.1 0-5.5 2.5-5.5 5.5 0 3.1 2.5 5.5 5.5 5.5 3.1 0 5.5-2.5 5.5-5.5s-2.5-5.5-5.5-5.5z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m33.5 15.6c-4.3 0-7.8-3.5-7.8-7.8s3.5-7.8 7.8-7.8 7.8 3.5 7.8 7.8-3.5 7.8-7.8 7.8zm0-13.3c-3.1 0-5.5 2.5-5.5 5.5 0 3.1 2.5 5.5 5.5 5.5 3.1 0 5.5-2.5 5.5-5.5 0-3.1-2.4-5.5-5.5-5.5z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m64.7 12.6h-19.6c-0.6 0-1.1-0.5-1.1-1.1s0.5-1.1 1.1-1.1h19.6c0.6 0 1.1 0.5 1.1 1.1s-0.5 1.1-1.1 1.1z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m77 2.3h-33.3c-0.6 0-1.1-0.5-1.1-1.1-0.1-0.7 0.4-1.2 1.1-1.2h33.3c0.6 0 1.1 0.5 1.1 1.1 0 0.7-0.5 1.2-1.1 1.2z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m13.5 42.8c-0.3 0-0.5-0.1-0.7-0.3-0.4-0.3-0.5-0.8-0.3-1.2l10.1-26.8c0.2-0.6 0.9-0.9 1.5-0.7s0.9 0.9 0.7 1.5l-9.2 24.3c3.5-1.1 7.4-0.9 10.7 0.5l7.7-20.7c0.2-0.6 0.9-0.9 1.5-0.7s0.9 0.9 0.7 1.5l-8.3 21.8c-0.1 0.3-0.4 0.5-0.7 0.7-0.3 0.1-0.6 0.1-0.9-0.1-3.7-2-8.5-2-12.2 0-0.2 0.1-0.4 0.2-0.6 0.2z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m83.8 21.8c-0.6 0-1.1-0.5-1.1-1.1v-12.8c0-3.1-2.6-5.7-5.7-5.7-0.6 0-1.1-0.5-1.1-1.1s0.5-1.1 1.1-1.1c4.4 0 7.9 3.6 7.9 7.9v12.8c0 0.6-0.5 1.1-1.1 1.1z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m66.7 45.8c-0.4 0-0.7-0.2-1-0.5l-2.2-3.5c-2.4-3.7-2.4-8.3-0.1-12.1l5.6-9.3v-8.9c0-0.6 0.5-1.1 1.1-1.1s1.1 0.5 1.1 1.1v9.2c0 0.2-0.1 0.4-0.2 0.6l-5.8 9.6c-1.8 3-1.8 6.8 0.1 9.7l2.2 3.5c0.3 0.5 0.2 1.2-0.3 1.6 0 0.1-0.3 0.1-0.5 0.1z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m86.7 46.7c-0.2 0-0.4-0.1-0.6-0.2-0.5-0.3-0.7-1-0.3-1.6l2.8-4.4c1.9-3 1.9-6.7 0.1-9.7l-5.8-9.6c-0.3-0.5-0.2-1.2 0.4-1.5 0.5-0.3 1.2-0.2 1.5 0.4l5.8 9.6c2.3 3.8 2.2 8.4-0.1 12.1l-2.8 4.4c-0.2 0.3-0.6 0.5-1 0.5z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m82.9 35h-11.7v-5.8c0-0.8 0.3-1.5 0.9-2.1s1.3-0.9 2.1-0.9h5.8c1.6 0 2.9 1.3 2.9 2.9zm-9.5-2.2h7.2v-3.5c0-0.4-0.3-0.7-0.7-0.7h-5.8c-0.2 0-0.4 0.1-0.5 0.2s-0.2 0.3-0.2 0.5z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m77.1 80.6c-0.4 0-0.8-0.2-1-0.5l-4.8-7.9c-0.1-0.2-0.2-0.4-0.2-0.6l0.1-37.7c0-0.6 0.5-1.1 1.1-1.1h9.4c0.3 0 0.6 0.1 0.8 0.3s0.3 0.5 0.3 0.8l-0.1 37.7c0 0.2-0.1 0.4-0.2 0.6l-4.5 7.8c-0.2 0.4-0.5 0.6-0.9 0.6zm-3.7-9.3 3.7 6 3.5-6v-36.3h-7.2z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m77 71.2c-0.6 0-1.1-0.5-1.1-1.1v-9.9c0-0.6 0.5-1.1 1.1-1.1s1.1 0.5 1.1 1.1v9.9c0 0.6-0.5 1.1-1.1 1.1z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m38.2 100h-36c-0.7 0-1.2-0.5-1.2-1.1v-15.4c0-0.6 0.5-1.1 1.1-1.1h9.4c0.6 0 1.1 0.5 1.1 1.1s-0.5 1.1-1.1 1.1h-8.2v13.1h33.8v-14.2c0-0.6 0.5-1.1 1.1-1.1s1.1 0.5 1.1 1.1v15.4c0 0.6-0.5 1.1-1.1 1.1z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m38.2 84.6h-10.3c-0.6 0-1.1-0.5-1.1-1.1s0.5-1.1 1.1-1.1h10.3c0.6 0 1.1 0.5 1.1 1.1s-0.5 1.1-1.1 1.1z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m59.9 100c-4.7 0-8.4-1.2-11.1-3.6-1.8-1.6-3.2-5-2.3-8.3 0.5-1.8 2.1-4.9 7.5-5.8 8.4-1.4 15.2 2.6 21.2 6.1 0.2 0.1 0.4 0.2 0.5 0.3 5.9 3.5 11.1 6.3 16.7 3.3 3.5-1.9 4.2-5.4 4.2-10.1 0-0.6 0.5-1.1 1.1-1.1s1.1 0.5 1.1 1.1c0 4.7-0.7 9.5-5.4 12.1-6.4 3.5-12 0.7-17.9-2.7-3.8 7.6-11.3 8.7-15.6 8.7zm-2.5-15.7c-1 0-2 0.1-3 0.2-3.1 0.5-5.1 1.9-5.7 4.2-0.7 2.3 0.3 4.9 1.6 6 2.4 2 5.5 3 9.7 3 4.6 0 10.5-1.3 13.8-7.5-5.1-2.9-10.3-5.9-16.4-5.9z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + <path d="m76.8 84.6h-0.1c-0.6-0.1-1.1-0.6-1-1.3 0.1-1.2 0.2-2.5 0.2-3.9 0-0.6 0.5-1.1 1.1-1.1s1.1 0.5 1.1 1.1c0 1.4-0.1 2.8-0.2 4.2 0 0.6-0.5 1-1.1 1z" fill="#fff" stroke="#fff" stroke-linejoin="round" stroke-width="1.003"/> + </g> +</svg> diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..151026b --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,33 @@ +*.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..9367d48 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>App</string> + <key>CFBundleIdentifier</key> + <string>io.flutter.flutter.app</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>App</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>MinimumOSVersion</key> + <string>8.0</string> +</dict> +</plist> 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..0d97589 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,472 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + 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 */; }; + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; + 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; + 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 = "<group>"; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; +/* 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 = "<group>"; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, + ); + sourceTree = "<group>"; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = "<group>"; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + ); + path = Runner; + sourceTree = "<group>"; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 97C146F21CF9000F007C117D /* main.m */, + ); + name = "Supporting Files"; + sourceTree = "<group>"; + }; +/* 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 = 1020; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + 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 = ( + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, + 97C146F31CF9000F007C117D /* main.m 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 = "<group>"; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = "<group>"; + }; +/* 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; + 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 = org.benoitharrault.plotter; + PRODUCT_NAME = "$(TARGET_NAME)"; + 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; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + 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 = org.benoitharrault.plotter; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + 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 = org.benoitharrault.plotter; + PRODUCT_NAME = "$(TARGET_NAME)"; + 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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "self:"> + </FileRef> +</Workspace> 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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IDEDidComputeMac32BitWarning</key> + <true/> +</dict> +</plist> 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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>PreviewsEnabled</key> + <false/> +</dict> +</plist> diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..a28140c --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "1020" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "97C146ED1CF9000F007C117D" + BuildableName = "Runner.app" + BlueprintName = "Runner" + ReferencedContainer = "container:Runner.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "97C146ED1CF9000F007C117D" + BuildableName = "Runner.app" + BlueprintName = "Runner" + ReferencedContainer = "container:Runner.xcodeproj"> + </BuildableReference> + </MacroExpansion> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <BuildableProductRunnable + runnableDebuggingMode = "0"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "97C146ED1CF9000F007C117D" + BuildableName = "Runner.app" + BlueprintName = "Runner" + ReferencedContainer = "container:Runner.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Profile" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + <BuildableProductRunnable + runnableDebuggingMode = "0"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "97C146ED1CF9000F007C117D" + BuildableName = "Runner.app" + BlueprintName = "Runner" + ReferencedContainer = "container:Runner.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> 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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "group:Runner.xcodeproj"> + </FileRef> +</Workspace> 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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IDEDidComputeMac32BitWarning</key> + <true/> +</dict> +</plist> 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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>PreviewsEnabled</key> + <false/> +</dict> +</plist> diff --git a/ios/Runner/AppDelegate.h b/ios/Runner/AppDelegate.h new file mode 100644 index 0000000..36e21bb --- /dev/null +++ b/ios/Runner/AppDelegate.h @@ -0,0 +1,6 @@ +#import <Flutter/Flutter.h> +#import <UIKit/UIKit.h> + +@interface AppDelegate : FlutterAppDelegate + +@end diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m new file mode 100644 index 0000000..70e8393 --- /dev/null +++ b/ios/Runner/AppDelegate.m @@ -0,0 +1,13 @@ +#import "AppDelegate.h" +#import "GeneratedPluginRegistrant.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [GeneratedPluginRegistrant registerWithRegistry:self]; + // Override point for customization after application launch. + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +@end 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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 QlAxuUp00i_>zopr0K8b=b^rhX literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..28c6bf03016f6c994b70f38d1b7346e5831b531f GIT binary patch literal 564 zcmeAS@N?(olHy`uVBq!ia0y~yU=RUe4mJh`hTcwDUIqpR#^NA%Cx&(BWL`2bFuwD2 zaSX8#TsvjAw@jeOvGY5>_q|>h+1u6fBdexi<)tM8-3iJOH-6e{csS^|t`^`h%M4z^ zvrUsp%yCUni-1dr!HteCeu1-6sf(@4&z-gOX8TrnJhnM~hPD2_`!&xEoBNpM46ZP5 z>RM6Fs4Du%wQt&V4?nF#Au;N4dCxlR<XldO9-6?g%eZUVFOxLhq?If5795yX*H)3r zcr-L!Dsz*&v#QSl(?&xbdB=-h`NEg}1Tfsq{4(uywXxqq5w)$a&)ne^j#c_lpTP8G z*_&ovJMIUWi|u_Gk1ED$Xa95SQ_5@D^>EhFOs+Q*8UNIXwA$#oIyO8|+tqV&R#9*$ zUnSd|Hw&5HJe<YZ<N71*xK-Ib1>-|^3yuFWnr2?uxcNuK(*U^*-n;k6AAGamV&=3x zQTjVJM+cmBEL?H-jDy2s*;QO>QThRLANE|lxz@Sy?+%4F#V^}4%*``0mhkR1xTsnd zsl4K{bVpgeu!#g~y%YEC?D&;me>Lr&{KSK$>&ee#llSpUG=!hMOnEB&rtbEo$NBpo ze0#XwfU{CPz~%7UQ+uQ}ChR*S%%W*wac<_u>)Jc^mA`9MySCxd!B^Kd#zy?>WBq3t zA?<j7a@z02UrV#jFFU2SH1ENFaf?TqF86c<HRj3ddVAgxk5KwL|Js^`@zZL)>x*4_ W$LnK$#EXG}fx*+&&t;ucLK6TGg!*^@ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ccbfd967d9697cd4b83225558af2911e9571c9b GIT binary patch literal 1283 zcmeAS@N?(olHy`uVBq!ia0y~yV9)?z4mJh`hMs>rav2y{PI<aGhE&WsI>R?dBvs;g z{d;TUyFpPJ%eF4Kv7n|^zp=ULn1t;EM$XP7lUeld*i<WYMHn1eEM+Rk!LA?E!ztJy zD8yIC>OAGhrAO=?vmAmpT<U+jYxid3dVb^0cemaCn{#@yPnp^KJ?}ry{%?H#%xAl{ z8!DE^W+>R*XMV$8#$?-Y`cDL-1XCS@pJejB8Rvppy6eq7etCUAujg?q<WvaP_dQE4 z{y3yycZjut%lnV#r5Q_NT~$>j6J!e{Uv#AAYb{|~a_aH522J@Q@fi&BOpfuWHHbGp zf5x@0=W&%z;t#%xYZ_i1#tsY?XV=JR1*ru$Xe%q8GYMi`*I43cb15zIa$ef*g)OP` zxn+8uo27Eb>{9r}R#PV@sJksCu`zk^$I#qqi)ZJWE@$GC^4#7iY9ct-)8d8n31bVb zX;lK#VjdrPy!sZ;@og0)Rhw5$KOp&F-NcXuofoDxM?Z25Q1Tbd+xYNCT0eV~Php(s z<cV5Oqt_M$Mm(3`W4LW2^O=pEcVCd0)6OHW!U}d3U4JIHF7H4Q=S9Q*f&ljpaicX$ z!zMRzPZfB&W>r(KmiUp+T6+&?C9dbVk>SLWbgX<w;Owuib8E8IxITQlYSWzjwe_o? zU#jS)hV?5lUU-G>@7~0v#&fvx<GF_OUrTZeT5o(*zs?;a!Ie>}_S)%a@u$R+v$Lgb zcLiOYf4R$3h^y$~8P-z=e?C;X^D^2|@K|_BOOua4qui|r8!K13nyLg|73lx<s9^v3 zvz!;@UdMXwyu6)h+Ey2blZUP~$h(=BrA$6PZRxgW&$lFPoN%IEU%xNr>rZXr*ju;F zgx|erIDfsIxhjhHXMvIP?8enx7P6mu>*fc1c=y;ahGSjp;lGuBcQh{SzH#ApT49dK z`Ang8Y6pT&Jlr#3(Hn0W*>~S9f3}}*)^yfuapkkQmiJL7h52FRWrLWr4F+59@QKX* z&iiA|j)#}$b~)uf+UVL>vE{JpQwhGc<u`8Kl#sa+s53)ilYsTF7rV~0@BgWj-}_+F z>;jIHlKqXlCF80s&R_HEmS6Euygc@5k7ASXhVP2g(|73{u6(F=?yx`%zx0!xh0k=> z@2~H(ejI6YT%e^_^d0ZiKSyPK{bY7bNiOgy*`?Sx*{Rj0zP_&O%zjCcZ5wK1&7b$b zS-4u+Re)>xxmODx+IoKSah(vkF4bmQOJ?4@n*L71#9h^eYmdsG-&9-ce|Um#?yRl} zHz)kP-&6SUG5^IIEML~BMqVrRQjA}+dhu305AQAA`6pzU9W{1E>(0+>-l`ogtQT#4 zv{I4dqgB+-Pp<{^Wvq|eKaP}%{%owt&7)o~)wHF}A<4B|UA%w)kz-Te{&=aQJFhvL zcU`h$Qee7tc-{WP?;gh+O*;8F!nyT<D)aZAC7TcAEpl@>Ed4_zXS=)6n^)GSALu(@ zFj_mOP`4*Na%-LC^ZU2XzIy6y&|qkMNLIl0d(*@(Mjs@LFW7h~w7dO(eCMgX;W}ey z)$1FVT(;b{_T{serM4|X+iVsv?@3bGd0_hizGsX6s!a`EBIo^}j%A+F$3@YdzmBZj z*|cUF%e7fvr+yyrOFrYjRQJK&Nt+6#ztwGP_&n*`Q6J-9SNuJG)iEwe+w485%%@SC z)0^p~ht+}=x9!*b3^nYjoiqK*szo(3n7-R@emEuiR&Q1|0|Nttr>mdKI;Vst04OMA Ap8x;= 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 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 KKbLh*2~7ZftovC2 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cde12118dda48d71e01fcb589a74d069c5d7cb5 GIT binary patch literal 1025 zcmeAS@N?(olHy`uVBq!ia0y~yV2}l24mJh`hOo)${0t1tCp=voLn`KMo$i|v6Do4N z{`<b~Ml(xh`LD=b>FK#DR4OpQeBF{oZd^@ytAg%E#Qb2~b^X?|T}6qm0$PzPyj`7G zy_Gu?Tvy63oEqf4uq)x$(ur!5kEj^Gzq`Ntx7tjVxiiC8v%gDvxBLB{bJyoo%T4N0 zVODtQ=;^K!J27NZ$iBu<udg*~FCT{NPxs`yB%kkH^y~kVxl@EEL=|Y%PVng3d}#8q z<uOzJJgdYHcvLY+uqG)m@JPD6bPRpZxu$Va^MN0sr8bOC2?so^*lbvKh};Sgs%$+h z%z0c-{RwkH(}6=il6kTD6)&fCJPV0F<;TF?Bk39J5G@vA`r&eC%fk5NqHDVarDk-x z#vd$NV4viCPRBKQ>KQ4|sNM5<Z%F-|(6+L@mi2H#y-Rk8FvrT>|D|4BlJT3qaC^dy z`Al<PiMy#~=q4m2sI}#?9&Y^C@l7N{dP<V>i+Wy`_(SF_GH?1bcJn2~W`yzIR&v&n zHwq7(^p$5v+Sf3x^?C*FF4e(q*QF|>HkSQxN`4T-liuBTV8bK*O%EQdEA!sxwmOn= z?UScxwmjbZIdxYN+ghe~{*9XrWo&{UU72!%^|WrmE}d^*TJBs<%zjqs`ZenD!Q0Wg z)z!{jsrNI}RyWA{w*5T9?C;-wPVEGH0LQ{N4|eXGuy?QG!nJd+n?Brnto>zY-v1XL z^bO0mMaTI!UQYe^r=s(u>x)yB0SOPXB<H>3tXO586LHe?cEZ!6=k?X@+|Imt;Z5WD zy7))8PqyglPMaOg!<eMimcFg+%}dVdtM<*i@^<glqlSk1ah8#fj-)uHpW86uz%GZJ zw`Vq2PrkAD=<^FRj+H0h?MwOaQ24{w`J9WV3-2mw+thra!*cfH?eczx7q&g<onjPw zjQ4gzN^Pp$O<AJ~_apM$N(OAR^An%#UT;yE(la-|=fm|kN{yx}>(U-fn|rcqYiLo; zi<r*s=eT9%pIz!-&S{>jtaq;Xd#<$P&F$UmocfM*F7Q)L-FK^}@kZzL?dBhoKEIE# zDxCIWncWkao!4w0KVN51@IfQ|xfjc|2d{o4sfadyjXc04r0&GMzV4H7e%%jVlkmGw zj<WvBzklLH_U;>ZE<P&GxmID5uF}h7ebPdivmo=ww_2NX?D2nmX7ukdOgxZNIPZ5^ z&a=hh@6uz7I}T1L(l)+SsQgm!fyQ-9UMtRQp6;h9NB3=Q+b^CRHOpyHfoAp9%MTXU zxm(RSx3th|dD^5SsnY$cpWR!?W#DoBcVyz#M|0+{2w$IlV#1PuNwNR-ePFXu%k;VA q^R|5R?a8lx23>mWT{!KG{qOgR*SIgbw=gg;FnGH9xvX<aXaWFyM)8~g 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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 V&a^duV_;xl@O1TaS?83{1OVHl_EP`= literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..dcdc2306c28505ebc0b6c3a359c4d252bf626b9f GIT binary patch literal 1920 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ccbfd967d9697cd4b83225558af2911e9571c9b GIT binary patch literal 1283 zcmeAS@N?(olHy`uVBq!ia0y~yV9)?z4mJh`hMs>rav2y{PI<aGhE&WsI>R?dBvs;g z{d;TUyFpPJ%eF4Kv7n|^zp=ULn1t;EM$XP7lUeld*i<WYMHn1eEM+Rk!LA?E!ztJy zD8yIC>OAGhrAO=?vmAmpT<U+jYxid3dVb^0cemaCn{#@yPnp^KJ?}ry{%?H#%xAl{ z8!DE^W+>R*XMV$8#$?-Y`cDL-1XCS@pJejB8Rvppy6eq7etCUAujg?q<WvaP_dQE4 z{y3yycZjut%lnV#r5Q_NT~$>j6J!e{Uv#AAYb{|~a_aH522J@Q@fi&BOpfuWHHbGp zf5x@0=W&%z;t#%xYZ_i1#tsY?XV=JR1*ru$Xe%q8GYMi`*I43cb15zIa$ef*g)OP` zxn+8uo27Eb>{9r}R#PV@sJksCu`zk^$I#qqi)ZJWE@$GC^4#7iY9ct-)8d8n31bVb zX;lK#VjdrPy!sZ;@og0)Rhw5$KOp&F-NcXuofoDxM?Z25Q1Tbd+xYNCT0eV~Php(s z<cV5Oqt_M$Mm(3`W4LW2^O=pEcVCd0)6OHW!U}d3U4JIHF7H4Q=S9Q*f&ljpaicX$ z!zMRzPZfB&W>r(KmiUp+T6+&?C9dbVk>SLWbgX<w;Owuib8E8IxITQlYSWzjwe_o? zU#jS)hV?5lUU-G>@7~0v#&fvx<GF_OUrTZeT5o(*zs?;a!Ie>}_S)%a@u$R+v$Lgb zcLiOYf4R$3h^y$~8P-z=e?C;X^D^2|@K|_BOOua4qui|r8!K13nyLg|73lx<s9^v3 zvz!;@UdMXwyu6)h+Ey2blZUP~$h(=BrA$6PZRxgW&$lFPoN%IEU%xNr>rZXr*ju;F zgx|erIDfsIxhjhHXMvIP?8enx7P6mu>*fc1c=y;ahGSjp;lGuBcQh{SzH#ApT49dK z`Ang8Y6pT&Jlr#3(Hn0W*>~S9f3}}*)^yfuapkkQmiJL7h52FRWrLWr4F+59@QKX* z&iiA|j)#}$b~)uf+UVL>vE{JpQwhGc<u`8Kl#sa+s53)ilYsTF7rV~0@BgWj-}_+F z>;jIHlKqXlCF80s&R_HEmS6Euygc@5k7ASXhVP2g(|73{u6(F=?yx`%zx0!xh0k=> z@2~H(ejI6YT%e^_^d0ZiKSyPK{bY7bNiOgy*`?Sx*{Rj0zP_&O%zjCcZ5wK1&7b$b zS-4u+Re)>xxmODx+IoKSah(vkF4bmQOJ?4@n*L71#9h^eYmdsG-&9-ce|Um#?yRl} zHz)kP-&6SUG5^IIEML~BMqVrRQjA}+dhu305AQAA`6pzU9W{1E>(0+>-l`ogtQT#4 zv{I4dqgB+-Pp<{^Wvq|eKaP}%{%owt&7)o~)wHF}A<4B|UA%w)kz-Te{&=aQJFhvL zcU`h$Qee7tc-{WP?;gh+O*;8F!nyT<D)aZAC7TcAEpl@>Ed4_zXS=)6n^)GSALu(@ zFj_mOP`4*Na%-LC^ZU2XzIy6y&|qkMNLIl0d(*@(Mjs@LFW7h~w7dO(eCMgX;W}ey z)$1FVT(;b{_T{serM4|X+iVsv?@3bGd0_hizGsX6s!a`EBIo^}j%A+F$3@YdzmBZj z*|cUF%e7fvr+yyrOFrYjRQJK&Nt+6#ztwGP_&n*`Q6J-9SNuJG)iEwe+w485%%@SC z)0^p~ht+}=x9!*b3^nYjoiqK*szo(3n7-R@emEuiR&Q1|0|Nttr>mdKI;Vst04OMA Ap8x;= 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 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 OVDNPHb6Mw<&;$VbO<Vi` 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 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 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 zcmeAS@N?(olHy`uVBq!ia0y~yV5k6L4mJh`2Fnz)OAHKL2A(dCAr-gY&du%-2^BlO zI*p-s-RjQH{Mh)9qCNdH7Pz&(QPMHcSnyfsipH@SGgdqhX4<rCMTQ6q+Xca|&AV31 z-w~C)VzJ=xgAU2w7ajfvKg=|E`YTJyzlO-3U%PAj?=s)-2A99?+5XP+-^#SMcdvHt z|2Mz*-QKxczS_nN4(`0l?$^(|Ey{DybvIqS&*g91E0?!no345uf1-V*>WbGD-xb9H zQ`Z&hNjwf%bYk`nfv*x-##+2ur+Rr-F>jS9J?W4vCvt;J=~sottEiCZiRM|0e!ZA@ zB1lWKZq1#GeX}~PF4+ES+$AROzceq^@m|KX=9P=~BplehuJ8|2sQirCp0W#$3kR$( zQrG)>GWemtLHXv0ZmX&3k3`p;v(v4Z({yX$0XM!~lXuSCpt+l|_~6{rb9Gi9v)=UJ z?jM2h>81Jw)3vT2TjytdVfE=EqwwPC7sZW2K8x%&c=2(k;@RnzJ3hziFHzbzL0&fG z@zJGEGh_CKo)cyMRLbnPFk<7f;DvYZD7A7KW)<<jDmhl9@O@wClH_1TxAMIc^Cxs4 zTpJdwnAmJMJ95G*&B8^@fwvX*$4uK{Bi_ao$D_FX2Wu(E<5T5ljVI5VrTa6+#`=2b z<~hB$9?f!5=gKkX^VR?N)Rs}R_usADh=dsncT`xvYPhpULcZtOKj%e3MxAYIBWG;X zWH#TL{@@rx$!B-T6@L|Yx%V67++bXuopwQM-^nP}pSt^94w$~=(En}5{W$89!P~zk zJ|6>vUw(YGZOh+Zo6XV_`V(6Ng>KwB+RdYvy-w(1g87|~7C(-}Ud{ctnlHXQDO>8@ zKNDu#n-^Z$S|44%V!zOV#git@s@&ntd54!T=8@5U*9U$FuJ7l5SQflvndqzeUP(HP zHrAYXi|u#l9z3|VS4{8xr+AhR-kX@;O`rC(be(j8Fyo(%XTF*zo-1AcBHtvcM|Jjl z^=mux4pehKc&Ac&`k?joE~&hO1{p@@YTvfDOt`e^?VW2kEVjpIoZ1;=74CN+@lfyX z;-$=M=4cx}c=5n#%|kE78Tl(jVooxsmk26LHXOcVA+Yk97h}ZLm`+CZjMMs+4WVbJ zN)$Ai^F3h)=}LGS)5*B{se32mYF+zIM(yWbJQ2A+J$WK5!;=nV{R~VxkagNW=|GmC zGnBRJ8B7Jp$kn~f5KR{E&ZWNB=ka8>cz3#gTG0l3?U2GdpOW{hPdB@@=XT5a?=vn4 zPT2OwbYboEnbrA+nEQ4Y-+cdFO6<(NIgRy?KCizqqwOSPM~q+Qm))8XpL!GH1<r0_ zVL!9~f2v{GJG(yy6JCc;^p?HKTA;a9D&+67Eq@<IZq?QH?^1j0Znv_(KKI7CuEoWb zI~@1fUkX@vXV%%dw}oU4cKgWh{2;!Q;l>f(KI=yYqK__b;w^8!Q^4$h@yO9)YZ>w1 zoHx1e)Vg_`%k7lQd*Cb988UzWgxbQq)ql?Mrp`(!n((~DV(zNxjbB5Gg`eHIAZB%g zp}KU_@-1_G=M_80uF@&llxSV4G2yjK!)+n^9Sif!KKRLTrRbki4UgFWcruTVm&Tn7 z+qv6crRbk~dnO{_>a3=T`Co5!^Ew`i6%5|7kXi59lOWTb*Oc#^d~xe>{QJhu_ujMy zp4F^Q)$}~q%d_G3$>MH{o#)th99O)v`Ql!d51HA2TXneZoL~@tz3!&Ssna1R8fTw6 zX#3gMoppl!2fp$-3I)onF+4_@ZE9P8J&s|!?th|iF4s}94bn!8)xXvMS(ZDT5L*5; zg7MjO)6VSOn_5e6tuFrCptGnrnRQ0{o4Pmc#d{sZuI}8(eC9wDqvdv)6H3<R(;5;r z3e1<CYO|I&vB)~y;y|5cxxs{Nm4bBv4L2W5s{TJUxR{-Pr+C)wAdB<92fNm`eJE&U zIP>aL-;`EOW7hiW#n;1k*gUy>{o8?^uX!T=?!A2Yd*q|~{3wY7)`q5&ty|>YZ?2ws zF5^{Ou^EHRrUcnD6;DE|XQf4nMNC`D&^~q1N!~dpt-fx|{?qF7ps$Ai!Hf3j1xbIJ z7xcz6UG2Vpv%$4pCuXwizO^sapV-{_?y$Rt@x@jD!yPZrH<=Y$UI{oM#=4fFon_~3 zb@k^D?6$~lsXybqW3|KjTDGekhu1$;bUt^MYlFgs;)4Hod2Y?9cHF;;@yo2`0lj7k zOjRtcF}emRiuy0#o5tQQh!%LqoZnpbQs=^Q9mc<}MEjaKAIx%l^~5IS-btmaDT(=~ zCKem<|9q=>Aoc>wt=8=gabG!J1kZP2*I(W+UytEUTMp;5l!f`LjYHIL7ZhrhT-o!# zx$GX#h2wYme?4)1@!+V)2QR(?#V0ksd19wd9=b1~{XXS%Ta6FriFA`v%Yx^7m~PFS z>?q&7veJfW-WP)x;dYF_wk(~oOf!Km$MA&G)fCOV-0k-2&mY|TZj_<k&sckfcR~L? z<}VwI9p>-2P`H72`$m<R@?Go1mZ*6b7oW0u;-r4NAbMr7{~nPoo7XeEW%4<n{I2Ac ze&)KIiq+q_x7Y9L+dp~fuDxrjxk}Gu+ZNn&YpFipy<l#E;fv?j8_RCya+FP+-1T~% zE3aJ6%46E+CM@0USh7!TcEJ6-1CE>jF^fLG)?oM0F@0Y2|2@jP76kIeOw2N3yrZt3 z!o4d<a>t8r=?=56FetC9KInPa)hb0_t7Ma?^$C^&eGiG83E!9c?nt>O)w1VK*_`-< z@8+#t+$l^y%75LMBvy2)Kq1_eh0StVx8hxv0(NPB&AB;ZjW)IwCj|3NH%-n{Z}{*2 z|04S&w-CR+g4GjemdY~P#FrgVohwt}+qY(SnvT4B!|_v5&5K)PK87h<UkqXT5pZQa zR}sU6<>F>>eQP#6C|lHb#p6Nq|4Z>Hii{W6t39^axv8#{<L=htdkvD`1E={)aVI@h zx$-c`Z(q*8*9&|L_pMue)#TUeS8l%#FZPXK3%9+<b9d#M%QdX=_3P6MO0PJsn6FuB zY&c=%)Ju`VcDMHlTh-lRm9=MCtZQF-Xjy)_L-;9<O=6q!CEq*A9%JBN?0(HRUC}Y| z<kixY;=9Jl-m*R=7Fp`08)llEP)YrqeX>#GM)t4GZ*I3*O*2}Xpto+xaqG!1l1|?F z&2WCo`op3t1XrA&e68T*1-}6H`gW@so35DJS%~*9@;{-L7^mah`tZ*0?{)7=9n*NP z+kW9}liGiSJ$cK7^avx16Z)Db4jqU+eB-P4SyzV1RWY4XeO2y`eYSVZcJ&2rjNc*i zgo|sI$eXlxtf9Vr@^=nP80TsnoY!!iIY7Vo?yQx^%rE85Jezk-fO#70b>5kF`|g`Q z56bIX7Ob{$g~Z|_#n*FYpS<^RI#)?b!uEx$ei*I#DSF4|r+&&-maXm9h4N3fuMDYZ zzxAByc5l^`)!U~=2^`#SU}wj<RpP6Ar&XfXgJ!l<{gU!2m-jK2Mj5g>I$n!i(C={9 zXL(4qi2nJF{9ENpwO?h(ty!;GIU#su;=1{BJ7)D&aeY;^xW6+j_WOZ%s@4^6SGZmI jx+3^a<YjN=uj(tlh;5st^+1$?fq}u()z4*}Q$iB}hAk5^ 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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 U*#tT>FfcH9y85}Sb4q9e0QKHA1^@s6 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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 O7(8A5T-G@yGywok=Zg*i literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6a84f41e14e27f4b11f16f9ee39279ac98f8d5ac GIT binary patch literal 3294 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0e1f58536026aebc4f1f70e481f6993c9ff088d GIT binary patch literal 3612 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q* 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!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q* 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!ia0y~yU|<Ac4i*LmhOII@ObiSR+@3CuAr*6yf1PJwU}9%v Vnk8dc$iTqB;OXk;vd$@?2>@r242}Q* 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 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> + </dependencies> + <scenes> + <!--View Controller--> + <scene sceneID="EHf-IW-A2E"> + <objects> + <viewController id="01J-lp-oVM" sceneMemberID="viewController"> + <layoutGuides> + <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/> + <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/> + </layoutGuides> + <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4"> + </imageView> + </subviews> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + <constraints> + <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/> + <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/> + </constraints> + </view> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="53" y="375"/> + </scene> + </scenes> + <resources> + <image name="LaunchImage" width="168" height="185"/> + </resources> +</document> 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 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/> + </dependencies> + <scenes> + <!--Flutter View Controller--> + <scene sceneID="tne-QT-ifu"> + <objects> + <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController"> + <layoutGuides> + <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> + <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> + </layoutGuides> + <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> + <rect key="frame" x="0.0" y="0.0" width="600" height="600"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + </view> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> + </objects> + </scene> + </scenes> +</document> diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..57796a6 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>$(DEVELOPMENT_LANGUAGE)</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>plotter</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>$(FLUTTER_BUILD_NAME)</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>$(FLUTTER_BUILD_NUMBER)</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UILaunchStoryboardName</key> + <string>LaunchScreen</string> + <key>UIMainStoryboardFile</key> + <string>Main</string> + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UISupportedInterfaceOrientations~ipad</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UIViewControllerBasedStatusBarAppearance</key> + <false/> +</dict> +</plist> diff --git a/ios/Runner/main.m b/ios/Runner/main.m new file mode 100644 index 0000000..dff6597 --- /dev/null +++ b/ios/Runner/main.m @@ -0,0 +1,9 @@ +#import <Flutter/Flutter.h> +#import <UIKit/UIKit.h> +#import "AppDelegate.h" + +int main(int argc, char* argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..dd1afff --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +import 'provider/data.dart'; +import 'screens/home.dart'; + +void main() { + WidgetsFlutterBinding.ensureInitialized(); + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]) + .then((value) => runApp(MyApp())); +} + +class MyApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + return ChangeNotifierProvider( + create: (BuildContext context) => Data(), + child: Consumer<Data>(builder: (context, data, child) { + return MaterialApp( + debugShowCheckedModeBanner: false, + theme: ThemeData( + primaryColor: Colors.blue, + visualDensity: VisualDensity.adaptivePlatformDensity, + ), + home: Home(), + routes: { + Home.id: (context) => Home(), + }, + ); + }), + ); + } +} diff --git a/lib/provider/data.dart b/lib/provider/data.dart new file mode 100644 index 0000000..26ba515 --- /dev/null +++ b/lib/provider/data.dart @@ -0,0 +1,5 @@ +import 'package:flutter/foundation.dart'; + +class Data extends ChangeNotifier { + +} diff --git a/lib/screens/home.dart b/lib/screens/home.dart new file mode 100644 index 0000000..fb41b31 --- /dev/null +++ b/lib/screens/home.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../provider/data.dart'; + +class Home extends StatelessWidget { + static const String id = 'home'; + + @override + Widget build(BuildContext context) { + Data myProvider = Provider.of<Data>(context); + + return Scaffold( + appBar: AppBar( + title: new Text('Stepper plotter assistant'), + + actions: [ + ], + + leading: IconButton( + icon: Image.asset('assets/icons/application.png'), + onPressed: () { }, + ), + ), + body: SafeArea( + child: Center( + child: Text('🤖') + ), + ) + ); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..b6eca0d --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,161 @@ +# 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.7.0" + 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.1.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" + 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_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + provider: + dependency: "direct main" + description: + name: provider + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.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.1" + 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.0" +sdks: + dart: ">=2.12.0 <3.0.0" + flutter: ">=1.16.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..8180345 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,21 @@ +name: plotter +description: A plotter helper application. +publish_to: 'none' +version: 1.0.0+1 + +environment: + sdk: ">=2.7.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + provider: ^5.0.0 + +dev_dependencies: + flutter_test: + sdk: flutter + +flutter: + uses-material-design: true + assets: + - assets/icons/ diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..edc6abb --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,14 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:plotter/main.dart'; + +void main() { +} -- GitLab