From 4eabfa8402e179e423c36e750688467aaea8af0a Mon Sep 17 00:00:00 2001 From: Muhammad Iqbal Date: Thu, 19 Jun 2025 08:28:20 +0700 Subject: [PATCH] lat update --- .gitignore | 45 + .metadata | 45 + README.md | 16 + analysis_options.yaml | 28 + android/.gitignore | 13 + android/app/build.gradle | 44 + android/app/google-services.json | 30 + android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 50 + .../com/example/pawrecue/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 6168 bytes .../mipmap-hdpi/ic_launcher_background.png | Bin 0 -> 3928 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 3059 bytes .../mipmap-hdpi/ic_launcher_monochrome.png | Bin 0 -> 2967 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3442 bytes .../mipmap-mdpi/ic_launcher_background.png | Bin 0 -> 2247 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 1527 bytes .../mipmap-mdpi/ic_launcher_monochrome.png | Bin 0 -> 1456 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 8864 bytes .../mipmap-xhdpi/ic_launcher_background.png | Bin 0 -> 6235 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 3644 bytes .../mipmap-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 3518 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 16485 bytes .../mipmap-xxhdpi/ic_launcher_background.png | Bin 0 -> 14470 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 7745 bytes .../mipmap-xxhdpi/ic_launcher_monochrome.png | Bin 0 -> 7576 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 23712 bytes .../mipmap-xxxhdpi/ic_launcher_background.png | Bin 0 -> 30909 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 9732 bytes .../mipmap-xxxhdpi/ic_launcher_monochrome.png | Bin 0 -> 9410 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 29 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + android/settings.gradle | 28 + firebase.json | 1 + ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 616 ++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 1418 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/GoogleService-Info.plist | 30 + ios/Runner/Info.plist | 49 + ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/assets/icon/flood.png | Bin 0 -> 83996 bytes lib/assets/icon/logo.png | 0 lib/firebase_options.dart | 64 ++ lib/main.dart | 59 ++ lib/screens/dashboard_screen.dart | 486 +++++++++ lib/screens/location_screen.dart | 323 ++++++ lib/screens/login_screen.dart | 132 +++ lib/screens/main_screen.dart | 42 + lib/screens/notification_screen.dart | 220 ++++ lib/screens/settings_screen.dart | 257 +++++ lib/screens/splash_screen.dart | 58 ++ lib/utils/constants.dart | 7 + lib/utils/notification_service.dart | 69 ++ lib/widgets/bottom_navbar.dart | 54 + pubspec.lock | 946 ++++++++++++++++++ pubspec.yaml | 108 ++ 96 files changed, 4382 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/google-services.json create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/pawrecue/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 firebase.json create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/GoogleService-Info.plist create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/assets/icon/flood.png create mode 100644 lib/assets/icon/logo.png create mode 100644 lib/firebase_options.dart create mode 100644 lib/main.dart create mode 100644 lib/screens/dashboard_screen.dart create mode 100644 lib/screens/location_screen.dart create mode 100644 lib/screens/login_screen.dart create mode 100644 lib/screens/main_screen.dart create mode 100644 lib/screens/notification_screen.dart create mode 100644 lib/screens/settings_screen.dart create mode 100644 lib/screens/splash_screen.dart create mode 100644 lib/utils/constants.dart create mode 100644 lib/utils/notification_service.dart create mode 100644 lib/widgets/bottom_navbar.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79c113f --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..5b39692 --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "d8a9f9a52e5af486f80d932e838ee93861ffd863" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + - platform: android + create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + - platform: ios + create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + - platform: linux + create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + - platform: macos + create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + - platform: web + create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + - platform: windows + create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/README.md b/README.md new file mode 100644 index 0000000..6549064 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# pawrecue + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..55afd91 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..1650094 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,44 @@ +plugins { + id "com.android.application" + id "com.google.gms.google-services" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + +android { + namespace = "com.example.pawrecue" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + coreLibraryDesugaringEnabled true + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17 + } + + defaultConfig { + applicationId = "com.example.pawrecue" + minSdk = 23 + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + signingConfig = signingConfigs.debug + } + } +} + +flutter { + source = "../.." +} + +dependencies { + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' +} diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..6eae01f --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,30 @@ +{ + "project_info": { + "project_number": "203483035763", + "firebase_url": "https://floodwatch-cabc5-default-rtdb.asia-southeast1.firebasedatabase.app", + "project_id": "floodwatch-cabc5", + "storage_bucket": "floodwatch-cabc5.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:203483035763:android:bbfc19da7a54fd8c35d206", + "android_client_info": { + "package_name": "com.example.pawrecue" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDCtvZMg-Ma0BCjG3eEpEEgs19EJVBTx90" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..eb6d176 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/pawrecue/MainActivity.kt b/android/app/src/main/kotlin/com/example/pawrecue/MainActivity.kt new file mode 100644 index 0000000..19f2201 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/pawrecue/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.pawrecue + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..29d9399f5751143f7d16b0b60f3ab521f277e1da GIT binary patch literal 6168 zcmV+z80Y7SP)Py1(n&-?RCr$PTzimI)tUdD+ubugubw9_VFqRf#6eLM1rb)WASUsFf~6$!MKCH6 zbQOba5E13E#I<(Us#r!7%dJ>Rc1ulEP!Wy62M-~<3PGL@?}1^4c`(CFPj}z5^__dp zz31GyJq(B`|JbgYnxXslef;kC{l4G#JKu%j|6g4qz`jHH_|JuZ7tZY;4Ujq>{Z>DO zL(q9Bfb`$~_r7%u{}BM`V1(|Owe@=`bXXbLCD*V>!5HuqLnMDRT{&m+hyDgfD%rd$ zm1z2$F^e;c*?*i{wg5m1fGsxhe!exJzAb>%ek}l@DUWU#8!4)If^#sN#YWTBbl5=B z1~}(P*z$@AAQ?}DLO2YBEDp{Xz&J890GqaHJ+#DbKe6)7#l!!m0Y=|E=V^Ja0aDRI zz=R)|cVHgEc~^6mKl)S$2N*-brr2<B_07qzg2|U;D}~2ghCvV z5YW+jXvy1i%by02lwh4xpw1;gDq6-x3oGV^Lb1{937{hh5g`NsU8qf0D!_0egCa

