From 7370acc48642fef618f9da572c471fd2de566c41 Mon Sep 17 00:00:00 2001 From: henryhdr Date: Mon, 6 May 2024 17:28:10 +0200 Subject: [PATCH] First commit --- .gitignore | 43 ++ .metadata | 45 ++ README.md | 16 +- analysis_options.yaml | 28 + android/.gitignore | 13 + android/app/build.gradle | 67 ++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 44 ++ .../flutter_application_1/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 18 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 26 + assets/images/flyer-gotour6-model.png | Bin 0 -> 361837 bytes assets/images/iphone-15-pro-model.png | Bin 0 -> 32082 bytes assets/images/porsche-model.png | Bin 0 -> 948799 bytes assets/images/real-estate-model.png | Bin 0 -> 656203 bytes ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 616 +++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 1418 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 49 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/enums.dart | 4 + lib/main.dart | 243 ++++++ lib/translations.dart | 10 + lib/utils.dart | 19 + lib/widgets/chart_widget.dart | 62 ++ lib/widgets/expandable_widget.dart | 70 ++ lib/widgets/input_widget.dart | 67 ++ lib/widgets/interval_widget.dart | 113 +++ lib/widgets/result_widget.dart | 117 +++ linux/.gitignore | 1 + linux/CMakeLists.txt | 145 ++++ linux/flutter/CMakeLists.txt | 88 +++ linux/flutter/generated_plugin_registrant.cc | 11 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 23 + linux/main.cc | 6 + linux/my_application.cc | 124 +++ linux/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 10 + macos/Runner.xcodeproj/project.pbxproj | 705 ++++++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 +++++++++ macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 12 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 8 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.lock | 236 ++++++ pubspec.yaml | 93 +++ web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes web/index.html | 59 ++ web/manifest.json | 35 + windows/.gitignore | 17 + windows/CMakeLists.txt | 108 +++ windows/flutter/CMakeLists.txt | 109 +++ .../flutter/generated_plugin_registrant.cc | 11 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 23 + windows/runner/CMakeLists.txt | 40 + windows/runner/Runner.rc | 121 +++ windows/runner/flutter_window.cpp | 71 ++ windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 ++ windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes windows/runner/runner.exe.manifest | 20 + windows/runner/utils.cpp | 65 ++ windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 288 +++++++ windows/runner/win32_window.h | 102 +++ 139 files changed, 5531 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/flutter_application_1/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 assets/images/flyer-gotour6-model.png create mode 100644 assets/images/iphone-15-pro-model.png create mode 100644 assets/images/porsche-model.png create mode 100644 assets/images/real-estate-model.png create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/enums.dart create mode 100644 lib/main.dart create mode 100644 lib/translations.dart create mode 100644 lib/utils.dart create mode 100644 lib/widgets/chart_widget.dart create mode 100644 lib/widgets/expandable_widget.dart create mode 100644 lib/widgets/input_widget.dart create mode 100644 lib/widgets/interval_widget.dart create mode 100644 lib/widgets/result_widget.dart create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 linux/main.cc create mode 100644 linux/my_application.cc create mode 100644 linux/my_application.h create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..29a3a50 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# 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/.metadata b/.metadata new file mode 100644 index 0000000..32dc8a5 --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "300451adae589accbece3490f4396f10bdf15e6e" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 300451adae589accbece3490f4396f10bdf15e6e + base_revision: 300451adae589accbece3490f4396f10bdf15e6e + - platform: android + create_revision: 300451adae589accbece3490f4396f10bdf15e6e + base_revision: 300451adae589accbece3490f4396f10bdf15e6e + - platform: ios + create_revision: 300451adae589accbece3490f4396f10bdf15e6e + base_revision: 300451adae589accbece3490f4396f10bdf15e6e + - platform: linux + create_revision: 300451adae589accbece3490f4396f10bdf15e6e + base_revision: 300451adae589accbece3490f4396f10bdf15e6e + - platform: macos + create_revision: 300451adae589accbece3490f4396f10bdf15e6e + base_revision: 300451adae589accbece3490f4396f10bdf15e6e + - platform: web + create_revision: 300451adae589accbece3490f4396f10bdf15e6e + base_revision: 300451adae589accbece3490f4396f10bdf15e6e + - platform: windows + create_revision: 300451adae589accbece3490f4396f10bdf15e6e + base_revision: 300451adae589accbece3490f4396f10bdf15e6e + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/README.md b/README.md index df6c0fc..2c8a8ae 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,16 @@ -# repository_1 +# flutter_application_1 +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# 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/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..40841d1 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,67 @@ +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.flutter_application_1" + compileSdk 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.flutter_application_1" + // 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/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..2babbb1 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/flutter_application_1/MainActivity.kt b/android/app/src/main/kotlin/com/example/flutter_application_1/MainActivity.kt new file mode 100644 index 0000000..7751704 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/flutter_application_1/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.flutter_application_1 + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..bc157bd --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..598d13f --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e1ca574 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..1d6d19b --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,26 @@ +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-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false +} + +include ":app" diff --git a/assets/images/flyer-gotour6-model.png b/assets/images/flyer-gotour6-model.png new file mode 100644 index 0000000000000000000000000000000000000000..98eeb346f87c20e6cfad06d894bfbd23837ba7c0 GIT binary patch literal 361837 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