diff --git a/README.md b/README.md index ff8a7ca98bc0b619cdc7f335c25afe8acd8cbf18..709b9a666cfc59a5f4ccaff60cd16599a714e1e6 100644 --- a/README.md +++ b/README.md @@ -41,5 +41,10 @@ This project requires the use of MongoDB. To use the application, a MongoDB Atla 11. You have now created a database deployment, but you will still have to configure the connection to the database. ### Database connection -1. To create a connection with the database, - \ No newline at end of file +1. To create a connection with the database, locate your newly created database deployment and press "Connect" + + + +2. Select "Drivers" + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 29a3a5017f048d6d8e6a450eef64435ddee44fb7..0000000000000000000000000000000000000000 --- a/app/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ -migrate_working_dir/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.pub-cache/ -.pub/ -/build/ - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release diff --git a/app/analysis_options.yaml b/app/analysis_options.yaml deleted file mode 100644 index 0d2902135caece481a035652d88970c80e29cc7e..0000000000000000000000000000000000000000 --- a/app/analysis_options.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at https://dart.dev/lints. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/app/android/.gitignore b/app/android/.gitignore deleted file mode 100644 index 6f568019d3c69d4966bb5a0f759980a1472afc1e..0000000000000000000000000000000000000000 --- a/app/android/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -gradle-wrapper.jar -/.gradle -/captures/ -/gradlew -/gradlew.bat -/local.properties -GeneratedPluginRegistrant.java - -# Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app -key.properties -**/*.keystore -**/*.jks diff --git a/app/android/app/build.gradle b/app/android/app/build.gradle deleted file mode 100644 index ab812b73c85ce04058f3d730c6ef21803b9b0bd9..0000000000000000000000000000000000000000 --- a/app/android/app/build.gradle +++ /dev/null @@ -1,67 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace "com.example.ice_map" - compileSdkVersion flutter.compileSdkVersion - ndkVersion flutter.ndkVersion - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = '1.8' - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.ice_map" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies {} diff --git a/app/android/app/src/debug/AndroidManifest.xml b/app/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 399f6981d5d35475eb18e6068ae67cdd7c731978..0000000000000000000000000000000000000000 --- a/app/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android"> - <!-- The INTERNET permission is required for development. Specifically, - the Flutter tool 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/app/android/app/src/main/AndroidManifest.xml b/app/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index fe0332d5902adb6acd6929a35575b9591fb89926..0000000000000000000000000000000000000000 --- a/app/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,33 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android"> - <application - android:label="ice_map" - android:name="${applicationName}" - android:icon="@mipmap/ic_launcher"> - <activity - android:name=".MainActivity" - android:exported="true" - 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" - /> - <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/app/android/app/src/main/kotlin/com/example/ice_map/MainActivity.kt b/app/android/app/src/main/kotlin/com/example/ice_map/MainActivity.kt deleted file mode 100644 index 19b10d6e8042ac113a24a9a48b6891c2975d389d..0000000000000000000000000000000000000000 --- a/app/android/app/src/main/kotlin/com/example/ice_map/MainActivity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.example.ice_map - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() { -} diff --git a/app/android/app/src/main/res/drawable-v21/launch_background.xml b/app/android/app/src/main/res/drawable-v21/launch_background.xml deleted file mode 100644 index f74085f3f6a2b995f8ad1f9ff7b2c46dc118a9e0..0000000000000000000000000000000000000000 --- a/app/android/app/src/main/res/drawable-v21/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?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/app/android/app/src/main/res/drawable/launch_background.xml b/app/android/app/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 304732f8842013497e14bd02f67a55f2614fb8f7..0000000000000000000000000000000000000000 --- a/app/android/app/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?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/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db77bb4b7b0906d62b1847e87f15cdcacf6a4f29..0000000000000000000000000000000000000000 Binary files a/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..0000000000000000000000000000000000000000 Binary files a/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 09d4391482be68e9e4a07fab769b5de337d16eb1..0000000000000000000000000000000000000000 Binary files a/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..0000000000000000000000000000000000000000 Binary files a/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4d6372eebdb28e45604e46eeda8dd24651419bc0..0000000000000000000000000000000000000000 Binary files a/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/app/android/app/src/main/res/values-night/styles.xml b/app/android/app/src/main/res/values-night/styles.xml deleted file mode 100644 index 06952be745f9fa6fa75196e830d9578eb2ee631d..0000000000000000000000000000000000000000 --- a/app/android/app/src/main/res/values-night/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?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 - the Flutter engine 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/app/android/app/src/main/res/values/styles.xml b/app/android/app/src/main/res/values/styles.xml deleted file mode 100644 index cb1ef88056edd1caf99a935e434e7ff6943a0ef6..0000000000000000000000000000000000000000 --- a/app/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?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 - the Flutter engine 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/app/android/app/src/profile/AndroidManifest.xml b/app/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index 399f6981d5d35475eb18e6068ae67cdd7c731978..0000000000000000000000000000000000000000 --- a/app/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android"> - <!-- The INTERNET permission is required for development. Specifically, - the Flutter tool 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/app/android/build.gradle b/app/android/build.gradle deleted file mode 100644 index e83fb5daca3e3c5cb366428e16d6ddbd33f81997..0000000000000000000000000000000000000000 --- a/app/android/build.gradle +++ /dev/null @@ -1,30 +0,0 @@ -buildscript { - ext.kotlin_version = '1.7.10' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/app/android/gradle.properties b/app/android/gradle.properties deleted file mode 100644 index 598d13fee446372f156ecc38527b54c7cdcc8e3b..0000000000000000000000000000000000000000 --- a/app/android/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -org.gradle.jvmargs=-Xmx4G -android.useAndroidX=true -android.enableJetifier=true diff --git a/app/android/gradle/wrapper/gradle-wrapper.properties b/app/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 3c472b99c6f3501ff93513bcdf39dabe4f236a55..0000000000000000000000000000000000000000 --- a/app/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip diff --git a/app/android/settings.gradle b/app/android/settings.gradle deleted file mode 100644 index 7cd7128551bb8e1c5cdf8bdade409ae795e3aef9..0000000000000000000000000000000000000000 --- a/app/android/settings.gradle +++ /dev/null @@ -1,29 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - } - settings.ext.flutterSdkPath = flutterSdkPath() - - includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } - - plugins { - id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false -} - -include ":app" diff --git a/app/assets/images/2.0x/flutter_logo.png b/app/assets/images/2.0x/flutter_logo.png deleted file mode 100644 index b65164de707ffeaf0adfca5fca65532bf97e6903..0000000000000000000000000000000000000000 Binary files a/app/assets/images/2.0x/flutter_logo.png and /dev/null differ diff --git a/app/assets/images/3.0x/flutter_logo.png b/app/assets/images/3.0x/flutter_logo.png deleted file mode 100644 index 97e5dc9af6e1093966c5cd42d608fd6fbb6a0c59..0000000000000000000000000000000000000000 Binary files a/app/assets/images/3.0x/flutter_logo.png and /dev/null differ diff --git a/app/assets/images/flutter_logo.png b/app/assets/images/flutter_logo.png deleted file mode 100644 index b5c6ca710c937527ca8d2d344214243d6db33832..0000000000000000000000000000000000000000 Binary files a/app/assets/images/flutter_logo.png and /dev/null differ diff --git a/app/ios/.gitignore b/app/ios/.gitignore deleted file mode 100644 index 7a7f9873ad7dceb4dc17087fb06c800fa0191376..0000000000000000000000000000000000000000 --- a/app/ios/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -**/dgph -*.mode1v3 -*.mode2v3 -*.moved-aside -*.pbxuser -*.perspectivev3 -**/*sync/ -.sconsign.dblite -.tags* -**/.vagrant/ -**/DerivedData/ -Icon? -**/Pods/ -**/.symlinks/ -profile -xcuserdata -**/.generated/ -Flutter/App.framework -Flutter/Flutter.framework -Flutter/Flutter.podspec -Flutter/Generated.xcconfig -Flutter/ephemeral/ -Flutter/app.flx -Flutter/app.zip -Flutter/flutter_assets/ -Flutter/flutter_export_environment.sh -ServiceDefinitions.json -Runner/GeneratedPluginRegistrant.* - -# Exceptions to above rules. -!default.mode1v3 -!default.mode2v3 -!default.pbxuser -!default.perspectivev3 diff --git a/app/ios/Flutter/AppFrameworkInfo.plist b/app/ios/Flutter/AppFrameworkInfo.plist deleted file mode 100644 index 7c56964006274498b0edaa77763cdd72c6d42b6a..0000000000000000000000000000000000000000 --- a/app/ios/Flutter/AppFrameworkInfo.plist +++ /dev/null @@ -1,26 +0,0 @@ -<?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>12.0</string> -</dict> -</plist> diff --git a/app/ios/Flutter/Debug.xcconfig b/app/ios/Flutter/Debug.xcconfig deleted file mode 100644 index 592ceee85b89bd111b779db6116b130509ab6d4b..0000000000000000000000000000000000000000 --- a/app/ios/Flutter/Debug.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "Generated.xcconfig" diff --git a/app/ios/Flutter/Release.xcconfig b/app/ios/Flutter/Release.xcconfig deleted file mode 100644 index 592ceee85b89bd111b779db6116b130509ab6d4b..0000000000000000000000000000000000000000 --- a/app/ios/Flutter/Release.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "Generated.xcconfig" diff --git a/app/ios/Runner.xcodeproj/project.pbxproj b/app/ios/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 5809cb0e73e3c0d0d3e1d623f6bf9d6f6466c792..0000000000000000000000000000000000000000 --- a/app/ios/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,614 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 97C146E61CF9000F007C117D /* Project object */; - proxyType = 1; - remoteGlobalIDString = 97C146ED1CF9000F007C117D; - remoteInfo = Runner; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9705A1C41CF9048500538489 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<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>"; }; - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; 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; }; - 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>"; }; - 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; }; - 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 9740EEB11CF90186004384FC /* Flutter */ = { - isa = PBXGroup; - children = ( - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 9740EEB31CF90195004384FC /* Generated.xcconfig */, - ); - name = Flutter; - sourceTree = "<group>"; - }; - 331C8082294A63A400263BE5 /* RunnerTests */ = { - isa = PBXGroup; - children = ( - 331C807B294A618700263BE5 /* RunnerTests.swift */, - ); - path = RunnerTests; - sourceTree = "<group>"; - }; - 97C146E51CF9000F007C117D = { - isa = PBXGroup; - children = ( - 9740EEB11CF90186004384FC /* Flutter */, - 97C146F01CF9000F007C117D /* Runner */, - 97C146EF1CF9000F007C117D /* Products */, - 331C8082294A63A400263BE5 /* RunnerTests */, - ); - sourceTree = "<group>"; - }; - 97C146EF1CF9000F007C117D /* Products */ = { - isa = PBXGroup; - children = ( - 97C146EE1CF9000F007C117D /* Runner.app */, - 331C8081294A63A400263BE5 /* RunnerTests.xctest */, - ); - name = Products; - sourceTree = "<group>"; - }; - 97C146F01CF9000F007C117D /* Runner */ = { - isa = PBXGroup; - children = ( - 97C146FA1CF9000F007C117D /* Main.storyboard */, - 97C146FD1CF9000F007C117D /* Assets.xcassets */, - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, - 97C147021CF9000F007C117D /* Info.plist */, - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, - ); - path = Runner; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 331C8080294A63A400263BE5 /* RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; - buildPhases = ( - 331C807D294A63A400263BE5 /* Sources */, - 331C807E294A63A400263BE5 /* Frameworks */, - 331C807F294A63A400263BE5 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 331C8086294A63A400263BE5 /* PBXTargetDependency */, - ); - name = RunnerTests; - productName = RunnerTests; - productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 97C146ED1CF9000F007C117D /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - 9740EEB61CF901F6004384FC /* Run Script */, - 97C146EA1CF9000F007C117D /* Sources */, - 97C146EB1CF9000F007C117D /* Frameworks */, - 97C146EC1CF9000F007C117D /* Resources */, - 9705A1C41CF9048500538489 /* Embed Frameworks */, - 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Runner; - productName = Runner; - productReference = 97C146EE1CF9000F007C117D /* Runner.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97C146E61CF9000F007C117D /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 331C8080294A63A400263BE5 = { - CreatedOnToolsVersion = 14.0; - TestTargetID = 97C146ED1CF9000F007C117D; - }; - 97C146ED1CF9000F007C117D = { - CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 1100; - }; - }; - }; - buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 97C146E51CF9000F007C117D; - productRefGroup = 97C146EF1CF9000F007C117D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 97C146ED1CF9000F007C117D /* Runner */, - 331C8080294A63A400263BE5 /* RunnerTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 331C807F294A63A400263BE5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97C146EC1CF9000F007C117D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; - }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 331C807D294A63A400263BE5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97C146EA1CF9000F007C117D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 97C146ED1CF9000F007C117D /* Runner */; - targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 97C146FA1CF9000F007C117D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C146FB1CF9000F007C117D /* Base */, - ); - name = Main.storyboard; - sourceTree = "<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 = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Profile; - }; - 249021D4217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Profile; - }; - 331C8088294A63A400263BE5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Debug; - }; - 331C8089294A63A400263BE5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Release; - }; - 331C808A294A63A400263BE5 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Profile; - }; - 97C147031CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.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 = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97C147061CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 97C147071CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 331C8088294A63A400263BE5 /* Debug */, - 331C8089294A63A400263BE5 /* Release */, - 331C808A294A63A400263BE5 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147031CF9000F007C117D /* Debug */, - 97C147041CF9000F007C117D /* Release */, - 249021D3217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147061CF9000F007C117D /* Debug */, - 97C147071CF9000F007C117D /* Release */, - 249021D4217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 97C146E61CF9000F007C117D /* Project object */; -} diff --git a/app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6254f0e9651f402737811be6634a03e9c..0000000000000000000000000000000000000000 --- a/app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Workspace - version = "1.0"> - <FileRef - location = "self:"> - </FileRef> -</Workspace> diff --git a/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d68d0546c4804ac2ff47dd97c6e7921..0000000000000000000000000000000000000000 --- a/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ -<?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/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c5ea15f194be85eb6ee8e6721a87ff4644..0000000000000000000000000000000000000000 --- a/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ -<?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/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index 87131a09bea5deaa0b3f084a9f03b5d2e4422b84..0000000000000000000000000000000000000000 --- a/app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1430" - 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"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "97C146ED1CF9000F007C117D" - BuildableName = "Runner.app" - BlueprintName = "Runner" - ReferencedContainer = "container:Runner.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <Testables> - <TestableReference - skipped = "NO" - parallelizable = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "331C8080294A63A400263BE5" - BuildableName = "RunnerTests.xctest" - BlueprintName = "RunnerTests" - ReferencedContainer = "container:Runner.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - </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> - </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/app/ios/Runner.xcworkspace/contents.xcworkspacedata b/app/ios/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 1d526a16ed0f1cd0c2409d848bf489b93fefa3b2..0000000000000000000000000000000000000000 --- a/app/ios/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Workspace - version = "1.0"> - <FileRef - location = "group:Runner.xcodeproj"> - </FileRef> -</Workspace> diff --git a/app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d68d0546c4804ac2ff47dd97c6e7921..0000000000000000000000000000000000000000 --- a/app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ -<?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/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c5ea15f194be85eb6ee8e6721a87ff4644..0000000000000000000000000000000000000000 --- a/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ -<?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/app/ios/Runner/AppDelegate.swift b/app/ios/Runner/AppDelegate.swift deleted file mode 100644 index 70693e4a8c128fc4350b157416374ca599ac8c7b..0000000000000000000000000000000000000000 --- a/app/ios/Runner/AppDelegate.swift +++ /dev/null @@ -1,13 +0,0 @@ -import UIKit -import Flutter - -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } -} diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d36b1fab2d9dea668a4f83df94d525897d9e68dd..0000000000000000000000000000000000000000 --- a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "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/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index dc9ada4725e9b0ddb1deab583e5b5102493aa332..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png deleted file mode 100644 index 7353c41ecf9ca08017312dc233d9830079b50717..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 797d452e458972bab9d994556c8305db4c827017..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index 6ed2d933e1120817fe9182483a228007b18ab6ae..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 4cd7b0099ca80c806f8fe495613e8d6c69460d76..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index fe730945a01f64a61e2235dbe3f45b08f7729182..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png deleted file mode 100644 index 321773cd857a8a0f0c9c7d3dc3f5ff4fb298dc10..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png deleted file mode 100644 index 797d452e458972bab9d994556c8305db4c827017..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index 502f463a9bc882b461c96aadf492d1729e49e725..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index 0ec303439225b78712f49115768196d8d76f6790..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 0ec303439225b78712f49115768196d8d76f6790..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index e9f5fea27c705180eb716271f41b582e76dcbd90..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index 84ac32ae7d989f82d5e46a60405adcc8279e8001..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png deleted file mode 100644 index 8953cba09064923c5daf2d37e7c3c836ccdd794b..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index 0467bf12aa4d28f374bb26596605a46dcbb3e7c8..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json deleted file mode 100644 index 0bedcf2fd46788ae3a01a423467513ff59b5c120..0000000000000000000000000000000000000000 --- a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "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/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png deleted file mode 100644 index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png deleted file mode 100644 index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png deleted file mode 100644 index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..0000000000000000000000000000000000000000 Binary files a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and /dev/null differ diff --git a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md deleted file mode 100644 index 89c2725b70f1882be97f5214fafe22d27a0ec01e..0000000000000000000000000000000000000000 --- a/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 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/app/ios/Runner/Base.lproj/LaunchScreen.storyboard b/app/ios/Runner/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f2e259c7c9390ff69a6bbe1e0907e6dc366848e7..0000000000000000000000000000000000000000 --- a/app/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,37 +0,0 @@ -<?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/app/ios/Runner/Base.lproj/Main.storyboard b/app/ios/Runner/Base.lproj/Main.storyboard deleted file mode 100644 index f3c28516fb38e64d88cfcf5fb1791175df078f2f..0000000000000000000000000000000000000000 --- a/app/ios/Runner/Base.lproj/Main.storyboard +++ /dev/null @@ -1,26 +0,0 @@ -<?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/app/ios/Runner/Info.plist b/app/ios/Runner/Info.plist deleted file mode 100644 index 516710da288918cd14843d2744f5a972733dbf44..0000000000000000000000000000000000000000 --- a/app/ios/Runner/Info.plist +++ /dev/null @@ -1,49 +0,0 @@ -<?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>CFBundleDisplayName</key> - <string>Ice Map</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>ice_map</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>CADisableMinimumFrameDurationOnPhone</key> - <true/> - <key>UIApplicationSupportsIndirectInputEvents</key> - <true/> -</dict> -</plist> diff --git a/app/ios/Runner/Runner-Bridging-Header.h b/app/ios/Runner/Runner-Bridging-Header.h deleted file mode 100644 index 308a2a560b42f17aaf3c36e4e9c8cd07182fbb7e..0000000000000000000000000000000000000000 --- a/app/ios/Runner/Runner-Bridging-Header.h +++ /dev/null @@ -1 +0,0 @@ -#import "GeneratedPluginRegistrant.h" diff --git a/app/ios/RunnerTests/RunnerTests.swift b/app/ios/RunnerTests/RunnerTests.swift deleted file mode 100644 index 86a7c3b1b6119f7dbdb8cec74f1b5b3e076bf949..0000000000000000000000000000000000000000 --- a/app/ios/RunnerTests/RunnerTests.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Flutter -import UIKit -import XCTest - -class RunnerTests: XCTestCase { - - func testExample() { - // If you add code to the Runner application, consider adding tests here. - // See https://developer.apple.com/documentation/xctest for more information about using XCTest. - } - -} diff --git a/app/l10n.yaml b/app/l10n.yaml deleted file mode 100644 index d480072c25d065f7b795edefac821177697544b1..0000000000000000000000000000000000000000 --- a/app/l10n.yaml +++ /dev/null @@ -1,3 +0,0 @@ -arb-dir: lib/src/localization -template-arb-file: app_en.arb -output-localization-file: app_localizations.dart diff --git a/app/lib/main.dart b/app/lib/main.dart deleted file mode 100644 index eb568f22bf2f01792e0fb65d32d08ffdaf6fc860..0000000000000000000000000000000000000000 --- a/app/lib/main.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:flutter/material.dart'; - -import 'src/app.dart'; -import 'src/settings/settings_controller.dart'; -import 'src/settings/settings_service.dart'; - -void main() async { - // Set up the SettingsController, which will glue user settings to multiple - // Flutter Widgets. - final settingsController = SettingsController(SettingsService()); - - // Load the user's preferred theme while the splash screen is displayed. - // This prevents a sudden theme change when the app is first displayed. - await settingsController.loadSettings(); - - // Run the app and pass in the SettingsController. The app listens to the - // SettingsController for changes, then passes it further down to the - // SettingsView. - runApp(MyApp(settingsController: settingsController)); -} diff --git a/app/lib/src/app.dart b/app/lib/src/app.dart deleted file mode 100644 index 7ba2c2f39dd4665e030926660053399c76f1adf5..0000000000000000000000000000000000000000 --- a/app/lib/src/app.dart +++ /dev/null @@ -1,85 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; - -import 'sample_feature/sample_item_details_view.dart'; -import 'sample_feature/sample_item_list_view.dart'; -import 'settings/settings_controller.dart'; -import 'settings/settings_view.dart'; - -/// The Widget that configures your application. -class MyApp extends StatelessWidget { - const MyApp({ - super.key, - required this.settingsController, - }); - - final SettingsController settingsController; - - @override - Widget build(BuildContext context) { - // Glue the SettingsController to the MaterialApp. - // - // The ListenableBuilder Widget listens to the SettingsController for changes. - // Whenever the user updates their settings, the MaterialApp is rebuilt. - return ListenableBuilder( - listenable: settingsController, - builder: (BuildContext context, Widget? child) { - return MaterialApp( - // Providing a restorationScopeId allows the Navigator built by the - // MaterialApp to restore the navigation stack when a user leaves and - // returns to the app after it has been killed while running in the - // background. - restorationScopeId: 'app', - - // Provide the generated AppLocalizations to the MaterialApp. This - // allows descendant Widgets to display the correct translations - // depending on the user's locale. - localizationsDelegates: const [ - AppLocalizations.delegate, - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - ], - supportedLocales: const [ - Locale('en', ''), // English, no country code - ], - - // Use AppLocalizations to configure the correct application title - // depending on the user's locale. - // - // The appTitle is defined in .arb files found in the localization - // directory. - onGenerateTitle: (BuildContext context) => - AppLocalizations.of(context)!.appTitle, - - // Define a light and dark color theme. Then, read the user's - // preferred ThemeMode (light, dark, or system default) from the - // SettingsController to display the correct theme. - theme: ThemeData(), - darkTheme: ThemeData.dark(), - themeMode: settingsController.themeMode, - - // Define a function to handle named routes in order to support - // Flutter web url navigation and deep linking. - onGenerateRoute: (RouteSettings routeSettings) { - return MaterialPageRoute<void>( - settings: routeSettings, - builder: (BuildContext context) { - switch (routeSettings.name) { - case SettingsView.routeName: - return SettingsView(controller: settingsController); - case SampleItemDetailsView.routeName: - return const SampleItemDetailsView(); - case SampleItemListView.routeName: - default: - return const SampleItemListView(); - } - }, - ); - }, - ); - }, - ); - } -} diff --git a/app/lib/src/localization/app_en.arb b/app/lib/src/localization/app_en.arb deleted file mode 100644 index 30654bb16b6305245351f09f02708b5b35cada68..0000000000000000000000000000000000000000 --- a/app/lib/src/localization/app_en.arb +++ /dev/null @@ -1,6 +0,0 @@ -{ - "appTitle": "ice_map", - "@appTitle": { - "description": "The title of the application" - } -} diff --git a/app/lib/src/sample_feature/sample_item.dart b/app/lib/src/sample_feature/sample_item.dart deleted file mode 100644 index b376e0daaca0e666e4dece710bac193d3f11d733..0000000000000000000000000000000000000000 --- a/app/lib/src/sample_feature/sample_item.dart +++ /dev/null @@ -1,6 +0,0 @@ -/// A placeholder class that represents an entity or model. -class SampleItem { - const SampleItem(this.id); - - final int id; -} diff --git a/app/lib/src/sample_feature/sample_item_details_view.dart b/app/lib/src/sample_feature/sample_item_details_view.dart deleted file mode 100644 index 37df4a8a4628dd37ac09727aa7499bc7b6c5bfab..0000000000000000000000000000000000000000 --- a/app/lib/src/sample_feature/sample_item_details_view.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:flutter/material.dart'; - -/// Displays detailed information about a SampleItem. -class SampleItemDetailsView extends StatelessWidget { - const SampleItemDetailsView({super.key}); - - static const routeName = '/sample_item'; - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text('Item Details'), - ), - body: const Center( - child: Text('More Information Here'), - ), - ); - } -} diff --git a/app/lib/src/sample_feature/sample_item_list_view.dart b/app/lib/src/sample_feature/sample_item_list_view.dart deleted file mode 100644 index 78066e934bcd8a08ad90e2a45a354278ab55aca6..0000000000000000000000000000000000000000 --- a/app/lib/src/sample_feature/sample_item_list_view.dart +++ /dev/null @@ -1,71 +0,0 @@ -import 'package:flutter/material.dart'; - -import '../settings/settings_view.dart'; -import 'sample_item.dart'; -import 'sample_item_details_view.dart'; - -/// Displays a list of SampleItems. -class SampleItemListView extends StatelessWidget { - const SampleItemListView({ - super.key, - this.items = const [SampleItem(1), SampleItem(2), SampleItem(3)], - }); - - static const routeName = '/'; - - final List<SampleItem> items; - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text('Sample Items'), - actions: [ - IconButton( - icon: const Icon(Icons.settings), - onPressed: () { - // Navigate to the settings page. If the user leaves and returns - // to the app after it has been killed while running in the - // background, the navigation stack is restored. - Navigator.restorablePushNamed(context, SettingsView.routeName); - }, - ), - ], - ), - - // To work with lists that may contain a large number of items, it’s best - // to use the ListView.builder constructor. - // - // In contrast to the default ListView constructor, which requires - // building all Widgets up front, the ListView.builder constructor lazily - // builds Widgets as they’re scrolled into view. - body: ListView.builder( - // Providing a restorationId allows the ListView to restore the - // scroll position when a user leaves and returns to the app after it - // has been killed while running in the background. - restorationId: 'sampleItemListView', - itemCount: items.length, - itemBuilder: (BuildContext context, int index) { - final item = items[index]; - - return ListTile( - title: Text('SampleItem ${item.id}'), - leading: const CircleAvatar( - // Display the Flutter Logo image asset. - foregroundImage: AssetImage('assets/images/flutter_logo.png'), - ), - onTap: () { - // Navigate to the details page. If the user leaves and returns to - // the app after it has been killed while running in the - // background, the navigation stack is restored. - Navigator.restorablePushNamed( - context, - SampleItemDetailsView.routeName, - ); - } - ); - }, - ), - ); - } -} diff --git a/app/lib/src/settings/settings_controller.dart b/app/lib/src/settings/settings_controller.dart deleted file mode 100644 index e32c0dfb756f47aebf7851668a51943b43d12cbc..0000000000000000000000000000000000000000 --- a/app/lib/src/settings/settings_controller.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:flutter/material.dart'; - -import 'settings_service.dart'; - -/// A class that many Widgets can interact with to read user settings, update -/// user settings, or listen to user settings changes. -/// -/// Controllers glue Data Services to Flutter Widgets. The SettingsController -/// uses the SettingsService to store and retrieve user settings. -class SettingsController with ChangeNotifier { - SettingsController(this._settingsService); - - // Make SettingsService a private variable so it is not used directly. - final SettingsService _settingsService; - - // Make ThemeMode a private variable so it is not updated directly without - // also persisting the changes with the SettingsService. - late ThemeMode _themeMode; - - // Allow Widgets to read the user's preferred ThemeMode. - ThemeMode get themeMode => _themeMode; - - /// Load the user's settings from the SettingsService. It may load from a - /// local database or the internet. The controller only knows it can load the - /// settings from the service. - Future<void> loadSettings() async { - _themeMode = await _settingsService.themeMode(); - - // Important! Inform listeners a change has occurred. - notifyListeners(); - } - - /// Update and persist the ThemeMode based on the user's selection. - Future<void> updateThemeMode(ThemeMode? newThemeMode) async { - if (newThemeMode == null) return; - - // Do not perform any work if new and old ThemeMode are identical - if (newThemeMode == _themeMode) return; - - // Otherwise, store the new ThemeMode in memory - _themeMode = newThemeMode; - - // Important! Inform listeners a change has occurred. - notifyListeners(); - - // Persist the changes to a local database or the internet using the - // SettingService. - await _settingsService.updateThemeMode(newThemeMode); - } -} diff --git a/app/lib/src/settings/settings_service.dart b/app/lib/src/settings/settings_service.dart deleted file mode 100644 index 6f94dc33b1ea81c0a96e626f0f8d9789a2162207..0000000000000000000000000000000000000000 --- a/app/lib/src/settings/settings_service.dart +++ /dev/null @@ -1,17 +0,0 @@ -import 'package:flutter/material.dart'; - -/// A service that stores and retrieves user settings. -/// -/// By default, this class does not persist user settings. If you'd like to -/// persist the user settings locally, use the shared_preferences package. If -/// you'd like to store settings on a web server, use the http package. -class SettingsService { - /// Loads the User's preferred ThemeMode from local or remote storage. - Future<ThemeMode> themeMode() async => ThemeMode.system; - - /// Persists the user's preferred ThemeMode to local or remote storage. - Future<void> updateThemeMode(ThemeMode theme) async { - // Use the shared_preferences package to persist settings locally or the - // http package to persist settings over the network. - } -} diff --git a/app/lib/src/settings/settings_view.dart b/app/lib/src/settings/settings_view.dart deleted file mode 100644 index 7aae64450ae3b0f41a80cace607a9a26d68db490..0000000000000000000000000000000000000000 --- a/app/lib/src/settings/settings_view.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:flutter/material.dart'; - -import 'settings_controller.dart'; - -/// Displays the various settings that can be customized by the user. -/// -/// When a user changes a setting, the SettingsController is updated and -/// Widgets that listen to the SettingsController are rebuilt. -class SettingsView extends StatelessWidget { - const SettingsView({super.key, required this.controller}); - - static const routeName = '/settings'; - - final SettingsController controller; - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text('Settings'), - ), - body: Padding( - padding: const EdgeInsets.all(16), - // Glue the SettingsController to the theme selection DropdownButton. - // - // When a user selects a theme from the dropdown list, the - // SettingsController is updated, which rebuilds the MaterialApp. - child: DropdownButton<ThemeMode>( - // Read the selected themeMode from the controller - value: controller.themeMode, - // Call the updateThemeMode method any time the user selects a theme. - onChanged: controller.updateThemeMode, - items: const [ - DropdownMenuItem( - value: ThemeMode.system, - child: Text('System Theme'), - ), - DropdownMenuItem( - value: ThemeMode.light, - child: Text('Light Theme'), - ), - DropdownMenuItem( - value: ThemeMode.dark, - child: Text('Dark Theme'), - ) - ], - ), - ), - ); - } -} diff --git a/app/linux/.gitignore b/app/linux/.gitignore deleted file mode 100644 index d3896c98444fbe7288d434169a28c532258a4466..0000000000000000000000000000000000000000 --- a/app/linux/.gitignore +++ /dev/null @@ -1 +0,0 @@ -flutter/ephemeral diff --git a/app/linux/CMakeLists.txt b/app/linux/CMakeLists.txt deleted file mode 100644 index c6b04385faf4d51f31a1568b9619e13e4389135e..0000000000000000000000000000000000000000 --- a/app/linux/CMakeLists.txt +++ /dev/null @@ -1,145 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.10) -project(runner LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "ice_map") -# The unique GTK application identifier for this application. See: -# https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "com.example.ice_map") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0063 NEW) - -# Load bundled libraries from the lib/ directory relative to the binary. -set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") - -# Root filesystem for cross-building. -if(FLUTTER_TARGET_PLATFORM_SYSROOT) - set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -endif() - -# Define build configuration options. -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") -endif() - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_14) - target_compile_options(${TARGET} PRIVATE -Wall -Werror) - target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>") - target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) - -add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") - -# Define the application target. To change its name, change BINARY_NAME above, -# not the value here, or `flutter run` will no longer work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} - "main.cc" - "my_application.cc" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add dependency libraries. Add any application-specific dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter) -target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) - -# Only the install-generated bundle's copy of the executable will launch -# correctly, since the resources must in the right relative locations. To avoid -# people trying to run the unbundled copy, put it in a subdirectory instead of -# the default top-level location. -set_target_properties(${BINARY_NAME} - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" -) - - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# By default, "installing" just makes a relocatable bundle in the build -# directory. -set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -# Start with a clean build bundle directory every time. -install(CODE " - file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") - " COMPONENT Runtime) - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) - install(FILES "${bundled_library}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endforeach(bundled_library) - -# Copy the native assets provided by the build.dart from all packages. -set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") -install(DIRECTORY "${NATIVE_ASSETS_DIR}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") - install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() diff --git a/app/linux/flutter/CMakeLists.txt b/app/linux/flutter/CMakeLists.txt deleted file mode 100644 index d5bd01648a96d50136b2a97c8bb9aa5b711f6c39..0000000000000000000000000000000000000000 --- a/app/linux/flutter/CMakeLists.txt +++ /dev/null @@ -1,88 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.10) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. - -# Serves the same purpose as list(TRANSFORM ... PREPEND ...), -# which isn't available in 3.10. -function(list_prepend LIST_NAME PREFIX) - set(NEW_LIST "") - foreach(element ${${LIST_NAME}}) - list(APPEND NEW_LIST "${PREFIX}${element}") - endforeach(element) - set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) -endfunction() - -# === Flutter Library === -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) -pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) -pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) - -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "fl_basic_message_channel.h" - "fl_binary_codec.h" - "fl_binary_messenger.h" - "fl_dart_project.h" - "fl_engine.h" - "fl_json_message_codec.h" - "fl_json_method_codec.h" - "fl_message_codec.h" - "fl_method_call.h" - "fl_method_channel.h" - "fl_method_codec.h" - "fl_method_response.h" - "fl_plugin_registrar.h" - "fl_plugin_registry.h" - "fl_standard_message_codec.h" - "fl_standard_method_codec.h" - "fl_string_codec.h" - "fl_value.h" - "fl_view.h" - "flutter_linux.h" -) -list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") -target_link_libraries(flutter INTERFACE - PkgConfig::GTK - PkgConfig::GLIB - PkgConfig::GIO -) -add_dependencies(flutter flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CMAKE_CURRENT_BINARY_DIR}/_phony_ - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" - ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} -) diff --git a/app/linux/flutter/generated_plugin_registrant.cc b/app/linux/flutter/generated_plugin_registrant.cc deleted file mode 100644 index e71a16d23d05881b554326e645083799ab9bfc5e..0000000000000000000000000000000000000000 --- a/app/linux/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,11 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - - -void fl_register_plugins(FlPluginRegistry* registry) { -} diff --git a/app/linux/flutter/generated_plugin_registrant.h b/app/linux/flutter/generated_plugin_registrant.h deleted file mode 100644 index e0f0a47bc08f30b550b47b01de4c9206b6824dd9..0000000000000000000000000000000000000000 --- a/app/linux/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include <flutter_linux/flutter_linux.h> - -// Registers Flutter plugins. -void fl_register_plugins(FlPluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/app/linux/flutter/generated_plugins.cmake b/app/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7eb61e17463f7406106f6c413533cecf..0000000000000000000000000000000000000000 --- a/app/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/app/linux/main.cc b/app/linux/main.cc deleted file mode 100644 index e7c5c54370372a4cdde7288a32733998d87bd767..0000000000000000000000000000000000000000 --- a/app/linux/main.cc +++ /dev/null @@ -1,6 +0,0 @@ -#include "my_application.h" - -int main(int argc, char** argv) { - g_autoptr(MyApplication) app = my_application_new(); - return g_application_run(G_APPLICATION(app), argc, argv); -} diff --git a/app/linux/my_application.cc b/app/linux/my_application.cc deleted file mode 100644 index 92b3b04f23ff0f0cf070ce4f22ee615b9b8499b8..0000000000000000000000000000000000000000 --- a/app/linux/my_application.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include "my_application.h" - -#include <flutter_linux/flutter_linux.h> -#ifdef GDK_WINDOWING_X11 -#include <gdk/gdkx.h> -#endif - -#include "flutter/generated_plugin_registrant.h" - -struct _MyApplication { - GtkApplication parent_instance; - char** dart_entrypoint_arguments; -}; - -G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) - -// Implements GApplication::activate. -static void my_application_activate(GApplication* application) { - MyApplication* self = MY_APPLICATION(application); - GtkWindow* window = - GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); - - // Use a header bar when running in GNOME as this is the common style used - // by applications and is the setup most users will be using (e.g. Ubuntu - // desktop). - // If running on X and not using GNOME then just use a traditional title bar - // in case the window manager does more exotic layout, e.g. tiling. - // If running on Wayland assume the header bar will work (may need changing - // if future cases occur). - gboolean use_header_bar = TRUE; -#ifdef GDK_WINDOWING_X11 - GdkScreen* screen = gtk_window_get_screen(window); - if (GDK_IS_X11_SCREEN(screen)) { - const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); - if (g_strcmp0(wm_name, "GNOME Shell") != 0) { - use_header_bar = FALSE; - } - } -#endif - if (use_header_bar) { - GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "ice_map"); - gtk_header_bar_set_show_close_button(header_bar, TRUE); - gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); - } else { - gtk_window_set_title(window, "ice_map"); - } - - gtk_window_set_default_size(window, 1280, 720); - gtk_widget_show(GTK_WIDGET(window)); - - g_autoptr(FlDartProject) project = fl_dart_project_new(); - fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); - - FlView* view = fl_view_new(project); - gtk_widget_show(GTK_WIDGET(view)); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); - - fl_register_plugins(FL_PLUGIN_REGISTRY(view)); - - gtk_widget_grab_focus(GTK_WIDGET(view)); -} - -// Implements GApplication::local_command_line. -static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { - MyApplication* self = MY_APPLICATION(application); - // Strip out the first argument as it is the binary name. - self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); - - g_autoptr(GError) error = nullptr; - if (!g_application_register(application, nullptr, &error)) { - g_warning("Failed to register: %s", error->message); - *exit_status = 1; - return TRUE; - } - - g_application_activate(application); - *exit_status = 0; - - return TRUE; -} - -// Implements GObject::dispose. -static void my_application_dispose(GObject* object) { - MyApplication* self = MY_APPLICATION(object); - g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); - G_OBJECT_CLASS(my_application_parent_class)->dispose(object); -} - -static void my_application_class_init(MyApplicationClass* klass) { - G_APPLICATION_CLASS(klass)->activate = my_application_activate; - G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; - G_OBJECT_CLASS(klass)->dispose = my_application_dispose; -} - -static void my_application_init(MyApplication* self) {} - -MyApplication* my_application_new() { - return MY_APPLICATION(g_object_new(my_application_get_type(), - "application-id", APPLICATION_ID, - "flags", G_APPLICATION_NON_UNIQUE, - nullptr)); -} diff --git a/app/linux/my_application.h b/app/linux/my_application.h deleted file mode 100644 index 72271d5e41701cfbffad74d38640bf9cc7c1f7be..0000000000000000000000000000000000000000 --- a/app/linux/my_application.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLUTTER_MY_APPLICATION_H_ -#define FLUTTER_MY_APPLICATION_H_ - -#include <gtk/gtk.h> - -G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, - GtkApplication) - -/** - * my_application_new: - * - * Creates a new Flutter-based application. - * - * Returns: a new #MyApplication. - */ -MyApplication* my_application_new(); - -#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/app/macos/.gitignore b/app/macos/.gitignore deleted file mode 100644 index 746adbb6b9e14b7e685c91e280a4d37a672afbd8..0000000000000000000000000000000000000000 --- a/app/macos/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Flutter-related -**/Flutter/ephemeral/ -**/Pods/ - -# Xcode-related -**/dgph -**/xcuserdata/ diff --git a/app/macos/Flutter/Flutter-Debug.xcconfig b/app/macos/Flutter/Flutter-Debug.xcconfig deleted file mode 100644 index c2efd0b608ba84712fb3e1d01122468a50c7fba1..0000000000000000000000000000000000000000 --- a/app/macos/Flutter/Flutter-Debug.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/app/macos/Flutter/Flutter-Release.xcconfig b/app/macos/Flutter/Flutter-Release.xcconfig deleted file mode 100644 index c2efd0b608ba84712fb3e1d01122468a50c7fba1..0000000000000000000000000000000000000000 --- a/app/macos/Flutter/Flutter-Release.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/app/macos/Flutter/GeneratedPluginRegistrant.swift b/app/macos/Flutter/GeneratedPluginRegistrant.swift deleted file mode 100644 index cccf817a52206e8a8eef501faed292993ff21a31..0000000000000000000000000000000000000000 --- a/app/macos/Flutter/GeneratedPluginRegistrant.swift +++ /dev/null @@ -1,10 +0,0 @@ -// -// Generated file. Do not edit. -// - -import FlutterMacOS -import Foundation - - -func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { -} diff --git a/app/macos/Runner.xcodeproj/project.pbxproj b/app/macos/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 7685616ad983b0270e96e8da11809128c2f9784c..0000000000000000000000000000000000000000 --- a/app/macos/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,695 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXAggregateTarget section */ - 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; - buildPhases = ( - 33CC111E2044C6BF0003C045 /* ShellScript */, - ); - dependencies = ( - ); - name = "Flutter Assemble"; - productName = FLX; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC10EC2044A3C60003C045; - remoteInfo = Runner; - }; - 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC111A2044C6BA0003C045; - remoteInfo = FLX; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 33CC110E2044A8840003C045 /* Bundle Framework */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Bundle Framework"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; }; - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; }; - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; }; - 33CC10ED2044A3C60003C045 /* ice_map.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ice_map.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; - 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; }; - 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; }; - 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; }; - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; }; - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; }; - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; }; - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; }; - 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; }; - 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; }; - 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 331C80D2294CF70F00263BE5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10EA2044A3C60003C045 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 331C80D6294CF71000263BE5 /* RunnerTests */ = { - isa = PBXGroup; - children = ( - 331C80D7294CF71000263BE5 /* RunnerTests.swift */, - ); - path = RunnerTests; - sourceTree = "<group>"; - }; - 33BA886A226E78AF003329D5 /* Configs */ = { - isa = PBXGroup; - children = ( - 33E5194F232828860026EE4D /* AppInfo.xcconfig */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, - ); - path = Configs; - sourceTree = "<group>"; - }; - 33CC10E42044A3C60003C045 = { - isa = PBXGroup; - children = ( - 33FAB671232836740065AC1E /* Runner */, - 33CEB47122A05771004F2AC0 /* Flutter */, - 331C80D6294CF71000263BE5 /* RunnerTests */, - 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - ); - sourceTree = "<group>"; - }; - 33CC10EE2044A3C60003C045 /* Products */ = { - isa = PBXGroup; - children = ( - 33CC10ED2044A3C60003C045 /* ice_map.app */, - 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, - ); - name = Products; - sourceTree = "<group>"; - }; - 33CC11242044D66E0003C045 /* Resources */ = { - isa = PBXGroup; - children = ( - 33CC10F22044A3C60003C045 /* Assets.xcassets */, - 33CC10F42044A3C60003C045 /* MainMenu.xib */, - 33CC10F72044A3C60003C045 /* Info.plist */, - ); - name = Resources; - path = ..; - sourceTree = "<group>"; - }; - 33CEB47122A05771004F2AC0 /* Flutter */ = { - isa = PBXGroup; - children = ( - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, - ); - path = Flutter; - sourceTree = "<group>"; - }; - 33FAB671232836740065AC1E /* Runner */ = { - isa = PBXGroup; - children = ( - 33CC10F02044A3C60003C045 /* AppDelegate.swift */, - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, - 33E51913231747F40026EE4D /* DebugProfile.entitlements */, - 33E51914231749380026EE4D /* Release.entitlements */, - 33CC11242044D66E0003C045 /* Resources */, - 33BA886A226E78AF003329D5 /* Configs */, - ); - path = Runner; - sourceTree = "<group>"; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 331C80D4294CF70F00263BE5 /* RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; - buildPhases = ( - 331C80D1294CF70F00263BE5 /* Sources */, - 331C80D2294CF70F00263BE5 /* Frameworks */, - 331C80D3294CF70F00263BE5 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 331C80DA294CF71000263BE5 /* PBXTargetDependency */, - ); - name = RunnerTests; - productName = RunnerTests; - productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 33CC10EC2044A3C60003C045 /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - 33CC10E92044A3C60003C045 /* Sources */, - 33CC10EA2044A3C60003C045 /* Frameworks */, - 33CC10EB2044A3C60003C045 /* Resources */, - 33CC110E2044A8840003C045 /* Bundle Framework */, - 3399D490228B24CF009A79C7 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - 33CC11202044C79F0003C045 /* PBXTargetDependency */, - ); - name = Runner; - productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* ice_map.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 33CC10E52044A3C60003C045 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1430; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 331C80D4294CF70F00263BE5 = { - CreatedOnToolsVersion = 14.0; - TestTargetID = 33CC10EC2044A3C60003C045; - }; - 33CC10EC2044A3C60003C045 = { - CreatedOnToolsVersion = 9.2; - LastSwiftMigration = 1100; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.Sandbox = { - enabled = 1; - }; - }; - }; - 33CC111A2044C6BA0003C045 = { - CreatedOnToolsVersion = 9.2; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 33CC10E42044A3C60003C045; - productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 33CC10EC2044A3C60003C045 /* Runner */, - 331C80D4294CF70F00263BE5 /* RunnerTests */, - 33CC111A2044C6BA0003C045 /* Flutter Assemble */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 331C80D3294CF70F00263BE5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10EB2044A3C60003C045 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3399D490228B24CF009A79C7 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; - }; - 33CC111E2044C6BF0003C045 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - Flutter/ephemeral/FlutterInputs.xcfilelist, - ); - inputPaths = ( - Flutter/ephemeral/tripwire, - ); - outputFileListPaths = ( - Flutter/ephemeral/FlutterOutputs.xcfilelist, - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 331C80D1294CF70F00263BE5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10E92044A3C60003C045 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC10EC2044A3C60003C045 /* Runner */; - targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; - }; - 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; - targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 33CC10F52044A3C60003C045 /* Base */, - ); - name = MainMenu.xib; - path = Runner; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 331C80DB294CF71000263BE5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ice_map.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ice_map"; - }; - name = Debug; - }; - 331C80DC294CF71000263BE5 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ice_map.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ice_map"; - }; - name = Release; - }; - 331C80DD294CF71000263BE5 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ice_map.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ice_map"; - }; - name = Profile; - }; - 338D0CE9231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Profile; - }; - 338D0CEA231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Profile; - }; - 338D0CEB231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Profile; - }; - 33CC10F92044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 33CC10FA2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Release; - }; - 33CC10FC2044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 33CC10FD2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 33CC111C2044C6BA0003C045 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 33CC111D2044C6BA0003C045 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 331C80DB294CF71000263BE5 /* Debug */, - 331C80DC294CF71000263BE5 /* Release */, - 331C80DD294CF71000263BE5 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10F92044A3C60003C045 /* Debug */, - 33CC10FA2044A3C60003C045 /* Release */, - 338D0CE9231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10FC2044A3C60003C045 /* Debug */, - 33CC10FD2044A3C60003C045 /* Release */, - 338D0CEA231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC111C2044C6BA0003C045 /* Debug */, - 33CC111D2044C6BA0003C045 /* Release */, - 338D0CEB231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 33CC10E52044A3C60003C045 /* Project object */; -} diff --git a/app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d68d0546c4804ac2ff47dd97c6e7921..0000000000000000000000000000000000000000 --- a/app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ -<?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/app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index d81907c5bc3d16feb59df642c947facec8ecf5ec..0000000000000000000000000000000000000000 --- a/app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1430" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "33CC10EC2044A3C60003C045" - BuildableName = "ice_map.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"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "33CC10EC2044A3C60003C045" - BuildableName = "ice_map.app" - BlueprintName = "Runner" - ReferencedContainer = "container:Runner.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <Testables> - <TestableReference - skipped = "NO" - parallelizable = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "331C80D4294CF70F00263BE5" - BuildableName = "RunnerTests.xctest" - BlueprintName = "RunnerTests" - ReferencedContainer = "container:Runner.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - </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 = "33CC10EC2044A3C60003C045" - BuildableName = "ice_map.app" - BlueprintName = "Runner" - ReferencedContainer = "container:Runner.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </LaunchAction> - <ProfileAction - buildConfiguration = "Profile" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "33CC10EC2044A3C60003C045" - BuildableName = "ice_map.app" - BlueprintName = "Runner" - ReferencedContainer = "container:Runner.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/app/macos/Runner.xcworkspace/contents.xcworkspacedata b/app/macos/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 1d526a16ed0f1cd0c2409d848bf489b93fefa3b2..0000000000000000000000000000000000000000 --- a/app/macos/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Workspace - version = "1.0"> - <FileRef - location = "group:Runner.xcodeproj"> - </FileRef> -</Workspace> diff --git a/app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d68d0546c4804ac2ff47dd97c6e7921..0000000000000000000000000000000000000000 --- a/app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ -<?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/app/macos/Runner/AppDelegate.swift b/app/macos/Runner/AppDelegate.swift deleted file mode 100644 index d53ef6437726b9d1558eda97582804175c0010a2..0000000000000000000000000000000000000000 --- a/app/macos/Runner/AppDelegate.swift +++ /dev/null @@ -1,9 +0,0 @@ -import Cocoa -import FlutterMacOS - -@NSApplicationMain -class AppDelegate: FlutterAppDelegate { - override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { - return true - } -} diff --git a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index a2ec33f19f110ebff51a23342d7bc29ec9a1aaa6..0000000000000000000000000000000000000000 --- a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_16.png", - "scale" : "1x" - }, - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "2x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "1x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_64.png", - "scale" : "2x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_128.png", - "scale" : "1x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "2x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "1x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "2x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "1x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_1024.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png deleted file mode 100644 index 82b6f9d9a33e198f5747104729e1fcef999772a5..0000000000000000000000000000000000000000 Binary files a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and /dev/null differ diff --git a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png deleted file mode 100644 index 13b35eba55c6dabc3aac36f33d859266c18fa0d0..0000000000000000000000000000000000000000 Binary files a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and /dev/null differ diff --git a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png deleted file mode 100644 index 0a3f5fa40fb3d1e0710331a48de5d256da3f275d..0000000000000000000000000000000000000000 Binary files a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and /dev/null differ diff --git a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png deleted file mode 100644 index bdb57226d5f2bd20f11934f4903f16459cf52379..0000000000000000000000000000000000000000 Binary files a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and /dev/null differ diff --git a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png deleted file mode 100644 index f083318e09ca1b6b8484b1694a149f0c5d5cac1d..0000000000000000000000000000000000000000 Binary files a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and /dev/null differ diff --git a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png deleted file mode 100644 index 326c0e72c9d820600887813b3b98d0dd69c5d4e8..0000000000000000000000000000000000000000 Binary files a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and /dev/null differ diff --git a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png deleted file mode 100644 index 2f1632cfddf3d9dade342351e627a0a75609fb46..0000000000000000000000000000000000000000 Binary files a/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and /dev/null differ diff --git a/app/macos/Runner/Base.lproj/MainMenu.xib b/app/macos/Runner/Base.lproj/MainMenu.xib deleted file mode 100644 index 80e867a4e06b4dc26d0a2b327cbd54041addc50a..0000000000000000000000000000000000000000 --- a/app/macos/Runner/Base.lproj/MainMenu.xib +++ /dev/null @@ -1,343 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> - <dependencies> - <deployment identifier="macosx"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/> - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> - </dependencies> - <objects> - <customObject id="-2" userLabel="File's Owner" customClass="NSApplication"> - <connections> - <outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/> - </connections> - </customObject> - <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/> - <customObject id="-3" userLabel="Application" customClass="NSObject"/> - <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Runner" customModuleProvider="target"> - <connections> - <outlet property="applicationMenu" destination="uQy-DD-JDr" id="XBo-yE-nKs"/> - <outlet property="mainFlutterWindow" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/> - </connections> - </customObject> - <customObject id="YLy-65-1bz" customClass="NSFontManager"/> - <menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6"> - <items> - <menuItem title="APP_NAME" id="1Xt-HY-uBw"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="APP_NAME" systemMenu="apple" id="uQy-DD-JDr"> - <items> - <menuItem title="About APP_NAME" id="5kV-Vb-QxS"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/> - </connections> - </menuItem> - <menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/> - <menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/> - <menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/> - <menuItem title="Services" id="NMo-om-nkz"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/> - </menuItem> - <menuItem isSeparatorItem="YES" id="4je-JR-u6R"/> - <menuItem title="Hide APP_NAME" keyEquivalent="h" id="Olw-nP-bQN"> - <connections> - <action selector="hide:" target="-1" id="PnN-Uc-m68"/> - </connections> - </menuItem> - <menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO"> - <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> - <connections> - <action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/> - </connections> - </menuItem> - <menuItem title="Show All" id="Kd2-mp-pUS"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/> - </connections> - </menuItem> - <menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/> - <menuItem title="Quit APP_NAME" keyEquivalent="q" id="4sb-4s-VLi"> - <connections> - <action selector="terminate:" target="-1" id="Te7-pn-YzF"/> - </connections> - </menuItem> - </items> - </menu> - </menuItem> - <menuItem title="Edit" id="5QF-Oa-p0T"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Edit" id="W48-6f-4Dl"> - <items> - <menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg"> - <connections> - <action selector="undo:" target="-1" id="M6e-cu-g7V"/> - </connections> - </menuItem> - <menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam"> - <connections> - <action selector="redo:" target="-1" id="oIA-Rs-6OD"/> - </connections> - </menuItem> - <menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/> - <menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG"> - <connections> - <action selector="cut:" target="-1" id="YJe-68-I9s"/> - </connections> - </menuItem> - <menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU"> - <connections> - <action selector="copy:" target="-1" id="G1f-GL-Joy"/> - </connections> - </menuItem> - <menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL"> - <connections> - <action selector="paste:" target="-1" id="UvS-8e-Qdg"/> - </connections> - </menuItem> - <menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk"> - <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> - <connections> - <action selector="pasteAsPlainText:" target="-1" id="cEh-KX-wJQ"/> - </connections> - </menuItem> - <menuItem title="Delete" id="pa3-QI-u2k"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="delete:" target="-1" id="0Mk-Ml-PaM"/> - </connections> - </menuItem> - <menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m"> - <connections> - <action selector="selectAll:" target="-1" id="VNm-Mi-diN"/> - </connections> - </menuItem> - <menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/> - <menuItem title="Find" id="4EN-yA-p0u"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Find" id="1b7-l0-nxx"> - <items> - <menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W"> - <connections> - <action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/> - </connections> - </menuItem> - <menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz"> - <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> - <connections> - <action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/> - </connections> - </menuItem> - <menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye"> - <connections> - <action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/> - </connections> - </menuItem> - <menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV"> - <connections> - <action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/> - </connections> - </menuItem> - <menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt"> - <connections> - <action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/> - </connections> - </menuItem> - <menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd"> - <connections> - <action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/> - </connections> - </menuItem> - </items> - </menu> - </menuItem> - <menuItem title="Spelling and Grammar" id="Dv1-io-Yv7"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Spelling" id="3IN-sU-3Bg"> - <items> - <menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI"> - <connections> - <action selector="showGuessPanel:" target="-1" id="vFj-Ks-hy3"/> - </connections> - </menuItem> - <menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7"> - <connections> - <action selector="checkSpelling:" target="-1" id="fz7-VC-reM"/> - </connections> - </menuItem> - <menuItem isSeparatorItem="YES" id="bNw-od-mp5"/> - <menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleContinuousSpellChecking:" target="-1" id="7w6-Qz-0kB"/> - </connections> - </menuItem> - <menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleGrammarChecking:" target="-1" id="muD-Qn-j4w"/> - </connections> - </menuItem> - <menuItem title="Correct Spelling Automatically" id="78Y-hA-62v"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleAutomaticSpellingCorrection:" target="-1" id="2lM-Qi-WAP"/> - </connections> - </menuItem> - </items> - </menu> - </menuItem> - <menuItem title="Substitutions" id="9ic-FL-obx"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Substitutions" id="FeM-D8-WVr"> - <items> - <menuItem title="Show Substitutions" id="z6F-FW-3nz"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="orderFrontSubstitutionsPanel:" target="-1" id="oku-mr-iSq"/> - </connections> - </menuItem> - <menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/> - <menuItem title="Smart Copy/Paste" id="9yt-4B-nSM"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleSmartInsertDelete:" target="-1" id="3IJ-Se-DZD"/> - </connections> - </menuItem> - <menuItem title="Smart Quotes" id="hQb-2v-fYv"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="ptq-xd-QOA"/> - </connections> - </menuItem> - <menuItem title="Smart Dashes" id="rgM-f4-ycn"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleAutomaticDashSubstitution:" target="-1" id="oCt-pO-9gS"/> - </connections> - </menuItem> - <menuItem title="Smart Links" id="cwL-P1-jid"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleAutomaticLinkDetection:" target="-1" id="Gip-E3-Fov"/> - </connections> - </menuItem> - <menuItem title="Data Detectors" id="tRr-pd-1PS"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleAutomaticDataDetection:" target="-1" id="R1I-Nq-Kbl"/> - </connections> - </menuItem> - <menuItem title="Text Replacement" id="HFQ-gK-NFA"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="toggleAutomaticTextReplacement:" target="-1" id="DvP-Fe-Py6"/> - </connections> - </menuItem> - </items> - </menu> - </menuItem> - <menuItem title="Transformations" id="2oI-Rn-ZJC"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Transformations" id="c8a-y6-VQd"> - <items> - <menuItem title="Make Upper Case" id="vmV-6d-7jI"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/> - </connections> - </menuItem> - <menuItem title="Make Lower Case" id="d9M-CD-aMd"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/> - </connections> - </menuItem> - <menuItem title="Capitalize" id="UEZ-Bs-lqG"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/> - </connections> - </menuItem> - </items> - </menu> - </menuItem> - <menuItem title="Speech" id="xrE-MZ-jX0"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Speech" id="3rS-ZA-NoH"> - <items> - <menuItem title="Start Speaking" id="Ynk-f8-cLZ"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="startSpeaking:" target="-1" id="654-Ng-kyl"/> - </connections> - </menuItem> - <menuItem title="Stop Speaking" id="Oyz-dy-DGm"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="stopSpeaking:" target="-1" id="dX8-6p-jy9"/> - </connections> - </menuItem> - </items> - </menu> - </menuItem> - </items> - </menu> - </menuItem> - <menuItem title="View" id="H8h-7b-M4v"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="View" id="HyV-fh-RgO"> - <items> - <menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa"> - <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/> - <connections> - <action selector="toggleFullScreen:" target="-1" id="dU3-MA-1Rq"/> - </connections> - </menuItem> - </items> - </menu> - </menuItem> - <menuItem title="Window" id="aUF-d1-5bR"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo"> - <items> - <menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV"> - <connections> - <action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/> - </connections> - </menuItem> - <menuItem title="Zoom" id="R4o-n2-Eq4"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="performZoom:" target="-1" id="DIl-cC-cCs"/> - </connections> - </menuItem> - <menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/> - <menuItem title="Bring All to Front" id="LE2-aR-0XJ"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/> - </connections> - </menuItem> - </items> - </menu> - </menuItem> - <menuItem title="Help" id="EPT-qC-fAb"> - <modifierMask key="keyEquivalentModifierMask"/> - <menu key="submenu" title="Help" systemMenu="help" id="rJ0-wn-3NY"/> - </menuItem> - </items> - <point key="canvasLocation" x="142" y="-258"/> - </menu> - <window title="APP_NAME" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainFlutterWindow" customModule="Runner" customModuleProvider="target"> - <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/> - <rect key="contentRect" x="335" y="390" width="800" height="600"/> - <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1577"/> - <view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ"> - <rect key="frame" x="0.0" y="0.0" width="800" height="600"/> - <autoresizingMask key="autoresizingMask"/> - </view> - </window> - </objects> -</document> diff --git a/app/macos/Runner/Configs/AppInfo.xcconfig b/app/macos/Runner/Configs/AppInfo.xcconfig deleted file mode 100644 index 7a09c5ca8a84c66ab75cdd885eaa782a330d888e..0000000000000000000000000000000000000000 --- a/app/macos/Runner/Configs/AppInfo.xcconfig +++ /dev/null @@ -1,14 +0,0 @@ -// Application-level settings for the Runner target. -// -// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the -// future. If not, the values below would default to using the project name when this becomes a -// 'flutter create' template. - -// The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = ice_map - -// The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.example.iceMap - -// The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. diff --git a/app/macos/Runner/Configs/Debug.xcconfig b/app/macos/Runner/Configs/Debug.xcconfig deleted file mode 100644 index 36b0fd9464f45b33f482e64bea579787e142affa..0000000000000000000000000000000000000000 --- a/app/macos/Runner/Configs/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Debug.xcconfig" -#include "Warnings.xcconfig" diff --git a/app/macos/Runner/Configs/Release.xcconfig b/app/macos/Runner/Configs/Release.xcconfig deleted file mode 100644 index dff4f49561c816f70eaea557d889d31cf63447ac..0000000000000000000000000000000000000000 --- a/app/macos/Runner/Configs/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Release.xcconfig" -#include "Warnings.xcconfig" diff --git a/app/macos/Runner/Configs/Warnings.xcconfig b/app/macos/Runner/Configs/Warnings.xcconfig deleted file mode 100644 index 42bcbf4780b187e80025b7917058bcb882012aa1..0000000000000000000000000000000000000000 --- a/app/macos/Runner/Configs/Warnings.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings -GCC_WARN_UNDECLARED_SELECTOR = YES -CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES -CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_PRAGMA_PACK = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_COMMA = YES -GCC_WARN_STRICT_SELECTOR_MATCH = YES -CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES -CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES -GCC_WARN_SHADOW = YES -CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/app/macos/Runner/DebugProfile.entitlements b/app/macos/Runner/DebugProfile.entitlements deleted file mode 100644 index dddb8a30c851e7ef5b16a9108934bd1217b6b43f..0000000000000000000000000000000000000000 --- a/app/macos/Runner/DebugProfile.entitlements +++ /dev/null @@ -1,12 +0,0 @@ -<?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>com.apple.security.app-sandbox</key> - <true/> - <key>com.apple.security.cs.allow-jit</key> - <true/> - <key>com.apple.security.network.server</key> - <true/> -</dict> -</plist> diff --git a/app/macos/Runner/Info.plist b/app/macos/Runner/Info.plist deleted file mode 100644 index 4789daa6a443eefa7f3f729164a18351e06e9800..0000000000000000000000000000000000000000 --- a/app/macos/Runner/Info.plist +++ /dev/null @@ -1,32 +0,0 @@ -<?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>CFBundleIconFile</key> - <string></string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleShortVersionString</key> - <string>$(FLUTTER_BUILD_NAME)</string> - <key>CFBundleVersion</key> - <string>$(FLUTTER_BUILD_NUMBER)</string> - <key>LSMinimumSystemVersion</key> - <string>$(MACOSX_DEPLOYMENT_TARGET)</string> - <key>NSHumanReadableCopyright</key> - <string>$(PRODUCT_COPYRIGHT)</string> - <key>NSMainNibFile</key> - <string>MainMenu</string> - <key>NSPrincipalClass</key> - <string>NSApplication</string> -</dict> -</plist> diff --git a/app/macos/Runner/MainFlutterWindow.swift b/app/macos/Runner/MainFlutterWindow.swift deleted file mode 100644 index 3cc05eb23491684aae1c51ce94668a142bad5125..0000000000000000000000000000000000000000 --- a/app/macos/Runner/MainFlutterWindow.swift +++ /dev/null @@ -1,15 +0,0 @@ -import Cocoa -import FlutterMacOS - -class MainFlutterWindow: NSWindow { - override func awakeFromNib() { - let flutterViewController = FlutterViewController() - let windowFrame = self.frame - self.contentViewController = flutterViewController - self.setFrame(windowFrame, display: true) - - RegisterGeneratedPlugins(registry: flutterViewController) - - super.awakeFromNib() - } -} diff --git a/app/macos/Runner/Release.entitlements b/app/macos/Runner/Release.entitlements deleted file mode 100644 index 852fa1a4728ae4789e3bca55dd07caef3b41f2a5..0000000000000000000000000000000000000000 --- a/app/macos/Runner/Release.entitlements +++ /dev/null @@ -1,8 +0,0 @@ -<?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>com.apple.security.app-sandbox</key> - <true/> -</dict> -</plist> diff --git a/app/macos/RunnerTests/RunnerTests.swift b/app/macos/RunnerTests/RunnerTests.swift deleted file mode 100644 index 5418c9f5395573cfd0fb8290b7ac946030f11ec6..0000000000000000000000000000000000000000 --- a/app/macos/RunnerTests/RunnerTests.swift +++ /dev/null @@ -1,12 +0,0 @@ -import FlutterMacOS -import Cocoa -import XCTest - -class RunnerTests: XCTestCase { - - func testExample() { - // If you add code to the Runner application, consider adding tests here. - // See https://developer.apple.com/documentation/xctest for more information about using XCTest. - } - -} diff --git a/app/pubspec.lock b/app/pubspec.lock deleted file mode 100644 index c7b90ca76aa6bb8e522cfb7b8ed1052d9a10202a..0000000000000000000000000000000000000000 --- a/app/pubspec.lock +++ /dev/null @@ -1,193 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - async: - dependency: transitive - description: - name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" - source: hosted - version: "2.11.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - characters: - dependency: transitive - description: - name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" - url: "https://pub.dev" - source: hosted - version: "1.3.0" - clock: - dependency: transitive - description: - name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" - source: hosted - version: "1.1.1" - collection: - dependency: transitive - description: - name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a - url: "https://pub.dev" - source: hosted - version: "1.18.0" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_lints: - dependency: "direct dev" - description: - name: flutter_lints - sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 - url: "https://pub.dev" - source: hosted - version: "2.0.3" - flutter_localizations: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - intl: - dependency: transitive - description: - name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" - url: "https://pub.dev" - source: hosted - version: "0.18.1" - lints: - dependency: transitive - description: - name: lints - sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - matcher: - dependency: transitive - description: - name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" - url: "https://pub.dev" - source: hosted - version: "0.12.16" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" - url: "https://pub.dev" - source: hosted - version: "0.5.0" - meta: - dependency: transitive - description: - name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e - url: "https://pub.dev" - source: hosted - version: "1.10.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.99" - source_span: - dependency: transitive - description: - name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" - url: "https://pub.dev" - source: hosted - version: "1.10.0" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" - url: "https://pub.dev" - source: hosted - version: "1.11.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 - url: "https://pub.dev" - source: hosted - version: "2.1.2" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" - url: "https://pub.dev" - source: hosted - version: "0.6.1" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - web: - dependency: transitive - description: - name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 - url: "https://pub.dev" - source: hosted - version: "0.3.0" -sdks: - dart: ">=3.2.6 <4.0.0" diff --git a/app/pubspec.yaml b/app/pubspec.yaml deleted file mode 100644 index 9e7327d7e0b4e63d8d0e895baa7c138c6f38a95e..0000000000000000000000000000000000000000 --- a/app/pubspec.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: ice_map -description: "A new Flutter project." - -# Prevent accidental publishing to pub.dev. -publish_to: 'none' - -version: 1.0.0+1 - -environment: - sdk: '>=3.2.6 <4.0.0' - -dependencies: - flutter: - sdk: flutter - flutter_localizations: - sdk: flutter - -dev_dependencies: - flutter_test: - sdk: flutter - - flutter_lints: ^2.0.0 - -flutter: - uses-material-design: true - - # Enable generation of localized Strings from arb files. - generate: true - - assets: - # Add assets from the images directory to the application. - - assets/images/ diff --git a/app/test/unit_test.dart b/app/test/unit_test.dart deleted file mode 100644 index e100eb0b9bbb3c0991551080fdcb85e9b746a705..0000000000000000000000000000000000000000 --- a/app/test/unit_test.dart +++ /dev/null @@ -1,15 +0,0 @@ -// This is an example unit test. -// -// A unit test tests a single function, method, or class. To learn more about -// writing unit tests, visit -// https://flutter.dev/docs/cookbook/testing/unit/introduction - -import 'package:flutter_test/flutter_test.dart'; - -void main() { - group('Plus Operator', () { - test('should add two numbers together', () { - expect(1 + 1, 2); - }); - }); -} diff --git a/app/test/widget_test.dart b/app/test/widget_test.dart deleted file mode 100644 index 13ad8b903281443446e7a41a862f195db8c601a2..0000000000000000000000000000000000000000 --- a/app/test/widget_test.dart +++ /dev/null @@ -1,31 +0,0 @@ -// This is an example Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. -// -// Visit https://flutter.dev/docs/cookbook/testing/widget/introduction for -// more information about Widget testing. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -void main() { - group('MyWidget', () { - testWidgets('should display a string of text', (WidgetTester tester) async { - // Define a Widget - const myWidget = MaterialApp( - home: Scaffold( - body: Text('Hello'), - ), - ); - - // Build myWidget and trigger a frame. - await tester.pumpWidget(myWidget); - - // Verify myWidget shows some text - expect(find.byType(Text), findsOneWidget); - }); - }); -} diff --git a/app/web/favicon.png b/app/web/favicon.png deleted file mode 100644 index 8aaa46ac1ae21512746f852a42ba87e4165dfdd1..0000000000000000000000000000000000000000 Binary files a/app/web/favicon.png and /dev/null differ diff --git a/app/web/icons/Icon-192.png b/app/web/icons/Icon-192.png deleted file mode 100644 index b749bfef07473333cf1dd31e9eed89862a5d52aa..0000000000000000000000000000000000000000 Binary files a/app/web/icons/Icon-192.png and /dev/null differ diff --git a/app/web/icons/Icon-512.png b/app/web/icons/Icon-512.png deleted file mode 100644 index 88cfd48dff1169879ba46840804b412fe02fefd6..0000000000000000000000000000000000000000 Binary files a/app/web/icons/Icon-512.png and /dev/null differ diff --git a/app/web/icons/Icon-maskable-192.png b/app/web/icons/Icon-maskable-192.png deleted file mode 100644 index eb9b4d76e525556d5d89141648c724331630325d..0000000000000000000000000000000000000000 Binary files a/app/web/icons/Icon-maskable-192.png and /dev/null differ diff --git a/app/web/icons/Icon-maskable-512.png b/app/web/icons/Icon-maskable-512.png deleted file mode 100644 index d69c56691fbdb0b7efa65097c7cc1edac12a6d3e..0000000000000000000000000000000000000000 Binary files a/app/web/icons/Icon-maskable-512.png and /dev/null differ diff --git a/app/web/index.html b/app/web/index.html deleted file mode 100644 index 91f04a2f9c08e18bf41f0be483f6440d7a06212d..0000000000000000000000000000000000000000 --- a/app/web/index.html +++ /dev/null @@ -1,59 +0,0 @@ -<!DOCTYPE html> -<html> -<head> - <!-- - If you are serving your web app in a path other than the root, change the - href value below to reflect the base path you are serving from. - - The path provided below has to start and end with a slash "/" in order for - it to work correctly. - - For more details: - * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base - - This is a placeholder for base href that will be replaced by the value of - the `--base-href` argument provided to `flutter build`. - --> - <base href="$FLUTTER_BASE_HREF"> - - <meta charset="UTF-8"> - <meta content="IE=Edge" http-equiv="X-UA-Compatible"> - <meta name="description" content="A new Flutter project."> - - <!-- iOS meta tags & icons --> - <meta name="apple-mobile-web-app-capable" content="yes"> - <meta name="apple-mobile-web-app-status-bar-style" content="black"> - <meta name="apple-mobile-web-app-title" content="ice_map"> - <link rel="apple-touch-icon" href="icons/Icon-192.png"> - - <!-- Favicon --> - <link rel="icon" type="image/png" href="favicon.png"/> - - <title>ice_map</title> - <link rel="manifest" href="manifest.json"> - - <script> - // The value below is injected by flutter build, do not touch. - const serviceWorkerVersion = null; - </script> - <!-- This script adds the flutter initialization JS code --> - <script src="flutter.js" defer></script> -</head> -<body> - <script> - window.addEventListener('load', function(ev) { - // Download main.dart.js - _flutter.loader.loadEntrypoint({ - serviceWorker: { - serviceWorkerVersion: serviceWorkerVersion, - }, - onEntrypointLoaded: function(engineInitializer) { - engineInitializer.initializeEngine().then(function(appRunner) { - appRunner.runApp(); - }); - } - }); - }); - </script> -</body> -</html> diff --git a/app/web/manifest.json b/app/web/manifest.json deleted file mode 100644 index 054b65a2d78b38edd3708080dabe8097ffb25df7..0000000000000000000000000000000000000000 --- a/app/web/manifest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "ice_map", - "short_name": "ice_map", - "start_url": ".", - "display": "standalone", - "background_color": "#0175C2", - "theme_color": "#0175C2", - "description": "A new Flutter project.", - "orientation": "portrait-primary", - "prefer_related_applications": false, - "icons": [ - { - "src": "icons/Icon-192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "icons/Icon-512.png", - "sizes": "512x512", - "type": "image/png" - }, - { - "src": "icons/Icon-maskable-192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" - }, - { - "src": "icons/Icon-maskable-512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable" - } - ] -} diff --git a/app/windows/.gitignore b/app/windows/.gitignore deleted file mode 100644 index d492d0d98c8fdc9f93ad2543bb4f531803e9df72..0000000000000000000000000000000000000000 --- a/app/windows/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -flutter/ephemeral/ - -# Visual Studio user-specific files. -*.suo -*.user -*.userosscache -*.sln.docstates - -# Visual Studio build-related files. -x64/ -x86/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ diff --git a/app/windows/CMakeLists.txt b/app/windows/CMakeLists.txt deleted file mode 100644 index ac86befe8a991d2a167a5ce2fbeaf3a53ad1d60e..0000000000000000000000000000000000000000 --- a/app/windows/CMakeLists.txt +++ /dev/null @@ -1,108 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.14) -project(ice_map LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "ice_map") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(VERSION 3.14...3.25) - -# Define build configuration option. -get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if(IS_MULTICONFIG) - set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" - CACHE STRING "" FORCE) -else() - if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") - endif() -endif() -# Define settings for the Profile build mode. -set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") -set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") -set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") - -# Use Unicode for all projects. -add_definitions(-DUNICODE -D_UNICODE) - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_17) - target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") - target_compile_options(${TARGET} PRIVATE /EHsc) - target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") - target_compile_definitions(${TARGET} PRIVATE "$<$<CONFIG:Debug>:_DEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# Application build; see runner/CMakeLists.txt. -add_subdirectory("runner") - - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# Support files are copied into place next to the executable, so that it can -# run in place. This is done instead of making a separate bundle (as on Linux) -# so that building and running from within Visual Studio will work. -set(BUILD_BUNDLE_DIR "$<TARGET_FILE_DIR:${BINARY_NAME}>") -# Make the "install" step default, as it's required to run. -set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -if(PLUGIN_BUNDLED_LIBRARIES) - install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() - -# Copy the native assets provided by the build.dart from all packages. -set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") -install(DIRECTORY "${NATIVE_ASSETS_DIR}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - CONFIGURATIONS Profile;Release - COMPONENT Runtime) diff --git a/app/windows/flutter/CMakeLists.txt b/app/windows/flutter/CMakeLists.txt deleted file mode 100644 index 903f4899d6fced0eb941e159f7322b21b320c40c..0000000000000000000000000000000000000000 --- a/app/windows/flutter/CMakeLists.txt +++ /dev/null @@ -1,109 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.14) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. -set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") - -# Set fallback configurations for older versions of the flutter tool. -if (NOT DEFINED FLUTTER_TARGET_PLATFORM) - set(FLUTTER_TARGET_PLATFORM "windows-x64") -endif() - -# === Flutter Library === -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "flutter_export.h" - "flutter_windows.h" - "flutter_messenger.h" - "flutter_plugin_registrar.h" - "flutter_texture_registrar.h" -) -list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") -add_dependencies(flutter flutter_assemble) - -# === Wrapper === -list(APPEND CPP_WRAPPER_SOURCES_CORE - "core_implementations.cc" - "standard_codec.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_PLUGIN - "plugin_registrar.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_APP - "flutter_engine.cc" - "flutter_view_controller.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") - -# Wrapper sources needed for a plugin. -add_library(flutter_wrapper_plugin STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} -) -apply_standard_settings(flutter_wrapper_plugin) -set_target_properties(flutter_wrapper_plugin PROPERTIES - POSITION_INDEPENDENT_CODE ON) -set_target_properties(flutter_wrapper_plugin PROPERTIES - CXX_VISIBILITY_PRESET hidden) -target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) -target_include_directories(flutter_wrapper_plugin PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_plugin flutter_assemble) - -# Wrapper sources needed for the runner. -add_library(flutter_wrapper_app STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_APP} -) -apply_standard_settings(flutter_wrapper_app) -target_link_libraries(flutter_wrapper_app PUBLIC flutter) -target_include_directories(flutter_wrapper_app PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_app flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") -set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} - ${PHONY_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - ${FLUTTER_TARGET_PLATFORM} $<CONFIG> - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} -) diff --git a/app/windows/flutter/generated_plugin_registrant.cc b/app/windows/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 8b6d4680af388f28db8742ef7fb8246e2bb1fffb..0000000000000000000000000000000000000000 --- a/app/windows/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,11 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - - -void RegisterPlugins(flutter::PluginRegistry* registry) { -} diff --git a/app/windows/flutter/generated_plugin_registrant.h b/app/windows/flutter/generated_plugin_registrant.h deleted file mode 100644 index dc139d85a93101cc0f6e9db03a3e1a9f68e8dd7e..0000000000000000000000000000000000000000 --- a/app/windows/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include <flutter/plugin_registry.h> - -// Registers Flutter plugins. -void RegisterPlugins(flutter::PluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/app/windows/flutter/generated_plugins.cmake b/app/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c16703f640bc38523e56204ade09399e..0000000000000000000000000000000000000000 --- a/app/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/app/windows/runner/CMakeLists.txt b/app/windows/runner/CMakeLists.txt deleted file mode 100644 index 394917c053a04daa76d8b94f0a02db0bd99e1034..0000000000000000000000000000000000000000 --- a/app/windows/runner/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(runner LANGUAGES CXX) - -# Define the application target. To change its name, change BINARY_NAME in the -# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer -# work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} WIN32 - "flutter_window.cpp" - "main.cpp" - "utils.cpp" - "win32_window.cpp" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" - "Runner.rc" - "runner.exe.manifest" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add preprocessor definitions for the build version. -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") - -# Disable Windows macros that collide with C++ standard library functions. -target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") - -# Add dependency libraries and include directories. Add any application-specific -# dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) -target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") -target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/app/windows/runner/Runner.rc b/app/windows/runner/Runner.rc deleted file mode 100644 index 4521e0a7ed82a863d8dc156b428b36eb8f60a09b..0000000000000000000000000000000000000000 --- a/app/windows/runner/Runner.rc +++ /dev/null @@ -1,121 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#pragma code_page(65001) -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_APP_ICON ICON "resources\\app_icon.ico" - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) -#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD -#else -#define VERSION_AS_NUMBER 1,0,0,0 -#endif - -#if defined(FLUTTER_VERSION) -#define VERSION_AS_STRING FLUTTER_VERSION -#else -#define VERSION_AS_STRING "1.0.0" -#endif - -VS_VERSION_INFO VERSIONINFO - FILEVERSION VERSION_AS_NUMBER - PRODUCTVERSION VERSION_AS_NUMBER - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_APP - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "CompanyName", "com.example" "\0" - VALUE "FileDescription", "ice_map" "\0" - VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "ice_map" "\0" - VALUE "LegalCopyright", "Copyright (C) 2024 com.example. All rights reserved." "\0" - VALUE "OriginalFilename", "ice_map.exe" "\0" - VALUE "ProductName", "ice_map" "\0" - VALUE "ProductVersion", VERSION_AS_STRING "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END - -#endif // English (United States) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED diff --git a/app/windows/runner/flutter_window.cpp b/app/windows/runner/flutter_window.cpp deleted file mode 100644 index 955ee3038f988929fac2dedb6a307ebd45dfcfd7..0000000000000000000000000000000000000000 --- a/app/windows/runner/flutter_window.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include "flutter_window.h" - -#include <optional> - -#include "flutter/generated_plugin_registrant.h" - -FlutterWindow::FlutterWindow(const flutter::DartProject& project) - : project_(project) {} - -FlutterWindow::~FlutterWindow() {} - -bool FlutterWindow::OnCreate() { - if (!Win32Window::OnCreate()) { - return false; - } - - RECT frame = GetClientArea(); - - // The size here must match the window dimensions to avoid unnecessary surface - // creation / destruction in the startup path. - flutter_controller_ = std::make_unique<flutter::FlutterViewController>( - frame.right - frame.left, frame.bottom - frame.top, project_); - // Ensure that basic setup of the controller was successful. - if (!flutter_controller_->engine() || !flutter_controller_->view()) { - return false; - } - RegisterPlugins(flutter_controller_->engine()); - SetChildContent(flutter_controller_->view()->GetNativeWindow()); - - flutter_controller_->engine()->SetNextFrameCallback([&]() { - this->Show(); - }); - - // Flutter can complete the first frame before the "show window" callback is - // registered. The following call ensures a frame is pending to ensure the - // window is shown. It is a no-op if the first frame hasn't completed yet. - flutter_controller_->ForceRedraw(); - - return true; -} - -void FlutterWindow::OnDestroy() { - if (flutter_controller_) { - flutter_controller_ = nullptr; - } - - Win32Window::OnDestroy(); -} - -LRESULT -FlutterWindow::MessageHandler(HWND hwnd, UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - // Give Flutter, including plugins, an opportunity to handle window messages. - if (flutter_controller_) { - std::optional<LRESULT> result = - flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, - lparam); - if (result) { - return *result; - } - } - - switch (message) { - case WM_FONTCHANGE: - flutter_controller_->engine()->ReloadSystemFonts(); - break; - } - - return Win32Window::MessageHandler(hwnd, message, wparam, lparam); -} diff --git a/app/windows/runner/flutter_window.h b/app/windows/runner/flutter_window.h deleted file mode 100644 index 6da0652f05f28fc6950cec20ebdfbae89b665479..0000000000000000000000000000000000000000 --- a/app/windows/runner/flutter_window.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef RUNNER_FLUTTER_WINDOW_H_ -#define RUNNER_FLUTTER_WINDOW_H_ - -#include <flutter/dart_project.h> -#include <flutter/flutter_view_controller.h> - -#include <memory> - -#include "win32_window.h" - -// A window that does nothing but host a Flutter view. -class FlutterWindow : public Win32Window { - public: - // Creates a new FlutterWindow hosting a Flutter view running |project|. - explicit FlutterWindow(const flutter::DartProject& project); - virtual ~FlutterWindow(); - - protected: - // Win32Window: - bool OnCreate() override; - void OnDestroy() override; - LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, - LPARAM const lparam) noexcept override; - - private: - // The project to run. - flutter::DartProject project_; - - // The Flutter instance hosted by this window. - std::unique_ptr<flutter::FlutterViewController> flutter_controller_; -}; - -#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/app/windows/runner/main.cpp b/app/windows/runner/main.cpp deleted file mode 100644 index 1a5632867b07c0a7ef7798279ec4d3fedf785000..0000000000000000000000000000000000000000 --- a/app/windows/runner/main.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include <flutter/dart_project.h> -#include <flutter/flutter_view_controller.h> -#include <windows.h> - -#include "flutter_window.h" -#include "utils.h" - -int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, - _In_ wchar_t *command_line, _In_ int show_command) { - // Attach to console when present (e.g., 'flutter run') or create a - // new console when running with a debugger. - if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { - CreateAndAttachConsole(); - } - - // Initialize COM, so that it is available for use in the library and/or - // plugins. - ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); - - flutter::DartProject project(L"data"); - - std::vector<std::string> command_line_arguments = - GetCommandLineArguments(); - - project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); - - FlutterWindow window(project); - Win32Window::Point origin(10, 10); - Win32Window::Size size(1280, 720); - if (!window.Create(L"ice_map", origin, size)) { - return EXIT_FAILURE; - } - window.SetQuitOnClose(true); - - ::MSG msg; - while (::GetMessage(&msg, nullptr, 0, 0)) { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - } - - ::CoUninitialize(); - return EXIT_SUCCESS; -} diff --git a/app/windows/runner/resource.h b/app/windows/runner/resource.h deleted file mode 100644 index 66a65d1e4a79f230031ec0e0959a721039e7282f..0000000000000000000000000000000000000000 --- a/app/windows/runner/resource.h +++ /dev/null @@ -1,16 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Runner.rc -// -#define IDI_APP_ICON 101 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/app/windows/runner/resources/app_icon.ico b/app/windows/runner/resources/app_icon.ico deleted file mode 100644 index c04e20caf6370ebb9253ad831cc31de4a9c965f6..0000000000000000000000000000000000000000 Binary files a/app/windows/runner/resources/app_icon.ico and /dev/null differ diff --git a/app/windows/runner/runner.exe.manifest b/app/windows/runner/runner.exe.manifest deleted file mode 100644 index a42ea7687cb67e55af955dc8874a072e087ce3ed..0000000000000000000000000000000000000000 --- a/app/windows/runner/runner.exe.manifest +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> - <application xmlns="urn:schemas-microsoft-com:asm.v3"> - <windowsSettings> - <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness> - </windowsSettings> - </application> - <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> - <application> - <!-- Windows 10 and Windows 11 --> - <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> - <!-- Windows 8.1 --> - <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> - <!-- Windows 8 --> - <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> - <!-- Windows 7 --> - <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> - </application> - </compatibility> -</assembly> diff --git a/app/windows/runner/utils.cpp b/app/windows/runner/utils.cpp deleted file mode 100644 index b2b08734db2bf90568fb1980bf46e0f42aea5856..0000000000000000000000000000000000000000 --- a/app/windows/runner/utils.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "utils.h" - -#include <flutter_windows.h> -#include <io.h> -#include <stdio.h> -#include <windows.h> - -#include <iostream> - -void CreateAndAttachConsole() { - if (::AllocConsole()) { - FILE *unused; - if (freopen_s(&unused, "CONOUT$", "w", stdout)) { - _dup2(_fileno(stdout), 1); - } - if (freopen_s(&unused, "CONOUT$", "w", stderr)) { - _dup2(_fileno(stdout), 2); - } - std::ios::sync_with_stdio(); - FlutterDesktopResyncOutputStreams(); - } -} - -std::vector<std::string> GetCommandLineArguments() { - // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. - int argc; - wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); - if (argv == nullptr) { - return std::vector<std::string>(); - } - - std::vector<std::string> command_line_arguments; - - // Skip the first argument as it's the binary name. - for (int i = 1; i < argc; i++) { - command_line_arguments.push_back(Utf8FromUtf16(argv[i])); - } - - ::LocalFree(argv); - - return command_line_arguments; -} - -std::string Utf8FromUtf16(const wchar_t* utf16_string) { - if (utf16_string == nullptr) { - return std::string(); - } - int target_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr) - -1; // remove the trailing null character - int input_length = (int)wcslen(utf16_string); - std::string utf8_string; - if (target_length <= 0 || target_length > utf8_string.max_size()) { - return utf8_string; - } - utf8_string.resize(target_length); - int converted_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - input_length, utf8_string.data(), target_length, nullptr, nullptr); - if (converted_length == 0) { - return std::string(); - } - return utf8_string; -} diff --git a/app/windows/runner/utils.h b/app/windows/runner/utils.h deleted file mode 100644 index 3879d54755798567f0f318d63340508d5668eb96..0000000000000000000000000000000000000000 --- a/app/windows/runner/utils.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef RUNNER_UTILS_H_ -#define RUNNER_UTILS_H_ - -#include <string> -#include <vector> - -// Creates a console for the process, and redirects stdout and stderr to -// it for both the runner and the Flutter library. -void CreateAndAttachConsole(); - -// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string -// encoded in UTF-8. Returns an empty std::string on failure. -std::string Utf8FromUtf16(const wchar_t* utf16_string); - -// Gets the command line arguments passed in as a std::vector<std::string>, -// encoded in UTF-8. Returns an empty std::vector<std::string> on failure. -std::vector<std::string> GetCommandLineArguments(); - -#endif // RUNNER_UTILS_H_ diff --git a/app/windows/runner/win32_window.cpp b/app/windows/runner/win32_window.cpp deleted file mode 100644 index 60608d0fe5bff3a7a7e05d5a232944a1a8effe5f..0000000000000000000000000000000000000000 --- a/app/windows/runner/win32_window.cpp +++ /dev/null @@ -1,288 +0,0 @@ -#include "win32_window.h" - -#include <dwmapi.h> -#include <flutter_windows.h> - -#include "resource.h" - -namespace { - -/// Window attribute that enables dark mode window decorations. -/// -/// Redefined in case the developer's machine has a Windows SDK older than -/// version 10.0.22000.0. -/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute -#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE -#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 -#endif - -constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; - -/// Registry key for app theme preference. -/// -/// A value of 0 indicates apps should use dark mode. A non-zero or missing -/// value indicates apps should use light mode. -constexpr const wchar_t kGetPreferredBrightnessRegKey[] = - L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; -constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; - -// The number of Win32Window objects that currently exist. -static int g_active_window_count = 0; - -using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); - -// Scale helper to convert logical scaler values to physical using passed in -// scale factor -int Scale(int source, double scale_factor) { - return static_cast<int>(source * scale_factor); -} - -// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. -// This API is only needed for PerMonitor V1 awareness mode. -void EnableFullDpiSupportIfAvailable(HWND hwnd) { - HMODULE user32_module = LoadLibraryA("User32.dll"); - if (!user32_module) { - return; - } - auto enable_non_client_dpi_scaling = - reinterpret_cast<EnableNonClientDpiScaling*>( - GetProcAddress(user32_module, "EnableNonClientDpiScaling")); - if (enable_non_client_dpi_scaling != nullptr) { - enable_non_client_dpi_scaling(hwnd); - } - FreeLibrary(user32_module); -} - -} // namespace - -// Manages the Win32Window's window class registration. -class WindowClassRegistrar { - public: - ~WindowClassRegistrar() = default; - - // Returns the singleton registrar instance. - static WindowClassRegistrar* GetInstance() { - if (!instance_) { - instance_ = new WindowClassRegistrar(); - } - return instance_; - } - - // Returns the name of the window class, registering the class if it hasn't - // previously been registered. - const wchar_t* GetWindowClass(); - - // Unregisters the window class. Should only be called if there are no - // instances of the window. - void UnregisterWindowClass(); - - private: - WindowClassRegistrar() = default; - - static WindowClassRegistrar* instance_; - - bool class_registered_ = false; -}; - -WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; - -const wchar_t* WindowClassRegistrar::GetWindowClass() { - if (!class_registered_) { - WNDCLASS window_class{}; - window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); - window_class.lpszClassName = kWindowClassName; - window_class.style = CS_HREDRAW | CS_VREDRAW; - window_class.cbClsExtra = 0; - window_class.cbWndExtra = 0; - window_class.hInstance = GetModuleHandle(nullptr); - window_class.hIcon = - LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); - window_class.hbrBackground = 0; - window_class.lpszMenuName = nullptr; - window_class.lpfnWndProc = Win32Window::WndProc; - RegisterClass(&window_class); - class_registered_ = true; - } - return kWindowClassName; -} - -void WindowClassRegistrar::UnregisterWindowClass() { - UnregisterClass(kWindowClassName, nullptr); - class_registered_ = false; -} - -Win32Window::Win32Window() { - ++g_active_window_count; -} - -Win32Window::~Win32Window() { - --g_active_window_count; - Destroy(); -} - -bool Win32Window::Create(const std::wstring& title, - const Point& origin, - const Size& size) { - Destroy(); - - const wchar_t* window_class = - WindowClassRegistrar::GetInstance()->GetWindowClass(); - - const POINT target_point = {static_cast<LONG>(origin.x), - static_cast<LONG>(origin.y)}; - HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); - UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); - double scale_factor = dpi / 96.0; - - HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW, - Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), - Scale(size.width, scale_factor), Scale(size.height, scale_factor), - nullptr, nullptr, GetModuleHandle(nullptr), this); - - if (!window) { - return false; - } - - UpdateTheme(window); - - return OnCreate(); -} - -bool Win32Window::Show() { - return ShowWindow(window_handle_, SW_SHOWNORMAL); -} - -// static -LRESULT CALLBACK Win32Window::WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - if (message == WM_NCCREATE) { - auto window_struct = reinterpret_cast<CREATESTRUCT*>(lparam); - SetWindowLongPtr(window, GWLP_USERDATA, - reinterpret_cast<LONG_PTR>(window_struct->lpCreateParams)); - - auto that = static_cast<Win32Window*>(window_struct->lpCreateParams); - EnableFullDpiSupportIfAvailable(window); - that->window_handle_ = window; - } else if (Win32Window* that = GetThisFromHandle(window)) { - return that->MessageHandler(window, message, wparam, lparam); - } - - return DefWindowProc(window, message, wparam, lparam); -} - -LRESULT -Win32Window::MessageHandler(HWND hwnd, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - switch (message) { - case WM_DESTROY: - window_handle_ = nullptr; - Destroy(); - if (quit_on_close_) { - PostQuitMessage(0); - } - return 0; - - case WM_DPICHANGED: { - auto newRectSize = reinterpret_cast<RECT*>(lparam); - LONG newWidth = newRectSize->right - newRectSize->left; - LONG newHeight = newRectSize->bottom - newRectSize->top; - - SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, - newHeight, SWP_NOZORDER | SWP_NOACTIVATE); - - return 0; - } - case WM_SIZE: { - RECT rect = GetClientArea(); - if (child_content_ != nullptr) { - // Size and position the child window. - MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, - rect.bottom - rect.top, TRUE); - } - return 0; - } - - case WM_ACTIVATE: - if (child_content_ != nullptr) { - SetFocus(child_content_); - } - return 0; - - case WM_DWMCOLORIZATIONCOLORCHANGED: - UpdateTheme(hwnd); - return 0; - } - - return DefWindowProc(window_handle_, message, wparam, lparam); -} - -void Win32Window::Destroy() { - OnDestroy(); - - if (window_handle_) { - DestroyWindow(window_handle_); - window_handle_ = nullptr; - } - if (g_active_window_count == 0) { - WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); - } -} - -Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { - return reinterpret_cast<Win32Window*>( - GetWindowLongPtr(window, GWLP_USERDATA)); -} - -void Win32Window::SetChildContent(HWND content) { - child_content_ = content; - SetParent(content, window_handle_); - RECT frame = GetClientArea(); - - MoveWindow(content, frame.left, frame.top, frame.right - frame.left, - frame.bottom - frame.top, true); - - SetFocus(child_content_); -} - -RECT Win32Window::GetClientArea() { - RECT frame; - GetClientRect(window_handle_, &frame); - return frame; -} - -HWND Win32Window::GetHandle() { - return window_handle_; -} - -void Win32Window::SetQuitOnClose(bool quit_on_close) { - quit_on_close_ = quit_on_close; -} - -bool Win32Window::OnCreate() { - // No-op; provided for subclasses. - return true; -} - -void Win32Window::OnDestroy() { - // No-op; provided for subclasses. -} - -void Win32Window::UpdateTheme(HWND const window) { - DWORD light_mode; - DWORD light_mode_size = sizeof(light_mode); - LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, - kGetPreferredBrightnessRegValue, - RRF_RT_REG_DWORD, nullptr, &light_mode, - &light_mode_size); - - if (result == ERROR_SUCCESS) { - BOOL enable_dark_mode = light_mode == 0; - DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, - &enable_dark_mode, sizeof(enable_dark_mode)); - } -} diff --git a/app/windows/runner/win32_window.h b/app/windows/runner/win32_window.h deleted file mode 100644 index e901dde684ea8ba25c50ea5dc7d5900da31a30d4..0000000000000000000000000000000000000000 --- a/app/windows/runner/win32_window.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef RUNNER_WIN32_WINDOW_H_ -#define RUNNER_WIN32_WINDOW_H_ - -#include <windows.h> - -#include <functional> -#include <memory> -#include <string> - -// A class abstraction for a high DPI-aware Win32 Window. Intended to be -// inherited from by classes that wish to specialize with custom -// rendering and input handling -class Win32Window { - public: - struct Point { - unsigned int x; - unsigned int y; - Point(unsigned int x, unsigned int y) : x(x), y(y) {} - }; - - struct Size { - unsigned int width; - unsigned int height; - Size(unsigned int width, unsigned int height) - : width(width), height(height) {} - }; - - Win32Window(); - virtual ~Win32Window(); - - // Creates a win32 window with |title| that is positioned and sized using - // |origin| and |size|. New windows are created on the default monitor. Window - // sizes are specified to the OS in physical pixels, hence to ensure a - // consistent size this function will scale the inputted width and height as - // as appropriate for the default monitor. The window is invisible until - // |Show| is called. Returns true if the window was created successfully. - bool Create(const std::wstring& title, const Point& origin, const Size& size); - - // Show the current window. Returns true if the window was successfully shown. - bool Show(); - - // Release OS resources associated with window. - void Destroy(); - - // Inserts |content| into the window tree. - void SetChildContent(HWND content); - - // Returns the backing Window handle to enable clients to set icon and other - // window properties. Returns nullptr if the window has been destroyed. - HWND GetHandle(); - - // If true, closing this window will quit the application. - void SetQuitOnClose(bool quit_on_close); - - // Return a RECT representing the bounds of the current client area. - RECT GetClientArea(); - - protected: - // Processes and route salient window messages for mouse handling, - // size change and DPI. Delegates handling of these to member overloads that - // inheriting classes can handle. - virtual LRESULT MessageHandler(HWND window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Called when CreateAndShow is called, allowing subclass window-related - // setup. Subclasses should return false if setup fails. - virtual bool OnCreate(); - - // Called when Destroy is called. - virtual void OnDestroy(); - - private: - friend class WindowClassRegistrar; - - // OS callback called by message pump. Handles the WM_NCCREATE message which - // is passed when the non-client area is being created and enables automatic - // non-client DPI scaling so that the non-client area automatically - // responds to changes in DPI. All other messages are handled by - // MessageHandler. - static LRESULT CALLBACK WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Retrieves a class instance pointer for |window| - static Win32Window* GetThisFromHandle(HWND const window) noexcept; - - // Update the window frame's theme to match the system theme. - static void UpdateTheme(HWND const window); - - bool quit_on_close_ = false; - - // window handle for top level window. - HWND window_handle_ = nullptr; - - // window handle for hosted content. - HWND child_content_ = nullptr; -}; - -#endif // RUNNER_WIN32_WINDOW_H_ diff --git a/image-1.png b/image-1.png deleted file mode 100644 index 8ecd4ac7e1395a76620f9aaca863c40e8fcec1c3..0000000000000000000000000000000000000000 Binary files a/image-1.png and /dev/null differ diff --git a/image.png b/image.png deleted file mode 100644 index e37a41e9e6c2e8a707dd138dc758db14acb0f783..0000000000000000000000000000000000000000 Binary files a/image.png and /dev/null differ diff --git a/server/MongoCert.pem b/server/MongoCert.pem deleted file mode 100644 index 32882c8513622365b80f83b76fd97034f14fa067..0000000000000000000000000000000000000000 --- a/server/MongoCert.pem +++ /dev/null @@ -1,81 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFCzCCAvOgAwIBAgIIJciHvv6Yi4gwDQYJKoZIhvcNAQELBQAwSTEhMB8GA1UE -AxMYNjViYjZkMjVjNWE2NzgxMWUxOWMyYjY3MQ4wDAYDVQQLEwVBdGxhczEUMBIG -A1UEChMLTW9uZ29EQiBJbmMwHhcNMjQwMjAxMDkyMDE0WhcNMjYwMjAxMTAyMDE0 -WjAWMRQwEgYDVQQDDAtjZXJ0X2FjY2VzczCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAMXNw9D4fe6IWhmOw1emqk5RETZXSCuyh0+uQNyXkQ0OVdl8j1TY -zXqpuvvilz/axIkSba9dMTx/ejKECPmaIlZC6vTgmzdHgftXsm8iBP1audnV36MG -6jvqM7qe1/lQdsDbi94mSLd13/l5hgrENpUgCzp76krcC5wusXLl3OizsYpwrRw6 -uwiZm9DxoSIW87ClWJbklP3XLJHfg2lIPjEcdSHSJkLEcUNzmggYXt4OfiSx8zlr -C6X93zgbPMQZqfO3k3B9hrFzuKDqlIvIm4y3GVuZ0Xj6ncDq262nB4+V+YTAWDRK -5CkKZVJlig4ePd5zTsB2hzJnLBWRlor3L756kcdm/2YtkEijQrewOd4RCOcz5Jx6 -aZdYQMzUPgVJXh0gtNzY/+wq2WBCcypM22WW8/3678iJoIG4hIXsWVtJOubqovB+ -jsbyGMp+5fk1Kqgo7AkiDT7ld/8O60FeR4i7Pa7tiikKKyhg1SnqCwueTzIv43x4 -DciEXKKJRFFwbhTKL2Ty3UkFqYtqD9drXT0p7c9XUs5tzO/Jsx1D+KUq0UosP/Cv -fwp5W31pwjeJyEKHrrVIMj3G/+x5wfmIcsKxj+q00NSerx6WYB5ds7BiMZWDqBWT -Oaj/1w5IY7BDkEslYgkpwosw/CGIYrvLqKpWk0l1L5OgaSjouMLbTAiBAgMBAAGj -KjAoMA4GA1UdDwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkq -hkiG9w0BAQsFAAOCAgEAeoAdO4BMhhqrfka11JHTggyEkBR742LpV4epKWVLFnru -b6+mZrWVCjKaYmOep1u/3f3imtz6Y9L0zFUBVLsE1scqWNK10gZyChrGJuVlOXRM -NXpoLtOvQUxdJmFPmbnBtP3N3GwdTlq7v8kkyoV0z0KoFxHvPIujlCuHPkY4iQc/ -lJYpyzNSmrC3Nyk8jS5QksYaR3A1Ol2puJiqwZBDfl+0ECSS8ovScK4ccYqyo4ze -NT5Uwc0Hr2oHbY4CRViZm+VllwanKeYhFAR3zoLIk5MIh4YlwerZqYRadoKhmRty -1bIEOjeRXoZusF8lIF0/BSaYEnel3xCH5umQWyRUlOkAOnwbqtfY6EaW7xwNFHsS -D34sPvxRJHh9jnCv1127kb3S5aXO+uvqebhdBrP8SOq9pwMgVGhM9y6RsDfz6g78 -Xj8ICrS7Ls+Rah4IX2cPkHkEd7CXuQ7Gsr8jY3RSTBoC1/u98mNIFrkaTYBWqGL4 -X7m9rFWeI4zLwYHPsKO9hwI9+HwaKiVkE4L5tu1Ur0evougxg0T+Eu4VdC1Z6qbg -JJgbUz6oLtUU9Y4Wp2EHQGTzBTA2+1s7PBMQp/49SxpS0N6JILWtSXOqRQ3BQS6p -Zj0k4adusbJ82cMdImcpjjhUlt58kZ2Ms6F5nUU8Tw+XVDxaId2fZ+GhGTgse4I= ------END CERTIFICATE----- ------BEGIN PRIVATE KEY----- -MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDFzcPQ+H3uiFoZ -jsNXpqpOURE2V0grsodPrkDcl5ENDlXZfI9U2M16qbr74pc/2sSJEm2vXTE8f3oy -hAj5miJWQur04Js3R4H7V7JvIgT9WrnZ1d+jBuo76jO6ntf5UHbA24veJki3dd/5 -eYYKxDaVIAs6e+pK3AucLrFy5dzos7GKcK0cOrsImZvQ8aEiFvOwpViW5JT91yyR -34NpSD4xHHUh0iZCxHFDc5oIGF7eDn4ksfM5awul/d84GzzEGanzt5NwfYaxc7ig -6pSLyJuMtxlbmdF4+p3A6tutpwePlfmEwFg0SuQpCmVSZYoOHj3ec07AdocyZywV -kZaK9y++epHHZv9mLZBIo0K3sDneEQjnM+ScemmXWEDM1D4FSV4dILTc2P/sKtlg -QnMqTNtllvP9+u/IiaCBuISF7FlbSTrm6qLwfo7G8hjKfuX5NSqoKOwJIg0+5Xf/ -DutBXkeIuz2u7YopCisoYNUp6gsLnk8yL+N8eA3IhFyiiURRcG4Uyi9k8t1JBamL -ag/Xa109Ke3PV1LObczvybMdQ/ilKtFKLD/wr38KeVt9acI3ichCh661SDI9xv/s -ecH5iHLCsY/qtNDUnq8elmAeXbOwYjGVg6gVkzmo/9cOSGOwQ5BLJWIJKcKLMPwh -iGK7y6iqVpNJdS+ToGko6LjC20wIgQIDAQABAoICABX2QSoYFP9hg0N4Lucx+ZHF -fXg/m6NCaLSnn8r+RxwgfdaudkmQ4sueQcUKxQlRdGXVtnj0i21wp/Qo5cg03WAf -gO/cak9qcJukAotFRzGMG7t8fB6hO2uYltK/JTKoxO6n0bFCJeu8ujf8Tq4uV/MZ -wjVlob9bDCz0oD4mGG972BgLZ6UNPkv3pi2+Tko3KypvSVVDnulKNUgi/Xe4jjMs -ujKdnyLlpb+7+5uvfQUBre7MFTnIUVxGQjz8BTSutsh5FvUz8rsMIrE3KnQUu3SV -tcqOWwwoI1DSor52n6fJGpGrO3/e2tNVtKc/3+KuZ+clfVZwMpWdj+77IbBfPp0g -8rn1i0//nvefth5CZgQc56Q8xFMxYwO9dNMbE6DQu3+KaQj4OQq95hwBq3Wx051U -emDucjln7QE/AFfH4WvRfVqpKN5WhUsO1F9fReucl/IiMuIIORI3RNbAdJbQ4lYU -9wjSmSAbQX4MkQ8AYXhLkFh44EZfEQ3sUb0i0Js8Z9BgeZ0CqasThw9yLUwlc+iQ -6SMbMd48P78LfjmVA1AFe87BjDVztWhktWN7yyJDFFy130KT531c8lUeDmyzSGZ1 -nwLxDKkgsQWrGbYRG+R1vjUZTKCG9YJPAqcZEHboHzNwzXJPJcnAyUwn+YyplGPp -8bpWwCTs27vKiXLb3RZbAoIBAQDwC5zoGgP26d47okDGWgzEUFKpk1Fv6HrvDypd -XndPdrI5BfRlwsnDn+qXpCyJ2w2k+iPR1AEQwCLyomNkM6K8tYWhcUIiSKP7XSN2 -0DX1ULmsL3E0/Phkz8ZVIQJnReUBIaJL6H+Zic2jVtVykv4wjrAon9xnghedJvXw -dodmN9hTfuXlA/Wb9BMfCBnO7DzpZKGhh7wlcBp6xv3+owcKu7TD1lO37hPTrgjS -rhrS97hLaljCACJkjtx/Q8ZTvmrWH2LbSiLvszsneIAhIyyYPXrXFJV4VOPhsUSF -HORCK0/FXcLkvO3z2kgIuLNO5C+ww91nEgG5eqdsjb4/7APzAoIBAQDS82iZe99A -cwqrQVWGh2fK2zGuzIBDeVBSlluYHJ3HFyrOnRM42rJ0/FouMixikytHWtD3eqto -0bGArX45plafp2C9d/3tiOilTqt+mh7YOK+GQLXcqk2h62aBIqptr8pYkGchuuXH -5SgTj9SZyi2Vahmr5/NT69xW5/EThuDs2dbHOIbs0xcawZdHpOvdxaFJCu2h6p1D -mJ1BXi3B4azNpFM8b8UcwiBZ3lnu/l4uCotjX2H9OxYlCujywGKtJUkiA+Mgae1A -XgPm03P9WCa19uOdTKIEaUXLWUXXWHWLEw8cpco7qQBy3t2WeOojeW/ISIr7DC8Y -EzHyec+qPcK7AoIBAA4GT6uL4ZFqho5rY2dzWW2a18mKjuZ/6bbP5wS/gS8GW1FT -lLzhTZJ9ZGJpuCRxxPFPoAohXdKRtzj/3di735Uw8dbF3DxOjC4iefD2J0Dm74Is -32teIFEbhpXwsMhB4ChZw7a1pcbds0MIzr278tf5bjdhZ6owgpqu7Q2Yjz6coqn2 -Lw5bVd0/vGJCwedCDCkCtSLP4GE7lIB54dsfwUiSQPR0MD39zfC/KUrN20laKc1W -MEtdYKUJZ76TwiGgbXOHL+pqAXKJwToEI1BMUs2uQeARFs6J/ypvhfZVAs0O5ME+ -QiXFGA34Qd8ok2lXkaW9O9FKzwj8Lo38FhJ8ApsCggEAIPeNRz9GmongBveE6CtN -GzS6RPkMqn7RALcixVjjh3Olavi9QktbTFELvuB0c0tQniwhMCvpkc4DkXqLmXLX -YsgDpFiWRIL66KqsvnJTk7L4K2D9iujKjR1+vXuvasjoNIMMuwa8VksHwlbeANLJ -4Ond7TGoo1re6m4BDO4tRJaerC+3Vld+6t2KSNYLTnNOS1372SwTO7ckDE0tlXkx -Skn+ABnvkhj8eU74exMhoMxhEDyd0bdkNJHJ6fYK9cg376rv2ebz/vUyYuZ04Ajg -s9tLow+Q2mOhVrAy6/6VEBEAcZevTTeSLGGL+7IV1UlrIL/FiIpU6cxGKADFZXOV -dQKCAQBhJbW+X9yONkhSUWqL2esPmfmgjPyg7u2r9XnWrJogbc/o2Vh1FmRMcF8F -mdCNVz2aUDcAkuPLcCqmNpDzFTbxBj+VaxGrXWSoMrj3w2PW1tkeoPJ0WoyhZpYr -7Wru1WPv1dJmrWYVWpcebgE5Y5k/lg1nn7K+++y9BU0ovWaQP8irdbLz9ZXSisIb -dHouhvgK330MVo8Zjshy0Pqq3VBN/V+Rh7GV6GXZVfubI+0p14Yj6zExfA9cj30D -Q38bDmpgGknqq4oToDwZGGsLrIOR//oXqVqforxLBjJsKNI14SVYfTqf/f/x32UU -RfOGEADT0A6yOPYYFn8dEALhBSz7 ------END PRIVATE KEY----- diff --git a/server/consts.py b/server/consts.py index 7bd9ac68382256f90fc631f356dd944c5e8d3138..4ebdda5c71a87c768c99654dcd555cba899dbf7d 100644 --- a/server/consts.py +++ b/server/consts.py @@ -3,3 +3,4 @@ DB_NAME = 'IceMapDB' COLLECTION = 'IceData' MONGO_URI = "mongodb+srv://icemapcluster.i02epob.mongodb.net/?authSource=%24external&authMechanism=MONGODB-X509&retryWrites=true&w=majority" +MONGO_CERT_PATH = "server/certificates/MongoCert.pem" \ No newline at end of file diff --git a/server/main.py b/server/main.py index 5176fd4619e89b24b79e57c69f0dbe047f4a69e8..71a0bb9e80f27b1860f09d2f96500dad06e2ca00 100644 --- a/server/main.py +++ b/server/main.py @@ -1,16 +1,16 @@ from flask import Flask, jsonify from pymongo import MongoClient from pymongo.server_api import ServerApi -from consts import DB_NAME, COLLECTION, MONGO_URI +from consts import DB_NAME, COLLECTION, MONGO_URI, MONGO_CERT_PATH app = Flask(__name__) -# Try to connect to MongoDB +# Create MongoDB connection try: client = MongoClient(MONGO_URI, tls=True, - tlsCertificateKeyFile='server/MongoCert.pem', + tlsCertificateKeyFile=MONGO_CERT_PATH, server_api=ServerApi('1')) db = client[DB_NAME] @@ -18,4 +18,20 @@ try: print("Connected to MongoDB") except Exception as e: - print(f"Failed to connect to MongoDB: {e}") \ No newline at end of file + print(f"Failed to connect to MongoDB: {e}") + + +# Start a server on port 8443 +if __name__ == "__main__": # NB currently using test key + print("Starting server on port 8443") + try: + app.run(port=8443, ssl_context=('server/certificates/testCert.crt', 'server/certificates/testKey.key')) + print("Server running on port 8443") + except Exception as e: + print(f"Failed to start server on port 8443: {e}") + + +# Default path +@app.route('/') +def default(): + print("Default path hit!") diff --git a/service.proto b/service.proto deleted file mode 100644 index ae09b6c582a253de830729d4e66dc144c15af737..0000000000000000000000000000000000000000 --- a/service.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - -service NumberSortingService { - rpc SortNumbers (NumberArray) returns (NumberArray) {} -} - -message NumberArray { - repeated int32 numbers = 1; -} diff --git a/starter-kit/LICENSE b/starter-kit/LICENSE deleted file mode 100644 index ba3c9d72735ee7be588d66eb2b748b2f546b3913..0000000000000000000000000000000000000000 --- a/starter-kit/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Flutter Python Starter Kit -Copyright (c) 2023 Maxim Saplin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/starter-kit/bundle-python.sh b/starter-kit/bundle-python.sh deleted file mode 100644 index df34ab74578e10b220c78987f7f57abb4c1250d9..0000000000000000000000000000000000000000 --- a/starter-kit/bundle-python.sh +++ /dev/null @@ -1,95 +0,0 @@ -set -e # halt on any error -#set -x - -flutterDir="" -pythonDir="" -exeName="server_py_flutter" -nuitka=false - -while [[ $# -gt 0 ]]; do - case "$1" in - --proto) - proto="$2" - shift 2 - ;; - --flutterDir) - flutterDir="$2" - shift 2 - ;; - --pythonDir) - pythonDir="$2" - shift 2 - ;; - --exeName) - exeName="$2" - shift 2 - ;; - --nuitka) # Set `nuitka` to `true` if there's a flag `--nuitka` - nuitka=true - shift - ;; - *) - shift - ;; - esac -done - -flutterDir=$(realpath "$flutterDir" | sed 's/\/$//') -pythonDir=$(realpath "$pythonDir" | sed 's/\/$//') -workingDir=$(pwd) - -if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then - PYTHON=python -else - PYTHON=python3 -fi - -# Check the OS -if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then - exeNameFull="${exeName}_win" -elif [[ "$OSTYPE" == "darwin"* ]]; then - exeNameFull="${exeName}_osx" -else - exeNameFull="${exeName}_lnx" -fi - -$PYTHON -m pip install -r $pythonDir/requirements.txt - -cd $pythonDir -if [[ $nuitka == true ]]; then - export PYTHONPATH="./grpc_generated" - $PYTHON -m nuitka server.py --standalone --onefile --output-dir=./dist --output-filename="$exeNameFull" -else - $PYTHON -m PyInstaller --onefile --noconfirm --clean --log-level=WARN --name="$exeNameFull" --paths="./grpc_generated" server.py -fi -cd $workingDir - -if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then - exeNameFull="$exeNameFull.exe" -fi - -mkdir -p $flutterDir/assets/ -cp $pythonDir/dist/$exeNameFull $flutterDir/assets/ - -# Check if assets already exists in pubspec.yaml -if ! grep -q "assets:" "$flutterDir"/pubspec.yaml; then - echo " assets:" >> "$flutterDir"/pubspec.yaml - echo " - assets/" >> "$flutterDir"/pubspec.yaml -fi - -# Get current date time and create a string of the following format '2023_09_02_10_24_56' -currentDateTime=$(date +"%Y_%m_%d_%H_%M_%S") - -# Update version in py_file_info.dart - -numLines=$(wc -l < "$flutterDir"/lib/grpc_generated/py_file_info.dart) -lastLine=$((numLines - 2)) -head -n $lastLine "$flutterDir"/lib/grpc_generated/py_file_info.dart > "$flutterDir"/lib/grpc_generated/py_file_info_temp.dart -mv "$flutterDir"/lib/grpc_generated/py_file_info_temp.dart "$flutterDir"/lib/grpc_generated/py_file_info.dart - -echo "const exeFileName = '$exeName';" >> "$flutterDir"/lib/grpc_generated/py_file_info.dart -echo "const currentFileVersionFromAssets = '$currentDateTime';" >> "$flutterDir"/lib/grpc_generated/py_file_info.dart - -GREEN='\033[0;32m' -NC='\033[0m' -echo -e "\n${GREEN}Python built and put to $flutterDir/assets/$exeNameFull${NC}" \ No newline at end of file diff --git a/starter-kit/prepare-sources.sh b/starter-kit/prepare-sources.sh deleted file mode 100644 index f966b902b49acf21c6418448c310e2e1cc62f25f..0000000000000000000000000000000000000000 --- a/starter-kit/prepare-sources.sh +++ /dev/null @@ -1,219 +0,0 @@ -#!/bin/bash -set -e # halt on any error -#set -x - -proto="" -flutterDir="" -pythonDir="" -exeName="server_py_flutter" - -# Loop through command line arguments - -while [[ $# -gt 0 ]]; do - case "$1" in - --proto) - proto="$2" - shift 2 - ;; - --flutterDir) - flutterDir="$2" - shift 2 - ;; - --pythonDir) - pythonDir="$2" - shift 2 - ;; - --exeName) - exeName="$2" - shift 2 - ;; - *) - shift - ;; - esac -done - -if [[ -z "$proto" ]]; then - echo "Error: Missing required parameter '--proto'" - exit 1 -fi - -if [[ ! -f "$proto" ]]; then - echo "Error: Protofile '$proto' does not exist" - exit 1 -fi - -if [[ -z "$flutterDir" ]]; then - echo "Error: Missing required parameter '--flutterDir'" - exit 1 -fi - -if [[ -z "$pythonDir" ]]; then - echo "Error: Missing required parameter '--pythonDir'" - exit 1 -fi - -mkdir -p $flutterDir -mkdir -p $pythonDir - -# Convert flutterDir and pythonDir to absolute paths -flutterDir=$(realpath "$flutterDir" | sed 's/\/$//') -pythonDir=$(realpath "$pythonDir" | sed 's/\/$//') -scriptDir=$(dirname "$(realpath "$0")") -workingDir=$(pwd) -protoDir=$(dirname "$proto" | sed 's/\/$//') -grpcGeneratedDir=$flutterDir/lib/grpc_generated -protoFile=$(basename "$proto") - -serviceName=$(basename "$proto" .proto) - -# Set the Python interpreter name -if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then - PYTHON=python - grpcGeneratedDir=$(cygpath -w "$grpcGeneratedDir") -else - PYTHON=python3 -fi - - -flagFile="$protoDir/.starterDependenciesInstalled" - -if [ ! -f "$flagFile" ]; then - echo "Initializing dependencies" - echo "$OSTYPE" - # Prepare Dart/Flutter - # Update the installation command for different operating systems - - if [[ "$OSTYPE" == "darwin"* ]]; then - # macOS - brew install protobuf - elif [[ "$OSTYPE" == "linux-gnu"* ]]; then - # Linux - sudo apt install protobuf-compiler - sudo apt install python3-pip - elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then - # Windows - choco install protoc - else - echo "Error: Unsupported operating system" - exit 1 - fi - - - # Prepare Dart/Flutter - flutter pub global activate protoc_plugin - - # Prepare Python dependencies - # pip3 install -r requirements.txt - $PYTHON -m pip install grpcio - $PYTHON -m pip install grpcio-tools - $PYTHON -m pip install tinyaes - $PYTHON -m pip install pyinstaller - $PYTHON -m pip install nuitka - touch "$flagFile" -fi - -export PATH="$PATH":"$HOME/.pub-cache/bin" # make Dart's protoc_plugin available - -# Print the file name with extension -echo "$fileNameWithExtension" - -# Generate Dart code -mkdir -p $grpcGeneratedDir -cd $protoDir # changing dir to avoid created nexted folders in --dart_out beacause of implicitly following grpc namespaces -protoc --dart_out=grpc:"$grpcGeneratedDir" $protoFile -echo "$(pwd)" -cd $workingDir - -cd $flutterDir -flutter pub add grpc || echo "Can't add `grpc` to Flutter project, continuing..." -flutter pub add protobuf || echo "Can't add `protobuf` to Flutter project, continuing..." -flutter pub add path_provider || echo "Can't add 'path_provider' to Flutter project, continuing..." -flutter pub add path || echo "Can't add 'path' to Flutter project, continuing..." - -# macOS, update entitlements files and disable sandbox -entitlements_file_1="macos/Runner/DebugProfile.entitlements" -entitlements_file_2="macos/Runner/Release.entitlements" - -if [ -f "$entitlements_file_1" ]; then - # H;1h;$!d;x; - this part enables whole file processing (rather than line-by-line) - entitlements_content=$(echo "$entitlements_content" | sed 'H;1h;$!d;x; s/<key>com\.apple\.security\.app-sandbox<\/key>[[:space:]]*<true\/>/<key>com.apple.security.app-sandbox<\/key>\n\t<false\/>/' "$entitlements_file_1") - echo "$entitlements_content" > "$entitlements_file_1" -fi - -if [ -f "$entitlements_file_2" ]; then - entitlements_content=$(echo "$entitlements_content" | sed 'H;1h;$!d;x; s/<key>com\.apple\.security\.app-sandbox<\/key>[[:space:]]*<true\/>/<key>com.apple.security.app-sandbox<\/key>\n\t<false\/>/' "$entitlements_file_2") - echo "$entitlements_content" > "$entitlements_file_2" -fi - -# Dart clients -if [[ ! -f "$grpcGeneratedDir/client.dart" ]]; then - cp "$scriptDir/templates/client.dart" "$grpcGeneratedDir/client.dart" -fi -if [[ ! -f "$grpcGeneratedDir/client_native.dart" ]]; then - cp "$scriptDir/templates/client_native.dart" "$grpcGeneratedDir/client_native.dart" -fi -if [[ ! -f "$grpcGeneratedDir/client_web.dart" ]]; then - cp "$scriptDir/templates/client_web.dart" "$grpcGeneratedDir/client_web.dart" -fi - -if [ ! -f "$grpcGeneratedDir/init_py.dart" ]; then - cp "$scriptDir/templates/init_py.dart" "$grpcGeneratedDir/init_py.dart" -fi -if [ ! -f "$grpcGeneratedDir/init_py_native.dart" ]; then - cp "$scriptDir/templates/init_py_native.dart" "$grpcGeneratedDir/init_py_native.dart" -fi -if [ ! -f "$grpcGeneratedDir/init_py_web.dart" ]; then - cp "$scriptDir/templates/init_py_web.dart" "$grpcGeneratedDir/init_py_web.dart" -fi -if [ ! -f "$grpcGeneratedDir/health.pb.dart" ]; then - cp "$scriptDir/templates/health.pb.dart" "$grpcGeneratedDir/health.pb.dart" -fi -if [ ! -f "$grpcGeneratedDir/health.pbenum.dart" ]; then - cp "$scriptDir/templates/health.pbenum.dart" "$grpcGeneratedDir/health.pbenum.dart" -fi -if [ ! -f "$grpcGeneratedDir/health.pbgrpc.dart" ]; then - cp "$scriptDir/templates/health.pbgrpc.dart" "$grpcGeneratedDir/health.pbgrpc.dart" -fi -if [ ! -f "$grpcGeneratedDir/health.pbjson.dart" ]; then - cp "$scriptDir/templates/health.pbjson.dart" "$grpcGeneratedDir/health.pbjson.dart" -fi - - - -echo "// !Will be rewriten upon \`prepare sources\` or \`build\` actions by Flutter-Python starter kit" > $grpcGeneratedDir/py_file_info.dart -echo "const versionFileName = 'server_py_version.txt';" >> $grpcGeneratedDir/py_file_info.dart -echo "const exeFileName = '$exeName';" >> $grpcGeneratedDir/py_file_info.dart -echo "const currentFileVersionFromAssets = '';" >> $grpcGeneratedDir/py_file_info.dart - -cd $workingDir - -# Generate Python code -mkdir -p $pythonDir -mkdir -p $pythonDir/grpc_generated -cd $protoDir # changing dir to avoid created nested folders in --dart_out beacause of implicitly following grpc namespaces -$PYTHON -m grpc_tools.protoc -I. --python_out=$pythonDir/grpc_generated --grpc_python_out=$pythonDir/grpc_generated $protoFile -cd $workingDir -cp $scriptDir/templates/__init__.py $pythonDir/grpc_generated - -# Pyhton boilderplate code for running self-hosted gRPC server -serverpy=$(cat << EOF -$(<$scriptDir/templates/server.py) -EOF -) - -if [ ! -f "$pythonDir/server.py" ]; then -echo "${serverpy//\$\{serviceName\}/$serviceName}" > "$pythonDir/server.py" -fi - -if ! grep -q "^grpcio" "$pythonDir/requirements.txt"; then - echo -e "\ngrpcio" >> "$pythonDir/requirements.txt" -fi - -if ! grep -q "^grpcio-health-checking" "$pythonDir/requirements.txt"; then - echo -e "\ngrpcio-health-checking" >> "$pythonDir/requirements.txt" -fi - -GREEN='\033[0;32m' -NC='\033[0m' -echo -e "\n${GREEN}Dart/Flutter and Python bindings have been generated for '$proto' definition${NC}" \ No newline at end of file diff --git a/starter-kit/templates/LICENSE b/starter-kit/templates/LICENSE deleted file mode 100644 index ba3c9d72735ee7be588d66eb2b748b2f546b3913..0000000000000000000000000000000000000000 --- a/starter-kit/templates/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Flutter Python Starter Kit -Copyright (c) 2023 Maxim Saplin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/starter-kit/templates/__init__.py b/starter-kit/templates/__init__.py deleted file mode 100644 index d65abb68f622e9ffc641267f175c3e82aed2fb42..0000000000000000000000000000000000000000 --- a/starter-kit/templates/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -import os -import sys -sys.path.insert(0, os.path.abspath(os.path.dirname(__file__))) \ No newline at end of file diff --git a/starter-kit/templates/client.dart b/starter-kit/templates/client.dart deleted file mode 100644 index c5679668a567e1c02df2c392be04e76a4e70474d..0000000000000000000000000000000000000000 --- a/starter-kit/templates/client.dart +++ /dev/null @@ -1,36 +0,0 @@ -import 'package:grpc/grpc_connection_interface.dart'; -// Conditional imports to enable single gRPC client creation for native and Web platfrom -import 'client_native.dart' - if (dart.library.io) 'client_native.dart' - if (dart.library.html) 'client_web.dart'; - -Map<String, ClientChannelBase> _clientChannelMap = {}; - -int? _port; - -int get defaultPort => _port ?? 50055; - -/// Override the default port where the client will attempt to connect -set defaultPort(int? value) { - _port = value; -} - -String _defaultHost = 'localhost'; - -String get defaultHost => _defaultHost; - -/// Set the default host address -set defaultHost(String value) { - _defaultHost = value; -} - -/// Lazily creates client channel, for each host/port pair there's one channel created and stored internally. -/// You can use this channel to instatiate specigic client, i.e. `MyCleint(getClientChannel())` -/// Parameters: -/// - `host`: The host address. Default value is [defaultHost]. -/// - `port`: The port number. If not provided, the [defaultPort] value will be used. -ClientChannelBase getClientChannel({String? host, int? port}) { - _clientChannelMap['$host:$port'] ??= - getGrpcClientChannel(host ?? defaultHost, port ?? defaultPort, false); - return _clientChannelMap['$host:$port']!; -} diff --git a/starter-kit/templates/client_native.dart b/starter-kit/templates/client_native.dart deleted file mode 100644 index 1c89c0ccd5cf1990345670d35ba9418f5b912e48..0000000000000000000000000000000000000000 --- a/starter-kit/templates/client_native.dart +++ /dev/null @@ -1,13 +0,0 @@ -import 'package:grpc/grpc.dart'; -import 'package:grpc/grpc_connection_interface.dart'; - -ClientChannelBase getGrpcClientChannel(String host, int port, bool useHttps) { - return ClientChannel( - host, - port: port, - options: ChannelOptions( - credentials: useHttps - ? const ChannelCredentials.secure() - : const ChannelCredentials.insecure()), - ); -} diff --git a/starter-kit/templates/client_web.dart b/starter-kit/templates/client_web.dart deleted file mode 100644 index b8e37630385ef19f940b808f24dbd2f7f26b38d0..0000000000000000000000000000000000000000 --- a/starter-kit/templates/client_web.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:grpc/grpc_connection_interface.dart'; -import 'package:grpc/grpc_web.dart'; - -ClientChannelBase getGrpcClientChannel(String host, int port, bool useHttp) { - return GrpcWebClientChannel.xhr( - Uri.parse('http${useHttp ? 's' : ''}://$host:$port')); -} diff --git a/starter-kit/templates/health.pb.dart b/starter-kit/templates/health.pb.dart deleted file mode 100644 index 16ee88eb374f87b6a4a65085ac8b27b90ad818a0..0000000000000000000000000000000000000000 --- a/starter-kit/templates/health.pb.dart +++ /dev/null @@ -1,122 +0,0 @@ -// -// Generated code. Do not modify. -// source: health.proto -// -// @dart = 2.12 - -// ignore_for_file: annotate_overrides, camel_case_types, comment_references -// ignore_for_file: constant_identifier_names, library_prefixes -// ignore_for_file: non_constant_identifier_names, prefer_final_fields -// ignore_for_file: unnecessary_import, unnecessary_this, unused_import - -import 'dart:core' as $core; - -import 'package:protobuf/protobuf.dart' as $pb; - -import 'health.pbenum.dart'; - -export 'health.pbenum.dart'; - -class HealthCheckRequest extends $pb.GeneratedMessage { - factory HealthCheckRequest({ - $core.String? service, - }) { - final $result = create(); - if (service != null) { - $result.service = service; - } - return $result; - } - HealthCheckRequest._() : super(); - factory HealthCheckRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory HealthCheckRequest.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - - static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'HealthCheckRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'grpc.health.v1'), createEmptyInstance: create) - ..aOS(1, _omitFieldNames ? '' : 'service') - ..hasRequiredFields = false - ; - - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - HealthCheckRequest clone() => HealthCheckRequest()..mergeFromMessage(this); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - HealthCheckRequest copyWith(void Function(HealthCheckRequest) updates) => super.copyWith((message) => updates(message as HealthCheckRequest)) as HealthCheckRequest; - - $pb.BuilderInfo get info_ => _i; - - @$core.pragma('dart2js:noInline') - static HealthCheckRequest create() => HealthCheckRequest._(); - HealthCheckRequest createEmptyInstance() => create(); - static $pb.PbList<HealthCheckRequest> createRepeated() => $pb.PbList<HealthCheckRequest>(); - @$core.pragma('dart2js:noInline') - static HealthCheckRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<HealthCheckRequest>(create); - static HealthCheckRequest? _defaultInstance; - - @$pb.TagNumber(1) - $core.String get service => $_getSZ(0); - @$pb.TagNumber(1) - set service($core.String v) { $_setString(0, v); } - @$pb.TagNumber(1) - $core.bool hasService() => $_has(0); - @$pb.TagNumber(1) - void clearService() => clearField(1); -} - -class HealthCheckResponse extends $pb.GeneratedMessage { - factory HealthCheckResponse({ - HealthCheckResponse_ServingStatus? status, - }) { - final $result = create(); - if (status != null) { - $result.status = status; - } - return $result; - } - HealthCheckResponse._() : super(); - factory HealthCheckResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory HealthCheckResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - - static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'HealthCheckResponse', package: const $pb.PackageName(_omitMessageNames ? '' : 'grpc.health.v1'), createEmptyInstance: create) - ..e<HealthCheckResponse_ServingStatus>(1, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: HealthCheckResponse_ServingStatus.UNKNOWN, valueOf: HealthCheckResponse_ServingStatus.valueOf, enumValues: HealthCheckResponse_ServingStatus.values) - ..hasRequiredFields = false - ; - - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - HealthCheckResponse clone() => HealthCheckResponse()..mergeFromMessage(this); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - HealthCheckResponse copyWith(void Function(HealthCheckResponse) updates) => super.copyWith((message) => updates(message as HealthCheckResponse)) as HealthCheckResponse; - - $pb.BuilderInfo get info_ => _i; - - @$core.pragma('dart2js:noInline') - static HealthCheckResponse create() => HealthCheckResponse._(); - HealthCheckResponse createEmptyInstance() => create(); - static $pb.PbList<HealthCheckResponse> createRepeated() => $pb.PbList<HealthCheckResponse>(); - @$core.pragma('dart2js:noInline') - static HealthCheckResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<HealthCheckResponse>(create); - static HealthCheckResponse? _defaultInstance; - - @$pb.TagNumber(1) - HealthCheckResponse_ServingStatus get status => $_getN(0); - @$pb.TagNumber(1) - set status(HealthCheckResponse_ServingStatus v) { setField(1, v); } - @$pb.TagNumber(1) - $core.bool hasStatus() => $_has(0); - @$pb.TagNumber(1) - void clearStatus() => clearField(1); -} - - -const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names'); -const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names'); diff --git a/starter-kit/templates/health.pbenum.dart b/starter-kit/templates/health.pbenum.dart deleted file mode 100644 index 58fc4f8b48fbca0d055879a21497505a5b7e2533..0000000000000000000000000000000000000000 --- a/starter-kit/templates/health.pbenum.dart +++ /dev/null @@ -1,36 +0,0 @@ -// -// Generated code. Do not modify. -// source: health.proto -// -// @dart = 2.12 - -// ignore_for_file: annotate_overrides, camel_case_types, comment_references -// ignore_for_file: constant_identifier_names, library_prefixes -// ignore_for_file: non_constant_identifier_names, prefer_final_fields -// ignore_for_file: unnecessary_import, unnecessary_this, unused_import - -import 'dart:core' as $core; - -import 'package:protobuf/protobuf.dart' as $pb; - -class HealthCheckResponse_ServingStatus extends $pb.ProtobufEnum { - static const HealthCheckResponse_ServingStatus UNKNOWN = HealthCheckResponse_ServingStatus._(0, _omitEnumNames ? '' : 'UNKNOWN'); - static const HealthCheckResponse_ServingStatus SERVING = HealthCheckResponse_ServingStatus._(1, _omitEnumNames ? '' : 'SERVING'); - static const HealthCheckResponse_ServingStatus NOT_SERVING = HealthCheckResponse_ServingStatus._(2, _omitEnumNames ? '' : 'NOT_SERVING'); - static const HealthCheckResponse_ServingStatus SERVICE_UNKNOWN = HealthCheckResponse_ServingStatus._(3, _omitEnumNames ? '' : 'SERVICE_UNKNOWN'); - - static const $core.List<HealthCheckResponse_ServingStatus> values = <HealthCheckResponse_ServingStatus> [ - UNKNOWN, - SERVING, - NOT_SERVING, - SERVICE_UNKNOWN, - ]; - - static final $core.Map<$core.int, HealthCheckResponse_ServingStatus> _byValue = $pb.ProtobufEnum.initByValue(values); - static HealthCheckResponse_ServingStatus? valueOf($core.int value) => _byValue[value]; - - const HealthCheckResponse_ServingStatus._($core.int v, $core.String n) : super(v, n); -} - - -const _omitEnumNames = $core.bool.fromEnvironment('protobuf.omit_enum_names'); diff --git a/starter-kit/templates/health.pbgrpc.dart b/starter-kit/templates/health.pbgrpc.dart deleted file mode 100644 index bb346137fee1e942d94ffddf7eee9d384b0eca9e..0000000000000000000000000000000000000000 --- a/starter-kit/templates/health.pbgrpc.dart +++ /dev/null @@ -1,79 +0,0 @@ -// -// Generated code. Do not modify. -// source: health.proto -// -// @dart = 2.12 - -// ignore_for_file: annotate_overrides, camel_case_types, comment_references -// ignore_for_file: constant_identifier_names, library_prefixes -// ignore_for_file: non_constant_identifier_names, prefer_final_fields -// ignore_for_file: unnecessary_import, unnecessary_this, unused_import - -import 'dart:async' as $async; -import 'dart:core' as $core; - -import 'package:grpc/service_api.dart' as $grpc; -import 'package:protobuf/protobuf.dart' as $pb; - -import 'health.pb.dart' as $0; - -export 'health.pb.dart'; - -@$pb.GrpcServiceName('grpc.health.v1.Health') -class HealthClient extends $grpc.Client { - static final _$check = $grpc.ClientMethod<$0.HealthCheckRequest, $0.HealthCheckResponse>( - '/grpc.health.v1.Health/Check', - ($0.HealthCheckRequest value) => value.writeToBuffer(), - ($core.List<$core.int> value) => $0.HealthCheckResponse.fromBuffer(value)); - static final _$watch = $grpc.ClientMethod<$0.HealthCheckRequest, $0.HealthCheckResponse>( - '/grpc.health.v1.Health/Watch', - ($0.HealthCheckRequest value) => value.writeToBuffer(), - ($core.List<$core.int> value) => $0.HealthCheckResponse.fromBuffer(value)); - - HealthClient($grpc.ClientChannel channel, - {$grpc.CallOptions? options, - $core.Iterable<$grpc.ClientInterceptor>? interceptors}) - : super(channel, options: options, - interceptors: interceptors); - - $grpc.ResponseFuture<$0.HealthCheckResponse> check($0.HealthCheckRequest request, {$grpc.CallOptions? options}) { - return $createUnaryCall(_$check, request, options: options); - } - - $grpc.ResponseStream<$0.HealthCheckResponse> watch($0.HealthCheckRequest request, {$grpc.CallOptions? options}) { - return $createStreamingCall(_$watch, $async.Stream.fromIterable([request]), options: options); - } -} - -@$pb.GrpcServiceName('grpc.health.v1.Health') -abstract class HealthServiceBase extends $grpc.Service { - $core.String get $name => 'grpc.health.v1.Health'; - - HealthServiceBase() { - $addMethod($grpc.ServiceMethod<$0.HealthCheckRequest, $0.HealthCheckResponse>( - 'Check', - check_Pre, - false, - false, - ($core.List<$core.int> value) => $0.HealthCheckRequest.fromBuffer(value), - ($0.HealthCheckResponse value) => value.writeToBuffer())); - $addMethod($grpc.ServiceMethod<$0.HealthCheckRequest, $0.HealthCheckResponse>( - 'Watch', - watch_Pre, - false, - true, - ($core.List<$core.int> value) => $0.HealthCheckRequest.fromBuffer(value), - ($0.HealthCheckResponse value) => value.writeToBuffer())); - } - - $async.Future<$0.HealthCheckResponse> check_Pre($grpc.ServiceCall call, $async.Future<$0.HealthCheckRequest> request) async { - return check(call, await request); - } - - $async.Stream<$0.HealthCheckResponse> watch_Pre($grpc.ServiceCall call, $async.Future<$0.HealthCheckRequest> request) async* { - yield* watch(call, await request); - } - - $async.Future<$0.HealthCheckResponse> check($grpc.ServiceCall call, $0.HealthCheckRequest request); - $async.Stream<$0.HealthCheckResponse> watch($grpc.ServiceCall call, $0.HealthCheckRequest request); -} diff --git a/starter-kit/templates/health.pbjson.dart b/starter-kit/templates/health.pbjson.dart deleted file mode 100644 index bf29fbb60cf7217785871b3c2328cbbdd856c73d..0000000000000000000000000000000000000000 --- a/starter-kit/templates/health.pbjson.dart +++ /dev/null @@ -1,54 +0,0 @@ -// -// Generated code. Do not modify. -// source: health.proto -// -// @dart = 2.12 - -// ignore_for_file: annotate_overrides, camel_case_types, comment_references -// ignore_for_file: constant_identifier_names, library_prefixes -// ignore_for_file: non_constant_identifier_names, prefer_final_fields -// ignore_for_file: unnecessary_import, unnecessary_this, unused_import - -import 'dart:convert' as $convert; -import 'dart:core' as $core; -import 'dart:typed_data' as $typed_data; - -@$core.Deprecated('Use healthCheckRequestDescriptor instead') -const HealthCheckRequest$json = { - '1': 'HealthCheckRequest', - '2': [ - {'1': 'service', '3': 1, '4': 1, '5': 9, '10': 'service'}, - ], -}; - -/// Descriptor for `HealthCheckRequest`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List healthCheckRequestDescriptor = $convert.base64Decode( - 'ChJIZWFsdGhDaGVja1JlcXVlc3QSGAoHc2VydmljZRgBIAEoCVIHc2VydmljZQ=='); - -@$core.Deprecated('Use healthCheckResponseDescriptor instead') -const HealthCheckResponse$json = { - '1': 'HealthCheckResponse', - '2': [ - {'1': 'status', '3': 1, '4': 1, '5': 14, '6': '.grpc.health.v1.HealthCheckResponse.ServingStatus', '10': 'status'}, - ], - '4': [HealthCheckResponse_ServingStatus$json], -}; - -@$core.Deprecated('Use healthCheckResponseDescriptor instead') -const HealthCheckResponse_ServingStatus$json = { - '1': 'ServingStatus', - '2': [ - {'1': 'UNKNOWN', '2': 0}, - {'1': 'SERVING', '2': 1}, - {'1': 'NOT_SERVING', '2': 2}, - {'1': 'SERVICE_UNKNOWN', '2': 3}, - ], -}; - -/// Descriptor for `HealthCheckResponse`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List healthCheckResponseDescriptor = $convert.base64Decode( - 'ChNIZWFsdGhDaGVja1Jlc3BvbnNlEkkKBnN0YXR1cxgBIAEoDjIxLmdycGMuaGVhbHRoLnYxLk' - 'hlYWx0aENoZWNrUmVzcG9uc2UuU2VydmluZ1N0YXR1c1IGc3RhdHVzIk8KDVNlcnZpbmdTdGF0' - 'dXMSCwoHVU5LTk9XThAAEgsKB1NFUlZJTkcQARIPCgtOT1RfU0VSVklORxACEhMKD1NFUlZJQ0' - 'VfVU5LTk9XThAD'); - diff --git a/starter-kit/templates/init_py.dart b/starter-kit/templates/init_py.dart deleted file mode 100644 index 80264403e40943a464819574295123f25ec16bb7..0000000000000000000000000000000000000000 --- a/starter-kit/templates/init_py.dart +++ /dev/null @@ -1,75 +0,0 @@ -import 'package:app/grpc_generated/health.pbgrpc.dart'; -import 'package:flutter/foundation.dart'; - -import 'client.dart'; -import 'init_py_native.dart' - if (dart.library.io) 'init_py_native.dart' - if (dart.library.html) 'init_py_web.dart'; - -bool localPyStartSkipped = false; - -/// Initialize Python part, start self-hosted server for desktop, await for local -/// or remote gRPC server to respond. If no response is resived within 15 second -/// exception is thrown. -/// Set [doNotStartPy] to `true` if you would like to use remote server -Future<void> initPy([bool doNoStartPy = false]) async { - _initParamsFromEnvVars(doNoStartPy); - - // Launch self-hosted servr or do nothing - await (localPyStartSkipped ? Future(() => null) : initPyImpl()); - - await _waitForServer(); -} - -Future<void> _waitForServer() async { - var cleint = HealthClient(getClientChannel()); - var request = HealthCheckRequest(); - var started = false; - - for (var i = 0; i < 30; i++) { - try { - var r = await cleint.check(request); - - if (r.status == HealthCheckResponse_ServingStatus.SERVING) { - started = true; - break; - } - } catch (_) { - await Future.delayed(const Duration(milliseconds: 500)); - } - } - - if (!started) { - throw "Can't connect to gRPC server"; - } -} - -void _initParamsFromEnvVars(bool doNoStartPy) { - // Hack to get access to --dart-define values in the web https://stackoverflow.com/questions/65647090/access-dart-define-environment-variables-inside-index-html - if (kIsWeb) { - initPyImpl(); - } - - var flag = const String.fromEnvironment('useRemote', defaultValue: 'false') == - 'true'; - if (doNoStartPy || flag) { - localPyStartSkipped = true; - } - - var hostOverride = const String.fromEnvironment('host', defaultValue: ''); - if (hostOverride.isNotEmpty) { - defaultHost = hostOverride; - } - - var portOverride = - int.tryParse(const String.fromEnvironment('port', defaultValue: '')); - if (portOverride != null) { - defaultPort = portOverride; - } -} - -/// Searches for any processes that match Python server and kills those. -/// Does nothing in the Web environment. -Future<void> shutdownPyIfAny() { - return shutdownPyIfAnyImpl(); -} diff --git a/starter-kit/templates/init_py_native.dart b/starter-kit/templates/init_py_native.dart deleted file mode 100644 index 09d8c76dcbeb456a474018269a00aad180c654fe..0000000000000000000000000000000000000000 --- a/starter-kit/templates/init_py_native.dart +++ /dev/null @@ -1,119 +0,0 @@ -import 'dart:io'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/services.dart'; -import 'package:path/path.dart' as p; -import 'package:path_provider/path_provider.dart'; - -import 'py_file_info.dart'; -import 'client.dart'; - -Future<void> initPyImpl({String host = "localhost", int? port}) async { - var dir = await getApplicationSupportDirectory(); - var filePath = await _prepareExecutable(dir.path); - - // Ask OS to provide a free port if port is null and host is localhost - if (port == null && host == "localhost") { - var serverSocket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0); - port = serverSocket.port; - serverSocket.close(); - defaultPort = port; - } - - await shutdownPyIfAnyImpl(); - - if (defaultTargetPlatform == TargetPlatform.macOS || - defaultTargetPlatform == TargetPlatform.linux) { - await Process.run("chmod", ["u+x", filePath]); - } - var p = await Process.start(filePath, [port.toString()]); - - int? exitCode; - - p.exitCode.then((v) { - exitCode = v; - }); - - // Give a couple of seconds to make sure there're no exceptions upon lanuching Python server - - await Future.delayed(const Duration(seconds: 1)); - if (exitCode != null) { - throw 'Failure while launching server process. It stopped right after starting. Exit code: $exitCode'; - } -} - -Future<String> _prepareExecutable(String directory) async { - var file = File(p.join(directory, _getAssetName())); - var versionFile = File(p.join(directory, versionFileName)); - - if (!file.existsSync()) { - ByteData pyExe = - await PlatformAssetBundle().load('assets/${_getAssetName()}'); - await _writeFile(file, pyExe, versionFile); - } else { - // Check version file and asset sizes, version in the file and the constant - // If they do not match or the version file does not exist, update the executable and version file - var versionMismatch = false; - ByteData pyExe = - await PlatformAssetBundle().load('assets/${_getAssetName()}'); - var loadedBinarySize = pyExe.buffer.lengthInBytes; - var currentBinarySize = await file.length(); - if (loadedBinarySize != currentBinarySize) { - versionMismatch = true; - } - - if (!versionFile.existsSync()) { - versionMismatch = true; - } else { - var fileVersion = await versionFile.readAsString(); - - if (fileVersion != currentFileVersionFromAssets) { - versionMismatch = true; - } - } - - if (versionMismatch) { - await _writeFile(file, pyExe, versionFile); - } - } - - return file.path; -} - -Future<void> _writeFile(File file, ByteData pyExe, File versionFile) async { - if (file.existsSync()) { - file.deleteSync(); - } - await file.create(recursive: true); - await file.writeAsBytes(pyExe.buffer.asUint8List()); - await versionFile.writeAsString(currentFileVersionFromAssets); -} - -/// Searches for any processes that match Python server and kills those -Future<void> shutdownPyIfAnyImpl() async { - var name = _getAssetName(); - - switch (defaultTargetPlatform) { - case TargetPlatform.linux: - case TargetPlatform.macOS: - await Process.run('pkill', [name]); - break; - case TargetPlatform.windows: - await Process.run('taskkill', ['/F', '/IM', name]); - break; - default: - break; - } -} - -String _getAssetName() { - var name = ''; - - if (defaultTargetPlatform == TargetPlatform.windows) { - name += '${exeFileName}_win.exe'; - } else if (defaultTargetPlatform == TargetPlatform.macOS) { - name += '${exeFileName}_osx'; - } else if (defaultTargetPlatform == TargetPlatform.linux) { - name += '${exeFileName}_lnx'; - } - return name; -} diff --git a/starter-kit/templates/init_py_web.dart b/starter-kit/templates/init_py_web.dart deleted file mode 100644 index f156f4dd2b4d017fb7f0a15d0d60bec944ddb16b..0000000000000000000000000000000000000000 --- a/starter-kit/templates/init_py_web.dart +++ /dev/null @@ -1,10 +0,0 @@ -// ignore_for_file: avoid_web_libraries_in_flutter - -import 'dart:html' as html; - -Future<void> initPyImpl() async { - // Fire special dart event pushing env variables to Dart on app start - html.document.dispatchEvent(html.CustomEvent("dart_loaded")); -} - -Future<void> shutdownPyIfAnyImpl() async {} diff --git a/starter-kit/templates/server.py b/starter-kit/templates/server.py deleted file mode 100644 index 8066fccb961ed1a025e5c8f7d68fac7b9ee0969e..0000000000000000000000000000000000000000 --- a/starter-kit/templates/server.py +++ /dev/null @@ -1,29 +0,0 @@ -import sys -from concurrent import futures -import grpc -from grpc_health.v1 import health_pb2_grpc -from grpc_health.v1 import health -# TODO, import generated gRPC stubs -from grpc_generated import service_pb2_grpc -# TODO, import your service implementation -from number_sorting import NumberSortingService - -def serve(): - DEFAULT_PORT = 50055 - # Get the port number from the command line parameter - port = int(sys.argv[1]) if len(sys.argv) > 1 else DEFAULT_PORT - HOST = f'localhost:{port}' - - server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) - - # TODO, add your gRPC service to self-hosted server, e.g. - service_pb2_grpc.add_NumberSortingServiceServicer_to_server(NumberSortingService(), server) - health_pb2_grpc.add_HealthServicer_to_server(health.HealthServicer(), server) - - server.add_insecure_port(HOST) - print(f"gRPC server started and listening on {HOST}") - server.start() - server.wait_for_termination() - -if __name__ == '__main__': - serve()