commit 2fe59fee0d027e92d1f7318d5196ef092641efc1 Author: baldeau Date: Sun Feb 23 20:50:34 2025 +0100 initial commit diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..6b9372e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,23 @@ + + +## Description + + + +## Type of Change + + + +- [ ] ✨ New feature (non-breaking change which adds functionality) +- [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue) +- [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change) +- [ ] 🧹 Code refactor +- [ ] βœ… Build configuration change +- [ ] πŸ“ Documentation +- [ ] πŸ—‘οΈ Chore diff --git a/.github/cspell.json b/.github/cspell.json new file mode 100644 index 0000000..f82ee7e --- /dev/null +++ b/.github/cspell.json @@ -0,0 +1,25 @@ +{ + "version": "0.2", + "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", + "dictionaries": ["vgv_allowed", "vgv_forbidden"], + "dictionaryDefinitions": [ + { + "name": "vgv_allowed", + "path": "https://raw.githubusercontent.com/verygoodopensource/very_good_dictionaries/main/allowed.txt", + "description": "Allowed VGV Spellings" + }, + { + "name": "vgv_forbidden", + "path": "https://raw.githubusercontent.com/verygoodopensource/very_good_dictionaries/main/forbidden.txt", + "description": "Forbidden VGV Spellings" + } + ], + "useGitignore": true, + "words": [ + "Contador", + "localizable", + "mostrado", + "pΓ‘gina", + "Texto" + ] +} diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml new file mode 100644 index 0000000..8ce9275 --- /dev/null +++ b/.github/dependabot.yaml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + - package-ecosystem: "pub" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 0000000..f2fb248 --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,29 @@ +name: xiao_pet_tracker + +concurrency: + group: $-$ + cancel-in-progress: true + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + semantic-pull-request: + uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1 + + build: + uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 + with: + flutter_channel: stable + + spell-check: + uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 + with: + includes: | + **/*.md + modified_files_only: false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..25a05ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,112 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/* + +# Visual Studio Code related +.classpath +.project +.settings/ +.vscode/* + +# packages file containing multi-root paths +.packages.generated + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +build/ +flutter_*.png +linked_*.ds +unlinked.ds +unlinked_spec.ds +.fvm/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java +**/android/key.properties +**/android/.idea/ +**/android/app/debug +**/android/app/profile +**/android/app/release +*.jks + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/.last_build_id +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Coverage +coverage/ + +# Submodules +packages/**/pubspec.lock + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Exceptions to the above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +!/dev/ci/**/Gemfile.lock +!.vscode/extensions.json +!.vscode/launch.json +!.idea/codeStyles/ +!.idea/dictionaries/ +!.idea/runConfigurations/ diff --git a/.idea/runConfigurations/development.xml b/.idea/runConfigurations/development.xml new file mode 100644 index 0000000..07b02c6 --- /dev/null +++ b/.idea/runConfigurations/development.xml @@ -0,0 +1,7 @@ + + + + diff --git a/.idea/runConfigurations/production.xml b/.idea/runConfigurations/production.xml new file mode 100644 index 0000000..1c5c774 --- /dev/null +++ b/.idea/runConfigurations/production.xml @@ -0,0 +1,7 @@ + + + + diff --git a/.idea/runConfigurations/staging.xml b/.idea/runConfigurations/staging.xml new file mode 100644 index 0000000..f979a68 --- /dev/null +++ b/.idea/runConfigurations/staging.xml @@ -0,0 +1,7 @@ + + + + diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..59a5a1f --- /dev/null +++ b/.metadata @@ -0,0 +1,33 @@ +# 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: "d211f42860350d914a5ad8102f9ec32764dc6d06" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + - platform: macos + create_revision: d211f42860350d914a5ad8102f9ec32764dc6d06 + base_revision: d211f42860350d914a5ad8102f9ec32764dc6d06 + - platform: ios + create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + + # 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/.nvim.lua b/.nvim.lua new file mode 100644 index 0000000..7c5744d --- /dev/null +++ b/.nvim.lua @@ -0,0 +1,19 @@ +require("flutter-tools").setup_project({ + { + name = "Development", + flavor = "development", + target = "lib/main_development.dart", + }, + { + name = "Development Simulator", + flavor = "development", + target = "lib/main_development.dart", + device = "658DAB68-40FB-4DEA-8C0B-C92451326570", + }, + { + name = "Production", + flavor = "production", + target = "lib/main_production.dart", + device = "658DAB68-40FB-4DEA-8C0B-C92451326570", + }, +}) diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..5500bce --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,9 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "dart-code.dart-code", + "dart-code.flutter", + "felixangelov.bloc" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..b4e33ce --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,34 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Launch development", + "request": "launch", + "type": "dart", + "program": "lib/main_development.dart", + "args": [ + "--flavor", + "development", + "--target", + "lib/main_development.dart" + ] + }, + { + "name": "Launch staging", + "request": "launch", + "type": "dart", + "program": "lib/main_staging.dart", + "args": ["--flavor", "staging", "--target", "lib/main_staging.dart"] + }, + { + "name": "Launch production", + "request": "launch", + "type": "dart", + "program": "lib/main_production.dart", + "args": ["--flavor", "production", "--target", "lib/main_production.dart"] + } + ] +} diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..d25fae7 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2024 Fabian Baldeau + +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. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..f8717b0 --- /dev/null +++ b/README.md @@ -0,0 +1,174 @@ +# Xiao Pet Tracker App + +Absolutely in-development! + +![coverage][coverage_badge] +[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] +[![License: MIT][license_badge]][license_link] + +--- + +## Getting Started πŸš€ + +This project contains 3 flavors: + +- development +- staging +- production + +To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands: + +```sh +# Development +$ flutter run --flavor development --target lib/main_development.dart + +# Staging +$ flutter run --flavor staging --target lib/main_staging.dart + +# Production +$ flutter run --flavor production --target lib/main_production.dart +``` + +_\*Xiao Pet Tracker works on iOS, Android, Web, and Windows._ + +--- + +## Running Tests πŸ§ͺ + +To run all unit and widget tests use the following command: + +```sh +$ flutter test --coverage --test-randomize-ordering-seed random +``` + +To view the generated coverage report you can use [lcov](https://github.com/linux-test-project/lcov). + +```sh +# Generate Coverage Report +$ genhtml coverage/lcov.info -o coverage/ + +# Open Coverage Report +$ open coverage/index.html +``` + +--- + +## Working with Translations 🌐 + +This project relies on [flutter_localizations][flutter_localizations_link] and follows the [official internationalization guide for Flutter][internationalization_link]. + +### Adding Strings + +1. To add a new localizable string, open the `app_en.arb` file at `lib/l10n/arb/app_en.arb`. + +```arb +{ + "@@locale": "en", + "counterAppBarTitle": "Counter", + "@counterAppBarTitle": { + "description": "Text shown in the AppBar of the Counter Page" + } +} +``` + +2. Then add a new key/value and description + +```arb +{ + "@@locale": "en", + "counterAppBarTitle": "Counter", + "@counterAppBarTitle": { + "description": "Text shown in the AppBar of the Counter Page" + }, + "helloWorld": "Hello World", + "@helloWorld": { + "description": "Hello World Text" + } +} +``` + +3. Use the new string + +```dart +import 'package:xiao_pet_tracker/l10n/l10n.dart'; + +@override +Widget build(BuildContext context) { + final l10n = context.l10n; + return Text(l10n.helloWorld); +} +``` + +### Adding Supported Locales + +Update the `CFBundleLocalizations` array in the `Info.plist` at `ios/Runner/Info.plist` to include the new locale. + +```xml + ... + + CFBundleLocalizations + + en + es + + + ... +``` + +### Adding Translations + +1. For each supported locale, add a new ARB file in `lib/l10n/arb`. + +``` +β”œβ”€β”€ l10n +β”‚ β”œβ”€β”€ arb +β”‚ β”‚ β”œβ”€β”€ app_en.arb +β”‚ β”‚ └── app_es.arb +``` + +2. Add the translated strings to each `.arb` file: + +`app_en.arb` + +```arb +{ + "@@locale": "en", + "counterAppBarTitle": "Counter", + "@counterAppBarTitle": { + "description": "Text shown in the AppBar of the Counter Page" + } +} +``` + +`app_es.arb` + +```arb +{ + "@@locale": "es", + "counterAppBarTitle": "Contador", + "@counterAppBarTitle": { + "description": "Texto mostrado en la AppBar de la pΓ‘gina del contador" + } +} +``` + +### Generating Translations + +To use the latest translations changes, you will need to generate them: + +1. Generate localizations for the current project: + +```sh +flutter gen-l10n --arb-dir="lib/l10n/arb" +``` + +Alternatively, run `flutter run` and code generation will take place automatically. + +[coverage_badge]: coverage_badge.svg +[flutter_localizations_link]: https://api.flutter.dev/flutter/flutter_localizations/flutter_localizations-library.html +[internationalization_link]: https://flutter.dev/docs/development/accessibility-and-localization/internationalization +[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg +[license_link]: https://opensource.org/licenses/MIT +[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg +[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis +[very_good_cli_link]: https://github.com/VeryGoodOpenSource/very_good_cli diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..3a6b5d4 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:very_good_analysis/analysis_options.6.0.0.yaml +linter: + rules: + public_member_api_docs: false diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..d6aa291 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,11 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/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..bc0674d --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,116 @@ +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' +} + +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + +android { + namespace "com.example.verygoodcore.xiao_pet_tracker" + compileSdkVersion flutter.compileSdkVersion + ndkVersion "27.0.12077973" + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = 17 + } + + 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.verygoodcore.xiao_pet_tracker" + // 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. + // ObjectBox Sync requires at least SDK 21 (Android 5.0) + minSdkVersion 21 + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + signingConfigs { + if (System.getenv("ANDROID_KEYSTORE_PATH")) { + release { + storeFile file(System.getenv("ANDROID_KEYSTORE_PATH")) + keyAlias System.getenv("ANDROID_KEYSTORE_ALIAS") + keyPassword System.getenv("ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD") + storePassword System.getenv("ANDROID_KEYSTORE_PASSWORD") + } + } else { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword keystoreProperties['storePassword'] + } + } + } + + flavorDimensions "default" + productFlavors { + production { + dimension "default" + applicationIdSuffix "" + manifestPlaceholders = [appName: "Xiao Pet Tracker"] + } + staging { + dimension "default" + applicationIdSuffix ".stg" + manifestPlaceholders = [appName: "[STG] Xiao Pet Tracker"] + } + development { + dimension "default" + applicationIdSuffix ".dev" + manifestPlaceholders = [appName: "[DEV] Xiao Pet Tracker"] + } + } + + buildTypes { + release { + signingConfig signingConfigs.release + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt') + } + debug { + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20" +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..28aa0d7 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/development/ic_launcher-playstore.png b/android/app/src/development/ic_launcher-playstore.png new file mode 100644 index 0000000..87f4662 Binary files /dev/null and b/android/app/src/development/ic_launcher-playstore.png differ diff --git a/android/app/src/development/res/drawable/ic_launcher_foreground.xml b/android/app/src/development/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..0f31f64 --- /dev/null +++ b/android/app/src/development/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/android/app/src/development/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/development/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..7353dbd --- /dev/null +++ b/android/app/src/development/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/development/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/development/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..7353dbd --- /dev/null +++ b/android/app/src/development/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/development/res/mipmap-hdpi/ic_launcher.png b/android/app/src/development/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..af80314 Binary files /dev/null and b/android/app/src/development/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..005f951 Binary files /dev/null and b/android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/android/app/src/development/res/mipmap-mdpi/ic_launcher.png b/android/app/src/development/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..1bab3a3 Binary files /dev/null and b/android/app/src/development/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..51bac1b Binary files /dev/null and b/android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/android/app/src/development/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/development/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..0c02cd6 Binary files /dev/null and b/android/app/src/development/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..e8eb3ee Binary files /dev/null and b/android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..8b8e0e4 Binary files /dev/null and b/android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..808d082 Binary files /dev/null and b/android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..3084696 Binary files /dev/null and b/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..20bc5ba Binary files /dev/null and b/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/development/res/values/ic_launcher_background.xml b/android/app/src/development/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/android/app/src/development/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a2313ec --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/ic_launcher-playstore.png b/android/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000..d920815 Binary files /dev/null and b/android/app/src/main/ic_launcher-playstore.png differ diff --git a/android/app/src/main/kotlin/com/example/verygoodcore/xiao/pet/tracker/MainActivity.kt b/android/app/src/main/kotlin/com/example/verygoodcore/xiao/pet/tracker/MainActivity.kt new file mode 100644 index 0000000..d354d10 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/verygoodcore/xiao/pet/tracker/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.verygoodcore.xiao_pet_tracker + +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..bdf0fcc --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_launch_image.xml b/android/app/src/main/res/drawable/ic_launch_image.xml new file mode 100644 index 0000000..b49e967 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launch_image.xml @@ -0,0 +1,12 @@ + + + + diff --git a/android/app/src/main/res/drawable/ic_launcher_foreground.xml b/android/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..4e37e10 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,20 @@ + + + + + + + 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..bdf0fcc --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..7353dbd --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..7353dbd --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file 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 0000000..2c681ca Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..000642c Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ 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 0000000..5ebc0f5 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..fac2554 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..391f46b Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..8d12806 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ 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 0000000..2b00529 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..479b968 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ 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 0000000..5f55d97 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..2959a5b Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..449a9f9 --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/ic_launcher_background.xml b/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..d74aa35 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + 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/app/src/staging/ic_launcher-playstore.png b/android/app/src/staging/ic_launcher-playstore.png new file mode 100644 index 0000000..c0524bd Binary files /dev/null and b/android/app/src/staging/ic_launcher-playstore.png differ diff --git a/android/app/src/staging/res/drawable/ic_launcher_foreground.xml b/android/app/src/staging/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..0f48a6e --- /dev/null +++ b/android/app/src/staging/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..7353dbd --- /dev/null +++ b/android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..7353dbd --- /dev/null +++ b/android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/staging/res/mipmap-hdpi/ic_launcher.png b/android/app/src/staging/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..84db84c Binary files /dev/null and b/android/app/src/staging/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/staging/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/staging/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..a982bc0 Binary files /dev/null and b/android/app/src/staging/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/android/app/src/staging/res/mipmap-mdpi/ic_launcher.png b/android/app/src/staging/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..e54346b Binary files /dev/null and b/android/app/src/staging/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/staging/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/staging/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..0c92416 Binary files /dev/null and b/android/app/src/staging/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..bcb4fbd Binary files /dev/null and b/android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/staging/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/staging/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..cee8a88 Binary files /dev/null and b/android/app/src/staging/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..fc2a1d2 Binary files /dev/null and b/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..eda13fa Binary files /dev/null and b/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..a186cfb Binary files /dev/null and b/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..71e04d2 Binary files /dev/null and b/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/staging/res/values/ic_launcher_background.xml b/android/app/src/staging/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/android/app/src/staging/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file 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..0c16a38 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true +android.suppressUnsupportedCompileSdk=34 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..09523c0 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew new file mode 100755 index 0000000..f5feea6 --- /dev/null +++ b/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright Β© 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions Β«$varΒ», Β«${var}Β», Β«${var:-default}Β», Β«${var+SET}Β», +# Β«${var#prefix}Β», Β«${var%suffix}Β», and Β«$( cmd )Β»; +# * compound commands having a testable exit status, especially Β«caseΒ»; +# * various built-in commands including Β«commandΒ», Β«setΒ», and Β«ulimitΒ». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..9b42019 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..2ad4375 --- /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 "8.7.1" apply false + id "org.jetbrains.kotlin.android" version "1.9.20" apply false +} + +include ":app" diff --git a/coverage_badge.svg b/coverage_badge.svg new file mode 100644 index 0000000..88bfadf --- /dev/null +++ b/coverage_badge.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + coverage + coverage + 100% + 100% + + \ No newline at end of file diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..8c6e561 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..ec97fc6 --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..c4855bf --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..d97f17e --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,44 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '12.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 0000000..8787b17 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,48 @@ +PODS: + - Flutter (1.0.0) + - flutter_blue_plus (0.0.1): + - Flutter + - ObjectBox (4.0.1) + - objectbox_flutter_libs (0.0.1): + - Flutter + - ObjectBox (= 4.0.1) + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - permission_handler_apple (9.3.0): + - Flutter + +DEPENDENCIES: + - Flutter (from `Flutter`) + - flutter_blue_plus (from `.symlinks/plugins/flutter_blue_plus/ios`) + - objectbox_flutter_libs (from `.symlinks/plugins/objectbox_flutter_libs/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) + +SPEC REPOS: + trunk: + - ObjectBox + +EXTERNAL SOURCES: + Flutter: + :path: Flutter + flutter_blue_plus: + :path: ".symlinks/plugins/flutter_blue_plus/ios" + objectbox_flutter_libs: + :path: ".symlinks/plugins/objectbox_flutter_libs/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" + permission_handler_apple: + :path: ".symlinks/plugins/permission_handler_apple/ios" + +SPEC CHECKSUMS: + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_blue_plus: 4837da7d00cf5d441fdd6635b3a57f936778ea96 + ObjectBox: 0bc4bb75eea85f6af06b369148b334c2056bbc29 + objectbox_flutter_libs: 2ce0da386c780878687c736b528ceaf371573efb + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 + +PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796 + +COCOAPODS: 1.16.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c68605a --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,1359 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 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 */; }; + 9DDFF6C0B722C1D52C0ADF00 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4BF086DFF0EF0A72A732C3F /* Pods_Runner.framework */; }; + B82C8E37A590502A2301FBDE /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E41BDE6DD478862319D5E8C /* Pods_RunnerTests.framework */; }; +/* 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 */ + 130C9FEB16FE32358D9CEFE1 /* Pods-Runner.debug-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-development.xcconfig"; sourceTree = ""; }; + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 276024B0C0EA92992C4260FD /* Pods-RunnerTests.debug-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-staging.xcconfig"; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 39933B40C50A6C9FA6AAEF2E /* Pods-Runner.profile-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-production.xcconfig"; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 3B6B70F539F21B00580B7953 /* Pods-RunnerTests.release-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release-development.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release-development.xcconfig"; sourceTree = ""; }; + 433DDD3DABCB7EF9EEAA70A0 /* Pods-RunnerTests.profile-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile-staging.xcconfig"; sourceTree = ""; }; + 506180992822E04618701AD9 /* Pods-Runner.profile-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-development.xcconfig"; sourceTree = ""; }; + 6194D2C3AD91EA2E15CE42E9 /* Pods-Runner.profile-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-staging.xcconfig"; sourceTree = ""; }; + 6E41BDE6DD478862319D5E8C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 8F7AAD7D969622AE96F9E749 /* Pods-RunnerTests.profile-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile-production.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile-production.xcconfig"; sourceTree = ""; }; + 91BEBD7930ED334EDAC04EEB /* Pods-Runner.debug-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-production.xcconfig"; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + ADF58CC900B054E29D2238B2 /* Pods-Runner.debug-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-staging.xcconfig"; sourceTree = ""; }; + B6C1E10D3DAEC91BAC07CA30 /* Pods-RunnerTests.debug-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-development.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-development.xcconfig"; sourceTree = ""; }; + BAF7EC26A1BD9F2844C735DA /* Pods-Runner.release-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-staging.xcconfig"; sourceTree = ""; }; + C62C2CF8F780926D44BE343F /* Pods-RunnerTests.debug-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-production.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-production.xcconfig"; sourceTree = ""; }; + C6A878D9068FE7F973231B67 /* Pods-RunnerTests.profile-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile-development.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile-development.xcconfig"; sourceTree = ""; }; + D4BF086DFF0EF0A72A732C3F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E48EC8648C7428050D9B4653 /* Pods-RunnerTests.release-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release-production.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release-production.xcconfig"; sourceTree = ""; }; + E9FF6B7C504CA463F4298760 /* Pods-Runner.release-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-production.xcconfig"; sourceTree = ""; }; + EEC80613AF5B67F051A2F25F /* Pods-Runner.release-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-development.xcconfig"; sourceTree = ""; }; + F33D583B49AA7DEF7D279264 /* Pods-RunnerTests.release-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release-staging.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9DDFF6C0B722C1D52C0ADF00 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1AF5A2F2F1F57858BD8D4B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B82C8E37A590502A2301FBDE /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 514B5553AB596BC329EF6FE4 /* Frameworks */ = { + isa = PBXGroup; + children = ( + D4BF086DFF0EF0A72A732C3F /* Pods_Runner.framework */, + 6E41BDE6DD478862319D5E8C /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 742FBBF2213B8B02137DB9EF /* Pods */ = { + isa = PBXGroup; + children = ( + 91BEBD7930ED334EDAC04EEB /* Pods-Runner.debug-production.xcconfig */, + ADF58CC900B054E29D2238B2 /* Pods-Runner.debug-staging.xcconfig */, + 130C9FEB16FE32358D9CEFE1 /* Pods-Runner.debug-development.xcconfig */, + E9FF6B7C504CA463F4298760 /* Pods-Runner.release-production.xcconfig */, + BAF7EC26A1BD9F2844C735DA /* Pods-Runner.release-staging.xcconfig */, + EEC80613AF5B67F051A2F25F /* Pods-Runner.release-development.xcconfig */, + 39933B40C50A6C9FA6AAEF2E /* Pods-Runner.profile-production.xcconfig */, + 6194D2C3AD91EA2E15CE42E9 /* Pods-Runner.profile-staging.xcconfig */, + 506180992822E04618701AD9 /* Pods-Runner.profile-development.xcconfig */, + C62C2CF8F780926D44BE343F /* Pods-RunnerTests.debug-production.xcconfig */, + 276024B0C0EA92992C4260FD /* Pods-RunnerTests.debug-staging.xcconfig */, + B6C1E10D3DAEC91BAC07CA30 /* Pods-RunnerTests.debug-development.xcconfig */, + E48EC8648C7428050D9B4653 /* Pods-RunnerTests.release-production.xcconfig */, + F33D583B49AA7DEF7D279264 /* Pods-RunnerTests.release-staging.xcconfig */, + 3B6B70F539F21B00580B7953 /* Pods-RunnerTests.release-development.xcconfig */, + 8F7AAD7D969622AE96F9E749 /* Pods-RunnerTests.profile-production.xcconfig */, + 433DDD3DABCB7EF9EEAA70A0 /* Pods-RunnerTests.profile-staging.xcconfig */, + C6A878D9068FE7F973231B67 /* Pods-RunnerTests.profile-development.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + 742FBBF2213B8B02137DB9EF /* Pods */, + 514B5553AB596BC329EF6FE4 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 0139721F898CD159EF3AFBD9 /* [CP] Check Pods Manifest.lock */, + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + C1AF5A2F2F1F57858BD8D4B5 /* Frameworks */, + ); + 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 = ( + 67B1C4E35E270A619D5B70BF /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 7AEE0F6C1047BEE8EA71DFC2 /* [CP] Embed Pods Frameworks */, + 5F268BC34EF8F50D378BA2D7 /* [CP] Copy Pods Resources */, + ); + 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 = NO; + LastUpgradeCheck = 1510; + 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 */ + 0139721F898CD159EF3AFBD9 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 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"; + }; + 5F268BC34EF8F50D378BA2D7 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 67B1C4E35E270A619D5B70BF /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 7AEE0F6C1047BEE8EA71DFC2 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 3C9C55192B07AC99000E5FCD /* Debug-production */ = { + 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-production"; + }; + 3C9C551A2B07AC99000E5FCD /* Debug-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Debug-production"; + }; + 3C9C551B2B07AC99000E5FCD /* Debug-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C62C2CF8F780926D44BE343F /* Pods-RunnerTests.debug-production.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.verygoodcore.xiao-pet-tracker.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-production"; + }; + 3C9C551C2B07ACA4000E5FCD /* Release-production */ = { + 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-production"; + }; + 3C9C551D2B07ACA4000E5FCD /* Release-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Release-production"; + }; + 3C9C551E2B07ACA4000E5FCD /* Release-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E48EC8648C7428050D9B4653 /* Pods-RunnerTests.release-production.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.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Release-production"; + }; + 3C9C55222B07ACBD000E5FCD /* Profile-production */ = { + 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-production"; + }; + 3C9C55232B07ACBD000E5FCD /* Profile-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Profile-production"; + }; + 3C9C55242B07ACBD000E5FCD /* Profile-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8F7AAD7D969622AE96F9E749 /* Pods-RunnerTests.profile-production.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.verygoodcore.xiao-pet-tracker"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Profile-production"; + }; + 3C9C55252B07ACE7000E5FCD /* Debug-development */ = { + 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-development"; + }; + 3C9C55262B07ACE7000E5FCD /* Debug-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev"; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "[DEV] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker.dev"; + 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-development"; + }; + 3C9C55272B07ACE7000E5FCD /* Debug-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B6C1E10D3DAEC91BAC07CA30 /* Pods-RunnerTests.debug-development.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.verygoodcore.xiao-pet-tracker.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-development"; + }; + 3C9C552B2B07AD09000E5FCD /* Profile-development */ = { + 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-development"; + }; + 3C9C552C2B07AD09000E5FCD /* Profile-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev"; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "[DEV] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker.dev"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Profile-development"; + }; + 3C9C552D2B07AD09000E5FCD /* Profile-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C6A878D9068FE7F973231B67 /* Pods-RunnerTests.profile-development.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.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Profile-development"; + }; + 3C9C552E2B07AD1B000E5FCD /* Release-development */ = { + 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-development"; + }; + 3C9C552F2B07AD1B000E5FCD /* Release-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev"; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "[DEV] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker.dev"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Release-development"; + }; + 3C9C55302B07AD1B000E5FCD /* Release-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3B6B70F539F21B00580B7953 /* Pods-RunnerTests.release-development.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.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Release-development"; + }; + 3C9C55312B07AD26000E5FCD /* Debug-staging */ = { + 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-staging"; + }; + 3C9C55322B07AD26000E5FCD /* Debug-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg"; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "[STG] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker.stg"; + 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-staging"; + }; + 3C9C55332B07AD26000E5FCD /* Debug-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 276024B0C0EA92992C4260FD /* Pods-RunnerTests.debug-staging.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.verygoodcore.xiao-pet-tracker.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-staging"; + }; + 3C9C55342B07AD41000E5FCD /* Release-staging */ = { + 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-staging"; + }; + 3C9C55352B07AD41000E5FCD /* Release-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg"; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "[STG] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker.stg"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Release-staging"; + }; + 3C9C55362B07AD41000E5FCD /* Release-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F33D583B49AA7DEF7D279264 /* Pods-RunnerTests.release-staging.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.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Release-staging"; + }; + 3C9C55372B07AD4B000E5FCD /* Profile-staging */ = { + 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-staging"; + }; + 3C9C55382B07AD4B000E5FCD /* Profile-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg"; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T67F6A44RM; + ENABLE_BITCODE = NO; + FLAVOR_APP_NAME = "[STG] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PACKAGE_CONFIG = .dart_tool/package_config.json; + PRODUCT_BUNDLE_IDENTIFIER = "sh.avoid.xiao-pet-tracker.stg"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Profile-staging"; + }; + 3C9C55392B07AD4B000E5FCD /* Profile-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 433DDD3DABCB7EF9EEAA70A0 /* Pods-RunnerTests.profile-staging.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.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = "Profile-staging"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3C9C551B2B07AC99000E5FCD /* Debug-production */, + 3C9C55332B07AD26000E5FCD /* Debug-staging */, + 3C9C55272B07ACE7000E5FCD /* Debug-development */, + 3C9C551E2B07ACA4000E5FCD /* Release-production */, + 3C9C55362B07AD41000E5FCD /* Release-staging */, + 3C9C55302B07AD1B000E5FCD /* Release-development */, + 3C9C55242B07ACBD000E5FCD /* Profile-production */, + 3C9C55392B07AD4B000E5FCD /* Profile-staging */, + 3C9C552D2B07AD09000E5FCD /* Profile-development */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Release-production"; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3C9C55192B07AC99000E5FCD /* Debug-production */, + 3C9C55312B07AD26000E5FCD /* Debug-staging */, + 3C9C55252B07ACE7000E5FCD /* Debug-development */, + 3C9C551C2B07ACA4000E5FCD /* Release-production */, + 3C9C55342B07AD41000E5FCD /* Release-staging */, + 3C9C552E2B07AD1B000E5FCD /* Release-development */, + 3C9C55222B07ACBD000E5FCD /* Profile-production */, + 3C9C55372B07AD4B000E5FCD /* Profile-staging */, + 3C9C552B2B07AD09000E5FCD /* Profile-development */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Release-production"; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3C9C551A2B07AC99000E5FCD /* Debug-production */, + 3C9C55322B07AD26000E5FCD /* Debug-staging */, + 3C9C55262B07ACE7000E5FCD /* Debug-development */, + 3C9C551D2B07ACA4000E5FCD /* Release-production */, + 3C9C55352B07AD41000E5FCD /* Release-staging */, + 3C9C552F2B07AD1B000E5FCD /* Release-development */, + 3C9C55232B07ACBD000E5FCD /* Profile-production */, + 3C9C55382B07AD4B000E5FCD /* Profile-staging */, + 3C9C552C2B07AD09000E5FCD /* Profile-development */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Release-production"; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..8e3ca5d --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/development.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/development.xcscheme new file mode 100644 index 0000000..06da47c --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/development.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme new file mode 100644 index 0000000..b59fb06 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme new file mode 100644 index 0000000..6e3b252 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..b636303 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@main +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png new file mode 100644 index 0000000..668231c Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png new file mode 100644 index 0000000..bffc902 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png new file mode 100644 index 0000000..1ab8de3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png new file mode 100644 index 0000000..99ac1d3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png new file mode 100644 index 0000000..fdff481 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png new file mode 100644 index 0000000..9d1d688 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png new file mode 100644 index 0000000..2fc14ff Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png new file mode 100644 index 0000000..a5ae5f6 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png new file mode 100644 index 0000000..f9ed85a Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png new file mode 100644 index 0000000..0ef9635 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png new file mode 100644 index 0000000..099b1e4 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png new file mode 100644 index 0000000..bb733c9 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png new file mode 100644 index 0000000..cb96520 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png new file mode 100644 index 0000000..cffc298 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png new file mode 100644 index 0000000..19a53f2 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png new file mode 100644 index 0000000..53dfe27 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png new file mode 100644 index 0000000..754605c Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png new file mode 100644 index 0000000..3efa2e7 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png new file mode 100644 index 0000000..6f9bf17 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png new file mode 100644 index 0000000..9b2ab2e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png new file mode 100644 index 0000000..b0a9511 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png new file mode 100644 index 0000000..f7c4c98 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png new file mode 100644 index 0000000..6f7c456 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png new file mode 100644 index 0000000..bd65bcc Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png new file mode 100644 index 0000000..ca29a5a Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png new file mode 100644 index 0000000..12f6f8b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png new file mode 100644 index 0000000..a332591 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png new file mode 100644 index 0000000..b6ee3b1 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png new file mode 100644 index 0000000..675647b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png new file mode 100644 index 0000000..2d3474b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png new file mode 100644 index 0000000..283c13b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/Contents.json new file mode 100644 index 0000000..f78687a --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/Contents.json @@ -0,0 +1,344 @@ +{ + "images" : [ + { + "filename" : "40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "57.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "57x57" + }, + { + "filename" : "114.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "57x57" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "80.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "50.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "50x50" + }, + { + "filename" : "100.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "50x50" + }, + { + "filename" : "72.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "72x72" + }, + { + "filename" : "144.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "72x72" + }, + { + "filename" : "76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "filename" : "16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + }, + { + "filename" : "48.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "24x24", + "subtype" : "38mm" + }, + { + "filename" : "55.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "27.5x27.5", + "subtype" : "42mm" + }, + { + "filename" : "58.png", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "33x33", + "subtype" : "45mm" + }, + { + "filename" : "80.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "40x40", + "subtype" : "38mm" + }, + { + "filename" : "88.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "44x44", + "subtype" : "40mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "46x46", + "subtype" : "41mm" + }, + { + "filename" : "100.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "50x50", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "51x51", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "54x54", + "subtype" : "49mm" + }, + { + "filename" : "172.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "86x86", + "subtype" : "38mm" + }, + { + "filename" : "196.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "98x98", + "subtype" : "42mm" + }, + { + "filename" : "216.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "108x108", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "117x117", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "129x129", + "subtype" : "49mm" + }, + { + "filename" : "1024.png", + "idiom" : "watch-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png new file mode 100644 index 0000000..88477d4 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png new file mode 100644 index 0000000..7cc3037 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png new file mode 100644 index 0000000..0eb849d Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png new file mode 100644 index 0000000..f3395e3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png new file mode 100644 index 0000000..9c5cec1 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png new file mode 100644 index 0000000..4fe5d3f Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png new file mode 100644 index 0000000..0d96b12 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png new file mode 100644 index 0000000..a242499 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png new file mode 100644 index 0000000..8b0501e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png new file mode 100644 index 0000000..618385c Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png new file mode 100644 index 0000000..f726d9f Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png new file mode 100644 index 0000000..aec7aa6 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png new file mode 100644 index 0000000..eb94f31 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png new file mode 100644 index 0000000..0e666cd Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png new file mode 100644 index 0000000..bcc9dfc Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png new file mode 100644 index 0000000..d46c49f Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png new file mode 100644 index 0000000..985b0a5 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png new file mode 100644 index 0000000..74aa7fb Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png new file mode 100644 index 0000000..0ec06d4 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png new file mode 100644 index 0000000..fad0c39 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png new file mode 100644 index 0000000..5a802b0 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png new file mode 100644 index 0000000..fae14ac Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png new file mode 100644 index 0000000..df47459 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png new file mode 100644 index 0000000..5d7e106 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png new file mode 100644 index 0000000..c4ce793 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png new file mode 100644 index 0000000..e5d70cb Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png new file mode 100644 index 0000000..4204295 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png new file mode 100644 index 0000000..05726e3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png new file mode 100644 index 0000000..32ad065 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png new file mode 100644 index 0000000..50a9d2b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png new file mode 100644 index 0000000..9036ad5 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/Contents.json new file mode 100644 index 0000000..f78687a --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/Contents.json @@ -0,0 +1,344 @@ +{ + "images" : [ + { + "filename" : "40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "57.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "57x57" + }, + { + "filename" : "114.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "57x57" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "80.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "50.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "50x50" + }, + { + "filename" : "100.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "50x50" + }, + { + "filename" : "72.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "72x72" + }, + { + "filename" : "144.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "72x72" + }, + { + "filename" : "76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "filename" : "16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + }, + { + "filename" : "48.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "24x24", + "subtype" : "38mm" + }, + { + "filename" : "55.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "27.5x27.5", + "subtype" : "42mm" + }, + { + "filename" : "58.png", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "33x33", + "subtype" : "45mm" + }, + { + "filename" : "80.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "40x40", + "subtype" : "38mm" + }, + { + "filename" : "88.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "44x44", + "subtype" : "40mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "46x46", + "subtype" : "41mm" + }, + { + "filename" : "100.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "50x50", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "51x51", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "54x54", + "subtype" : "49mm" + }, + { + "filename" : "172.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "86x86", + "subtype" : "38mm" + }, + { + "filename" : "196.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "98x98", + "subtype" : "42mm" + }, + { + "filename" : "216.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "108x108", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "117x117", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "129x129", + "subtype" : "49mm" + }, + { + "filename" : "1024.png", + "idiom" : "watch-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png new file mode 100644 index 0000000..3223352 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000..329800c Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png new file mode 100644 index 0000000..4493eec Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png new file mode 100644 index 0000000..a231698 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png new file mode 100644 index 0000000..a73d99a Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png new file mode 100644 index 0000000..135173e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png new file mode 100644 index 0000000..e4fdb30 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png new file mode 100644 index 0000000..b285172 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 0000000..48cecab Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png new file mode 100644 index 0000000..8c9787d Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 0000000..4e78a31 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png new file mode 100644 index 0000000..d5b05b4 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png new file mode 100644 index 0000000..b2673cf Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png new file mode 100644 index 0000000..981cb64 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png new file mode 100644 index 0000000..0241f07 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png new file mode 100644 index 0000000..5aa1ea3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png new file mode 100644 index 0000000..a055b86 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 0000000..c272dd9 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png new file mode 100644 index 0000000..f59495b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png new file mode 100644 index 0000000..1a32eb8 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png new file mode 100644 index 0000000..2ceb975 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png new file mode 100644 index 0000000..42363e1 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png new file mode 100644 index 0000000..ab8e60e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png new file mode 100644 index 0000000..82c6517 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png new file mode 100644 index 0000000..0ef030b Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png new file mode 100644 index 0000000..ed8d678 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png new file mode 100644 index 0000000..e2f1999 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png new file mode 100644 index 0000000..061ef11 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 0000000..c905388 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 0000000..aac9cf7 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png new file mode 100644 index 0000000..01f5aa1 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..f78687a --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,344 @@ +{ + "images" : [ + { + "filename" : "40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "57.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "57x57" + }, + { + "filename" : "114.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "57x57" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "80.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "50.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "50x50" + }, + { + "filename" : "100.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "50x50" + }, + { + "filename" : "72.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "72x72" + }, + { + "filename" : "144.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "72x72" + }, + { + "filename" : "76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "filename" : "16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + }, + { + "filename" : "48.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "24x24", + "subtype" : "38mm" + }, + { + "filename" : "55.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "27.5x27.5", + "subtype" : "42mm" + }, + { + "filename" : "58.png", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "33x33", + "subtype" : "45mm" + }, + { + "filename" : "80.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "40x40", + "subtype" : "38mm" + }, + { + "filename" : "88.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "44x44", + "subtype" : "40mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "46x46", + "subtype" : "41mm" + }, + { + "filename" : "100.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "50x50", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "51x51", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "54x54", + "subtype" : "49mm" + }, + { + "filename" : "172.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "86x86", + "subtype" : "38mm" + }, + { + "filename" : "196.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "98x98", + "subtype" : "42mm" + }, + { + "filename" : "216.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "108x108", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "117x117", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "129x129", + "subtype" : "49mm" + }, + { + "filename" : "1024.png", + "idiom" : "watch-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/Contents.json b/ios/Runner/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/ios/Runner/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..b23a03e --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "LaunchImage@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchImage@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "LaunchImage@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png new file mode 100644 index 0000000..cea4825 Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..0e20080 Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..5c562f9 Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..6564da0 --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..917d6a3 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,62 @@ + + + + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + $(FLAVOR_APP_NAME) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLocalizations + + en + es + + CFBundleName + $(FLAVOR_APP_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + NSBluetoothAlwaysUsageDescription + This app needs access to Bluetooth to function properly. + NSBluetoothPeripheralUsageDescription + This app needs access to Bluetooth to connect to the xiao microcontroller sensor. + UIApplicationSupportsIndirectInputEvents + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportsDocumentBrowser + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/jupyter/daten/Sitz_2870afdc-9df1-47aa-94dd-45c267a44fac.csv b/jupyter/daten/Sitz_2870afdc-9df1-47aa-94dd-45c267a44fac.csv new file mode 100644 index 0000000..155ab99 --- /dev/null +++ b/jupyter/daten/Sitz_2870afdc-9df1-47aa-94dd-45c267a44fac.csv @@ -0,0 +1,148 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671711227,1731671711773,-854915,-504531,-424560,-17640000,-630000,-20860000 +1731671711329,1731671711894,-739564,-475007,-364780,6720000,-1120000,5950000 +1731671711431,1731671711984,-864614,-549488,-318481,33740000,70000,-4060000 +1731671711533,1731671712073,-831613,-594018,-369599,6580000,34510000,560000 +1731671711635,1731671712194,-728401,-436699,-415593,-3430000,-2310000,-210000 +1731671711737,1731671712284,-692289,-698816,-294081,-3360000,22680000,2030000 +1731671711838,1731671712403,-717543,-509716,-403393,12670000,9730000,630000 +1731671711940,1731671712494,-726144,-590419,-368135,5880000,3850000,4410000 +1731671712042,1731671712583,-741394,-537715,-375699,-4200000,350000,-490000 +1731671712144,1731671712705,-762317,-538752,-376431,4550000,-2730000,-770000 +1731671712246,1731671712794,-740906,-555405,-379237,-1610000,-3080000,-840000 +1731671712348,1731671712913,-749873,-555893,-375455,-560000,-2100000,-420000 +1731671712449,1731671713003,-748836,-544730,-370209,-840000,-3220000,-630000 +1731671712551,1731671713094,-751276,-549061,-367342,-1960000,-2660000,-560000 +1731671712653,1731671713214,-753167,-543022,-372588,-1540000,-2030000,-630000 +1731671712755,1731671713304,-749751,-550586,-364475,140000,-2590000,-840000 +1731671712857,1731671713424,-754631,-558455,-373198,-1120000,-840000,-1610000 +1731671712959,1731671713514,-754936,-545828,-371490,70000,-770000,-70000 +1731671713060,1731671713603,-750239,-551989,-368928,210000,-1470000,0 +1731671713162,1731671713724,-751825,-546133,-368928,-630000,-1890000,280000 +1731671713264,1731671713814,-753289,-542900,-372954,-1190000,-2450000,350000 +1731671713366,1731671713933,-755973,-548024,-364963,-630000,-2030000,-70000 +1731671713468,1731671714024,-762195,-543998,-362462,-700000,-1820000,280000 +1731671713570,1731671714146,-758169,-550281,-363865,-980000,-1190000,-630000 +1731671713671,1731671714234,-757559,-533933,-358680,-350000,-1750000,770000 +1731671713773,1731671714324,-757803,-538996,-364475,210000,-1540000,630000 +1731671713875,1731671714444,-764513,-540887,-359351,-280000,-1400000,700000 +1731671713977,1731671714534,-762256,-530517,-360449,-420000,-1190000,350000 +1731671714079,1731671714654,-771589,-531981,-364536,-210000,-1260000,-350000 +1731671714181,1731671714744,-773541,-528382,-364841,-420000,-1750000,1120000 +1731671714282,1731671714834,-761951,-531676,-352031,-1400000,-1190000,-630000 +1731671714384,1731671714954,-765428,-533994,-356179,210000,-1750000,-70000 +1731671714486,1731671715044,-770552,-533872,-357948,-420000,-770000,-210000 +1731671714588,1731671715164,-768234,-533018,-351543,-70000,-910000,350000 +1731671714690,1731671715283,-773541,-531371,-357704,210000,-1330000,-140000 +1731671714792,1731671715344,-768173,-532774,-355569,-840000,-1540000,-140000 +1731671714894,1731671715464,-780373,-517890,-362157,-700000,-1680000,1820000 +1731671714995,1731671715555,-766221,-520513,-355081,-2030000,-2030000,560000 +1731671715097,1731671715704,-778360,-526796,-354105,-910000,-3220000,490000 +1731671715199,1731671715764,-776835,-519537,-350323,-1330000,-2590000,-280000 +1731671715301,1731671715853,-780312,-521306,-349835,-1330000,-1470000,-420000 +1731671715403,1731671715974,-782508,-526003,-350811,140000,-1750000,0 +1731671715505,1731671716094,-773663,-524966,-345687,-700000,-1190000,-560000 +1731671715606,1731671716185,-777079,-510326,-352214,-210000,-840000,980000 +1731671715708,1731671716273,-770857,-516487,-349225,-1680000,-1610000,770000 +1731671715810,1731671716393,-786839,-519110,-346358,140000,-1540000,-700000 +1731671715912,1731671716514,-817583,-551013,-287615,-7350000,-5040000,3710000 +1731671716014,1731671716574,-782691,-479887,-364536,-14210000,-7560000,-8680000 +1731671716116,1731671716723,-775432,-509472,-363743,-22470000,-7630000,-15610000 +1731671716218,1731671716814,-767868,-506056,-378871,-8890000,-9380000,-18340000 +1731671716319,1731671716874,-762866,-571448,-358619,-5600000,-10080000,-13720000 +1731671716421,1731671716995,-763049,-552294,-353007,-9940000,-9590000,-8960000 +1731671716523,1731671717084,-750178,-568825,-337208,-6580000,-7490000,-4970000 +1731671716625,1731671717204,-755302,-560590,-340990,-7210000,-8610000,-3780000 +1731671716727,1731671717352,-759084,-558089,-334219,-4480000,-9030000,-2800000 +1731671716829,1731671717383,-762500,-550037,-329766,-3570000,-5880000,-2030000 +1731671716930,1731671717503,-777384,-551989,-335317,-3850000,-3990000,210000 +1731671717032,1731671717594,-755668,-552111,-326716,-2450000,-2730000,70000 +1731671717134,1731671717714,-775615,-553758,-328729,-2170000,-2870000,1050000 +1731671717236,1731671717803,-773724,-550647,-326838,-1330000,-1890000,700000 +1731671717338,1731671717894,-776652,-546133,-333426,-2800000,-3850000,630000 +1731671717440,1731671718014,-774822,-536922,-324520,-3080000,-4830000,-1050000 +1731671717541,1731671718104,-787266,-542961,-318054,-2520000,-4270000,-1540000 +1731671717643,1731671718224,-780312,-542656,-327936,-2870000,-3920000,-3850000 +1731671717745,1731671718314,-778604,-552599,-308294,-2800000,-3360000,-1260000 +1731671717847,1731671718404,-771284,-551013,-317810,-2380000,-2940000,-70000 +1731671717949,1731671718524,-781288,-544974,-309758,-1190000,-2800000,350000 +1731671718051,1731671718614,-789523,-544486,-314882,-980000,-2100000,1260000 +1731671718152,1731671718734,-791414,-543876,-307562,-1260000,-3150000,1400000 +1731671718254,1731671718824,-795501,-542839,-315858,-910000,-2870000,70000 +1731671718356,1731671718914,-769332,-533689,-366122,-1470000,-10780000,5180000 +1731671718458,1731671719033,-834968,-528260,-261324,6930000,1190000,630000 +1731671718560,1731671719154,-794708,-552416,-270840,12810000,11130000,8960000 +1731671718662,1731671719245,-801235,-530822,-285663,4620000,4900000,5600000 +1731671718763,1731671719333,-796599,-526979,-296704,5460000,4340000,3430000 +1731671718865,1731671719454,-805810,-510448,-297863,6580000,3010000,4410000 +1731671718967,1731671719574,-803553,-512644,-301340,0,1680000,3920000 +1731671719069,1731671719633,-814838,-504592,-296704,5460000,490000,3500000 +1731671719171,1731671719753,-811727,-515633,-293959,1890000,840000,2100000 +1731671719273,1731671719845,-811361,-513986,-300852,1120000,-560000,1610000 +1731671719374,1731671719963,-818010,-507581,-296948,1260000,-1750000,1820000 +1731671719476,1731671720054,-819047,-510265,-292373,-910000,-2030000,1400000 +1731671719578,1731671720144,-823134,-503189,-295606,-420000,-1750000,1610000 +1731671719680,1731671720263,-823927,-491355,-292251,280000,-1050000,1050000 +1731671719782,1731671720354,-826123,-497760,-292007,280000,-910000,-490000 +1731671719884,1731671720476,-829112,-502396,-290543,-770000,-1540000,2170000 +1731671719986,1731671720563,-826733,-484096,-288103,910000,-1470000,2030000 +1731671720087,1731671720654,-828075,-485560,-286212,-560000,-1470000,1260000 +1731671720189,1731671720774,-831857,-493795,-284321,140000,-1890000,210000 +1731671720291,1731671720863,-824293,-478484,-284443,0,-770000,1960000 +1731671720393,1731671720984,-827709,-480619,-290055,-630000,-1960000,1540000 +1731671720495,1731671721074,-834480,-477325,-285358,-210000,-2240000,840000 +1731671720597,1731671721163,-832223,-507520,-272060,-1050000,-8120000,3710000 +1731671720698,1731671721285,-836493,-454816,-289628,-280000,-560000,1750000 +1731671720800,1731671721404,-833077,-452803,-296948,-8540000,980000,-8400000 +1731671720902,1731671721495,-832162,-491538,-292007,-700000,-1330000,-6300000 +1731671721004,1731671721584,-822463,-494832,-297802,-6720000,-3570000,-6020000 +1731671721106,1731671721673,-826977,-492880,-299632,-5320000,-5110000,-5810000 +1731671721208,1731671721796,-823805,-503067,-297070,-3500000,-3640000,-4200000 +1731671721309,1731671721884,-819657,-504836,-291214,-4130000,-3500000,-1120000 +1731671721411,1731671722003,-822890,-498919,-286273,-2940000,-4060000,-700000 +1731671721513,1731671722094,-822890,-500322,-288469,-3710000,-2450000,-1190000 +1731671721615,1731671722214,-822890,-501786,-284016,-1190000,-2520000,1120000 +1731671721717,1731671722303,-829356,-488183,-281637,-1260000,-1610000,140000 +1731671721819,1731671722394,-828136,-496479,-281576,-700000,-2450000,280000 +1731671721920,1731671722514,-831857,-487756,-280600,-2100000,-2520000,140000 +1731671722022,1731671722604,-831064,-489281,-279380,-1540000,-1960000,0 +1731671722124,1731671722694,-835761,-482571,-280783,-1120000,-1890000,420000 +1731671722226,1731671722814,-836066,-484706,-278282,-1330000,-1610000,630000 +1731671722328,1731671722933,-836981,-478972,-278953,-840000,-1260000,560000 +1731671722430,1731671723054,-836249,-483242,-280234,-700000,-1120000,70000 +1731671722531,1731671723114,-836615,-478728,-282735,-1330000,-1610000,280000 +1731671722633,1731671723204,-832406,-478545,-276086,-1330000,-1820000,210000 +1731671722735,1731671723326,-838445,-479094,-282796,-1610000,-490000,-560000 +1731671722837,1731671723476,-846436,-481290,-283894,-350000,-2520000,1120000 +1731671722939,1731671723534,-847656,-473421,-277367,-630000,-2450000,630000 +1731671723041,1731671723624,-846375,-466345,-278038,-1260000,-1680000,630000 +1731671723142,1731671723746,-842654,-466894,-275293,-980000,-1960000,210000 +1731671723244,1731671723863,-839848,-469029,-273036,-630000,-1330000,-140000 +1731671723346,1731671723923,-843996,-470066,-274561,-980000,-1190000,210000 +1731671723448,1731671724045,-850340,-467077,-273951,-210000,-1050000,0 +1731671723550,1731671724164,-845948,-464698,-274744,-420000,-210000,70000 +1731671723652,1731671724223,-849059,-467138,-276147,-700000,-770000,490000 +1731671723754,1731671724344,-848449,-462319,-274012,-140000,-840000,630000 +1731671723855,1731671724434,-849242,-468175,-269254,-490000,-840000,70000 +1731671723957,1731671724581,-853573,-470493,-277855,-350000,-560000,280000 +1731671724059,1731671724644,-858026,-463905,-277794,-280000,-1540000,980000 +1731671724161,1731671724765,-855830,-459757,-276452,-560000,-1050000,-70000 +1731671724263,1731671724853,-849730,-457134,-276513,70000,-980000,0 +1731671724365,1731671725003,-853085,-453535,-275415,-840000,-1120000,210000 +1731671724466,1731671725063,-857050,-458354,-275537,770000,-1400000,-210000 +1731671724568,1731671725153,-857294,-457805,-273036,-1470000,-1540000,-140000 +1731671724670,1731671725276,-854427,-458110,-272548,-700000,-1470000,210000 +1731671724772,1731671725396,-853451,-456036,-272182,-280000,-840000,0 +1731671724874,1731671725453,-849425,-455304,-272121,-770000,-1050000,140000 +1731671724976,1731671725575,-852109,-457683,-272365,-420000,-1470000,-140000 +1731671725077,1731671725696,-859734,-451339,-270901,-490000,-910000,840000 +1731671725179,1731671725783,-858514,-455243,-272060,0,-1190000,770000 +1731671725281,1731671725876,-862418,-449448,-275659,-350000,-1610000,70000 +1731671725383,1731671725964,-860405,-449021,-273402,-70000,-910000,350000 +1731671725485,1731671726112,-855586,-447008,-275476,-420000,-1120000,560000 +1731671725587,1731671726175,-857111,-443958,-276391,-840000,-1540000,350000 +1731671725689,1731671726293,-855586,-433405,-279807,1330000,-3220000,700000 +1731671725790,1731671726382,-868457,-437614,-260470,10780000,1050000,-1820000 +1731671725892,1731671726473,-862845,-456402,-250771,11900000,5180000,-1120000 +1731671725994,1731671726594,-857477,-479338,-259982,9380000,5040000,-1120000 +1731671726096,1731671726684,-849608,-472262,-257969,6230000,3850000,1400000 \ No newline at end of file diff --git a/jupyter/daten/Sitz_4496715b-fb46-4978-8662-69705013ea63.csv b/jupyter/daten/Sitz_4496715b-fb46-4978-8662-69705013ea63.csv new file mode 100644 index 0000000..9963f51 --- /dev/null +++ b/jupyter/daten/Sitz_4496715b-fb46-4978-8662-69705013ea63.csv @@ -0,0 +1,102 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671555515,1731671555628,-789767,-498431,-370575,-1260000,-2170000,-1190000 +1731671555617,1731671555747,-786168,-501908,-367098,630000,-1890000,210000 +1731671555719,1731671555837,-789645,-498858,-365146,280000,-700000,700000 +1731671555821,1731671555927,-787571,-497577,-366183,0,-490000,-210000 +1731671555922,1731671556051,-786534,-500261,-370209,-140000,-1610000,0 +1731671556024,1731671556136,-798612,-507337,-362706,630000,-1400000,210000 +1731671556126,1731671556257,-792146,-485011,-372283,-1400000,-1540000,840000 +1731671556228,1731671556351,-797758,-494832,-367525,1190000,-1400000,560000 +1731671556330,1731671556436,-788608,-485255,-366000,-210000,-560000,1190000 +1731671556432,1731671556586,-798429,-489830,-366366,-350000,-1190000,490000 +1731671556533,1731671556648,-795623,-489525,-367586,-560000,-1470000,-140000 +1731671556635,1731671556768,-791475,-498248,-365207,1190000,-1960000,-630000 +1731671556737,1731671556856,-800808,-487878,-363743,-1890000,-2170000,840000 +1731671556839,1731671556976,-795928,-493490,-364170,560000,-3080000,1050000 +1731671556941,1731671557068,-803370,-480314,-360815,-840000,-2730000,1120000 +1731671557043,1731671557156,-807152,-487634,-351787,-630000,-2940000,140000 +1731671557144,1731671557277,-806969,-485377,-351543,-980000,-2660000,280000 +1731671557246,1731671557367,-800869,-480375,-356179,-1470000,-2450000,210000 +1731671557348,1731671557487,-812642,-482998,-350689,-420000,-2590000,140000 +1731671557450,1731671557577,-807945,-480192,-353373,-1470000,-3360000,1400000 +1731671557552,1731671557666,-812337,-477203,-339892,-140000,-2940000,-140000 +1731671557654,1731671557787,-810751,-476715,-342088,-1960000,-1680000,-490000 +1731671557755,1731671557877,-813984,-482388,-341234,-2240000,-2940000,-840000 +1731671557857,1731671557998,-811361,-459330,-338672,-2940000,1610000,-1680000 +1731671557959,1731671558087,-805505,-479033,-350384,840000,-2520000,-5250000 +1731671558061,1731671558177,-797880,-491477,-347700,980000,-2380000,-4690000 +1731671558163,1731671558298,-804529,-501542,-339160,560000,-2100000,-2660000 +1731671558265,1731671558386,-802333,-496601,-337940,-770000,280000,-4620000 +1731671558367,1731671558506,-790926,-514657,-333548,350000,-420000,-2800000 +1731671558468,1731671558598,-797026,-501176,-351665,-1890000,1470000,-1330000 +1731671558570,1731671558687,-777201,-492026,-349286,-3780000,350000,-2100000 +1731671558672,1731671558806,-792146,-509472,-362706,-1190000,-1890000,-1470000 +1731671558774,1731671558898,-787388,-515023,-359107,-2450000,-2730000,1610000 +1731671558876,1731671559018,-793000,-499163,-349103,-280000,-3920000,1330000 +1731671558978,1731671559106,-808006,-498248,-339038,910000,-3570000,-2030000 +1731671559079,1731671559201,-800198,-502457,-344284,-1820000,-2380000,-840000 +1731671559181,1731671559317,-790926,-496601,-340075,-560000,-2590000,70000 +1731671559283,1731671559407,-803431,-512339,-336171,210000,-2450000,1330000 +1731671559385,1731671559527,-802150,-497760,-330620,210000,-2030000,1820000 +1731671559487,1731671559616,-806969,-492026,-335073,560000,-2100000,140000 +1731671559589,1731671559707,-801662,-494161,-337513,140000,-1960000,-140000 +1731671559690,1731671559826,-811361,-500078,-333060,-770000,-1120000,420000 +1731671559792,1731671559917,-809226,-498431,-330864,560000,-2310000,210000 +1731671559894,1731671560036,-806359,-498858,-329522,0,-1400000,-140000 +1731671559996,1731671560126,-808921,-491233,-329583,-420000,-1890000,350000 +1731671560098,1731671560217,-808982,-495869,-324642,-560000,-1820000,-350000 +1731671560200,1731671560336,-811727,-494710,-322934,-1050000,-2730000,-700000 +1731671560302,1731671560427,-812093,-494466,-321653,-630000,-2170000,-560000 +1731671560403,1731671560548,-811910,-493124,-323422,140000,-1820000,630000 +1731671560505,1731671560636,-804895,-493124,-322080,-280000,-980000,350000 +1731671560607,1731671560726,-807945,-488793,-322385,140000,-1260000,560000 +1731671560709,1731671560847,-814350,-493856,-316163,490000,-1120000,490000 +1731671560811,1731671560936,-819108,-483852,-323056,-840000,-1470000,420000 +1731671560913,1731671561057,-817522,-487390,-317749,-210000,-1400000,140000 +1731671561014,1731671561148,-818315,-484889,-316346,-420000,-1890000,-70000 +1731671561116,1731671561237,-816973,-486048,-319579,-840000,-1610000,70000 +1731671561218,1731671561357,-823744,-486902,-315309,-350000,-1820000,140000 +1731671561320,1731671561447,-821731,-483242,-314760,-560000,-1400000,0 +1731671561422,1731671561568,-822402,-483364,-314821,-560000,-1470000,140000 +1731671561524,1731671561656,-825330,-486475,-313845,-70000,-1680000,700000 +1731671561625,1731671561747,-819474,-482388,-313296,-560000,-1260000,70000 +1731671561727,1731671561867,-822890,-474214,-315919,-490000,-2030000,280000 +1731671561829,1731671561956,-824659,-486841,-312198,-140000,-910000,-350000 +1731671561931,1731671562076,-826184,-476044,-312503,-420000,-2240000,70000 +1731671562033,1731671562167,-830332,-478118,-309758,-700000,-2030000,280000 +1731671562135,1731671562286,-828319,-475251,-309697,-700000,-1890000,1400000 +1731671562236,1731671562378,-828014,-472506,-309819,0,-2170000,1120000 +1731671562338,1731671562468,-836554,-469578,-302499,-1820000,-2170000,1050000 +1731671562440,1731671562587,-837652,-469395,-301706,-770000,-2100000,350000 +1731671562542,1731671562678,-836554,-472262,-302743,-490000,-1540000,-70000 +1731671562644,1731671562797,-833382,-471286,-303780,-350000,-2100000,140000 +1731671562746,1731671562886,-839726,-466711,-300303,-1050000,-1960000,560000 +1731671562847,1731671562978,-841068,-461526,-300120,-630000,-1820000,490000 +1731671562949,1731671563096,-837713,-459513,-300608,-980000,-1540000,-70000 +1731671563051,1731671563187,-835517,-455487,-298534,-840000,-1610000,490000 +1731671563153,1731671563306,-845704,-461038,-299083,-280000,-1470000,70000 +1731671563255,1731671563397,-847900,-457195,-298412,-1120000,-1680000,420000 +1731671563357,1731671563486,-842105,-458537,-296399,280000,-1470000,140000 +1731671563459,1731671563635,-846924,-454145,-294508,-700000,-1540000,560000 +1731671563560,1731671563696,-843447,-456585,-293410,-350000,-1190000,280000 +1731671563662,1731671563817,-850096,-453596,-292556,-1050000,-1470000,70000 +1731671563764,1731671563906,-845704,-449997,-293471,-840000,-1960000,210000 +1731671563866,1731671563999,-847900,-458110,-291519,-700000,-1330000,210000 +1731671563968,1731671564118,-848083,-451156,-291580,210000,-1470000,140000 +1731671564070,1731671564206,-854488,-451278,-287798,-1120000,-1400000,-350000 +1731671564171,1731671564326,-853817,-448716,-292434,-420000,-1540000,-840000 +1731671564273,1731671564418,-841983,-445117,-293593,-700000,-1050000,-210000 +1731671564375,1731671564507,-857782,-457988,-286761,-280000,-1330000,-770000 +1731671564477,1731671564626,-851255,-444507,-293715,-980000,-2100000,350000 +1731671564579,1731671564717,-859673,-446154,-288530,-560000,-1330000,140000 +1731671564681,1731671564837,-855769,-441823,-287798,-700000,-1400000,490000 +1731671564782,1731671564927,-854976,-443836,-289079,-70000,-1470000,-140000 +1731671564884,1731671565016,-856989,-441518,-287676,-1120000,-2030000,420000 +1731671564986,1731671565136,-857782,-437614,-285663,-840000,-1680000,-210000 +1731671565088,1731671565226,-855464,-443226,-286517,-770000,-1260000,210000 +1731671565190,1731671565347,-858026,-441640,-285846,0,-1540000,280000 +1731671565292,1731671565437,-855464,-440847,-282247,-840000,-1680000,70000 +1731671565393,1731671565526,-856379,-436821,-281332,-70000,-1400000,-210000 +1731671565495,1731671565647,-855769,-434564,-280539,-840000,-1190000,-280000 +1731671565597,1731671565735,-868518,-444080,-283711,-700000,-1470000,-700000 +1731671565699,1731671565856,-866993,-437797,-281271,-350000,-2100000,-70000 \ No newline at end of file diff --git a/jupyter/daten/Sitz_9a201d72-aa3a-4a99-8f0e-0b63b01757e5.csv b/jupyter/daten/Sitz_9a201d72-aa3a-4a99-8f0e-0b63b01757e5.csv new file mode 100644 index 0000000..08f0db7 --- /dev/null +++ b/jupyter/daten/Sitz_9a201d72-aa3a-4a99-8f0e-0b63b01757e5.csv @@ -0,0 +1,80 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671729762,1731671730463,-739686,-581147,-352397,-3220000,6580000,-3780000 +1731671729966,1731671730583,-723216,-600484,-366305,70000,-700000,-1750000 +1731671730068,1731671730676,-723277,-582184,-364780,-1820000,-1470000,-350000 +1731671730169,1731671730763,-721630,-587918,-363072,-490000,-1610000,0 +1731671730271,1731671730885,-732976,-582062,-366976,-1120000,-1190000,-280000 +1731671730373,1731671731003,-725839,-583770,-361791,140000,-1330000,-560000 +1731671730475,1731671731153,-724741,-592554,-363621,70000,-770000,-910000 +1731671730577,1731671731183,-723948,-583953,-365878,-630000,-1680000,1190000 +1731671730679,1731671731303,-734440,-582611,-365146,1120000,-1120000,-560000 +1731671730780,1731671731423,-726022,-580293,-361669,1610000,630000,-1330000 +1731671730882,1731671731482,-723521,-601033,-358253,1820000,420000,-350000 +1731671730984,1731671731664,-712541,-584319,-368989,-560000,-1890000,-980000 +1731671731086,1731671731694,-725595,-591944,-366671,630000,-3570000,-910000 +1731671731188,1731671731783,-720654,-580354,-352885,-1050000,-3710000,140000 +1731671731290,1731671731933,-726388,-590297,-342881,630000,-1610000,-210000 +1731671731391,1731671731995,-734684,-589687,-346358,-140000,-1820000,-1680000 +1731671731493,1731671732113,-722972,-590602,-348920,-2800000,-2730000,-2520000 +1731671731595,1731671732203,-729011,-596031,-341905,-840000,-3010000,-1610000 +1731671731697,1731671732381,-728218,-603656,-345565,-700000,-2170000,-1190000 +1731671731799,1731671732412,-726388,-594323,-354044,280000,-2450000,0 +1731671731901,1731671732503,-725412,-596275,-341844,-910000,-2800000,-420000 +1731671732002,1731671732626,-731024,-591517,-335927,-280000,-2660000,560000 +1731671732104,1731671732776,-733525,-591822,-341783,140000,-1680000,1540000 +1731671732206,1731671732805,-728889,-579500,-341417,-1470000,-1610000,1820000 +1731671732308,1731671732925,-732122,-589992,-334768,700000,-1050000,630000 +1731671732410,1731671733013,-736758,-582916,-342210,-630000,-1470000,1120000 +1731671732512,1731671733164,-730048,-580781,-332389,-910000,-1400000,840000 +1731671732613,1731671733223,-746274,-582062,-330803,-560000,-1890000,140000 +1731671732715,1731671733313,-743834,-580110,-338367,-1470000,-1960000,70000 +1731671732817,1731671733463,-744383,-579439,-338977,-1260000,-1750000,140000 +1731671732919,1731671733524,-746030,-575718,-333365,-490000,-1960000,280000 +1731671733021,1731671733644,-746579,-573278,-335073,-1260000,-2030000,420000 +1731671733123,1731671733762,-746396,-575779,-334463,-560000,-1540000,700000 +1731671733225,1731671733822,-747311,-573949,-331413,-910000,-1890000,490000 +1731671733326,1731671733944,-748531,-574803,-329400,-700000,-1120000,350000 +1731671733428,1731671734033,-747921,-571753,-329949,-840000,-1540000,210000 +1731671733530,1731671734153,-754326,-573583,-328424,-560000,-1890000,-70000 +1731671733632,1731671734244,-752191,-572363,-330925,0,-980000,-630000 +1731671733734,1731671734332,-757803,-564860,-338550,-210000,-630000,210000 +1731671733836,1731671734454,-743651,-569618,-332694,-840000,-1610000,700000 +1731671733937,1731671734575,-749446,-565897,-329522,280000,-1470000,0 +1731671734039,1731671734664,-754814,-572973,-328302,-910000,-1610000,560000 +1731671734141,1731671734753,-759389,-563762,-327570,-840000,-1750000,350000 +1731671734243,1731671734843,-758901,-568581,-326167,-350000,-1260000,-490000 +1731671734345,1731671734963,-759938,-570045,-331474,-630000,-1750000,210000 +1731671734447,1731671735053,-762378,-561688,-326594,-700000,-1890000,70000 +1731671734548,1731671735175,-758718,-571692,-325618,-700000,-1470000,140000 +1731671734650,1731671735264,-761585,-561627,-327753,210000,-1610000,560000 +1731671734752,1731671735353,-763049,-566080,-324398,-770000,-1470000,140000 +1731671734854,1731671735475,-761524,-564799,-325923,-490000,-1610000,-70000 +1731671734956,1731671735563,-765245,-559065,-324764,-840000,-1960000,0 +1731671735058,1731671735683,-765123,-561261,-324703,-840000,-1400000,350000 +1731671735159,1731671735775,-765611,-562664,-319152,-350000,-2030000,770000 +1731671735261,1731671735895,-770003,-562359,-321409,-770000,-1470000,-350000 +1731671735363,1731671735983,-777323,-559126,-323666,-630000,-1960000,420000 +1731671735465,1731671736073,-778055,-557357,-326045,-70000,-1610000,-280000 +1731671735567,1731671736195,-772016,-556320,-318481,-700000,-1470000,560000 +1731671735669,1731671736283,-774761,-554612,-321592,-280000,-1540000,490000 +1731671735771,1731671736403,-773236,-549427,-319335,-140000,-1820000,420000 +1731671735872,1731671736494,-772870,-553636,-316529,-490000,-2310000,770000 +1731671735974,1731671736583,-776896,-547475,-312198,-980000,-1750000,420000 +1731671736076,1731671736703,-778360,-552538,-313662,-630000,-2240000,560000 +1731671736178,1731671736795,-777689,-551257,-311954,-770000,-2030000,280000 +1731671736280,1731671736914,-786107,-543388,-309941,-770000,-1750000,70000 +1731671736382,1731671737002,-784216,-546011,-316224,-630000,-1540000,490000 +1731671736483,1731671737094,-777750,-546621,-313113,-840000,-770000,770000 +1731671736585,1731671737213,-786046,-542961,-309636,420000,-1470000,770000 +1731671736687,1731671737302,-780983,-544547,-309453,-910000,-910000,560000 +1731671736789,1731671737425,-788608,-540887,-308599,560000,-1190000,280000 +1731671736891,1731671737514,-790011,-534787,-307501,0,-1610000,420000 +1731671736993,1731671737604,-786961,-535031,-310002,-980000,-1470000,490000 +1731671737094,1731671737722,-788120,-535641,-308416,-630000,-910000,-1540000 +1731671737196,1731671737812,-793976,-539423,-308721,-2170000,-1400000,-1050000 +1731671737298,1731671737933,-788181,-541558,-308416,1050000,-2030000,0 +1731671737400,1731671738024,-785192,-536434,-306830,-1960000,-1260000,490000 +1731671737502,1731671738114,-791658,-535153,-299815,-70000,-2800000,770000 +1731671737604,1731671738233,-835700,-585051,-273341,-7070000,-980000,560000 +1731671737705,1731671738325,-784460,-520330,-333609,-9450000,-7490000,-6510000 +1731671737807,1731671738445,-785802,-524417,-320250,-10920000,-9240000,-6020000 \ No newline at end of file diff --git a/jupyter/daten/Sitz_c557fed0-a970-4a95-ba42-9a36a2770aa2.csv b/jupyter/daten/Sitz_c557fed0-a970-4a95-ba42-9a36a2770aa2.csv new file mode 100644 index 0000000..d2c16dd --- /dev/null +++ b/jupyter/daten/Sitz_c557fed0-a970-4a95-ba42-9a36a2770aa2.csv @@ -0,0 +1,41 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671504494,1731671504485,-587979,-629093,-543754,23030000,-16660000,29260000 +1731671504595,1731671504570,-732854,-581330,-523685,8820000,-20230000,38990000 +1731671504697,1731671504687,-729011,-416447,-413763,14560000,-4340000,50330000 +1731671504799,1731671504778,-714066,-339892,-435235,35700000,21630000,10850000 +1731671504901,1731671504898,-695095,-558577,-491355,9940000,7980000,6300000 +1731671505003,1731671504987,-742065,-421693,-474336,4060000,-11410000,9450000 +1731671505105,1731671505078,-743468,-451034,-437919,13790000,-12460000,7700000 +1731671505207,1731671505198,-815875,-464942,-410774,-1120000,-15400000,9800000 +1731671505308,1731671505288,-804224,-412299,-363377,0,-7280000,6440000 +1731671505410,1731671505408,-828136,-412909,-391681,3080000,1400000,5320000 +1731671505512,1731671505497,-826184,-439078,-408212,1680000,3430000,8190000 +1731671505614,1731671505587,-786717,-458903,-369904,-3990000,140000,9030000 +1731671505716,1731671505708,-895297,-354410,-362950,-6370000,560000,11270000 +1731671505818,1731671505798,-775005,-416874,-485255,-3430000,13300000,700000 +1731671505919,1731671505917,-801601,-378261,-446764,-13930000,-5880000,13510000 +1731671506021,1731671506008,-780312,-205387,-438163,-29890000,-5180000,7420000 +1731671506123,1731671506096,-898042,-313906,-489220,15540000,-10710000,-7980000 +1731671506225,1731671506218,-921161,-326655,-427915,22820000,-15260000,9590000 +1731671506327,1731671506307,-847595,-209169,-475373,18480000,8470000,14140000 +1731671506429,1731671506427,-880962,-345260,-395585,31990000,14490000,18270000 +1731671506530,1731671506517,-861747,-316163,-406809,22960000,15680000,18270000 +1731671506632,1731671506608,-866444,-250649,-431636,-1820000,6860000,-6860000 +1731671506734,1731671506728,-876875,-418521,-532103,22120000,-8050000,-22540000 +1731671506836,1731671506817,-861747,-370392,-449265,-40180000,-28280000,-6090000 +1731671506938,1731671506939,-800442,-285358,-393877,-19250000,-37870000,-6860000 +1731671507040,1731671507027,-918050,-398391,-300852,11130000,-37380000,420000 +1731671507142,1731671507120,-875228,-305793,-307867,1820000,-20020000,5040000 +1731671507243,1731671507238,-897737,-384483,-210694,7350000,-24080000,4340000 +1731671507345,1731671507327,-954650,-378627,-128100,-31220000,-18760000,-8190000 +1731671507447,1731671507448,-947269,-275232,-131516,-3710000,-27160000,3990000 +1731671507549,1731671507538,-988200,-297680,-115107,7140000,-14350000,17430000 +1731671507651,1731671507628,-970754,-284687,-43920,9800000,-12810000,24920000 +1731671507753,1731671507747,-993446,-172325,-36600,-8190000,-5460000,17920000 +1731671507854,1731671507837,-974841,-130052,-113460,4620000,8470000,8330000 +1731671507956,1731671507958,-1060302,-210694,-98759,38850000,45220000,21840000 +1731671508058,1731671508047,-954589,-187758,-226493,6580000,22330000,-3080000 +1731671508160,1731671508138,-986004,-153659,-272426,17080000,2940000,2450000 +1731671508262,1731671508258,-959530,-41541,-266936,48930000,-15330000,2170000 +1731671508364,1731671508348,-972340,-296155,-85156,140350000,73710000,29890000 +1731671508465,1731671508469,-875716,-259677,-340624,79660000,70000000,18200000 \ No newline at end of file diff --git a/jupyter/daten/Sitz_cab3a0d4-48b5-4150-9b02-8e7deef80288.csv b/jupyter/daten/Sitz_cab3a0d4-48b5-4150-9b02-8e7deef80288.csv new file mode 100644 index 0000000..70d728d --- /dev/null +++ b/jupyter/daten/Sitz_cab3a0d4-48b5-4150-9b02-8e7deef80288.csv @@ -0,0 +1,46 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671540239,1731671540357,-291336,-785375,-570472,-8050000,33110000,51310000 +1731671540341,1731671540416,-480741,-817217,-497272,49420000,-5810000,68460000 +1731671540443,1731671540508,-551440,-628849,-405467,22750000,-4760000,84490000 +1731671540545,1731671540627,-578280,-429623,-452559,25760000,10500000,54670000 +1731671540647,1731671540717,-756522,-746518,-415654,53200000,28840000,19390000 +1731671540748,1731671540837,-706746,-497638,-399123,21560000,17570000,17850000 +1731671540850,1731671540927,-682529,-597129,-359046,41090000,18200000,7210000 +1731671540952,1731671541048,-577792,-751703,-470127,13090000,1820000,20230000 +1731671541054,1731671541135,-775249,-602375,-301035,-3850000,-7770000,35700000 +1731671541156,1731671541226,-766892,-538752,-390095,16590000,15680000,11270000 +1731671541258,1731671541346,-721081,-564799,-392047,10710000,12460000,21770000 +1731671541359,1731671541436,-726815,-431453,-363682,36260000,-3080000,27440000 +1731671541461,1731671541557,-752984,-555771,-372954,30520000,17710000,-13440000 +1731671541563,1731671541648,-620309,-600301,-343979,-15540000,16100000,-5950000 +1731671541665,1731671541736,-727425,-515877,-551989,-9520000,12320000,13930000 +1731671541767,1731671541857,-684054,-384971,-372039,18410000,21000000,34300000 +1731671541869,1731671541948,-692899,-483791,-474641,62650000,42840000,14000000 +1731671541970,1731671542068,-638548,-614087,-477325,15050000,30170000,16660000 +1731671542072,1731671542157,-743102,-511302,-529480,8470000,6930000,9870000 +1731671542174,1731671542248,-654286,-520208,-502396,13720000,-11410000,9590000 +1731671542276,1731671542399,-655201,-476288,-457683,11130000,-5880000,21630000 +1731671542378,1731671542456,-646295,-464698,-544059,-7420000,3920000,-5810000 +1731671542480,1731671542577,-732427,-493246,-498309,23660000,-10640000,1400000 +1731671542582,1731671542666,-711809,-555222,-480253,-560000,-5530000,7560000 +1731671542683,1731671542757,-761158,-471713,-468785,-12670000,-11340000,9240000 +1731671542785,1731671542877,-709003,-568642,-489403,-40460000,-21700000,-5530000 +1731671542887,1731671542968,-809531,-368440,-396561,-41580000,-39410000,-7000000 +1731671542989,1731671543087,-857355,-462441,-395463,-7210000,-36190000,-4550000 +1731671543091,1731671543177,-769027,-369965,-397720,-18060000,-17570000,7140000 +1731671543193,1731671543267,-850950,-423340,-378566,12180000,-12670000,10150000 +1731671543294,1731671543388,-897676,-401014,-390949,17290000,-22680000,20090000 +1731671543396,1731671543477,-847168,-377102,-156953,17920000,-38570000,8330000 +1731671543498,1731671543598,-1019188,-329949,-173728,-840000,-19250000,16240000 +1731671543600,1731671543687,-950136,-288042,-104798,-14980000,-23310000,33810000 +1731671543702,1731671543777,-1005280,-199531,-46055,-6230000,11970000,16170000 +1731671543804,1731671543899,-936350,-256139,-146644,9100000,32900000,3780000 +1731671543905,1731671543987,-786778,-296948,-266326,29680000,35560000,-15750000 +1731671544007,1731671544106,-1051213,-276452,-368684,32270000,24500000,4760000 +1731671544109,1731671544199,-965203,-299449,-328119,21490000,14770000,21490000 +1731671544211,1731671544287,-909510,-248758,-307440,22190000,11830000,9520000 +1731671544313,1731671544407,-878644,-199165,-385825,31640000,11830000,-11760000 +1731671544415,1731671544498,-810507,-353556,-354654,31710000,32130000,1120000 +1731671544516,1731671544618,-850645,-358802,-420778,24500000,24990000,70000 +1731671544618,1731671544706,-825208,-299205,-408944,38150000,18690000,-4760000 +1731671544720,1731671544795,-845521,-477508,-386557,55650000,20230000,1050000 \ No newline at end of file diff --git a/jupyter/daten/bellen_1c8b69ae-f8c8-4964-bdee-e4a06f3b4bc7.csv b/jupyter/daten/bellen_1c8b69ae-f8c8-4964-bdee-e4a06f3b4bc7.csv new file mode 100644 index 0000000..0baf153 --- /dev/null +++ b/jupyter/daten/bellen_1c8b69ae-f8c8-4964-bdee-e4a06f3b4bc7.csv @@ -0,0 +1,43 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006501406,1732006502444,-838994,-187941,-514352,-9730000,5460000,-17570000 +1732006501508,1732006502565,-811361,-239486,-509289,-20930000,8960000,-14910000 +1732006501609,1732006502653,-778909,-235338,-555466,4620000,5250000,-1260000 +1732006501711,1732006502744,-782935,-262239,-546743,-3010000,7490000,-3850000 +1732006501813,1732006502864,-760853,-259433,-565409,210000,-2380000,-2800000 +1732006501915,1732006502953,-778543,-283101,-587674,420000,-1890000,-1260000 +1732006502017,1732006503074,-762683,-192455,-575169,1680000,3780000,-560000 +1732006502119,1732006503193,-937509,-132736,-265838,14630000,-26600000,13300000 +1732006502220,1732006503253,-236680,-168909,-813862,22260000,-7910000,-2730000 +1732006502322,1732006503374,-877363,-639646,-654896,-7070000,-16170000,29820000 +1732006502424,1732006503464,-665144,-297741,-658190,29260000,-19950000,11480000 +1732006502526,1732006503584,-785314,-379054,-624823,-11900000,-33460000,2520000 +1732006502628,1732006503674,-868091,-137006,-373137,3430000,6300000,-6860000 +1732006502730,1732006503765,-841922,-303658,-546194,-7350000,-5460000,-9100000 +1732006502832,1732006503884,-714493,-301035,-525881,-12880000,-1960000,-6790000 +1732006502933,1732006503975,-781654,-274561,-581818,-7280000,-5110000,-5320000 +1732006503035,1732006504093,-772931,-325679,-545279,-3570000,-5880000,420000 +1732006503137,1732006504184,-784277,-257115,-520757,-1890000,4130000,-2800000 +1732006503239,1732006504274,-724375,-66551,-473299,910000,-19320000,14070000 +1732006503341,1732006504394,-578036,-456646,-883402,28840000,77280000,-33320000 +1732006503443,1732006504484,-600911,-537227,-634217,-9660000,-5740000,4620000 +1732006503544,1732006504604,-677710,-185745,-723826,-26600000,-28490000,11550000 +1732006503646,1732006504696,-677100,-290787,-553453,17220000,-28490000,13440000 +1732006503748,1732006504817,-855769,-195139,-499102,4410000,-25340000,6580000 +1732006503850,1732006504904,-796416,-172752,-554429,-3710000,-30520000,-3430000 +1732006503952,1732006504996,-820328,-249917,-593835,-4340000,-30730000,-2730000 +1732006504054,1732006505116,-849059,-293898,-457073,10290000,-2520000,-3710000 +1732006504155,1732006505204,-900970,-268156,-516121,8050000,1260000,70000 +1732006504257,1732006505294,-752069,-391620,-313784,20860000,-24850000,-5810000 +1732006504359,1732006505415,-988200,-448838,-432002,-35420000,-19040000,-4270000 +1732006504461,1732006505504,-744810,-376187,-479826,-86870000,26250000,3150000 +1732006504563,1732006505623,-806542,-268949,-584685,25200000,-28700000,-1260000 +1732006504665,1732006505715,-861808,-259128,-485072,-12250000,-6160000,-6650000 +1732006504766,1732006505804,-793366,-267424,-471103,-35140000,36820000,-12250000 +1732006504868,1732006505924,-1291736,-134566,-170129,173110000,191030000,23520000 +1732006504970,1732006506014,-92049,-759084,-933788,112770000,22260000,52010000 +1732006505072,1732006506167,-1141066,-523929,-349225,-118370000,-9380000,39200000 +1732006505174,1732006506223,-741638,-126514,-591273,-26040000,-1260000,-3010000 +1732006505276,1732006506314,-929091,-186843,-514840,2380000,-34860000,-3710000 +1732006505377,1732006506433,-975329,-248453,-441823,-3220000,-44660000,-15750000 +1732006505479,1732006506523,-941535,-238327,-393755,-10080000,-33460000,-3290000 +1732006505581,1732006506643,-926102,-207644,-299205,-14490000,-4620000,4760000 \ No newline at end of file diff --git a/jupyter/daten/bellen_8af3191c-e58e-4604-80ef-ea6947dc8444.csv b/jupyter/daten/bellen_8af3191c-e58e-4604-80ef-ea6947dc8444.csv new file mode 100644 index 0000000..b3eb7b9 --- /dev/null +++ b/jupyter/daten/bellen_8af3191c-e58e-4604-80ef-ea6947dc8444.csv @@ -0,0 +1,60 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006514136,1732006515223,-900909,-165432,-405406,-8190000,-4480000,-2800000 +1732006514238,1732006515315,-898713,-158600,-399306,3150000,-3010000,70000 +1732006514339,1732006515403,-909144,-171715,-393389,0,-1610000,490000 +1732006514441,1732006515524,-908595,-152073,-393816,910000,980000,-1330000 +1732006514543,1732006515615,-889502,-170007,-395951,210000,2030000,-1610000 +1732006514645,1732006515734,-791048,-113704,-257115,-25340000,28980000,-21070000 +1732006514747,1732006515823,-1475468,-378383,-580537,20160000,265230000,-69720000 +1732006514849,1732006515914,-305061,-467321,-930616,29470000,-16240000,40180000 +1732006514950,1732006516034,-778177,-223443,-626287,-28980000,51380000,-48440000 +1732006515052,1732006516123,-770735,-353190,-684359,-8120000,53130000,-9800000 +1732006515154,1732006516246,5551,-337513,-1472967,-40040000,100100000,-17780000 +1732006515256,1732006516333,-153964,-419985,-902068,87080000,-29890000,8120000 +1732006515358,1732006516453,-443775,-455548,-789279,-20720000,-31780000,10640000 +1732006515460,1732006516546,-569557,-311100,-745725,-23450000,-13580000,1050000 +1732006515561,1732006516634,-629947,-254187,-718702,-6440000,700000,-3010000 +1732006515663,1732006516813,-477813,-318725,-657824,-19040000,910000,1050000 +1732006515765,1732006516845,-537959,-336293,-767136,21770000,-3430000,5810000 +1732006515867,1732006516933,-538752,-354227,-756461,-11270000,-5390000,4270000 +1732006515969,1732006517053,-537776,-273768,-739686,-4480000,-6440000,2380000 +1732006516071,1732006517145,-561810,-284443,-735172,-5180000,140000,-490000 +1732006516172,1732006517267,-450363,-117181,-633485,-3570000,-16940000,2800000 +1732006516274,1732006517354,-538691,-620675,-1414529,13510000,36190000,31500000 +1732006516376,1732006517446,-270230,-426451,-627934,17850000,-36120000,21560000 +1732006516478,1732006517566,-680943,-276940,-786900,-2450000,-88620000,32830000 +1732006516580,1732006517684,-827709,-298595,-490257,2030000,-7840000,19670000 +1732006516682,1732006517773,-866444,-197823,-462624,-9170000,-38150000,3430000 +1732006516783,1732006517864,-922076,-56059,-533018,-17990000,-38290000,-6510000 +1732006516885,1732006517954,-713456,-283589,-428464,-7070000,-30940000,19530000 +1732006516987,1732006518074,-845582,-196420,-482937,-27790000,-40810000,-4970000 +1732006517089,1732006518164,-910547,-132431,-427732,5110000,-37450000,1960000 +1732006517191,1732006518315,-907924,-85583,-177876,630000,-16030000,-5530000 +1732006517293,1732006518373,-1026508,-243634,-313479,1400000,-2730000,-910000 +1732006517395,1732006518496,-900421,-155428,-296887,-12390000,9380000,-6300000 +1732006517496,1732006518583,-954467,-168421,-210328,19600000,18340000,-16170000 +1732006517598,1732006518673,-1515301,-10919,-509411,-40950000,179760000,-34370000 +1732006517700,1732006518823,-459757,-450302,-369050,133070000,-20090000,8190000 +1732006517802,1732006518883,-762988,-591517,-495991,-43820000,-33180000,3570000 +1732006517904,1732006519004,-755119,-188490,-629398,-4270000,-28840000,13370000 +1732006518006,1732006519096,-817888,-194834,-443897,6860000,1680000,-15750000 +1732006518107,1732006519184,-878217,-266265,-456341,-910000,-7840000,-13720000 +1732006518209,1732006519303,-806847,-284260,-508252,-5250000,-3010000,-5530000 +1732006518311,1732006519396,-829295,-285053,-485987,-1190000,-3220000,2450000 +1732006518413,1732006519546,-785314,-249734,-446703,-2100000,8120000,-4970000 +1732006518515,1732006519604,-932202,190808,-52582,-24290000,58380000,1540000 +1732006518617,1732006519695,-642818,-675331,-623786,196140000,-12460000,63140000 +1732006518719,1732006519816,-704672,-821121,-362889,-80640000,1820000,2380000 +1732006518820,1732006519903,-950990,-108946,-437309,-59850000,-32340000,19670000 +1732006518922,1732006520024,-812581,-24949,-149450,39970000,-11270000,490000 +1732006519024,1732006520115,-958066,-283894,-47763,5250000,4340000,18760000 +1732006519126,1732006520205,-1214571,-385276,-630618,16800000,-8750000,-3010000 +1732006519228,1732006520324,-1061339,-351238,-795196,-73640000,40110000,17430000 +1732006519330,1732006520414,-589626,283223,-369416,-55160000,45080000,24640000 +1732006519431,1732006520534,-988322,-410591,-1184925,-30100000,120190000,-10150000 +1732006519533,1732006520624,-441335,145058,-556747,99750000,-19740000,-25130000 +1732006519635,1732006520714,-1015284,-303719,-697230,94920000,-34090000,21770000 +1732006519737,1732006520834,-526857,-325130,-686189,2940000,-18620000,-6440000 +1732006519839,1732006520924,-750117,-96258,-539850,14980000,-5670000,1400000 +1732006519941,1732006521074,-768173,-178242,-542534,6930000,-10430000,-140000 +1732006520042,1732006521133,-726205,-225761,-600301,23450000,14490000,-13510000 \ No newline at end of file diff --git a/jupyter/daten/bellen_d8e9253a-4290-4eb9-80da-2196041a524c.csv b/jupyter/daten/bellen_d8e9253a-4290-4eb9-80da-2196041a524c.csv new file mode 100644 index 0000000..ea2f8c2 --- /dev/null +++ b/jupyter/daten/bellen_d8e9253a-4290-4eb9-80da-2196041a524c.csv @@ -0,0 +1,50 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006484194,1732006485193,-1370670,427,-328546,58170000,20440000,10430000 +1732006484296,1732006485283,-632814,-404979,-847351,18060000,109480000,-13020000 +1732006484398,1732006485403,-535946,-172813,-459818,-19670000,-57750000,25480000 +1732006484500,1732006485494,-1025959,-253943,-540582,10220000,-41090000,27370000 +1732006484602,1732006485584,-891881,-238205,-397293,7630000,-13370000,20300000 +1732006484704,1732006485703,-913048,-76921,-382531,-8610000,-10780000,1610000 +1732006484805,1732006485794,-963556,-84607,-396378,3710000,-7910000,-11620000 +1732006484907,1732006485917,-910120,-175375,-367891,-12530000,70000,-5040000 +1732006485009,1732006486033,-912072,-146339,-400770,-8400000,70000,-2240000 +1732006485111,1732006486124,-850889,-150914,-325618,-10780000,10080000,-14000000 +1732006485213,1732006486243,-1474492,-642147,-407053,-33040000,129990000,-49840000 +1732006485315,1732006486303,-215147,-93025,-1228845,-20860000,25900000,21980000 +1732006485417,1732006486424,-929640,-331474,-701134,59920000,-95760000,28770000 +1732006485518,1732006486514,-831552,-277611,-614453,7700000,-23240000,6020000 +1732006485620,1732006486634,-952759,-136640,-427488,4970000,-26460000,3010000 +1732006485722,1732006486724,-928054,-173301,-456341,-8890000,980000,-4760000 +1732006485824,1732006486816,-906460,-167384,-411689,-8750000,-6790000,-10430000 +1732006485926,1732006486934,-1013149,-229787,-434747,-420000,-11130000,-6370000 +1732006486028,1732006487023,-857782,-175131,-363621,25270000,2660000,3990000 +1732006486130,1732006487144,-900238,-182634,-374845,-18200000,4060000,-3150000 +1732006486231,1732006487234,-869128,-219966,-351238,6860000,13510000,-15330000 +1732006486333,1732006487323,-1039745,27084,-528626,-24920000,41860000,-16030000 +1732006486435,1732006487444,-633424,-425231,-907558,99680000,-10850000,35280000 +1732006486537,1732006487534,-811239,-185623,-688690,-47320000,-17220000,7560000 +1732006486639,1732006487653,-813374,-230275,-493612,1330000,-30380000,19320000 +1732006486741,1732006487774,-1006439,-168177,-414129,11550000,-50680000,6930000 +1732006486842,1732006487833,-931958,-347578,-274744,-16380000,-17500000,3290000 +1732006486944,1732006487984,-969534,-185989,-253089,-420000,-7350000,-4480000 +1732006487046,1732006488043,-906399,-212890,-318359,-10010000,8330000,-9170000 +1732006487148,1732006488165,-919026,-262056,-331352,-4690000,11970000,-3920000 +1732006487250,1732006488254,-907131,-254675,-368745,9730000,8750000,-10360000 +1732006487352,1732006488344,-900238,-229848,-362340,1470000,19180000,-9730000 +1732006487453,1732006488494,-798978,-264801,-196298,-8890000,38290000,-30940000 +1732006487555,1732006488552,-1437099,-236253,-111935,39410000,195720000,-9660000 +1732006487657,1732006488673,-112057,-713395,-600484,46340000,-4410000,6930000 +1732006487759,1732006488763,-525271,-516853,-631289,-70070000,-28560000,35490000 +1732006487861,1732006488854,-892979,-135176,-650809,-8680000,-24570000,21140000 +1732006487963,1732006488974,-740174,-338062,-523990,-17920000,-37380000,5180000 +1732006488064,1732006489065,-833443,-260775,-539301,-8680000,-11760000,4270000 +1732006488166,1732006489185,-822890,-148718,-523258,-12950000,-15820000,-1190000 +1732006488268,1732006489274,-795623,-246623,-457439,-7140000,-6440000,-980000 +1732006488370,1732006489365,-859124,-228628,-498187,-23170000,-490000,-5180000 +1732006488472,1732006489484,-831125,-279136,-476227,5950000,4200000,-3220000 +1732006488574,1732006489573,-1014918,-196786,185196,-21910000,6720000,6510000 +1732006488675,1732006489694,-563335,376187,-652822,29960000,3640000,76720000 +1732006488777,1732006489783,-716506,-524600,-553941,48930000,-12600000,3010000 +1732006488879,1732006489873,-911157,-218746,-594018,910000,-9730000,6440000 +1732006488981,1732006489994,-874923,-174033,-504836,-22540000,-16240000,-2450000 +1732006489083,1732006490084,-859612,-173057,-513925,6580000,-22680000,-2380000 \ No newline at end of file diff --git a/jupyter/daten/dreh dich _128d9a47-e9a5-437d-95d2-2374c5d9a167.csv b/jupyter/daten/dreh dich _128d9a47-e9a5-437d-95d2-2374c5d9a167.csv new file mode 100644 index 0000000..6989ad9 --- /dev/null +++ b/jupyter/daten/dreh dich _128d9a47-e9a5-437d-95d2-2374c5d9a167.csv @@ -0,0 +1,42 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006562306,1732006563526,-379237,-460489,-794281,10150000,-32620000,46550000 +1732006562407,1732006563615,-852963,-366732,-523990,24500000,-49700000,21070000 +1732006562509,1732006563704,-811239,-294203,-600667,-1260000,-13580000,-7700000 +1732006562611,1732006563827,-770918,-263886,-510753,-43680000,-4690000,-15890000 +1732006562713,1732006563915,-682834,-627324,-682895,-44590000,17780000,-35700000 +1732006562815,1732006564035,-874801,-210389,-625799,-119490000,-136990000,-53760000 +1732006562917,1732006564125,-871568,-229177,-358375,-175490000,-105210000,-115290000 +1732006563019,1732006564215,-889014,9638,-275537,-213920000,-14350000,-150920000 +1732006563120,1732006564334,-886757,-137677,-637084,-123550000,-76090000,-158270000 +1732006563222,1732006564426,-476166,-548207,-536800,-179200000,-20160000,-67340000 +1732006563324,1732006564545,-1501027,2989,-655994,-255710000,-28000000,-319340000 +1732006563426,1732006564635,-602741,-226676,-1000339,-235270000,-36400000,-175490000 +1732006563528,1732006564725,-467687,676124,-1002901,-164780000,-30030000,-280210000 +1732006563630,1732006564846,-532652,154635,-532164,-68390000,-128520000,-213290000 +1732006563731,1732006564934,-460184,-267973,-1034560,-106470000,73780000,-213290000 +1732006563833,1732006565055,-285419,481961,-1448567,-120750000,5950000,-248290000 +1732006563935,1732006565145,72529,369782,-930006,-27160000,-15540000,-283360000 +1732006564037,1732006565235,-145790,113399,-1271057,-112840000,-9240000,-145950000 +1732006564139,1732006565354,-231007,555649,-1279780,-39340000,-85890000,-177310000 +1732006564241,1732006565446,-245525,-216733,-510387,26600000,-181230000,-145950000 +1732006564342,1732006565564,-629947,102480,-451949,-80010000,-144900000,-86310000 +1732006564444,1732006565713,-413092,-195200,-516182,-54740000,-96040000,-30380000 +1732006564546,1732006565744,-700097,-343308,-519537,-56700000,-113540000,-19670000 +1732006564648,1732006565865,-1211338,185196,-577060,-83300000,-55790000,-18340000 +1732006564750,1732006565955,-1005463,-71675,-292373,21000000,-19880000,21210000 +1732006564852,1732006566074,-1121424,-199287,-345443,-3290000,-16800000,5740000 +1732006564953,1732006566164,-480802,-169153,-238693,14210000,70210000,-910000 +1732006565055,1732006566255,-528260,-25193,-53985,-55510000,-97300000,14000000 +1732006565157,1732006566375,-814106,-27877,113155,95690000,-119840000,40250000 +1732006565259,1732006566526,-1313330,-159088,-552294,23450000,150360000,-69160000 +1732006565361,1732006566584,-863455,-397598,-730658,19600000,70070000,14490000 +1732006565463,1732006566676,-868701,-223382,-543693,39130000,-8540000,-3080000 +1732006565564,1732006566796,-786534,-307013,-497455,27580000,23940000,9030000 +1732006565666,1732006566885,-782569,-478972,-435357,30590000,28280000,49210000 +1732006565768,1732006566974,-776225,-220149,-491050,14700000,-1190000,41510000 +1732006565870,1732006567096,-801479,671,-551745,22120000,42490000,61390000 +1732006565972,1732006567184,-816058,-95282,-581818,105700000,26250000,38080000 +1732006566074,1732006567278,-724741,-244793,-599264,80570000,33320000,8120000 +1732006566175,1732006567397,-702232,-193248,-596641,67900000,33250000,8050000 +1732006566277,1732006567485,-940071,-382714,-534238,86380000,50400000,-9450000 +1732006566379,1732006567604,-670451,-217648,-524844,11480000,101010000,-13300000 \ No newline at end of file diff --git a/jupyter/daten/dreh dich _3168a933-4090-4527-bdb2-00abd1076bb8.csv b/jupyter/daten/dreh dich _3168a933-4090-4527-bdb2-00abd1076bb8.csv new file mode 100644 index 0000000..e384d4f --- /dev/null +++ b/jupyter/daten/dreh dich _3168a933-4090-4527-bdb2-00abd1076bb8.csv @@ -0,0 +1,42 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006587867,1732006589146,-941840,-276147,-210206,14560000,4410000,-5810000 +1732006587969,1732006589235,-962580,-292068,-215330,2030000,1120000,-700000 +1732006588070,1732006589355,-934154,-307867,-156770,15400000,-6300000,-1330000 +1732006588172,1732006589445,-890112,-143350,53802,-12320000,2940000,3780000 +1732006588274,1732006589566,-1091473,-215635,-387960,-103040000,-15680000,-47600000 +1732006588376,1732006589655,-879437,-235033,-210511,-136710000,10640000,-46690000 +1732006588478,1732006589805,-1153693,-176168,-448655,-136430000,-18620000,-61110000 +1732006588580,1732006589864,-644221,229726,-313113,-214270000,-69580000,-91140000 +1732006588681,1732006589984,-916769,32025,-443226,-210210000,96250000,-173110000 +1732006588783,1732006590045,-760243,-610,-650809,-67060000,76090000,-161140000 +1732006588885,1732006590165,-187392,-903959,-933422,-69650000,13230000,-178850000 +1732006588987,1732006590255,-456402,-319579,-895602,-99680000,-162470000,-111580000 +1732006589089,1732006590378,-854610,-388143,-531493,-139090000,-152740000,-129710000 +1732006589191,1732006590465,-586027,-158173,-822951,-174090000,-11130000,-97300000 +1732006589293,1732006590585,-651907,110227,-852658,-163590000,-22050000,-224280000 +1732006589394,1732006590676,-534604,214842,-269254,-136430000,-68460000,-291060000 +1732006589496,1732006590765,-257237,-86010,-1301801,-133630000,280000,-280770000 +1732006589598,1732006590884,-500383,86986,-858636,-77490000,-41300000,-230860000 +1732006589700,1732006590976,-531493,-236619,-821182,-58800000,-53690000,-158970000 +1732006589802,1732006591097,-248758,308904,-1159000,-27650000,-3290000,-100870000 +1732006589904,1732006591184,-41053,226493,-1131672,33110000,-38990000,-118020000 +1732006590005,1732006591279,-416203,-57096,-822463,-47530000,-108080000,-132860000 +1732006590107,1732006591396,208986,-106567,-1218536,-82110000,-62720000,-203490000 +1732006590209,1732006591514,-344345,-77714,-1201334,-32340000,-137690000,-159950000 +1732006590311,1732006591605,-233325,-321775,-387228,-6720000,-141050000,-107380000 +1732006590413,1732006591696,-597434,31049,-738222,-101290000,-92890000,-24850000 +1732006590515,1732006591784,-741333,-304207,-614636,78610000,-87150000,38360000 +1732006590616,1732006591905,-810934,-115778,-456036,-840000,-52640000,43330000 +1732006590718,1732006591996,-849486,-50386,-356057,43050000,-34230000,20650000 +1732006590820,1732006592114,-935313,-198433,-252906,8890000,-3500000,5950000 +1732006590922,1732006592205,-822646,-96319,-376126,47670000,-4130000,-5390000 +1732006591024,1732006592296,-868152,-166286,-339404,66430000,1050000,32130000 +1732006591126,1732006592505,-1083360,-152561,-154757,19040000,26880000,17780000 +1732006591329,1732006592626,-1072502,-277245,-149206,9170000,-2590000,-17990000 +1732006591431,1732006592716,-1319247,-669414,-789767,-43330000,22960000,-33530000 +1732006591533,1732006592835,-600667,-160796,-504043,-41720000,-7560000,-23870000 +1732006591635,1732006592926,-879315,-27450,-361669,-20020000,840000,3150000 +1732006591737,1732006593046,-1177605,-377529,-543754,46900000,-7630000,18060000 +1732006591838,1732006593197,-868335,-357277,-289628,79590000,-18130000,-10500000 +1732006591940,1732006593227,-935313,-238754,-134749,42000000,2100000,16380000 +1732006592063,1732006593378,-980819,-200324,-170983,20440000,-4410000,15470000 \ No newline at end of file diff --git a/jupyter/daten/dreh dich _6ddf00e6-1d56-40a1-aca9-126d550b5de2.csv b/jupyter/daten/dreh dich _6ddf00e6-1d56-40a1-aca9-126d550b5de2.csv new file mode 100644 index 0000000..238803b --- /dev/null +++ b/jupyter/daten/dreh dich _6ddf00e6-1d56-40a1-aca9-126d550b5de2.csv @@ -0,0 +1,42 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006552834,1732006554015,-741760,-460245,-598715,-1610000,10290000,-5250000 +1732006552936,1732006554104,-611830,-429806,-549488,-3220000,4620000,-2380000 +1732006553038,1732006554224,-717665,-484584,-592127,-2520000,-1540000,1750000 +1732006553140,1732006554315,-676673,-402783,-542778,-14000000,-8190000,-2240000 +1732006553242,1732006554434,-697596,-401990,-622200,-21210000,-38150000,-7490000 +1732006553344,1732006554524,-641659,-483974,-570411,-54880000,-45500000,-14910000 +1732006553445,1732006554614,-760609,-208559,-445910,-137620000,-63560000,-33600000 +1732006553547,1732006554734,-897371,-307928,-589992,-151060000,-37100000,-114170000 +1732006553649,1732006554824,-712663,-89670,-518744,-165690000,-73360000,-123830000 +1732006553751,1732006554945,-922930,-63440,-832284,-107170000,-42770000,-126490000 +1732006553853,1732006555064,-602619,-839238,-908046,-102620000,-120540000,-112000000 +1732006553955,1732006555213,-946720,-274561,534116,-173530000,-172690000,-71400000 +1732006554057,1732006555245,-197823,-303658,-292007,-128730000,-74620000,-71890000 +1732006554158,1732006555334,-1017602,-591212,-693692,-297150000,35770000,-181230000 +1732006554260,1732006555455,-856135,53497,-602680,-123760000,-78750000,-138950000 +1732006554362,1732006555545,-783911,-131821,-227774,-139370000,-61110000,-167580000 +1732006554464,1732006555635,-263642,-69601,-1119533,-159950000,39970000,-143990000 +1732006554566,1732006555754,-622322,-351055,-963983,-157710000,-57470000,-232120000 +1732006554668,1732006555844,-686738,210938,-777994,-180810000,-83300000,-253190000 +1732006554769,1732006555965,-625555,387289,-1160891,-135030000,13160000,-260050000 +1732006554871,1732006556055,68747,38735,-739442,26460000,7700000,-230720000 +1732006554973,1732006556145,-435418,242231,-562176,-156100000,-42210000,-140000000 +1732006555075,1732006556266,-146705,310612,-1310219,-54460000,40670000,-128800000 +1732006555177,1732006556354,-105225,196664,-1101965,-38150000,-107940000,-174230000 +1732006555279,1732006556475,-432063,-98820,-984357,-8890000,-182140000,-205030000 +1732006555380,1732006556565,-534177,-550952,-400770,-2310000,-165340000,-90160000 +1732006555482,1732006556684,-633485,-155977,-615307,-71890000,-16870000,18550000 +1732006555584,1732006556774,-657824,-311222,-619760,7560000,-19880000,25620000 +1732006555686,1732006556865,-637450,-147437,-519232,16730000,-53340000,-9100000 +1732006555788,1732006556984,-928908,-214964,-590358,39550000,-39480000,24080000 +1732006555890,1732006557075,-833443,8723,-529663,28560000,-24920000,14630000 +1732006555992,1732006557198,-967399,-437126,-410286,72100000,-24010000,16660000 +1732006556093,1732006557284,-915427,-126392,-165676,-20020000,-17570000,-23870000 +1732006556195,1732006557375,-1251537,-309697,-486719,70980000,90440000,-12880000 +1732006556297,1732006557496,-612745,-297985,-130723,-2310000,2450000,-1260000 +1732006556399,1732006557613,-701744,-203496,-300852,-63770000,-22050000,54180000 +1732006556501,1732006557703,-1295152,-143167,-762134,10150000,-2940000,-18340000 +1732006556603,1732006557884,-885476,-217709,-192333,-5390000,-24150000,-11480000 +1732006556806,1732006558004,-880108,-357948,-346724,-22820000,-5110000,-5110000 +1732006556908,1732006558096,-876753,-219417,-320067,-22470000,-5460000,-16380000 +1732006557010,1732006558215,-915488,-324093,-339831,-8820000,-1190000,-2730000 \ No newline at end of file diff --git a/jupyter/daten/dreh dich _d2fb4a43-bdc1-4f9d-86ee-86db4143caf6.csv b/jupyter/daten/dreh dich _d2fb4a43-bdc1-4f9d-86ee-86db4143caf6.csv new file mode 100644 index 0000000..ff25519 --- /dev/null +++ b/jupyter/daten/dreh dich _d2fb4a43-bdc1-4f9d-86ee-86db4143caf6.csv @@ -0,0 +1,40 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006581044,1732006582304,-805017,-391742,-238937,-73360000,-43960000,-14630000 +1732006581146,1732006582397,-753533,-339160,-475129,-95550000,-27860000,-10150000 +1732006581247,1732006582547,-856135,-366976,-496967,-143150000,-29890000,-34720000 +1732006581349,1732006582604,-793854,140910,-555283,-193200000,-45360000,-106050000 +1732006581451,1732006582695,-909571,200324,-266265,-162330000,-38010000,-156590000 +1732006581553,1732006582815,-692594,-319091,-520147,-47530000,48790000,-150290000 +1732006581655,1732006582904,-378322,-661789,-817827,-68810000,-16590000,-130270000 +1732006581757,1732006583026,-740662,-620126,-539667,-142660000,-107660000,-114940000 +1732006581858,1732006583115,-872239,-441213,-568825,-161980000,-123340000,-106610000 +1732006581960,1732006583205,-950197,-99064,-455182,-139580000,-62300000,-95830000 +1732006582062,1732006583326,-908168,-172935,-593286,-202580000,-110390000,-122500000 +1732006582164,1732006583414,-399245,474519,119621,-181720000,-23380000,-226520000 +1732006582266,1732006583535,-846802,-169824,-1441308,-222390000,49280000,-295470000 +1732006582368,1732006583626,-590663,-78446,-889807,-165760000,-92610000,-280840000 +1732006582469,1732006583714,-610000,64111,-882548,-196840000,-7840000,-235550000 +1732006582571,1732006583834,-126758,677466,-1058106,-42070000,27510000,-180040000 +1732006582673,1732006583926,-265594,-189710,-917684,24780000,-66010000,-131460000 +1732006582775,1732006584047,-171349,258396,-598593,-50540000,-63140000,-145810000 +1732006582877,1732006584135,42395,-278770,-1239459,-45080000,-90650000,-155050000 +1732006582979,1732006584226,-566324,-73688,-822402,-48930000,-184450000,-142940000 +1732006583080,1732006584347,-573888,-511851,-558455,-48580000,-190820000,-88690000 +1732006583182,1732006584435,-767807,-344711,-705770,-111510000,-48580000,16170000 +1732006583284,1732006584555,-887550,84668,-528077,-55860000,-104720000,6720000 +1732006583386,1732006584645,-740723,-52155,-257542,-7280000,-33950000,-19460000 +1732006583488,1732006584735,-849669,123342,-438590,53830000,8610000,5950000 +1732006583590,1732006584855,-813191,-256566,-455487,50960000,-1750000,7140000 +1732006583691,1732006584975,-1008879,-305427,-440481,-4970000,9520000,-5600000 +1732006583793,1732006585065,-1128378,-282064,-468663,50120000,-13090000,-420000 +1732006583895,1732006585155,-1305644,-552782,-307867,74620000,-17990000,-25130000 +1732006583997,1732006585276,-1048468,-453047,-394792,76510000,28980000,10010000 +1732006584099,1732006585366,-813069,-481168,323788,31080000,-28280000,13720000 +1732006584201,1732006585455,-888648,-280905,-125538,52570000,-95900000,19670000 +1732006584302,1732006585576,-877973,-146461,-76799,20790000,-32480000,6580000 +1732006584404,1732006585724,-1055178,-494832,7198,40670000,42630000,-26250000 +1732006584506,1732006585785,-1156621,-398940,-255773,-42210000,51450000,-1680000 +1732006584608,1732006585903,-926041,-269132,-239120,25620000,-10710000,6510000 +1732006584710,1732006585964,-922564,-368440,-158600,42560000,-11270000,31080000 +1732006584812,1732006586113,-992836,-279807,-115168,35210000,15750000,15400000 +1732006584913,1732006586175,-1083116,-251625,-246135,11270000,28700000,2310000 \ No newline at end of file diff --git a/jupyter/daten/laufen _72364c32-b839-4ad7-9ede-951a00a25b95.csv b/jupyter/daten/laufen _72364c32-b839-4ad7-9ede-951a00a25b95.csv new file mode 100644 index 0000000..dea3676 --- /dev/null +++ b/jupyter/daten/laufen _72364c32-b839-4ad7-9ede-951a00a25b95.csv @@ -0,0 +1,42 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671981254,1731671982625,-563457,-535519,-337513,20230000,-6300000,37800000 +1731671981356,1731671982744,-621773,-876814,-540582,2310000,-3920000,-34090000 +1731671981458,1731671982835,-432002,-742004,-434259,-30590000,-9450000,-35770000 +1731671981560,1731671982983,-665571,-587369,-542168,-8470000,-16240000,-21770000 +1731671981662,1731671983045,-383324,-675209,-333670,11130000,-9380000,-48230000 +1731671981763,1731671983134,-518561,-1146983,-588711,-33180000,-37520000,-54320000 +1731671981865,1731671983254,-278648,-703086,-551928,-47390000,-90300000,2940000 +1731671981967,1731671983344,-419619,-643184,-308660,-36120000,-58030000,-20160000 +1731671982069,1731671983466,-390095,-546011,-418704,-48650000,-38360000,-30380000 +1731671982171,1731671983552,-490074,-424743,-585539,-30380000,-21630000,-30030000 +1731671982273,1731671983646,-304756,-1043771,-670939,-46760000,-59710000,-72730000 +1731671982375,1731671983764,-295484,-760182,-478728,-102060000,-100800000,-69020000 +1731671982476,1731671983854,-451949,-498309,-823805,-116200000,-127260000,-72660000 +1731671982578,1731671983973,-439505,-481900,-567605,-51100000,-112210000,-125440000 +1731671982680,1731671984064,-536739,-547109,-389058,-84700000,-52500000,-121170000 +1731671982782,1731671984153,150609,-675575,-996557,-89040000,-49070000,-146160000 +1731671982884,1731671984303,-18971,-664168,-807396,-33180000,-118440000,-131880000 +1731671982986,1731671984423,-216245,-494100,-796294,-72450000,-87500000,-74480000 +1731671983087,1731671984483,-425231,-161772,-805505,-20650000,-60900000,-73710000 +1731671983189,1731671984572,-153232,-555466,-741272,73150000,6020000,-78190000 +1731671983291,1731671984696,166286,-1124779,-653859,31290000,-63980000,-16170000 +1731671983393,1731671984844,-353007,-811788,-636901,33950000,-125300000,44450000 +1731671983495,1731671984875,-667279,-302255,-282186,35000000,-53830000,72940000 +1731671983597,1731671984995,-198677,-1213839,-770247,-13370000,49280000,-90370000 +1731671983698,1731671985114,-332145,-812581,-688751,-130410000,-78680000,-58450000 +1731671983800,1731671985232,-616466,-449570,-757742,24780000,-59360000,-13090000 +1731671983902,1731671985297,-350079,-1165832,94489,113540000,-220780000,64750000 +1731671984004,1731671985443,-905545,-650687,-100101,-212660000,-103320000,12810000 +1731671984106,1731671985565,-355569,-434076,-251320,-50470000,-77770000,-24850000 +1731671984208,1731671985593,-575840,-855464,-257481,-74620000,-93030000,-117530000 +1731671984310,1731671985714,-523990,-1002108,-307257,-132650000,-54600000,-86520000 +1731671984411,1731671985803,-378444,-439627,-415410,-100450000,5250000,-53340000 +1731671984513,1731671985924,-106567,-755668,-673806,-70630000,18270000,-84560000 +1731671984615,1731671986014,-53497,-711138,-523319,-20720000,53970000,-56000000 +1731671984717,1731671986105,-56303,-764330,-830820,9170000,12810000,-59150000 +1731671984819,1731671986283,-221735,996496,53070,265300000,-208740000,126910000 +1731671984921,1731671986347,-133712,-1799195,-504775,-37800000,2380000,14070000 +1731671985022,1731671986402,-326655,-635010,-593286,-65520000,50610000,-5880000 +1731671985124,1731671986521,405528,-1757288,898713,206570000,85050000,-82390000 +1731671985226,1731671986613,-459513,-70394,-522953,-92610000,-55370000,131250000 +1731671985328,1731671986734,-995886,-666120,-247477,29190000,-14280000,-15610000 \ No newline at end of file diff --git a/jupyter/daten/laufen _906e61ec-7a96-4ae7-92bc-f5d54241f89b.csv b/jupyter/daten/laufen _906e61ec-7a96-4ae7-92bc-f5d54241f89b.csv new file mode 100644 index 0000000..56d6b1f --- /dev/null +++ b/jupyter/daten/laufen _906e61ec-7a96-4ae7-92bc-f5d54241f89b.csv @@ -0,0 +1,58 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671974737,1731671976172,-397537,-817705,-553636,3640000,-86870000,-23590000 +1731671974838,1731671976232,-337452,-962946,-794342,-31500000,-2520000,-44520000 +1731671974940,1731671976353,79361,-648796,-579744,70000,-41230000,-19810000 +1731671975042,1731671976413,-352763,-748226,-598044,-18060000,-31080000,-19390000 +1731671975144,1731671976533,-377773,-501054,-606401,-2310000,-10010000,-22890000 +1731671975246,1731671976652,6649,-819901,-631106,39900000,9660000,-84630000 +1731671975348,1731671976712,-3721,-863638,-685762,-9660000,-22330000,-39970000 +1731671975449,1731671976833,-85949,-868274,-614697,24080000,-62650000,-1960000 +1731671975551,1731671976952,-314699,-791719,-393694,13370000,-45500000,43610000 +1731671975653,1731671977072,-445849,-770552,-557235,-17640000,78890000,-42280000 +1731671975755,1731671977131,157502,-990701,-591395,560000,6650000,2870000 +1731671975857,1731671977222,-84668,-669353,-601216,-43190000,-12880000,26880000 +1731671975959,1731671977344,-187941,-459269,-730048,-2730000,630000,-10990000 +1731671976061,1731671977464,226005,-1219390,-363133,-6090000,-33320000,-52850000 +1731671976162,1731671977522,-109556,-698694,-645136,8680000,-28490000,-25900000 +1731671976264,1731671977643,-219417,-860466,-439749,28490000,-76300000,31920000 +1731671976366,1731671977763,-449265,-694363,-231434,-22190000,-9100000,23310000 +1731671976468,1731671977882,206668,-864553,-643794,23660000,64120000,-700000 +1731671976570,1731671978033,-327509,-894626,-575047,-7700000,-4270000,27090000 +1731671976773,1731671978182,-156282,-908595,-328485,25060000,21280000,-55580000 +1731671976875,1731671978243,-22387,-768478,-571204,-3990000,-9800000,-24990000 +1731671976977,1731671978335,-207095,-903105,-544730,24010000,-34860000,-70000 +1731671977079,1731671978452,-489403,-745603,-544425,3850000,-5530000,43120000 +1731671977181,1731671978577,76128,-762866,-564982,17500000,78330000,23380000 +1731671977283,1731671978664,-219905,-1087386,-480619,-5390000,15820000,18760000 +1731671977384,1731671978755,-25681,-564494,-471835,-33880000,-1680000,62300000 +1731671977486,1731671978871,-390034,-585722,-543632,-2940000,25480000,-20580000 +1731671977588,1731671978996,68076,-968253,-443165,-10920000,-3360000,-21840000 +1731671977690,1731671979052,-243939,-909754,-534055,12390000,-24430000,7070000 +1731671977792,1731671979172,-285419,-748836,-428586,12040000,-28210000,54320000 +1731671977894,1731671979264,-503006,-673745,-630801,-210000,77560000,-45430000 +1731671977995,1731671979385,115351,-1185413,-605913,7560000,20160000,-5460000 +1731671978097,1731671979532,-80398,-836066,-520879,-48510000,-30380000,63770000 +1731671978199,1731671979564,-470432,-486231,-444873,910000,1190000,14630000 +1731671978301,1731671979684,-59536,-972645,-513071,-12180000,4410000,-72590000 +1731671978403,1731671979774,-144082,-917684,-563762,12600000,-23240000,-13230000 +1731671978505,1731671979953,-138043,-838750,-410957,210000,-38500000,35700000 +1731671978606,1731671979984,-573339,-885903,-246989,-32200000,11480000,-13650000 +1731671978708,1731671980102,59597,-783484,-605425,25900000,64820000,2240000 +1731671978810,1731671980194,-385032,-865773,-486109,12880000,25760000,36750000 +1731671978912,1731671980283,-143472,-666974,-452132,-3360000,2450000,58310000 +1731671979014,1731671980434,-371673,-886696,-501237,29260000,35140000,-43400000 +1731671979116,1731671980612,40565,-1001620,-395951,-9870000,10010000,-14210000 +1731671979217,1731671980636,-179096,-849852,-538386,33740000,14490000,9030000 +1731671979319,1731671980702,-262971,-899933,-415776,26670000,9450000,49000000 +1731671979421,1731671980852,-353007,-841983,-351177,10080000,63070000,-14000000 +1731671979523,1731671980913,87596,-1173396,-505263,37030000,87500000,43190000 +1731671979625,1731671981032,-153842,-1033401,-515694,-35770000,46410000,80430000 +1731671979727,1731671981093,-290970,-696803,-343674,17360000,-8050000,31080000 +1731671979828,1731671981214,-192455,-942694,-442372,30940000,30450000,-42420000 +1731671979930,1731671981303,-112972,-762500,-462197,1400000,25830000,13230000 +1731671980032,1731671981423,-272487,-880596,-365512,26110000,33740000,30520000 +1731671980134,1731671981543,-265472,-800381,-180926,3850000,23730000,10150000 +1731671980236,1731671981604,54168,-740723,-514291,910000,109060000,62300000 +1731671980338,1731671981723,-205753,-1073478,-435235,12950000,31570000,52430000 +1731671980440,1731671981814,-92110,-735843,-373930,-6650000,27090000,78470000 +1731671980541,1731671981932,-381067,-760670,-410774,29470000,5810000,7840000 \ No newline at end of file diff --git a/jupyter/daten/laufen _9dbc57d9-a9ae-482b-a812-25e86a30d17c.csv b/jupyter/daten/laufen _9dbc57d9-a9ae-482b-a812-25e86a30d17c.csv new file mode 100644 index 0000000..b4f5a7a --- /dev/null +++ b/jupyter/daten/laufen _9dbc57d9-a9ae-482b-a812-25e86a30d17c.csv @@ -0,0 +1,68 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731672002742,1731672004197,227286,-1065609,-601216,30730000,27090000,34300000 +1731672002844,1731672004283,-210328,-1081103,-510570,-36190000,-24570000,72100000 +1731672002946,1731672004376,-457317,-533201,-509472,-26950000,-22680000,51170000 +1731672003048,1731672004493,-339221,-627080,-348554,32480000,7280000,-78120000 +1731672003150,1731672004583,71980,-858453,-604937,-1820000,15260000,-44730000 +1731672003252,1731672004702,62342,-803797,-442006,31640000,-9660000,-5810000 +1731672003353,1731672004796,-211609,-683200,-475922,11480000,32550000,-9100000 +1731672003455,1731672004884,327021,-861930,-690703,9660000,-7840000,-29050000 +1731672003557,1731672005005,0,-887367,-490989,-37800000,-29330000,9100000 +1731672003659,1731672005123,110776,-652334,-698816,-103390000,-105840000,-17430000 +1731672003761,1731672005215,-276574,-522648,-433771,5390000,-73990000,1260000 +1731672003863,1731672005333,-111264,-1018822,-637633,36540000,-42000000,-71400000 +1731672003964,1731672005395,-107238,-891027,-568764,-7350000,-80920000,-45780000 +1731672004066,1731672005514,-179889,-879925,-445544,10080000,-106960000,-40530000 +1731672004168,1731672005602,-133163,-783118,-422852,-38220000,-99260000,3360000 +1731672004270,1731672005723,-512949,-957395,-439566,-67270000,-74760000,-48300000 +1731672004372,1731672005814,-199592,-763110,-644587,-59990000,-68320000,-62090000 +1731672004474,1731672005902,-248575,-624884,-789706,-71050000,-57050000,-48790000 +1731672004576,1731672006026,-258396,-753594,-726815,-29540000,-91000000,-82670000 +1731672004677,1731672006114,-360205,-659349,-577182,-22610000,-92400000,-28000000 +1731672004779,1731672006235,-496906,-434869,-689605,-8540000,-14910000,-14000000 +1731672004881,1731672006323,-201605,-737307,-757254,-6300000,-52920000,-28140000 +1731672004983,1731672006446,-62769,-852902,-607560,-47600000,-94430000,-47320000 +1731672005085,1731672006532,-302804,-571265,-726754,-106470000,-110950000,-90090000 +1731672005187,1731672006622,-466040,-521184,-662277,-52290000,-104790000,-112770000 +1731672005288,1731672006743,-398574,-571875,-470249,-25340000,-83020000,-90720000 +1731672005390,1731672006835,-442067,-774212,-750788,-81970000,-47880000,-94080000 +1731672005492,1731672006953,-132004,-744932,-709430,-41230000,-78820000,-69650000 +1731672005594,1731672007076,-335073,-685335,-601094,-56140000,-62160000,-18270000 +1731672005696,1731672007133,-536617,-254248,-808860,-57750000,-4900000,16660000 +1731672005798,1731672007255,-492270,-544486,-403515,215390000,-45850000,-1820000 +1731672005899,1731672007374,-537471,-1998604,-431331,-231280000,-105000000,36540000 +1731672006001,1731672007464,392413,1997750,-94001,-80920000,231350000,335300000 +1731672006103,1731672007553,-1998604,-1998604,718763,247240000,-218680000,-80780000 +1731672006205,1731672007646,183,-39162,1989576,521220000,-47250000,-319550000 +1731672006307,1731672007763,510875,275476,418887,-961240000,53690000,-32760000 +1731672006409,1731672007855,-302865,-687043,-478545,313320000,56490000,-11060000 +1731672006510,1731672007973,-438163,-1170651,-244061,136360000,-16940000,-23660000 +1731672006612,1731672008095,-337635,-966789,-210145,-56560000,22820000,-18340000 +1731672006714,1731672008183,-249246,-680577,-348554,19670000,31080000,-14280000 +1731672006816,1731672008276,-178181,-918660,-382897,7910000,24500000,-14840000 +1731672006918,1731672008422,-338977,-820938,-411994,-4620000,46760000,-42140000 +1731672007020,1731672008485,236131,-1207922,-308355,-13930000,30450000,-51590000 +1731672007122,1731672008572,119133,-895846,-316346,12460000,-37730000,16800000 +1731672007223,1731672008665,-156831,-935313,-170800,26530000,-39270000,8820000 +1731672007325,1731672008782,-257908,-885354,-212585,8190000,-16030000,-70000 +1731672007427,1731672008876,129564,-1130208,-406199,-700000,30310000,-17990000 +1731672007529,1731672008996,20984,-939278,-210999,17360000,6300000,36050000 +1731672007631,1731672009084,-198189,-972279,-233325,-23800000,-420000,23100000 +1731672007733,1731672009172,-246928,-848632,-273646,-15820000,-2590000,7560000 +1731672007834,1731672009295,77958,-1167418,-308782,4410000,3640000,-25760000 +1731672007936,1731672009383,-109739,-875472,-205997,-7630000,-28490000,-2240000 +1731672008038,1731672009505,-248758,-900787,-232532,14280000,-6720000,-5110000 +1731672008140,1731672009593,-144387,-833687,-170678,15260000,20650000,17220000 +1731672008242,1731672009682,-124745,-1161257,-323788,-10990000,39130000,-49000000 +1731672008344,1731672009832,245159,-1020042,-345199,26600000,38360000,-2030000 +1731672008445,1731672009984,-160796,-1087325,-199104,-10710000,-560000,13580000 +1731672008547,1731672010042,23241,-805993,-293654,-41510000,-22330000,40180000 +1731672008649,1731672010131,-31598,-939339,-369782,-1260000,-12670000,-37730000 +1731672008751,1731672010282,268766,-1070977,-209169,5390000,-43330000,-37310000 +1731672008853,1731672010313,-51789,-1006378,-289689,21630000,-37380000,-5320000 +1731672008955,1731672010402,18971,-909083,-184220,15470000,-34370000,52080000 +1731672009056,1731672010525,-94428,-1033523,-153171,-14980000,-14210000,-24500000 +1731672009158,1731672010613,192516,-825208,-432612,16520000,3430000,1890000 +1731672009260,1731672010734,-117303,-1016931,-275049,-3920000,-12670000,-8120000 +1731672009362,1731672010823,29219,-865651,-323544,-32340000,-29190000,23100000 +1731672009464,1731672010946,-132248,-721508,-404918,-4620000,-12670000,-16310000 \ No newline at end of file diff --git a/jupyter/daten/laufen _ec8dd0be-2f76-43f4-82ad-e50af254156d.csv b/jupyter/daten/laufen _ec8dd0be-2f76-43f4-82ad-e50af254156d.csv new file mode 100644 index 0000000..cc98a1d --- /dev/null +++ b/jupyter/daten/laufen _ec8dd0be-2f76-43f4-82ad-e50af254156d.csv @@ -0,0 +1,85 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671993373,1731671994803,87169,-764086,-564311,24990000,-20440000,-70000 +1731671993475,1731671994893,-98393,-799161,-606157,-19320000,-30450000,-3360000 +1731671993577,1731671994983,-147132,-663497,-570777,-19320000,-39550000,-9450000 +1731671993679,1731671995103,135298,-819535,-676429,2870000,-25410000,-53410000 +1731671993780,1731671995222,349408,-858758,-545950,-3640000,-68880000,-58100000 +1731671993882,1731671995282,-6344,-741577,-702842,-15190000,-72170000,-44450000 +1731671993984,1731671995403,-7808,-641293,-533506,10010000,-74760000,-25620000 +1731671994086,1731671995494,-260836,-752801,-593408,-3150000,-20230000,-25690000 +1731671994188,1731671995614,195810,-713334,-781532,2520000,-32830000,-20300000 +1731671994290,1731671995702,-6466,-671488,-593286,17710000,-43050000,-21770000 +1731671994391,1731671995823,-12017,-744688,-652761,-27930000,-52710000,-48160000 +1731671994493,1731671995914,-215330,-562664,-694119,-15610000,-27860000,-38010000 +1731671994595,1731671996001,59963,-886879,-770247,16380000,-37660000,-56700000 +1731671994697,1731671996123,274683,-637694,-517829,23520000,-76300000,-67690000 +1731671994799,1731671996212,-17751,-742248,-708393,-2310000,-83860000,-64050000 +1731671994901,1731671996333,10736,-712541,-683810,18900000,-98560000,-46760000 +1731671995002,1731671996482,-270047,-655628,-547231,-7000000,-49070000,-29820000 +1731671995104,1731671996513,-36600,-749202,-759999,3150000,-25200000,-53690000 +1731671995206,1731671996633,-12932,-604022,-641781,17430000,-41650000,-20300000 +1731671995308,1731671996723,-121939,-885293,-494100,210000,-32480000,-48860000 +1731671995410,1731671996844,-196237,-673928,-582428,-21560000,-28560000,-52080000 +1731671995512,1731671996933,297192,-824964,-817034,27580000,5110000,-29190000 +1731671995614,1731671997023,248697,-829661,-486109,45360000,-33670000,-19950000 +1731671995715,1731671997146,111935,-700585,-553026,-9730000,-55370000,-55370000 +1731671995817,1731671997233,-4941,-782569,-683871,24920000,-67970000,-51730000 +1731671995919,1731671997352,3965,-825635,-448655,8820000,-51100000,3500000 +1731671996021,1731671997500,27816,-1044381,-754265,-20650000,36960000,-51100000 +1731671996123,1731671997533,491416,-677893,-670573,5320000,-31640000,6860000 +1731671996225,1731671997653,41236,-834785,-535641,-3710000,-45220000,-19320000 +1731671996326,1731671997771,24949,-675026,-528992,-30170000,-40600000,-14420000 +1731671996428,1731671997863,99064,-482876,-681065,-10430000,18690000,-38150000 +1731671996530,1731671997952,379664,-897371,-562359,10920000,14070000,-45360000 +1731671996632,1731671998045,147803,-665327,-585661,-1540000,-30520000,-22330000 +1731671996734,1731671998194,72041,-748165,-650138,35490000,-39060000,-15120000 +1731671996836,1731671998282,-109373,-829966,-486841,19180000,-33880000,44660000 +1731671996937,1731671998374,192760,-957334,-643062,7910000,42560000,-10920000 +1731671997039,1731671998464,226859,-932751,-543144,11690000,-6230000,28840000 +1731671997141,1731671998582,-27084,-888831,-571448,-42140000,-26950000,40110000 +1731671997243,1731671998673,-126392,-492819,-572729,-14070000,-44520000,48860000 +1731671997345,1731671998763,-29951,-993019,-574132,34370000,3080000,-17570000 +1731671997447,1731671998882,108031,-893833,-465369,-5180000,-14000000,-8050000 +1731671997548,1731671999003,-36966,-820450,-574071,22470000,-17220000,-2660000 +1731671997650,1731671999063,-124989,-904020,-414068,15050000,-19320000,42280000 +1731671997752,1731671999183,-240096,-960689,-431453,-910000,19180000,1750000 +1731671997854,1731671999274,180682,-937326,-506605,5810000,20090000,53760000 +1731671997956,1731671999394,-262300,-879315,-522648,-42700000,5110000,28980000 +1731671998058,1731671999483,-87535,-533994,-550769,-35490000,-17920000,64610000 +1731671998160,1731671999573,-448594,-527589,-636474,3920000,14140000,-9870000 +1731671998261,1731671999696,46055,-799283,-507398,-24500000,16590000,-46830000 +1731671998363,1731671999846,-193065,-702415,-598288,9030000,9800000,-17010000 +1731671998465,1731671999963,-129137,-822402,-473421,30940000,-2030000,13860000 +1731671998567,1731672000024,-322995,-777262,-312747,10080000,29960000,8470000 +1731671998669,1731672000083,102724,-758535,-613355,16030000,65100000,12250000 +1731671998771,1731672000201,-41419,-1088850,-579866,15260000,50750000,26670000 +1731671998872,1731672000295,-152012,-844545,-517768,-26320000,10640000,61670000 +1731671998974,1731672000414,-357216,-687043,-492392,8400000,980000,20230000 +1731671999076,1731672000502,39101,-893833,-528992,11970000,8190000,-29190000 +1731671999178,1731672000594,-165615,-736941,-508130,15890000,5180000,5810000 +1731671999280,1731672000714,-323727,-808372,-428464,44100000,-9520000,45150000 +1731671999382,1731672000802,-332023,-858392,-227286,34580000,11690000,38640000 +1731671999483,1731672000923,25071,-796965,-507581,18900000,47810000,35840000 +1731671999585,1731672001014,-289018,-977403,-364597,-490000,36190000,25410000 +1731671999687,1731672001132,-264679,-709491,-505385,-46970000,25410000,52360000 +1731671999789,1731672001222,-433893,-528260,-482510,-11970000,-4970000,8400000 +1731671999891,1731672001314,-219539,-931043,-494283,3500000,17220000,-54460000 +1731671999993,1731672001432,-186721,-721752,-449082,-5810000,5670000,-16940000 +1731672000095,1731672001522,-450180,-780556,-476776,15960000,-13510000,3290000 +1731672000196,1731672001644,-461709,-699243,-458415,980000,-700000,12880000 +1731672000298,1731672001732,-98454,-878705,-573583,2310000,64610000,-210000 +1731672000400,1731672001822,-171959,-988444,-498004,9310000,29400000,23450000 +1731672000502,1731672001944,-230275,-838384,-515328,-28770000,19250000,54740000 +1731672000604,1731672002032,-377651,-599996,-403820,9800000,-7840000,19810000 +1731672000706,1731672002152,-119316,-911218,-567422,29960000,-4760000,-61460000 +1731672000808,1731672002245,-201239,-758962,-492087,-5880000,-5460000,-11200000 +1731672000909,1731672002333,-406016,-753533,-531005,14980000,-36330000,4060000 +1731672001011,1731672002452,-469517,-669353,-365817,9660000,-420000,19740000 +1731672001113,1731672002543,-233813,-763476,-372222,-4620000,86030000,-21560000 +1731672001215,1731672002664,-49166,-976732,-445666,28070000,81900000,17150000 +1731672001317,1731672002752,-182695,-934215,-495137,-21420000,44310000,40250000 +1731672001419,1731672002844,-388387,-758596,-495564,3010000,27160000,700000 +1731672001520,1731672002964,137799,-971791,-452925,6860000,15190000,-22540000 +1731672001622,1731672003052,-109800,-743529,-498858,-700000,25760000,1330000 +1731672001724,1731672003174,-188795,-854000,-463722,22260000,29680000,26600000 +1731672001826,1731672003262,-311710,-749812,-326472,8330000,19040000,17850000 \ No newline at end of file diff --git a/jupyter/daten/laufen _f73528cd-62e7-486d-a2e4-d16e40a1f2a3.csv b/jupyter/daten/laufen _f73528cd-62e7-486d-a2e4-d16e40a1f2a3.csv new file mode 100644 index 0000000..47bde88 --- /dev/null +++ b/jupyter/daten/laufen _f73528cd-62e7-486d-a2e4-d16e40a1f2a3.csv @@ -0,0 +1,47 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1731671987365,1731671988776,-373625,-714249,-581269,-27300000,-51660000,-28700000 +1731671987466,1731671988864,-39711,-872788,-698145,7070000,-26600000,-25620000 +1731671987568,1731671988954,-148962,-782264,-490074,14910000,-30450000,12880000 +1731671987670,1731671989072,-343918,-742126,-539911,-82040000,-23170000,4830000 +1731671987772,1731671989164,-304024,-421327,-653005,-74340000,-43330000,-22750000 +1731671987874,1731671989283,-338977,-423767,-799039,24500000,23590000,-20930000 +1731671987976,1731671989375,-125538,-626043,-647576,107100000,25550000,-29050000 +1731671988077,1731671989584,-101504,-1104527,-340563,67620000,16170000,9380000 +1731671988281,1731671989672,-230153,-785741,-458415,-41160000,-7490000,15610000 +1731671988383,1731671989794,-159454,-807030,-312320,-5950000,-20440000,12250000 +1731671988485,1731671989883,-155001,-813252,-657824,-31010000,-1680000,-31220000 +1731671988587,1731671989973,-245098,-707234,-665266,-4830000,-9450000,10920000 +1731671988689,1731671990094,-260714,-771406,-468236,-5390000,16940000,-4200000 +1731671988790,1731671990183,-308172,-704794,-564921,-16870000,13790000,7840000 +1731671988892,1731671990333,-226859,-735477,-510387,15330000,6930000,14980000 +1731671988994,1731671990393,-367586,-733891,-690520,10780000,71120000,-24010000 +1731671989096,1731671990513,128405,-877180,-350628,16030000,27230000,-50540000 +1731671989198,1731671990602,81801,-960445,-583648,30100000,5950000,-2870000 +1731671989300,1731671990722,-16348,-865834,-410042,6720000,-12670000,42280000 +1731671989401,1731671990813,-320738,-855464,-393267,-15680000,18060000,-23310000 +1731671989503,1731671990903,348798,-791231,-616100,34230000,53620000,6020000 +1731671989605,1731671991023,-51179,-1044625,-649589,-18060000,-5320000,10570000 +1731671989707,1731671991113,-329949,-750239,-483547,-11480000,-25760000,21980000 +1731671989809,1731671991294,152195,-919697,-396195,-2800000,-1610000,-51660000 +1731671989911,1731671991324,65087,-813862,-681553,29330000,-19180000,-19110000 +1731671990012,1731671991413,-48617,-821060,-414068,30520000,-52220000,38850000 +1731671990114,1731671991532,-305549,-721935,-270535,1190000,6440000,-4620000 +1731671990216,1731671991623,398635,-851438,-635559,23030000,41090000,-18410000 +1731671990318,1731671991772,-94977,-1040538,-634156,-23940000,-25550000,2940000 +1731671990420,1731671991832,-283955,-675697,-483669,-19320000,-48510000,26110000 +1731671990522,1731671991923,110166,-766282,-470554,9310000,9310000,-58520000 +1731671990623,1731671992044,104371,-842471,-710406,22610000,-23660000,-24290000 +1731671990725,1731671992133,10126,-864309,-520208,37450000,-72800000,15190000 +1731671990827,1731671992253,-370087,-613416,-221735,9800000,-7420000,17290000 +1731671990929,1731671992463,350079,-598349,-657092,-19320000,48930000,-13790000 +1731671991031,1731671992483,43920,-1069086,-624579,-980000,-2520000,-19250000 +1731671991133,1731671992615,93025,-737734,-502945,-35140000,-63560000,40390000 +1731671991235,1731671992646,-65026,-498675,-612257,-28000000,23800000,-39060000 +1731671991336,1731671992733,252723,-959408,-594384,-5880000,2240000,-64610000 +1731671991438,1731671992883,14030,-898164,-679479,40320000,-58730000,-3150000 +1731671991540,1731671993061,-45933,-777994,-392108,16030000,-63280000,54950000 +1731671991642,1731671993082,-305488,-1047004,-481168,-6090000,13580000,-72450000 +1731671991744,1731671993153,458842,-750544,-600789,31010000,31220000,-34860000 +1731671991846,1731671993331,-36661,-1093425,-584746,-31290000,-9590000,-15960000 +1731671991947,1731671993362,-1159,-749690,-531432,-18550000,-48790000,17990000 +1731671992049,1731671993452,256078,-777994,-566141,11970000,2870000,-41860000 \ No newline at end of file diff --git a/jupyter/daten/liegen_0aef7972-4cb4-409d-ab8a-f65a5ceea942.csv b/jupyter/daten/liegen_0aef7972-4cb4-409d-ab8a-f65a5ceea942.csv new file mode 100644 index 0000000..ee3be8d --- /dev/null +++ b/jupyter/daten/liegen_0aef7972-4cb4-409d-ab8a-f65a5ceea942.csv @@ -0,0 +1,100 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006139239,1732006139545,-20679,-409310,-880169,-350000,-840000,-280000 +1732006139443,1732006139678,-21472,-409615,-879620,210000,-910000,-560000 +1732006139545,1732006139739,-19886,-411689,-879193,-350000,-770000,-280000 +1732006139749,1732006139800,-16653,-410408,-871385,280000,350000,-1540000 +1732006139850,1732006139922,-20252,-415837,-878766,-280000,-910000,-210000 +1732006139952,1732006140129,-21106,-404857,-880108,210000,-210000,-700000 +1732006140156,1732006140222,-18910,-408029,-880535,-350000,-210000,-630000 +1732006140258,1732006140399,-17324,-411262,-879010,140000,-210000,-910000 +1732006140360,1732006140437,-13908,-413397,-879254,-280000,-560000,-490000 +1732006140461,1732006140522,-17446,-405772,-882121,-140000,0,-700000 +1732006140563,1732006140610,-23241,-416935,-889136,-560000,-910000,-140000 +1732006140665,1732006140730,-12017,-412238,-878827,-560000,-630000,70000 +1732006140767,1732006140879,-19703,-408456,-886147,-560000,-490000,-280000 +1732006140869,1732006140924,-8479,-415227,-876753,-70000,-1260000,-490000 +1732006140971,1732006141060,-12749,-412604,-878644,-630000,-1190000,-140000 +1732006141072,1732006141121,-13359,-413336,-877973,-70000,-1050000,-420000 +1732006141174,1732006141241,-14274,-410286,-879559,-350000,-700000,-490000 +1732006141276,1732006141331,-20801,-414129,-886940,-490000,-2030000,-420000 +1732006141378,1732006141449,-12261,-411628,-879925,-630000,-1750000,280000 +1732006141480,1732006141541,-22814,-407236,-885476,-840000,-1120000,-70000 +1732006141582,1732006141629,-19337,-417423,-877668,0,-1260000,-560000 +1732006141684,1732006141751,-18849,-412360,-878156,-630000,-1470000,-210000 +1732006141785,1732006141840,-20496,-411933,-879742,-140000,-1190000,-490000 +1732006141887,1732006141930,-19215,-415654,-877363,-70000,-1050000,-490000 +1732006141989,1732006142049,-20801,-412360,-879254,-420000,-980000,-350000 +1732006142091,1732006142142,-20435,-413214,-879254,-140000,-910000,-490000 +1732006142193,1732006142291,-20557,-414007,-878217,-70000,-770000,-490000 +1732006142295,1732006142350,-20191,-413641,-878156,-350000,-840000,-420000 +1732006142396,1732006142471,-19825,-414739,-878400,-350000,-700000,-420000 +1732006142498,1732006142560,-17080,-414678,-878034,-490000,-770000,-420000 +1732006142600,1732006142650,-23302,-407175,-879925,0,-70000,-700000 +1732006142702,1732006142799,-23302,-417606,-883280,-560000,-770000,-910000 +1732006142804,1732006142862,-23485,-418826,-882670,-420000,-1400000,560000 +1732006142906,1732006142950,-25864,-408395,-884805,-490000,-420000,-140000 +1732006143007,1732006143071,-17080,-420290,-875655,-140000,-490000,-630000 +1732006143109,1732006143221,-20862,-411201,-879742,-630000,-910000,-70000 +1732006143211,1732006143279,-20069,-414861,-877485,-420000,-840000,-490000 +1732006143313,1732006143401,-18483,-414922,-877973,-350000,-980000,-350000 +1732006143415,1732006143459,-20069,-415715,-877912,-420000,-700000,-420000 +1732006143517,1732006143581,-19459,-414373,-877546,-280000,-770000,-350000 +1732006143618,1732006143670,-19947,-413336,-878644,-420000,-700000,-280000 +1732006143720,1732006143791,-20496,-415593,-878339,-280000,-840000,-350000 +1732006143822,1732006143971,-18971,-414800,-878461,-350000,-630000,-350000 +1732006143924,1732006143992,-18666,-414129,-877973,-280000,-770000,-420000 +1732006144026,1732006144090,-18910,-416935,-878156,-350000,-770000,-350000 +1732006144128,1732006144181,-8784,-416386,-868396,560000,-420000,-770000 +1732006144230,1732006144299,-17019,-415471,-872788,420000,70000,-1330000 +1732006144331,1732006144392,-20008,-419314,-879681,-210000,-980000,-210000 +1732006144433,1732006144510,-21838,-409005,-877912,280000,-280000,-630000 +1732006144535,1732006144600,-15555,-421388,-875777,-350000,-910000,-560000 +1732006144637,1732006144693,-18910,-411689,-878522,-350000,-770000,-420000 +1732006144739,1732006144811,-16836,-416264,-878827,-280000,-630000,-630000 +1732006144841,1732006144900,-18056,-417301,-878705,-280000,-560000,-490000 +1732006144942,1732006145049,-16287,-415349,-877790,-210000,-630000,-700000 +1732006145044,1732006145110,-16470,-414495,-878339,-350000,-630000,-560000 +1732006145146,1732006145200,-16043,-415349,-877485,-420000,-770000,-420000 +1732006145248,1732006145322,-15677,-418521,-878522,-420000,-630000,-490000 +1732006145350,1732006145411,-8662,-419009,-870592,-700000,-1470000,-70000 +1732006145452,1732006145529,-6588,-406443,-872300,-770000,0,-770000 +1732006145553,1732006145621,-12688,-421144,-873093,-280000,-1120000,-490000 +1732006145655,1732006145742,-13969,-413641,-873886,140000,-770000,-770000 +1732006145757,1732006145831,-11651,-419070,-875777,-490000,-1260000,-210000 +1732006145859,1732006145921,-15494,-414678,-879315,-630000,-1260000,-140000 +1732006145961,1732006146042,-11956,-418460,-876265,-210000,-840000,-280000 +1732006146063,1732006146130,-18239,-412055,-880352,-420000,-420000,-420000 +1732006146164,1732006146222,-18544,-420839,-885598,-490000,-1400000,-70000 +1732006146266,1732006146342,-13359,-417240,-880474,-770000,-1540000,490000 +1732006146368,1732006146430,-21899,-412970,-884073,-490000,-980000,0 +1732006146470,1732006146550,-14884,-423645,-876448,-70000,-910000,-490000 +1732006146572,1732006146641,-17507,-413397,-878644,-560000,-980000,-70000 +1732006146674,1732006146730,-15372,-420046,-875960,-280000,-910000,-490000 +1732006146776,1732006146851,-14823,-417057,-875533,-350000,-840000,-280000 +1732006146877,1732006146942,-16043,-416447,-877058,-420000,-910000,-420000 +1732006146979,1732006147060,-14457,-419375,-876509,-280000,-840000,-350000 +1732006147081,1732006147150,-16409,-416447,-877485,-420000,-910000,-420000 +1732006147183,1732006147241,-15494,-417972,-876936,-420000,-910000,-420000 +1732006147285,1732006147360,-15799,-416203,-876997,-420000,-910000,-350000 +1732006147387,1732006147450,-15433,-418826,-877180,-420000,-840000,-350000 +1732006147488,1732006147572,-12932,-414800,-873642,490000,-210000,-770000 +1732006147590,1732006147661,-22143,-422791,-882975,-350000,-630000,-770000 +1732006147692,1732006147750,-17202,-422181,-881511,-350000,-1400000,210000 +1732006147794,1732006147872,-21899,-413153,-881572,-210000,-840000,-280000 +1732006147896,1732006147960,-13847,-422059,-875045,-350000,-980000,-560000 +1732006147998,1732006148139,-18483,-413946,-877424,-490000,-1050000,-140000 +1732006148099,1732006148170,-17812,-419009,-876875,-280000,-840000,-490000 +1732006148201,1732006148261,-17324,-417667,-876997,-420000,-840000,-350000 +1732006148303,1732006148410,-17446,-416447,-878522,-350000,-840000,-420000 +1732006148405,1732006148471,-17019,-417545,-877546,-420000,-910000,-350000 +1732006148507,1732006148592,-17690,-417423,-877790,-420000,-980000,-350000 +1732006148609,1732006148681,-17263,-417179,-876997,-490000,-910000,-420000 +1732006148710,1732006148800,-17446,-416874,-877790,-350000,-840000,-420000 +1732006148812,1732006148892,-18117,-418155,-877241,-420000,-840000,-350000 +1732006148914,1732006148980,-7808,-419863,-867115,-70000,-1050000,-630000 +1732006149016,1732006149101,-15677,-413214,-868457,140000,-210000,-1260000 +1732006149118,1732006149192,-17568,-423096,-873032,-70000,-1190000,-350000 +1732006149220,1732006149281,-19520,-411750,-874557,420000,-560000,-840000 +1732006149321,1732006149400,-15189,-419070,-875777,-560000,-910000,-490000 +1732006149423,1732006149490,-19398,-415593,-876875,-350000,-770000,-350000 +1732006149525,1732006149610,-16409,-418216,-877546,-280000,-840000,-490000 \ No newline at end of file diff --git a/jupyter/daten/liegen_17c0f5a9-a44d-429e-8c70-2caad5ce38a5.csv b/jupyter/daten/liegen_17c0f5a9-a44d-429e-8c70-2caad5ce38a5.csv new file mode 100644 index 0000000..ab46735 --- /dev/null +++ b/jupyter/daten/liegen_17c0f5a9-a44d-429e-8c70-2caad5ce38a5.csv @@ -0,0 +1,84 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732008077114,1732008077251,61610,-715469,-664778,560000,-1470000,-700000 +1732008077114,1732008077282,66734,-710101,-668499,-700000,-700000,-70000 +1732008077216,1732008077401,66734,-710101,-668499,-280000,-910000,-140000 +1732008077317,1732008077422,58804,-712785,-667340,-280000,-910000,-140000 +1732008077317,1732008077491,60512,-713212,-666852,0,-1120000,-420000 +1732008077419,1732008077581,60512,-713212,-666852,-280000,-840000,-280000 +1732008077521,1732008077601,59597,-721752,-668316,-280000,-840000,-280000 +1732008077521,1732008077704,61976,-718275,-669780,0,-1190000,-630000 +1732008077623,1732008077822,61976,-718275,-669780,-770000,-700000,280000 +1732008077725,1732008077848,58987,-717543,-662765,-770000,-700000,280000 +1732008077725,1732008077912,59780,-714249,-667218,280000,-1330000,-210000 +1732008077827,1732008078001,59780,-714249,-667218,-210000,-980000,-280000 +1732008077928,1732008078023,63074,-719251,-665327,-210000,-980000,-280000 +1732008077928,1732008078122,59902,-715408,-666547,70000,-1190000,-210000 +1732008078030,1732008078211,59902,-715408,-666547,0,-1050000,-420000 +1732008078132,1732008078234,57889,-715896,-665510,0,-1050000,-420000 +1732008078132,1732008078303,61793,-715652,-664473,-210000,-910000,-350000 +1732008078234,1732008078452,61793,-715652,-664473,-280000,-980000,-210000 +1732008078336,1732008078474,58499,-715713,-665205,-280000,-980000,-210000 +1732008078336,1732008078512,58377,-715408,-665266,-280000,-910000,-350000 +1732008078438,1732008078633,58377,-715408,-665266,-420000,-910000,-350000 +1732008078540,1732008078657,60634,-716201,-664595,-420000,-910000,-350000 +1732008078540,1732008078722,59597,-716384,-663253,-420000,-910000,-350000 +1732008078641,1732008078841,59597,-716384,-663253,-350000,-910000,-420000 +1732008078743,1732008078864,58926,-716811,-663436,-350000,-910000,-420000 +1732008078743,1732008078933,60329,-716445,-663253,-350000,-980000,-280000 +1732008078845,1732008079022,60329,-716445,-663253,-350000,-980000,-350000 +1732008078947,1732008079047,58682,-717238,-663924,-350000,-980000,-350000 +1732008078947,1732008079142,59048,-714493,-663070,-630000,-770000,-350000 +1732008079049,1732008079233,59048,-714493,-663070,-770000,-910000,140000 +1732008079151,1732008079255,55327,-704794,-669414,-770000,-910000,140000 +1732008079151,1732008079322,59597,-713761,-662582,1260000,-1680000,-910000 +1732008079252,1732008079441,59597,-713761,-662582,-350000,-420000,-70000 +1732008079354,1732008079464,59292,-712724,-670573,-350000,-420000,-70000 +1732008079354,1732008079533,58011,-718336,-661789,210000,-1050000,-980000 +1732008079456,1732008079653,58011,-718336,-661789,-560000,-770000,-140000 +1732008079558,1732008079659,62708,-713944,-664046,-560000,-770000,-140000 +1732008079558,1732008079742,55815,-718397,-662460,-420000,-770000,-420000 +1732008079660,1732008079835,55815,-718397,-662460,-490000,-840000,-420000 +1732008079762,1732008079856,60512,-714920,-663558,-490000,-840000,-420000 +1732008079762,1732008079952,59841,-716811,-662399,-490000,-840000,-210000 +1732008079863,1732008080041,59841,-716811,-662399,-420000,-910000,-350000 +1732008079965,1732008080062,57279,-716445,-663924,-420000,-910000,-350000 +1732008079965,1732008080162,59658,-717116,-663131,-420000,-770000,-350000 +1732008080067,1732008080252,59658,-717116,-663131,-420000,-840000,-350000 +1732008080169,1732008080273,57889,-716567,-664229,-420000,-840000,-350000 +1732008080169,1732008080342,59170,-717055,-664473,-350000,-910000,-420000 +1732008080271,1732008080462,59170,-717055,-664473,-560000,-770000,-350000 +1732008080373,1732008080483,59719,-718092,-663924,-560000,-770000,-350000 +1732008080373,1732008080554,58804,-716689,-664412,-700000,-770000,-420000 +1732008080474,1732008080672,58804,-716689,-664412,-1400000,-420000,-350000 +1732008080576,1732008080694,57523,-711687,-663192,-1400000,-420000,-350000 +1732008080576,1732008080763,69418,-715164,-662338,210000,-1540000,-1190000 +1732008080678,1732008080852,69418,-715164,-662338,-1540000,-210000,210000 +1732008080780,1732008080873,59841,-714493,-667767,-1540000,-210000,210000 +1732008080780,1732008081034,57767,-719068,-663070,-490000,-770000,-840000 +1732008080882,1732008081062,57767,-719068,-663070,-1120000,-420000,-210000 +1732008080984,1732008081082,64355,-715469,-666669,-1120000,-420000,-210000 +1732008080984,1732008081183,58072,-716384,-663619,-980000,-560000,-350000 +1732008081085,1732008081272,58072,-716384,-663619,-770000,-770000,-560000 +1732008081187,1732008081293,59841,-715896,-665205,-770000,-770000,-560000 +1732008081187,1732008081392,58865,-720837,-668621,-1050000,-280000,-770000 +1732008081289,1732008081483,58865,-720837,-668621,-980000,-630000,-770000 +1732008081391,1732008081505,63562,-719068,-669353,-980000,-630000,-770000 +1732008081391,1732008081572,60085,-713883,-665022,-1610000,-70000,140000 +1732008081493,1732008081692,60085,-713883,-665022,-490000,-910000,-490000 +1732008081595,1732008081713,60390,-711260,-669475,-490000,-910000,-490000 +1732008081595,1732008081812,65331,-712358,-667279,-350000,-910000,-280000 +1732008081697,1732008081871,65331,-712358,-667279,280000,-1330000,-140000 +1732008081798,1732008081891,62952,-712053,-668072,280000,-1330000,-140000 +1732008081798,1732008081992,60573,-716140,-667157,-420000,-840000,-350000 +1732008081900,1732008082141,60573,-716140,-667157,-140000,-1330000,-210000 +1732008082002,1732008082172,60817,-704367,-670756,-140000,-1330000,-210000 +1732008082002,1732008082233,69052,-711809,-663680,630000,-1260000,-840000 +1732008082104,1732008082291,69052,-711809,-663680,-1120000,-280000,140000 +1732008082206,1732008082321,60024,-709125,-668194,-1120000,-280000,140000 +1732008082206,1732008082413,59902,-716018,-665388,420000,-1330000,-910000 +1732008082308,1732008082501,59902,-716018,-665388,-420000,-840000,-140000 +1732008082409,1732008082523,64660,-713578,-666730,-420000,-840000,-140000 +1732008082409,1732008082592,58377,-714798,-665815,-140000,-1050000,-350000 +1732008082511,1732008082711,58377,-714798,-665815,-140000,-1050000,-420000 +1732008082613,1732008082735,61000,-714859,-665937,-140000,-1050000,-420000 +1732008082613,1732008082803,61061,-717177,-664290,-140000,-1120000,-350000 \ No newline at end of file diff --git a/jupyter/daten/liegen_30885eda-6e01-469d-8e95-28c98665fdae.csv b/jupyter/daten/liegen_30885eda-6e01-469d-8e95-28c98665fdae.csv new file mode 100644 index 0000000..f255309 --- /dev/null +++ b/jupyter/daten/liegen_30885eda-6e01-469d-8e95-28c98665fdae.csv @@ -0,0 +1,227 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006176513,1732006176672,-6283,-448838,-862906,-490000,-840000,-350000 +1732006176615,1732006176760,-5673,-451156,-861503,-350000,-910000,-420000 +1732006176717,1732006176851,-5978,-450058,-861991,-350000,-840000,-350000 +1732006176818,1732006177000,-4575,-449692,-861991,-210000,-770000,-420000 +1732006176920,1732006177061,-10492,-447984,-865041,-490000,-490000,-490000 +1732006177022,1732006177180,-5978,-455060,-867725,-1120000,-1400000,-70000 +1732006177124,1732006177303,-1830,-448472,-864553,-770000,-1400000,560000 +1732006177226,1732006177360,-9211,-447008,-867481,-1120000,-1050000,0 +1732006177328,1732006177481,-3721,-454267,-862235,-70000,-840000,-560000 +1732006177429,1732006177599,-5185,-447801,-863455,-840000,-840000,-70000 +1732006177531,1732006177692,-6405,-450058,-862845,-280000,-840000,-490000 +1732006177633,1732006177781,-3843,-450363,-862052,-350000,-840000,-350000 +1732006177735,1732006177903,-6954,-449204,-861991,-350000,-840000,-350000 +1732006177837,1732006178020,-4392,-450424,-862601,-350000,-840000,-420000 +1732006177939,1732006178110,-5429,-449936,-861991,-350000,-840000,-420000 +1732006178041,1732006178201,-4270,-448716,-861686,-350000,-840000,-420000 +1732006178142,1732006178292,-5551,-448655,-862601,-350000,-770000,-350000 +1732006178244,1732006178410,-4758,-451400,-862113,-420000,-840000,-350000 +1732006178346,1732006178530,2684,-450485,-853634,350000,-700000,-700000 +1732006178448,1732006178591,-2318,-446154,-856013,280000,-140000,-1120000 +1732006178550,1732006178710,-4819,-455182,-858636,-140000,-1120000,-350000 +1732006178652,1732006178829,-6954,-443226,-860527,280000,-700000,-700000 +1732006178754,1732006178922,-2257,-452803,-859917,-630000,-910000,-350000 +1732006178855,1732006179010,-7808,-449143,-863150,-350000,-910000,-350000 +1732006178957,1732006179101,-2745,-450546,-862052,-210000,-770000,-490000 +1732006179059,1732006179221,-5307,-449753,-862174,-490000,-840000,-280000 +1732006179161,1732006179311,-4453,-449631,-861991,-350000,-770000,-420000 +1732006179263,1732006179430,-4880,-449692,-861808,-350000,-840000,-420000 +1732006179365,1732006179522,-4453,-449936,-862113,-350000,-910000,-420000 +1732006179466,1732006179640,-4575,-448838,-862174,-420000,-840000,-350000 +1732006179568,1732006179730,-7320,-445056,-864919,-70000,-210000,-700000 +1732006179670,1732006179822,-9943,-455609,-871629,-490000,-700000,-980000 +1732006179772,1732006179941,-2867,-455121,-866505,-350000,-1190000,350000 +1732006179874,1732006180030,-9882,-443653,-868152,-770000,-840000,-70000 +1732006179976,1732006180122,-1342,-456219,-860527,-140000,-910000,-700000 +1732006180077,1732006180241,-5673,-447313,-862723,-560000,-910000,-140000 +1732006180179,1732006180331,-4636,-449997,-861686,-280000,-770000,-560000 +1732006180281,1732006180451,-4331,-450241,-861930,-420000,-910000,-280000 +1732006180383,1732006180541,-4941,-448960,-861991,-350000,-770000,-420000 +1732006180485,1732006180631,-4575,-450058,-860893,-420000,-910000,-350000 +1732006180587,1732006180753,-4331,-449570,-863028,-420000,-910000,-350000 +1732006180688,1732006180841,-3050,-449570,-861564,-350000,-840000,-420000 +1732006180790,1732006180960,-6405,-448899,-865712,-490000,-840000,-420000 +1732006180892,1732006181050,-6344,-457439,-869311,-840000,-1470000,-70000 +1732006180994,1732006181141,183,-445483,-863150,-700000,-1400000,560000 +1732006181096,1732006181260,-9333,-444507,-868335,-1190000,-1050000,140000 +1732006181198,1732006181351,-2928,-455365,-862418,0,-770000,-560000 +1732006181299,1732006181472,-3782,-445971,-864431,-910000,-1050000,-70000 +1732006181401,1732006181561,-5429,-449204,-861930,-140000,-770000,-560000 +1732006181503,1732006181651,-3782,-449692,-862540,-490000,-840000,-280000 +1732006181605,1732006181772,-4636,-448716,-861991,-420000,-910000,-420000 +1732006181707,1732006181860,-3538,-450912,-862235,-350000,-840000,-350000 +1732006181809,1732006181981,-4453,-449204,-862723,-350000,-910000,-350000 +1732006181910,1732006182072,-3721,-449936,-861442,-350000,-910000,-420000 +1732006182012,1732006182161,-4453,-449265,-862296,-420000,-840000,-350000 +1732006182114,1732006182280,-3172,-450241,-862235,-420000,-840000,-350000 +1732006182216,1732006182372,-7137,-444263,-864370,70000,-210000,-700000 +1732006182318,1732006182491,-6344,-455426,-866688,-420000,-280000,-1120000 +1732006182420,1732006182581,-4514,-456768,-866505,-140000,-1120000,140000 +1732006182522,1732006182672,-9333,-443165,-867420,-140000,-700000,-350000 +1732006182623,1732006182792,-1708,-457927,-859856,-490000,-980000,-560000 +1732006182725,1732006182880,-5612,-447191,-863394,-630000,-980000,-140000 +1732006182827,1732006183030,-2684,-450668,-861808,-280000,-840000,-560000 +1732006182929,1732006183090,-4697,-448655,-863333,-630000,-910000,-280000 +1732006183031,1732006183211,-3599,-448472,-862784,-280000,-840000,-420000 +1732006183133,1732006183330,-3843,-449082,-862418,-420000,-840000,-280000 +1732006183235,1732006183390,-4148,-449021,-862235,-350000,-840000,-420000 +1732006183336,1732006183511,-4758,-448594,-862479,-420000,-910000,-350000 +1732006183438,1732006183602,-5429,-450058,-862967,-420000,-910000,-350000 +1732006183540,1732006183721,3538,-450668,-854427,420000,-560000,-700000 +1732006183642,1732006183811,-3172,-447740,-857721,140000,-210000,-1190000 +1732006183744,1732006183900,-4697,-455060,-860344,-140000,-910000,-490000 +1732006183846,1732006184023,-8479,-442250,-863211,420000,-560000,-770000 +1732006183947,1732006184110,-1098,-450912,-860588,-700000,-980000,-420000 +1732006184049,1732006184261,-6466,-448167,-862906,-280000,-840000,-420000 +1732006184151,1732006184321,-2928,-449814,-863089,-350000,-770000,-560000 +1732006184253,1732006184441,-6283,-448594,-863455,-490000,-980000,-280000 +1732006184355,1732006184561,-3599,-449204,-862174,-350000,-840000,-420000 +1732006184457,1732006184622,-5246,-448655,-862662,-420000,-910000,-350000 +1732006184558,1732006184741,-3904,-448777,-863455,-280000,-840000,-420000 +1732006184660,1732006184831,-4148,-448777,-863333,-350000,-910000,-350000 +1732006184762,1732006184922,-4270,-449448,-863333,-280000,-840000,-420000 +1732006184864,1732006185041,-3355,-449570,-862357,-420000,-910000,-420000 +1732006184966,1732006185130,-7808,-444080,-865651,0,-350000,-700000 +1732006185068,1732006185253,-10553,-457317,-874557,-280000,-980000,-770000 +1732006185169,1732006185371,-4453,-455975,-865712,-280000,-1260000,140000 +1732006185271,1732006185431,-9089,-442006,-870409,-840000,-840000,0 +1732006185373,1732006185551,-1037,-455426,-861381,-350000,-840000,-630000 +1732006185475,1732006185641,-6649,-445788,-864675,-560000,-840000,-210000 +1732006185577,1732006185790,-4087,-449021,-862174,-280000,-910000,-490000 +1732006185679,1732006185852,-3660,-449936,-862113,-490000,-770000,-210000 +1732006185780,1732006185940,-2501,-449692,-862662,-280000,-840000,-420000 +1732006185882,1732006186061,-3477,-449692,-861686,-350000,-840000,-350000 +1732006185984,1732006186151,-4087,-448960,-862479,-350000,-840000,-420000 +1732006186086,1732006186273,-3416,-449204,-861991,-490000,-770000,-280000 +1732006186188,1732006186360,-3355,-448777,-862723,-420000,-840000,-350000 +1732006186290,1732006186452,-3843,-448716,-862723,-490000,-840000,-350000 +1732006186391,1732006186574,-2074,-450790,-861198,-1260000,-1750000,350000 +1732006186493,1732006186661,1342,-434076,-856501,-770000,-630000,210000 +1732006186595,1732006186780,-4392,-451583,-858575,-840000,-1400000,-70000 +1732006186697,1732006186903,-2196,-447984,-858941,210000,-770000,-700000 +1732006186799,1732006186960,-3965,-446703,-863821,-910000,-980000,-70000 +1732006186901,1732006187081,-5368,-448960,-862906,-210000,-700000,-560000 +1732006187002,1732006187173,-2684,-448533,-863882,-420000,-840000,-350000 +1732006187104,1732006187290,-4392,-448106,-862418,-350000,-770000,-420000 +1732006187206,1732006187380,-2806,-449326,-862723,-350000,-910000,-350000 +1732006187308,1732006187472,-4514,-448350,-863150,-420000,-910000,-350000 +1732006187410,1732006187591,-3416,-448960,-862479,-350000,-840000,-350000 +1732006187512,1732006187710,-3965,-448838,-862357,-350000,-840000,-420000 +1732006187613,1732006187802,-3538,-448777,-862723,-350000,-840000,-420000 +1732006187715,1732006187891,-3599,-448594,-863089,-420000,-910000,-350000 +1732006187817,1732006187980,549,-447313,-858880,420000,-350000,-770000 +1732006187919,1732006188103,-5307,-451583,-862235,-140000,-210000,-1330000 +1732006188021,1732006188190,-4697,-456951,-862540,-70000,-910000,-420000 +1732006188123,1732006188311,-9150,-442372,-867115,140000,-700000,-560000 +1732006188225,1732006188400,-2196,-454145,-862052,-700000,-1120000,-490000 +1732006188326,1732006188491,-7320,-447191,-864126,-420000,-910000,-350000 +1732006188428,1732006188610,-3233,-449387,-862906,-280000,-910000,-490000 +1732006188530,1732006188703,-5551,-448472,-862540,-420000,-840000,-280000 +1732006188632,1732006188823,-3538,-448899,-862662,-280000,-840000,-490000 +1732006188734,1732006188941,-4087,-449570,-862540,-350000,-910000,-420000 +1732006188836,1732006189031,-3477,-448960,-862723,-280000,-770000,-420000 +1732006188937,1732006189123,-3904,-448289,-862418,-280000,-910000,-490000 +1732006189039,1732006189210,-3660,-449204,-862052,-350000,-840000,-420000 +1732006189141,1732006189331,-4270,-448289,-863211,-490000,-910000,-420000 +1732006189243,1732006189421,-3538,-450180,-863211,-350000,-840000,-420000 +1732006189345,1732006189541,3904,-450302,-854549,490000,-560000,-770000 +1732006189447,1732006189630,-122,-440115,-854427,140000,-420000,-980000 +1732006189549,1732006189721,-4148,-457073,-860771,-280000,-910000,-560000 +1732006189650,1732006189841,-6588,-443409,-861503,560000,-560000,-910000 +1732006189752,1732006189931,-793,-451766,-860954,-630000,-910000,-420000 +1732006189854,1732006190052,-7686,-449936,-862052,-140000,-770000,-420000 +1732006189956,1732006190169,-1525,-450546,-861625,-280000,-770000,-560000 +1732006190058,1732006190231,-4697,-448899,-862540,-420000,-840000,-210000 +1732006190160,1732006190353,-3355,-450912,-861991,-350000,-840000,-420000 +1732006190261,1732006190472,-5124,-449997,-861503,-420000,-840000,-420000 +1732006190363,1732006190561,-3111,-449997,-861625,-420000,-840000,-350000 +1732006190465,1732006190650,-4514,-450546,-861747,-420000,-840000,-350000 +1732006190567,1732006190740,-3843,-449753,-861015,-280000,-910000,-350000 +1732006190669,1732006190861,-3233,-449204,-861442,-350000,-980000,-350000 +1732006190771,1732006190952,-9089,-446276,-866627,-280000,-490000,-630000 +1732006190872,1732006191103,-11102,-459696,-871995,-280000,-630000,-840000 +1732006190974,1732006191160,-3843,-455243,-867481,-280000,-1120000,210000 +1732006191076,1732006191252,-8723,-443592,-869616,-630000,-700000,-70000 +1732006191178,1732006191400,-244,-457927,-861076,-280000,-910000,-490000 +1732006191280,1732006191460,-5673,-447740,-863272,-560000,-910000,-140000 +1732006191382,1732006191581,-2440,-451339,-861320,-280000,-770000,-490000 +1732006191483,1732006191672,-3477,-450485,-861259,-560000,-840000,-210000 +1732006191585,1732006191761,-3172,-450363,-861259,-350000,-840000,-420000 +1732006191687,1732006191909,-3782,-450729,-861625,-280000,-910000,-420000 +1732006191789,1732006191972,-3538,-450668,-862113,-350000,-840000,-420000 +1732006191891,1732006192092,-4026,-450973,-861198,-350000,-840000,-350000 +1732006191993,1732006192181,-3233,-450302,-861381,-350000,-840000,-420000 +1732006192094,1732006192270,-3782,-450973,-861564,-280000,-840000,-420000 +1732006192196,1732006192391,-5246,-450302,-864736,-490000,-910000,-420000 +1732006192298,1732006192481,-6405,-459696,-870775,-770000,-1540000,-70000 +1732006192400,1732006192603,-1159,-447191,-864919,-700000,-1470000,630000 +1732006192502,1732006192690,-6710,-445971,-866688,-1330000,-1330000,350000 +1732006192604,1732006192780,-3233,-456768,-859246,140000,-910000,-560000 +1732006192706,1732006192903,-2501,-446886,-862601,-840000,-1050000,-140000 +1732006192807,1732006192991,-4819,-452132,-860649,-140000,-840000,-560000 +1732006192909,1732006193140,-1952,-451156,-861503,-420000,-840000,-350000 +1732006193011,1732006193202,-3904,-450363,-861503,-280000,-910000,-490000 +1732006193113,1732006193323,-2989,-452376,-860954,-420000,-910000,-280000 +1732006193215,1732006193411,-3843,-452132,-860893,-420000,-770000,-350000 +1732006193317,1732006193530,-3111,-451217,-862418,-350000,-980000,-350000 +1732006193418,1732006193621,-3050,-450058,-860710,-560000,-910000,-420000 +1732006193520,1732006193711,-3721,-451888,-861747,-630000,-980000,-350000 +1732006193622,1732006193831,-3355,-452437,-861137,-280000,-840000,-350000 +1732006193724,1732006193921,-122,-453230,-852780,-420000,-1400000,-140000 +1732006193826,1732006194011,1281,-437919,-853634,-560000,-490000,-350000 +1732006193928,1732006194130,-4148,-454816,-854854,-770000,-1330000,-280000 +1732006194029,1732006194252,-3294,-447008,-858026,210000,-700000,-840000 +1732006194131,1732006194341,-2745,-449997,-860954,-700000,-770000,-210000 +1732006194233,1732006194431,-5734,-451156,-861198,70000,-630000,-560000 +1732006194335,1732006194522,-2196,-451583,-861869,-210000,-700000,-490000 +1732006194437,1732006194641,-5002,-449997,-861259,-350000,-770000,-350000 +1732006194539,1732006194759,-2562,-452132,-860954,-140000,-770000,-350000 +1732006194640,1732006194880,-4270,-451888,-861198,-350000,-910000,-350000 +1732006194742,1732006194940,-2806,-452010,-860771,-350000,-910000,-350000 +1732006194844,1732006195031,-3477,-451705,-861015,-350000,-840000,-350000 +1732006194946,1732006195151,-1769,-452681,-861015,-420000,-910000,-350000 +1732006195048,1732006195241,-7747,-447252,-860710,-140000,-420000,-630000 +1732006195150,1732006195422,-9455,-459147,-870348,-420000,-630000,-910000 +1732006195251,1732006195451,-3660,-459452,-865834,-210000,-1050000,140000 +1732006195353,1732006195540,-7686,-444568,-869616,-560000,-770000,-140000 +1732006195455,1732006195661,-427,-458842,-860710,-210000,-770000,-700000 +1732006195557,1732006195751,-6649,-448228,-863028,-420000,-910000,-210000 +1732006195659,1732006195872,-2440,-454084,-860039,-210000,-770000,-490000 +1732006195761,1732006195960,-2745,-452559,-860710,-420000,-840000,-350000 +1732006195862,1732006196052,-2684,-453352,-861686,-140000,-700000,-490000 +1732006195964,1732006196173,-2562,-452498,-861564,-420000,-770000,-420000 +1732006196066,1732006196261,-3050,-453413,-861198,-490000,-770000,-420000 +1732006196168,1732006196380,-2562,-453108,-860649,-210000,-700000,-420000 +1732006196270,1732006196472,-1647,-451949,-861442,-420000,-630000,-350000 +1732006196372,1732006196561,6100,-454389,-851011,0,-770000,-700000 +1732006196473,1732006196681,5551,-447008,-855159,-70000,-560000,-1120000 +1732006196575,1732006196831,-2074,-456402,-857965,-280000,-1050000,-490000 +1732006196677,1732006196891,-1952,-450363,-859856,420000,-490000,-910000 +1732006196779,1732006197010,3172,-457195,-857660,-420000,-560000,-770000 +1732006196881,1732006197072,-1403,-453291,-861015,-350000,-700000,-630000 +1732006196983,1732006197190,732,-455426,-861137,-490000,-560000,-490000 +1732006197084,1732006197281,4331,-451461,-858880,-210000,140000,-770000 +1732006197186,1732006197460,-4209,-457134,-861381,-910000,-840000,-350000 +1732006197288,1732006197491,122,-451583,-864004,-560000,-1330000,490000 +1732006197390,1732006197581,-4026,-452620,-864309,-140000,-910000,-350000 +1732006197492,1732006197703,2867,-453657,-861442,-420000,-1050000,-350000 +1732006197594,1732006197791,-732,-450607,-862967,-560000,-1050000,70000 +1732006197695,1732006197941,-915,-452437,-861686,-210000,-980000,-350000 +1732006197797,1732006198002,-1098,-450973,-861564,-210000,-840000,-420000 +1732006197899,1732006198091,732,-454328,-860832,-420000,-910000,-280000 +1732006198001,1732006198210,2074,-451278,-857050,-490000,-1330000,-350000 +1732006198103,1732006198302,2135,-444446,-855586,-210000,-420000,-770000 +1732006198205,1732006198422,-854,-457927,-855342,-210000,-1610000,-210000 +1732006198307,1732006198511,732,-447313,-856135,280000,-700000,-630000 +1732006198408,1732006198603,-61,-453352,-858941,-560000,-840000,-350000 +1732006198510,1732006198720,-4087,-452376,-861076,-280000,-840000,-420000 +1732006198612,1732006198811,-244,-452620,-861503,-210000,-840000,-490000 +1732006198714,1732006198931,-1708,-453596,-860710,-350000,-770000,-350000 +1732006198816,1732006199022,-1769,-453779,-860100,-210000,-840000,-490000 +1732006198918,1732006199111,-1525,-453047,-860405,-350000,-840000,-420000 +1732006199019,1732006199231,-3904,-452681,-860954,-210000,-1050000,-420000 +1732006199121,1732006199323,-1525,-454145,-859917,-350000,-910000,-350000 +1732006199223,1732006199440,-1952,-454084,-860405,-280000,-840000,-420000 +1732006199325,1732006199531,-2013,-454145,-860893,-350000,-840000,-420000 +1732006199427,1732006199653,-3416,-455853,-860710,-420000,-910000,-350000 \ No newline at end of file diff --git a/jupyter/daten/liegen_3c5abfae-3f55-4d8f-89d2-978d8a4bc850.csv b/jupyter/daten/liegen_3c5abfae-3f55-4d8f-89d2-978d8a4bc850.csv new file mode 100644 index 0000000..f19c979 --- /dev/null +++ b/jupyter/daten/liegen_3c5abfae-3f55-4d8f-89d2-978d8a4bc850.csv @@ -0,0 +1,135 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006204722,1732006204954,-671,-454267,-858758,-210000,-700000,-420000 +1732006204824,1732006205052,-1830,-453840,-860466,-560000,-910000,-350000 +1732006204926,1732006205171,-488,-455426,-859612,-420000,-770000,-420000 +1732006205028,1732006205261,-854,-453230,-860100,-420000,-910000,-350000 +1732006205130,1732006205352,-1159,-453718,-860100,-350000,-910000,-350000 +1732006205232,1732006205472,-1403,-454084,-859673,-350000,-770000,-350000 +1732006205334,1732006205560,1098,-453657,-858331,-420000,-910000,-350000 +1732006205435,1732006205651,-2623,-448777,-859490,140000,-210000,-700000 +1732006205537,1732006205802,-2379,-458720,-861686,-210000,-210000,-1190000 +1732006205639,1732006205922,-1830,-460306,-862906,-210000,-1120000,-70000 +1732006205741,1732006205981,-5368,-448106,-861564,-140000,-700000,-630000 +1732006205843,1732006206102,1525,-461343,-857355,-280000,-980000,-490000 +1732006205945,1732006206160,-4026,-451949,-861625,-350000,-840000,-280000 +1732006206046,1732006206281,-488,-455060,-859429,-350000,-840000,-560000 +1732006206148,1732006206401,-2257,-454511,-859856,-420000,-910000,-280000 +1732006206250,1732006206490,-1342,-454999,-860100,-350000,-910000,-420000 +1732006206352,1732006206582,-1830,-454999,-860588,-350000,-910000,-350000 +1732006206454,1732006206671,-1220,-454999,-860161,-350000,-840000,-350000 +1732006206556,1732006206791,-427,-455060,-859185,-420000,-840000,-350000 +1732006206657,1732006206881,-915,-454999,-859917,-420000,-840000,-420000 +1732006206759,1732006207003,-549,-456402,-858758,-420000,-770000,-350000 +1732006206861,1732006207092,-915,-455426,-860344,-420000,-910000,-350000 +1732006206963,1732006207180,3721,-453718,-854915,560000,-280000,-770000 +1732006207065,1732006207302,122,-457683,-858514,-140000,-140000,-1260000 +1732006207167,1732006207391,-2196,-461038,-860222,-280000,-910000,-280000 +1732006207268,1732006207511,-4026,-448655,-863089,140000,-560000,-560000 +1732006207370,1732006207602,1952,-461709,-858209,-420000,-910000,-420000 +1732006207472,1732006207691,-3477,-453230,-860344,-350000,-700000,-280000 +1732006207574,1732006207811,366,-455914,-857965,-140000,-560000,-700000 +1732006207676,1732006207930,-122,-456402,-860222,-420000,-770000,-350000 +1732006207778,1732006208022,366,-454328,-859917,-350000,-700000,-420000 +1732006207879,1732006208141,-610,-455853,-860588,-280000,-700000,-630000 +1732006207981,1732006208202,6588,-458110,-853756,420000,-280000,-1050000 +1732006208083,1732006208322,1647,-459391,-855708,140000,-280000,-1470000 +1732006208185,1732006208410,1647,-457622,-859185,-210000,-910000,-420000 +1732006208287,1732006208532,366,-452010,-861747,420000,-280000,-980000 +1732006208389,1732006208620,5673,-461160,-858026,70000,-490000,-840000 +1732006208491,1732006208740,2684,-454938,-860222,-490000,-700000,-490000 +1732006208592,1732006208831,3721,-457805,-857599,-420000,-1120000,-560000 +1732006208694,1732006208922,11163,-455487,-853146,-70000,-770000,-350000 +1732006208796,1732006209041,-1525,-462075,-844789,-630000,-1260000,-490000 +1732006208898,1732006209220,1464,-457744,-858026,-140000,-1610000,420000 +1732006209000,1732006209251,-732,-451888,-857599,-140000,-770000,-560000 +1732006209102,1732006209341,4148,-460672,-859551,-210000,-910000,-350000 +1732006209203,1732006209431,-1586,-454999,-861015,-630000,-1260000,0 +1732006209305,1732006209552,488,-455792,-858819,-210000,-770000,-350000 +1732006209407,1732006209641,1342,-455304,-859368,-490000,-980000,-280000 +1732006209509,1732006209732,-610,-456524,-859551,-280000,-910000,-350000 +1732006209611,1732006209852,305,-456463,-859917,-350000,-910000,-350000 +1732006209713,1732006209971,122,-455304,-858941,-420000,-980000,-280000 +1732006209814,1732006210061,-244,-455060,-858941,-350000,-980000,-350000 +1732006209916,1732006210152,-732,-456036,-859307,-280000,-910000,-350000 +1732006210018,1732006210241,-1403,-457378,-860954,-560000,-910000,-420000 +1732006210120,1732006210361,183,-459452,-860283,-1260000,-1820000,420000 +1732006210222,1732006210452,5490,-444873,-859429,-980000,-980000,210000 +1732006210324,1732006210572,-3965,-457988,-859551,-1050000,-1400000,70000 +1732006210425,1732006210661,-854,-457561,-858331,70000,-700000,-560000 +1732006210527,1732006210781,-976,-453779,-861076,-840000,-980000,-210000 +1732006210629,1732006210902,-3355,-456890,-859002,-140000,-840000,-490000 +1732006210731,1732006210961,427,-455914,-859002,-420000,-840000,-350000 +1732006210833,1732006211081,-2867,-456097,-859429,-350000,-910000,-350000 +1732006210935,1732006211171,-61,-456768,-858941,-420000,-840000,-350000 +1732006211036,1732006211290,-1220,-456097,-859185,-420000,-910000,-350000 +1732006211138,1732006211382,-854,-456463,-857904,-350000,-840000,-420000 +1732006211240,1732006211471,-1830,-456036,-858880,-420000,-840000,-350000 +1732006211342,1732006211591,-366,-456036,-859856,-420000,-840000,-420000 +1732006211444,1732006211710,-244,-455975,-858819,-350000,-910000,-280000 +1732006211546,1732006211805,-3355,-449875,-858636,140000,-210000,-770000 +1732006211648,1732006211891,-244,-458903,-859673,-630000,-560000,-910000 +1732006211749,1732006212011,-2989,-462014,-862418,-280000,-1190000,70000 +1732006211851,1732006212102,-6832,-449631,-863638,-140000,-700000,-420000 +1732006211953,1732006212191,2135,-463661,-857355,-420000,-910000,-560000 +1732006212055,1732006212310,-4880,-454023,-859734,-280000,-910000,-280000 +1732006212157,1732006212402,-488,-456341,-859673,-350000,-840000,-560000 +1732006212259,1732006212491,-976,-455731,-858575,-420000,-910000,-280000 +1732006212360,1732006212611,-1586,-455670,-859612,-350000,-840000,-420000 +1732006212462,1732006212702,-1464,-456036,-859124,-420000,-840000,-350000 +1732006212564,1732006212854,-549,-454816,-858697,-420000,-840000,-350000 +1732006212666,1732006212911,-1037,-456463,-857965,-420000,-770000,-420000 +1732006212768,1732006213002,-1891,-455914,-859063,-350000,-910000,-350000 +1732006212870,1732006213123,-1769,-456768,-858941,-350000,-910000,-420000 +1732006212971,1732006213211,-1708,-455975,-857538,-280000,-770000,-420000 +1732006213073,1732006213331,-5185,-455670,-861991,-350000,-770000,-490000 +1732006213175,1732006213422,-3355,-462746,-863760,-1050000,-1610000,140000 +1732006213277,1732006213511,4392,-450180,-859673,-840000,-1190000,560000 +1732006213379,1732006213632,-3538,-454572,-861442,-1330000,-1190000,210000 +1732006213481,1732006213722,-1281,-460855,-857660,-70000,-770000,-490000 +1732006213582,1732006213841,488,-452498,-859612,-490000,-770000,-350000 +1732006213684,1732006213931,-122,-459086,-858209,-350000,-700000,-560000 +1732006213786,1732006214022,976,-457134,-859429,-140000,-560000,-560000 +1732006213888,1732006214141,854,-456890,-859551,-560000,-700000,-420000 +1732006213990,1732006214232,305,-455914,-858697,-350000,-630000,-490000 +1732006214092,1732006214410,1220,-456402,-859246,-420000,-630000,-560000 +1732006214193,1732006214472,244,-458415,-859673,-280000,-630000,-770000 +1732006214295,1732006214531,7930,-457317,-853695,-560000,-1330000,-70000 +1732006214397,1732006214711,8967,-450119,-854122,-560000,-490000,-840000 +1732006214499,1732006214741,4636,-460123,-853939,-210000,-1050000,-490000 +1732006214601,1732006214862,4331,-457256,-856135,-420000,-1050000,-700000 +1732006214703,1732006214950,6710,-458476,-858575,-350000,-1050000,-140000 +1732006214804,1732006215041,1098,-455731,-858880,-840000,-1190000,0 +1732006214906,1732006215161,1891,-457256,-859063,-280000,-980000,-210000 +1732006215008,1732006215280,4636,-455853,-855403,-1050000,-1260000,-70000 +1732006215110,1732006215371,244,-453352,-855891,70000,-630000,-770000 +1732006215212,1732006215462,-61,-462258,-854732,-210000,-1400000,70000 +1732006215314,1732006215552,2928,-450424,-856135,0,-700000,-560000 +1732006215415,1732006215705,1952,-458415,-858392,-490000,-910000,-420000 +1732006215517,1732006215760,-2989,-453840,-861076,-210000,-980000,-280000 +1732006215619,1732006215882,732,-456341,-858453,-280000,-840000,-490000 +1732006215721,1732006216002,-488,-456402,-858941,-490000,-910000,-140000 +1732006215823,1732006216091,-1342,-455487,-859002,-350000,-840000,-350000 +1732006215925,1732006216181,-671,-457073,-859124,-350000,-840000,-350000 +1732006216026,1732006216272,-915,-456402,-859002,-420000,-910000,-350000 +1732006216128,1732006216391,-854,-457805,-858453,-420000,-910000,-350000 +1732006216230,1732006216481,-1830,-456951,-858026,-210000,-770000,-560000 +1732006216332,1732006216631,-3599,-458415,-861137,-420000,-910000,-630000 +1732006216434,1732006216691,-2074,-463295,-865834,-700000,-1540000,0 +1732006216536,1732006216781,2745,-452498,-859490,-910000,-1330000,560000 +1732006216637,1732006216904,-5673,-452986,-863577,-1120000,-1190000,140000 +1732006216739,1732006217019,-488,-461587,-858270,0,-910000,-490000 +1732006216841,1732006217111,-305,-452803,-860588,-840000,-980000,-210000 +1732006216943,1732006217202,-2013,-457805,-857233,-280000,-840000,-490000 +1732006217045,1732006217292,-122,-456585,-858209,-490000,-770000,-280000 +1732006217147,1732006217411,-2318,-456951,-859856,-420000,-910000,-420000 +1732006217249,1732006217502,-1403,-457012,-859429,-350000,-840000,-350000 +1732006217350,1732006217622,-1464,-456280,-859368,-350000,-840000,-350000 +1732006217452,1732006217741,-488,-457744,-859002,-420000,-770000,-280000 +1732006217554,1732006217804,-1403,-456158,-859185,-490000,-840000,-350000 +1732006217656,1732006217922,-2013,-456219,-859734,-350000,-840000,-420000 +1732006217758,1732006218011,366,-458110,-857355,-350000,-910000,-350000 +1732006217860,1732006218132,-122,-458476,-855464,-980000,-1610000,280000 +1732006217961,1732006218222,4636,-442982,-853207,-840000,-700000,0 +1732006218063,1732006218311,-2196,-462807,-855403,-490000,-1330000,-140000 +1732006218165,1732006218431,-122,-456524,-855586,280000,-770000,-770000 +1732006218267,1732006218522,0,-455121,-857721,-770000,-910000,-280000 \ No newline at end of file diff --git a/jupyter/daten/liegen_51d301a7-81f5-4246-b60a-0ef367c43fb3.csv b/jupyter/daten/liegen_51d301a7-81f5-4246-b60a-0ef367c43fb3.csv new file mode 100644 index 0000000..370c386 --- /dev/null +++ b/jupyter/daten/liegen_51d301a7-81f5-4246-b60a-0ef367c43fb3.csv @@ -0,0 +1,73 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732008096972,1732008097214,59719,-715957,-665388,-1400000,-210000,-280000 +1732008097074,1732008097234,66307,-711626,-668133,-1400000,-210000,-280000 +1732008097074,1732008097292,61244,-711748,-667889,-1050000,-420000,-420000 +1732008097176,1732008097442,61244,-711748,-667889,-420000,-840000,-350000 +1732008097278,1732008097463,61610,-711382,-668499,-420000,-840000,-350000 +1732008097278,1732008097502,65209,-701622,-667340,-140000,-1260000,420000 +1732008097380,1732008097622,65209,-701622,-667340,1050000,-1470000,-490000 +1732008097482,1732008097643,62525,-710101,-663619,1050000,-1470000,-490000 +1732008097482,1732008097713,59353,-706807,-672525,-210000,-910000,0 +1732008097584,1732008097802,59353,-706807,-672525,70000,-1190000,-700000 +1732008097685,1732008097824,61488,-713822,-665266,70000,-1190000,-700000 +1732008097685,1732008097923,64477,-711260,-668987,-630000,-770000,0 +1732008097787,1732008098012,64477,-711260,-668987,-280000,-980000,-350000 +1732008097889,1732008098017,58621,-713456,-667645,-280000,-980000,-350000 +1732008097889,1732008098133,60878,-712907,-666242,-140000,-980000,-420000 +1732008097991,1732008098222,60878,-712907,-666242,-280000,-910000,-210000 +1732008098093,1732008098243,60756,-715042,-665937,-280000,-910000,-210000 +1732008098093,1732008098313,58987,-714493,-666425,-210000,-980000,-350000 +1732008098195,1732008098432,58987,-714493,-666425,-280000,-910000,-350000 +1732008098296,1732008098454,59536,-714615,-666181,-280000,-910000,-350000 +1732008098296,1732008098522,59170,-714554,-664961,-280000,-980000,-280000 +1732008098398,1732008098642,59170,-714554,-664961,-280000,-910000,-350000 +1732008098500,1732008098663,59048,-714249,-666059,-280000,-910000,-350000 +1732008098500,1732008098733,59475,-714432,-666852,-140000,-980000,-420000 +1732008098602,1732008098822,59475,-714432,-666852,-140000,-1120000,-350000 +1732008098704,1732008098844,58743,-715225,-664778,-140000,-1120000,-350000 +1732008098704,1732008098943,60695,-718275,-664473,-280000,-910000,-280000 +1732008098806,1732008099032,60695,-718275,-664473,0,-1190000,70000 +1732008098907,1732008099054,58377,-715652,-663741,0,-1190000,70000 +1732008098907,1732008099152,51850,-723704,-662399,-210000,-910000,350000 +1732008099009,1732008099242,51850,-723704,-662399,420000,-1260000,-280000 +1732008099111,1732008099263,54900,-713029,-667523,420000,-1260000,-280000 +1732008099111,1732008099363,59231,-719556,-662643,70000,-1120000,-490000 +1732008099213,1732008099452,59231,-719556,-662643,-140000,-980000,-140000 +1732008099315,1732008099476,59109,-716201,-665449,-140000,-980000,-140000 +1732008099315,1732008099542,58133,-717482,-662155,-350000,-840000,-420000 +1732008099417,1732008099662,58133,-717482,-662155,-280000,-840000,-420000 +1732008099519,1732008099667,59353,-715713,-663741,-280000,-840000,-420000 +1732008099519,1732008099753,58011,-718275,-662338,-210000,-910000,-280000 +1732008099620,1732008099871,58011,-718275,-662338,-350000,-840000,-350000 +1732008099722,1732008099893,58194,-716201,-663985,-350000,-840000,-350000 +1732008099722,1732008099963,58560,-719068,-663375,-280000,-840000,-420000 +1732008099824,1732008100053,58560,-719068,-663375,-420000,-910000,-350000 +1732008099926,1732008100074,57645,-717299,-662826,-420000,-910000,-350000 +1732008099926,1732008100172,58316,-717360,-663253,-350000,-840000,-350000 +1732008100028,1732008100262,58316,-717360,-663253,-350000,-910000,-280000 +1732008100130,1732008100285,58255,-717360,-663375,-350000,-910000,-280000 +1732008100130,1732008100385,56852,-717238,-662887,-140000,-1050000,-420000 +1732008100232,1732008100472,56852,-717238,-662887,-350000,-980000,-350000 +1732008100333,1732008100496,59658,-717848,-661423,-350000,-980000,-350000 +1732008100333,1732008100563,57218,-722789,-663497,-420000,-1050000,-420000 +1732008100435,1732008100682,57218,-722789,-663497,-490000,-770000,350000 +1732008100537,1732008100688,51667,-725046,-660996,-490000,-770000,350000 +1732008100537,1732008100772,51545,-716872,-663924,210000,-1330000,-420000 +1732008100639,1732008100892,51545,-716872,-663924,-490000,-910000,-420000 +1732008100741,1732008100914,59292,-718519,-661484,-490000,-910000,-420000 +1732008100741,1732008100982,57157,-717909,-662948,-350000,-910000,-140000 +1732008100843,1732008101072,57157,-717909,-662948,-350000,-910000,-490000 +1732008100944,1732008101093,55937,-718519,-663131,-350000,-910000,-490000 +1732008100944,1732008101193,59597,-718946,-661301,-420000,-840000,-420000 +1732008101046,1732008101282,59597,-718946,-661301,-490000,-770000,-350000 +1732008101148,1732008101303,55449,-719373,-661911,-490000,-770000,-350000 +1732008101148,1732008101403,57767,-718214,-662277,-560000,-770000,-420000 +1732008101250,1732008101492,57767,-718214,-662277,-980000,-560000,-280000 +1732008101352,1732008101514,58621,-720715,-662033,-980000,-560000,-280000 +1732008101352,1732008101583,57218,-717970,-663985,-980000,-560000,-280000 +1732008101454,1732008101703,57218,-717970,-663985,-770000,-630000,-490000 +1732008101555,1732008101709,57035,-718519,-663009,-770000,-630000,-490000 +1732008101555,1732008101792,59475,-716567,-661850,-840000,-490000,-350000 +1732008101657,1732008101912,59475,-716567,-661850,-1050000,0,-560000 +1732008101759,1732008101933,59109,-713883,-664229,-1050000,0,-560000 +1732008101759,1732008102003,71309,-717055,-663924,-350000,-1190000,-1260000 \ No newline at end of file diff --git a/jupyter/daten/liegen_7993bade-7530-4b6e-9c1e-8195522034ed.csv b/jupyter/daten/liegen_7993bade-7530-4b6e-9c1e-8195522034ed.csv new file mode 100644 index 0000000..597efb1 --- /dev/null +++ b/jupyter/daten/liegen_7993bade-7530-4b6e-9c1e-8195522034ed.csv @@ -0,0 +1,93 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732008085566,1732008085841,58804,-717726,-663131,-910000,-560000,-350000 +1732008085668,1732008085862,60329,-715774,-664168,-910000,-560000,-350000 +1732008085668,1732008085892,57767,-716994,-664534,-910000,-700000,-280000 +1732008085770,1732008085983,57767,-716994,-664534,-1120000,-490000,-490000 +1732008085872,1732008086004,60634,-715530,-664473,-1120000,-490000,-490000 +1732008085872,1732008086072,59963,-703574,-667523,-1050000,-910000,0 +1732008085974,1732008086162,59963,-703574,-667523,280000,-1120000,-840000 +1732008086076,1732008086168,62647,-710406,-663863,280000,-1120000,-840000 +1732008086076,1732008086283,61427,-710101,-668865,-1610000,-70000,0 +1732008086177,1732008086371,61427,-710101,-668865,-420000,-840000,-1050000 +1732008086279,1732008086392,59353,-714615,-665449,-420000,-840000,-1050000 +1732008086279,1732008086493,64172,-711809,-668377,-1050000,-280000,-350000 +1732008086381,1732008086583,64172,-711809,-668377,-490000,-700000,-490000 +1732008086483,1732008086604,60573,-710894,-667096,-490000,-700000,-490000 +1732008086483,1732008086672,63867,-711565,-667340,-280000,-980000,-560000 +1732008086585,1732008086792,63867,-711565,-667340,-210000,-1260000,210000 +1732008086687,1732008086814,61793,-701805,-669475,-210000,-1260000,210000 +1732008086687,1732008086883,67344,-710101,-664961,1050000,-1610000,-840000 +1732008086788,1732008087002,67344,-710101,-664961,-700000,-770000,70000 +1732008086890,1732008087024,62708,-709491,-670268,-700000,-770000,70000 +1732008086890,1732008087092,60451,-714127,-663802,280000,-1400000,-770000 +1732008086992,1732008087182,60451,-714127,-663802,-350000,-980000,-210000 +1732008087094,1732008087203,64721,-711565,-667218,-350000,-980000,-210000 +1732008087094,1732008087333,59231,-714493,-665632,-280000,-980000,-350000 +1732008087196,1732008087392,59231,-714493,-665632,-280000,-910000,-420000 +1732008087298,1732008087413,60756,-713517,-666608,-280000,-910000,-420000 +1732008087298,1732008087513,61793,-714066,-665571,-280000,-980000,-280000 +1732008087399,1732008087602,61793,-714066,-665571,-350000,-980000,-350000 +1732008087501,1732008087632,59231,-714005,-666242,-350000,-980000,-350000 +1732008087501,1732008087692,61244,-714554,-666425,-210000,-980000,-420000 +1732008087603,1732008087811,61244,-714554,-666425,-210000,-980000,-210000 +1732008087705,1732008087834,60207,-714066,-664900,-210000,-980000,-210000 +1732008087705,1732008087904,59963,-714310,-664717,-280000,-980000,-280000 +1732008087807,1732008088022,59963,-714310,-664717,-280000,-980000,-280000 +1732008087909,1732008088043,60573,-714920,-664656,-280000,-980000,-280000 +1732008087909,1732008088113,59353,-715286,-664900,-140000,-1120000,-350000 +1732008088010,1732008088203,59353,-715286,-664900,-280000,-980000,-280000 +1732008088112,1732008088224,61732,-715347,-662948,-280000,-980000,-280000 +1732008088112,1732008088323,56730,-713212,-662826,-210000,-1120000,210000 +1732008088214,1732008088412,56730,-713212,-662826,140000,-1190000,210000 +1732008088316,1732008088434,51850,-721752,-661972,140000,-1190000,210000 +1732008088316,1732008088536,56181,-711748,-668011,280000,-1260000,-280000 +1732008088418,1732008088622,56181,-711748,-668011,210000,-1190000,-700000 +1732008088520,1732008088627,57096,-718031,-662033,210000,-1190000,-700000 +1732008088520,1732008088742,59353,-716018,-665205,-280000,-980000,-210000 +1732008088621,1732008088832,59353,-716018,-665205,-490000,-910000,-420000 +1732008088723,1732008088854,56913,-717116,-662948,-490000,-910000,-420000 +1732008088723,1732008088922,59658,-715896,-663375,-280000,-910000,-490000 +1732008088825,1732008089041,59658,-715896,-663375,-280000,-980000,-280000 +1732008088927,1732008089064,58621,-717360,-662582,-280000,-980000,-280000 +1732008088927,1732008089132,58316,-716445,-664107,-280000,-1050000,-420000 +1732008089029,1732008089253,58316,-716445,-664107,-350000,-980000,-420000 +1732008089131,1732008089274,59048,-718397,-663375,-350000,-980000,-420000 +1732008089131,1732008089342,58377,-717604,-663009,-350000,-980000,-350000 +1732008089232,1732008089433,58377,-717604,-663009,-280000,-840000,-350000 +1732008089334,1732008089455,57706,-718153,-662033,-280000,-840000,-350000 +1732008089334,1732008089553,57828,-718031,-663314,-350000,-910000,-350000 +1732008089436,1732008089642,57828,-718031,-663314,-350000,-910000,-490000 +1732008089538,1732008089662,57767,-717360,-662582,-350000,-910000,-490000 +1732008089538,1732008089763,55022,-723155,-664534,-350000,-560000,-630000 +1732008089640,1732008089852,55022,-723155,-664534,-980000,-840000,-980000 +1732008089742,1732008089873,71980,-721874,-660874,-980000,-840000,-980000 +1732008089742,1732008089942,59231,-714920,-660508,-1960000,-280000,280000 +1732008089844,1732008090092,59231,-714920,-660508,-420000,-1050000,-490000 +1732008089945,1732008090122,55693,-719983,-659654,-420000,-1050000,-490000 +1732008089945,1732008090152,62708,-716750,-661667,-700000,-700000,-210000 +1732008090047,1732008090272,62708,-716750,-661667,-350000,-840000,-210000 +1732008090149,1732008090295,54778,-718641,-662033,-350000,-840000,-210000 +1732008090149,1732008090363,58072,-715957,-662399,-280000,-910000,-490000 +1732008090251,1732008090452,58072,-715957,-662399,-420000,-840000,-350000 +1732008090353,1732008090473,60024,-717848,-661545,-420000,-840000,-350000 +1732008090353,1732008090572,56974,-717848,-661728,-630000,-770000,-280000 +1732008090455,1732008090662,56974,-717848,-661728,-350000,-840000,-420000 +1732008090556,1732008090684,58377,-717787,-662521,-350000,-840000,-420000 +1732008090556,1732008090786,58255,-718458,-660691,-560000,-770000,-280000 +1732008090658,1732008090871,58255,-718458,-660691,-350000,-910000,-420000 +1732008090760,1732008090893,58255,-718214,-662521,-350000,-910000,-420000 +1732008090760,1732008090962,57462,-718885,-660874,-350000,-840000,-420000 +1732008090862,1732008091082,57462,-718885,-660874,-840000,-630000,-350000 +1732008090964,1732008091105,57584,-720410,-661606,-840000,-630000,-350000 +1732008090964,1732008091173,57279,-714859,-661362,-1470000,-140000,-420000 +1732008091066,1732008091292,57279,-714859,-661362,-560000,-1610000,-490000 +1732008091167,1732008091312,43676,-726510,-677588,-560000,-1610000,-490000 +1732008091167,1732008091443,68137,-695888,-663863,70000,-1330000,-1190000 +1732008091269,1732008091532,68137,-695888,-663863,1330000,-1540000,-1120000 +1732008091371,1732008091562,59780,-718031,-658556,1330000,-1540000,-1120000 +1732008091371,1732008091591,56852,-715774,-660081,-1330000,-280000,140000 +1732008091473,1732008091682,56852,-715774,-660081,-770000,-700000,-630000 +1732008091575,1732008091703,60634,-709918,-668621,-770000,-700000,-630000 +1732008091575,1732008091803,58987,-719983,-662338,-980000,-560000,-490000 +1732008091677,1732008091891,58987,-719983,-662338,-1470000,-420000,-560000 +1732008091779,1732008091913,61000,-705831,-666059,-1470000,-420000,-560000 \ No newline at end of file diff --git a/jupyter/daten/liegen_d9e8094f-7e14-4412-9849-b2f698851018.csv b/jupyter/daten/liegen_d9e8094f-7e14-4412-9849-b2f698851018.csv new file mode 100644 index 0000000..575238b --- /dev/null +++ b/jupyter/daten/liegen_d9e8094f-7e14-4412-9849-b2f698851018.csv @@ -0,0 +1,147 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006227941,1732006228241,854,-464271,-854549,-350000,-840000,-350000 +1732006228043,1732006228332,2684,-463539,-855281,-350000,-980000,-350000 +1732006228145,1732006228422,2318,-465247,-855220,-350000,-910000,-420000 +1732006228247,1732006228541,2135,-464332,-852780,-350000,-840000,-420000 +1732006228349,1732006228660,-2562,-461282,-858880,-490000,-770000,-560000 +1732006228451,1732006228751,671,-470127,-860466,-840000,-1470000,70000 +1732006228552,1732006228871,4880,-464149,-856989,-700000,-1400000,560000 +1732006228654,1732006228932,-3904,-460367,-860466,-1190000,-1260000,210000 +1732006228756,1732006229082,1952,-471469,-854732,0,-840000,-490000 +1732006228858,1732006229141,1464,-460672,-857172,-770000,-980000,-140000 +1732006228960,1732006229259,1037,-464820,-854488,-280000,-770000,-560000 +1732006229062,1732006229352,2806,-464271,-854854,-420000,-770000,-350000 +1732006229163,1732006229441,1342,-463234,-856074,-420000,-910000,-420000 +1732006229265,1732006229561,2257,-465735,-855342,-420000,-910000,-350000 +1732006229367,1732006229651,1403,-463478,-856074,-350000,-980000,-350000 +1732006229469,1732006229771,2562,-465918,-853573,-350000,-910000,-350000 +1732006229571,1732006229861,1220,-463844,-854366,-350000,-910000,-350000 +1732006229673,1732006229954,1586,-464149,-854183,-420000,-840000,-280000 +1732006229774,1732006230071,3233,-464942,-853878,-280000,-840000,-420000 +1732006229876,1732006230161,-2806,-459818,-859063,-70000,-350000,-630000 +1732006229978,1732006230281,-2440,-471042,-863638,-420000,-700000,-910000 +1732006230080,1732006230372,1342,-469822,-859124,-210000,-1190000,280000 +1732006230182,1732006230461,-3050,-456829,-861930,-350000,-700000,-280000 +1732006230284,1732006230581,4819,-472384,-852963,-140000,-840000,-490000 +1732006230385,1732006230701,-1464,-463234,-855891,-420000,-910000,-140000 +1732006230487,1732006230791,2623,-464881,-853878,-140000,-770000,-560000 +1732006230589,1732006230882,1525,-464088,-855037,-350000,-910000,-280000 +1732006230691,1732006230971,1281,-464515,-855586,-210000,-840000,-490000 +1732006230793,1732006231122,2562,-467748,-853390,-280000,-840000,-490000 +1732006230895,1732006231181,1708,-464210,-854488,-350000,-770000,-420000 +1732006230997,1732006231303,1952,-465552,-854732,-490000,-770000,-350000 +1732006231098,1732006231391,3050,-465857,-855281,-420000,-770000,-490000 +1732006231200,1732006231481,2623,-459757,-854061,210000,-140000,-840000 +1732006231302,1732006231632,-4758,-470920,-863028,-210000,-630000,-910000 +1732006231404,1732006231691,3294,-467870,-857050,-280000,-770000,70000 +1732006231506,1732006231811,-915,-462990,-860527,-420000,-700000,-280000 +1732006231608,1732006231902,5978,-467626,-854183,70000,-630000,-700000 +1732006231709,1732006231991,4941,-466101,-854183,-420000,-770000,-490000 +1732006231811,1732006232111,4880,-467199,-853634,140000,-630000,-840000 +1732006231913,1732006232202,7564,-465003,-854854,-70000,-70000,-1120000 +1732006232015,1732006232321,2318,-474275,-860893,-840000,-1610000,-140000 +1732006232117,1732006232411,7137,-464820,-857355,-840000,-1400000,630000 +1732006232219,1732006232532,-244,-465125,-859490,-700000,-1120000,-70000 +1732006232321,1732006232621,7503,-469517,-852841,-210000,-1050000,-280000 +1732006232422,1732006232771,3355,-464332,-855281,-1050000,-1260000,0 +1732006232524,1732006232831,2562,-466955,-853634,-140000,-910000,-350000 +1732006232626,1732006232921,6161,-465796,-853756,-420000,-910000,-420000 +1732006232728,1732006233041,9028,-467199,-848083,-420000,-980000,-350000 +1732006232830,1732006233131,3721,-461587,-848998,-210000,-420000,-770000 +1732006232932,1732006233222,2440,-468480,-849913,-280000,-1610000,0 +1732006233033,1732006233341,4209,-458781,-851438,-140000,-770000,-560000 +1732006233135,1732006233431,3660,-469090,-852536,-490000,-840000,-490000 +1732006233237,1732006233554,549,-463783,-854854,-210000,-910000,-350000 +1732006233339,1732006233672,3416,-466345,-854244,-350000,-910000,-560000 +1732006233441,1732006233760,1525,-465857,-854366,-560000,-980000,-280000 +1732006233543,1732006233854,1342,-465308,-854976,-280000,-770000,-420000 +1732006233645,1732006233940,2013,-467687,-854122,-280000,-980000,-420000 +1732006233746,1732006234061,2013,-465308,-854610,-210000,-910000,-420000 +1732006233848,1732006234152,1647,-465308,-854488,-490000,-770000,-210000 +1732006233950,1732006234241,1342,-466833,-854366,-280000,-770000,-350000 +1732006234052,1732006234391,2745,-465857,-853207,140000,-700000,-770000 +1732006234154,1732006234451,-1281,-468541,-857660,-280000,-490000,-840000 +1732006234256,1732006234602,-1891,-474519,-865468,-560000,-1190000,-420000 +1732006234357,1732006234661,4270,-467992,-856806,-840000,-1260000,700000 +1732006234459,1732006234752,-1464,-460672,-860283,-1190000,-490000,350000 +1732006234561,1732006234872,4331,-471103,-852841,-210000,-770000,-350000 +1732006234663,1732006234961,2867,-463234,-854915,-1050000,-770000,140000 +1732006234765,1732006235082,2074,-465308,-853573,-350000,-770000,-420000 +1732006234867,1732006235171,2745,-465552,-854122,-420000,-840000,-210000 +1732006234968,1732006235262,2379,-464881,-854732,-350000,-770000,-420000 +1732006235070,1732006235381,4209,-465430,-854854,-420000,-840000,-350000 +1732006235172,1732006235472,3111,-464271,-853573,-350000,-840000,-420000 +1732006235274,1732006235591,-183,-470615,-849791,-630000,-1050000,-910000 +1732006235376,1732006235681,976,-465735,-853939,-1260000,-1400000,-1120000 +1732006235478,1732006235771,2989,-461465,-854732,1470000,-560000,350000 +1732006235579,1732006235891,-3904,-468785,-850706,-70000,-700000,-350000 +1732006235681,1732006235982,4514,-465308,-854244,-770000,-910000,-140000 +1732006235783,1732006236104,5673,-465735,-848876,-630000,-1680000,-70000 +1732006235885,1732006236191,11895,-452071,-849486,-770000,-700000,-280000 +1732006235987,1732006236282,2257,-473116,-849730,-350000,-1470000,-140000 +1732006236089,1732006236431,2989,-461343,-853939,420000,-910000,-770000 +1732006236190,1732006236491,6527,-466711,-852902,-490000,-910000,-420000 +1732006236292,1732006236611,793,-465247,-854366,-210000,-910000,-490000 +1732006236394,1732006236702,5490,-466528,-854061,-140000,-770000,-630000 +1732006236496,1732006236791,2440,-465247,-854793,-420000,-770000,-280000 +1732006236598,1732006236970,3721,-465735,-854183,-350000,-840000,-490000 +1732006236700,1732006237002,3721,-466711,-852902,-350000,-840000,-420000 +1732006236801,1732006237122,3904,-466711,-852902,-350000,-700000,-490000 +1732006236903,1732006237211,4026,-466589,-853939,-420000,-770000,-420000 +1732006237005,1732006237301,5124,-467138,-854061,-280000,-700000,-490000 +1732006237107,1732006237422,3721,-467992,-854610,-350000,-770000,-700000 +1732006237209,1732006237572,7564,-470188,-853512,-1330000,-1750000,210000 +1732006237311,1732006237632,12261,-460672,-853512,-980000,-1120000,0 +1732006237413,1732006237722,2989,-472445,-853085,-910000,-1400000,-280000 +1732006237514,1732006237841,3660,-467626,-852780,350000,-560000,-840000 +1732006237616,1732006237931,9394,-469212,-852963,-420000,-700000,-630000 +1732006237718,1732006238022,4148,-467077,-853878,-280000,-560000,-630000 +1732006237820,1732006238141,7198,-471347,-852902,-210000,-420000,-840000 +1732006237922,1732006238232,13359,-469517,-844911,-350000,-490000,-630000 +1732006238024,1732006238354,11895,-468663,-846680,-350000,-700000,-980000 +1732006238126,1732006238440,8723,-471347,-849486,-210000,-1750000,210000 +1732006238227,1732006238532,8113,-462258,-850279,-70000,-840000,-770000 +1732006238329,1732006238652,11041,-471530,-852048,-700000,-980000,-140000 +1732006238431,1732006238741,3660,-463722,-855708,-770000,-1050000,0 +1732006238533,1732006238862,8052,-468602,-853207,-420000,-910000,-280000 +1732006238635,1732006238953,5856,-462746,-856074,70000,-560000,-560000 +1732006238737,1732006239041,-793,-472628,-861503,-420000,-1260000,-490000 +1732006238838,1732006239161,4636,-469090,-857416,-770000,-1400000,280000 +1732006238940,1732006239251,-732,-465796,-856074,280000,-840000,-840000 +1732006239042,1732006239403,5673,-473055,-851377,-140000,-840000,-420000 +1732006239144,1732006239461,2501,-466040,-856562,-630000,-980000,-70000 +1732006239246,1732006239581,3355,-469761,-854122,-210000,-910000,-350000 +1732006239348,1732006239672,4941,-467321,-855159,-350000,-910000,-280000 +1732006239450,1732006239761,4758,-468419,-853268,-350000,-770000,-280000 +1732006239551,1732006239881,4514,-467687,-852902,-350000,-840000,-420000 +1732006239653,1732006239971,5124,-467504,-853268,-280000,-840000,-350000 +1732006239755,1732006240061,3660,-467443,-853695,-350000,-840000,-350000 +1732006239857,1732006240181,4453,-468297,-853268,-420000,-770000,-420000 +1732006239959,1732006240301,4392,-469029,-852475,-210000,-840000,-420000 +1732006240061,1732006240391,3721,-470249,-852719,-350000,-980000,-280000 +1732006240162,1732006240542,10797,-470005,-844057,-140000,-1190000,-490000 +1732006240264,1732006240570,7137,-463417,-846436,420000,-210000,-910000 +1732006240366,1732006240691,4880,-475007,-848571,-420000,-1470000,-280000 +1732006240468,1732006240782,4575,-463356,-851804,210000,-700000,-770000 +1732006240570,1732006240904,6527,-469883,-851987,-560000,-700000,-350000 +1732006240672,1732006240990,3538,-468114,-852719,-280000,-770000,-350000 +1732006240773,1732006241082,4758,-468663,-852536,-350000,-840000,-420000 +1732006240875,1732006241203,4148,-468419,-852963,-420000,-910000,-350000 +1732006240977,1732006241291,4331,-468358,-852780,-350000,-770000,-350000 +1732006241079,1732006241441,3843,-468785,-851743,-350000,-770000,-350000 +1732006241181,1732006241503,4270,-468236,-852841,-350000,-770000,-420000 +1732006241283,1732006241591,5490,-470127,-851499,-350000,-770000,-420000 +1732006241384,1732006241710,3721,-469090,-852658,-280000,-840000,-350000 +1732006241486,1732006241802,4270,-469395,-853878,-280000,-770000,-420000 +1732006241588,1732006241922,4575,-469151,-852841,-420000,-910000,-420000 +1732006241690,1732006242010,6161,-471286,-849547,-1400000,-1680000,280000 +1732006241792,1732006242102,10492,-458781,-851072,-910000,-980000,350000 +1732006241894,1732006242221,5063,-471591,-848815,-910000,-1190000,0 +1732006241995,1732006242311,6405,-473421,-850523,210000,-770000,-700000 +1732006242097,1732006242434,6527,-467016,-853878,-910000,-980000,-140000 +1732006242199,1732006242554,3355,-469700,-852719,-210000,-700000,-490000 +1732006242301,1732006242611,6588,-469456,-852780,-350000,-910000,-420000 +1732006242403,1732006242731,4758,-468419,-852170,-420000,-770000,-350000 +1732006242505,1732006242821,5185,-469761,-852475,-420000,-770000,-280000 +1732006242607,1732006242941,5063,-468175,-852902,-350000,-840000,-350000 +1732006242708,1732006243032,7259,-469395,-852414,-420000,-840000,-350000 \ No newline at end of file diff --git a/jupyter/daten/liegen_f5825a28-acaf-4f0d-8e5a-6de3df7ab364.csv b/jupyter/daten/liegen_f5825a28-acaf-4f0d-8e5a-6de3df7ab364.csv new file mode 100644 index 0000000..d5a9d34 --- /dev/null +++ b/jupyter/daten/liegen_f5825a28-acaf-4f0d-8e5a-6de3df7ab364.csv @@ -0,0 +1,115 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006153802,1732006153901,-12505,-412604,-878583,-910000,-1400000,560000 +1732006153904,1732006153991,-20008,-413824,-881389,-1120000,-1050000,70000 +1732006154006,1732006154080,-15738,-422913,-876631,-140000,-980000,-490000 +1732006154108,1732006154201,-16531,-415044,-877851,-770000,-1050000,-70000 +1732006154210,1732006154291,-17751,-420168,-875594,70000,-840000,-630000 +1732006154312,1732006154410,-15067,-417972,-876692,-140000,-1120000,-490000 +1732006154414,1732006154500,-16165,-419924,-876082,-140000,-770000,-560000 +1732006154515,1732006154620,-16714,-419741,-876143,-140000,-840000,-490000 +1732006154617,1732006154710,-16348,-418704,-875838,-560000,-910000,-420000 +1732006154719,1732006154800,-16348,-419558,-875167,-280000,-840000,-350000 +1732006154821,1732006154921,-16043,-419924,-875350,-280000,-840000,-420000 +1732006154923,1732006155011,-17812,-419009,-876692,-420000,-770000,-350000 +1732006155025,1732006155100,-16043,-419558,-876570,-420000,-770000,-420000 +1732006155126,1732006155222,-15372,-416203,-874252,350000,-280000,-840000 +1732006155228,1732006155310,-21960,-424926,-882548,-350000,-420000,-980000 +1732006155330,1732006155430,-17995,-427122,-879620,-140000,-1120000,0 +1732006155432,1732006155521,-20313,-414739,-881755,-420000,-350000,-280000 +1732006155534,1732006155610,-13115,-427549,-874679,-350000,-700000,-700000 +1732006155636,1732006155731,-15189,-414739,-876753,-700000,-770000,-350000 +1732006155737,1732006155821,-16470,-420046,-876082,-210000,-770000,-560000 +1732006155839,1732006155941,-13481,-420534,-875899,-280000,-560000,-560000 +1732006155941,1732006156031,-13725,-420717,-874496,-420000,-630000,-630000 +1732006156043,1732006156149,-12810,-420107,-875777,-280000,-770000,-630000 +1732006156145,1732006156242,-9028,-422425,-870714,280000,-210000,-840000 +1732006156247,1732006156331,-12871,-424377,-871568,140000,-280000,-1260000 +1732006156348,1732006156450,-15860,-423340,-877363,-420000,-1260000,140000 +1732006156450,1732006156541,-16714,-418948,-874740,210000,-630000,-630000 +1732006156552,1732006156691,-10736,-425841,-874496,-560000,-1050000,-350000 +1732006156654,1732006156750,-16043,-418338,-876082,-630000,-1050000,70000 +1732006156756,1732006156841,-13786,-419741,-875655,-350000,-770000,-350000 +1732006156858,1732006156960,-14213,-420595,-875411,-350000,-910000,-210000 +1732006156960,1732006157080,-15799,-418643,-875533,-420000,-910000,-280000 +1732006157061,1732006157171,-14884,-419009,-876082,-350000,-840000,-350000 +1732006157163,1732006157291,-15799,-420656,-876326,-490000,-910000,-280000 +1732006157265,1732006157350,-15311,-418033,-875411,-280000,-910000,-350000 +1732006157367,1732006157471,-16043,-420473,-876082,-420000,-910000,-280000 +1732006157469,1732006157560,-6893,-422486,-867420,-210000,-980000,-490000 +1732006157571,1732006157681,-15189,-418826,-869067,280000,-420000,-1260000 +1732006157672,1732006157770,-14823,-424316,-872239,-70000,-1260000,-280000 +1732006157774,1732006157860,-19093,-413946,-875533,210000,-700000,-770000 +1732006157876,1732006158009,-14701,-422486,-874374,-560000,-840000,-420000 +1732006157978,1732006158070,-17873,-418826,-877302,-280000,-770000,-280000 +1732006158080,1732006158191,-15006,-420412,-876265,-280000,-700000,-560000 +1732006158182,1732006158280,-16165,-420656,-875777,-560000,-980000,-210000 +1732006158283,1732006158371,-16287,-419985,-875838,-420000,-910000,-350000 +1732006158385,1732006158492,-16104,-420778,-875106,-350000,-770000,-350000 +1732006158487,1732006158609,-16043,-420229,-874862,-350000,-770000,-420000 +1732006158589,1732006158701,-16409,-419558,-875350,-420000,-840000,-350000 +1732006158691,1732006158791,-16226,-418887,-875533,-350000,-840000,-420000 +1732006158793,1732006158880,-15311,-419924,-874008,-210000,-770000,-490000 +1732006158894,1732006159001,-17080,-421144,-876875,-420000,-1050000,-350000 +1732006158996,1732006159091,-14457,-422425,-874069,-1050000,-1890000,350000 +1732006159098,1732006159210,-9821,-410835,-872971,-1050000,-910000,350000 +1732006159200,1732006159300,-15799,-424438,-871507,-840000,-1120000,-70000 +1732006159302,1732006159392,-13908,-423279,-873337,70000,-980000,-630000 +1732006159404,1732006159510,-15860,-418521,-876936,-700000,-700000,-350000 +1732006159505,1732006159601,-15860,-421571,-875350,-350000,-770000,-560000 +1732006159607,1732006159722,-11224,-422425,-874252,-280000,-700000,-490000 +1732006159709,1732006159839,-16287,-419253,-876570,-700000,-770000,-210000 +1732006159811,1732006159901,-14030,-422913,-874069,-350000,-630000,-490000 +1732006159913,1732006160050,-13298,-419619,-876021,-420000,-700000,-490000 +1732006160015,1732006160139,-13115,-421144,-876509,-420000,-840000,-420000 +1732006160116,1732006160231,-16592,-415837,-879437,-280000,-280000,-770000 +1732006160218,1732006160321,-22875,-425719,-886330,-700000,-1540000,-210000 +1732006160320,1732006160410,-11651,-421754,-877973,-280000,-1330000,210000 +1732006160422,1732006160531,-17995,-416569,-882365,-770000,-910000,-70000 +1732006160524,1732006160621,-10248,-424133,-874557,140000,-630000,-840000 +1732006160626,1732006160741,-12139,-419558,-875960,-560000,-910000,-490000 +1732006160728,1732006160830,-12688,-422364,-875472,-350000,-1120000,-420000 +1732006160829,1732006160922,-10675,-421510,-875289,-350000,-1050000,-350000 +1732006160931,1732006161041,-12566,-420534,-878583,-490000,-1190000,-70000 +1732006161033,1732006161131,-13176,-423340,-875655,-1330000,-2170000,630000 +1732006161135,1732006161250,-6039,-412604,-871812,-840000,-910000,70000 +1732006161237,1732006161341,-14579,-422852,-877363,-980000,-1400000,350000 +1732006161339,1732006161430,-13603,-418033,-873764,-210000,-910000,-280000 +1732006161440,1732006161550,-14701,-420595,-873947,-700000,-1050000,-140000 +1732006161542,1732006161640,-18300,-421083,-874130,-210000,-840000,-350000 +1732006161644,1732006161761,-12627,-422913,-876082,-420000,-910000,-280000 +1732006161746,1732006161850,-15677,-420229,-876570,-490000,-840000,-210000 +1732006161848,1732006161972,-16348,-420290,-876631,-280000,-910000,-420000 +1732006161950,1732006162060,-15372,-421510,-875167,-420000,-840000,-280000 +1732006162051,1732006162150,-15494,-421205,-876570,-350000,-910000,-350000 +1732006162153,1732006162271,-16714,-420839,-875716,-350000,-770000,-350000 +1732006162255,1732006162360,-16348,-422181,-875594,-350000,-980000,-350000 +1732006162357,1732006162480,-15311,-422608,-875533,-420000,-910000,-350000 +1732006162459,1732006162571,-9150,-422120,-868030,490000,-490000,-770000 +1732006162561,1732006162660,-17202,-424316,-873581,70000,-350000,-1190000 +1732006162662,1732006162780,-15921,-426207,-874679,-210000,-910000,-350000 +1732006162764,1732006162871,-20008,-416935,-876204,280000,-630000,-700000 +1732006162866,1732006162992,-14152,-425658,-873825,-490000,-840000,-490000 +1732006162968,1732006163109,-18544,-419680,-876387,-280000,-840000,-280000 +1732006163070,1732006163172,-14579,-422669,-876143,-280000,-770000,-560000 +1732006163172,1732006163292,-16714,-422364,-874130,-420000,-910000,-280000 +1732006163273,1732006163380,-16104,-421693,-875960,-350000,-840000,-420000 +1732006163375,1732006163501,-14762,-423767,-875167,-420000,-840000,-420000 +1732006163477,1732006163591,-15860,-422242,-875228,-210000,-840000,-420000 +1732006163579,1732006163680,-15189,-422059,-875655,-420000,-910000,-280000 +1732006163681,1732006163800,-15128,-421998,-875716,-420000,-840000,-350000 +1732006163783,1732006163890,-14335,-422486,-874679,-350000,-700000,-350000 +1732006163884,1732006164010,-13969,-422181,-875533,-350000,-840000,-350000 +1732006163986,1732006164101,-18910,-417301,-876753,140000,0,-770000 +1732006164088,1732006164191,-20191,-429257,-883097,-420000,-560000,-910000 +1732006164190,1732006164309,-15006,-427122,-879742,-350000,-1190000,280000 +1732006164292,1732006164401,-20496,-415105,-883585,-490000,-490000,-280000 +1732006164394,1732006164521,-11956,-430233,-873703,0,-770000,-770000 +1732006164496,1732006164610,-14945,-417484,-876082,-630000,-700000,-350000 +1732006164597,1732006164701,-15494,-424926,-875655,-210000,-700000,-630000 +1732006164699,1732006164822,-12261,-421876,-874923,-350000,-560000,-630000 +1732006164801,1732006164910,-13420,-422547,-874130,-420000,-630000,-700000 +1732006164903,1732006165029,-12627,-421815,-875777,-420000,-770000,-560000 +1732006165005,1732006165149,-12322,-424987,-875167,-350000,-770000,-490000 +1732006165107,1732006165210,-3721,-422303,-866200,-280000,-700000,-560000 +1732006165208,1732006165330,-4087,-415593,-868884,-140000,-420000,-1260000 +1732006165310,1732006165422,-11590,-426085,-871324,-350000,-1330000,-70000 \ No newline at end of file diff --git a/jupyter/daten/schlafen_0522a92c-e0bd-4ea1-8073-ce7a251472f2.csv b/jupyter/daten/schlafen_0522a92c-e0bd-4ea1-8073-ce7a251472f2.csv new file mode 100644 index 0000000..814f273 --- /dev/null +++ b/jupyter/daten/schlafen_0522a92c-e0bd-4ea1-8073-ce7a251472f2.csv @@ -0,0 +1,66 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006293527,1732006294002,10980,-482449,-840702,280000,-700000,-770000 +1732006293628,1732006294150,10797,-486536,-841922,-840000,-840000,-280000 +1732006293730,1732006294212,6710,-488000,-842654,-140000,-840000,-490000 +1732006293832,1732006294302,9760,-486902,-842898,-420000,-770000,-420000 +1732006293934,1732006294422,8540,-486841,-842227,-420000,-840000,-350000 +1732006294036,1732006294511,10126,-487268,-842837,-350000,-770000,-350000 +1732006294138,1732006294634,8601,-486109,-843325,-630000,-840000,-280000 +1732006294239,1732006294721,8418,-487268,-841922,-350000,-770000,-350000 +1732006294341,1732006294842,10248,-485743,-843203,-490000,-770000,-350000 +1732006294443,1732006294960,8357,-486475,-843752,-420000,-770000,-350000 +1732006294545,1732006295022,10065,-486841,-843508,-490000,-770000,-350000 +1732006294647,1732006295141,9699,-486963,-843264,-560000,-700000,-280000 +1732006294749,1732006295233,10126,-486109,-843325,-420000,-700000,-350000 +1732006294851,1732006295353,4880,-483181,-847717,-420000,-630000,-560000 +1732006294952,1732006295442,4331,-493612,-852353,-700000,-1260000,-140000 +1732006295054,1732006295534,11956,-485438,-847534,-700000,-1470000,630000 +1732006295156,1732006295652,3599,-479948,-849791,-1260000,-1050000,280000 +1732006295258,1732006295771,10431,-493795,-842593,-140000,-840000,-420000 +1732006295360,1732006295862,8540,-481107,-845643,-630000,-910000,-140000 +1732006295462,1732006295952,9455,-486780,-842532,-210000,-840000,-560000 +1732006295564,1732006296043,10004,-486597,-842898,-420000,-770000,-280000 +1732006295665,1732006296162,9638,-485743,-843264,-280000,-840000,-490000 +1732006295767,1732006296252,9699,-487268,-844057,-350000,-980000,-350000 +1732006295869,1732006296372,10065,-486109,-842898,-280000,-840000,-420000 +1732006295971,1732006296462,9394,-486780,-843508,-350000,-840000,-350000 +1732006296073,1732006296552,9272,-486231,-843264,-280000,-840000,-490000 +1732006296175,1732006296672,8784,-486841,-844301,-420000,-700000,-420000 +1732006296276,1732006296790,8723,-488610,-844301,-280000,-770000,-560000 +1732006296378,1732006296882,11163,-492331,-843813,-1400000,-1680000,420000 +1732006296480,1732006296971,15311,-473909,-843752,-840000,-770000,70000 +1732006296582,1732006297063,8784,-491111,-839482,-910000,-1400000,-70000 +1732006296684,1732006297185,9699,-487695,-841556,280000,-980000,-700000 +1732006296786,1732006297272,10919,-487756,-842654,-560000,-1050000,-630000 +1732006296887,1732006297391,7137,-488549,-844240,-350000,-980000,-420000 +1732006296989,1732006297483,10309,-487634,-842105,-210000,-840000,-840000 +1732006297091,1732006297571,9943,-488854,-842593,-280000,-840000,-630000 +1732006297193,1732006297692,13420,-486963,-836920,490000,-350000,-1120000 +1732006297295,1732006297782,8845,-490318,-840031,350000,-560000,-1470000 +1732006297397,1732006297935,10248,-489525,-842959,-280000,-840000,-140000 +1732006297499,1732006297991,7808,-486170,-843569,350000,-490000,-980000 +1732006297600,1732006298084,13054,-493368,-841129,0,-840000,-770000 +1732006297702,1732006298202,10858,-488671,-841495,-560000,-1050000,-350000 +1732006297804,1732006298293,13786,-490989,-841678,-420000,-840000,-560000 +1732006297906,1732006298412,16470,-493429,-840031,-630000,-1540000,70000 +1732006298008,1732006298532,18300,-481290,-839299,-1050000,-1120000,70000 +1732006298110,1732006298592,12383,-498675,-837591,-1190000,-2450000,70000 +1732006298211,1732006298712,5429,-483730,-847290,-140000,-2240000,-700000 +1732006298313,1732006298803,10126,-493429,-840214,-980000,-980000,210000 +1732006298415,1732006298921,3172,-481534,-842837,140000,-980000,-350000 +1732006298517,1732006299012,14091,-492880,-838323,-140000,-560000,-560000 +1732006298619,1732006299102,7564,-488000,-843203,-630000,-840000,-70000 +1732006298721,1732006299221,1586,-486597,-846009,-770000,-560000,-280000 +1732006298822,1732006299313,9699,-491233,-842715,-910000,-1330000,280000 +1732006298924,1732006299435,9455,-481656,-845826,-1190000,-1330000,420000 +1732006299026,1732006299522,1891,-487085,-845521,-1120000,-1120000,140000 +1732006299128,1732006299611,4697,-489464,-842227,-350000,-980000,-140000 +1732006299230,1732006299734,6344,-486231,-843630,-840000,-910000,70000 +1732006299332,1732006299821,2623,-488183,-843508,-420000,-910000,-280000 +1732006299433,1732006299942,7503,-486414,-842776,-490000,-630000,-280000 +1732006299535,1732006300033,3721,-485865,-843752,-490000,-910000,-280000 +1732006299637,1732006300152,5734,-485255,-843691,-490000,-700000,-280000 +1732006299739,1732006300241,5917,-484828,-844240,-630000,-700000,-350000 +1732006299841,1732006300333,5185,-484950,-844850,-490000,-770000,-280000 +1732006299943,1732006300453,4331,-484767,-843996,-490000,-840000,-280000 +1732006300044,1732006300542,4941,-485865,-843813,-280000,-840000,-350000 \ No newline at end of file diff --git a/jupyter/daten/schlafen_deed78aa-ebfc-427a-af1f-c1e2763a2123.csv b/jupyter/daten/schlafen_deed78aa-ebfc-427a-af1f-c1e2763a2123.csv new file mode 100644 index 0000000..9626609 --- /dev/null +++ b/jupyter/daten/schlafen_deed78aa-ebfc-427a-af1f-c1e2763a2123.csv @@ -0,0 +1,110 @@ +sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ +1732006264604,1732006264992,7503,-478240,-847778,-490000,-910000,-350000 +1732006264706,1732006265083,8479,-479460,-847473,-350000,-840000,-420000 +1732006264808,1732006265203,9028,-479033,-847107,-420000,-770000,-350000 +1732006264909,1732006265321,9882,-478850,-847534,-420000,-840000,-350000 +1732006265011,1732006265412,8723,-478972,-848266,-490000,-840000,-350000 +1732006265113,1732006265503,9150,-478484,-847961,-420000,-840000,-350000 +1732006265215,1732006265651,8540,-479033,-847473,-350000,-770000,-420000 +1732006265317,1732006265711,4819,-477020,-851133,-700000,-770000,-280000 +1732006265419,1732006265803,6832,-486231,-852170,-1190000,-1400000,70000 +1732006265521,1732006265921,12261,-477447,-849791,-770000,-1540000,630000 +1732006265622,1732006266011,4392,-476715,-849852,-1120000,-1330000,70000 +1732006265724,1732006266102,10370,-486231,-845582,280000,-980000,-770000 +1732006265826,1732006266222,8418,-476227,-848388,-560000,-1120000,-280000 +1732006265928,1732006266311,7320,-479582,-846192,-140000,-840000,-560000 +1732006266030,1732006266433,10065,-480070,-846436,-350000,-980000,-420000 +1732006266132,1732006266521,7503,-478911,-846131,-350000,-840000,-420000 +1732006266233,1732006266611,8662,-479216,-846802,-420000,-700000,-350000 +1732006266335,1732006266733,9150,-479338,-846558,-490000,-560000,-210000 +1732006266437,1732006266822,9455,-480741,-847534,-630000,-700000,-280000 +1732006266539,1732006266971,10431,-480070,-848388,-560000,-700000,-210000 +1732006266641,1732006267033,16836,-480009,-840153,140000,-70000,-630000 +1732006266743,1732006267121,10980,-478423,-843020,210000,-280000,-1400000 +1732006266844,1732006267242,9516,-484828,-847778,-210000,-700000,-140000 +1732006266946,1732006267333,8540,-473665,-849303,350000,-490000,-770000 +1732006267048,1732006267453,12017,-483852,-845094,-350000,-630000,-420000 +1732006267150,1732006267541,8296,-478911,-847778,-630000,-700000,-210000 +1732006267252,1732006267633,12017,-479521,-845765,-560000,-350000,-280000 +1732006267354,1732006267753,12627,-478057,-846680,-420000,-700000,-560000 +1732006267456,1732006267842,11468,-478911,-847839,-420000,-490000,-630000 +1732006267557,1732006267961,15555,-481839,-842593,-770000,-1750000,-70000 +1732006267659,1732006268081,19886,-471713,-846009,-630000,-1050000,-420000 +1732006267761,1732006268141,11712,-482632,-845643,-420000,-1470000,-420000 +1732006267863,1732006268291,11529,-478423,-844301,210000,-560000,-980000 +1732006267965,1732006268352,16958,-483852,-844301,-280000,-630000,-700000 +1732006268067,1732006268472,13176,-480619,-846314,-770000,-980000,-350000 +1732006268168,1732006268562,10248,-479521,-850523,-490000,-770000,-560000 +1732006268270,1732006268652,15067,-483974,-848571,-1750000,-1680000,770000 +1732006268372,1732006268801,14457,-474946,-849242,-1050000,-1400000,490000 +1732006268474,1732006268862,8296,-478240,-851926,-840000,-1330000,140000 +1732006268576,1732006268983,9211,-480558,-848144,-280000,-840000,-140000 +1732006268678,1732006269072,9943,-478972,-847046,-910000,-910000,0 +1732006268779,1732006269161,10065,-476959,-847717,-420000,-700000,-210000 +1732006268881,1732006269283,11041,-479338,-846985,-560000,-910000,-210000 +1732006268983,1732006269371,10980,-476532,-847473,-350000,-700000,-210000 +1732006269085,1732006269491,10370,-477325,-847656,-350000,-840000,-420000 +1732006269187,1732006269583,10980,-479033,-847656,-350000,-770000,-350000 +1732006269289,1732006269672,11041,-476959,-847778,-420000,-840000,-350000 +1732006269390,1732006269791,9943,-478057,-848022,-350000,-840000,-420000 +1732006269492,1732006269882,9089,-480985,-847778,-490000,-910000,-210000 +1732006269594,1732006270002,15372,-477630,-842227,-840000,-1610000,70000 +1732006269696,1732006270091,14640,-469395,-840336,-490000,-490000,-630000 +1732006269798,1732006270211,9516,-483791,-844362,-560000,-1470000,0 +1732006269900,1732006270333,11956,-473238,-845582,210000,-700000,-770000 +1732006270002,1732006270391,11529,-477203,-847229,-770000,-910000,-280000 +1732006270103,1732006270511,7747,-477874,-848205,-210000,-840000,-350000 +1732006270205,1732006270660,10736,-478301,-847229,-350000,-840000,-420000 +1732006270307,1732006270721,10187,-477996,-847595,-420000,-910000,-350000 +1732006270409,1732006270811,9699,-477935,-846863,-350000,-840000,-420000 +1732006270511,1732006270903,9455,-478179,-848083,-350000,-980000,-420000 +1732006270613,1732006271021,9394,-478606,-847412,-280000,-910000,-490000 +1732006270714,1732006271112,9577,-478423,-847595,-350000,-910000,-420000 +1732006270816,1732006271233,8723,-478972,-848815,-420000,-840000,-350000 +1732006270918,1732006271322,11163,-478240,-847351,-420000,-910000,-280000 +1732006271020,1732006271411,12383,-472018,-844484,350000,-210000,-770000 +1732006271122,1732006271533,7808,-483791,-850828,-280000,-490000,-1120000 +1732006271224,1732006271652,7015,-484035,-849425,-210000,-980000,-210000 +1732006271326,1732006271771,4697,-471835,-850401,70000,-700000,-560000 +1732006271427,1732006271832,11956,-483669,-844789,-630000,-910000,-350000 +1732006271529,1732006271922,7381,-476898,-848083,-280000,-770000,-350000 +1732006271631,1732006272041,10980,-478850,-846924,-350000,-770000,-420000 +1732006271733,1732006272133,8357,-478972,-848022,-630000,-910000,-140000 +1732006271835,1732006272253,7930,-478057,-848205,-420000,-910000,-420000 +1732006271937,1732006272342,9882,-479826,-847290,-350000,-910000,-420000 +1732006272038,1732006272461,9516,-478728,-847595,-210000,-910000,-490000 +1732006272140,1732006272583,9943,-478179,-848083,-490000,-770000,-350000 +1732006272242,1732006272641,8113,-479399,-845765,-210000,-840000,-420000 +1732006272344,1732006272762,9150,-482693,-847778,-560000,-840000,-350000 +1732006272446,1732006272852,11773,-479582,-842227,-490000,-1540000,-70000 +1732006272548,1732006272942,14579,-468114,-841312,-210000,-560000,-560000 +1732006272649,1732006273061,10614,-486536,-841861,-350000,-1470000,-210000 +1732006272751,1732006273152,9943,-473360,-844789,490000,-560000,-840000 +1732006272853,1732006273271,10187,-478545,-846497,-980000,-840000,-280000 +1732006272955,1732006273391,7564,-478545,-847351,-210000,-560000,-490000 +1732006273057,1732006273451,11956,-480863,-847473,-350000,-630000,-490000 +1732006273159,1732006273572,9333,-479887,-846863,-350000,-700000,-420000 +1732006273260,1732006273662,12017,-478545,-847473,-420000,-700000,-490000 +1732006273362,1732006273783,12261,-479582,-845643,-280000,-630000,-630000 +1732006273464,1732006273871,11346,-479948,-847168,-350000,-630000,-560000 +1732006273566,1732006273962,11102,-481595,-846375,-210000,-630000,-770000 +1732006273668,1732006274083,16104,-483547,-840092,-630000,-1540000,-70000 +1732006273770,1732006274172,20130,-470554,-844362,-770000,-700000,-350000 +1732006273872,1732006274291,11834,-483974,-844118,-560000,-1190000,-420000 +1732006273973,1732006274383,11041,-476288,-843813,490000,-630000,-1050000 +1732006274075,1732006274472,16836,-483120,-845094,-700000,-1050000,-420000 +1732006274177,1732006274592,11712,-480436,-846558,-420000,-1050000,-210000 +1732006274279,1732006274682,12993,-482144,-844545,-490000,-910000,-420000 +1732006274381,1732006274803,15555,-478789,-842532,-910000,-1400000,210000 +1732006274483,1732006274892,17690,-472079,-843081,-490000,-630000,-420000 +1732006274584,1732006274983,13115,-484828,-843325,-630000,-1610000,140000 +1732006274686,1732006275102,12505,-475373,-844484,-140000,-910000,-490000 +1732006274788,1732006275192,12322,-481290,-846253,-490000,-980000,-280000 +1732006274890,1732006275311,8418,-479094,-847961,-350000,-1050000,-350000 +1732006274992,1732006275402,11529,-479155,-847168,-140000,-910000,-490000 +1732006275094,1732006275522,10187,-481046,-845765,-140000,-1050000,-420000 +1732006275196,1732006275612,9638,-478362,-846985,0,-980000,-560000 +1732006275297,1732006275702,11224,-481107,-845582,-140000,-980000,-560000 +1732006275399,1732006275822,9394,-481534,-846497,-350000,-910000,-280000 +1732006275501,1732006275911,10797,-481046,-845338,-350000,-770000,-420000 +1732006275603,1732006276032,10126,-481229,-845643,-490000,-910000,-350000 \ No newline at end of file diff --git a/jupyter/laufen.csv b/jupyter/laufen.csv new file mode 100644 index 0000000..500ff87 --- /dev/null +++ b/jupyter/laufen.csv @@ -0,0 +1,42 @@ +,sendTimeStamp,receivedTimeStamp,accelerationX,accelerationY,accelerationZ,rotationX,rotationY,rotationZ,timestamp +0,1731671981254,1731671982625,-563457,-535519,-337513,20230000,-6300000,37800000,2024-11-15 11:59:41.254 +1,1731671981356,1731671982744,-621773,-876814,-540582,2310000,-3920000,-34090000,2024-11-15 11:59:41.356 +2,1731671981458,1731671982835,-432002,-742004,-434259,-30590000,-9450000,-35770000,2024-11-15 11:59:41.458 +3,1731671981560,1731671982983,-665571,-587369,-542168,-8470000,-16240000,-21770000,2024-11-15 11:59:41.560 +4,1731671981662,1731671983045,-383324,-675209,-333670,11130000,-9380000,-48230000,2024-11-15 11:59:41.662 +5,1731671981763,1731671983134,-518561,-1146983,-588711,-33180000,-37520000,-54320000,2024-11-15 11:59:41.763 +6,1731671981865,1731671983254,-278648,-703086,-551928,-47390000,-90300000,2940000,2024-11-15 11:59:41.865 +7,1731671981967,1731671983344,-419619,-643184,-308660,-36120000,-58030000,-20160000,2024-11-15 11:59:41.967 +8,1731671982069,1731671983466,-390095,-546011,-418704,-48650000,-38360000,-30380000,2024-11-15 11:59:42.069 +9,1731671982171,1731671983552,-490074,-424743,-585539,-30380000,-21630000,-30030000,2024-11-15 11:59:42.171 +10,1731671982273,1731671983646,-304756,-1043771,-670939,-46760000,-59710000,-72730000,2024-11-15 11:59:42.273 +11,1731671982375,1731671983764,-295484,-760182,-478728,-102060000,-100800000,-69020000,2024-11-15 11:59:42.375 +12,1731671982476,1731671983854,-451949,-498309,-823805,-116200000,-127260000,-72660000,2024-11-15 11:59:42.476 +13,1731671982578,1731671983973,-439505,-481900,-567605,-51100000,-112210000,-125440000,2024-11-15 11:59:42.578 +14,1731671982680,1731671984064,-536739,-547109,-389058,-84700000,-52500000,-121170000,2024-11-15 11:59:42.680 +15,1731671982782,1731671984153,150609,-675575,-996557,-89040000,-49070000,-146160000,2024-11-15 11:59:42.782 +16,1731671982884,1731671984303,-18971,-664168,-807396,-33180000,-118440000,-131880000,2024-11-15 11:59:42.884 +17,1731671982986,1731671984423,-216245,-494100,-796294,-72450000,-87500000,-74480000,2024-11-15 11:59:42.986 +18,1731671983087,1731671984483,-425231,-161772,-805505,-20650000,-60900000,-73710000,2024-11-15 11:59:43.087 +19,1731671983189,1731671984572,-153232,-555466,-741272,73150000,6020000,-78190000,2024-11-15 11:59:43.189 +20,1731671983291,1731671984696,166286,-1124779,-653859,31290000,-63980000,-16170000,2024-11-15 11:59:43.291 +21,1731671983393,1731671984844,-353007,-811788,-636901,33950000,-125300000,44450000,2024-11-15 11:59:43.393 +22,1731671983495,1731671984875,-667279,-302255,-282186,35000000,-53830000,72940000,2024-11-15 11:59:43.495 +23,1731671983597,1731671984995,-198677,-1213839,-770247,-13370000,49280000,-90370000,2024-11-15 11:59:43.597 +24,1731671983698,1731671985114,-332145,-812581,-688751,-130410000,-78680000,-58450000,2024-11-15 11:59:43.698 +25,1731671983800,1731671985232,-616466,-449570,-757742,24780000,-59360000,-13090000,2024-11-15 11:59:43.800 +26,1731671983902,1731671985297,-350079,-1165832,94489,113540000,-220780000,64750000,2024-11-15 11:59:43.902 +27,1731671984004,1731671985443,-905545,-650687,-100101,-212660000,-103320000,12810000,2024-11-15 11:59:44.004 +28,1731671984106,1731671985565,-355569,-434076,-251320,-50470000,-77770000,-24850000,2024-11-15 11:59:44.106 +29,1731671984208,1731671985593,-575840,-855464,-257481,-74620000,-93030000,-117530000,2024-11-15 11:59:44.208 +30,1731671984310,1731671985714,-523990,-1002108,-307257,-132650000,-54600000,-86520000,2024-11-15 11:59:44.310 +31,1731671984411,1731671985803,-378444,-439627,-415410,-100450000,5250000,-53340000,2024-11-15 11:59:44.411 +32,1731671984513,1731671985924,-106567,-755668,-673806,-70630000,18270000,-84560000,2024-11-15 11:59:44.513 +33,1731671984615,1731671986014,-53497,-711138,-523319,-20720000,53970000,-56000000,2024-11-15 11:59:44.615 +34,1731671984717,1731671986105,-56303,-764330,-830820,9170000,12810000,-59150000,2024-11-15 11:59:44.717 +35,1731671984819,1731671986283,-221735,996496,53070,265300000,-208740000,126910000,2024-11-15 11:59:44.819 +36,1731671984921,1731671986347,-133712,-1799195,-504775,-37800000,2380000,14070000,2024-11-15 11:59:44.921 +37,1731671985022,1731671986402,-326655,-635010,-593286,-65520000,50610000,-5880000,2024-11-15 11:59:45.022 +38,1731671985124,1731671986521,405528,-1757288,898713,206570000,85050000,-82390000,2024-11-15 11:59:45.124 +39,1731671985226,1731671986613,-459513,-70394,-522953,-92610000,-55370000,131250000,2024-11-15 11:59:45.226 +40,1731671985328,1731671986734,-995886,-666120,-247477,29190000,-14280000,-15610000,2024-11-15 11:59:45.328 diff --git a/jupyter/timeConvert.ipynb b/jupyter/timeConvert.ipynb new file mode 100644 index 0000000..7805d64 --- /dev/null +++ b/jupyter/timeConvert.ipynb @@ -0,0 +1,603 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"./daten/laufen _72364c32-b839-4ad7-9ede-951a00a25b95.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sendTimeStampreceivedTimeStampaccelerationXaccelerationYaccelerationZrotationXrotationYrotationZ
017316719812541731671982625-563457-535519-33751320230000-630000037800000
117316719813561731671982744-621773-876814-5405822310000-3920000-34090000
217316719814581731671982835-432002-742004-434259-30590000-9450000-35770000
317316719815601731671982983-665571-587369-542168-8470000-16240000-21770000
417316719816621731671983045-383324-675209-33367011130000-9380000-48230000
\n", + "
" + ], + "text/plain": [ + " sendTimeStamp receivedTimeStamp accelerationX accelerationY \\\n", + "0 1731671981254 1731671982625 -563457 -535519 \n", + "1 1731671981356 1731671982744 -621773 -876814 \n", + "2 1731671981458 1731671982835 -432002 -742004 \n", + "3 1731671981560 1731671982983 -665571 -587369 \n", + "4 1731671981662 1731671983045 -383324 -675209 \n", + "\n", + " accelerationZ rotationX rotationY rotationZ \n", + "0 -337513 20230000 -6300000 37800000 \n", + "1 -540582 2310000 -3920000 -34090000 \n", + "2 -434259 -30590000 -9450000 -35770000 \n", + "3 -542168 -8470000 -16240000 -21770000 \n", + "4 -333670 11130000 -9380000 -48230000 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "test = df[\"sendTimeStamp\"].iloc[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(1731671981254)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import pytz\n", + "from datetime import datetime" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Timestamp('1970-01-01 00:28:51.671981254')" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.to_datetime(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'1970-01-01T00:28:51.671981254'" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# tz = pytz.timezone('Europe/Berlin')\n", + "pd.to_datetime(test).isoformat()\n", + "# print(datetime.fromtimestamp(test, tz).isoformat())" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1731671981254\n", + "1731671981356\n", + "1731671981458\n", + "1731671981560\n", + "1731671981662\n", + "1731671981763\n", + "1731671981865\n", + "1731671981967\n", + "1731671982069\n", + "1731671982171\n", + "1731671982273\n", + "1731671982375\n", + "1731671982476\n", + "1731671982578\n", + "1731671982680\n", + "1731671982782\n", + "1731671982884\n", + "1731671982986\n", + "1731671983087\n", + "1731671983189\n", + "1731671983291\n", + "1731671983393\n", + "1731671983495\n", + "1731671983597\n", + "1731671983698\n", + "1731671983800\n", + "1731671983902\n", + "1731671984004\n", + "1731671984106\n", + "1731671984208\n", + "1731671984310\n", + "1731671984411\n", + "1731671984513\n", + "1731671984615\n", + "1731671984717\n", + "1731671984819\n", + "1731671984921\n", + "1731671985022\n", + "1731671985124\n", + "1731671985226\n", + "1731671985328\n" + ] + } + ], + "source": [ + "sendTimes = df['sendTimeStamp']\n", + "\n", + "for sendTime in sendTimes:\n", + " print(sendTime)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df['sendTimeStamp'] = df['sendTimeStamp'].to_timestamp()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "timestamps = pd.to_datetime(df['sendTimeStamp'], unit='ms')" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "df['timestamp'] = timestamps" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sendTimeStampreceivedTimeStampaccelerationXaccelerationYaccelerationZrotationXrotationYrotationZtimestamp
017316719812541731671982625-563457-535519-33751320230000-6300000378000002024-11-15 11:59:41.254
117316719813561731671982744-621773-876814-5405822310000-3920000-340900002024-11-15 11:59:41.356
217316719814581731671982835-432002-742004-434259-30590000-9450000-357700002024-11-15 11:59:41.458
317316719815601731671982983-665571-587369-542168-8470000-16240000-217700002024-11-15 11:59:41.560
417316719816621731671983045-383324-675209-33367011130000-9380000-482300002024-11-15 11:59:41.662
\n", + "
" + ], + "text/plain": [ + " sendTimeStamp receivedTimeStamp accelerationX accelerationY \\\n", + "0 1731671981254 1731671982625 -563457 -535519 \n", + "1 1731671981356 1731671982744 -621773 -876814 \n", + "2 1731671981458 1731671982835 -432002 -742004 \n", + "3 1731671981560 1731671982983 -665571 -587369 \n", + "4 1731671981662 1731671983045 -383324 -675209 \n", + "\n", + " accelerationZ rotationX rotationY rotationZ timestamp \n", + "0 -337513 20230000 -6300000 37800000 2024-11-15 11:59:41.254 \n", + "1 -540582 2310000 -3920000 -34090000 2024-11-15 11:59:41.356 \n", + "2 -434259 -30590000 -9450000 -35770000 2024-11-15 11:59:41.458 \n", + "3 -542168 -8470000 -16240000 -21770000 2024-11-15 11:59:41.560 \n", + "4 -333670 11130000 -9380000 -48230000 2024-11-15 11:59:41.662 " + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "df.to_csv(\"laufen.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 1970-01-01 00:28:51.671981254\n", + "1 1970-01-01 00:28:51.671981356\n", + "2 1970-01-01 00:28:51.671981458\n", + "3 1970-01-01 00:28:51.671981560\n", + "4 1970-01-01 00:28:51.671981662\n", + "5 1970-01-01 00:28:51.671981763\n", + "6 1970-01-01 00:28:51.671981865\n", + "7 1970-01-01 00:28:51.671981967\n", + "8 1970-01-01 00:28:51.671982069\n", + "9 1970-01-01 00:28:51.671982171\n", + "10 1970-01-01 00:28:51.671982273\n", + "11 1970-01-01 00:28:51.671982375\n", + "12 1970-01-01 00:28:51.671982476\n", + "13 1970-01-01 00:28:51.671982578\n", + "14 1970-01-01 00:28:51.671982680\n", + "15 1970-01-01 00:28:51.671982782\n", + "16 1970-01-01 00:28:51.671982884\n", + "17 1970-01-01 00:28:51.671982986\n", + "18 1970-01-01 00:28:51.671983087\n", + "19 1970-01-01 00:28:51.671983189\n", + "20 1970-01-01 00:28:51.671983291\n", + "21 1970-01-01 00:28:51.671983393\n", + "22 1970-01-01 00:28:51.671983495\n", + "23 1970-01-01 00:28:51.671983597\n", + "24 1970-01-01 00:28:51.671983698\n", + "25 1970-01-01 00:28:51.671983800\n", + "26 1970-01-01 00:28:51.671983902\n", + "27 1970-01-01 00:28:51.671984004\n", + "28 1970-01-01 00:28:51.671984106\n", + "29 1970-01-01 00:28:51.671984208\n", + "30 1970-01-01 00:28:51.671984310\n", + "31 1970-01-01 00:28:51.671984411\n", + "32 1970-01-01 00:28:51.671984513\n", + "33 1970-01-01 00:28:51.671984615\n", + "34 1970-01-01 00:28:51.671984717\n", + "35 1970-01-01 00:28:51.671984819\n", + "36 1970-01-01 00:28:51.671984921\n", + "37 1970-01-01 00:28:51.671985022\n", + "38 1970-01-01 00:28:51.671985124\n", + "39 1970-01-01 00:28:51.671985226\n", + "40 1970-01-01 00:28:51.671985328\n", + "Name: sendTimeStamp, dtype: datetime64[ns]" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.to_datetime(df['sendTimeStamp'])" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(1731671981254)" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-11-15T11:59:41.254000+00:00\n" + ] + } + ], + "source": [ + "import datetime\n", + "\n", + "# Konvertierung in Sekunden\n", + "timestamp_s = test / 1000.0\n", + "\n", + "# Konvertierung in ein datetime-Objekt\n", + "date_time = datetime.datetime.fromtimestamp(timestamp_s, tz=datetime.timezone.utc)\n", + "\n", + "# Ausgabe im ISO 8601-Format\n", + "iso_format = date_time.isoformat()\n", + "print(iso_format)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'2024-11-15T11:59:41.254000'" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.to_datetime(test, unit='ms').isoformat()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "dataMining", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/l10n.yaml b/l10n.yaml new file mode 100644 index 0000000..6f72a55 --- /dev/null +++ b/l10n.yaml @@ -0,0 +1,4 @@ +arb-dir: lib/l10n/arb +template-arb-file: app_en.arb +output-localization-file: app_localizations.dart +nullable-getter: false diff --git a/lib/app/app.dart b/lib/app/app.dart new file mode 100644 index 0000000..ae71c5c --- /dev/null +++ b/lib/app/app.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:xiao_pet_tracker/app/view/app.dart'; +import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart'; + +class App extends StatelessWidget { + const App({super.key}); + + @override + Widget build(BuildContext context) { + return MultiBlocProvider( + providers: [ + BlocProvider( + create: (BuildContext context) => XiaoConnectorCubit()..init(), + ), + ], + child: const AppView(), + ); + } +} diff --git a/lib/app/view/app.dart b/lib/app/view/app.dart new file mode 100644 index 0000000..7ec55e6 --- /dev/null +++ b/lib/app/view/app.dart @@ -0,0 +1,106 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_blue_plus_windows/flutter_blue_plus_windows.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:forui/forui.dart'; +import 'package:xiao_pet_tracker/app_router/app_router.dart'; +import 'package:xiao_pet_tracker/bootstrap.dart'; +import 'package:xiao_pet_tracker/l10n/l10n.dart'; + +class AppView extends StatefulWidget { + const AppView({super.key}); + + @override + State createState() => _AppState(); +} + +class _AppState extends State { + BluetoothAdapterState _adapterState = BluetoothAdapterState.unknown; + + late StreamSubscription _adapterStateStateSubscription; + + @override + void initState() { + super.initState(); + _adapterStateStateSubscription = + FlutterBluePlus.adapterState.listen((state) { + _adapterState = state; + if (mounted) { + setState(() {}); + } + }); + } + + @override + void dispose() { + _adapterStateStateSubscription.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + // Widget screen = _adapterState == BluetoothAdapterState.on + // ? const HomePage() + // : BluetoothOffScreen( + // adapterState: _adapterState, + // ); + + // only allow portrait orientations + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + ]); + + return MaterialApp.router( + title: 'Xiao Pet Tracker', + localizationsDelegates: const [ + AppLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + // localizationsDelegates: AppLocalizations.localizationsDelegates, + supportedLocales: AppLocalizations.supportedLocales, + routerConfig: getIt().config(), + theme: ThemeData(), + darkTheme: ThemeData.dark(), + builder: (context, child) => FTheme( + data: MediaQuery.of(context).platformBrightness == Brightness.light + ? FThemes.zinc.light + : FThemes.zinc.dark, + child: child!, + ), + ); + } +} + +// This observer listens for Bluetooth Off and dismisses the DeviceScreen +class BluetoothAdapterStateObserver extends NavigatorObserver { + StreamSubscription? _adapterStateSubscription; + + @override + void didPush(Route route, Route? previousRoute) { + super.didPush(route, previousRoute); + if (route.settings.name == '/DeviceScreen') { + // Start listening to Bluetooth state changes when a new route is pushed + _adapterStateSubscription ??= FlutterBluePlus.adapterState.listen( + (state) { + if (state != BluetoothAdapterState.on) { + // Pop the current route if Bluetooth is off + navigator?.pop(); + } + }, + ); + } + } + + @override + void didPop(Route route, Route? previousRoute) { + super.didPop(route, previousRoute); + // Cancel the subscription when the route is popped + _adapterStateSubscription?.cancel(); + _adapterStateSubscription = null; + } +} diff --git a/lib/app_router/app_router.dart b/lib/app_router/app_router.dart new file mode 100644 index 0000000..8e3a70d --- /dev/null +++ b/lib/app_router/app_router.dart @@ -0,0 +1,89 @@ +import 'package:auto_route/auto_route.dart'; +import 'package:flutter/material.dart'; +import 'package:forui/forui.dart'; +import 'package:xiao_pet_tracker/app_router/app_router.gr.dart'; + +@AutoRouterConfig() +class AppRouter extends RootStackRouter { + @override + RouteType get defaultRouteType => const RouteType.material(); + + @override + List get routes => [ + AutoRoute( + page: MainRoute.page, + path: '/', + children: [ + AutoRoute( + page: XiaoConnectorRoute.page, + ), + AutoRoute( + page: RecordingsRoute.page, + children: [], + ), + ], + ), + AutoRoute( + page: RecordingsDetailsRoute.page, + ), + ]; +} + +@RoutePage() +class MainPage extends StatelessWidget { + const MainPage({super.key}); + + @override + Widget build(BuildContext context) { + return AutoTabsScaffold( + // transitionBuilder: (context, child, animation) => AnimatedBuilder( + // animation: animation, + // child: child, + // // builder: (BuildContext context, Widget? child) { + // // const begin = Offset(0.0, 0.1); + // // const end = Offset.zero; + // // final tween = Tween(begin: begin, end: end); + // // final offsetAnimation = animation.drive(tween); + // // return SlideTransition( + // // position: offsetAnimation, + // // child: Transform.scale( + // // alignment: Alignment.bottomCenter, + // // scale: animation.value, + // // child: ClipPath( + // // clipper: CircularRevealClipper( + // // fraction: animation.value, + // // centerAlignment: Alignment.bottomCenter, + // // // centerOffset: centerOffset, + // // // minRadius: minRadius, + // // // maxRadius: maxRadius, + // // ), + // // child: child, + // // ), + // // ), + // // ); + // // }, + // ), + animationDuration: const Duration(milliseconds: 650), + routes: const [ + XiaoConnectorRoute(), + RecordingsRoute(), + ], + bottomNavigationBuilder: (context, tabsRouter) { + return FBottomNavigationBar( + index: tabsRouter.activeIndex, + onChange: tabsRouter.setActiveIndex, + children: [ + FBottomNavigationBarItem( + label: const Text('Xiao Connector'), + icon: FIcon(FAssets.icons.microchip), + ), + FBottomNavigationBarItem( + label: const Text('Recordings'), + icon: FIcon(FAssets.icons.disc3), + ), + ], + ); + }, + ); + } +} diff --git a/lib/app_router/app_router.gr.dart b/lib/app_router/app_router.gr.dart new file mode 100644 index 0000000..6991f16 --- /dev/null +++ b/lib/app_router/app_router.gr.dart @@ -0,0 +1,149 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +// ************************************************************************** +// AutoRouterGenerator +// ************************************************************************** + +// ignore_for_file: type=lint +// coverage:ignore-file + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:auto_route/auto_route.dart' as _i6; +import 'package:flutter/material.dart' as _i7; +import 'package:xiao_pet_tracker/app_router/app_router.dart' as _i1; +import 'package:xiao_pet_tracker/recordings/view/recordings_details.dart' + as _i2; +import 'package:xiao_pet_tracker/recordings/view/recordings_page.dart' as _i3; +import 'package:xiao_pet_tracker/xiao_connector/view/xiao_connector_page.dart' + as _i4; +import 'package:xiao_pet_tracker/xiao_connector/view/xiao_data_page.dart' + as _i5; + +/// generated route for +/// [_i1.MainPage] +class MainRoute extends _i6.PageRouteInfo { + const MainRoute({List<_i6.PageRouteInfo>? children}) + : super( + MainRoute.name, + initialChildren: children, + ); + + static const String name = 'MainRoute'; + + static _i6.PageInfo page = _i6.PageInfo( + name, + builder: (data) { + return const _i1.MainPage(); + }, + ); +} + +/// generated route for +/// [_i2.RecordingsDetailsPage] +class RecordingsDetailsRoute + extends _i6.PageRouteInfo { + RecordingsDetailsRoute({ + required String uuid, + required String type, + _i7.Key? key, + List<_i6.PageRouteInfo>? children, + }) : super( + RecordingsDetailsRoute.name, + args: RecordingsDetailsRouteArgs( + uuid: uuid, + type: type, + key: key, + ), + initialChildren: children, + ); + + static const String name = 'RecordingsDetailsRoute'; + + static _i6.PageInfo page = _i6.PageInfo( + name, + builder: (data) { + final args = data.argsAs(); + return _i2.RecordingsDetailsPage( + uuid: args.uuid, + type: args.type, + key: args.key, + ); + }, + ); +} + +class RecordingsDetailsRouteArgs { + const RecordingsDetailsRouteArgs({ + required this.uuid, + required this.type, + this.key, + }); + + final String uuid; + + final String type; + + final _i7.Key? key; + + @override + String toString() { + return 'RecordingsDetailsRouteArgs{uuid: $uuid, type: $type, key: $key}'; + } +} + +/// generated route for +/// [_i3.RecordingsPage] +class RecordingsRoute extends _i6.PageRouteInfo { + const RecordingsRoute({List<_i6.PageRouteInfo>? children}) + : super( + RecordingsRoute.name, + initialChildren: children, + ); + + static const String name = 'RecordingsRoute'; + + static _i6.PageInfo page = _i6.PageInfo( + name, + builder: (data) { + return const _i3.RecordingsPage(); + }, + ); +} + +/// generated route for +/// [_i4.XiaoConnectorPage] +class XiaoConnectorRoute extends _i6.PageRouteInfo { + const XiaoConnectorRoute({List<_i6.PageRouteInfo>? children}) + : super( + XiaoConnectorRoute.name, + initialChildren: children, + ); + + static const String name = 'XiaoConnectorRoute'; + + static _i6.PageInfo page = _i6.PageInfo( + name, + builder: (data) { + return const _i4.XiaoConnectorPage(); + }, + ); +} + +/// generated route for +/// [_i5.XiaoDataPage] +class XiaoDataRoute extends _i6.PageRouteInfo { + const XiaoDataRoute({List<_i6.PageRouteInfo>? children}) + : super( + XiaoDataRoute.name, + initialChildren: children, + ); + + static const String name = 'XiaoDataRoute'; + + static _i6.PageInfo page = _i6.PageInfo( + name, + builder: (data) { + return const _i5.XiaoDataPage(); + }, + ); +} diff --git a/lib/bootstrap.dart b/lib/bootstrap.dart new file mode 100644 index 0000000..5591fc2 --- /dev/null +++ b/lib/bootstrap.dart @@ -0,0 +1,44 @@ +import 'dart:async'; +import 'dart:developer'; + +import 'package:bloc/bloc.dart'; +import 'package:flutter/widgets.dart'; +import 'package:get_it/get_it.dart'; +import 'package:xiao_pet_tracker/app_router/app_router.dart'; +import 'package:xiao_pet_tracker/objectbox.dart'; + +final getIt = GetIt.instance; + +class AppBlocObserver extends BlocObserver { + const AppBlocObserver(); + + @override + void onChange(BlocBase bloc, Change change) { + super.onChange(bloc, change); + log('onChange(${bloc.runtimeType}, $change)'); + } + + @override + void onError(BlocBase bloc, Object error, StackTrace stackTrace) { + log('onError(${bloc.runtimeType}, $error, $stackTrace)'); + super.onError(bloc, error, stackTrace); + } +} + +Future bootstrap(FutureOr Function() builder) async { + FlutterError.onError = (details) { + log(details.exceptionAsString(), stackTrace: details.stack); + }; + + Bloc.observer = const AppBlocObserver(); + + // Add cross-flavor configuration here + + WidgetsFlutterBinding.ensureInitialized(); + + final AppRouter appRouter = getIt.registerSingleton(AppRouter()); + + final ObjectBox objectBox = getIt.registerSingleton(await ObjectBox.create()); + + runApp(await builder()); +} diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb new file mode 100644 index 0000000..a5484a0 --- /dev/null +++ b/lib/l10n/arb/app_en.arb @@ -0,0 +1,7 @@ +{ + "@@locale": "en", + "counterAppBarTitle": "Counter", + "@counterAppBarTitle": { + "description": "Text shown in the AppBar of the Counter Page" + } +} \ No newline at end of file diff --git a/lib/l10n/arb/app_es.arb b/lib/l10n/arb/app_es.arb new file mode 100644 index 0000000..f1405f0 --- /dev/null +++ b/lib/l10n/arb/app_es.arb @@ -0,0 +1,7 @@ +{ + "@@locale": "es", + "counterAppBarTitle": "Contador", + "@counterAppBarTitle": { + "description": "Texto mostrado en la AppBar de la pΓ‘gina del contador" + } +} \ No newline at end of file diff --git a/lib/l10n/l10n.dart b/lib/l10n/l10n.dart new file mode 100644 index 0000000..17c891b --- /dev/null +++ b/lib/l10n/l10n.dart @@ -0,0 +1,8 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +export 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +extension AppLocalizationsX on BuildContext { + AppLocalizations get l10n => AppLocalizations.of(this); +} diff --git a/lib/main_development.dart b/lib/main_development.dart new file mode 100644 index 0000000..496c593 --- /dev/null +++ b/lib/main_development.dart @@ -0,0 +1,8 @@ +import 'package:flutter_blue_plus_windows/flutter_blue_plus_windows.dart'; +import 'package:xiao_pet_tracker/app/app.dart'; +import 'package:xiao_pet_tracker/bootstrap.dart'; + +void main() { + FlutterBluePlus.setLogLevel(LogLevel.verbose); + bootstrap(() => const App()); +} diff --git a/lib/main_production.dart b/lib/main_production.dart new file mode 100644 index 0000000..17be65c --- /dev/null +++ b/lib/main_production.dart @@ -0,0 +1,6 @@ +import 'package:xiao_pet_tracker/app/app.dart'; +import 'package:xiao_pet_tracker/bootstrap.dart'; + +void main() { + bootstrap(() => const App()); +} diff --git a/lib/main_staging.dart b/lib/main_staging.dart new file mode 100644 index 0000000..17be65c --- /dev/null +++ b/lib/main_staging.dart @@ -0,0 +1,6 @@ +import 'package:xiao_pet_tracker/app/app.dart'; +import 'package:xiao_pet_tracker/bootstrap.dart'; + +void main() { + bootstrap(() => const App()); +} diff --git a/lib/objectbox-model.json b/lib/objectbox-model.json new file mode 100644 index 0000000..3f23f56 --- /dev/null +++ b/lib/objectbox-model.json @@ -0,0 +1,129 @@ +{ + "_note1": "KEEP THIS FILE! Check it into a version control system (VCS) like git.", + "_note2": "ObjectBox manages crucial IDs for your object model. See docs for details.", + "_note3": "If you have VCS merge conflicts, you must resolve them according to ObjectBox docs.", + "entities": [ + { + "id": "1:8883777039160106085", + "lastPropertyId": "28:5600095333294587898", + "name": "CapturePoint", + "properties": [ + { + "id": "1:7031141970833098443", + "name": "id", + "type": 6, + "flags": 1 + }, + { + "id": "2:9089711773119462722", + "name": "type", + "type": 9 + }, + { + "id": "12:8018734828546727200", + "name": "uuid", + "type": 9 + }, + { + "id": "21:5571567596004635004", + "name": "rotationX", + "type": 6 + }, + { + "id": "22:128950109858162458", + "name": "rotationY", + "type": 6 + }, + { + "id": "23:572745053585623035", + "name": "rotationZ", + "type": 6 + }, + { + "id": "24:174662964807733060", + "name": "accelerationX", + "type": 6 + }, + { + "id": "25:2607558191101966289", + "name": "accelerationY", + "type": 6 + }, + { + "id": "26:8078744267935466967", + "name": "accelerationZ", + "type": 6 + }, + { + "id": "27:2235290443011784871", + "name": "millisecondsSinceEpochReceived", + "type": 6 + }, + { + "id": "28:5600095333294587898", + "name": "millisecondsSinceEpochSend", + "type": 6 + } + ], + "relations": [] + }, + { + "id": "2:1642885530071590702", + "lastPropertyId": "4:5477306218303066701", + "name": "CaptureBox", + "properties": [ + { + "id": "1:6772033063452157797", + "name": "id", + "type": 6, + "flags": 1 + }, + { + "id": "2:6118609604439630810", + "name": "type", + "type": 9 + }, + { + "id": "3:4134744801341910087", + "name": "uuid", + "type": 9 + }, + { + "id": "4:5477306218303066701", + "name": "startTime", + "type": 10 + } + ], + "relations": [] + } + ], + "lastEntityId": "2:1642885530071590702", + "lastIndexId": "0:0", + "lastRelationId": "0:0", + "lastSequenceId": "0:0", + "modelVersion": 5, + "modelVersionParserMinimum": 5, + "retiredEntityUids": [], + "retiredIndexUids": [], + "retiredPropertyUids": [ + 5928562934131159642, + 5591187076567204697, + 595530508372810754, + 376663189826498742, + 2249450669900993772, + 3338488084769147616, + 6118432389289072923, + 652072338599943564, + 4974899424217069697, + 6174239378189558256, + 890878501153569237, + 1635504337236403097, + 3739937748546759727, + 1440167199258268261, + 90858017595682556, + 8864904344725714676, + 6079624305294726236 + ], + "retiredRelationUids": [], + "version": 1 +} \ No newline at end of file diff --git a/lib/objectbox.dart b/lib/objectbox.dart new file mode 100644 index 0000000..55daafa --- /dev/null +++ b/lib/objectbox.dart @@ -0,0 +1,18 @@ +import 'package:path/path.dart' as p; +import 'package:path_provider/path_provider.dart'; +import 'objectbox.g.dart'; + +class ObjectBox { + late final Store store; + + /// Initialization + ObjectBox._create(this.store); + + /// Create an instance of ObjectBox to use throughout the app. + static Future create() async { + final docsDir = await getApplicationDocumentsDirectory(); + final store = + await openStore(directory: p.join(docsDir.path, 'obx-pet-tracker-2')); + return ObjectBox._create(store); + } +} diff --git a/lib/objectbox.g.dart b/lib/objectbox.g.dart new file mode 100644 index 0000000..340432f --- /dev/null +++ b/lib/objectbox.g.dart @@ -0,0 +1,352 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// This code was generated by ObjectBox. To update it run the generator again +// with `dart run build_runner build`. +// See also https://docs.objectbox.io/getting-started#generate-objectbox-code + +// ignore_for_file: camel_case_types, depend_on_referenced_packages +// coverage:ignore-file + +import 'dart:typed_data'; + +import 'package:flat_buffers/flat_buffers.dart' as fb; +import 'package:objectbox/internal.dart' + as obx_int; // generated code can access "internal" functionality +import 'package:objectbox/objectbox.dart' as obx; +import 'package:objectbox_flutter_libs/objectbox_flutter_libs.dart'; + +import 'xiao_connector/models/capture_box.dart'; +import 'xiao_connector/models/capture_point.dart'; + +export 'package:objectbox/objectbox.dart'; // so that callers only have to import this file + +final _entities = [ + obx_int.ModelEntity( + id: const obx_int.IdUid(1, 8883777039160106085), + name: 'CapturePoint', + lastPropertyId: const obx_int.IdUid(28, 5600095333294587898), + flags: 0, + properties: [ + obx_int.ModelProperty( + id: const obx_int.IdUid(1, 7031141970833098443), + name: 'id', + type: 6, + flags: 1), + obx_int.ModelProperty( + id: const obx_int.IdUid(2, 9089711773119462722), + name: 'type', + type: 9, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(12, 8018734828546727200), + name: 'uuid', + type: 9, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(21, 5571567596004635004), + name: 'rotationX', + type: 6, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(22, 128950109858162458), + name: 'rotationY', + type: 6, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(23, 572745053585623035), + name: 'rotationZ', + type: 6, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(24, 174662964807733060), + name: 'accelerationX', + type: 6, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(25, 2607558191101966289), + name: 'accelerationY', + type: 6, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(26, 8078744267935466967), + name: 'accelerationZ', + type: 6, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(27, 2235290443011784871), + name: 'millisecondsSinceEpochReceived', + type: 6, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(28, 5600095333294587898), + name: 'millisecondsSinceEpochSend', + type: 6, + flags: 0) + ], + relations: [], + backlinks: []), + obx_int.ModelEntity( + id: const obx_int.IdUid(2, 1642885530071590702), + name: 'CaptureBox', + lastPropertyId: const obx_int.IdUid(4, 5477306218303066701), + flags: 0, + properties: [ + obx_int.ModelProperty( + id: const obx_int.IdUid(1, 6772033063452157797), + name: 'id', + type: 6, + flags: 1), + obx_int.ModelProperty( + id: const obx_int.IdUid(2, 6118609604439630810), + name: 'type', + type: 9, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(3, 4134744801341910087), + name: 'uuid', + type: 9, + flags: 0), + obx_int.ModelProperty( + id: const obx_int.IdUid(4, 5477306218303066701), + name: 'startTime', + type: 10, + flags: 0) + ], + relations: [], + backlinks: []) +]; + +/// Shortcut for [obx.Store.new] that passes [getObjectBoxModel] and for Flutter +/// apps by default a [directory] using `defaultStoreDirectory()` from the +/// ObjectBox Flutter library. +/// +/// Note: for desktop apps it is recommended to specify a unique [directory]. +/// +/// See [obx.Store.new] for an explanation of all parameters. +/// +/// For Flutter apps, also calls `loadObjectBoxLibraryAndroidCompat()` from +/// the ObjectBox Flutter library to fix loading the native ObjectBox library +/// on Android 6 and older. +Future openStore( + {String? directory, + int? maxDBSizeInKB, + int? maxDataSizeInKB, + int? fileMode, + int? maxReaders, + bool queriesCaseSensitiveDefault = true, + String? macosApplicationGroup}) async { + await loadObjectBoxLibraryAndroidCompat(); + return obx.Store(getObjectBoxModel(), + directory: directory ?? (await defaultStoreDirectory()).path, + maxDBSizeInKB: maxDBSizeInKB, + maxDataSizeInKB: maxDataSizeInKB, + fileMode: fileMode, + maxReaders: maxReaders, + queriesCaseSensitiveDefault: queriesCaseSensitiveDefault, + macosApplicationGroup: macosApplicationGroup); +} + +/// Returns the ObjectBox model definition for this project for use with +/// [obx.Store.new]. +obx_int.ModelDefinition getObjectBoxModel() { + final model = obx_int.ModelInfo( + entities: _entities, + lastEntityId: const obx_int.IdUid(2, 1642885530071590702), + lastIndexId: const obx_int.IdUid(0, 0), + lastRelationId: const obx_int.IdUid(0, 0), + lastSequenceId: const obx_int.IdUid(0, 0), + retiredEntityUids: const [], + retiredIndexUids: const [], + retiredPropertyUids: const [ + 5928562934131159642, + 5591187076567204697, + 595530508372810754, + 376663189826498742, + 2249450669900993772, + 3338488084769147616, + 6118432389289072923, + 652072338599943564, + 4974899424217069697, + 6174239378189558256, + 890878501153569237, + 1635504337236403097, + 3739937748546759727, + 1440167199258268261, + 90858017595682556, + 8864904344725714676, + 6079624305294726236 + ], + retiredRelationUids: const [], + modelVersion: 5, + modelVersionParserMinimum: 5, + version: 1); + + final bindings = { + CapturePoint: obx_int.EntityDefinition( + model: _entities[0], + toOneRelations: (CapturePoint object) => [], + toManyRelations: (CapturePoint object) => {}, + getId: (CapturePoint object) => object.id, + setId: (CapturePoint object, int id) { + object.id = id; + }, + objectToFB: (CapturePoint object, fb.Builder fbb) { + final typeOffset = fbb.writeString(object.type); + final uuidOffset = fbb.writeString(object.uuid); + fbb.startTable(29); + fbb.addInt64(0, object.id); + fbb.addOffset(1, typeOffset); + fbb.addOffset(11, uuidOffset); + fbb.addInt64(20, object.rotationX); + fbb.addInt64(21, object.rotationY); + fbb.addInt64(22, object.rotationZ); + fbb.addInt64(23, object.accelerationX); + fbb.addInt64(24, object.accelerationY); + fbb.addInt64(25, object.accelerationZ); + fbb.addInt64(26, object.millisecondsSinceEpochReceived); + fbb.addInt64(27, object.millisecondsSinceEpochSend); + fbb.finish(fbb.endTable()); + return object.id; + }, + objectFromFB: (obx.Store store, ByteData fbData) { + final buffer = fb.BufferContext(fbData); + final rootOffset = buffer.derefObject(0); + final typeParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 6, ''); + final uuidParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 26, ''); + final rotationXParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 44, 0); + final rotationYParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 46, 0); + final rotationZParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 48, 0); + final accelerationXParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 50, 0); + final accelerationYParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 52, 0); + final accelerationZParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 54, 0); + final millisecondsSinceEpochReceivedParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 56, 0); + final millisecondsSinceEpochSendParam = + const fb.Int64Reader().vTableGet(buffer, rootOffset, 58, 0); + final object = CapturePoint( + type: typeParam, + uuid: uuidParam, + rotationX: rotationXParam, + rotationY: rotationYParam, + rotationZ: rotationZParam, + accelerationX: accelerationXParam, + accelerationY: accelerationYParam, + accelerationZ: accelerationZParam, + millisecondsSinceEpochReceived: + millisecondsSinceEpochReceivedParam, + millisecondsSinceEpochSend: millisecondsSinceEpochSendParam) + ..id = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0); + + return object; + }), + CaptureBox: obx_int.EntityDefinition( + model: _entities[1], + toOneRelations: (CaptureBox object) => [], + toManyRelations: (CaptureBox object) => {}, + getId: (CaptureBox object) => object.id, + setId: (CaptureBox object, int id) { + object.id = id; + }, + objectToFB: (CaptureBox object, fb.Builder fbb) { + final typeOffset = fbb.writeString(object.type); + final uuidOffset = fbb.writeString(object.uuid); + fbb.startTable(5); + fbb.addInt64(0, object.id); + fbb.addOffset(1, typeOffset); + fbb.addOffset(2, uuidOffset); + fbb.addInt64(3, object.startTime.millisecondsSinceEpoch); + fbb.finish(fbb.endTable()); + return object.id; + }, + objectFromFB: (obx.Store store, ByteData fbData) { + final buffer = fb.BufferContext(fbData); + final rootOffset = buffer.derefObject(0); + final typeParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 6, ''); + final uuidParam = const fb.StringReader(asciiOptimization: true) + .vTableGet(buffer, rootOffset, 8, ''); + final startTimeParam = DateTime.fromMillisecondsSinceEpoch( + const fb.Int64Reader().vTableGet(buffer, rootOffset, 10, 0)); + final object = CaptureBox( + type: typeParam, uuid: uuidParam, startTime: startTimeParam) + ..id = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0); + + return object; + }) + }; + + return obx_int.ModelDefinition(model, bindings); +} + +/// [CapturePoint] entity fields to define ObjectBox queries. +class CapturePoint_ { + /// See [CapturePoint.id]. + static final id = + obx.QueryIntegerProperty(_entities[0].properties[0]); + + /// See [CapturePoint.type]. + static final type = + obx.QueryStringProperty(_entities[0].properties[1]); + + /// See [CapturePoint.uuid]. + static final uuid = + obx.QueryStringProperty(_entities[0].properties[2]); + + /// See [CapturePoint.rotationX]. + static final rotationX = + obx.QueryIntegerProperty(_entities[0].properties[3]); + + /// See [CapturePoint.rotationY]. + static final rotationY = + obx.QueryIntegerProperty(_entities[0].properties[4]); + + /// See [CapturePoint.rotationZ]. + static final rotationZ = + obx.QueryIntegerProperty(_entities[0].properties[5]); + + /// See [CapturePoint.accelerationX]. + static final accelerationX = + obx.QueryIntegerProperty(_entities[0].properties[6]); + + /// See [CapturePoint.accelerationY]. + static final accelerationY = + obx.QueryIntegerProperty(_entities[0].properties[7]); + + /// See [CapturePoint.accelerationZ]. + static final accelerationZ = + obx.QueryIntegerProperty(_entities[0].properties[8]); + + /// See [CapturePoint.millisecondsSinceEpochReceived]. + static final millisecondsSinceEpochReceived = + obx.QueryIntegerProperty(_entities[0].properties[9]); + + /// See [CapturePoint.millisecondsSinceEpochSend]. + static final millisecondsSinceEpochSend = + obx.QueryIntegerProperty(_entities[0].properties[10]); +} + +/// [CaptureBox] entity fields to define ObjectBox queries. +class CaptureBox_ { + /// See [CaptureBox.id]. + static final id = + obx.QueryIntegerProperty(_entities[1].properties[0]); + + /// See [CaptureBox.type]. + static final type = + obx.QueryStringProperty(_entities[1].properties[1]); + + /// See [CaptureBox.uuid]. + static final uuid = + obx.QueryStringProperty(_entities[1].properties[2]); + + /// See [CaptureBox.startTime]. + static final startTime = + obx.QueryDateProperty(_entities[1].properties[3]); +} diff --git a/lib/recordings/recordings.dart b/lib/recordings/recordings.dart new file mode 100644 index 0000000..00ffcf9 --- /dev/null +++ b/lib/recordings/recordings.dart @@ -0,0 +1 @@ +export 'view/view.dart'; diff --git a/lib/recordings/view/recordings_details.dart b/lib/recordings/view/recordings_details.dart new file mode 100644 index 0000000..c12f208 --- /dev/null +++ b/lib/recordings/view/recordings_details.dart @@ -0,0 +1,228 @@ +import 'dart:io'; + +import 'package:auto_route/auto_route.dart'; +import 'package:csv/csv.dart'; +import 'package:ditredi/ditredi.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:intl/intl.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:vector_math/vector_math_64.dart'; +import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart'; +import 'package:xiao_pet_tracker/xiao_connector/models/capture_point.dart'; + +@RoutePage() +class RecordingsDetailsPage extends StatefulWidget { + const RecordingsDetailsPage({ + required this.uuid, + required this.type, + super.key, + }); + + final String uuid; + final String type; + + @override + State createState() => _RecordingsDetailsPageState(); +} + +class _RecordingsDetailsPageState extends State { + final _controllerRotation = DiTreDiController(); + final _controllerAcceleration = DiTreDiController(); + final f = DateFormat('hh:mm:ss.SSS'); + List _capturePoints = []; + + bool isStoringCSV = false; + + @override + void initState() { + _capturePoints = + context.read().getCapturePointsOfUuid(widget.uuid); + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Details: ${widget.type}'), + ), + body: SingleChildScrollView( + child: Column( + children: [ + const SizedBox( + height: 16, + ), + Text( + 'Start Time: ${f.format(DateTime.fromMillisecondsSinceEpoch(_capturePoints.first.millisecondsSinceEpochSend))}', + ), + Text( + 'End Time: ${f.format(DateTime.fromMillisecondsSinceEpoch(_capturePoints.last.millisecondsSinceEpochSend))}', + ), + const SizedBox( + height: 8, + ), + Text('Amount of captured points: ${_capturePoints.length}'), + const SizedBox( + height: 16, + ), + if (isStoringCSV) + const CircularProgressIndicator() + else + ElevatedButton( + onPressed: () async { + setState(() { + isStoringCSV = true; + }); + // await Permission.storage.request(); + + final downloadsDir = (Platform.isIOS) + ? await getApplicationDocumentsDirectory() + : await getDownloadsDirectory(); + + final f = File( + '${downloadsDir!.path}/${widget.type}_${widget.uuid}.csv', + ); + + final rows = >[]; + + rows.add([ + 'sendTimeStamp', + 'receivedTimeStamp', + 'accelerationX', + 'accelerationY', + 'accelerationZ', + 'rotationX', + 'rotationY', + 'rotationZ', + ]); + + for (var i = 0; i < _capturePoints.length; i++) { + rows.add([ + _capturePoints[i].millisecondsSinceEpochSend, + _capturePoints[i].millisecondsSinceEpochReceived, + _capturePoints[i].accelerationX, + _capturePoints[i].accelerationY, + _capturePoints[i].accelerationZ, + _capturePoints[i].rotationX, + _capturePoints[i].rotationY, + _capturePoints[i].rotationZ, + ]); + } + + final csv = const ListToCsvConverter().convert(rows); + + await f.writeAsString(csv); + setState( + () { + isStoringCSV = false; + }, + ); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Succesfully exported the CSV!'), + ), + ); + } + }, + child: const Text('Export to CSV'), + ), + const SizedBox( + height: 16, + ), + const Text('Raw Rotation Data'), + Padding( + padding: const EdgeInsets.all(8), + child: Container( + height: 400, + // width: 400, + // color: Color.fromARGB(255, 0, 0, 0), + decoration: BoxDecoration( + color: const Color.fromARGB(255, 0, 0, 0), + border: + Border.all(color: const Color.fromARGB(255, 0, 0, 0))), + child: DiTreDiDraggable( + controller: _controllerRotation, + child: DiTreDi( + figures: [ + Cube3D( + 0, + Vector3(0, 0, 0), + color: const Color.fromARGB(0, 128, 0, 0), + ), + ..._capturePoints.map( + (p) => Point3D( + Vector3( + p.rotationX.toDouble(), + p.rotationY.toDouble(), + p.rotationZ.toDouble(), + ), + width: 2, + color: const Color.fromARGB(255, 255, 255, 255), + ), + ) + ], + controller: _controllerRotation, + ), + ), + ), + ), + const Text('Raw Acceleration Data'), + Padding( + padding: const EdgeInsets.all(8), + child: Container( + height: 400, + // width: 400, + // color: Color.fromARGB(255, 0, 0, 0), + decoration: BoxDecoration( + color: const Color.fromARGB(255, 0, 0, 0), + border: + Border.all(color: const Color.fromARGB(255, 0, 0, 0))), + child: DiTreDiDraggable( + controller: _controllerAcceleration, + child: DiTreDi( + figures: [ + Cube3D( + 0, + Vector3(0, 0, 0), + color: const Color.fromARGB(0, 128, 0, 0), + ), + ..._capturePoints.map( + (p) => Point3D( + Vector3( + p.accelerationX.toDouble(), + p.accelerationY.toDouble(), + p.accelerationZ.toDouble(), + ), + width: 2, + color: const Color.fromARGB(255, 255, 255, 255), + ), + ) + ], + controller: _controllerAcceleration, + ), + ), + ), + ), + const SizedBox( + height: 100, + ), + // ListView.builder( + // shrinkWrap: true, + // physics: const NeverScrollableScrollPhysics(), + // itemCount: _capturePoints.length, + // itemBuilder: (context, i) { + // return ListTile( + // title: Text('data'), + // ); + // }, + // ), + ], + ), + ), + ); + } +} diff --git a/lib/recordings/view/recordings_page.dart b/lib/recordings/view/recordings_page.dart new file mode 100644 index 0000000..2eed5b0 --- /dev/null +++ b/lib/recordings/view/recordings_page.dart @@ -0,0 +1,103 @@ +import 'package:auto_route/auto_route.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:forui/forui.dart'; +import 'package:intl/intl.dart'; +import 'package:xiao_pet_tracker/app_router/app_router.gr.dart'; +import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart'; +import 'package:xiao_pet_tracker/xiao_connector/models/capture_box.dart'; + +@RoutePage() +class RecordingsPage extends StatelessWidget { + const RecordingsPage({super.key}); + + @override + Widget build(BuildContext context) { + return const RecordingsView(); + } +} + +class RecordingsView extends StatefulWidget { + const RecordingsView({super.key}); + + @override + State createState() => _SettingsViewState(); +} + +class _SettingsViewState extends State { + List _captureBoxes = []; + final f = DateFormat('hh:mm - dd.MM.yyyy '); + + @override + void initState() { + _captureBoxes = context.read().getAllCaptureBoxes(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Recordings'), + ), + body: RefreshIndicator( + onRefresh: _pullRefresh, + child: ListView.builder( + itemCount: _captureBoxes.length, + itemBuilder: (context, i) { + return ListTile( + leading: FIcon(FAssets.icons.pawPrint), + title: Text('Collection Type: ${_captureBoxes[i].type}'), + subtitle: Text(f.format(_captureBoxes[i].startTime)), + onTap: () { + AutoRouter.of(context).push( + RecordingsDetailsRoute( + type: _captureBoxes[i].type, + uuid: _captureBoxes[i].uuid, + ), + ); + }, + onLongPress: () { + showDialog( + context: context, + builder: (context) { + return AlertDialog( + title: const Text('Delete this recording?'), + content: const Text( + "Are you sure you want to delete this recording with all of it's data? This cannot be undone.", + textAlign: TextAlign.center, + ), + actions: [ + TextButton( + onPressed: () { + Navigator.of(context).pop(); + }, + child: const Text('Cancel'), + ), + TextButton( + onPressed: () { + context + .read() + .deleteRecording(_captureBoxes[i].uuid); + _pullRefresh(); + Navigator.of(context).pop(); + }, + child: const Text('Delete'), + ), + ], + ); + }, + ); + }, + ); + }, + ), + ), + ); + } + + Future _pullRefresh() async { + _captureBoxes = context.read().getAllCaptureBoxes(); + setState(() {}); + } +} diff --git a/lib/recordings/view/view.dart b/lib/recordings/view/view.dart new file mode 100644 index 0000000..cd54113 --- /dev/null +++ b/lib/recordings/view/view.dart @@ -0,0 +1 @@ +export 'recordings_page.dart'; diff --git a/lib/xiao_connector/constants/constants.dart b/lib/xiao_connector/constants/constants.dart new file mode 100644 index 0000000..e3f345e --- /dev/null +++ b/lib/xiao_connector/constants/constants.dart @@ -0,0 +1,2 @@ +const uuidLSM6DS3TRService = '4c534d36-4453-3354-5253-657276696365'; +const uuidAccelerationData = '61636365-6c65-7261-7469-6f6e44617461'; diff --git a/lib/xiao_connector/cubit/xiao_connector_cubit.dart b/lib/xiao_connector/cubit/xiao_connector_cubit.dart new file mode 100644 index 0000000..ef5721f --- /dev/null +++ b/lib/xiao_connector/cubit/xiao_connector_cubit.dart @@ -0,0 +1,280 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:equatable/equatable.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_blue_plus_windows/flutter_blue_plus_windows.dart'; +import 'package:uuid/uuid.dart'; +import 'package:xiao_pet_tracker/bootstrap.dart'; +import 'package:xiao_pet_tracker/objectbox.dart'; +import 'package:xiao_pet_tracker/objectbox.g.dart'; +import 'package:xiao_pet_tracker/xiao_connector/models/capture_box.dart'; +import 'package:xiao_pet_tracker/xiao_connector/models/capture_point.dart'; +import 'package:xiao_pet_tracker/xiao_connector/utils/utils.dart'; + +part 'xiao_connector_state.dart'; + +class XiaoConnectorCubit extends Cubit { + XiaoConnectorCubit() : super(const XiaoConnectorState()); + + late BluetoothDevice device; + List _services = []; + late BluetoothCharacteristic _senseService; + + late StreamSubscription> dataCapturingSubscription; + + final ObjectBox _objectBox = getIt(); + late final Box _capturePointsBox; + late final Box _captureBoxes; + + bool gotRotation = false; + bool gotAcceleration = false; + bool gotTimeStamp = false; + + int _rotX = 0; + int _rotY = 0; + int _rotZ = 0; + int _accX = 0; + int _accY = 0; + int _accZ = 0; + int _millisecondsSinceEpochSend = 0; + String _captureType = ''; + String _uuid = ''; + + bool isRecording = false; + + Future init() async { + _capturePointsBox = _objectBox.store.box(); + _captureBoxes = _objectBox.store.box(); + } + + Future connect() async { + emit(state.copyWith(status: XiaoConnectorStatus.loading)); + + try { + // scan for devices for 15 seconds + await FlutterBluePlus.startScan(timeout: const Duration(seconds: 15)); + } catch (e) { + emit(state.copyWith(status: XiaoConnectorStatus.failure)); + throw Exception('Start Scan Error: $e'); + } + + FlutterBluePlus.scanResults.listen( + (results) async { + for (final r in results) { + if (kDebugMode) { + print(r); + } + + // set the xiao sense name + if (r.device.advName == 'Go Bluetooth 2') { + await FlutterBluePlus.stopScan(); + device = r.device; + + await device.connect(); + + try { + _services = await device.discoverServices(); + } catch (e) { + emit(state.copyWith(status: XiaoConnectorStatus.failure)); + throw Exception('Discover Services Error: $e'); + } + + device.connectionState + .listen((BluetoothConnectionState blueState) async { + if (blueState == BluetoothConnectionState.disconnected) { + debugPrint('DISCONNECTED!'); + emit(state.copyWith(status: XiaoConnectorStatus.initial)); + } + }); + + // device.cancelWhenDisconnected(deviceConnectionStream); + emit(state.copyWith(status: XiaoConnectorStatus.connected)); + } + } + }, + onDone: () { + debugPrint('DONE'); + emit(state.copyWith(status: XiaoConnectorStatus.initial)); + }, + ); + } + + Future setCapturingOn() async { + final senseService = _services + .where( + (s) => s.serviceUuid == Guid('4c534d36-4453-3354-5253-657276696365'), + ) + .first + .characteristics + .where( + (c) => + c.characteristicUuid == + Guid('63617074-7572-696E-6753-657276696365'), + ) + .first; + + await senseService.write([1]); + } + + Uint8List int64BigEndianBytes(int value) => + Uint8List(8)..buffer.asByteData().setInt64(0, value); + + Future setTime(int millisSinceEpoch) async { + final senseService = _services + .where( + (s) => s.serviceUuid == Guid('4c534d36-4453-3354-5253-657276696365'), + ) + .first + .characteristics + .where( + (c) => + c.characteristicUuid == + Guid('756E6978-5469-6D65-5374-616D70527374'), + ) + .first; + + final List bytes = int64BigEndianBytes(millisSinceEpoch); + await senseService.write(bytes); + } + + Future startCapturing() async { + _senseService = _services + .where( + (s) => s.serviceUuid == Guid('4c534d36-4453-3354-5253-657276696365'), + ) + .first + .characteristics + .where( + (c) => + c.characteristicUuid == + Guid('61636365-6c65-7261-7469-6f6e44617461'), + ) + .first; + + dataCapturingSubscription = _senseService.onValueReceived.listen((value) { + // rotation + if (value.last == 1) { + _rotX = fromBytesToInt32(value[0], value[1], value[2], value[3]); + _rotY = fromBytesToInt32(value[4], value[5], value[6], value[7]); + _rotZ = fromBytesToInt32(value[8], value[9], value[10], value[11]); + gotRotation = true; + } + + // acceleration + if (value.last == 2) { + _accX = fromBytesToInt32(value[0], value[1], value[2], value[3]); + _accY = fromBytesToInt32(value[4], value[5], value[6], value[7]); + _accZ = fromBytesToInt32(value[8], value[9], value[10], value[11]); + gotAcceleration = true; + } + + if (value.last == 3) { + final timeStamp = fromBytesToInt64( + value[0], + value[1], + value[2], + value[3], + value[4], + value[5], + value[6], + value[7], + ); + _millisecondsSinceEpochSend = timeStamp; + gotTimeStamp = true; + } + + if (gotAcceleration && gotRotation && gotTimeStamp) { + final capturePoint = CapturePoint( + type: _captureType, + uuid: _uuid, + rotationX: _rotX, + rotationY: _rotY, + rotationZ: _rotZ, + accelerationX: _accX, + accelerationY: _accY, + accelerationZ: _accZ, + millisecondsSinceEpochReceived: + DateTime.now().toUtc().millisecondsSinceEpoch, + millisecondsSinceEpochSend: _millisecondsSinceEpochSend, + ); + emit(state.copyWith(lastCapturedPoint: capturePoint)); + + if (isRecording) { + _writeToObjectBox(capturePoint: capturePoint); + } + + gotAcceleration = false; + gotRotation = false; + gotTimeStamp = false; + } + }); + await setCapturingOn(); + + await setTime(DateTime.now().millisecondsSinceEpoch); + + device.cancelWhenDisconnected(dataCapturingSubscription); + + await _senseService.setNotifyValue(true); + + emit(state.copyWith(status: XiaoConnectorStatus.capturing)); + } + + Future stopCapturing() async { + await dataCapturingSubscription.cancel(); + + await _senseService.setNotifyValue(false); + + emit(state.copyWith(status: XiaoConnectorStatus.connected)); + } + + Future disconnectDevice() async { + await device.disconnect(); + _services = []; + emit(state.copyWith(status: XiaoConnectorStatus.initial)); + } + + void toggleRecording({required String captureType}) { + isRecording = !isRecording; + if (isRecording) { + _captureType = captureType; + _uuid = const Uuid().v4(); + _captureBoxes.put( + CaptureBox( + type: _captureType, + uuid: _uuid, + startTime: DateTime.now(), + ), + ); + } + } + + void _writeToObjectBox({ + required CapturePoint capturePoint, + }) { + _capturePointsBox.put(capturePoint); + } + + List getCapturePointsOfUuid(String uuid) { + final query = + _capturePointsBox.query(CapturePoint_.uuid.equals(uuid)).build(); + + final points = query.find(); + return points; + } + + void deleteRecording(String uuid) { + _capturePointsBox.query(CapturePoint_.uuid.equals(uuid)).build().remove(); + _captureBoxes.query(CaptureBox_.uuid.equals(uuid)).build().remove(); + } + + List getAllCaptureBoxes() { + final query = (_captureBoxes.query() + ..order(CaptureBox_.startTime, flags: Order.descending)) + .build(); + final boxes = query.find(); + return boxes; + } + + List getAllCapturePoints() => _capturePointsBox.getAll(); +} diff --git a/lib/xiao_connector/cubit/xiao_connector_state.dart b/lib/xiao_connector/cubit/xiao_connector_state.dart new file mode 100644 index 0000000..1fce195 --- /dev/null +++ b/lib/xiao_connector/cubit/xiao_connector_state.dart @@ -0,0 +1,40 @@ +part of 'xiao_connector_cubit.dart'; + +enum XiaoConnectorStatus { + initial, + loading, + connected, + capturing, + failure, +} + +extension XiaoConnectorStatusX on XiaoConnectorStatus { + bool get isInitial => this == XiaoConnectorStatus.initial; + bool get isLoading => this == XiaoConnectorStatus.loading; + bool get isConnected => this == XiaoConnectorStatus.connected; + bool get isCapturing => this == XiaoConnectorStatus.capturing; + bool get isFailure => this == XiaoConnectorStatus.failure; +} + +final class XiaoConnectorState extends Equatable { + const XiaoConnectorState({ + this.status = XiaoConnectorStatus.initial, + this.lastCapturedPoint, + }); + + final XiaoConnectorStatus status; + final CapturePoint? lastCapturedPoint; + + XiaoConnectorState copyWith({ + XiaoConnectorStatus? status, + CapturePoint? lastCapturedPoint, + }) { + return XiaoConnectorState( + status: status ?? this.status, + lastCapturedPoint: lastCapturedPoint ?? this.lastCapturedPoint, + ); + } + + @override + List get props => [status, lastCapturedPoint]; +} diff --git a/lib/xiao_connector/models/capture_box.dart b/lib/xiao_connector/models/capture_box.dart new file mode 100644 index 0000000..cfa2516 --- /dev/null +++ b/lib/xiao_connector/models/capture_box.dart @@ -0,0 +1,18 @@ +import 'package:objectbox/objectbox.dart'; + +@Entity() +class CaptureBox { + CaptureBox({ + required this.type, + required this.uuid, + required this.startTime, + }); + @Id() + int id = 0; + + String type; + String uuid; + + @Property(type: PropertyType.date) + DateTime startTime; +} diff --git a/lib/xiao_connector/models/capture_point.dart b/lib/xiao_connector/models/capture_point.dart new file mode 100644 index 0000000..3091392 --- /dev/null +++ b/lib/xiao_connector/models/capture_point.dart @@ -0,0 +1,32 @@ +import 'package:objectbox/objectbox.dart'; + +@Entity() +class CapturePoint { + CapturePoint({ + required this.type, + required this.uuid, + required this.rotationX, + required this.rotationY, + required this.rotationZ, + required this.accelerationX, + required this.accelerationY, + required this.accelerationZ, + required this.millisecondsSinceEpochReceived, + required this.millisecondsSinceEpochSend, + }); + @Id() + int id = 0; + + String type; + String uuid; + + int rotationX; + int rotationY; + int rotationZ; + int accelerationX; + int accelerationY; + int accelerationZ; + + int millisecondsSinceEpochReceived; + int millisecondsSinceEpochSend; +} diff --git a/lib/xiao_connector/utils/utils.dart b/lib/xiao_connector/utils/utils.dart new file mode 100644 index 0000000..6a0bb98 --- /dev/null +++ b/lib/xiao_connector/utils/utils.dart @@ -0,0 +1,32 @@ +import 'dart:typed_data'; + +int fromBytesToInt32(int b3, int b2, int b1, int b0) { + final int8List = Int8List(4) + ..[3] = b3 + ..[2] = b2 + ..[1] = b1 + ..[0] = b0; + return int8List.buffer.asByteData().getInt32(0); +} + +int fromBytesToInt64( + int b7, + int b6, + int b5, + int b4, + int b3, + int b2, + int b1, + int b0, +) { + final int8List = Int8List(8) + ..[7] = b7 + ..[6] = b6 + ..[5] = b5 + ..[4] = b4 + ..[3] = b3 + ..[2] = b2 + ..[1] = b1 + ..[0] = b0; + return int8List.buffer.asByteData().getInt64(0); +} diff --git a/lib/xiao_connector/view/capture_view.dart b/lib/xiao_connector/view/capture_view.dart new file mode 100644 index 0000000..6914203 --- /dev/null +++ b/lib/xiao_connector/view/capture_view.dart @@ -0,0 +1,193 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart'; + +class CaptureView extends StatefulWidget { + const CaptureView({super.key}); + + @override + State createState() => _CaptureViewState(); +} + +class _CaptureViewState extends State { + late TextEditingController _controller; + bool _isTextFieldFocused = false; + + @override + void initState() { + super.initState(); + _controller = TextEditingController(); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + // final count = context.select((XiaoConnectorCubit cubit) => cubit.state); + final lastCapturePoint = context + .select((XiaoConnectorCubit cubit) => cubit.state.lastCapturedPoint); + return Scaffold( + appBar: AppBar( + title: const Text('Live Feed'), + ), + body: SingleChildScrollView( + child: Center( + child: Column( + children: [ + const SizedBox( + height: 8, + ), + ElevatedButton( + onPressed: () { + context.read().stopCapturing(); + }, + child: const Text('Close Live Feed'), + ), + const SizedBox( + height: 12, + ), + const Text( + 'Last Captured Point', + style: TextStyle(fontWeight: FontWeight.bold), + ), + const Divider( + indent: 80, + endIndent: 80, + ), + const Text( + 'Received Time', + style: TextStyle(fontWeight: FontWeight.bold), + ), + Text( + '${DateTime.fromMillisecondsSinceEpoch( + lastCapturePoint?.millisecondsSinceEpochReceived ?? 0, + )}', + ), + const Text( + 'Send Time', + style: TextStyle(fontWeight: FontWeight.bold), + ), + const Text('(time the controller send the data)'), + Text( + '${DateTime.fromMillisecondsSinceEpoch( + lastCapturePoint?.millisecondsSinceEpochSend ?? 0, + )}', + ), + const SizedBox( + height: 12, + ), + ElevatedButton.icon( + onPressed: () { + // context.read().startCapturing( + // captureType: 'test', + // ); + final timeToSend = DateTime.now().millisecondsSinceEpoch; + context.read().setTime(timeToSend); + }, + icon: const Icon(Icons.watch_later_outlined), + label: const Text('Sync Clocks'), + ), + const SizedBox( + height: 12, + ), + const Divider( + indent: 80, + endIndent: 80, + ), + Text('Acceleration X: ${lastCapturePoint?.accelerationX}'), + Text('Acceleration Y: ${lastCapturePoint?.accelerationY}'), + Text('Acceleration Z: ${lastCapturePoint?.accelerationZ}'), + const Divider( + indent: 80, + endIndent: 80, + ), + Text('Rotation X: ${lastCapturePoint?.rotationX}'), + Text('Rotation Y: ${lastCapturePoint?.rotationY}'), + Text('Rotation Z: ${lastCapturePoint?.rotationZ}'), + const SizedBox( + height: 16, + ), + Padding( + padding: const EdgeInsets.only(left: 32, right: 32, top: 16), + child: FocusScope( + child: Focus( + onFocusChange: (focus) { + _isTextFieldFocused = focus; + setState(() {}); + }, + child: TextField( + controller: _controller, + decoration: const InputDecoration( + label: Text('Capture Name'), + ), + ), + ), + ), + ), + const SizedBox( + height: 16, + ) + ], + ), + ), + ), + floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, + floatingActionButton: _isTextFieldFocused + ? null + : FloatingActionButton.large( + child: context.read().isRecording + ? const Stack( + children: [ + Align( + child: Icon(Icons.pause), + ), + Align( + child: SizedBox.expand( + child: Padding( + padding: EdgeInsets.all(12), + child: CircularProgressIndicator(), + ), + ), + ), + ], + ) + : const Icon(Icons.play_arrow), + onPressed: () { + if (_controller.value.text == '') { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text( + 'Please enter Capture Name', + ), + content: const Text( + 'You need to enter a capture name before you can start capturing data.', + ), + actions: [ + TextButton( + onPressed: () { + Navigator.of(context).pop(); + }, + child: const Text( + 'Ok', + ), + ), + ], + ); + }, + ); + } else { + context.read().toggleRecording( + captureType: _controller.value.text, + ); + } + }, + ), + ); + } +} diff --git a/lib/xiao_connector/view/connected_view.dart b/lib/xiao_connector/view/connected_view.dart new file mode 100644 index 0000000..3719d29 --- /dev/null +++ b/lib/xiao_connector/view/connected_view.dart @@ -0,0 +1,51 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart'; + +class ConnectedView extends StatelessWidget { + const ConnectedView({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Xiao Connector'), + ), + body: Center( + child: SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + ''' + You are connected to the Xiao Sense. + Now you can open the live feed.''', + textAlign: TextAlign.center, + ), + const SizedBox( + height: 48, + ), + ElevatedButton( + onPressed: () { + context.read().startCapturing(); + }, + child: const Text('Open Live Feed'), + ), + const SizedBox( + height: 48, + ), + ElevatedButton( + onPressed: () { + context.read().disconnectDevice(); + }, + child: const Text('Disconnect'), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/xiao_connector/view/failure_view.dart b/lib/xiao_connector/view/failure_view.dart new file mode 100644 index 0000000..fd942e9 --- /dev/null +++ b/lib/xiao_connector/view/failure_view.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class FailureView extends StatelessWidget { + const FailureView({super.key}); + + @override + Widget build(BuildContext context) { + return const Text('Oops. Something bad happened! :('); + } +} diff --git a/lib/xiao_connector/view/initial_view.dart b/lib/xiao_connector/view/initial_view.dart new file mode 100644 index 0000000..48c1787 --- /dev/null +++ b/lib/xiao_connector/view/initial_view.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart'; + +class InitialView extends StatelessWidget { + const InitialView({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Xiao Connector'), + ), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + ''' +You are currently not connected to the Xiao Sense. +Click on `Connect` to try to connect to the device.''', + textAlign: TextAlign.center, + ), + const SizedBox( + height: 8, + ), + ElevatedButton( + onPressed: () { + context.read().connect(); + }, + child: const Text('Connect'), + ), + ], + ), + ), + ); + } +} diff --git a/lib/xiao_connector/view/loading_view.dart b/lib/xiao_connector/view/loading_view.dart new file mode 100644 index 0000000..5aeeecf --- /dev/null +++ b/lib/xiao_connector/view/loading_view.dart @@ -0,0 +1,12 @@ +import 'package:flutter/material.dart'; + +class LoadingView extends StatelessWidget { + const LoadingView({super.key}); + + @override + Widget build(BuildContext context) { + return const Center( + child: CircularProgressIndicator(), + ); + } +} diff --git a/lib/xiao_connector/view/view.dart b/lib/xiao_connector/view/view.dart new file mode 100644 index 0000000..4f3b923 --- /dev/null +++ b/lib/xiao_connector/view/view.dart @@ -0,0 +1 @@ +export 'xiao_connector_page.dart'; diff --git a/lib/xiao_connector/view/xiao_connector_page.dart b/lib/xiao_connector/view/xiao_connector_page.dart new file mode 100644 index 0000000..108e7d3 --- /dev/null +++ b/lib/xiao_connector/view/xiao_connector_page.dart @@ -0,0 +1,40 @@ +import 'package:auto_route/auto_route.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:xiao_pet_tracker/xiao_connector/cubit/xiao_connector_cubit.dart'; +import 'package:xiao_pet_tracker/xiao_connector/view/capture_view.dart'; +import 'package:xiao_pet_tracker/xiao_connector/view/connected_view.dart'; +import 'package:xiao_pet_tracker/xiao_connector/view/failure_view.dart'; +import 'package:xiao_pet_tracker/xiao_connector/view/initial_view.dart'; +import 'package:xiao_pet_tracker/xiao_connector/view/loading_view.dart'; + +@RoutePage() +class XiaoConnectorPage extends StatelessWidget { + const XiaoConnectorPage({super.key}); + + @override + Widget build(BuildContext context) { + return const XiaoConnectorView(); + } +} + +class XiaoConnectorView extends StatelessWidget { + const XiaoConnectorView({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: BlocBuilder( + builder: (context, state) { + return switch (state.status) { + XiaoConnectorStatus.initial => const InitialView(), + XiaoConnectorStatus.loading => const LoadingView(), + XiaoConnectorStatus.connected => const ConnectedView(), + XiaoConnectorStatus.capturing => const CaptureView(), + XiaoConnectorStatus.failure => const FailureView(), + }; + }, + ), + ); + } +} diff --git a/lib/xiao_connector/view/xiao_data_page.dart b/lib/xiao_connector/view/xiao_data_page.dart new file mode 100644 index 0000000..dcc8539 --- /dev/null +++ b/lib/xiao_connector/view/xiao_data_page.dart @@ -0,0 +1,22 @@ +import 'package:auto_route/auto_route.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +@RoutePage() +class XiaoDataPage extends StatelessWidget { + const XiaoDataPage({super.key}); + + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} + +class XiaoDataView extends StatelessWidget { + const XiaoDataView({super.key}); + + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} diff --git a/lib/xiao_connector/xiao_connector.dart b/lib/xiao_connector/xiao_connector.dart new file mode 100644 index 0000000..00ffcf9 --- /dev/null +++ b/lib/xiao_connector/xiao_connector.dart @@ -0,0 +1 @@ +export 'view/view.dart'; diff --git a/macos/.gitignore b/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..4b81f9b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..5caa9d1 --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..59f602d --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,16 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import flutter_blue_plus +import objectbox_flutter_libs +import path_provider_foundation + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FlutterBluePlusPlugin.register(with: registry.registrar(forPlugin: "FlutterBluePlusPlugin")) + ObjectboxFlutterLibsPlugin.register(with: registry.registrar(forPlugin: "ObjectboxFlutterLibsPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) +} diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..c795730 --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,43 @@ +platform :osx, '10.14' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/macos/Podfile.lock b/macos/Podfile.lock new file mode 100644 index 0000000..2330d0c --- /dev/null +++ b/macos/Podfile.lock @@ -0,0 +1,42 @@ +PODS: + - flutter_blue_plus (0.0.1): + - FlutterMacOS + - FlutterMacOS (1.0.0) + - ObjectBox (4.0.1) + - objectbox_flutter_libs (0.0.1): + - FlutterMacOS + - ObjectBox (= 4.0.1) + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - flutter_blue_plus (from `Flutter/ephemeral/.symlinks/plugins/flutter_blue_plus/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + - objectbox_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/objectbox_flutter_libs/macos`) + - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) + +SPEC REPOS: + trunk: + - ObjectBox + +EXTERNAL SOURCES: + flutter_blue_plus: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_blue_plus/macos + FlutterMacOS: + :path: Flutter/ephemeral + objectbox_flutter_libs: + :path: Flutter/ephemeral/.symlinks/plugins/objectbox_flutter_libs/macos + path_provider_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin + +SPEC CHECKSUMS: + flutter_blue_plus: e2868679021f19d12a8c0c58a33f1df66ec7fa6a + FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 + ObjectBox: 0bc4bb75eea85f6af06b369148b334c2056bbc29 + objectbox_flutter_libs: 769e6f44f7381c8a8e46a2ed5c71c6068bb476f7 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + +PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 + +COCOAPODS: 1.16.2 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0c96578 --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,1479 @@ +// !$*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 */ + 265DE19DB54A8FE4B5009C03 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D253A0546A040A974D8A329D /* Pods_RunnerTests.framework */; }; + 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 */; }; + 489A4C1C643951D8E41B1521 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFA90F3F8C227AFAF2B4B4CA /* Pods_Runner.framework */; }; +/* 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 */ + 14F74C902AC126B7DED4D87D /* Pods-Runner.release-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-development.xcconfig"; sourceTree = ""; }; + 2030CECD1D92C53F1ECA6126 /* Pods-Runner.debug-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-staging.xcconfig"; sourceTree = ""; }; + 2B7BD84519D750EF1DB04103 /* Pods-Runner.profile-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-production.xcconfig"; sourceTree = ""; }; + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* Xiao Pet Tracker.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Xiao Pet Tracker.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 378BBA354E8F3A05134CE72F /* Pods-RunnerTests.profile-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile-staging.xcconfig"; sourceTree = ""; }; + 410B5C88ACEBA964A0615038 /* Pods-RunnerTests.release-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release-staging.xcconfig"; sourceTree = ""; }; + 4717AEAFA621D8C22920F93F /* Pods-Runner.profile-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-staging.xcconfig"; sourceTree = ""; }; + 4B1BE28A34D48F1BF3AB8CA2 /* Pods-Runner.debug-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-production.xcconfig"; sourceTree = ""; }; + 4F3DFFBFD59D330C694FAEF3 /* Pods-Runner.release-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-staging.xcconfig"; sourceTree = ""; }; + 523E0585C8B64B20217F29E1 /* Pods-RunnerTests.profile-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile-development.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile-development.xcconfig"; sourceTree = ""; }; + 5F89B958E1330841CCDE1472 /* Pods-RunnerTests.release-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release-production.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release-production.xcconfig"; sourceTree = ""; }; + 7000E8F93E9ECC8F3CD8E4AF /* Pods-RunnerTests.profile-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile-production.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile-production.xcconfig"; sourceTree = ""; }; + 769EE35B51716BF620BF4434 /* Pods-Runner.release-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-production.xcconfig"; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 8E038EC308EF15DB6C043E54 /* Pods-RunnerTests.debug-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-staging.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-staging.xcconfig"; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + 9B5B7F7E495F71F7A4159FE7 /* Pods-Runner.profile-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-development.xcconfig"; sourceTree = ""; }; + A91399B18DFD504CB38A23F5 /* Pods-RunnerTests.debug-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-production.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-production.xcconfig"; sourceTree = ""; }; + AFA90F3F8C227AFAF2B4B4CA /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D253A0546A040A974D8A329D /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DA2EE4F457F25935805004AB /* Pods-Runner.debug-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-development.xcconfig"; sourceTree = ""; }; + E8C8782E71B7F7B2E5F0E2B3 /* Pods-RunnerTests.release-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release-development.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release-development.xcconfig"; sourceTree = ""; }; + EA90A7479171B0CA3ECBEDF2 /* Pods-RunnerTests.debug-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-development.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-development.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 265DE19DB54A8FE4B5009C03 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 489A4C1C643951D8E41B1521 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + FEAD16C4E09C77DCF5941D22 /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* Xiao Pet Tracker.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AFA90F3F8C227AFAF2B4B4CA /* Pods_Runner.framework */, + D253A0546A040A974D8A329D /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + FEAD16C4E09C77DCF5941D22 /* Pods */ = { + isa = PBXGroup; + children = ( + 4B1BE28A34D48F1BF3AB8CA2 /* Pods-Runner.debug-production.xcconfig */, + DA2EE4F457F25935805004AB /* Pods-Runner.debug-development.xcconfig */, + 2030CECD1D92C53F1ECA6126 /* Pods-Runner.debug-staging.xcconfig */, + 769EE35B51716BF620BF4434 /* Pods-Runner.release-production.xcconfig */, + 14F74C902AC126B7DED4D87D /* Pods-Runner.release-development.xcconfig */, + 4F3DFFBFD59D330C694FAEF3 /* Pods-Runner.release-staging.xcconfig */, + 2B7BD84519D750EF1DB04103 /* Pods-Runner.profile-production.xcconfig */, + 9B5B7F7E495F71F7A4159FE7 /* Pods-Runner.profile-development.xcconfig */, + 4717AEAFA621D8C22920F93F /* Pods-Runner.profile-staging.xcconfig */, + A91399B18DFD504CB38A23F5 /* Pods-RunnerTests.debug-production.xcconfig */, + EA90A7479171B0CA3ECBEDF2 /* Pods-RunnerTests.debug-development.xcconfig */, + 8E038EC308EF15DB6C043E54 /* Pods-RunnerTests.debug-staging.xcconfig */, + 5F89B958E1330841CCDE1472 /* Pods-RunnerTests.release-production.xcconfig */, + E8C8782E71B7F7B2E5F0E2B3 /* Pods-RunnerTests.release-development.xcconfig */, + 410B5C88ACEBA964A0615038 /* Pods-RunnerTests.release-staging.xcconfig */, + 7000E8F93E9ECC8F3CD8E4AF /* Pods-RunnerTests.profile-production.xcconfig */, + 523E0585C8B64B20217F29E1 /* Pods-RunnerTests.profile-development.xcconfig */, + 378BBA354E8F3A05134CE72F /* Pods-RunnerTests.profile-staging.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + DB3635193C2B3F17FB504B43 /* [CP] Check Pods Manifest.lock */, + 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 = ( + D12F1545DAD609AAEB0D4D79 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + EA2E98D6071E3D345CE0327B /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* Xiao Pet Tracker.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + 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"; + }; + D12F1545DAD609AAEB0D4D79 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + DB3635193C2B3F17FB504B43 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + EA2E98D6071E3D345CE0327B /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A91399B18DFD504CB38A23F5 /* Pods-RunnerTests.debug-production.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Debug-production"; + }; + 331C80DC294CF71000263BE5 /* Release-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5F89B958E1330841CCDE1472 /* Pods-RunnerTests.release-production.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Release-production"; + }; + 331C80DD294CF71000263BE5 /* Profile-production */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7000E8F93E9ECC8F3CD8E4AF /* Pods-RunnerTests.profile-production.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Profile-production"; + }; + 338D0CE9231458BD00FA5F75 /* Profile-production */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-production"; + }; + 338D0CEA231458BD00FA5F75 /* Profile-production */ = { + 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; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = "Profile-production"; + }; + 338D0CEB231458BD00FA5F75 /* Profile-production */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Profile-production"; + }; + 33CC10F92044A3C60003C045 /* Debug-production */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-production"; + }; + 33CC10FA2044A3C60003C045 /* Release-production */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-production"; + }; + 33CC10FC2044A3C60003C045 /* Debug-production */ = { + 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; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = "Debug-production"; + }; + 33CC10FD2044A3C60003C045 /* Release-production */ = { + 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; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = "Release-production"; + }; + 33CC111C2044C6BA0003C045 /* Debug-production */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Debug-production"; + }; + 33CC111D2044C6BA0003C045 /* Release-production */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Release-production"; + }; + 4D081B8A2AEE0EE8009C4C7F /* Debug-staging */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-staging"; + }; + 4D081B8B2AEE0EE8009C4C7F /* Debug-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "[STG] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.stg"; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = "Debug-staging"; + }; + 4D081B8C2AEE0EE8009C4C7F /* Debug-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8E038EC308EF15DB6C043E54 /* Pods-RunnerTests.debug-staging.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Debug-staging"; + }; + 4D081B8D2AEE0EE8009C4C7F /* Debug-staging */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Debug-staging"; + }; + 4D081B8E2AEE0EEA009C4C7F /* Debug-development */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-development"; + }; + 4D081B8F2AEE0EEA009C4C7F /* Debug-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "[DEV] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.dev"; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = "Debug-development"; + }; + 4D081B902AEE0EEA009C4C7F /* Debug-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EA90A7479171B0CA3ECBEDF2 /* Pods-RunnerTests.debug-development.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Debug-development"; + }; + 4D081B912AEE0EEA009C4C7F /* Debug-development */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Debug-development"; + }; + 4D081B922AEE0EEE009C4C7F /* Release-development */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-development"; + }; + 4D081B932AEE0EEE009C4C7F /* Release-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "[DEV] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.dev"; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = "Release-development"; + }; + 4D081B942AEE0EEE009C4C7F /* Release-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E8C8782E71B7F7B2E5F0E2B3 /* Pods-RunnerTests.release-development.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Release-development"; + }; + 4D081B952AEE0EEE009C4C7F /* Release-development */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Release-development"; + }; + 4D081B962AEE0EF1009C4C7F /* Release-staging */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-staging"; + }; + 4D081B972AEE0EF1009C4C7F /* Release-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "[STG] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.stg"; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = "Release-staging"; + }; + 4D081B982AEE0EF1009C4C7F /* Release-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 410B5C88ACEBA964A0615038 /* Pods-RunnerTests.release-staging.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Release-staging"; + }; + 4D081B992AEE0EF1009C4C7F /* Release-staging */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Release-staging"; + }; + 4D081B9A2AEE0EF4009C4C7F /* Profile-development */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-development"; + }; + 4D081B9B2AEE0EF4009C4C7F /* Profile-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "[DEV] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.dev"; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = "Profile-development"; + }; + 4D081B9C2AEE0EF4009C4C7F /* Profile-development */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 523E0585C8B64B20217F29E1 /* Pods-RunnerTests.profile-development.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Profile-development"; + }; + 4D081B9D2AEE0EF4009C4C7F /* Profile-development */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Profile-development"; + }; + 4D081B9E2AEE0EF8009C4C7F /* Profile-staging */ = { + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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-staging"; + }; + 4D081B9F2AEE0EF8009C4C7F /* Profile-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEAD_CODE_STRIPPING = YES; + FLAVOR_APP_NAME = "[STG] Xiao Pet Tracker"; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.stg"; + PRODUCT_NAME = "$(FLAVOR_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = "Profile-staging"; + }; + 4D081BA02AEE0EF8009C4C7F /* Profile-staging */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 378BBA354E8F3A05134CE72F /* Pods-RunnerTests.profile-staging.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.example.verygoodcore.xiao-pet-tracker.RunnerTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/my_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/my_app"; + }; + name = "Profile-staging"; + }; + 4D081BA12AEE0EF8009C4C7F /* Profile-staging */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + DEAD_CODE_STRIPPING = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = "Profile-staging"; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug-production */, + 4D081B902AEE0EEA009C4C7F /* Debug-development */, + 4D081B8C2AEE0EE8009C4C7F /* Debug-staging */, + 331C80DC294CF71000263BE5 /* Release-production */, + 4D081B942AEE0EEE009C4C7F /* Release-development */, + 4D081B982AEE0EF1009C4C7F /* Release-staging */, + 331C80DD294CF71000263BE5 /* Profile-production */, + 4D081B9C2AEE0EF4009C4C7F /* Profile-development */, + 4D081BA02AEE0EF8009C4C7F /* Profile-staging */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Release-production"; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug-production */, + 4D081B8E2AEE0EEA009C4C7F /* Debug-development */, + 4D081B8A2AEE0EE8009C4C7F /* Debug-staging */, + 33CC10FA2044A3C60003C045 /* Release-production */, + 4D081B922AEE0EEE009C4C7F /* Release-development */, + 4D081B962AEE0EF1009C4C7F /* Release-staging */, + 338D0CE9231458BD00FA5F75 /* Profile-production */, + 4D081B9A2AEE0EF4009C4C7F /* Profile-development */, + 4D081B9E2AEE0EF8009C4C7F /* Profile-staging */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Release-production"; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug-production */, + 4D081B8F2AEE0EEA009C4C7F /* Debug-development */, + 4D081B8B2AEE0EE8009C4C7F /* Debug-staging */, + 33CC10FD2044A3C60003C045 /* Release-production */, + 4D081B932AEE0EEE009C4C7F /* Release-development */, + 4D081B972AEE0EF1009C4C7F /* Release-staging */, + 338D0CEA231458BD00FA5F75 /* Profile-production */, + 4D081B9B2AEE0EF4009C4C7F /* Profile-development */, + 4D081B9F2AEE0EF8009C4C7F /* Profile-staging */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Release-production"; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug-production */, + 4D081B912AEE0EEA009C4C7F /* Debug-development */, + 4D081B8D2AEE0EE8009C4C7F /* Debug-staging */, + 33CC111D2044C6BA0003C045 /* Release-production */, + 4D081B952AEE0EEE009C4C7F /* Release-development */, + 4D081B992AEE0EF1009C4C7F /* Release-staging */, + 338D0CEB231458BD00FA5F75 /* Profile-production */, + 4D081B9D2AEE0EF4009C4C7F /* Profile-development */, + 4D081BA12AEE0EF8009C4C7F /* Profile-staging */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Release-production"; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..70a880c --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/development.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/development.xcscheme new file mode 100644 index 0000000..70b46d5 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/development.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme new file mode 100644 index 0000000..2dfadc3 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme new file mode 100644 index 0000000..dad4693 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/staging.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..8e02df2 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png new file mode 100644 index 0000000..bffc902 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png new file mode 100644 index 0000000..fdff481 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png new file mode 100644 index 0000000..a5ae5f6 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256 1.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256 1.png new file mode 100644 index 0000000..19a53f2 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png new file mode 100644 index 0000000..19a53f2 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32 1.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32 1.png new file mode 100644 index 0000000..754605c Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png new file mode 100644 index 0000000..754605c Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512 1.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512 1.png new file mode 100644 index 0000000..b0a9511 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png new file mode 100644 index 0000000..b0a9511 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png new file mode 100644 index 0000000..12f6f8b Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/Contents.json new file mode 100644 index 0000000..e361225 --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "32 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "256 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "512 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png new file mode 100644 index 0000000..67946d8 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png new file mode 100644 index 0000000..0f7afae Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png new file mode 100644 index 0000000..02f262a Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256 1.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256 1.png new file mode 100644 index 0000000..0a92169 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png new file mode 100644 index 0000000..0a92169 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32 1.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32 1.png new file mode 100644 index 0000000..ecd10a9 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png new file mode 100644 index 0000000..ecd10a9 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512 1.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512 1.png new file mode 100644 index 0000000..dda1564 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png new file mode 100644 index 0000000..dda1564 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png new file mode 100644 index 0000000..a6b50e6 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/Contents.json new file mode 100644 index 0000000..e361225 --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "32 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "256 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "512 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000..e2d0105 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png new file mode 100644 index 0000000..f88f62c Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png new file mode 100644 index 0000000..4d6b10e Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/256 1.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/256 1.png new file mode 100644 index 0000000..18bd6b0 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/256 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png new file mode 100644 index 0000000..18bd6b0 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/32 1.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/32 1.png new file mode 100644 index 0000000..1405ec4 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/32 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png new file mode 100644 index 0000000..1405ec4 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/512 1.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/512 1.png new file mode 100644 index 0000000..9666a0c Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/512 1.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png new file mode 100644 index 0000000..9666a0c Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png new file mode 100644 index 0000000..2ee511e Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..e361225 --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "32 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "256 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "512 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Runner/Assets.xcassets/Contents.json b/macos/Runner/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/macos/Runner/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/macos/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..b23a03e --- /dev/null +++ b/macos/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "LaunchImage@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchImage@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "LaunchImage@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png b/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png new file mode 100644 index 0000000..cea4825 Binary files /dev/null and b/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png differ diff --git a/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..0e20080 Binary files /dev/null and b/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..5c562f9 Binary files /dev/null and b/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/macos/Runner/Base.lproj/MainMenu.xib b/macos/Runner/Base.lproj/MainMenu.xib new file mode 100644 index 0000000..9b7132a --- /dev/null +++ b/macos/Runner/Base.lproj/MainMenu.xib @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..79236bc --- /dev/null +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = my_app + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.myApp + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright Β© 2023 com.example. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..16963cf --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.device.bluetooth + + com.apple.security.network.server + + com.apple.security.app-sandbox + + + diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..0cf2267 --- /dev/null +++ b/macos/Runner/Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleName + $(FLAVOR_APP_NAME) + CFBundleDisplayName + $(FLAVOR_APP_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + NSBluetoothAlwaysUsageDescription + We need BT access because it's a BT App. + + diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..38ce6c1 --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.app-sandbox + + + diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..5418c9f --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import FlutterMacOS +import Cocoa +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..6ce5d9c --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,1084 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" + url: "https://pub.dev" + source: hosted + version: "76.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.3" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" + url: "https://pub.dev" + source: hosted + version: "6.11.0" + args: + dependency: transitive + description: + name: args + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 + url: "https://pub.dev" + source: hosted + version: "2.6.0" + async: + dependency: transitive + description: + name: async + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 + url: "https://pub.dev" + source: hosted + version: "2.12.0" + auto_route: + dependency: "direct main" + description: + name: auto_route + sha256: b83e8ce46da7228cdd019b5a11205454847f0a971bca59a7529b98df9876889b + url: "https://pub.dev" + source: hosted + version: "9.2.2" + auto_route_generator: + dependency: "direct dev" + description: + name: auto_route_generator + sha256: c9086eb07271e51b44071ad5cff34e889f3156710b964a308c2ab590769e79e6 + url: "https://pub.dev" + source: hosted + version: "9.0.0" + beacon_distance: + dependency: "direct main" + description: + name: beacon_distance + sha256: "59ea80f7d31c7e9591e2095dae808d15a7fb28243da276019190ea94d1203cf7" + url: "https://pub.dev" + source: hosted + version: "0.0.3" + bloc: + dependency: "direct main" + description: + name: bloc + sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" + url: "https://pub.dev" + source: hosted + version: "8.1.4" + bloc_test: + dependency: "direct dev" + description: + name: bloc_test + sha256: "165a6ec950d9252ebe36dc5335f2e6eb13055f33d56db0eeb7642768849b43d2" + url: "https://pub.dev" + source: hosted + version: "9.1.7" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + url: "https://pub.dev" + source: hosted + version: "2.4.13" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + url: "https://pub.dev" + source: hosted + version: "7.3.2" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + url: "https://pub.dev" + source: hosted + version: "8.9.2" + characters: + dependency: transitive + description: + name: characters + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" + url: "https://pub.dev" + source: hosted + version: "4.10.1" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + coverage: + dependency: transitive + description: + name: coverage + sha256: "4b03e11f6d5b8f6e5bb5e9f7889a56fe6c5cbe942da5378ea4d4d7f73ef9dfe5" + url: "https://pub.dev" + source: hosted + version: "1.11.0" + crypto: + dependency: transitive + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + csv: + dependency: "direct main" + description: + name: csv + sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c + url: "https://pub.dev" + source: hosted + version: "6.0.0" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + url: "https://pub.dev" + source: hosted + version: "2.3.7" + diff_match_patch: + dependency: transitive + description: + name: diff_match_patch + sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4" + url: "https://pub.dev" + source: hosted + version: "0.4.1" + ditredi: + dependency: "direct main" + description: + name: ditredi + sha256: "0b6c5334fa4198a3e880d1865eece06189edf91ae894087ba67d347ead5aae4e" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + equatable: + dependency: "direct main" + description: + name: equatable + sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 + url: "https://pub.dev" + source: hosted + version: "2.0.5" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" + url: "https://pub.dev" + source: hosted + version: "1.3.2" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flat_buffers: + dependency: transitive + description: + name: flat_buffers + sha256: "380bdcba5664a718bfd4ea20a45d39e13684f5318fcd8883066a55e21f37f4c3" + url: "https://pub.dev" + source: hosted + version: "23.5.26" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a + url: "https://pub.dev" + source: hosted + version: "8.1.6" + flutter_blue_plus: + dependency: transitive + description: + name: flutter_blue_plus + sha256: "45ccee4a838f321c301b6130fbf3de28f07a2d6334a69eb5e13b6f83683080e0" + url: "https://pub.dev" + source: hosted + version: "1.33.6" + flutter_blue_plus_windows: + dependency: "direct main" + description: + name: flutter_blue_plus_windows + sha256: "8e84f894da4e41e776776f0e706cc35a237862a4d883033464c793b9d38de116" + url: "https://pub.dev" + source: hosted + version: "1.24.20" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_svg: + dependency: transitive + description: + name: flutter_svg + sha256: "578bd8c508144fdaffd4f77b8ef2d8c523602275cd697cc3db284dbd762ef4ce" + url: "https://pub.dev" + source: hosted + version: "2.0.14" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + forui: + dependency: "direct main" + description: + name: forui + sha256: b3b4652aaf7e6e3f8165a234a05a53cd80e13b805ae78004b8e5ef35dd67e51c + url: "https://pub.dev" + source: hosted + version: "0.6.1" + forui_assets: + dependency: "direct main" + description: + name: forui_assets + sha256: "48a036b329a855db9a18ebb3db98d5e9d1320479d747b48efd4e698ec7b1f178" + url: "https://pub.dev" + source: hosted + version: "0.3.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + get_it: + dependency: "direct main" + description: + name: get_it + sha256: c49895c1ecb0ee2a0ec568d39de882e2c299ba26355aa6744ab1001f98cebd15 + url: "https://pub.dev" + source: hosted + version: "8.0.2" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + google_fonts: + dependency: transitive + description: + name: google_fonts + sha256: b1ac0fe2832c9cc95e5e88b57d627c5e68c223b9657f4b96e1487aa9098c7b82 + url: "https://pub.dev" + source: hosted + version: "6.2.1" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + http: + dependency: transitive + description: + name: http + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + url: "https://pub.dev" + source: hosted + version: "1.2.2" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + url: "https://pub.dev" + source: hosted + version: "0.19.0" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec + url: "https://pub.dev" + source: hosted + version: "10.0.8" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + url: "https://pub.dev" + source: hosted + version: "3.0.9" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + macros: + dependency: transitive + description: + name: macros + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" + url: "https://pub.dev" + source: hosted + version: "0.1.3-main.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + url: "https://pub.dev" + source: hosted + version: "0.12.17" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + url: "https://pub.dev" + source: hosted + version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + mocktail: + dependency: "direct dev" + description: + name: mocktail + sha256: "890df3f9688106f25755f26b1c60589a92b3ab91a22b8b224947ad041bf172d8" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + nitrogen_flutter_svg: + dependency: transitive + description: + name: nitrogen_flutter_svg + sha256: "2c473caaeeeddb11a437e72f9d112622619493ce22dcd6b41f7364cb999b8e2b" + url: "https://pub.dev" + source: hosted + version: "0.3.0+1" + nitrogen_types: + dependency: transitive + description: + name: nitrogen_types + sha256: "04c3e921fe59a47710b81f6bfd3c4dfeb819ca16e25ad6824dcc5b44ca39ed46" + url: "https://pub.dev" + source: hosted + version: "0.3.0+1" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + objectbox: + dependency: "direct main" + description: + name: objectbox + sha256: ea823f4bf1d0a636e7aa50b43daabb64dd0fbd80b85a033016ccc1bc4f76f432 + url: "https://pub.dev" + source: hosted + version: "4.0.3" + objectbox_flutter_libs: + dependency: "direct main" + description: + name: objectbox_flutter_libs + sha256: c91350bbbce5e6c2038255760b5be988faead004c814f833c2cd137445c6ae70 + url: "https://pub.dev" + source: hosted + version: "4.0.3" + objectbox_generator: + dependency: "direct dev" + description: + name: objectbox_generator + sha256: "96da521f2cef455cd524f8854e31d64495c50711ad5f1e2cf3142a8e527bc75f" + url: "https://pub.dev" + source: hosted + version: "4.0.3" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: "direct main" + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a + url: "https://pub.dev" + source: hosted + version: "2.2.12" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" + source: hosted + version: "2.4.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + permission_handler: + dependency: "direct main" + description: + name: permission_handler + sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb" + url: "https://pub.dev" + source: hosted + version: "11.3.1" + permission_handler_android: + dependency: transitive + description: + name: permission_handler_android + sha256: "71bbecfee799e65aff7c744761a57e817e73b738fedf62ab7afd5593da21f9f1" + url: "https://pub.dev" + source: hosted + version: "12.0.13" + permission_handler_apple: + dependency: transitive + description: + name: permission_handler_apple + sha256: e6f6d73b12438ef13e648c4ae56bd106ec60d17e90a59c4545db6781229082a0 + url: "https://pub.dev" + source: hosted + version: "9.4.5" + permission_handler_html: + dependency: transitive + description: + name: permission_handler_html + sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851 + url: "https://pub.dev" + source: hosted + version: "0.1.3+2" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9 + url: "https://pub.dev" + source: hosted + version: "4.2.3" + permission_handler_windows: + dependency: transitive + description: + name: permission_handler_windows + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" + url: "https://pub.dev" + source: hosted + version: "0.2.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" + url: "https://pub.dev" + source: hosted + version: "3.9.1" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b + url: "https://pub.dev" + source: hosted + version: "2.1.2" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + url: "https://pub.dev" + source: hosted + version: "0.10.12" + source_span: + dependency: transitive + description: + name: source_span + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + url: "https://pub.dev" + source: hosted + version: "1.10.1" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + stream_with_value: + dependency: transitive + description: + name: stream_with_value + sha256: "483d79bf604fdea5274e31207956b2f624f5f03a506cacf081b65cdfcfa647a6" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + sugar: + dependency: transitive + description: + name: sugar + sha256: "9bfbba7793b5e3650003fca22a857a1d8485e99bf17558cad406a74ba5c4aa3c" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test: + dependency: transitive + description: + name: test + sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" + url: "https://pub.dev" + source: hosted + version: "1.25.15" + test_api: + dependency: transitive + description: + name: test_api + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + url: "https://pub.dev" + source: hosted + version: "0.7.4" + test_core: + dependency: transitive + description: + name: test_core + sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" + url: "https://pub.dev" + source: hosted + version: "0.6.8" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + uuid: + dependency: "direct main" + description: + name: uuid + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + url: "https://pub.dev" + source: hosted + version: "4.5.1" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "773c9522d66d523e1c7b25dfb95cc91c26a1e17b107039cfe147285e92de7878" + url: "https://pub.dev" + source: hosted + version: "1.1.14" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "2430b973a4ca3c4dbc9999b62b8c719a160100dcbae5c819bae0cacce32c9cdb" + url: "https://pub.dev" + source: hosted + version: "1.1.12" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: ab9ff38fc771e9ee1139320adbe3d18a60327370c218c60752068ebee4b49ab1 + url: "https://pub.dev" + source: hosted + version: "1.1.15" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + very_good_analysis: + dependency: "direct dev" + description: + name: very_good_analysis + sha256: "1fb637c0022034b1f19ea2acb42a3603cbd8314a470646a59a2fb01f5f3a8629" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" + url: "https://pub.dev" + source: hosted + version: "14.3.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + win_ble: + dependency: transitive + description: + name: win_ble + sha256: "2a867e13c4b355b101fc2c6e2ac85eeebf965db34eca46856f8b478e93b41e96" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.7.0-0 <4.0.0" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..d6fc777 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,45 @@ +name: xiao_pet_tracker +description: A Very Good Project created by Very Good CLI. +version: 1.0.0+4 +publish_to: none + +environment: + sdk: ^3.5.0 + +dependencies: + auto_route: ^9.2.2 + beacon_distance: ^0.0.3 + bloc: ^8.1.4 + csv: ^6.0.0 + ditredi: ^2.0.2 + equatable: ^2.0.5 + flutter: + sdk: flutter + flutter_bloc: ^8.1.6 + flutter_blue_plus_windows: ^1.24.15 + flutter_localizations: + sdk: flutter + forui: ^0.6.1 + forui_assets: ^0.3.0 + get_it: ^8.0.2 + intl: ^0.19.0 + objectbox: ^4.0.3 + objectbox_flutter_libs: any + path: ^1.9.0 + path_provider: ^2.1.5 + permission_handler: ^11.3.1 + uuid: ^4.5.1 + +dev_dependencies: + auto_route_generator: ^9.0.0 + bloc_test: ^9.1.7 + build_runner: ^2.4.13 + flutter_test: + sdk: flutter + mocktail: ^1.0.4 + objectbox_generator: any + very_good_analysis: ^6.0.0 + +flutter: + uses-material-design: true + generate: true diff --git a/test/app/view/app_test.dart b/test/app/view/app_test.dart new file mode 100644 index 0000000..273bb46 --- /dev/null +++ b/test/app/view/app_test.dart @@ -0,0 +1,12 @@ +// import 'package:flutter_test/flutter_test.dart'; +// import 'package:xiao_pet_tracker/app/app.dart'; +// import 'package:xiao_pet_tracker/counter/counter.dart'; + +// void main() { +// group('App', () { +// testWidgets('renders CounterPage', (tester) async { +// await tester.pumpWidget(const App()); +// expect(find.byType(CounterPage), findsOneWidget); +// }); +// }); +// } diff --git a/test/counter/cubit/counter_cubit_test.dart b/test/counter/cubit/counter_cubit_test.dart new file mode 100644 index 0000000..78a443e --- /dev/null +++ b/test/counter/cubit/counter_cubit_test.dart @@ -0,0 +1,26 @@ +// import 'package:bloc_test/bloc_test.dart'; +// import 'package:flutter_test/flutter_test.dart'; + +// import 'package:xiao_pet_tracker/counter/counter.dart'; + +// void main() { +// group('CounterCubit', () { +// test('initial state is 0', () { +// expect(CounterCubit().state, equals(0)); +// }); + +// blocTest( +// 'emits [1] when increment is called', +// build: CounterCubit.new, +// act: (cubit) => cubit.increment(), +// expect: () => [equals(1)], +// ); + +// blocTest( +// 'emits [-1] when decrement is called', +// build: CounterCubit.new, +// act: (cubit) => cubit.decrement(), +// expect: () => [equals(-1)], +// ); +// }); +// } diff --git a/test/counter/view/counter_page_test.dart b/test/counter/view/counter_page_test.dart new file mode 100644 index 0000000..b8b2914 --- /dev/null +++ b/test/counter/view/counter_page_test.dart @@ -0,0 +1,68 @@ +// import 'package:bloc_test/bloc_test.dart'; +// import 'package:flutter/material.dart'; +// import 'package:flutter_bloc/flutter_bloc.dart'; +// import 'package:flutter_test/flutter_test.dart'; +// import 'package:mocktail/mocktail.dart'; + +// import 'package:xiao_pet_tracker/counter/counter.dart'; + +// import '../../helpers/helpers.dart'; + +// class MockCounterCubit extends MockCubit implements CounterCubit {} + +// void main() { +// group('CounterPage', () { +// testWidgets('renders CounterView', (tester) async { +// await tester.pumpApp(const CounterPage()); +// expect(find.byType(CounterView), findsOneWidget); +// }); +// }); + +// group('CounterView', () { +// late CounterCubit counterCubit; + +// setUp(() { +// counterCubit = MockCounterCubit(); +// }); + +// testWidgets('renders current count', (tester) async { +// const state = 42; +// when(() => counterCubit.state).thenReturn(state); +// await tester.pumpApp( +// BlocProvider.value( +// value: counterCubit, +// child: const CounterView(), +// ), +// ); +// expect(find.text('$state'), findsOneWidget); +// }); + +// testWidgets('calls increment when increment button is tapped', +// (tester) async { +// when(() => counterCubit.state).thenReturn(0); +// when(() => counterCubit.increment()).thenReturn(null); +// await tester.pumpApp( +// BlocProvider.value( +// value: counterCubit, +// child: const CounterView(), +// ), +// ); +// await tester.tap(find.byIcon(Icons.add)); +// verify(() => counterCubit.increment()).called(1); +// }); + +// testWidgets('calls decrement when decrement button is tapped', +// (tester) async { +// when(() => counterCubit.state).thenReturn(0); +// when(() => counterCubit.decrement()).thenReturn(null); +// await tester.pumpApp( +// BlocProvider.value( +// value: counterCubit, +// child: const CounterView(), +// ), +// ); +// await tester.tap(find.byIcon(Icons.remove)); +// verify(() => counterCubit.decrement()).called(1); +// }); +// }); +// } diff --git a/test/helpers/helpers.dart b/test/helpers/helpers.dart new file mode 100644 index 0000000..cc7eb61 --- /dev/null +++ b/test/helpers/helpers.dart @@ -0,0 +1 @@ +// export 'pump_app.dart'; diff --git a/test/helpers/pump_app.dart b/test/helpers/pump_app.dart new file mode 100644 index 0000000..46ed94d --- /dev/null +++ b/test/helpers/pump_app.dart @@ -0,0 +1,15 @@ +// import 'package:flutter/material.dart'; +// import 'package:flutter_test/flutter_test.dart'; +// import 'package:xiao_pet_tracker/l10n/l10n.dart'; + +// extension PumpApp on WidgetTester { +// Future pumpApp(Widget widget) { +// return pumpWidget( +// MaterialApp( +// localizationsDelegates: AppLocalizations.localizationsDelegates, +// supportedLocales: AppLocalizations.supportedLocales, +// home: widget, +// ), +// ); +// } +// } diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000..66a69cb Binary files /dev/null and b/web/favicon.png differ diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000..69c31fc Binary files /dev/null and b/web/icons/Icon-192.png differ diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000..d920815 Binary files /dev/null and b/web/icons/Icon-512.png differ diff --git a/web/icons/favicon.png b/web/icons/favicon.png new file mode 100644 index 0000000..66a69cb Binary files /dev/null and b/web/icons/favicon.png differ diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..65034c7 --- /dev/null +++ b/web/index.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + Xiao Pet Tracker + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..eeefbd7 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,23 @@ +{ + "name": "Xiao Pet Tracker", + "short_name": "Xiao Pet Tracker", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A Very Good Project created by Very Good CLI.", + "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" + } + ] +} diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..0a8b4c1 --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,95 @@ +cmake_minimum_required(VERSION 3.14) +project(xiao_pet_tracker LANGUAGES CXX) + +set(BINARY_NAME "xiao_pet_tracker") + +cmake_policy(SET CMP0063 NEW) + +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Configure build options. +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() + +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. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") + +# Flutter library and tool build rules. +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build +add_subdirectory("runner") + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..b2e4bd8 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,103 @@ +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + windows-x64 $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..2ef7154 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,17 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + ObjectboxFlutterLibsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ObjectboxFlutterLibsPlugin")); + PermissionHandlerWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); +} diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..c46e00f --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,25 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + objectbox_flutter_libs + permission_handler_windows +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..de2d891 --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +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_standard_settings(${BINARY_NAME}) +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..f5cb8d0 --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#ifdef FLUTTER_BUILD_NUMBER +#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER +#else +#define VERSION_AS_NUMBER 1,0,0 +#endif + +#ifdef FLUTTER_BUILD_NAME +#define VERSION_AS_STRING #FLUTTER_BUILD_NAME +#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.verygoodcore.xiao-pet-tracker" "\0" + VALUE "FileDescription", "xiao_pet_tracker" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "xiao_pet_tracker" "\0" + VALUE "LegalCopyright", "Copyright (C) 2022 com.example.verygoodcore.xiao-pet-tracker. All rights reserved." "\0" + VALUE "OriginalFilename", "xiao_pet_tracker.exe" "\0" + VALUE "ProductName", "Xiao Pet Tracker" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..b43b909 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,61 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..ea2d178 --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.CreateAndShow(L"Xiao Pet Tracker", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 0000000..d7b448f --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +// +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000..c04e20c Binary files /dev/null and b/windows/runner/resources/app_icon.ico differ diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..c977c4a --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..d19bdbb --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,64 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr); + if (target_length == 0) { + return std::string(); + } + std::string utf8_string; + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, utf8_string.data(), + target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 0000000..c10f08d --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,245 @@ +#include "win32_window.h" + +#include + +#include "resource.h" + +namespace { + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + FreeLibrary(user32_module); + } +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registar 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::CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + 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; + } + + return OnCreate(); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 0000000..17ba431 --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,98 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates and shows a win32 window with |title| and position and size 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 to will treat the width height passed in to this function + // as logical pixels and scale to appropriate for the default monitor. Returns + // true if the window was created successfully. + bool CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size); + + // 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 + // responsponds 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; + + 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_