RbRs`yg;4_s!WqKb%!MyR8FA(5)AM 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 b#VfJ?n*DU<=|WNHs?23=0hqtRpTGHk&u~Ne literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..c0d97e48dca06f2bc33a829f345a2ecfa8389ba4 GIT binary patch literal 3059 zcmeHJ={wtr8jT{QrBO_4typ5IE`(aEs+Q&#q{LEcttCj@GN^TI)fQ80Buv_fEvh;b zW!l~pQMHtaZHii2t=h%dMPdoA`!C$*x!>l)`<^f7oDb)D-silT4yc>rC*)3mKp=4d zVTC@z^8bzq_-MCooRL2Qfk^bt8=#s#1vUtDk_K2=ILCS~lY_GEyZrQc;v)BZ!fI1z zO&vXWNxdU@sJ;Drg*xkUokX@=g^j-Q8Od5J>yMX$L)}__ZF-=o33W67YdJ2eIDov` zHy(K@2E+Acm?{fJ^gVTpr?=8hnApY;QgL&9~ z10f=sMy%w^;a3bmTRnHVj3#RJHNk~ffQi*Wky^1Ea_nrpw>BmO${2GNhAD53w)Djy zc3ao{O-0Ru7!yksPQ_pT5YTkRC6-bMm1q!Ug@TcSsj1T3^y1gU59k|nb zBGsB0gorh{mUoUhe^P=9NCiI*eGOo9W_cVde0IBS~Ea^l? zW35u!z_!!&K`W}AAo%P3U?X-?kWnyS_h5b&_6<3ZeVYt?+C1Kt$=}1HAS8u`ytuTB zNde%x%90@iy{QsdQ=rIP`Y{`>s~8tELf}XM{drMavRtwF|Cc46eU z2x-sH_^>Na+T0`n^>V{%WnEplAlawTGf-<*&?)irVx$%~gJv=kZ_i7yAg^ef*QcFB zi2D)dUcAfmp>hnrbfXcOS!Tmyk#f*zgnC1n2C>vS9&KhEltVFP_T*%sME#cfjdaF! zxlVL~mA?Q{5?qDG(w(o4Rw;TQ%Qos}GxlZePsNCmsL3zPbKxNoMww!Z>a5R8=sCKOW9HoO4(`u(yE@rn=!^v+FOE-)_uI&iqm(TIE`* z_F+}_)cIAPp(|2blNt~07JIu{i6G8r<*kjC$ov2=wqh@u`v!d{LTN&mb~aCl-%I5uhY*KBG2^&A;)Wf^+066 zrDNZqec9uvYt0}lgDrgxkmv~Lnner;qll%ApDruPw-h{HundNWJS{byb5Y(rL`LTO zGklmc;cYDeV?DP1;B;!*(dD_9s=nq4PJLU~VEVh#qOxF~z%|N~hQ!bdjPw29X-S|_9WmEDmd?sZaI+G;6U+9$^ z*ljb?;l7h})P8%JE?9e~G?}wYTAQEv$lS?TSqhA7yG2Gd>pJ_RNDWydci8Q7;cdi} zx=UF~?ya|E0}Ig${$zbDZAojaWS|)_q4E|3j#t_2bc6(b&5xi8)eW=M4*3=$_3TM=19vAVQ9#k1$n0{zH|G-RKcxLIH zv~_9fPtd$B<;Tw=A|oD>-FBPi&yRiXal4I2L#scTfYD^LSYkoT+ZDFg6>K9f zG)}9RBr0{Q0Fy4qyO(T8OMCCS8H0&Yjz9)^*YU7{IO2pMHP&J=BKv zxW&7u!*j*c>5F{xGb5IMh7+UFqd!z&iuZWni~Lj@i7>$3qxjN@L#KX(hfs3J%N^UK z(+xE9JIKkt?j+R!wEr9qqJS(c9`6bqkZtcYrD4A!-l*)weYNA&** b;y`c-nb)E+97jF+;z58l%Btpu?}PsUD><7x literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..e840d27556fe0f3573b0b9fbabd8e404ef245e3e GIT binary patch literal 2967 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 KjHtK1n)(lUmSQ6S literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dd29de4067b2f8d5aa76d0e795c14e92be53c646 GIT binary patch literal 3442 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 U$~^SD{{R3007*qoM6N<$f*~Z0zyJUM literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8c8af6aff66b045b73e95508fe92605f4d8f52 GIT binary patch literal 2247 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..95c14b3877a694279b330507d68f30cf92edb065 GIT binary patch literal 1456 zcmd7S|3A|S0LSs6MY0v5Qs_K#tV~(he2dfM>!$N{M!rNIZL&;XSi-i#^tf@|ZRN{E zhc%bUE@LazR!xVjDO>Zc_V8_V%p;wLFCTR7zvzee>-itNOHW|~A;wn5AP@)=9E6V8 z^!)!b+Pc~D^w_>l^e#pO`h!~J`)5EPFfkbYQ&eu^94Bs?6uGCX(D1A=vUq!%O?G2i z*&he(B3Uypq#mZE8wXR{;T3TNEe%zrzsxlAI5urMV09^M&%)S1B=b zSncehZgEz-a#yGVT1Mk;#2?yf+326qifc{t)!&{j{mtc9lNRgmQxX$u&dsEaQWvSd z)NtB;YOLY%C{%5ML$2oQdqXx>0pt#UDOUV*_ zq8_6i_9S0b6;0w{8>4ig(W;T+vU%2#19}c_m}>ky7Svw+d;^dyQHRHf93}I#HEItI zuX@HGn;MqDB{h;AKH~&qZxa+$ZKTd>=+&zDw_#+`k>#YkR&XfyTqd0l+7EGpMJg=? zgF73Cf;zX2>>OSRcD0S?DrJ(Xvwiquo{re=hhw^#{;6C|1>^k`ckldV&Ep^gmRVFk z(eyl<=gI-kdPv?JlgJutH+J0$DPWK2j@x6`qhS3%j)`%=z_(dg@Wrnp2fNBb%jK0% zF?>rYr-Zp?Kj2)!xfdEa>4b^DCY;=>&CCy_wY)t33t@T+kqHa;^yWV8+ZqMbh2>~F zdSU{*+B&-ZMu5o;%FmDAmE*{(PudqSkCLsW6UA?78TALeO2>Z>kzc|`DPzl^&p}E0 zNd4V@_FobExkX}ZLx6L#O9cTZ$2sqbC8Be=+76(?d``jEC>`l}yP zd4x_a?amn!*$naPxOcPc%y7z~h0lIpXwY86S3jgaa+$ta2aE8)BT0ptciHlGOgZra zd%$l+b)p6^WOFbjyuOu6aE56^dBSl68<-4d5f4-qd;xYLXCckDP=y0wwJJoA@8v0L z;yHbBXOtA~Pm1)hqQrfw$g|MS?b}!7V!I6@rc~-aAncvrhpyGq;W&g4UI7m6@>5Wcq)Hwzu#A literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ccfadb0cb63a645eef06d7bb523f4ca1e6e70b33 GIT binary patch literal 8864 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 UNDi0?X*mdhd-}s#+#~V-0rM<2H2?qr literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..446dfb16dce539f62e60f9dfd92bff9e6ef93124 GIT binary patch literal 3518 zcmeH~`7;|@8^=+UsHK(`7olP;71ym+t+l7MRqWKRz4onIv87_)iC#-BrTSW`MYpIb znpz?RrIrY#DwSFjTaZM&>2L49@Xp+s^PK0IIcMfMbLM+K=XtX1Y%KTzk^nX~Hhzeu zsXfc%e;W@sYtE8Y-()%VXnPA|ww6(;Ro13hi0O5QSkKL>2aReFu?%={UuAT@GD6%X z+NP#i+>X&(DHc6C+n*Z9UnVAhXWR^(>3UuBG){*#_D)}(haHU0Z&f$#Qo873dieHM z(&XM1Qbl#kHOEA&5aB{2iDbW_3xBw92xlV7Ifa!$HQs3v{OasnTBkvFmPTm6lB634 z;EsT0P2od?*yqb{IYn_&g+_AhTo+S=|K?RL(~(U!<^VYH%zP2H14kQiq;ZPA5NfGa zsPSHT$O+(8c9HWixoL#PvGa-w+qD_LPcM0hC_nXYqW|BkL%{?p^{`FFpD1GxW(TYh z(yC{+PVRv)qsr)XC=zZPS1NOlhn=gUTBy`IY8NzfBMJ+;`)z;1OX27S@<0h@feg12 z>>^njl=>CVt6?uAJuYC&D{xY|{ykPZKmWt*erE<(f<&d=KCTK>kvTrr!(8lvXo8B1wDB}dzunkiFkQ3sZmITnQ(l&H{2KNj6AJyG-_GNC+OTH zf|P0xfQMV{G=dg^S<$aR8llGF1O;c*%o#%BGEpl>$~j{p2_` zAE=j=sh6;P5-0Q>sIGmy4c$%dO`JE;rCKyL@RN2JAjZAh^T3J4S)`tCEbzdUhMlbo z2F1gWi&E+IUK#R1Tc2Hj zA>HLfL&)e%dS`fHYAtzT(*&|mLCjF692L)lu`zKECPyP|=%z@+ypSDzuY-bRRW&j10 z2FVw;OT!jfhj_zjqP+6jK=0P$i;A#myMV~4EDYHoS2ZjCUGv~0p}pS9Z$BHPKK>|c z6_C$6sESOQ2_sp=3_q{;2576|7mE|ruosIz!cyGyw!)8GW5%do*Y3$<$2`Ow#jWPM z{mm~AMB&{*9r4I!1)Y&pra^IPGYGyiEomPU)x3034pEGyEHM z7(XK5yW^k}0wueR9$-cB3~XHL#L221*fxZpwlk%_k-OD_Nbr4sgINoOi*kE)>_1re z50iP7=kP1YE0|<49#Jqb<`bl-p>L)A6?jnVu`QSoExP@w;USwUi*^dP{eZC?fcxK} zMr{AEP>5`KC8+oNEpX(P=|B6{r)7*W;*byg%lx}|jDLWZ$%bvYW?%Q3G}tnt0wib? zMMWWDj_@e+rTZFgBeFI2OECE1&8?E-YZh0aiCeFf(+ypzG3*RbM&2{F{j9l?H; zywH}}Q$=e9)`WP%R2KbP^T~Nn9Ys} zc&bu{*u?5m%Z*f#DW|0ii8<1-r0jR}SY&~yBd z?D+9T2{*fQ_b$==qQ7|ZU0Mx4VjR-f<0=P>Wa==9pNmF69cU!~$@=Njr#}h*(wb1P z;I;JTXK(f1wNHuhp2xo-(*oxnt6Z?d54nNOm&AouV>J3D!7_EGXa7tAF{%c-DXhmFuE(1e$U~D_FBr#MdCQ6_bZJ*@7|Pd- z(bN;L#P)JgTj?A{i*&X%Byz+l0xIb&;O}GDZ%rT(7!vNDwt;#EtJdxz=#le-F>{0K zkC+1UngA3{zQH&7wbIJ7IB?vZii?C+V+24*=J8D3s{r=saQZ%`2g>z2bQxeC!{>M@ zy0v+=SM2PGrZurB$>MwhK?K4goF5urzp>xjVg(GhRh9eVdqtJoGIq#v?8$=K z?b@FHFo(T%ymaf%hx5_=IMzti&dcVdLj85$#uRsCCV0e)%h-0#*GDFuX@7E6m{<}jF_uL7t$tVV zP>PF4x(Bqh6(E10B N4Ps_v+G6aD_%AuWE9?LO literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6928d84ec897f97d400eb5420b53f450ab5a34 GIT binary patch literal 16485 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 LNkvXXu0mjfJQ%}m literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed43848daf909314698784194b25f781a54392d GIT binary patch literal 14470 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
!!{)8&z=||B47;rB=czFihp}nEMBB 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 KSe=dw=05=P->_={ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2e18e3daadf0eb15df82e57bbe6867861ec2d12d GIT binary patch literal 23712 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 P00000NkvXXu0mjfR!#vz literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..048cb4af1b454063ad58d27472bab1bce5c5d327 GIT binary patch literal 30909 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

}uQI0HX_$1(Y8|6VDx2M%e$MzQ#xMa< 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..2ecba5370dbefc9947a5c798faae7ef35e9bb0fd GIT binary patch literal 9732 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 XHORz&Q7-}4x|Du#_l9DRhyC_Hn%(=n literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb0532152096147c9501c47d976481052bacfb1 GIT binary patch literal 9410 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 O$i;JZXUoob#r+46sr2Xo literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..f267ac1 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,29 @@ +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:8.2.1' + classpath 'com.google.gms:google-services:4.4.0' + } +} + +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..2597170 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..9e373a7 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip + diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..5914426 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,28 @@ +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 + }() + + includeBuild("$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.2.1" apply false + // START: FlutterFire Configuration + id "com.google.gms.google-services" version "4.3.15" apply false + // END: FlutterFire Configuration + id "org.jetbrains.kotlin.android" version "1.8.22" apply false +} + +include ":app" diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..7708b5b --- /dev/null +++ b/firebase.json @@ -0,0 +1 @@ +{"flutter":{"platforms":{"android":{"default":{"projectId":"floodwatch-cabc5","appId":"1:203483035763:android:bbfc19da7a54fd8c35d206","fileOutput":"android/app/google-services.json"}},"dart":{"lib/firebase_options.dart":{"projectId":"floodwatch-cabc5","configurations":{"android":"1:203483035763:android:bbfc19da7a54fd8c35d206"}}}}}} \ 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..7c56964 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..a795ba3 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,616 @@ +// !$*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 */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; 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; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + 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 */, + ); + 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 = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 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 */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.pawrecue; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + 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.pawrecue.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + 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.pawrecue.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + 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.pawrecue.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.pawrecue; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.pawrecue; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/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.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..6266644 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@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.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..797d452e458972bab9d994556c8305db4c827017 GIT binary patch literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed2d933e1120817fe9182483a228007b18ab6ae GIT binary patch literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd7b0099ca80c806f8fe495613e8d6c69460d76 GIT binary patch literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fe730945a01f64a61e2235dbe3f45b08f7729182 GIT binary patch literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..502f463a9bc882b461c96aadf492d1729e49e725 GIT binary patch literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec303439225b78712f49115768196d8d76f6790 GIT binary patch literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f5fea27c705180eb716271f41b582e76dcbd90 GIT binary patch literal 1674 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0467bf12aa4d28f374bb26596605a46dcbb3e7c8 GIT binary patch literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist new file mode 100644 index 0000000..5ca44d6 --- /dev/null +++ b/ios/Runner/GoogleService-Info.plist @@ -0,0 +1,30 @@ + + + + + API_KEY + AIzaSyA70MH1F8zmlHpTqYwgtdFWtacYH3L2e4k + GCM_SENDER_ID + 203483035763 + PLIST_VERSION + 1 + BUNDLE_ID + com.example.pawrecue + PROJECT_ID + floodwatch-cabc5 + STORAGE_BUCKET + floodwatch-cabc5.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:203483035763:ios:dc4776aea57f000635d206 + + \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..1773ffc --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Pawrecue + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + pawrecue + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + 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/lib/assets/icon/flood.png b/lib/assets/icon/flood.png new file mode 100644 index 0000000000000000000000000000000000000000..91329e1a62e2f9511e470a31bb45fa784e66e135 GIT binary patch literal 83996 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¨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

`?ZERx1=;&r_ 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 createState() => _MyAppState(); +} + +class _MyAppState extends State { + @override + void initState() { + super.initState(); + NotificationService.initializeFCM(); // Inisialisasi FCM dan kirim token + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Early Flood Warning', + theme: ThemeData( + primaryColor: AppColors.primary, + scaffoldBackgroundColor: AppColors.background, + appBarTheme: const AppBarTheme( + backgroundColor: AppColors.primary, + foregroundColor: Colors.white, + ), + fontFamily: 'Poppins', + ), + debugShowCheckedModeBanner: false, + initialRoute: '/', + routes: { + '/': (context) => const SplashScreen(), + '/login': (context) => const LoginScreen(), + '/dashboard': (context) => const MainScreen(), + }, + ); + } +} diff --git a/lib/screens/dashboard_screen.dart b/lib/screens/dashboard_screen.dart new file mode 100644 index 0000000..b8ebc21 --- /dev/null +++ b/lib/screens/dashboard_screen.dart @@ -0,0 +1,486 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'package:flutter/material.dart'; +import 'package:fl_chart/fl_chart.dart'; +import 'package:intl/intl.dart'; +import '../utils/constants.dart'; +import '../screens/notification_screen.dart'; + +class DashboardScreen extends StatefulWidget { + const DashboardScreen({super.key}); + + @override + State createState() => _DashboardScreenState(); +} + +class _DashboardScreenState extends State { + String? namaSungai; + double maxWaterLevelRealtime = 300; // default + double currentWaterLevel = 0; + double maxWaterLevel = 200; + double thresholdValue = 150; + double cuacaValue = 0; + String cuacaText = "Cerah"; + Color cuacaColor = Colors.orange; + bool isRaining = false; + List> waterLevelHistory = []; + + String selectedFilter = "Hari Ini"; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (namaSungai == null) { + namaSungai = ModalRoute.of(context)?.settings.arguments as String?; + if (namaSungai != null) { + fetchRealtimeData(); + listenToThresholdFromRealtimeDB(); + listenToFirestoreHistory(); + listenMaxYFromRealtimeDB(); // ini yang baru + } + } + } + + void fetchRealtimeData() { + final ref = FirebaseDatabase.instance.ref(namaSungai!.toLowerCase().replaceAll(" ", "_")); + ref.onValue.listen((event) { + final data = event.snapshot.value as Map; + setState(() { + currentWaterLevel = (data['ketinggian'] as num).toDouble(); + cuacaValue = (data['hujan'] as num).toDouble(); + + if (cuacaValue >= 70) { + cuacaText = "Hujan"; + cuacaColor = Colors.blueGrey; + } else if (cuacaValue >= 30) { + cuacaText = "Grimis"; + cuacaColor = Colors.lightBlue; + } else { + cuacaText = "Cerah"; + cuacaColor = Colors.orange; + } + + isRaining = cuacaValue >= 70; + }); + }); + } + + void listenToThresholdFromRealtimeDB() { + final ref = FirebaseDatabase.instance + .ref("${namaSungai!.toLowerCase().replaceAll(" ", "_")}/threshold/nilai"); + ref.onValue.listen((event) { + final data = event.snapshot.value; + if (data != null) { + setState(() { + thresholdValue = (data as num).toDouble(); + }); + } + }); + } + + void listenMaxYFromRealtimeDB() { + final ref = FirebaseDatabase.instance.ref( + "${namaSungai!.toLowerCase().replaceAll(" ", "_")}/kalibrasi/tinggiSensor"); + ref.onValue.listen((event) { + final data = event.snapshot.value; + if (data != null) { + setState(() { + maxWaterLevelRealtime = (data as num).toDouble(); + }); + } + }); + } + + + void listenToFirestoreHistory() { + FirebaseFirestore.instance + .collection(namaSungai!.toLowerCase().replaceAll(" ", "_")) + .doc("riwayat") + .collection("data") + .orderBy("timestamp", descending: false) + .snapshots() + .listen((snapshot) { + final docs = snapshot.docs.map((doc) { + final data = doc.data(); + return { + "value": (data["value"] as num).toDouble(), + "timestamp": (data["timestamp"] as Timestamp).toDate(), + }; + }).toList(); + + setState(() { + waterLevelHistory = docs; + }); + }); + } + + + + + String getStatus(double level) { + if (level < thresholdValue * 0.66) return "Aman"; + if (level < thresholdValue) return "Waspada"; + return "Bahaya"; + } + + Color getStatusColor(double level) { + if (level < thresholdValue * 0.66) return const Color(0xFF00C2FF); + if (level < thresholdValue) return Colors.orange; + return Colors.red; + } + +List> getFilteredData() { + final now = DateTime.now(); + late DateTime from; + late DateTime Function(DateTime) groupBy; + + if (selectedFilter == "Hari Ini") { + from = DateTime(now.year, now.month, now.day); + groupBy = (dt) => DateTime(dt.year, dt.month, dt.day, dt.hour); + } else if (selectedFilter == "Minggu") { + from = now.subtract(const Duration(days: 7)); + groupBy = (dt) => DateTime(dt.year, dt.month, dt.day); + } else { + from = now.subtract(const Duration(days: 30)); + groupBy = (dt) => DateTime(dt.year, dt.month, dt.day); + } + + final filtered = + waterLevelHistory.where((e) => e['timestamp'].isAfter(from)); + + final Map> grouped = {}; + for (var item in filtered) { + final timeGroup = groupBy(item['timestamp']); + grouped.putIfAbsent(timeGroup, () => []).add(item['value']); + } + + final averaged = grouped.entries.map((entry) { + final avg = entry.value.reduce((a, b) => a + b) / entry.value.length; + return { + "timestamp": entry.key, + "value": avg, + }; + }).toList(); + + averaged.sort((a, b) => + (a['timestamp'] as DateTime).compareTo(b['timestamp'] as DateTime)); + return averaged; + } + + @override + Widget build(BuildContext context) { + if (namaSungai == null) { + return const Scaffold( + body: Center(child: CircularProgressIndicator()), + ); + } + + final status = getStatus(currentWaterLevel); + final statusColor = getStatusColor(currentWaterLevel); + final dateFormatted = DateFormat('EEEE, d MMMM yyyy • HH:mm', 'id_ID').format(DateTime.now()); + + return Scaffold( + backgroundColor: AppColors.background, + body: SingleChildScrollView( + padding: const EdgeInsets.all(16), + child: Column( + children: [ + _buildHeader(dateFormatted), + _buildCurrentWaterLevelCard(), + const SizedBox(height: 24), + Row( + children: [ + Expanded( + child: _buildCard( + icon: isRaining ? Icons.cloud : Icons.wb_sunny, + title: "Cuaca", + value: cuacaText, + color: cuacaColor, + ), + ), + const SizedBox(width: 16), + Expanded( + child: _buildCard( + icon: Icons.warning, + title: "Status", + value: status, + color: statusColor, + ), + ), + ], + ), + const SizedBox(height: 24), + _buildGraphCard(), + ], + ), + ), + ); + } + + Widget _buildHeader(String dateFormatted) { + return Padding( + padding: const EdgeInsets.only(top: 30, bottom: 25), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(namaSungai ?? "", + style: const TextStyle(fontSize: 22, fontWeight: FontWeight.bold, color: AppColors.primary)), + const SizedBox(height: 4), + Text(dateFormatted, style: const TextStyle(fontSize: 13, color: Colors.grey)), + ], + ), + ), + StreamBuilder( + stream: FirebaseFirestore.instance + .collection(namaSungai!.toLowerCase().replaceAll(" ", "_")) + .doc("notifikasi") + .collection("data") + .snapshots(), + builder: (context, snapshot) { + int notifCount = 0; + if (snapshot.hasData) { + notifCount = snapshot.data!.docs.length; + } + + return GestureDetector( + onTap: () { + Navigator.push(context, + MaterialPageRoute(builder: (_) => const NotificationScreen())); + }, + child: Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: AppColors.primary.withOpacity(0.1), + shape: BoxShape.circle), + child: Stack( + clipBehavior: Clip.none, + children: [ + const Icon(Icons.notifications_none, + size: 32, color: AppColors.primary), + if (notifCount > 0) + Positioned( + right: -2, + top: -4, + child: Container( + padding: const EdgeInsets.all(4), + decoration: const BoxDecoration( + color: Colors.red, shape: BoxShape.circle), + child: Text( + notifCount.toString(), + style: const TextStyle( + color: Colors.white, + fontSize: 12, + fontWeight: FontWeight.bold), + ), + ), + ), + ], + ), + ), + ); + }, + ), + ], + ), + ); + } + + Widget _buildCurrentWaterLevelCard() { + return Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: AppColors.primary, borderRadius: BorderRadius.circular(20)), + child: Row( + children: [ + Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.2), shape: BoxShape.circle), + child: const Icon(Icons.water, color: Colors.white, size: 48), + ), + const SizedBox(width: 24), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text("Tinggi Air Sekarang", + style: TextStyle(fontSize: 14, color: Colors.white70)), + const SizedBox(height: 8), + Text("${currentWaterLevel.toStringAsFixed(1)} cm", + style: const TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + color: Colors.white)), + ], + ), + ), + ], + ), + ); + } + + Widget _buildCard({ + required IconData icon, + required String title, + required String value, + required Color color, + }) { + return Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(24), + border: Border.all(color: Colors.grey.shade300, width: 1.2), + ), + child: Row( + children: [ + CircleAvatar( + backgroundColor: color.withOpacity(0.15), + child: Icon(icon, color: color)), + const SizedBox(width: 12), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(title, + style: const TextStyle(fontSize: 14, color: Colors.black54)), + const SizedBox(height: 4), + Text(value, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: color)), + ], + ), + ], + ), + ); + } + + Widget _buildGraphCard() { + final filters = ["Hari Ini", "Minggu", "Bulan"]; + final filteredData = getFilteredData(); + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: filters.map((filter) { + final isSelected = filter == selectedFilter; + return GestureDetector( + onTap: () => setState(() => selectedFilter = filter), + child: Container( + padding: + const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + margin: const EdgeInsets.symmetric(vertical: 8), + decoration: BoxDecoration( + color: isSelected ? AppColors.primary : Colors.grey[200], + borderRadius: BorderRadius.circular(20), + ), + child: Text(filter, + style: TextStyle( + color: + isSelected ? Colors.white : Colors.black54, + fontWeight: FontWeight.w500)), + ), + ); + }).toList(), + ), + const SizedBox(height: 12), + Container( + width: double.infinity, + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.25), + blurRadius: 12, + offset: const Offset(0, 6)) + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text("Grafik Ketinggian Air", + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: AppColors.primary)), + const SizedBox(height: 16), + SizedBox( + height: 220, + child: LineChart( + key: ValueKey(thresholdValue), + LineChartData( + minY: 0, + maxY: maxWaterLevelRealtime, + gridData: FlGridData(show: true), + titlesData: FlTitlesData( + leftTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + interval: 50, + getTitlesWidget: (value, _) => Text( + value.toInt().toString(), + style: const TextStyle( + fontSize: 10, color: Colors.grey), + ), + reservedSize: 28, + ), + ), + rightTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false)), + topTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false)), + bottomTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false)), + ), + borderData: FlBorderData(show: false), + extraLinesData: ExtraLinesData(horizontalLines: [ + HorizontalLine( + y: thresholdValue, + color: Colors.red, + strokeWidth: 2, + dashArray: [6, 4], + label: HorizontalLineLabel( + show: true, + alignment: Alignment.topRight, + labelResolver: (_) => 'Batas Aman', + style: const TextStyle( + color: Colors.red, fontWeight: FontWeight.bold), + ), + ), + ]), + lineBarsData: [ + LineChartBarData( + spots: filteredData + .asMap() + .entries + .map((e) => FlSpot( + e.key.toDouble(), e.value["value"])) + .toList(), + isCurved: true, + color: AppColors.primary, + barWidth: 4, + dotData: FlDotData(show: true), + belowBarData: BarAreaData( + show: true, + color: AppColors.primary.withOpacity(0.25)), + ), + ], + ), + ), + ), + ], + ), + ), + ], + ); + } +} diff --git a/lib/screens/location_screen.dart b/lib/screens/location_screen.dart new file mode 100644 index 0000000..9a318ca --- /dev/null +++ b/lib/screens/location_screen.dart @@ -0,0 +1,323 @@ +import 'package:flutter/material.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:intl/intl.dart'; +import 'package:pdf/pdf.dart'; +import 'package:pdf/widgets.dart' as pw; +import 'package:printing/printing.dart'; +import 'package:awesome_dialog/awesome_dialog.dart'; +import '../utils/constants.dart'; + +class LocationScreen extends StatefulWidget { + const LocationScreen({super.key}); + + @override + State createState() => _LocationScreenState(); +} + +class _LocationScreenState extends State { + String? namaSungai; + DateTime? startDate; + DateTime? endDate; + List> history = []; + LatLng? location; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (namaSungai == null) { + namaSungai = ModalRoute.of(context)?.settings.arguments as String?; + if (namaSungai != null) { + fetchHistory(); + fetchLocation(); + } + } + } + + void fetchHistory() { + final sungaiKey = namaSungai!.toLowerCase().replaceAll(" ", "_"); + FirebaseFirestore.instance + .collection(sungaiKey) + .doc('riwayat') + .collection('data') + .orderBy('timestamp', descending: true) + .snapshots() + .listen((snapshot) { + final List> docs = snapshot.docs.map((doc) { + final data = doc.data(); + final date = (data['timestamp'] as Timestamp).toDate(); + final value = (data['value'] as num).toDouble(); + final status = value >= 150 + ? "BAHAYA" + : value >= 100 + ? "WASPADA" + : "AMAN"; + final color = status == "BAHAYA" + ? Colors.red + : status == "WASPADA" + ? Colors.orange + : AppColors.primary; + return { + "waktu": date, + "level": "${value.toStringAsFixed(1)} cm", + "status": status, + "color": color, + }; + }).toList(); + + setState(() { + history = docs; + }); + }); + } + + void fetchLocation() async { + final sungaiKey = namaSungai!.toLowerCase().replaceAll(" ", "_"); + final snapshot = await FirebaseFirestore.instance + .collection(sungaiKey) + .doc('lokasi') + .get(); + + if (snapshot.exists) { + final data = snapshot.data(); + final lat = (data?['latitude'] as num?)?.toDouble(); + final lng = (data?['longitude'] as num?)?.toDouble(); + + if (lat != null && lng != null) { + setState(() { + location = LatLng(lat, lng); + }); + } + } + } + + Future exportPDF() async { + final pdf = pw.Document(); + const itemsPerPage = 30; + + final filteredHistory = history.where((item) { + final itemDate = item['waktu'] as DateTime; + if (startDate != null && itemDate.isBefore(startDate!)) return false; + if (endDate != null && itemDate.isAfter(endDate!)) return false; + return true; + }).toList(); + + final totalPages = (filteredHistory.length / itemsPerPage).ceil(); + + for (int page = 0; page < totalPages; page++) { + final start = page * itemsPerPage; + final end = start + itemsPerPage; + final pageItems = filteredHistory.sublist( + start, + end > filteredHistory.length ? filteredHistory.length : end, + ); + + pdf.addPage( + pw.Page( + pageFormat: PdfPageFormat.a4, + build: (context) => pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.start, + children: [ + pw.Text( + "Riwayat Ketinggian Air - ${namaSungai ?? ''} (Halaman ${page + 1} dari $totalPages)", + style: pw.TextStyle(fontSize: 18, fontWeight: pw.FontWeight.bold), + ), + pw.SizedBox(height: 16), + pw.Table.fromTextArray( + headers: ['Waktu', 'Ketinggian (cm)', 'Status'], + data: pageItems.map((item) { + return [ + DateFormat('yyyy-MM-dd HH:mm').format(item['waktu']), + item['level'], + item['status'] + ]; + }).toList(), + headerStyle: pw.TextStyle(fontWeight: pw.FontWeight.bold), + headerDecoration: const pw.BoxDecoration(color: PdfColors.grey300), + cellAlignment: pw.Alignment.centerLeft, + border: null, + ), + ], + ), + ), + ); + } + + await Printing.layoutPdf( + onLayout: (PdfPageFormat format) async => pdf.save(), + ); + + if (context.mounted) { + AwesomeDialog( + context: context, + dialogType: DialogType.success, + animType: AnimType.bottomSlide, + title: 'Sukses', + desc: 'Export PDF berhasil.', + btnOkOnPress: () {}, + btnOkColor: Colors.teal, + ).show(); + } + } + + @override + Widget build(BuildContext context) { + final filteredHistory = history.where((item) { + final itemDate = item['waktu'] as DateTime; + if (startDate != null && itemDate.isBefore(startDate!)) return false; + if (endDate != null && itemDate.isAfter(endDate!)) return false; + return true; + }).toList(); + + return Scaffold( + backgroundColor: AppColors.background, + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + title: const Text("Lokasi & Riwayat", style: TextStyle(color: Colors.black)), + centerTitle: true, + iconTheme: const IconThemeData(color: Colors.black), + ), + body: Column( + children: [ + // PETA LOKASI + Padding( + padding: const EdgeInsets.all(16), + child: Container( + height: 240, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + border: Border.all(color: Colors.grey.shade400), + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: location != null + ? GoogleMap( + initialCameraPosition: CameraPosition( + target: location!, + zoom: 16, + ), + markers: { + Marker( + markerId: const MarkerId("lokasi"), + position: location!, + infoWindow: InfoWindow(title: namaSungai), + ) + }, + ) + : const Center(child: Text("Memuat peta lokasi...", style: TextStyle(fontSize: 16))), + ), + ), + ), + + // FILTER TANGGAL + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Row( + children: [ + Expanded(child: _buildDatePicker("Dari", startDate, (date) => setState(() => startDate = date))), + const SizedBox(width: 12), + Expanded(child: _buildDatePicker("Sampai", endDate, (date) => setState(() => endDate = date))), + IconButton( + icon: const Icon(Icons.picture_as_pdf, color: AppColors.primary), + tooltip: "Export PDF", + onPressed: exportPDF, + ), + ], + ), + ), + + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 12), + child: Align( + alignment: Alignment.centerLeft, + child: Text("Riwayat Ketinggian Air", style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + ), + ), + + // LIST RIWAYAT + Expanded( + child: ListView.builder( + padding: const EdgeInsets.symmetric(horizontal: 16), + itemCount: filteredHistory.length, + itemBuilder: (context, index) { + final item = filteredHistory[index]; + return Container( + margin: const EdgeInsets.only(bottom: 12), + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: Colors.grey.shade300), + borderRadius: BorderRadius.circular(16), + ), + child: Row( + children: [ + CircleAvatar( + backgroundColor: item['color'].withOpacity(0.15), + child: Icon(Icons.water_drop, color: item['color']), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(DateFormat('yyyy-MM-dd HH:mm').format(item['waktu']), + style: const TextStyle(fontSize: 13, color: Colors.black54)), + const SizedBox(height: 4), + Text(item['level'], style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + ], + ), + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: item['color'].withOpacity(0.1), + borderRadius: BorderRadius.circular(12), + ), + child: Text(item['status'], style: TextStyle(color: item['color'], fontWeight: FontWeight.bold)), + ) + ], + ), + ); + }, + ), + ), + ], + ), + ); + } + + Widget _buildDatePicker(String label, DateTime? value, Function(DateTime) onSelected) { + return GestureDetector( + onTap: () async { + final picked = await showDatePicker( + context: context, + initialDate: value ?? DateTime.now(), + firstDate: DateTime(2023), + lastDate: DateTime(2100), + ); + if (picked != null) onSelected(picked); + }, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: Colors.grey.shade300), + borderRadius: BorderRadius.circular(12), + ), + child: Row( + children: [ + const Icon(Icons.calendar_today_outlined, size: 18, color: AppColors.primary), + const SizedBox(width: 8), + Expanded( + child: Text( + value != null ? DateFormat('dd MMM yyyy').format(value) : label, + style: TextStyle(fontSize: 13, color: value != null ? Colors.black87 : Colors.grey, fontWeight: FontWeight.w500), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/login_screen.dart b/lib/screens/login_screen.dart new file mode 100644 index 0000000..86f0740 --- /dev/null +++ b/lib/screens/login_screen.dart @@ -0,0 +1,132 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; +import '../utils/constants.dart'; +import 'package:awesome_dialog/awesome_dialog.dart'; + + +class LoginScreen extends StatefulWidget { + const LoginScreen({super.key}); + + @override + State createState() => _LoginScreenState(); +} + +class _LoginScreenState extends State { + final emailController = TextEditingController(); + final passwordController = TextEditingController(); + bool isLoading = false; + String? errorMessage; + + Future login() async { + setState(() { + isLoading = true; + errorMessage = null; + }); + + try { + final credential = await FirebaseAuth.instance.signInWithEmailAndPassword( + email: emailController.text.trim(), + password: passwordController.text.trim(), + ); + + final uid = credential.user!.uid; + final userDoc = + await FirebaseFirestore.instance.collection('users').doc(uid).get(); + + if (userDoc.exists && userDoc.data()!.containsKey('nama_sungai')) { + final namaSungai = userDoc['nama_sungai']; + + // Langsung pindah halaman tanpa alert + Navigator.pushReplacementNamed(context, '/dashboard', + arguments: namaSungai); + } else { + AwesomeDialog( + context: context, + dialogType: DialogType.warning, + animType: AnimType.leftSlide, + title: 'Akun Tidak Valid', + desc: 'Akun tidak memiliki data sungai.', + btnOkOnPress: () {}, + ).show(); + } + } on FirebaseAuthException catch (e) { + AwesomeDialog( + context: context, + dialogType: DialogType.error, + animType: AnimType.scale, + title: 'Gagal Login', + desc: e.message ?? 'Terjadi kesalahan saat login.', + btnOkOnPress: () {}, + ).show(); + } finally { + setState(() => isLoading = false); + } + } + + + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.background, + body: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 48), + child: Column( + children: [ + const SizedBox(height: 60), + const Icon(Icons.lock_outline, size: 80, color: AppColors.primary), + const SizedBox(height: 24), + const Text("Login Akun Alat", style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold)), + const SizedBox(height: 8), + const Text("Silakan login dengan akun yang sudah dibuat oleh admin.", style: TextStyle(fontSize: 14, color: Colors.black54), textAlign: TextAlign.center), + const SizedBox(height: 32), + + TextField( + controller: emailController, + decoration: InputDecoration( + labelText: 'Email', + border: OutlineInputBorder(borderRadius: BorderRadius.circular(12)), + filled: true, + fillColor: Colors.white, + ), + ), + const SizedBox(height: 16), + + TextField( + controller: passwordController, + obscureText: true, + decoration: InputDecoration( + labelText: 'Password', + border: OutlineInputBorder(borderRadius: BorderRadius.circular(12)), + filled: true, + fillColor: Colors.white, + ), + ), + + if (errorMessage != null) ...[ + const SizedBox(height: 12), + Text(errorMessage!, style: const TextStyle(color: Colors.red)), + ], + + const SizedBox(height: 24), + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: isLoading ? null : login, + style: ElevatedButton.styleFrom( + backgroundColor: AppColors.primary, + padding: const EdgeInsets.symmetric(vertical: 14), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + child: isLoading + ? const CircularProgressIndicator(color: Colors.white) + : const Text('Login', style: TextStyle(fontSize: 16, color: Colors.white)), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/main_screen.dart b/lib/screens/main_screen.dart new file mode 100644 index 0000000..7a4e9fb --- /dev/null +++ b/lib/screens/main_screen.dart @@ -0,0 +1,42 @@ +import 'package:flutter/material.dart'; +import 'dashboard_screen.dart'; +import 'location_screen.dart'; +import 'settings_screen.dart'; +import '../widgets/bottom_navbar.dart'; + +class MainScreen extends StatefulWidget { + const MainScreen({super.key}); + + @override + State createState() => _MainScreenState(); +} + +class _MainScreenState extends State { + int _currentIndex = 1; // Monitoring di tengah + + final List _screens = const [ + LocationScreen(), + DashboardScreen(), + SettingsScreen(), + ]; + + void onTabTapped(int index) { + setState(() { + _currentIndex = index; + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: IndexedStack( + index: _currentIndex, + children: _screens, + ), + bottomNavigationBar: BottomNavbar( + currentIndex: _currentIndex, + onTap: onTabTapped, + ), + ); + } +} diff --git a/lib/screens/notification_screen.dart b/lib/screens/notification_screen.dart new file mode 100644 index 0000000..613463c --- /dev/null +++ b/lib/screens/notification_screen.dart @@ -0,0 +1,220 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:flutter/material.dart'; +import '../utils/constants.dart'; +import 'package:firebase_auth/firebase_auth.dart'; + + +class NotificationScreen extends StatefulWidget { + const NotificationScreen({super.key}); + + @override + State createState() => _NotificationScreenState(); +} + +class _NotificationScreenState extends State { + String? namaSungai; + bool isLoading = true; + + @override + void initState() { + super.initState(); + getNamaSungai(); + } + + Future getNamaSungai() async { + try { + final uid = FirebaseAuth.instance.currentUser?.uid; + if (uid != null) { + final doc = + await FirebaseFirestore.instance.collection('users').doc(uid).get(); + setState(() { + namaSungai = doc.data()?['nama_sungai']; + isLoading = false; + }); + } else { + setState(() { + isLoading = false; + }); + } + } catch (e) { + print('Gagal mengambil nama sungai: $e'); + setState(() { + isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + if (isLoading) { + return const Scaffold( + body: Center(child: CircularProgressIndicator()), + ); + } + + if (namaSungai == null) { + return const Scaffold( + body: Center(child: Text("Gagal memuat nama sungai.")), + ); + } + + return Scaffold( + backgroundColor: AppColors.background, + appBar: AppBar( + backgroundColor: Colors.white, + title: const Text("Notifikasi", style: TextStyle(color: Colors.black)), + centerTitle: true, + iconTheme: const IconThemeData(color: Colors.black), + elevation: 0, + ), + body: StreamBuilder( + stream: FirebaseFirestore.instance + .collection(namaSungai!) // Nama koleksi sesuai nama_sungai + .doc("notifikasi") + .collection("data") + .orderBy("timestamp", descending: true) + .snapshots(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + if (!snapshot.hasData || snapshot.data!.docs.isEmpty) { + return const Center(child: Text("Tidak ada notifikasi.")); + } + + final notifications = snapshot.data!.docs.map((doc) { + var data = doc.data() as Map; + + return { + 'id': doc.id, + 'title': data['title'] ?? 'Tanpa Judul', + 'message': data['message'] ?? 'Pesan tidak tersedia.', + 'time': formatTimestamp(data['timestamp'] ?? Timestamp.now()), + 'level': data['level'] ?? 'AMAN', + 'color': getNotificationColor(data['level'] ?? 'AMAN'), + }; + }).toList(); + + return ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: notifications.length, + itemBuilder: (context, index) { + final notif = notifications[index]; + return Dismissible( + key: Key(notif['id']), + direction: DismissDirection.endToStart, + onDismissed: (direction) { + _deleteNotification(notif['id']); + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text("${notif['title']} dihapus"), + )); + }, + background: Container( + color: Colors.red, + child: const Align( + alignment: Alignment.centerRight, + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: Icon(Icons.delete, color: Colors.white), + ), + ), + ), + child: Container( + margin: const EdgeInsets.only(bottom: 12), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: notif['color'].withOpacity(0.25)), + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: notif['color'].withOpacity(0.1), + shape: BoxShape.circle, + ), + child: Icon(Icons.notifications, color: notif['color'], size: 24), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Text( + notif['title'], + style: TextStyle( + fontWeight: FontWeight.w600, + color: notif['color'], + fontSize: 15, + ), + ), + ), + Text( + notif['time'], + style: const TextStyle(fontSize: 12, color: Colors.grey), + ), + ], + ), + const SizedBox(height: 6), + Text( + notif['message'], + style: const TextStyle(color: Colors.black87, fontSize: 14), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ); + } + + String formatTimestamp(Timestamp timestamp) { + final date = timestamp.toDate(); + final monthNames = [ + "Januari", "Februari", "Maret", "April", "Mei", "Juni", + "Juli", "Agustus", "September", "Oktober", "November", "Desember" + ]; + + return "${date.day} ${monthNames[date.month - 1]}, ${date.year}, ${date.hour}:${date.minute}"; + } + + Color getNotificationColor(String level) { + switch (level) { + case "BAHAYA": + return Colors.red; + case "WASPADA": + return Colors.orange; + default: + return const Color(0xFF00C2FF); + } + } + + Future _deleteNotification(String notifId) async { + if (namaSungai == null) return; + + try { + await FirebaseFirestore.instance + .collection(namaSungai!) + .doc("notifikasi") + .collection("data") + .doc(notifId) + .delete(); + } catch (e) { + print("Gagal menghapus notifikasi: $e"); + } + } +} diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart new file mode 100644 index 0000000..7b53daf --- /dev/null +++ b/lib/screens/settings_screen.dart @@ -0,0 +1,257 @@ +import 'package:flutter/material.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import '../utils/constants.dart'; +import 'package:awesome_dialog/awesome_dialog.dart'; + + +class SettingsScreen extends StatefulWidget { + const SettingsScreen({super.key}); + + @override + State createState() => _SettingsScreenState(); +} + +class _SettingsScreenState extends State { + double threshold = 150; + double kalibrasi = 0; + bool isLoading = true; + String? namaSungai; + + @override + void initState() { + super.initState(); + getUserSungai(); + } + + Future getUserSungai() async { + final uid = FirebaseAuth.instance.currentUser?.uid; + if (uid == null) return; + + final doc = await FirebaseFirestore.instance.collection("users").doc(uid).get(); + if (doc.exists && doc.data()!.containsKey("nama_sungai")) { + namaSungai = doc["nama_sungai"]; + await fetchThreshold(); + await fetchKalibrasi(); + } + if (mounted) setState(() => isLoading = false); + } + + Future fetchKalibrasi() async { + final db = FirebaseDatabase.instance.ref(); + final path = '${namaSungai!.toLowerCase().replaceAll(" ", "_")}/kalibrasi/tinggiSensor'; + + final snapshot = await db.child(path).get(); + if (snapshot.exists) { + kalibrasi = (snapshot.value as num).toDouble(); + } else { + await db.child(path).set(kalibrasi); + } + } + + Future fetchThreshold() async { + final db = FirebaseDatabase.instance.ref(); + final path = '${namaSungai!.toLowerCase().replaceAll(" ", "_")}/threshold/nilai'; + + final snapshot = await db.child(path).get(); + if (snapshot.exists) { + threshold = (snapshot.value as num).toDouble(); + } else { + await db.child(path).set(threshold); + } + } + +Future saveKalibrasi() async { + if (namaSungai == null) return; + + final db = FirebaseDatabase.instance.ref(); + final path = '${namaSungai!.toLowerCase().replaceAll(" ", "_")}/kalibrasi/tinggiSensor'; + await db.child(path).set(kalibrasi); + + AwesomeDialog( + context: context, + dialogType: DialogType.success, + animType: AnimType.bottomSlide, + title: 'Kalibrasi Tersimpan', + desc: 'Kalibrasi berhasil disimpan!', + btnOkOnPress: () {}, + btnOkColor: Colors.teal, + ).show(); +} + + +Future saveThreshold() async { + if (namaSungai == null) return; + + final db = FirebaseDatabase.instance.ref(); + final path = '${namaSungai!.toLowerCase().replaceAll(" ", "_")}/threshold/nilai'; + await db.child(path).set(threshold); + + AwesomeDialog( + context: context, + dialogType: DialogType.success, + animType: AnimType.rightSlide, + title: 'Threshold Disimpan', + desc: 'Ambang batas berhasil disimpan!', + btnOkOnPress: () {}, + btnOkColor: AppColors.primary, + ).show(); +} + + + void logout() async { + await FirebaseAuth.instance.signOut(); + if (mounted) { + Navigator.of(context).pushNamedAndRemoveUntil('/login', (route) => false); + } + } + + @override + Widget build(BuildContext context) { + if (isLoading) { + return const Scaffold( + body: Center(child: CircularProgressIndicator()), + ); + } + + return Scaffold( + backgroundColor: AppColors.background, + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + title: const Text("Pengaturan", style: TextStyle(color: Colors.black)), + centerTitle: true, + iconTheme: const IconThemeData(color: Colors.black), + ), + body: ListView( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + children: [ + _buildSectionTitle("Kalibrasi"), + _buildKalibrasiCard(), + const SizedBox(height: 32), + _buildSectionTitle("Threshold"), + _buildThresholdCard(), + const SizedBox(height: 24), + _buildLogoutButton(), + ], + ), + ); + } + + Widget _buildSectionTitle(String title) { + return Padding( + padding: const EdgeInsets.only(bottom: 12), + child: Text( + title, + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + ), + ); + } + + Widget _buildKalibrasiCard() { + return _styledCard( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text("Kalibrasi ketinggian Air", style: TextStyle(fontSize: 14, fontWeight: FontWeight.w500)), + const SizedBox(height: 12), + Text("${kalibrasi.toInt()} cm", style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + Slider( + value: kalibrasi, + min: 0, + max: 1000, + divisions: 1000, + label: "${kalibrasi.toInt()} cm", + onChanged: (value) => setState(() => kalibrasi = value), + activeColor: Colors.teal, + inactiveColor: Colors.teal.withOpacity(0.3), + ), + const SizedBox(height: 8), + Align( + alignment: Alignment.centerRight, + child: ElevatedButton.icon( + onPressed: saveKalibrasi, + icon: const Icon(Icons.tune, size: 18), + label: const Text("Simpan", style: TextStyle(color: Colors.white)), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.teal, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + ), + ), + ], + ), + ); + } + + Widget _buildThresholdCard() { + return _styledCard( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text("Threshold Ketinggian Air", style: TextStyle(fontSize: 14, fontWeight: FontWeight.w500)), + const SizedBox(height: 12), + Text("${threshold.toInt()} cm", style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + Slider( + value: threshold, + min: 50, + max: 1000, + divisions: 1000, + label: "${threshold.toInt()} cm", + onChanged: (value) => setState(() => threshold = value), + activeColor: AppColors.primary, + inactiveColor: AppColors.primary.withOpacity(0.3), + ), + const SizedBox(height: 8), + Align( + alignment: Alignment.centerRight, + child: ElevatedButton.icon( + onPressed: saveThreshold, + icon: const Icon(Icons.save, size: 18), + label: const Text("Simpan", style: TextStyle(color: Colors.white)), + style: ElevatedButton.styleFrom( + backgroundColor: AppColors.primary, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + ), + ), + ], + ), + ); + } + + Widget _buildLogoutButton() { + return ElevatedButton.icon( + onPressed: logout, + icon: const Icon(Icons.logout, color: Colors.white), + label: const Text("Keluar", style: TextStyle(color: Colors.white)), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + ); + } + + Widget _styledCard({required Widget child}) { + return Container( + padding: const EdgeInsets.all(16), + margin: const EdgeInsets.symmetric(horizontal: 4), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: const [ + BoxShadow( + color: Colors.black12, + blurRadius: 6, + offset: Offset(0, 2), + ), + ], + ), + child: child, + ); + } +} diff --git a/lib/screens/splash_screen.dart b/lib/screens/splash_screen.dart new file mode 100644 index 0000000..c1642f0 --- /dev/null +++ b/lib/screens/splash_screen.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; + + +class SplashScreen extends StatelessWidget { + const SplashScreen({super.key}); + + Future checkLogin(BuildContext context) async { + await Future.delayed(const Duration(seconds: 2)); // Delay Splash 2 detik + + final user = FirebaseAuth.instance.currentUser; + + if (user != null) { + // Sudah login, ambil data sungai dari Firestore + final userDoc = await FirebaseFirestore.instance + .collection('users') + .doc(user.uid) + .get(); + + if (userDoc.exists && userDoc.data()!.containsKey('nama_sungai')) { + final namaSungai = userDoc['nama_sungai']; + Navigator.pushReplacementNamed(context, '/dashboard', + arguments: namaSungai); + } else { + // User tidak valid, logout dan kembali ke login + await FirebaseAuth.instance.signOut(); + Navigator.pushReplacementNamed(context, '/login'); + } + } else { + // Belum login + Navigator.pushReplacementNamed(context, '/login'); + } + } + + @override + Widget build(BuildContext context) { + // Jalankan pengecekan setelah build + WidgetsBinding.instance.addPostFrameCallback((_) => checkLogin(context)); + + return const Scaffold( + backgroundColor: Colors.blue, + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.water, size: 100, color: Colors.white), + SizedBox(height: 20), + Text( + "Flood Detection", + style: TextStyle(color: Colors.white, fontSize: 24), + ), + ], + ), + ), + ); + } +} diff --git a/lib/utils/constants.dart b/lib/utils/constants.dart new file mode 100644 index 0000000..9c937d6 --- /dev/null +++ b/lib/utils/constants.dart @@ -0,0 +1,7 @@ +import 'package:flutter/material.dart'; + +class AppColors { + static const primary = Color(0xFF00C2FF); // Biru pastel cerah + static const background = Color(0xFFFFFFFF); // Putih + static const cardShadow = Color(0xFFE0E0E0); // Shadow soft abu +} diff --git a/lib/utils/notification_service.dart b/lib/utils/notification_service.dart new file mode 100644 index 0000000..a207ca7 --- /dev/null +++ b/lib/utils/notification_service.dart @@ -0,0 +1,69 @@ +import 'dart:convert'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:http/http.dart' as http; + +class NotificationService { + static final FirebaseMessaging _messaging = FirebaseMessaging.instance; + + /// Fungsi inisialisasi FCM & kirim token ke backend + static Future initializeFCM() async { + // Minta izin notifikasi + NotificationSettings settings = await _messaging.requestPermission( + alert: true, + badge: true, + sound: true, + ); + + if (settings.authorizationStatus == AuthorizationStatus.authorized) { + print('🔔 Izin notifikasi diberikan'); + + // Ambil token FCM + String? token = await _messaging.getToken(); + print('📲 FCM Token: $token'); + + if (token != null) { + await _kirimTokenKeBackend(token); + } + + // Listener saat app di foreground + FirebaseMessaging.onMessage.listen((RemoteMessage message) { + RemoteNotification? notification = message.notification; + if (notification != null) { + print('📩 Foreground Notif: ${notification.title} - ${notification.body}'); + // Tambahkan logika tampilan di sini jika perlu + } + }); + } else { + print('🚫 Izin notifikasi ditolak'); + } + } + + /// Kirim token ke backend + static Future _kirimTokenKeBackend(String token) async { + try { + final url = Uri.parse("https://services-flood.vercel.app/api/save-token"); // Ganti sesuai server + + final response = await http.post( + url, + headers: {"Content-Type": "application/json"}, + body: jsonEncode({"token": token}), + ); + + if (response.statusCode == 200) { + print("✅ Token berhasil dikirim ke backend"); + } else { + print("❌ Gagal kirim token ke backend: ${response.body}"); + } + } catch (e) { + print("❌ Error saat kirim token ke backend: $e"); + } + } + + /// Handler untuk background message (perlu dipanggil dari main.dart) + @pragma('vm:entry-point') + static Future backgroundHandler(RemoteMessage message) async { + await Firebase.initializeApp(); + print('📥 Notif background: ${message.notification?.title} - ${message.notification?.body}'); + } +} diff --git a/lib/widgets/bottom_navbar.dart b/lib/widgets/bottom_navbar.dart new file mode 100644 index 0000000..28feabf --- /dev/null +++ b/lib/widgets/bottom_navbar.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; +import '../utils/constants.dart'; + +class BottomNavbar extends StatelessWidget { + final int currentIndex; + final Function(int) onTap; + + const BottomNavbar({super.key, required this.currentIndex, required this.onTap}); + + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(20), + topRight: Radius.circular(20), + ), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, -2), + ), + ], + ), + child: BottomNavigationBar( + currentIndex: currentIndex, + onTap: onTap, + backgroundColor: Colors.transparent, + elevation: 0, + selectedItemColor: AppColors.primary, + unselectedItemColor: Colors.grey, + showUnselectedLabels: true, + type: BottomNavigationBarType.fixed, + selectedLabelStyle: const TextStyle(fontWeight: FontWeight.bold), + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.location_on_outlined, size: 28), + label: 'Lokasi', + ), + BottomNavigationBarItem( + icon: Icon(Icons.monitor_heart_outlined, size: 30), + label: 'Monitoring', + ), + BottomNavigationBarItem( + icon: Icon(Icons.settings_outlined, size: 28), + label: 'Pengaturan', + ), + ], + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..fe19db7 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,946 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: de9ecbb3ddafd446095f7e833c853aff2fa1682b017921fe63a833f9d6f0e422 + url: "https://pub.dev" + source: hosted + version: "1.3.54" + archive: + dependency: transitive + description: + name: archive + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" + url: "https://pub.dev" + source: hosted + version: "4.0.7" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + awesome_dialog: + dependency: "direct main" + description: + name: awesome_dialog + sha256: "41c41ae4b30b5c7f26bb3d9f9c87010ed1cab0bb4d4ac0cc513e5799c37e9d82" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + barcode: + dependency: transitive + description: + name: barcode + sha256: "7b6729c37e3b7f34233e2318d866e8c48ddb46c1f7ad01ff7bb2a8de1da2b9f4" + url: "https://pub.dev" + source: hosted + version: "2.2.9" + bidi: + dependency: transitive + description: + name: bidi + sha256: "77f475165e94b261745cf1032c751e2032b8ed92ccb2bf5716036db79320637d" + url: "https://pub.dev" + source: hosted + version: "2.0.13" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + cloud_firestore: + dependency: "direct main" + description: + name: cloud_firestore + sha256: "89a5e32716794b6a8d0ec1b5dfda988194e92daedaa3f3bed66fa0d0a595252e" + url: "https://pub.dev" + source: hosted + version: "5.6.6" + cloud_firestore_platform_interface: + dependency: transitive + description: + name: cloud_firestore_platform_interface + sha256: "9f012844eb59be6827ed97415875c5a29ccacd28bc79bf85b4680738251a33df" + url: "https://pub.dev" + source: hosted + version: "6.6.6" + cloud_firestore_web: + dependency: transitive + description: + name: cloud_firestore_web + sha256: b8b754269be0e907acd9ff63ad60f66b84c78d330ca1d7e474f86c9527ddc803 + url: "https://pub.dev" + source: hosted + version: "4.4.6" + collection: + dependency: transitive + description: + name: collection + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + url: "https://pub.dev" + source: hosted + version: "1.19.0" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + url: "https://pub.dev" + source: hosted + version: "0.3.4+2" + crypto: + dependency: transitive + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + csslib: + dependency: transitive + description: + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + csv: + dependency: "direct main" + description: + name: csv + sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c + url: "https://pub.dev" + source: hosted + version: "6.0.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dbus: + dependency: transitive + description: + name: dbus + sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c" + url: "https://pub.dev" + source: hosted + version: "0.7.11" + equatable: + dependency: transitive + description: + name: equatable + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" + url: "https://pub.dev" + source: hosted + version: "2.0.7" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + 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" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + sha256: "06787c45d773af3db3ae693ff648ef488e6048a00b654620b3b8849988f63793" + url: "https://pub.dev" + source: hosted + version: "5.5.3" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + sha256: "5402d13f4bb7f29f2fb819f3b6b5a5a56c9f714aef2276546d397e25ac1b6b8e" + url: "https://pub.dev" + source: hosted + version: "7.6.2" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + sha256: "2be496911f0807895d5fe8067b70b7d758142dd7fb26485cbe23e525e2547764" + url: "https://pub.dev" + source: hosted + version: "5.14.2" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + sha256: "017d17d9915670e6117497e640b2859e0b868026ea36bf3a57feb28c3b97debe" + url: "https://pub.dev" + source: hosted + version: "3.13.0" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf + url: "https://pub.dev" + source: hosted + version: "5.4.0" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: "129a34d1e0fb62e2b488d988a1fc26cc15636357e50944ffee2862efe8929b23" + url: "https://pub.dev" + source: hosted + version: "2.22.0" + firebase_database: + dependency: "direct main" + description: + name: firebase_database + sha256: "182ce4713d47ffc5f19a5a7b934867d1fae9c33081febcec8c062cb89fc14652" + url: "https://pub.dev" + source: hosted + version: "11.3.5" + firebase_database_platform_interface: + dependency: transitive + description: + name: firebase_database_platform_interface + sha256: b65f416dd2c8ac2d5322241e5411a24ed3da43d0f38aaf9ab6c211d72e52261b + url: "https://pub.dev" + source: hosted + version: "0.2.6+5" + firebase_database_web: + dependency: transitive + description: + name: firebase_database_web + sha256: "5203141fe00a1edfaed5f8e0444b8e4ef807a8ec6eca925621b1cab69b6c06e4" + url: "https://pub.dev" + source: hosted + version: "0.2.6+11" + firebase_messaging: + dependency: "direct main" + description: + name: firebase_messaging + sha256: "5f8918848ee0c8eb172fc7698619b2bcd7dda9ade8b93522c6297dd8f9178356" + url: "https://pub.dev" + source: hosted + version: "15.2.5" + firebase_messaging_platform_interface: + dependency: transitive + description: + name: firebase_messaging_platform_interface + sha256: "0bbea00680249595fc896e7313a2bd90bd55be6e0abbe8b9a39d81b6b306acb6" + url: "https://pub.dev" + source: hosted + version: "4.6.5" + firebase_messaging_web: + dependency: transitive + description: + name: firebase_messaging_web + sha256: ffb392ce2a7e8439cd0a9a80e3c702194e73c927e5c7b4f0adf6faa00b245b17 + url: "https://pub.dev" + source: hosted + version: "3.10.5" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + sha256: f2e9137f261d0f53a820f6b829c80ba570ac915284c8e32789d973834796eca0 + url: "https://pub.dev" + source: hosted + version: "0.71.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + flutter_local_notifications: + dependency: "direct main" + description: + name: flutter_local_notifications + sha256: "33b3e0269ae9d51669957a923f2376bee96299b09915d856395af8c4238aebfa" + url: "https://pub.dev" + source: hosted + version: "19.1.0" + flutter_local_notifications_linux: + dependency: transitive + description: + name: flutter_local_notifications_linux + sha256: e3c277b2daab8e36ac5a6820536668d07e83851aeeb79c446e525a70710770a5 + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + sha256: "2569b973fc9d1f63a37410a9f7c1c552081226c597190cb359ef5d5762d1631c" + url: "https://pub.dev" + source: hosted + version: "9.0.0" + flutter_local_notifications_windows: + dependency: transitive + description: + name: flutter_local_notifications_windows + sha256: f8fc0652a601f83419d623c85723a3e82ad81f92b33eaa9bcc21ea1b94773e6e + url: "https://pub.dev" + source: hosted + version: "1.0.0" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e + url: "https://pub.dev" + source: hosted + version: "2.0.28" + 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" + google_maps: + dependency: transitive + description: + name: google_maps + sha256: "4d6e199c561ca06792c964fa24b2bac7197bf4b401c2e1d23e345e5f9939f531" + url: "https://pub.dev" + source: hosted + version: "8.1.1" + google_maps_flutter: + dependency: "direct main" + description: + name: google_maps_flutter + sha256: "830d8f7b51b4a950bf0d7daa675324fed6c9beb57a7ecca2a59018270c96b4e0" + url: "https://pub.dev" + source: hosted + version: "2.12.1" + google_maps_flutter_android: + dependency: transitive + description: + name: google_maps_flutter_android + sha256: ab83128296fbeaa52e8f2b3bf53bcd895e64778edddcdc07bc8f33f4ea78076c + url: "https://pub.dev" + source: hosted + version: "2.16.1" + google_maps_flutter_ios: + dependency: transitive + description: + name: google_maps_flutter_ios + sha256: c7433645c4c9b61c587938cb06072f3dad601239e596b090c0f8f206c1f2ade7 + url: "https://pub.dev" + source: hosted + version: "2.15.2" + google_maps_flutter_platform_interface: + dependency: transitive + description: + name: google_maps_flutter_platform_interface + sha256: "970c8f766c02909c7be282dea923c971f83a88adaf07f8871d0aacebc3b07bb2" + url: "https://pub.dev" + source: hosted + version: "2.11.1" + google_maps_flutter_web: + dependency: transitive + description: + name: google_maps_flutter_web + sha256: a45786ea6691cc7cdbe2cf3ce2c2daf4f82a885745666b4a36baada3a4e12897 + url: "https://pub.dev" + source: hosted + version: "0.5.12" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + html: + dependency: transitive + description: + name: html + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" + url: "https://pub.dev" + source: hosted + version: "0.15.6" + http: + dependency: "direct main" + description: + name: http + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + url: "https://pub.dev" + source: hosted + version: "1.3.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + url: "https://pub.dev" + source: hosted + version: "4.5.4" + intl: + dependency: "direct main" + description: + name: intl + sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + url: "https://pub.dev" + source: hosted + version: "0.20.2" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + url: "https://pub.dev" + source: hosted + version: "10.0.7" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + url: "https://pub.dev" + source: hosted + version: "3.0.8" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: transitive + description: + name: lints + sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 + url: "https://pub.dev" + source: hosted + version: "5.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + 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: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" + source: hosted + version: "1.15.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + 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: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 + url: "https://pub.dev" + source: hosted + version: "2.2.17" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + 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" + pdf: + dependency: "direct main" + description: + name: pdf + sha256: "28eacad99bffcce2e05bba24e50153890ad0255294f4dd78a17075a2ba5c8416" + url: "https://pub.dev" + source: hosted + version: "3.11.3" + pdf_widget_wrapper: + dependency: transitive + description: + name: pdf_widget_wrapper + sha256: c930860d987213a3d58c7ec3b7ecf8085c3897f773e8dc23da9cae60a5d6d0f5 + url: "https://pub.dev" + source: hosted + version: "1.0.4" + 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" + posix: + dependency: transitive + description: + name: posix + sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + printing: + dependency: "direct main" + description: + name: printing + sha256: "482cd5a5196008f984bb43ed0e47cbfdca7373490b62f3b27b3299275bf22a93" + url: "https://pub.dev" + source: hosted + version: "5.14.2" + provider: + dependency: "direct main" + description: + name: provider + sha256: "489024f942069c2920c844ee18bb3d467c69e48955a4f32d1677f71be103e310" + url: "https://pub.dev" + source: hosted + version: "6.1.4" + qr: + dependency: transitive + description: + name: qr + sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + rive: + dependency: transitive + description: + name: rive + sha256: "2551a44fa766a7ed3f52aa2b94feda6d18d00edc25dee5f66e72e9b365bb6d6c" + url: "https://pub.dev" + source: hosted + version: "0.13.20" + rive_common: + dependency: transitive + description: + name: rive_common + sha256: "2ba42f80d37a4efd0696fb715787c4785f8a13361e8aea9227c50f1e78cf763a" + url: "https://pub.dev" + source: hosted + version: "0.4.15" + sanitize_html: + dependency: transitive + description: + name: sanitize_html + sha256: "12669c4a913688a26555323fb9cec373d8f9fbe091f2d01c40c723b33caa8989" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + share_plus: + dependency: "direct main" + description: + name: share_plus + sha256: b2961506569e28948d75ec346c28775bb111986bb69dc6a20754a457e3d97fa0 + url: "https://pub.dev" + source: hosted + version: "11.0.0" + share_plus_platform_interface: + dependency: transitive + description: + name: share_plus_platform_interface + sha256: "1032d392bc5d2095a77447a805aa3f804d2ae6a4d5eef5e6ebb3bd94c1bc19ef" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" + url: "https://pub.dev" + source: hosted + version: "2.4.10" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + 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: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + url: "https://pub.dev" + source: hosted + version: "0.7.3" + timezone: + dependency: transitive + description: + name: timezone + sha256: ffc9d5f4d1193534ef051f9254063fa53d588609418c84299956c3db9383587d + url: "https://pub.dev" + source: hosted + version: "0.10.0" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + url: "https://pub.dev" + source: hosted + version: "3.1.4" + uuid: + dependency: transitive + description: + name: uuid + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + url: "https://pub.dev" + source: hosted + version: "4.5.1" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + url: "https://pub.dev" + source: hosted + version: "14.3.0" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + win32: + dependency: transitive + description: + name: win32 + sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e + url: "https://pub.dev" + source: hosted + version: "5.10.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" +sdks: + dart: ">=3.6.2 <4.0.0" + flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..fc27fd1 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,108 @@ +name: FloodDetection +description: "A new Flutter project." +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: ^3.6.2 + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + + sdk: flutter + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + awesome_dialog: ^3.1.0 + cupertino_icons: ^1.0.8 + http: ^1.3.0 + firebase_core: ^3.13.0 + firebase_auth: ^5.5.3 + cloud_firestore: ^5.6.6 + firebase_messaging: ^15.2.5 + provider: ^6.1.4 + google_maps_flutter: ^2.12.1 + fl_chart: ^0.71.0 + flutter_local_notifications: ^19.1.0 + shared_preferences: ^2.5.3 + intl: ^0.20.2 + firebase_database: ^11.3.5 + csv: ^6.0.0 + path_provider: ^2.1.5 + share_plus: ^11.0.0 + pdf: ^3.11.3 + printing: ^5.14.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^5.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/to/resolution-aware-images + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/to/asset-from-package + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/to/font-from-package