From 6d0939d0e552156fbb3748dc5977ca97880f78e3 Mon Sep 17 00:00:00 2001 From: Pra_Kas Date: Sat, 8 Mar 2025 12:17:37 +0530 Subject: [PATCH 01/24] Flutter initial commit --- flutter_application_1/.gitignore | 45 ++ flutter_application_1/.metadata | 45 ++ flutter_application_1/README.md | 16 + flutter_application_1/analysis_options.yaml | 28 + flutter_application_1/android/.gitignore | 13 + .../android/app/build.gradle | 44 ++ .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 45 ++ .../flutter_application_1/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + flutter_application_1/android/build.gradle | 18 + .../android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + flutter_application_1/android/settings.gradle | 25 + flutter_application_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 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 26 + flutter_application_1/ios/Runner/Info.plist | 49 ++ .../ios/Runner/Runner-Bridging-Header.h | 1 + .../ios/RunnerTests/RunnerTests.swift | 12 + flutter_application_1/lib/main.dart | 125 ++++ flutter_application_1/linux/.gitignore | 1 + flutter_application_1/linux/CMakeLists.txt | 128 ++++ .../linux/flutter/CMakeLists.txt | 88 +++ .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + .../linux/flutter/generated_plugins.cmake | 23 + .../linux/runner/CMakeLists.txt | 26 + flutter_application_1/linux/runner/main.cc | 6 + .../linux/runner/my_application.cc | 130 ++++ .../linux/runner/my_application.h | 18 + flutter_application_1/macos/.gitignore | 7 + .../macos/Flutter/Flutter-Debug.xcconfig | 1 + .../macos/Flutter/Flutter-Release.xcconfig | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 10 + .../macos/Runner.xcodeproj/project.pbxproj | 705 ++++++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../macos/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 343 +++++++++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + .../macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 12 + flutter_application_1/macos/Runner/Info.plist | 32 + .../macos/Runner/MainFlutterWindow.swift | 15 + .../macos/Runner/Release.entitlements | 8 + .../macos/RunnerTests/RunnerTests.swift | 12 + flutter_application_1/pubspec.lock | 213 ++++++ flutter_application_1/pubspec.yaml | 89 +++ flutter_application_1/test/widget_test.dart | 30 + flutter_application_1/web/favicon.png | Bin 0 -> 917 bytes flutter_application_1/web/icons/Icon-192.png | Bin 0 -> 5292 bytes flutter_application_1/web/icons/Icon-512.png | Bin 0 -> 8252 bytes .../web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes .../web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes flutter_application_1/web/index.html | 38 + flutter_application_1/web/manifest.json | 35 + flutter_application_1/windows/.gitignore | 17 + flutter_application_1/windows/CMakeLists.txt | 108 +++ .../windows/flutter/CMakeLists.txt | 109 +++ .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + .../windows/flutter/generated_plugins.cmake | 23 + .../windows/runner/CMakeLists.txt | 40 + .../windows/runner/Runner.rc | 121 +++ .../windows/runner/flutter_window.cpp | 71 ++ .../windows/runner/flutter_window.h | 33 + flutter_application_1/windows/runner/main.cpp | 43 ++ .../windows/runner/resource.h | 16 + .../windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes .../windows/runner/runner.exe.manifest | 14 + .../windows/runner/utils.cpp | 65 ++ flutter_application_1/windows/runner/utils.h | 19 + .../windows/runner/win32_window.cpp | 288 +++++++ .../windows/runner/win32_window.h | 102 +++ 129 files changed, 4926 insertions(+) create mode 100644 flutter_application_1/.gitignore create mode 100644 flutter_application_1/.metadata create mode 100644 flutter_application_1/README.md create mode 100644 flutter_application_1/analysis_options.yaml create mode 100644 flutter_application_1/android/.gitignore create mode 100644 flutter_application_1/android/app/build.gradle create mode 100644 flutter_application_1/android/app/src/debug/AndroidManifest.xml create mode 100644 flutter_application_1/android/app/src/main/AndroidManifest.xml create mode 100644 flutter_application_1/android/app/src/main/kotlin/com/example/flutter_application_1/MainActivity.kt create mode 100644 flutter_application_1/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 flutter_application_1/android/app/src/main/res/drawable/launch_background.xml create mode 100644 flutter_application_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 flutter_application_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 flutter_application_1/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 flutter_application_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 flutter_application_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 flutter_application_1/android/app/src/main/res/values-night/styles.xml create mode 100644 flutter_application_1/android/app/src/main/res/values/styles.xml create mode 100644 flutter_application_1/android/app/src/profile/AndroidManifest.xml create mode 100644 flutter_application_1/android/build.gradle create mode 100644 flutter_application_1/android/gradle.properties create mode 100644 flutter_application_1/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 flutter_application_1/android/settings.gradle create mode 100644 flutter_application_1/ios/.gitignore create mode 100644 flutter_application_1/ios/Flutter/AppFrameworkInfo.plist create mode 100644 flutter_application_1/ios/Flutter/Debug.xcconfig create mode 100644 flutter_application_1/ios/Flutter/Release.xcconfig create mode 100644 flutter_application_1/ios/Runner.xcodeproj/project.pbxproj create mode 100644 flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 flutter_application_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 flutter_application_1/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 flutter_application_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 flutter_application_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 flutter_application_1/ios/Runner/AppDelegate.swift create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 flutter_application_1/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 flutter_application_1/ios/Runner/Base.lproj/Main.storyboard create mode 100644 flutter_application_1/ios/Runner/Info.plist create mode 100644 flutter_application_1/ios/Runner/Runner-Bridging-Header.h create mode 100644 flutter_application_1/ios/RunnerTests/RunnerTests.swift create mode 100644 flutter_application_1/lib/main.dart create mode 100644 flutter_application_1/linux/.gitignore create mode 100644 flutter_application_1/linux/CMakeLists.txt create mode 100644 flutter_application_1/linux/flutter/CMakeLists.txt create mode 100644 flutter_application_1/linux/flutter/generated_plugin_registrant.cc create mode 100644 flutter_application_1/linux/flutter/generated_plugin_registrant.h create mode 100644 flutter_application_1/linux/flutter/generated_plugins.cmake create mode 100644 flutter_application_1/linux/runner/CMakeLists.txt create mode 100644 flutter_application_1/linux/runner/main.cc create mode 100644 flutter_application_1/linux/runner/my_application.cc create mode 100644 flutter_application_1/linux/runner/my_application.h create mode 100644 flutter_application_1/macos/.gitignore create mode 100644 flutter_application_1/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 flutter_application_1/macos/Flutter/Flutter-Release.xcconfig create mode 100644 flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 flutter_application_1/macos/Runner.xcodeproj/project.pbxproj create mode 100644 flutter_application_1/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 flutter_application_1/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 flutter_application_1/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 flutter_application_1/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 flutter_application_1/macos/Runner/AppDelegate.swift create mode 100644 flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 flutter_application_1/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 flutter_application_1/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 flutter_application_1/macos/Runner/Configs/Debug.xcconfig create mode 100644 flutter_application_1/macos/Runner/Configs/Release.xcconfig create mode 100644 flutter_application_1/macos/Runner/Configs/Warnings.xcconfig create mode 100644 flutter_application_1/macos/Runner/DebugProfile.entitlements create mode 100644 flutter_application_1/macos/Runner/Info.plist create mode 100644 flutter_application_1/macos/Runner/MainFlutterWindow.swift create mode 100644 flutter_application_1/macos/Runner/Release.entitlements create mode 100644 flutter_application_1/macos/RunnerTests/RunnerTests.swift create mode 100644 flutter_application_1/pubspec.lock create mode 100644 flutter_application_1/pubspec.yaml create mode 100644 flutter_application_1/test/widget_test.dart create mode 100644 flutter_application_1/web/favicon.png create mode 100644 flutter_application_1/web/icons/Icon-192.png create mode 100644 flutter_application_1/web/icons/Icon-512.png create mode 100644 flutter_application_1/web/icons/Icon-maskable-192.png create mode 100644 flutter_application_1/web/icons/Icon-maskable-512.png create mode 100644 flutter_application_1/web/index.html create mode 100644 flutter_application_1/web/manifest.json create mode 100644 flutter_application_1/windows/.gitignore create mode 100644 flutter_application_1/windows/CMakeLists.txt create mode 100644 flutter_application_1/windows/flutter/CMakeLists.txt create mode 100644 flutter_application_1/windows/flutter/generated_plugin_registrant.cc create mode 100644 flutter_application_1/windows/flutter/generated_plugin_registrant.h create mode 100644 flutter_application_1/windows/flutter/generated_plugins.cmake create mode 100644 flutter_application_1/windows/runner/CMakeLists.txt create mode 100644 flutter_application_1/windows/runner/Runner.rc create mode 100644 flutter_application_1/windows/runner/flutter_window.cpp create mode 100644 flutter_application_1/windows/runner/flutter_window.h create mode 100644 flutter_application_1/windows/runner/main.cpp create mode 100644 flutter_application_1/windows/runner/resource.h create mode 100644 flutter_application_1/windows/runner/resources/app_icon.ico create mode 100644 flutter_application_1/windows/runner/runner.exe.manifest create mode 100644 flutter_application_1/windows/runner/utils.cpp create mode 100644 flutter_application_1/windows/runner/utils.h create mode 100644 flutter_application_1/windows/runner/win32_window.cpp create mode 100644 flutter_application_1/windows/runner/win32_window.h diff --git a/flutter_application_1/.gitignore b/flutter_application_1/.gitignore new file mode 100644 index 000000000..79c113f9b --- /dev/null +++ b/flutter_application_1/.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/flutter_application_1/.metadata b/flutter_application_1/.metadata new file mode 100644 index 000000000..1f19d868c --- /dev/null +++ b/flutter_application_1/.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: "c519ee916eaeb88923e67befb89c0f1dabfa83e6" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + base_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + - platform: android + create_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + base_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + - platform: ios + create_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + base_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + - platform: linux + create_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + base_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + - platform: macos + create_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + base_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + - platform: web + create_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + base_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + - platform: windows + create_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + base_revision: c519ee916eaeb88923e67befb89c0f1dabfa83e6 + + # 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/flutter_application_1/README.md b/flutter_application_1/README.md new file mode 100644 index 000000000..2c8a8aef4 --- /dev/null +++ b/flutter_application_1/README.md @@ -0,0 +1,16 @@ +# flutter_application_1 + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/flutter_application_1/analysis_options.yaml b/flutter_application_1/analysis_options.yaml new file mode 100644 index 000000000..0d2902135 --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/android/.gitignore b/flutter_application_1/android/.gitignore new file mode 100644 index 000000000..55afd919c --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/android/app/build.gradle b/flutter_application_1/android/app/build.gradle new file mode 100644 index 000000000..eaad983ab --- /dev/null +++ b/flutter_application_1/android/app/build.gradle @@ -0,0 +1,44 @@ +plugins { + id "com.android.application" + id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id "dev.flutter.flutter-gradle-plugin" +} + +android { + namespace = "com.example.flutter_application_1" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.flutter_application_1" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.debug + } + } +} + +flutter { + source = "../.." +} diff --git a/flutter_application_1/android/app/src/debug/AndroidManifest.xml b/flutter_application_1/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 000000000..399f6981d --- /dev/null +++ b/flutter_application_1/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/flutter_application_1/android/app/src/main/AndroidManifest.xml b/flutter_application_1/android/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..f2daf8754 --- /dev/null +++ b/flutter_application_1/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter_application_1/android/app/src/main/kotlin/com/example/flutter_application_1/MainActivity.kt b/flutter_application_1/android/app/src/main/kotlin/com/example/flutter_application_1/MainActivity.kt new file mode 100644 index 000000000..775170412 --- /dev/null +++ b/flutter_application_1/android/app/src/main/kotlin/com/example/flutter_application_1/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.flutter_application_1 + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/flutter_application_1/android/app/src/main/res/drawable-v21/launch_background.xml b/flutter_application_1/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 000000000..f74085f3f --- /dev/null +++ b/flutter_application_1/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/flutter_application_1/android/app/src/main/res/drawable/launch_background.xml b/flutter_application_1/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 000000000..304732f88 --- /dev/null +++ b/flutter_application_1/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/flutter_application_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/flutter_application_1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/flutter_application_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/flutter_application_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/flutter_application_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/flutter_application_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/flutter_application_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/flutter_application_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/flutter_application_1/android/app/src/main/res/values-night/styles.xml b/flutter_application_1/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 000000000..06952be74 --- /dev/null +++ b/flutter_application_1/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/flutter_application_1/android/app/src/main/res/values/styles.xml b/flutter_application_1/android/app/src/main/res/values/styles.xml new file mode 100644 index 000000000..cb1ef8805 --- /dev/null +++ b/flutter_application_1/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/flutter_application_1/android/app/src/profile/AndroidManifest.xml b/flutter_application_1/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 000000000..399f6981d --- /dev/null +++ b/flutter_application_1/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/flutter_application_1/android/build.gradle b/flutter_application_1/android/build.gradle new file mode 100644 index 000000000..d2ffbffa4 --- /dev/null +++ b/flutter_application_1/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/flutter_application_1/android/gradle.properties b/flutter_application_1/android/gradle.properties new file mode 100644 index 000000000..259717082 --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/android/gradle/wrapper/gradle-wrapper.properties b/flutter_application_1/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..7bb2df6ba --- /dev/null +++ b/flutter_application_1/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/flutter_application_1/android/settings.gradle b/flutter_application_1/android/settings.gradle new file mode 100644 index 000000000..b9e43bd37 --- /dev/null +++ b/flutter_application_1/android/settings.gradle @@ -0,0 +1,25 @@ +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.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.8.22" apply false +} + +include ":app" diff --git a/flutter_application_1/ios/.gitignore b/flutter_application_1/ios/.gitignore new file mode 100644 index 000000000..7a7f9873a --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/ios/Flutter/AppFrameworkInfo.plist b/flutter_application_1/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 000000000..7c5696400 --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/ios/Flutter/Debug.xcconfig b/flutter_application_1/ios/Flutter/Debug.xcconfig new file mode 100644 index 000000000..592ceee85 --- /dev/null +++ b/flutter_application_1/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/flutter_application_1/ios/Flutter/Release.xcconfig b/flutter_application_1/ios/Flutter/Release.xcconfig new file mode 100644 index 000000000..592ceee85 --- /dev/null +++ b/flutter_application_1/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/flutter_application_1/ios/Runner.xcodeproj/project.pbxproj b/flutter_application_1/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 000000000..66696842c --- /dev/null +++ b/flutter_application_1/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.flutterApplication1; + 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.flutterApplication1.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.flutterApplication1.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.flutterApplication1.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.flutterApplication1; + 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.flutterApplication1; + 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/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..f9b0d7c5e --- /dev/null +++ b/flutter_application_1/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/flutter_application_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flutter_application_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..8e3ca5dfe --- /dev/null +++ b/flutter_application_1/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter_application_1/ios/Runner.xcworkspace/contents.xcworkspacedata b/flutter_application_1/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..1d526a16e --- /dev/null +++ b/flutter_application_1/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/flutter_application_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/flutter_application_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/flutter_application_1/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/flutter_application_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/flutter_application_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..f9b0d7c5e --- /dev/null +++ b/flutter_application_1/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/flutter_application_1/ios/Runner/AppDelegate.swift b/flutter_application_1/ios/Runner/AppDelegate.swift new file mode 100644 index 000000000..626664468 --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..d36b1fab2 --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 000000000..0bedcf2fd --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/flutter_application_1/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/flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/flutter_application_1/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 000000000..89c2725b7 --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/ios/Runner/Base.lproj/LaunchScreen.storyboard b/flutter_application_1/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 000000000..f2e259c7c --- /dev/null +++ b/flutter_application_1/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter_application_1/ios/Runner/Base.lproj/Main.storyboard b/flutter_application_1/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 000000000..f3c28516f --- /dev/null +++ b/flutter_application_1/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter_application_1/ios/Runner/Info.plist b/flutter_application_1/ios/Runner/Info.plist new file mode 100644 index 000000000..6dc955a78 --- /dev/null +++ b/flutter_application_1/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Flutter Application 1 + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + flutter_application_1 + 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/flutter_application_1/ios/Runner/Runner-Bridging-Header.h b/flutter_application_1/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 000000000..308a2a560 --- /dev/null +++ b/flutter_application_1/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/flutter_application_1/ios/RunnerTests/RunnerTests.swift b/flutter_application_1/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 000000000..86a7c3b1b --- /dev/null +++ b/flutter_application_1/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/flutter_application_1/lib/main.dart b/flutter_application_1/lib/main.dart new file mode 100644 index 000000000..8e9408912 --- /dev/null +++ b/flutter_application_1/lib/main.dart @@ -0,0 +1,125 @@ +import 'package:flutter/material.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Flutter Demo', + theme: ThemeData( + // This is the theme of your application. + // + // TRY THIS: Try running your application with "flutter run". You'll see + // the application has a purple toolbar. Then, without quitting the app, + // try changing the seedColor in the colorScheme below to Colors.green + // and then invoke "hot reload" (save your changes or press the "hot + // reload" button in a Flutter-supported IDE, or press "r" if you used + // the command line to start the app). + // + // Notice that the counter didn't reset back to zero; the application + // state is not lost during the reload. To reset the state, use hot + // restart instead. + // + // This works for code too, not just values: Most code changes can be + // tested with just a hot reload. + colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), + useMaterial3: true, + ), + home: const MyHomePage(title: 'Flutter Demo Home Page'), + ); + } +} + +class MyHomePage extends StatefulWidget { + const MyHomePage({super.key, required this.title}); + + // This widget is the home page of your application. It is stateful, meaning + // that it has a State object (defined below) that contains fields that affect + // how it looks. + + // This class is the configuration for the state. It holds the values (in this + // case the title) provided by the parent (in this case the App widget) and + // used by the build method of the State. Fields in a Widget subclass are + // always marked "final". + + final String title; + + @override + State createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + int _counter = 0; + + void _incrementCounter() { + setState(() { + // This call to setState tells the Flutter framework that something has + // changed in this State, which causes it to rerun the build method below + // so that the display can reflect the updated values. If we changed + // _counter without calling setState(), then the build method would not be + // called again, and so nothing would appear to happen. + _counter++; + }); + } + + @override + Widget build(BuildContext context) { + // This method is rerun every time setState is called, for instance as done + // by the _incrementCounter method above. + // + // The Flutter framework has been optimized to make rerunning build methods + // fast, so that you can just rebuild anything that needs updating rather + // than having to individually change instances of widgets. + return Scaffold( + appBar: AppBar( + // TRY THIS: Try changing the color here to a specific color (to + // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar + // change color while the other colors stay the same. + backgroundColor: Theme.of(context).colorScheme.inversePrimary, + // Here we take the value from the MyHomePage object that was created by + // the App.build method, and use it to set our appbar title. + title: Text(widget.title), + ), + body: Center( + // Center is a layout widget. It takes a single child and positions it + // in the middle of the parent. + child: Column( + // Column is also a layout widget. It takes a list of children and + // arranges them vertically. By default, it sizes itself to fit its + // children horizontally, and tries to be as tall as its parent. + // + // Column has various properties to control how it sizes itself and + // how it positions its children. Here we use mainAxisAlignment to + // center the children vertically; the main axis here is the vertical + // axis because Columns are vertical (the cross axis would be + // horizontal). + // + // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint" + // action in the IDE, or press "p" in the console), to see the + // wireframe for each widget. + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + 'You have pushed the button this many times:', + ), + Text( + '$_counter', + style: Theme.of(context).textTheme.headlineMedium, + ), + ], + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: _incrementCounter, + tooltip: 'Increment', + child: const Icon(Icons.add), + ), // This trailing comma makes auto-formatting nicer for build methods. + ); + } +} diff --git a/flutter_application_1/linux/.gitignore b/flutter_application_1/linux/.gitignore new file mode 100644 index 000000000..d3896c984 --- /dev/null +++ b/flutter_application_1/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/flutter_application_1/linux/CMakeLists.txt b/flutter_application_1/linux/CMakeLists.txt new file mode 100644 index 000000000..900e42173 --- /dev/null +++ b/flutter_application_1/linux/CMakeLists.txt @@ -0,0 +1,128 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.13) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "flutter_application_1") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.flutter_application_1") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/flutter_application_1/linux/flutter/CMakeLists.txt b/flutter_application_1/linux/flutter/CMakeLists.txt new file mode 100644 index 000000000..d5bd01648 --- /dev/null +++ b/flutter_application_1/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/flutter_application_1/linux/flutter/generated_plugin_registrant.cc b/flutter_application_1/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 000000000..e71a16d23 --- /dev/null +++ b/flutter_application_1/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} diff --git a/flutter_application_1/linux/flutter/generated_plugin_registrant.h b/flutter_application_1/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 000000000..e0f0a47bc --- /dev/null +++ b/flutter_application_1/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/flutter_application_1/linux/flutter/generated_plugins.cmake b/flutter_application_1/linux/flutter/generated_plugins.cmake new file mode 100644 index 000000000..2e1de87a7 --- /dev/null +++ b/flutter_application_1/linux/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/flutter_application_1/linux/runner/CMakeLists.txt b/flutter_application_1/linux/runner/CMakeLists.txt new file mode 100644 index 000000000..e97dabc70 --- /dev/null +++ b/flutter_application_1/linux/runner/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.13) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the application ID. +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") diff --git a/flutter_application_1/linux/runner/main.cc b/flutter_application_1/linux/runner/main.cc new file mode 100644 index 000000000..e7c5c5437 --- /dev/null +++ b/flutter_application_1/linux/runner/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/flutter_application_1/linux/runner/my_application.cc b/flutter_application_1/linux/runner/my_application.cc new file mode 100644 index 000000000..98b22734c --- /dev/null +++ b/flutter_application_1/linux/runner/my_application.cc @@ -0,0 +1,130 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "flutter_application_1"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "flutter_application_1"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + // Set the program name to the application ID, which helps various systems + // like GTK and desktop environments map this running application to its + // corresponding .desktop file. This ensures better integration by allowing + // the application to be recognized beyond its binary name. + g_set_prgname(APPLICATION_ID); + + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/flutter_application_1/linux/runner/my_application.h b/flutter_application_1/linux/runner/my_application.h new file mode 100644 index 000000000..72271d5e4 --- /dev/null +++ b/flutter_application_1/linux/runner/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/flutter_application_1/macos/.gitignore b/flutter_application_1/macos/.gitignore new file mode 100644 index 000000000..746adbb6b --- /dev/null +++ b/flutter_application_1/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/flutter_application_1/macos/Flutter/Flutter-Debug.xcconfig b/flutter_application_1/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 000000000..c2efd0b60 --- /dev/null +++ b/flutter_application_1/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/flutter_application_1/macos/Flutter/Flutter-Release.xcconfig b/flutter_application_1/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 000000000..c2efd0b60 --- /dev/null +++ b/flutter_application_1/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 000000000..cccf817a5 --- /dev/null +++ b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,10 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { +} diff --git a/flutter_application_1/macos/Runner.xcodeproj/project.pbxproj b/flutter_application_1/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 000000000..2e7fb957e --- /dev/null +++ b/flutter_application_1/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* flutter_application_1.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "flutter_application_1.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* flutter_application_1.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* flutter_application_1.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/flutter_application_1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/flutter_application_1"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/flutter_application_1/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/flutter_application_1/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/flutter_application_1/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/flutter_application_1/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flutter_application_1/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..369e63264 --- /dev/null +++ b/flutter_application_1/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter_application_1/macos/Runner.xcworkspace/contents.xcworkspacedata b/flutter_application_1/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..1d526a16e --- /dev/null +++ b/flutter_application_1/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/flutter_application_1/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/flutter_application_1/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/flutter_application_1/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/flutter_application_1/macos/Runner/AppDelegate.swift b/flutter_application_1/macos/Runner/AppDelegate.swift new file mode 100644 index 000000000..b3c176141 --- /dev/null +++ b/flutter_application_1/macos/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } +} diff --git a/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..a2ec33f19 --- /dev/null +++ b/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..82b6f9d9a33e198f5747104729e1fcef999772a5 GIT binary patch literal 102994 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ⅅ8MglG&ER{i5lN315cO?EdHNLrg? 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 z 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 Pe7HEdAEg|=c=LY&YVNkY literal 0 HcmV?d00001 diff --git a/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..13b35eba55c6dabc3aac36f33d859266c18fa0d0 GIT binary patch literal 5680 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3f5fa40fb3d1e0710331a48de5d256da3f275d GIT binary patch literal 520 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/flutter_application_1/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1632cfddf3d9dade342351e627a0a75609fb46 GIT binary patch literal 2218 zcmV;b2vzrqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuE6iGxuRCodHTWf3-RTMruyW6Fu zQYeUM04eX6D5c0FCjKKPrco1(K`<0SL=crI{PC3-^hZU0kQie$gh-5!7z6SH6Q0J% zqot*`H1q{R5fHFYS}dje@;kG=v$L0(yY0?wY2%*c?A&{2?!D*x?m71{of2gv!$5|C z3>qG_BW}7K_yUcT3A5C6QD<+{aq?x;MAUyAiJn#Jv8_zZtQ{P zTRzbL3U9!qVuZzS$xKU10KiW~Bgdcv1-!uAhQxf3a7q+dU6lj?yoO4Lq4TUN4}h{N z*fIM=SS8|C2$(T>w$`t@3Tka!(r!7W`x z-isCVgQD^mG-MJ;XtJuK3V{Vy72GQ83KRWsHU?e*wrhKk=ApIYeDqLi;JI1e zuvv}5^Dc=k7F7?nm3nIw$NVmU-+R>> zyqOR$-2SDpJ}Pt;^RkJytDVXNTsu|mI1`~G7yw`EJR?VkGfNdqK9^^8P`JdtTV&tX4CNcV4 z&N06nZa??Fw1AgQOUSE2AmPE@WO(Fvo`%m`cDgiv(fAeRA%3AGXUbsGw{7Q`cY;1BI#ac3iN$$Hw z0LT0;xc%=q)me?Y*$xI@GRAw?+}>=9D+KTk??-HJ4=A>`V&vKFS75@MKdSF1JTq{S zc1!^8?YA|t+uKigaq!sT;Z!&0F2=k7F0PIU;F$leJLaw2UI6FL^w}OG&!;+b%ya1c z1n+6-inU<0VM-Y_s5iTElq)ThyF?StVcebpGI znw#+zLx2@ah{$_2jn+@}(zJZ{+}_N9BM;z)0yr|gF-4=Iyu@hI*Lk=-A8f#bAzc9f z`Kd6K--x@t04swJVC3JK1cHY-Hq+=|PN-VO;?^_C#;coU6TDP7Bt`;{JTG;!+jj(` zw5cLQ-(Cz-Tlb`A^w7|R56Ce;Wmr0)$KWOUZ6ai0PhzPeHwdl0H(etP zUV`va_i0s-4#DkNM8lUlqI7>YQLf)(lz9Q3Uw`)nc(z3{m5ZE77Ul$V%m)E}3&8L0 z-XaU|eB~Is08eORPk;=<>!1w)Kf}FOVS2l&9~A+@R#koFJ$Czd%Y(ENTV&A~U(IPI z;UY+gf+&6ioZ=roly<0Yst8ck>(M=S?B-ys3mLdM&)ex!hbt+ol|T6CTS+Sc0jv(& z7ijdvFwBq;0a{%3GGwkDKTeG`b+lyj0jjS1OMkYnepCdoosNY`*zmBIo*981BU%%U z@~$z0V`OVtIbEx5pa|Tct|Lg#ZQf5OYMUMRD>Wdxm5SAqV2}3!ceE-M2 z@O~lQ0OiKQp}o9I;?uxCgYVV?FH|?Riri*U$Zi_`V2eiA>l zdSm6;SEm6#T+SpcE8Ro_f2AwxzI z44hfe^WE3!h@W3RDyA_H440cpmYkv*)6m1XazTqw%=E5Xv7^@^^T7Q2wxr+Z2kVYr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter_application_1/macos/Runner/Configs/AppInfo.xcconfig b/flutter_application_1/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 000000000..e5b4e71e8 --- /dev/null +++ b/flutter_application_1/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = flutter_application_1 + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1 + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2025 com.example. All rights reserved. diff --git a/flutter_application_1/macos/Runner/Configs/Debug.xcconfig b/flutter_application_1/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 000000000..36b0fd946 --- /dev/null +++ b/flutter_application_1/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/flutter_application_1/macos/Runner/Configs/Release.xcconfig b/flutter_application_1/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 000000000..dff4f4956 --- /dev/null +++ b/flutter_application_1/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/flutter_application_1/macos/Runner/Configs/Warnings.xcconfig b/flutter_application_1/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 000000000..42bcbf478 --- /dev/null +++ b/flutter_application_1/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/flutter_application_1/macos/Runner/DebugProfile.entitlements b/flutter_application_1/macos/Runner/DebugProfile.entitlements new file mode 100644 index 000000000..dddb8a30c --- /dev/null +++ b/flutter_application_1/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/flutter_application_1/macos/Runner/Info.plist b/flutter_application_1/macos/Runner/Info.plist new file mode 100644 index 000000000..4789daa6a --- /dev/null +++ b/flutter_application_1/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/flutter_application_1/macos/Runner/MainFlutterWindow.swift b/flutter_application_1/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 000000000..3cc05eb23 --- /dev/null +++ b/flutter_application_1/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/flutter_application_1/macos/Runner/Release.entitlements b/flutter_application_1/macos/Runner/Release.entitlements new file mode 100644 index 000000000..852fa1a47 --- /dev/null +++ b/flutter_application_1/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/flutter_application_1/macos/RunnerTests/RunnerTests.swift b/flutter_application_1/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 000000000..61f3bd1fc --- /dev/null +++ b/flutter_application_1/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +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/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock new file mode 100644 index 000000000..55f199cc6 --- /dev/null +++ b/flutter_application_1/pubspec.lock @@ -0,0 +1,213 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + url: "https://pub.dev" + source: hosted + version: "1.19.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + 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" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + 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" + 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" + 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" + 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" +sdks: + dart: ">=3.6.1 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml new file mode 100644 index 000000000..d4ed2d6d7 --- /dev/null +++ b/flutter_application_1/pubspec.yaml @@ -0,0 +1,89 @@ +name: flutter_application_1 +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.1 + +# 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. + cupertino_icons: ^1.0.8 + +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 diff --git a/flutter_application_1/test/widget_test.dart b/flutter_application_1/test/widget_test.dart new file mode 100644 index 000000000..28088008e --- /dev/null +++ b/flutter_application_1/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:flutter_application_1/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/flutter_application_1/web/favicon.png b/flutter_application_1/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/flutter_application_1/web/icons/Icon-192.png b/flutter_application_1/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/web/icons/Icon-512.png b/flutter_application_1/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/web/icons/Icon-maskable-192.png b/flutter_application_1/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 zcmdT|`#%%j|KDb2V@0DPm$^(Lx5}lO%Yv(=e*7hl@QqKS50#~#^IQPxBmuh|i9sXnt4ch@VT0F7% zMtrs@KWIOo+QV@lSs66A>2pz6-`9Jk=0vv&u?)^F@HZ)-6HT=B7LF;rdj zskUyBfbojcX#CS>WrIWo9D=DIwcXM8=I5D{SGf$~=gh-$LwY?*)cD%38%sCc?5OsX z-XfkyL-1`VavZ?>(pI-xp-kYq=1hsnyP^TLb%0vKRSo^~r{x?ISLY1i7KjSp z*0h&jG(Rkkq2+G_6eS>n&6>&Xk+ngOMcYrk<8KrukQHzfx675^^s$~<@d$9X{VBbg z2Fd4Z%g`!-P}d#`?B4#S-9x*eNlOVRnDrn#jY@~$jfQ-~3Od;A;x-BI1BEDdvr`pI z#D)d)!2_`GiZOUu1crb!hqH=ezs0qk<_xDm_Kkw?r*?0C3|Io6>$!kyDl;eH=aqg$B zsH_|ZD?jP2dc=)|L>DZmGyYKa06~5?C2Lc0#D%62p(YS;%_DRCB1k(+eLGXVMe+=4 zkKiJ%!N6^mxqM=wq`0+yoE#VHF%R<{mMamR9o_1JH8jfnJ?NPLs$9U!9!dq8 z0B{dI2!M|sYGH&9TAY34OlpIsQ4i5bnbG>?cWwat1I13|r|_inLE?FS@Hxdxn_YZN z3jfUO*X9Q@?HZ>Q{W0z60!bbGh557XIKu1?)u|cf%go`pwo}CD=0tau-}t@R2OrSH zQzZr%JfYa`>2!g??76=GJ$%ECbQh7Q2wLRp9QoyiRHP7VE^>JHm>9EqR3<$Y=Z1K^SHuwxCy-5@z3 zVM{XNNm}yM*pRdLKp??+_2&!bp#`=(Lh1vR{~j%n;cJv~9lXeMv)@}Odta)RnK|6* zC+IVSWumLo%{6bLDpn)Gz>6r&;Qs0^+Sz_yx_KNz9Dlt^ax`4>;EWrIT#(lJ_40<= z750fHZ7hI{}%%5`;lwkI4<_FJw@!U^vW;igL0k+mK)-j zYuCK#mCDK3F|SC}tC2>m$ZCqNB7ac-0UFBJ|8RxmG@4a4qdjvMzzS&h9pQmu^x&*= zGvapd1#K%Da&)8f?<9WN`2H^qpd@{7In6DNM&916TRqtF4;3`R|Nhwbw=(4|^Io@T zIjoR?tB8d*sO>PX4vaIHF|W;WVl6L1JvSmStgnRQq zTX4(>1f^5QOAH{=18Q2Vc1JI{V=yOr7yZJf4Vpfo zeHXdhBe{PyY;)yF;=ycMW@Kb>t;yE>;f79~AlJ8k`xWucCxJfsXf2P72bAavWL1G#W z;o%kdH(mYCM{$~yw4({KatNGim49O2HY6O07$B`*K7}MvgI=4x=SKdKVb8C$eJseA$tmSFOztFd*3W`J`yIB_~}k%Sd_bPBK8LxH)?8#jM{^%J_0|L z!gFI|68)G}ex5`Xh{5pB%GtlJ{Z5em*e0sH+sU1UVl7<5%Bq+YrHWL7?X?3LBi1R@_)F-_OqI1Zv`L zb6^Lq#H^2@d_(Z4E6xA9Z4o3kvf78ZDz!5W1#Mp|E;rvJz&4qj2pXVxKB8Vg0}ek%4erou@QM&2t7Cn5GwYqy%{>jI z)4;3SAgqVi#b{kqX#$Mt6L8NhZYgonb7>+r#BHje)bvaZ2c0nAvrN3gez+dNXaV;A zmyR0z@9h4@6~rJik-=2M-T+d`t&@YWhsoP_XP-NsVO}wmo!nR~QVWU?nVlQjNfgcTzE-PkfIX5G z1?&MwaeuzhF=u)X%Vpg_e@>d2yZwxl6-r3OMqDn8_6m^4z3zG##cK0Fsgq8fcvmhu z{73jseR%X%$85H^jRAcrhd&k!i^xL9FrS7qw2$&gwAS8AfAk#g_E_tP;x66fS`Mn@SNVrcn_N;EQm z`Mt3Z%rw%hDqTH-s~6SrIL$hIPKL5^7ejkLTBr46;pHTQDdoErS(B>``t;+1+M zvU&Se9@T_BeK;A^p|n^krIR+6rH~BjvRIugf`&EuX9u69`9C?9ANVL8l(rY6#mu^i z=*5Q)-%o*tWl`#b8p*ZH0I}hn#gV%|jt6V_JanDGuekR*-wF`u;amTCpGG|1;4A5$ zYbHF{?G1vv5;8Ph5%kEW)t|am2_4ik!`7q{ymfHoe^Z99c|$;FAL+NbxE-_zheYbV z3hb0`uZGTsgA5TG(X|GVDSJyJxsyR7V5PS_WSnYgwc_D60m7u*x4b2D79r5UgtL18 zcCHWk+K6N1Pg2c;0#r-)XpwGX?|Iv)^CLWqwF=a}fXUSM?n6E;cCeW5ER^om#{)Jr zJR81pkK?VoFm@N-s%hd7@hBS0xuCD0-UDVLDDkl7Ck=BAj*^ps`393}AJ+Ruq@fl9 z%R(&?5Nc3lnEKGaYMLmRzKXow1+Gh|O-LG7XiNxkG^uyv zpAtLINwMK}IWK65hOw&O>~EJ}x@lDBtB`yKeV1%GtY4PzT%@~wa1VgZn7QRwc7C)_ zpEF~upeDRg_<#w=dLQ)E?AzXUQpbKXYxkp>;c@aOr6A|dHA?KaZkL0svwB^U#zmx0 zzW4^&G!w7YeRxt<9;d@8H=u(j{6+Uj5AuTluvZZD4b+#+6Rp?(yJ`BC9EW9!b&KdPvzJYe5l7 zMJ9aC@S;sA0{F0XyVY{}FzW0Vh)0mPf_BX82E+CD&)wf2!x@{RO~XBYu80TONl3e+ zA7W$ra6LcDW_j4s-`3tI^VhG*sa5lLc+V6ONf=hO@q4|p`CinYqk1Ko*MbZ6_M05k zSwSwkvu;`|I*_Vl=zPd|dVD0lh&Ha)CSJJvV{AEdF{^Kn_Yfsd!{Pc1GNgw}(^~%)jk5~0L~ms|Rez1fiK~s5t(p1ci5Gq$JC#^JrXf?8 z-Y-Zi_Hvi>oBzV8DSRG!7dm|%IlZg3^0{5~;>)8-+Nk&EhAd(}s^7%MuU}lphNW9Q zT)DPo(ob{tB7_?u;4-qGDo!sh&7gHaJfkh43QwL|bbFVi@+oy;i;M zM&CP^v~lx1U`pi9PmSr&Mc<%HAq0DGH?Ft95)WY`P?~7O z`O^Nr{Py9M#Ls4Y7OM?e%Y*Mvrme%=DwQaye^Qut_1pOMrg^!5u(f9p(D%MR%1K>% zRGw%=dYvw@)o}Fw@tOtPjz`45mfpn;OT&V(;z75J*<$52{sB65$gDjwX3Xa!x_wE- z!#RpwHM#WrO*|~f7z}(}o7US(+0FYLM}6de>gQdtPazXz?OcNv4R^oYLJ_BQOd_l172oSK$6!1r@g+B@0ofJ4*{>_AIxfe-#xp>(1 z@Y3Nfd>fmqvjL;?+DmZk*KsfXJf<%~(gcLwEez%>1c6XSboURUh&k=B)MS>6kw9bY z{7vdev7;A}5fy*ZE23DS{J?8at~xwVk`pEwP5^k?XMQ7u64;KmFJ#POzdG#np~F&H ze-BUh@g54)dsS%nkBb}+GuUEKU~pHcYIg4vSo$J(J|U36bs0Use+3A&IMcR%6@jv$ z=+QI+@wW@?iu}Hpyzlvj-EYeop{f65GX0O%>w#0t|V z1-svWk`hU~m`|O$kw5?Yn5UhI%9P-<45A(v0ld1n+%Ziq&TVpBcV9n}L9Tus-TI)f zd_(g+nYCDR@+wYNQm1GwxhUN4tGMLCzDzPqY$~`l<47{+l<{FZ$L6(>J)|}!bi<)| zE35dl{a2)&leQ@LlDxLQOfUDS`;+ZQ4ozrleQwaR-K|@9T{#hB5Z^t#8 zC-d_G;B4;F#8A2EBL58s$zF-=SCr`P#z zNCTnHF&|X@q>SkAoYu>&s9v@zCpv9lLSH-UZzfhJh`EZA{X#%nqw@@aW^vPcfQrlPs(qQxmC|4tp^&sHy!H!2FH5eC{M@g;ElWNzlb-+ zxpfc0m4<}L){4|RZ>KReag2j%Ot_UKkgpJN!7Y_y3;Ssz{9 z!K3isRtaFtQII5^6}cm9RZd5nTp9psk&u1C(BY`(_tolBwzV_@0F*m%3G%Y?2utyS zY`xM0iDRT)yTyYukFeGQ&W@ReM+ADG1xu@ruq&^GK35`+2r}b^V!m1(VgH|QhIPDE X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/flutter_application_1/web/icons/Icon-maskable-512.png b/flutter_application_1/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/flutter_application_1/web/index.html b/flutter_application_1/web/index.html new file mode 100644 index 000000000..34a4134c3 --- /dev/null +++ b/flutter_application_1/web/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + flutter_application_1 + + + + + + diff --git a/flutter_application_1/web/manifest.json b/flutter_application_1/web/manifest.json new file mode 100644 index 000000000..dd8e066f4 --- /dev/null +++ b/flutter_application_1/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "flutter_application_1", + "short_name": "flutter_application_1", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/flutter_application_1/windows/.gitignore b/flutter_application_1/windows/.gitignore new file mode 100644 index 000000000..d492d0d98 --- /dev/null +++ b/flutter_application_1/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/flutter_application_1/windows/CMakeLists.txt b/flutter_application_1/windows/CMakeLists.txt new file mode 100644 index 000000000..8cc860b25 --- /dev/null +++ b/flutter_application_1/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(flutter_application_1 LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "flutter_application_1") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/flutter_application_1/windows/flutter/CMakeLists.txt b/flutter_application_1/windows/flutter/CMakeLists.txt new file mode 100644 index 000000000..903f4899d --- /dev/null +++ b/flutter_application_1/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + ${FLUTTER_TARGET_PLATFORM} $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/flutter_application_1/windows/flutter/generated_plugin_registrant.cc b/flutter_application_1/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 000000000..8b6d4680a --- /dev/null +++ b/flutter_application_1/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/flutter_application_1/windows/flutter/generated_plugin_registrant.h b/flutter_application_1/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 000000000..dc139d85a --- /dev/null +++ b/flutter_application_1/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/flutter_application_1/windows/flutter/generated_plugins.cmake b/flutter_application_1/windows/flutter/generated_plugins.cmake new file mode 100644 index 000000000..b93c4c30c --- /dev/null +++ b/flutter_application_1/windows/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/flutter_application_1/windows/runner/CMakeLists.txt b/flutter_application_1/windows/runner/CMakeLists.txt new file mode 100644 index 000000000..394917c05 --- /dev/null +++ b/flutter_application_1/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/flutter_application_1/windows/runner/Runner.rc b/flutter_application_1/windows/runner/Runner.rc new file mode 100644 index 000000000..765011b4f --- /dev/null +++ b/flutter_application_1/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "flutter_application_1" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "flutter_application_1" "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "flutter_application_1.exe" "\0" + VALUE "ProductName", "flutter_application_1" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/flutter_application_1/windows/runner/flutter_window.cpp b/flutter_application_1/windows/runner/flutter_window.cpp new file mode 100644 index 000000000..955ee3038 --- /dev/null +++ b/flutter_application_1/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/flutter_application_1/windows/runner/flutter_window.h b/flutter_application_1/windows/runner/flutter_window.h new file mode 100644 index 000000000..6da0652f0 --- /dev/null +++ b/flutter_application_1/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/flutter_application_1/windows/runner/main.cpp b/flutter_application_1/windows/runner/main.cpp new file mode 100644 index 000000000..bb2306021 --- /dev/null +++ b/flutter_application_1/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"flutter_application_1", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/flutter_application_1/windows/runner/resource.h b/flutter_application_1/windows/runner/resource.h new file mode 100644 index 000000000..66a65d1e4 --- /dev/null +++ b/flutter_application_1/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/flutter_application_1/windows/runner/resources/app_icon.ico b/flutter_application_1/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c04e20caf6370ebb9253ad831cc31de4a9c965f6 GIT binary patch literal 33772 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/windows/runner/runner.exe.manifest b/flutter_application_1/windows/runner/runner.exe.manifest new file mode 100644 index 000000000..153653e8d --- /dev/null +++ b/flutter_application_1/windows/runner/runner.exe.manifest @@ -0,0 +1,14 @@ + + + + + PerMonitorV2 + + + + + + + + + diff --git a/flutter_application_1/windows/runner/utils.cpp b/flutter_application_1/windows/runner/utils.cpp new file mode 100644 index 000000000..3a0b46511 --- /dev/null +++ b/flutter_application_1/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + unsigned int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/flutter_application_1/windows/runner/utils.h b/flutter_application_1/windows/runner/utils.h new file mode 100644 index 000000000..3879d5475 --- /dev/null +++ b/flutter_application_1/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/flutter_application_1/windows/runner/win32_window.cpp b/flutter_application_1/windows/runner/win32_window.cpp new file mode 100644 index 000000000..60608d0fe --- /dev/null +++ b/flutter_application_1/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/flutter_application_1/windows/runner/win32_window.h b/flutter_application_1/windows/runner/win32_window.h new file mode 100644 index 000000000..e901dde68 --- /dev/null +++ b/flutter_application_1/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_ From 7c76b1f966dbe6414d8d6c6822f80d3e8595a214 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sat, 8 Mar 2025 12:32:15 +0530 Subject: [PATCH 02/24] MVVM architecture initiated --- .../lib/components/bloc/bloc | 0 .../lib/components/models/models | 0 .../lib/components/utils/utilities | 0 .../view/analytics/analytics_view.dart | 15 ++ flutter_application_1/lib/data/appvalues.dart | 4 + flutter_application_1/lib/main.dart | 132 ++---------------- flutter_application_1/lib/service/service | 0 flutter_application_1/lib/theme/colors.dart | 3 + flutter_application_1/pubspec.lock | 74 +++++----- flutter_application_1/test/widget_test.dart | 58 ++++---- 10 files changed, 98 insertions(+), 188 deletions(-) create mode 100644 flutter_application_1/lib/components/bloc/bloc create mode 100644 flutter_application_1/lib/components/models/models create mode 100644 flutter_application_1/lib/components/utils/utilities create mode 100644 flutter_application_1/lib/components/view/analytics/analytics_view.dart create mode 100644 flutter_application_1/lib/data/appvalues.dart create mode 100644 flutter_application_1/lib/service/service create mode 100644 flutter_application_1/lib/theme/colors.dart diff --git a/flutter_application_1/lib/components/bloc/bloc b/flutter_application_1/lib/components/bloc/bloc new file mode 100644 index 000000000..e69de29bb diff --git a/flutter_application_1/lib/components/models/models b/flutter_application_1/lib/components/models/models new file mode 100644 index 000000000..e69de29bb diff --git a/flutter_application_1/lib/components/utils/utilities b/flutter_application_1/lib/components/utils/utilities new file mode 100644 index 000000000..e69de29bb diff --git a/flutter_application_1/lib/components/view/analytics/analytics_view.dart b/flutter_application_1/lib/components/view/analytics/analytics_view.dart new file mode 100644 index 000000000..54e6b0785 --- /dev/null +++ b/flutter_application_1/lib/components/view/analytics/analytics_view.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class AnalyticsView extends StatefulWidget { + const AnalyticsView({super.key}); + + @override + State createState() => _AnalyticsViewState(); +} + +class _AnalyticsViewState extends State { + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} diff --git a/flutter_application_1/lib/data/appvalues.dart b/flutter_application_1/lib/data/appvalues.dart new file mode 100644 index 000000000..b39c4e544 --- /dev/null +++ b/flutter_application_1/lib/data/appvalues.dart @@ -0,0 +1,4 @@ + +class AppValues { + static String ip = ""; +} \ No newline at end of file diff --git a/flutter_application_1/lib/main.dart b/flutter_application_1/lib/main.dart index 8e9408912..711b75f07 100644 --- a/flutter_application_1/lib/main.dart +++ b/flutter_application_1/lib/main.dart @@ -1,125 +1,13 @@ + import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/view/analytics/analytics_view.dart'; void main() { - runApp(const MyApp()); -} - -class MyApp extends StatelessWidget { - const MyApp({super.key}); - - // This widget is the root of your application. - @override - Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Demo', - theme: ThemeData( - // This is the theme of your application. - // - // TRY THIS: Try running your application with "flutter run". You'll see - // the application has a purple toolbar. Then, without quitting the app, - // try changing the seedColor in the colorScheme below to Colors.green - // and then invoke "hot reload" (save your changes or press the "hot - // reload" button in a Flutter-supported IDE, or press "r" if you used - // the command line to start the app). - // - // Notice that the counter didn't reset back to zero; the application - // state is not lost during the reload. To reset the state, use hot - // restart instead. - // - // This works for code too, not just values: Most code changes can be - // tested with just a hot reload. - colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), - useMaterial3: true, - ), - home: const MyHomePage(title: 'Flutter Demo Home Page'), - ); - } -} - -class MyHomePage extends StatefulWidget { - const MyHomePage({super.key, required this.title}); - - // This widget is the home page of your application. It is stateful, meaning - // that it has a State object (defined below) that contains fields that affect - // how it looks. - - // This class is the configuration for the state. It holds the values (in this - // case the title) provided by the parent (in this case the App widget) and - // used by the build method of the State. Fields in a Widget subclass are - // always marked "final". - - final String title; - - @override - State createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State { - int _counter = 0; - - void _incrementCounter() { - setState(() { - // This call to setState tells the Flutter framework that something has - // changed in this State, which causes it to rerun the build method below - // so that the display can reflect the updated values. If we changed - // _counter without calling setState(), then the build method would not be - // called again, and so nothing would appear to happen. - _counter++; - }); - } - - @override - Widget build(BuildContext context) { - // This method is rerun every time setState is called, for instance as done - // by the _incrementCounter method above. - // - // The Flutter framework has been optimized to make rerunning build methods - // fast, so that you can just rebuild anything that needs updating rather - // than having to individually change instances of widgets. - return Scaffold( - appBar: AppBar( - // TRY THIS: Try changing the color here to a specific color (to - // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar - // change color while the other colors stay the same. - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - // Here we take the value from the MyHomePage object that was created by - // the App.build method, and use it to set our appbar title. - title: Text(widget.title), - ), - body: Center( - // Center is a layout widget. It takes a single child and positions it - // in the middle of the parent. - child: Column( - // Column is also a layout widget. It takes a list of children and - // arranges them vertically. By default, it sizes itself to fit its - // children horizontally, and tries to be as tall as its parent. - // - // Column has various properties to control how it sizes itself and - // how it positions its children. Here we use mainAxisAlignment to - // center the children vertically; the main axis here is the vertical - // axis because Columns are vertical (the cross axis would be - // horizontal). - // - // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint" - // action in the IDE, or press "p" in the console), to see the - // wireframe for each widget. - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text( - 'You have pushed the button this many times:', - ), - Text( - '$_counter', - style: Theme.of(context).textTheme.headlineMedium, - ), - ], - ), - ), - floatingActionButton: FloatingActionButton( - onPressed: _incrementCounter, - tooltip: 'Increment', - child: const Icon(Icons.add), - ), // This trailing comma makes auto-formatting nicer for build methods. - ); - } -} + Widget myApp = MaterialApp( + initialRoute: "/", + routes: { + "/" : (BuildContext context) => AnalyticsView() + }, + ); + runApp(myApp); +} \ No newline at end of file diff --git a/flutter_application_1/lib/service/service b/flutter_application_1/lib/service/service new file mode 100644 index 000000000..e69de29bb diff --git a/flutter_application_1/lib/theme/colors.dart b/flutter_application_1/lib/theme/colors.dart new file mode 100644 index 000000000..9a9eb5b61 --- /dev/null +++ b/flutter_application_1/lib/theme/colors.dart @@ -0,0 +1,3 @@ +import 'dart:ui'; + +const red = Color(0xFFE3350D); \ No newline at end of file diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index 55f199cc6..bbde030e7 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -5,42 +5,42 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" collection: dependency: transitive description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.19.1" cupertino_icons: dependency: "direct main" description: @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" flutter: dependency: "direct main" description: flutter @@ -79,18 +79,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -111,10 +111,10 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -127,18 +127,18 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" path: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" sky_engine: dependency: transitive description: flutter @@ -148,50 +148,50 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" stack_trace: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.4" vector_math: dependency: transitive description: @@ -204,10 +204,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "14.3.1" sdks: - dart: ">=3.6.1 <4.0.0" + dart: ">=3.7.0-0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/flutter_application_1/test/widget_test.dart b/flutter_application_1/test/widget_test.dart index 28088008e..6cdbc9609 100644 --- a/flutter_application_1/test/widget_test.dart +++ b/flutter_application_1/test/widget_test.dart @@ -1,30 +1,30 @@ -// This is a basic Flutter widget test. +// // This is a basic Flutter widget test. +// // +// // To perform an interaction with a widget in your test, use the WidgetTester +// // utility in the flutter_test package. For example, you can send tap and scroll +// // gestures. You can also use WidgetTester to find child widgets in the widget +// // tree, read text, and verify that the values of widget properties are correct. // -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:flutter_application_1/main.dart'; - -void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); - - // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); - - // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); - await tester.pump(); - - // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); - }); -} +// import 'package:flutter/material.dart'; +// import 'package:flutter_test/flutter_test.dart'; +// +// import 'package:flutter_application_1/main.dart'; +// +// void main() { +// testWidgets('Counter increments smoke test', (WidgetTester tester) async { +// // Build our app and trigger a frame. +// await tester.pumpWidget(const MyApp()); +// +// // Verify that our counter starts at 0. +// expect(find.text('0'), findsOneWidget); +// expect(find.text('1'), findsNothing); +// +// // Tap the '+' icon and trigger a frame. +// await tester.tap(find.byIcon(Icons.add)); +// await tester.pump(); +// +// // Verify that our counter has incremented. +// expect(find.text('0'), findsNothing); +// expect(find.text('1'), findsOneWidget); +// }); +// } From 8f36ea5e7dbb007511f93c2c00edb7a6bacf438d Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sat, 8 Mar 2025 14:25:16 +0530 Subject: [PATCH 03/24] bottom navigation bar completed --- .../android/app/src/main/AndroidManifest.xml | 2 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 10376 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 4958 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 17655 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 37497 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 63236 bytes .../assets/images/applogo.png | Bin 0 -> 477909 bytes .../main_screen_bloc/main_screen_bloc.dart | 17 +++ .../main_screen_bloc/main_screen_event.dart | 9 ++ .../main_screen_bloc/main_screen_state.dart | 13 +++ .../view/expenses/expenses_view.dart | 15 +++ .../lib/components/view/main_screeen.dart | 81 +++++++++++++ .../components/view/settings/settings.dart | 15 +++ .../lib/components/view/splash_screen.dart | 33 ++++++ flutter_application_1/lib/main.dart | 11 +- flutter_application_1/lib/theme/colors.dart | 110 +++++++++++++++++- flutter_application_1/pubspec.lock | 32 +++++ flutter_application_1/pubspec.yaml | 4 + 18 files changed, 338 insertions(+), 4 deletions(-) create mode 100644 flutter_application_1/assets/images/applogo.png create mode 100644 flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_bloc.dart create mode 100644 flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_event.dart create mode 100644 flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_state.dart create mode 100644 flutter_application_1/lib/components/view/expenses/expenses_view.dart create mode 100644 flutter_application_1/lib/components/view/main_screeen.dart create mode 100644 flutter_application_1/lib/components/view/settings/settings.dart create mode 100644 flutter_application_1/lib/components/view/splash_screen.dart diff --git a/flutter_application_1/android/app/src/main/AndroidManifest.xml b/flutter_application_1/android/app/src/main/AndroidManifest.xml index f2daf8754..ed185c3c2 100644 --- a/flutter_application_1/android/app/src/main/AndroidManifest.xml +++ b/flutter_application_1/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ PyA07*naRCr!(oCkbVW%mBR(~?XklV0cq2ql6PMZ^WMQEaSI6hXnV=pq(CS;dMd zDkyf;UAwz3tHN5aF5ucxiV!*kkWPS*K1pUW?e~A%y*KPX`*9(|%)R$L?>WzT&U4N? zuHEHZk}emx#Q%{*{3Me}^;hwd`AOST;xaC`{kwX}`f<5k z`hNN!(*l?#j~p)wSGt>67oIj{opF! zwJGWGcup~pGKMsQdRl2PaSeI-WWutZxUjg5G=_YGzN!3-`ny`3{)p2+Vq=soNr?Z` z*O2cQ|By&JoAbbQcaD2mHh!f$<`1m#l|WMsw?BBwgBTg*m02C~XRTFS!{G?@A_4byf9j|NGo}ji*G5vSt$3p50rLZs||0;=>LPvzywHtUb^M zaxP5nnDH9%;QFDJ`>HLp*5L3SxvMT0a+|ErIrr6a7Dw2s9hCQU+)M45GsKj!ji=jJ z(gxGFk!4z=ro9{o=QfD#wZ;c(oh0}+`>TG zn?-nt9|492ALOoToH6)dd_rP}6V06cPx2+ZT4?mU)krTEsI850dVsL0Ng1NvdkKDt-;rJAhMK!U3+z!g|N` zAC3g39$md4A3|PK@1Djf;kU}0bQVmC@YkQv*{T%>kq@p?v(5|%-lDF53Q${#!&;2J zfevP)sDy?WWgx{<%=0?|-P&G#O_MsU9o4RB?xXa1;Ma#I?P}>&B}bu5AqO-co zmg2>il1f#mnX>YO{93ky-w#w!Q&&% zKDT^ukJl>=F1#!rPZEvAXl`njQIL>cC%no5?#4SzVo-k83Z(7iVP1C$18qu*@OKmv z_J=HfV?flloDIh6K_q6V3u&xZ3lW|#b|f_=g_P7(b{?$Yvv1e4Ve2k}DM|YEXiI5v zJ{<}JWcj@^3C5yP8Y5wjR5nny^9a9gI>hf44V090VQi%j{(ByiOh(eN73X_@BcmcJ3@oO73ImaVxl2er6lb z?1%<$ovOudNl$SrPGd5Xu#PB2GW=rdx`bPgS?VCSxV zY}>Jq<0oop3b&Br^HNlhNw?xQoL<_Ajvd-iRoBeJFMP(&zefn9`N&K2P>|{6?7m%C z^5GZsIddp)Eq5MZ^^tJoX&oO3Q3E8=tQz}N15b7f-JVG1X~%# zq)QFk78A7dqcV`g(}c;~Zv6gqe%f5lEAM_xNgF@++jU5-p9$4Rf>v<&l^7DP#9F`otn|K+nbQoMv^eGbB6$FvGan1C}300WU6XSxlMI% zft=1#Cglo7Y(A^QO<>K3->zfXXWuY=>{*N++K%U5Si(zht)QwAf_Zsl=H!r)nuagM zODqAAXq?OpKQRHiE*G(AjK+o#4Rv+2$#CJx%;R{Im;0_en;|_@DJ;xq%BqOz^iKvpp=eNK3lF`mwn;uEb6q&bGJiyVNWp~YsXDpf0Mi7Y5c zo+(&_C;8LTS+Zg^|M_kW&)hqaM9o&Nzhwa%_tufuwk?_2+4%ec=`8{?S`tuLSU^d; z99D1KMSgys1m0*YF8^KJIUJ15ZzBdhs6u;=S1a6 zd_J$1HWWV+iQlDeq`jxLp(GR-14%`~VkR1-4bL;)VF-|A1iM}^8O~$~B@+n6PF3UL z^Rv`*vl*mvYal%>mGUE1%zb$Y&-~>YnvQK_#1(gwl3he@Q5#&|6w(3#0WmU! zdi3r^V>CunLjx824-$>W2nK_=NzhbZhcA$c+vB0Bv6(lY{u4b5V~n``UXIj5dVX6j zI zz59qBI3$hbNlC+(>Z7JMM5v)jVo*G;2&2e6;pPbMEV_~6oCqUF-^YPk2;}6GnVUzZ ztC834zl6ib>$v{$70kZlPuwtWB%#J;yk13sP01$WS$dRCK*B(YWc+`!v_&w5GnDVz zY_vg(k~<41L-<KObbV1{Nvf{DNGG<$(0Xq zB;=-~v^Rgepf?|Vvx(ZUi%w|`yfgPQ7QFQ%-|k89kLMqtZDFn?k&40?tw-RC;%z3n z6oeZSI3#CXB`6Ov1W#u%L-hpkDlawCgN!e$UXp>SvB%?e)6^W{)+gR%-n5IU-~St9 zr#?qP=We8DW|Q>z2)9J>czk4K29PSIxRS?3RdtA4uf2d-*9{<2TgCUklylR=ACZyY zmJgnrLPnyBi?4c&lMx@myaGylm$GQuSzI~&uLRn4H4m_BZzZcfypN5$DoM{OB#@|L%uUZy8&9K4w=T4}ytM7mk-IN%&$LID z5@=IQEa4*Pjq>h&!+7kaFWFKP@q8aBjaM`s6or@#Lq;?bwa%++2=S zg?M!O#mu;U8cW}Pm5H-nrE7mt7BqAB)KScwbOz(b-^=o!_DbOG)h?a49-qL0gD04J z-@C-qvLP*t=kA}xFF&p3rvpizoZO3R{_;<5x_&Iarei$+?=8G=*M+3D)G*`aUzm5_ z3`PzcBpG!|icf3KB8w@_NP)Hy>r|8|qOD619XXl@2?Hr^U{|%R>RVgXk;SKGgjzC4 zO-RTZ!Y1z$Hy~q>SJs@)Ql&P#f?`F z=b;-1bL-3ne6VU4T|4FT<`dV`yLWdQ8baK5&tksYbPQis0T16bg;?!j7Jaau+}tec z>q3;4bYMvDBA$8wSDu|UicP<)=JTyBym;#Xrabr&Qzu_c{N(Svw&E})#YMa{a~Shq z`ji@9N1lH0b^?KP($i8D771=-Or(W3qb(VsOx3fhX&_g+W4j13n=>d2Ya=-N0xGkK z*9~y10ymyWkdu|kJ0Gv)*R{X0aQZMV9QPn0PYw^v7|--^{h2=N8J4WrNoG-7qOMf( zQ=?2C*^{rn-^{vQCnZ0MdICH;V+;*P%6am=wRG*)iIepah7K&{&llt|eCk`gyx@9v z{kE26WfA62>cOq^KjFf2`w^`=%If`50-2e-e9tI8TmD~G?TYgBBeN*(&md7+CGXJ zxRilZ7E|0tB}Da`@EV6cVm!;RR8io@s8ow(WpFR?q%p zbz~P5(d-WJ&Vn1*w&q6`E!#o6_C+){M;O%aH14`;Aj2j;%)*CnA#`{<3zzQTKd(;V zPqP-2-F*OKO5u^e{Ycloed*M<7j4h%M^i9^SXzp_Mx?Qc=1>E>zx$Or{fekLw1XEu z+sy;Br*rmzK4fHwFiXYjbxT@ea=IzGta{B-NY$FNLAIV%XVHY3p2pDes%)mb z$NW`sCk5=;S(!Za%$xXPHB30aGb1N2Bv{yqmRN$09ox{ZAd~O69OLB&#;|Aok1YD+ zcg`Pt8s+lF?(q;mcr`qF3YABp$q zOhqil@wz%18yX4MHxh4(5Q~IKxRO+E*~8o(IUL))fmgoT$GtOeVPL=0$j-_jBi%1? zNbxWG$ChFprHCPq%7Zp4J;>B8jylVVM_t~kCZ8~juH7U^$H~pg6vkbCE|>HPaP{ne^S9@x^80T;v2ghjetB;Ox6XcnjCLj5JEj|>XD#8u zSrZ5!-Nh?kA7Dh^91d5-7(V@07}T4sp*pJT>L3&$Ru`hFww{*8uw>$ia71E8)$W5l zdPWgjH>_pZ+G=Lsej}&#=t^Er7QujDR{5eaAR@%9S5&Vuy&H{4+9@GjL5d#2Kq|y^ zuR+#XR)gFEEmgH^Y!U|3j9Q50c{!Q9x$HlD`JbBxy-EEj10)R#XzIt0!DtOZadFiHhTRnj+HsqoHP=oO}*ne*GOAPNXs8 zmPvH&)SiO8Y=Rl-r1*pfnFfVevQ=o}5de z;iv3ifFIXy2zVKK+YEfe2C(+XK@u%d67|hg>^VTgiE5fpRMPVM z0sM6#vI9ZzrGnQ(T~madmPQ`BrXTZOT#C1-l$$1ALHjlZv?6>~xQ9h|p3ByC8+hXD z16=*@H%PAz@$(}K*|vTwmkcSP`sjXssSNPqZG(AY@p4)MMGR^KJF0vPyXGoNMqk8% z3=hYut4T&;9N&GA69*2{bo3Z4+jo&0iPEW8Z~R@m)8H0bcLTA8lT_~7&86M)7}dke ztmnUC(76{ddc?UDWPOV)K^qdao{NRhmX>*u8gdjI=c5CfWKFN zDqEnswt;Y{mU!)Pk~Njo9z4pTTSl;_>=)kp?kHD{8_k)0dQw=BOJQD)4l$bxnf2No zSe4VPPOF(v6Io0!OiQyjV5NDE;)j}l>OlsP%@lW1|0W1lZcY|Uzx;v67QVozPmSi$ zMIW)d&xH)QdNfD&9l%qVOHs#m1bkk6N$|vz5(q;r5o*HCG(;n$Bwa*n8#%J?5Op=R zH163?Y~2QWb}pvPd84R^`>3v|$CZc@IeCQep6$5mYG|wvQQEB|caQ7C{Fj!|oYkF) zSB|7zQ9kY47RV$L&>_|;V{1fQ4?n{_UvrV>yyuoqb{YnO*al6tHR}TLnK7?)(vp@fNUob$fCNsj(OJ) zGz?=J5J^pYY_O7x;MLm3*>d6VEOAjiQT&kaO`c z+Md>n6rrd@q7aMAjzvRL6Ahsdp}IPnj~*wodmrpOK(8J>DH?Jihe8P&Lye?nrBlDZ zoSL<(DGa8Qo>xeHxP_yKD!6=555}AkWZuim31@X-!sron5a3*tPhnoR#2-;mi*~o1 zg>nvuX|Y~8hOJyE5io&mAZZXaFQzzx=`ZT~#7v0^&(TGn!6IQGp&JX?M6`r2n{)?7 zDYeX>Hk8?mzGicMIypfKj#uFoQbkIV%JplA?cPq;(o#Zrs60_cLqj7y3Ioi&_Dufq-Y0ysC&q{o7c#hC zDcRYX5}ZXDl&)(rTY|Oc8!gnArMAmp+GS-@UA}`*brs2YR2n+P z=OaBMlVJPy1iN&nF(pW4U8Ah6d?_A6#}8AzVKuoP7ll1~ap*)9%}q^2n#1J#k}SA+ z7(cB1hWCFwOmXl2j2=FW+^ir)g?W;nWo86OOB3Fsr$?-DK-0o9u3%I~p;?=G0+Hso z{3Z<~yg=E(q(Qq6Z^BMFmH=qe0a1)vg1kq(?vWjZyu2J1Eqk%MdPx^9*suukRVcZg6i#?aG$K8LrGVXnYkP} zdR%JCp_*Dc1yh-O<4`vK@-y$QD92yei7PK1LA$~{i9JR6ITCyPX{n^9c=38o1~aX6 zt%}O15<0c$gsAXSBY6!z z?s;SpZ@l$Srd`>W(L=lO$@k@au(lF!=Tfq|bj9lr5Rb=k2~jE5LM&8IQ{{1*D-Pps ztRugufb_Nid?uwuZk8_pp8sq-PIlYQ3_t%5vZN4PEI%(B z!R*u1{c`>&MU2~c1wN{2G_3|HUC|moH*I#MHcEo1XCx()7HMALie{09Fq($5bHGy% zC74NARo!dP5g;vNRiK%=X}Uj+CCirc$kVUk3fFMW`Q140tP*O%uk+b}w*87N`PawPGPd$f${?wIj){f)vX@dVWaC9rDAL)ZwUXwKC)os+Ce? z8B;0!D$10ut-Mi%ocIwWGT={PU0T2Hcq0kX1!vSJs1 zmnmHu$AecJ$84fWkS)17Tia@f z^azZYIW*XWi&!iscQF)dqzjl1q^{L0$)i;VNQR9bmC>Zr7*!R3I-^+voRu17b`uL1 z4_RGX&-%?f`FX=OHg7NI*pZ_&Hq^_(OEViJa7m2MWMyT^sgI8Bis;m?ki6_nX&8|N zq{pQD38bfKBIuQph6pX$#c-5J(m*=2oLHjD414s)9?DR)napBFFjJXK&pB%sv!qy~ zPih0%J7bKijA5odl(K1Sz-Hp6B^o6n6u?-VP*XD}PS#LSSQ< z@<7NG;?Go{PvVKtmj$;GMiOGYKUI_v!eiX>Ga^a2#k8!$bxb=;_QWjf7#d?Av#^F! zjr=YRv{|HiGs0rgK^u0=)V)>2DkF+;vuZN!%5ucbO7#MZoDXVi!SQ&4Xe>&!rG=K3 zD9zz8jZNymaHK_gnwc>a*YkQj5_J7(B7BsgCQlz)2O_GVmNXLd5>v20(McBHJ z(!bQMn~7K*hl&*I63Vq@%WwL`q0#FNpEkdr$~aXjlm?OpP+eK^Z~>8pTrQf!%@X^> z!Za6m)NzWTCzC3iM7a@_Ue%%orlK)o@wn=Mswb8YE3PHfKrulg!bf#WM&=L~R&|=$9cduRzE!63 z`_ts)#-4*G7gck)f0@6St z3~TG^_-_OB{N{*kbqjRTrvV0N7mIkuG+SFfqbq-KhXL6DP zgVss|DL~b1S{t@i7BCQ^#WK}ja?766t$&%%%Jtj0;DU2#<8Gqz;BL0;3$fyh5Agfk zJn_Qo{J!@90|xYE_<4i*WzBDlx^O5vcJF7>RaY`+-a@8aGnS1T%Ot6cCOs^iJDVSV zT1}VYVn$qa9-;bLIl;PU@tYhve3U7Z#xrj8NFJR3EEkRl9?|SjmRdaIW5#WnK_Rw*n=%nv=?b!W*!4lR;8)| zQX;UPq0$nE07#K#1hxOyvM<^B|90G;lf%ZpK0~5yXQCZ?v3}Vy?z-V>?w>P@b1$7l zn=~&o?w&!oCCocZmhs^1>6~}b6|`^PmJTI7c>MmEeDv{hzWL^R2A_K_^Bz{9ANS;LZdUSZV8ix_grL?&K#0prGvVa@st zEdOdHGp7HEr=EL-lHyJ*Ui2bccWq$tt8cJ>|3R*qFrF(eAIYpakI<#K6L(L)nZ5h> zbIG_VJpI^x3>!9tv6F7$kE70)-qml&B^;{`@%|gna>ax{)1zkzpZ@DrqD^(gh39As z2qT$u@j91l+;yC}l~l!KPjHoOTAvi%Mx`QJ=lv|POw?Ug4_nXrN&e&UNP3=~lf^5q zy~q5oSCLXsKzQd~k_Qhl_Nps*<*B(eh9g{m=fk|V=wV7ry7S7LZ?pQ>_1tm$G#+2@ zJRiRO9AhTm!Nd37!QbEigp#hs(jcMc2JW6SkB>k8f=nUhE?&UF{Rfyke-SBuKW7gb z$m0*)MSgA$k1TkJeTR;*^z9cJcF6?JJO5l}-f|7cD=K8qOJy$YCHgF@J=vkuc%9;; zr@7r)0TZ}fwrQO_^=!3b9hu9hhNd+l#W9i3Bqj*^Cq%r@o<47Ljs}u_=sT)0x2_4Gs0OTu2I`EgqAD2wsm@&h&`K5Lv3OwoYcL zg8WdZa~oiCbnaahS#H^~qXLWI8ccXqQi_9Vl6k905w` zCWQTs4C(-kO>tbCHm#F_Su2rDPS2Y;AzKD8TAV3AOzkCJ&&tly>Y(5yF6!zVtdrA< z>xlRloJI^X39gcm94Ho3oJV9#k>)R{6xKII`hmrD{zVQj&mMK?uAuI7N9+DL(m z>RKX=i|dNt^*ouz4W$Ii`qJ5t*HwoOH2Va$FxKYH>oieR?Pon8s|}{U7eOB#betYk zIY3!j>$iHS+_b7a=KDHytHkD1y3uQtD^v7ZM>5UfJarEf9u^GhqfYk0Uwr``L-PHy zS0{LnniR9<5=_@d)>^8}7Tp-b*xlwBsUyX?Hg8&|MSEo+^&px(%W%^OXRNO46!{?H zV4Fm3bwlxB`f;trnNq=YEj8V+4!cGzeq%DO~#Rx?eyuIR#>36 z&8iEX(u7m!lC_R~651SAF&ivrGW0_A_Q(?iCd`aYq-1PQlk1lq5Mu(TtV|e4_u8Fa zq$kqNm6hi>E~>ww!SW~vrl@exEdXtNv#ZMJM!B?xvlW$aoP2CuRGO}@_5@Ko>JX9> z&t~{r+D*4^!7b-Ezc_WzQ*cTnUaLl=0cYo*O23gOzf{*#cY%d0tmF#EAvjZBoB1Y( zlBk~7K!@@exkkNL)&}Z94cEr9HF7@45JfXIrR{A;sYWyFn+(Xpfi}uapPftPYC(ja01w)U;{LgITAq4X)TzaW+nx$T5n99pKK8Gex>dJO+&= z?g|W2T?m~KtiH6)8Y;5%*HLNNL;0?TWRoGxgos5H>=diP%?d zlecEIG6g$Ea~)q?pcZQm8aoO~=P71$9?Y8Jb)Jp4om_Qi%vW^jjA@9XX*FwG8*NM$ zCc;3n3m`eTNsNYcI|s}44fOk3r$}XCvwJ4U40p0ZRI_ST?2sv z9I%ne@IT3bHE5epTJ0Ontkp(}jHhEohpW{qvl5B$9uwEHnqRArg*$IP5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/flutter_application_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/flutter_application_1/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..9ae7d4076bc9ab16e6ebe42e29d21bd22dfc946f 100644 GIT binary patch literal 4958 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 cAEGzx>ZQMH!ZTL1t607*qoM6N<$g6GM_$p8QV literal 442 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 diff --git a/flutter_application_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/flutter_application_1/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..d3d67e988176e81ad33b7ba6dbde073ed0c0f25a 100644 GIT binary patch literal 37497 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 Z{{RrcaGE#j%rpQ1002ovPDHLkV1gN&9R&aY literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/flutter_application_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/flutter_application_1/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..ee312861b298ed1f6de78b2a38e26fb1e5e2d044 100644 GIT binary patch literal 63236 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 Q@wT3)55 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 diff --git a/flutter_application_1/assets/images/applogo.png b/flutter_application_1/assets/images/applogo.png new file mode 100644 index 0000000000000000000000000000000000000000..68252035339f009f253e0c130b8a36278f8062c1 GIT binary patch literal 477909 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
  • L(R#dn^3EUUMiOwg^Mz;(QqZ{FCDJ3%9@q3WCgU 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ÀI7 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⩔(1ip zWaf^$i+10-kSs&(P|Hr2ztk<~CXKfoH)?giF0=YpS@G~2nZe7cpNMHV8@FBkLaO|(!=!neDJDb3i9PshHg z8U0J)Pd+cYy7eQha(a4%Lp!2E5WhTV#&*%TOS{IkkDgoW?(QyK&Tlj)q^%DyHkkKjxR($O1-U`{WQ zHwg_MLWl86W~o)I6ykq&5dQiRd)y^!YsaOK?y9l}l!1hqx=Yf2&qOmGaXWte*{j9I zgg#c?Xm@ZVJ(9u3Eo2j5tO~qlw7WNH7lG|_HGRSLFaG$)jCHvzVJQrey)kdb^YOA zHf}s=wAS;PGS<#fjj)PPZk7~xkx~%0eLjoVM<=jT5}bqg4Y|u+n~v0sc^8|M?AwVG zHMeV@r|y3=e7Z>c*-lJ3OhP!qUd^%r~BB#XZfw^64p?GqX+P7t8fQ(&KQ@7|5g z2Tn&lK{H3+LZ*{*FvhtOARKh@N{r&fVGslo;uVwNQo)9{-Y{nfD5pEZeph81 zCij`-F9LtsYmjE_8zYp6bmQ1Rw{EIJkwJhrC&KHcl-ia0EE;%`=s4v#jv~FnNHk6(d>@I7n&&I?SsX zKdOO2XBiT8-KrfpD8+ro%N~_sM_8-n`@C`^1hRltkQ1vTPr`ydVri8#OeZ<=5Kzy( zMq-)gA_~pu4Y$u8C)~uX%>K6PX2)UPSVPeVR$dRlr}BKsvH!HxLw+2~F)sM%o-SLo z!7l18NQ@jGyWem3bv-zZt?0brs@BQ9Ja@{&Ec$TYb5q~VKa3-H$!D%^b8nGl z9vh%t*fagSWSVoHc1In4M(19(yO`h?P)8ke+72FO1gv#VOuVN{y4A(KW&HRY7ex5U z2`e+cO*Vbx;v8cHfj4|j0cx2qxun=Z@6)}8&PbE~NvOJ@lZhQtmwEU2fpc=0WtA+7 zD!psL2?$Vl0~6q(mXLDwPuqh}+`=cMtAFw3N^ydilwaf#fHylGD}51bbYd0>w>KnLaJTxGz`y*~N0M6btDnS~;1QXZU>ROPAv0C=0hn8PPKU zuZ6ps@Qt;378@i2ur?EwH_#}Q<2h9f7`kgr`i%}4tifY1At^&CT(Ql9Fs>^>6=1ur z?e{dly=5a#lT+i5ix*Om+%ToONds?qHA*vLX`#2Ra>i2v_wCQtZ`&^y#oqJX+8TKh z$a`;Jjukqy&4$?dmIX8}IJ_IQ;-(wO*cR<-Bp~GgBV`_c*V1udEO|tKtW`W1w1q;e#Xc)VmP?b*{3pt40wk~)PiW5-xz

    >yAR&`qa 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 Hmhb)tu+iJK literal 0 HcmV?d00001 diff --git a/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_bloc.dart b/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_bloc.dart new file mode 100644 index 000000000..a345988d1 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_bloc.dart @@ -0,0 +1,17 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:meta/meta.dart'; + +part 'main_screen_event.dart'; +part 'main_screen_state.dart'; + +class MainScreenBloc extends Bloc { + MainScreenBloc() : super(MainScreenInitial()) { + on (mainScreenBottomNavigationBarSwitching); + } + + FutureOr mainScreenBottomNavigationBarSwitching(MainScreenBottomNavigationBarSwitchingEvent event, Emitter emit) { + emit(MainScreenBottomNavigationBarSwitchingState(event.index)); + } +} diff --git a/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_event.dart b/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_event.dart new file mode 100644 index 000000000..23d773c13 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_event.dart @@ -0,0 +1,9 @@ +part of 'main_screen_bloc.dart'; + +abstract class MainScreenEvent {} + +class MainScreenBottomNavigationBarSwitchingEvent extends MainScreenEvent { + final int index; + + MainScreenBottomNavigationBarSwitchingEvent(this.index); +} diff --git a/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_state.dart b/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_state.dart new file mode 100644 index 000000000..aefdb75ec --- /dev/null +++ b/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_state.dart @@ -0,0 +1,13 @@ +part of 'main_screen_bloc.dart'; + +abstract class MainScreenState {} + +abstract class MainScreenActionState extends MainScreenState {} + +final class MainScreenInitial extends MainScreenState {} + +class MainScreenBottomNavigationBarSwitchingState extends MainScreenActionState { + final int index; + + MainScreenBottomNavigationBarSwitchingState(this.index); +} diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart new file mode 100644 index 000000000..49c4c850a --- /dev/null +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class ExpensesView extends StatefulWidget { + const ExpensesView({super.key}); + + @override + State createState() => _ExpensesViewState(); +} + +class _ExpensesViewState extends State { + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} diff --git a/flutter_application_1/lib/components/view/main_screeen.dart b/flutter_application_1/lib/components/view/main_screeen.dart new file mode 100644 index 000000000..6b35ea272 --- /dev/null +++ b/flutter_application_1/lib/components/view/main_screeen.dart @@ -0,0 +1,81 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/view/analytics/analytics_view.dart'; +import 'package:flutter_application_1/components/view/expenses/expenses_view.dart'; +import 'package:flutter_application_1/components/view/settings/settings.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../theme/colors.dart'; +import '../bloc/main_screen_bloc/main_screen_bloc.dart'; + +class MainScreen extends StatefulWidget { + const MainScreen({super.key}); + + @override + State createState() => _MainScreenState(); +} + +class _MainScreenState extends State { + + List mainScreens = [ + ExpensesView(), + AnalyticsView(), + Settings(), + ]; + MainScreenBloc mainScreenBloc = MainScreenBloc(); + int selectedIndex = 0; + + void _onTap(int index) { + mainScreenBloc.add(MainScreenBottomNavigationBarSwitchingEvent(index)); + } + + @override + Widget build(BuildContext context) { + return BlocConsumer( + bloc: mainScreenBloc, + listener: (context, state) { + if (state is MainScreenBottomNavigationBarSwitchingState) { + selectedIndex = state.index; + } + }, + builder: (context, state) { + return Scaffold( + body: mainScreens[selectedIndex], + bottomNavigationBar: BottomNavigationBar( + backgroundColor: Colors.white, // Light theme background + currentIndex: selectedIndex, + onTap: _onTap, + type: BottomNavigationBarType.fixed, + selectedItemColor: Colors.blueAccent, // Active item color + unselectedItemColor: Colors.grey, // Inactive item color + showSelectedLabels: true, + showUnselectedLabels: false, + elevation: 8, // Adds a floating effect + items: [ + BottomNavigationBarItem( + icon: Icon( + selectedIndex == 0 ? Icons.money : Icons.money_off, + size: selectedIndex == 0 ? 30 : 24, // Scale effect + ), + label: "Expenses", + ), + BottomNavigationBarItem( + icon: Icon( + selectedIndex == 1 ? Icons.analytics : Icons.analytics_outlined, + size: selectedIndex == 1 ? 30 : 24, + ), + label: "Analytics", + ), + BottomNavigationBarItem( + icon: Icon( + selectedIndex == 2 ? Icons.settings : Icons.settings_outlined, + size: selectedIndex == 2 ? 30 : 24, + ), + label: "Settings", + ), + ], + ), + ); + }, + ); + } +} diff --git a/flutter_application_1/lib/components/view/settings/settings.dart b/flutter_application_1/lib/components/view/settings/settings.dart new file mode 100644 index 000000000..d50650e72 --- /dev/null +++ b/flutter_application_1/lib/components/view/settings/settings.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class Settings extends StatefulWidget { + const Settings({super.key}); + + @override + State createState() => _SettingsState(); +} + +class _SettingsState extends State { + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} diff --git a/flutter_application_1/lib/components/view/splash_screen.dart b/flutter_application_1/lib/components/view/splash_screen.dart new file mode 100644 index 000000000..c005b65a3 --- /dev/null +++ b/flutter_application_1/lib/components/view/splash_screen.dart @@ -0,0 +1,33 @@ +import 'package:flutter/material.dart'; + +import '../../theme/colors.dart'; + +class SplashScreen extends StatefulWidget { + const SplashScreen({super.key}); + + @override + State createState() => _SplashScreenState(); +} + +class _SplashScreenState extends State { + + @override + void initState() { + navigateToMainScreen(); + super.initState(); + } + + Future navigateToMainScreen() async { + await Future.delayed(const Duration(seconds: 2)); + Navigator.pushNamed(context, "/main"); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Center( + child: true ? CircleAvatar(backgroundColor: white,) : Image(image: AssetImage("assets/images/applogo.png")) + ), + ); + } +} diff --git a/flutter_application_1/lib/main.dart b/flutter_application_1/lib/main.dart index 711b75f07..05ce364f3 100644 --- a/flutter_application_1/lib/main.dart +++ b/flutter_application_1/lib/main.dart @@ -1,12 +1,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/view/analytics/analytics_view.dart'; +import 'package:flutter_application_1/components/view/expenses/expenses_view.dart'; +import 'package:flutter_application_1/components/view/main_screeen.dart'; +import 'package:flutter_application_1/components/view/settings/settings.dart'; +import 'package:flutter_application_1/components/view/splash_screen.dart'; void main() { Widget myApp = MaterialApp( + debugShowCheckedModeBanner: false, initialRoute: "/", routes: { - "/" : (BuildContext context) => AnalyticsView() + "/" : (BuildContext context) => SplashScreen(), + "/main" : (BuildContext context) => MainScreen(), + "/analytics" : (BuildContext context) => AnalyticsView(), + "/expenses" : (BuildContext context) => ExpensesView(), + "/settings" : (BuildContext context) => Settings() }, ); runApp(myApp); diff --git a/flutter_application_1/lib/theme/colors.dart b/flutter_application_1/lib/theme/colors.dart index 9a9eb5b61..32782c837 100644 --- a/flutter_application_1/lib/theme/colors.dart +++ b/flutter_application_1/lib/theme/colors.dart @@ -1,3 +1,109 @@ -import 'dart:ui'; +import 'package:flutter/material.dart'; -const red = Color(0xFFE3350D); \ No newline at end of file +Color primary = const Color.fromRGBO(0, 123, 255, 1); +Color success = const Color.fromRGBO(40, 167, 69, 1); +Color bgColor = const Color.fromRGBO(255, 255, 255, 1); +Color warning = const Color.fromRGBO(220, 53, 69, 1); +Color textColor = const Color.fromRGBO(52, 58, 64, 1); +Color black = const Color.fromRGBO(0, 0, 0, 1); +Color white = const Color.fromRGBO(255, 255, 255, 1); +Color border = const Color.fromRGBO(218, 218, 218, 1); +Color grey = const Color.fromRGBO(128, 128, 128, 1); + +Color scanned = const Color.fromRGBO(0, 150, 136, 1); +Color contact = const Color.fromRGBO(243, 149, 35, 1); +Color sales = const Color.fromRGBO(211, 91, 115, 1); +Color transport = const Color.fromRGBO(79, 195, 247, 1); +Color construction = const Color.fromRGBO(186, 104, 200, 1); +Color housing = const Color.fromRGBO(255, 183, 77, 1); +Color it = const Color.fromRGBO(129, 199, 132, 1); +Color marketing = const Color.fromRGBO(255, 213, 79, 1); +Color searchHintText = const Color(0xff808080); +Color filterSortBackground = const Color(0xFFF8F9FA); +Color activeSwitchTrackColor = const Color(0xFFDCEAFF); +Color inactiveSwitchTrackColor = const Color(0xFFE0E0E0); +Color unfilledGradientColor = const Color(0xFFC4F3CF); +Color sharedUserContainerColor = const Color(0xffFBFBFB); +Color shareCardRejectButtonColor = const Color(0xffDC3545); +Color categoryChipViewcardColor = const Color(0xFFF1F1F1); +Color onBoardingHeadLineColor = const Color(0xff292929); +Color inactiveTrackColor = const Color(0xFFD9D9D9); +Color inactiveVoteColor = const Color(0xff80806B); +Color disabledButtonColor = const Color(0xff007BFF); +Color totalScansProfileViewColor = const Color(0xffF8F8F8); +Color subscribeTableColor = const Color(0xFFEDEDED); +Color crownBackgroundColor = const Color(0xffEAEAEA); +Color photoClickedCount = const Color(0xFF007BFF); +Color cameraScreenIconBackgroundColor = const Color(0xFF252525); +Color onboardCardBackGroundColor = const Color(0xFFEEEEEE); + +List filled_0_25 = const [Color(0xff39904D), Color(0xff28A745)]; +List unfilled_0_25 = const [Color(0xFFC4F3CF), Color(0xFFC4F3CF)]; +List filled_26_50 = const [Color(0xffF8CE51), Color(0xffF8CE51)]; +List unfilled_26_50 = const [Color(0xffDACCA2), Color(0xffDACCA2)]; +List filled_51_75 = const [Color(0xffF8CE51), Color(0xffFFA500)]; +List unfilled_51_75 = const [Color(0xffF5F5F5), Color(0xffF5F5F5)]; +List filled_76_100 = const [ + Color(0xffF8CE51), + Color(0xffF8CE51), + Color(0xffFFA501), + Color(0xffFF0000), +]; +List unfilled_76_100 = const [Color(0xffF5F5F5), Color(0xffF5F5F5)]; + +Gradient draftGradient = const LinearGradient( + begin: Alignment(1.00, 0.00), + end: Alignment(1, 0), + colors: [Color(0xFFF44336), Color(0xFFF1754E)], +); + +Gradient appTutorialGradient = const LinearGradient( + colors: [Color(0xff4E9BEE), Color(0xff2D5988)], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, +); + +Gradient profileGradient = const LinearGradient( + begin: Alignment(-1, 0), + end: Alignment(1.00, 0.00), + colors : [Color(0xffD7E7F9),Color(0xff9BCBFF)] +); + +Gradient gradient0_25 = const LinearGradient( + begin: Alignment(1.00, 0.00), + end: Alignment(-1, 0), + colors: [Color(0xFF50CC6C), Color(0xFF28A745)], +); + +Gradient gradient26_50 = const LinearGradient( + begin: Alignment(1.00, 0.00), + end: Alignment(-2, -1), + colors: [Color(0xFFFFEB3B), Color(0xFFFF9800)], +); + +Gradient gradient51_75 = const LinearGradient( + begin: Alignment(-2, 1.5), + end: Alignment(0.75, 2), + colors: [Color(0xFFFF5722), Color(0xFFD2913B)], +); + +Gradient gradient76_100 = const LinearGradient( + begin: Alignment(-3, 1.5), + end: Alignment(0.75, 2), + colors: [Color(0xFFF44336), Color(0xFFF1754E)], +); + +Gradient subscriptionGradient = const LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xFF007BFF), + Color(0xFF004A99), + ], +); + +Gradient premiumBannerGradient = const LinearGradient( + colors: [Color(0xFFFFD700), Color(0xFF998100)], + begin: Alignment.topLeft, + end: Alignment.bottomRight, +); diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index bbde030e7..51e94be7d 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -9,6 +9,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.12.0" + bloc: + dependency: "direct main" + description: + name: bloc + sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" + url: "https://pub.dev" + source: hosted + version: "8.1.4" boolean_selector: dependency: transitive description: @@ -62,6 +70,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a + url: "https://pub.dev" + source: hosted + version: "8.1.6" flutter_lints: dependency: "direct dev" description: @@ -131,6 +147,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.16.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" path: dependency: transitive description: @@ -139,6 +163,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" sky_engine: dependency: transitive description: flutter diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml index d4ed2d6d7..aad3b899c 100644 --- a/flutter_application_1/pubspec.yaml +++ b/flutter_application_1/pubspec.yaml @@ -34,6 +34,8 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 + bloc: ^8.1.4 + flutter_bloc: ^8.1.6 dev_dependencies: flutter_test: @@ -61,6 +63,8 @@ flutter: # assets: # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg + assets: + - assets/images/ # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/to/resolution-aware-images From 297dbace5358330d30538bb4a38314d44ca2ad8a Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sat, 8 Mar 2025 15:53:12 +0530 Subject: [PATCH 04/24] 1. updated fonts. 2. expense_view completed. with expense UI. --- .../assets/fonts/Satoshi-Black.ttf | Bin 0 -> 73300 bytes .../assets/fonts/Satoshi-BlackItalic.ttf | Bin 0 -> 75924 bytes .../assets/fonts/Satoshi-Bold.ttf | Bin 0 -> 73476 bytes .../assets/fonts/Satoshi-BoldItalic.ttf | Bin 0 -> 76616 bytes .../assets/fonts/Satoshi-Italic.ttf | Bin 0 -> 76740 bytes .../assets/fonts/Satoshi-Light.ttf | Bin 0 -> 71808 bytes .../assets/fonts/Satoshi-LightItalic.ttf | Bin 0 -> 75564 bytes .../assets/fonts/Satoshi-Medium.ttf | Bin 0 -> 73888 bytes .../assets/fonts/Satoshi-MediumItalic.ttf | Bin 0 -> 76868 bytes .../assets/fonts/Satoshi-Regular.ttf | Bin 0 -> 73624 bytes .../bloc/expenses_bloc/expenses_bloc.dart | 103 ++++++++++++++++++ .../bloc/expenses_bloc/expenses_event.dart | 5 + .../bloc/expenses_bloc/expenses_state.dart | 17 +++ .../lib/components/models/expense_model.dart | 55 ++++++++++ .../lib/components/utils/helper/styles.dart | 13 +++ .../view/expenses/expenses_view.dart | 75 ++++++++++++- .../view/expenses/view_expense.dart | 33 ++++++ .../lib/components/view/main_screeen.dart | 1 + .../lib/components/widgets/expense_card.dart | 89 +++++++++++++++ flutter_application_1/pubspec.lock | 16 +++ flutter_application_1/pubspec.yaml | 30 +++++ 21 files changed, 436 insertions(+), 1 deletion(-) create mode 100644 flutter_application_1/assets/fonts/Satoshi-Black.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-BlackItalic.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-Bold.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-BoldItalic.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-Italic.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-Light.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-LightItalic.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-Medium.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-MediumItalic.ttf create mode 100644 flutter_application_1/assets/fonts/Satoshi-Regular.ttf create mode 100644 flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart create mode 100644 flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart create mode 100644 flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart create mode 100644 flutter_application_1/lib/components/models/expense_model.dart create mode 100644 flutter_application_1/lib/components/utils/helper/styles.dart create mode 100644 flutter_application_1/lib/components/view/expenses/view_expense.dart create mode 100644 flutter_application_1/lib/components/widgets/expense_card.dart diff --git a/flutter_application_1/assets/fonts/Satoshi-Black.ttf b/flutter_application_1/assets/fonts/Satoshi-Black.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7777885fc77fc5629e12a0af21eb4d9aba2fd5d1 GIT binary patch literal 73300 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⪻e9Zf0sjzK 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

    WpA%5{Wk~P@dkT@_341X4qu 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 WWYg@QZIK~(x$gCI)T}?I?f(HW&BgEl literal 0 HcmV?d00001 diff --git a/flutter_application_1/assets/fonts/Satoshi-BlackItalic.ttf b/flutter_application_1/assets/fonts/Satoshi-BlackItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bbd30776ab00f193dfc147bcd348723a2e1cea22 GIT binary patch literal 75924 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/assets/fonts/Satoshi-Bold.ttf b/flutter_application_1/assets/fonts/Satoshi-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bc8a9a0ba067baf6651ed34a2b6fa8b2c952dd94 GIT binary patch literal 73476 zcmcHi34B!5`9F@Ib8l7>vL};0nM@{=$(~FmlYQS4LIMH8mV|_T-ys1ZARrVj6SRf`puRR^ zw{G>w2zp|#=HPdqMau^ko+$k86~;pH8N2=P;sx{O$3MM7hu_ZQDp-s!d|&jQfcEe^ zOJ2NU{pSARNw4AaX~w+IE??C@FY(}iPBIoy%9#B9ig}w?OEqjce(%Eli7V%=SP&GL zayerUy$%@I>Q(F38&*{gGxj7t2lO(+U1IE1LieRTfu-LuKbi1mf7N}sMZ88fEE&lk z@%JkBsK&iMbg%e_=j3ljg4leoSMYnjSFvbG`;lJwkMs@xE@9r{YkHE4yDG(JkVC4K zo?xB;V4p4(UJ4Bz=t64qP_YAqU{|r>uh~;d3h5z8$a8_z%W5-WeGfw)o{R!S5L{4RZDtS%EQoqGT>dtDx?(Pu?$xx zOX5>mfV7YqfL8_kf#tFvM*e`ltJwcomAnD>;(Mu6++RV@@XJ{R{}YSiop`Q+6-klI zTaIJ?5=Y;`%$vW%jC?L=+0F*=>M3Xmx=ZCOL)yn;q?ho_H7rd0{&$wh?_!0rm8D8= z;yMU=|HxALF2Gx;jl&`q$>-z#aL||fo6TbQBv!&@re_LhMbACQfr+3`54!Sg5Gwz6YZTZ;w$=0v~a#adoi~3N_bQM?ytmm)c=KE zi6@CK2!DDd8WF5N@hbQiJanN~jExLFVxa8@!0#2%+7GY)!D|8Vj>l^Y;ZMAe@Bg6j ze-+IE;zRAV#Q8JdF1`=K?|w8^f=@5-D#i;mv%h*Q$C$nZyfBxDpS9N#?X{5R7xDN7 zUorOt|GU2uKhT)`#4F8LF=vQpXuRz67IR0;U+32~EXO{M#J|Ktc03&LX>btj_)g3p zy6yyRKZ4Af#8TMjEQ8=ZNON~O6b)w5Xc zhxwL@`F0Ixb}0+AezdiJp- z_9Qd$=g}uF`8bPY$42t`y^uFsSSVl0LI8IpXdldn@JjE0$)ZROaJ!t?IsSbTp7r#= zctgHG4n@m;tW^3p3j!@eWdp|g9X3&Zjg`tJxaif!N<9|io?G$08doQ-DY&NLyWK2L zZiUQz0y6dY;Jq@;HJX?2V@)K*FG-Raxc1}s-T1x&uM2Sf0`KXWgW#WoY$mQITxGao zaaH3g#8rdKLht!1mcahbf*@lfcpB){z$Wq%(6|+{H45+RFxK?`XWl3Efmi;<(s6kb ztS%R=T?F^fxquttXTNw43m{zWmsG?p822z~gaz^e;>D5Y!Q&}d&#tl53+jt|N#Fz1H{8~OD#Yi^kMd`1yhwLwh$R@c^ zzDIs0es}!86H^lN5{naS6IUk=Bwn6)pI)a=(r4+r^*1GXC50r#C#5GfCM_`DX8euu zPbpcZ&>u$r=K&3mG?3faFWLR@gm;L+xbfL^`jJtzD`P~WhQ%}uN2uT`WlM= zCNVTIC$T888hx!#9710aqOaNd14&X+U{bW`tJiqcc*6Ly))yNY8TtFj??;{)d3xlj zktY}%`R&LfBM*(782QCW;Yi|$r?N>|q|`B{lq>0s4gYHRhL28v1pSb)53RVQGb3mI zd*b7GxJR52c&i4-v{eHm;oJEe(&Fmy|?w<8-0F-FNva~|GG!ty1bhuKJ_`i z>t%cJey`*6=$k>dQ~Q3u`0`rqr|a>0mVE}f^-uB57wli`9QzU!Yyn>~j9MF?49$h{ zPCkwI@_FiWypQ)oS73YrUkG`?_+q{UGDG~sI0I+Cg0IHkHJo~2{04p_zX`85^IP~~ z?Y<-YsP^tQemg(T@76xu!+*u^=MV4)`LCfxKp)3*;(zsb?Js9`{n-BM^0U(im6kH| z0AG4BZ)n!OYy#Fre>RZ?U^f!Pf*E8JR>W`?!E}&>Q7oFpfTQDBJmzmA^q(YVV9Csg z8DPQ;G=sm>Sq965Mw`uYpv&bk3(IF#tOPbz$ck7ogLGqMtQ@*VC3L)MR>Nvp9jk|S z-N>3)GuGi&Hi@;d$*dh~?-Vwbb+Tz}I-9||*i1Hy&1Q4hT-MEcST7^0?_`&<-Rv@U zH9N>|X1`#!vZL&F@cl7%Cp*sWVs~S{{gT~_Irl5}0Q)t2key%;vEQ&q*>Bln>~X%B ztz!LbK3j}&+Q5#m6>KTr!`87S7=>NzdVYkh<`@UIkgey}W1Mc{Gx)7UMLwO~!5(3k zus*h&ALhCI7yL%H3_9mB{J4$nVApXk?oGTQxB;BO9_Gi{lROQhe<|kSDlwW%*hW5| zF9L52ffKj0%fYKxu>I^xwvS!IuI2Z!1MEh26T5-^lb7)twvt!yN?ye_@mgNZ%Lx*U zj{08#Xta-=;?d}JJwL$jB zPuMr%p$YF#_}(wWuhOsEZ=>JsevkXT>-Uv^q<@NkoBvAxtNb7L|8`=|#LkI}Cq6Rq z-GJDDf`Iyfp@6Fb9t?On;9OvIU}|7}U|-6-n5hH9_h8|d(!`sk(#kIu zjk$Ys|CTo)Z(-iOd0$wHEqg5|EPu27kUt?mHa|bVF@Jgf-u%1rAJ2a&|1bGxtzOnJ zYlgMbI^Vk2df0lu^;PTV1px)I1!)Dv1@jAb6+BdM))sARv)yR>xX`CCr?9lJv2bDG zuEN_3PZtFg)fUYv+E}!|=<(v%;+*2j;`ZWiN~Dt1lIoI`B{!DbTk?5nWNB$>Yw7CJ z!=;auo++D97F#x_Y;V~!W#`ND$~(*Vl>eoovf{o9r81&2tFpebyK<=V_R7aA->m$+ zN~+4JT3WTY>gK8wRnJtNs*b46t6o~YulkPaXR2ST{;2w^8jqUzn(CUangcbr*PN>L zsV%MTtG%Q4{W`C@q`KC+yX#KYeN~@Q-(J76{>J)8>tC(^z9GJ$xM6X_!G^mVK57hT zOlvG|oYT0o@#e{vascF z%imffS}R*ux8B?O{-mTyQzi{fdZJBgYi--#_QT}v$#1row)eH~X@9Ey8*G9CI$}H0 zI*L2mFzY3jHxk32mHVM-z`mgi)(0E)!TLOYK)Ib~D5pO0X#C%!dGg03Atcr|@^AJP z_66RM=*(tFDdU##FgYp3nqOeaiwF<%dc7~=Kx0x)PEuk{&U=@=arfP)l!Muc`s{3d zVm6*H;E(aG(iyB0!Hk7^8%!zmoX-B{vG}TZuhfKSljDta&FRyoRC9{>tHNLgAa?#-hXGv;Z{;wDQx*I7-3s?BN%#|J}-DO?xN zfwgzItg{B-oz4_q&aL^}WAP=@5Vz(gJ~=RdQqM|xtK5;)J8RQ|4v$RBL*AK|o~b@- zXQ$_Tz2%*He8vX9Y11aGo;5Z2ZJ+R-_Su{Krb$8kMW6iCwp*p=d@U(Z6#xQD8u_<; zSo#d>>qM-hdaRL*hj|Iw=S3K~fqUeqBzc90MOgAY!n_PgDPm0WQw&L7^c_FC{I2Er zpII8hq&rdT;=4s28P3v5~eC}|H^zL7~3JNmP zZO`1jeEHqW|2f@O&{aV6$r|~$^k?ZG7y~2LX{I+(f7X0k7LeCC!CO~gwS;-=co^OY zC}aY|X7ZBia%b(_bltt_$xA!h7nIjt7q+Qrlaf}^nw+RlX=`ujD0qCnt#;j$(?ks57K68&$mD8BnnwV@e~^&9rK&)CItIPZPA za(aGwZF~LZ1KUl@38>jf=h0p~olDLB?hD#;`TB_$A5*CR_80JvaJawyM0ot){BY7#GR6Z@e-2vgMm#l$KaB@N7ie zftdL$6k=CvN{qM8jwgD$?$&D`h>Kpc|K=}l&7IOwS>DlJQPnPay#1NaRjbz@x@k?- zn%~rPcGgr+#qJ061M^B@Xx9s^>cb(+^xo1$@iJrPUVoU-{9#1;uqYDmPr!ytT1$Yjg0_hWaT} zuKH6|e?;cW87o%IT$L6!zq)_(CVqcbfpw16s=T#E^)fnz6)hcjAD7%I>J-Fk6 zO#`4yJG%<^yoyo5=n-Ghf9<%3?(^rbE?T`vjIDE9p4LomRomLC?Bd@(_TZ+0flUwK zK8YoQw|qh81X|gQ25Wvfx0ORo)8q^{Xv<1~-`_vmlWEtNPCDO+S;DTO|@zSlBGv3%| z3rWfiCVi;4g%*_qySdM$+~=|q<;#JoCp#xfUebHR#(Q|z7hjkI!74PDI`I4=JnxU4 zc|2Nx(nr&Xv^axo2v@Onyy@VEZG@ID22h3;tPD!5*6BuAQhA&wEAR7q z2%9I?JS*U*`@?ZR)-#S(M16vPsC+fVpI4sXK|Eb~3%9?h;`*Jy6*8Br>K3>_EIuk< z2tFa?`8CT1E?L~O;;+1Oxlh8zrdxjhhdZ`C5Oi5^zqIP=uXgo!$!nAao$2|n@%B>? z!j&4_hg7&NKo$zRg`jz3Xo%Mi4Jl7Z?J8s~cktl>^q~y#A>}1yF1Ous7W7UVK9#Rz@;CEt*4n-k&th!o zSxzM3f7-U4&)Bw2xf@UXD0u;Ch%ZU-;TM?K-lXj?=o6T=iJ`PYhy_CW;zi};^Dpq? zicK$X+O%N)W+_}b@#jDDwm&O-HtgH?`MxVO-kXp9CXlSAwb;RZ+C1TFZyVzJmAiKD z*}JEzzV7^a>Ag#rFWtje{I9yKv=aRi9Dk4qj)}B(dJ2u16dX)Boot8321T(zy1Kn% z;SmDqkun5p zKpNf{;<`)r?Yd(B)+0BR)z(5w+PwTwfpUrm^R9oC+X_mFN8%udGXbXoBvlraG|XK0__YHYuEN%*zPz$!+WIG@z}|s%{n=J)R!dk^ z>d}RR>-(~-`B_aN(b&bIFN}ypx*Dw@(3uS2*I+5*FGJFTjoPBmSu5no)wm~+_z1j8 z%Anxc#FW;dsfRmT&7&n2Sr<9CvR$f+M0!v~8cv&i;mv`1xwAOGy#-RmR#ChFE* zxh59+?lxqiSCM)03*up0bJT{>X>|M|XfWg{` zX2A6PKUW`^5F`hAUwy^*Lp+iHPWe96;Asfp6O=mT3_XioGR9NP6*IST(oLb@W)6SD zmngrGm~xP>-NesrT&tjQy1!=R7|)bzX-sU`KLq1CvE}p6xA1QHwjTUWH);BNC^WS} z9yg$TB)v3fDy3&`=y zCA&B6Uebl{Ta<@CB{)h)4)IS$z9c!O1I(rTo@KLU;rncvvwzCh3;AX+S^hbD-Wr)7 zqIM-_hJ5=cABJwP$5TQ}a9YN(z6Bc~kWK0u9Uk^(+w7jMg9{6a7Z1F=cA0O`?2w}B zMN1}j*4Iw)_VepbH?_}OzCbzEl#(;2vMAbTLU|4PsKESa!u$xLl}$)w`^EtZfT_T) zbw0ReFmi6;;w?Lt7IsBQtre9`&D*52%2Vd->o%>sDktsBJyWOd=>$I5*Gm%w%%smk zsexg^WsO9$N&8kT*fC)+d`?M2ZE;rFge`u%dspxMVcoS$W=@-0SKpD5I%C<@fQ{Np z7qDS>L)yREAc;rdouVqnVSK{UZ97)xPuC5s_KBD^ciW^%+nOg{wSL2OW+N{ej+~U1 zvl^gv?onw^;wZD}qkZ*Hn6ZQ|03t2=9z^sNWh_U9Bdl}|CG?q5|g zrM;@MtsUb8tq^+@+Iu*UI-pfG)W-(5M0V!S>K(M@6jfoMPa4yf&%E&r@<>|u@@N)|Gz)TwX!^lK-63Q1-x&rqJ^ zhWx^^V&yDPw%E!*FOA-4U!%8s+m8*dnV{>m%mKl33#<6K%29eZVjZKo@U4``&qIzu zq8HF65!Nzn3dJNyI`rwGL!ZV>-Zpviw%wmzbIqsM@CIUeat_!wk zoeMq56dYoo;}vUsB4!sY-o9md;Vd0j=lCbmpIg#$_OIV~FwLmEBPFQQT)-0}rHeK( zj@nEI(;9*Wqe5<|fNft~G&{m)^?+`+ZTXhLW}2MC>-XoRwG3x+lQHe!Z|rgd{Kz-( z|A@JyP9BVo0F-aYtZf-w=N(j^6V1O`)7bD8|5sy5251@u`S@$VfIY1ZYdFn}Y&dl_ zF=1EE6S&=W5w)IYb!HXKtgT!zW9lNfgHjF2sg*M;%ht}Fv*LQaF)=1}Vt8OpN#oS6 z#zbR6tT`||u)MIji{v!T@djzH#%EXtRD0Av277u2dwcobg*V^4kjA+P^2LXrBVB-0 zKviKDD?F4_e%0U_UtL%3wBErbYiUYU8#0#7=2qqVU1aOQ8YKneS*(v(tFg9X*JhDl zd4A{gWSVv?>@GF$v5ZkzWc{-j}d7P!@7eZEY)4t{CktcEMoCs~mfb9|uQEaB9#SMz8`3m4YU?aq0zHzuy<#q6GH+iNrD&HAIQT7|uxy$>71 zm1GU%7Mgvuee_n10WfKQ+TB`V?x=~(m+&U{vbcP{w`HEmRM*tgM$f}vfxlk~SqCW+ zDl9fwO~LNo7C?jT#!>hw65+21>We%eowXYT&h9#O_uX$`oH9m6#GVnf)4>OT2OYM5 zELS83Xa)2R|8nNiWnGJ=EcD$H-c#JzP|_Q=#dmQ#Uln}$g8nOlSFQA)-!^T^zK+h; zMgA*j{ILU&`T-ZTV2mG`AWa~beYv*JLmgH_+8=;HY``A6me$rWsj|5ROXQ@qv`OugDke2owZ2_GV@7$|3`AZ4SFG{UCD8REFaj!< z11-B{8dAYv{q)Uij@@z1n?rZqb=Sc0x>Fmw8!!7lj6aua zu3tH=bJ04Unruw1>b(S?S54DIAin6iWNq%8yxi<8zB#QvBxzEmDga|L10rHqq}7M% zCsj@DYD!E=h|LJl#ob(=o?f4ZF({NL@>TM6kXP8FVJ!z7f+;PdZwF(cM5dk-&&PH-YFsi|1 zutBnfLlDe-WXqOE22M5i^)G?O>g}GQsH0?wR?PKXv=<3y&RB z?q0MAbc#fb&}78+flIJqvtgO09f93L5s3J)$;xZD71tS3rbtuk8#+2?o#4$Cdvfw8 zWty93Os<_$uj+1Li0+sq%R=_UFG1_XIDQFJ%2oO`kMQUf)|%P1H8VQQNqTci$^*LtC(pV@c1OR&Ic%M9Vmrv8qod?O0+lBX{%fAuA@3_5i)U1Y8nKOpAtM zmQ25HN!s)!{JpF!DP+!y^MB$;Rt$eD=K-D)b{`MnJBSl)Vk!w1@j9MSS(%YuS$SVY zdPYS>MmniXOh1y&-b1XBj$}F{IMEh@P#11@W*Cz6DRKE}QIQjKj4{DM`s|9_^ydph zQj&a=`guaWXKG4jF4_s>&FoFk7QBoF7zl1(_S97Ax2;M8P;s9h76Y_`1Wtc-&)stR z^eyjL#b3wl@E~14x(~Q}VpfL{bZV=<*kj`zw&El64FS5??rMbi{>7b~pv3i^tI=P8w>QmEbWh1H*C z?I`Pw#VNEYAv!9qE`930e@r!7nhI@A(jLXs&);!i$Ul#bkBchKZmBA5@wH{zs;hZ~ zE4rY$>O&wOIaXFq8b6qaR{QWU@*GI8ctYnDngnETxn#rA%gtE-DPAFTRj@HOIxZom zbZO1D{VP`O2v0Y}W~57>WmjkCROY-CnOKk&9Uc*v8*3?VDq42=X5mQ)O|Zb@2wH>p zq+8`X#5Z;Wa{C zBh+(UrY2i-qCP5GpZLqM_{xndo0^w5RVT$oC+TD2lFt9mrDO1y zM7A;+&QPo(v?JyY2S&KwYVZz){PE%`QiI)*p_IH?zv`Y0)t|BPkwoK^chlT_(R_;lcpPRtjqi!@u{WpNV=Z_wJ6N4~@T8Nik1 z9pW4=FzdY0LZRza%O8@*pjN3h3%p2vukYpDDWOpXX zsxL{C@uZt!6vld#_`|d2t>HV|+)5ZDWsSRMiD8t;Px^%zFIC^eh>dMiih`);weD?V zIF+?y8nw5n%6iy3pm&h0AKNT%@11?gtllEt@7^+vy>e_!(++rvzEMH~j-l{4-IxTW zXM{RrK7YZzLp#Nl=f-sEq0va4XK`fnh1?xy?-Vk|yT@}}wo_la_d13#l^@4+kC``@ z%}1_78Ld5`v{BZ1)85&1{ElNyciho*?9Qe;?~uxl9c#Sfj>bFgY`pUh$GBqe5DGq| zm4XDQ34^QdJIO*6;TfjmSRlPT^G%$@EqswjmbAwVHqU+G$g(N%8(O-De{bf=xs?kx z@kdjYzvY(A-^^DY|8s6~-{ND(|71bbLSYh}p z_l^ZF!WSpzD_JZ-7eC=yba>?61XX&Sy>cXUhc6l9nX}6(@+y> zUj>fkq1#sM-m{w=%k}&AN$>3$S}=bnpZSmSuAw|OxP9rOP3guAP>#sy4oc3p<(OA+-;6NpLFyIivNs0 z@4+Z69KX*eF&qUK>(q|t3*grTvU6yw<4<>chFG|_sA2q$&BV=%F4nU%jf0T~W1+s? z^=WnGy%@!R>%OqXj1N$*re+Ucc2S@_v~m9(G=&JnLl*)ncloPv?N2hpGpankQJaWQ zj1QRAu7TTMho8DAgtY$@yeY?u-Lq=@bNJX)LEGkCRujFjwsWques#6)|At@6N-eBjlb3l_ z!z9Tg65i~|eN9bQtc5eyl+-?VNuF&gpIT)+_?vYxWUOWh6xtHzaFzx~Aj!rv@pOa$4jNX9sH z%`sl*dWe?9@jTB$vW(+>wzp66L~Y+8PaO1j@@n4;F%ma!`$CG0?ZDnX$&M(Ip`h(7 z#LO6{ix1URkB{4lDlx|PLj11MNu85s%2K%KoE)d;-@8u5b>l)X&P*H+9QdjKg%#p4 zF>c!aM25a_&#b;R34=5k)v7}qzEzB=zeM!c_9t{7_s9NZ&Y(n8tiC7k*n^itwD6ED@U11e#rn=D;;1C0)C?Bi~>hj9HM9wm%?#Qf$$VL+dwQGuXPb zrMas5+vQhePHxDpHD{Xx5)*56zj|ix4F~QS>}cQG0o@I>L5#su(5+!q8!P!K*wNh& z{zrFNALim1mmD(w;20k{@hW`eV$A%6mWR0}xp~U@bWE|&4~@FZX)s@OahcoOp)pn4 z!JK05?L1D};yca_(O|#i(vmv=2__oz0MZt||_VI-9nC@uvMt(xG+MoVcY$(+;i6 z%Sc>VHghok#;~x8$vigZU|>kab+e=K}dUnEXrEeG3^c zy_|a*!z2xE-2x90Zy;nY_8DR?NBaWjr~`h4rsr9=*aMQs=eykl5VZIh$iyI`i&0qF zO)&gef<*w3=0?qvnnYmCpc)9brFmOx>$d-GxQ^mtE~Z{x7FJB59A9F`y^`brxnkG-0zR$>zZxTrw`wGQT0+lPX32G#a@yuUz(T0LMaJu z$ncxHrZqH9n^~(jDBq7o>dvNV)0$dL=eN5dX2X)?CMAR!Gs9(1vldE65;mzGF;^1>^+jloN!UAk7=? zBU%Vc$v6?I{4SCg{~9+gm86DJ;uf6h1V7n<64AcqfwBw1F(~jUs+#9HJ{H0jzjG`a z4m?P13$Lf@>ADaqe^oW`@5aZ41i7+&3^Hn7!CR>9>)7?2Ah^ z7pA2pj*m_ZvhLGj`UUp5mgOSvBJ$7I?V7|M2-w#$sjXH~ToL{ag^C(`qluAIHbXOx-AdazjS- z(L5#J3tkAM)e4E+WP6q2UeF9}_5>ms-kze~*(R4fB02DuzP?+|f9;-6r0(;c6>A{* z0!JgG5iTn97OYg>Y}|-z9=#x1DIX{7TB>^JAtl=>_WJ+YH$wA!8DNg2`R9n`)*%K< zi%SuZkBJjMa%7;ga!joFwas(qHV;2N8ZK`4$6w(j@H?mk#fcsVR@<`}$~uE5riNjKmSi=V!9E@&D@k)yrHk`m z{2K;gh?V0mgQ3bqNEN$(*FF{`3st+3o75e}LIwVPRT`F!I}Sn?4!=CkAdqZFuA=b! zB0kNr2CK<%W#cC;&Qi_V(uHyt<)B+`=~ITsO<)9%%4)ub^b&AOBE8XWPp1_b!dT5e zyl~>i$7=UK{zU$UlzGc7{mR;lByj*1JN_gG(#Fi#i&EjVLwjwwAR+E-oYvXYlB)dc zr)cpU`cFkwD_5Bz*1n%X5#Hy3Mfv?tk>xp6omcuVMj1O@j>9TP0bN>Li}%H|SsyGm zLyKs}E5E&EN3Ofba7Cy$@&JDgZh<(=x4>7|d1 z(StV~^X5GE*%{J{QV>2l~;a>SnB{lvI>o7qO$2C zB$EIolRkz_52ctzWC*FcgkH_|fKdPmhgM`Ox3y8e^5n_LSmw3JT8>!Jg?}rCKj#IT zmH;*2tL9f>@9JoULLS|6iXI!RsMvD&uv4y873m?@ji&!lx)p54AE41H_`yR|E24`R zjWlzLb;)uzp2ioL1Cx#o*<(NA;y2l2YDQi`TbZy;U8pTeOpT_tj5E}@Hqn-G&~AN= ziywyhm6A|I-agmKq$81?oFZ}oh#&W_ACjRE&2;qnAM`0pqz~afnJftC#FzU&KPZuw zb3$zo^>0Q>MZPyIJ0hRU;I<>(oj>HX^Q0}k(-sr(#N&B2FOBv}4r?LxhBQ*QUG-?D z8aE_|hXhQd71V5UOi`XkcqZNG!-J6EsfT~Xz5hSE-NF1?2!ncho zm*bZeqF8F*2AOeb+j=&zuzgf4tREqL~42R&~ThH|eXhr5Ur*`#6y^Q6n!!)wT7|nN%12cmrTar+1mqKO zcl^MBd=zGeUhFnhx~R1P$fB>d=?<+Z55VIIQa^tUQngrsMgxanlvv3~BzqDq%M>?3 zGzfKX4Y z$y*RDoqgz`hg{nWu(u~xQY;N&Dt36=!I@} z#iymkLxIQWm6?mv(qSpUW00E^<4rhVX4$MZ%o1C;cQ_3H!9i6+2M*An{m`Gl=PB>k z_1FDvBc}-i8!Ka9qc6OoCvW>>j}H_S4A^YED0)UT?@~U(3-zJW=}uvHLNCJZMB_{n zf=dAy?bjTEb7Weg*kgOloZY8I_IT==Y*s`&H>u8_Mk|M0Jy+x&f-lfDu~X$Gwe|ym zBRZ*YjNt%BIf$=anBM`~@a1Fqp#pO&4Eu;s%8(Re>;~tUUR={q9~3M%F*2U!nH%WJ z?y>z5|J^C%7)H@-zV^RSOIbM*eC;ug zs?DA}Jy;>fiT{(i|6kpM{;NqCv0mz zQo5~g-X)jx&3lQrp2|s^L|fdAGcs)a%d`8h*sz{P40aRwICz3~y72WNJKH4yMom?t zgdv_p#RWX<$N;e*RVl)8rVV2qgJ(& z2KK4Q=Rw5n9?i^_o`%nHG&vh{1+YQ>*lW0`@qFXJHAV)xmvynaEPU>u4yTNjLs(C> zTyp4ulpTyx40gE3ZgQN`%a3T=8WMQPPPyj8H@bCVr#sn6sCt`|q#6gsAIWCYGwUvQ z;s@Q*-+#+_lx%S)Kh`MPA8n9cMEj5injCZ+g6o8Zch&-@K}aX7amnZ~NNW8XvDSez zX&mhaY0aEJZWSE_7ezAHulA50{odhSqjwLwr=Va;gt?2xli>2yI zCo$V!*Iy)G-;Otp5B8pR9a!_3TnzOuRLywgqPUB2@*@{P-j4fg=s$h5|DS{YZ+d5M z#lZggq6EkzHx9oT1we3&eY&W9gdL=FZlGHIRR}#)Ji`8)u`n0)VC|KW?r|a0ya7kj4ApN)7xf#8q3iu5X`DcEjn%tgRfmP0 z!NGz0oXXtv1Un9sXJ4?)L;Z9>W-?{w+T-_pW{|EZ>PHEkhWJR;M}E!}`iJJ;dCrwo zt_7u#lY;p=!dyt?R#plyh&mUNotHEiev)9=Gv2TIfRrzPf|0=o7ROULz_A018pQE7Z*` z%ZVt}p)H9Q>SZM3k@i^k~k2J!xh5G51sfd+ZR!ogw>UY}DDxoo#2gkS=M+hI82L)%NZJaT9Z8bPe@7v9&yE~E zIR@81l23)B3V*=W!mR_l-rI&~i zcHwh}XH1Kqf%8l)uD4_^vhXxJpKaGou66bnU#XjDCT|#p&J-n~xCrKD5&EF~e{j9t zEq;#-2JR+B{$z@yz|WvCDozX#Mn$JeKU5;X*{CSyF=T~&UdSnt=Op&ae4#=@ zj-cfW)Dw~@+F9BpaD#nov_Bx_NHg+P17NFMGL1yO)cx+MM)vqWvJrqw?Yf>u3&=!Bv3>M=2MDvWAQ9!WTdC)zob5kztV`ZJeU*N0s|ACrEic#g#b)JI)@ns1sN zDik%b;a)&RL;fo$!CyO9H56e^bDe4%NdOvuU4y!VZQV2J*R+ye8==Y~g4~gX9aeRXVli zG5-|X^-p&Hm_x}sc|TI^<9%udkFQz+*`xa4!T&uaJ#479H8mGh8HZc%k@D>s_wQ?! zk?nazZRkG*K1pcWqJP2NP6<2q@<9Mct19UPk!&w8$&bwLtnYKgI#v`#5^yoAsMh2J z6*!4XPReb&cAa;M@GR;KOG+Tw4irLK+B=%>KS{*{`&)LZWP)~OU&jmNJRGN@aaQ3NPa0iP*g-;3K z9PTyR|A20^Z}X-&G17x+7c$1?Cdw3VcX8@3PW@!DEHXYBrehaWYUFIWo=aR&c?8t?y`nt16D)Rzp8N-D;4v#(k`s0;)IV_K3%z2+SM%j z2;*7ofBakVo7EN`_79%bwX#d?KXv3SiAj3;jcR?N%J}sw`ASJY{E*a2@Ks>4Oo9Ig z(ohdsII7w~a}?z;)f$F6Zv3>X?ZBF~SGLdm#8xtWXnJ}6oR+2Y_g>z&tYyv|l*p}W zZ?7tz14SBj+ee0_e#kjK+IiR7dlBJ$gSwbuRxHjq!C zj~6bydlbpE7u-9lc+eh+@F4wXyejt6A=1fS7#9)EhkpS~h*l~tq~8!OY9Hg{A|+5i z$_0_poc!ZrBdmxR6SdAq26_@&IE?R(oG|tMxES(Zjb?_a#XeSzi|v?=CsqBrAnvk; zJLReAa60M5U>cty+~y9~-4~?JnB28tWF?PFE4$5r_!leJDE~SP1}l-rYjD|eqwdSr zv3qPa507em2-^cHe7GA5crp0%y)kBjL+9tZ83}}(sAH$(D|sc_6X%81$&IJPd13h8 zW0TYO9(n5b75prF7xi0d{k6+X8%2nd*X3QaJ~^|sRG&IAFg97T=+g=^D!P1fa6p-- zk>rZYvu@{_y^H6}c+N;|NS8UDOGGR5?8qMWF1w8S9eXC4c-B8ieb$Ia#hGX+3G^uD z1N!Ah1EjRxqah;_eneP#v#He zDFsQWuaQ0csGte(8cUT6^kt`$=nEf`sV`TeQCGQM#uzW7+7;*@!Q*%#^lro?g^oH6 zf_E%i*0Ov#ehX=wKfh5qCwPkPEylgV;yuRnAHHMB67kf^l{{`mV`t+E@dtgBur+)W z&RU1<3Uxv?9n|aHs_yQp%DLTZ<_vXrS5{Ei3b?fr`P`>)MjqK|5W6yZrrmh&)N}6s zAkOMi|Ju*I%eEJl)?U%JH^o1AR)Akd&vLYix(JR6vllwgar9(Ioc0JeJ%wT?6#=7ijuM(`)2d2`eZogZc>Z6KZX&fRE-gdS0Px!m)7>WerxJ1a+ zi=L(UGj1{dj8^8r3s<1G>T)Bxi9g>D49Sugk2}e2_b>7PE$nuB)9o=GvogKGK^w6c0CKtwKB+)JL2_6%1 zM^Jb{ES(D(9yEGKveA%&JCb5NK(Y~70Qf2qS0MB;zKW{HzJpq^s258zB?{+3UyJkZ zDfe2l6<~>l%(B^IeUiMQ7EkM%zi4{b{HZpSJug^jladx~-?n(s)-8*hCr@r}X>X_T zmRKli7jHyeTybt8r*jJpR+Oj2xrJ7~(c1pElZ&m&k30A+9UUz^PWk9b;(-ue!)M|d zXcLaAv0!i1Sc5`1>dZ_DnS$dkGct_1QIiTkyC*!_Ts3WWW5Znjt|2Wm#gvue_gTy2 zpy}21UDH%pB2oW%DbDT;6c$Rv$XXhjv zbELgHul4GzZJg6nXRce5l9Q8S%%fVv!N9K?uwwtrVU~pTm{%X1a>GYFS9(;rmal9f zo&`ROMg8Uk5lsQf@6d6*>?akf$4DTKO3N`25mk{H#*+4$>W-w?l#JOo&z@s48ce48 zyev~{W_F5+KbKnWA6;8eU2W6n`uUZcOX}))TwX$aRCL1I`45)teQaJ>B z2TecI)*lsnM}>EoXSu1jdu2#)-He{5M&O>EV$9AqreyP1cV6c;RUn_*ur?((H^rEn ztI{-TLMh)zd!+bLO zfj83gXV$=;Kc)mW#w!f)PC`GR1ga4KKi0rrdw~+z#OHu-BihwYl)V6-hmNv2@j1>k znyJBJua5lxz~>ob*&JgH{Fd@LDv#s%i;MAiaIhU^fi_Cxi)UMwpwUlyR+M4vtLs4;K%gUzNN+W+%>U(+5<$Vh-8%DCFJydu? zQA0zKwYgDwV2SA0xz@g@W$eiL8dGcE3$C1SQ7PT6(!SZ;ZO+S0vs$yWU90R{&t(`> zvvgY6VY)RxqbSTbPoGm%^!F59WN1j_vyo9zk-BKO*gPR~ zew3&_KGj&a;53Csr}YwJG`7mR3(Ss{XI!8!Sc1JRIZmJu9T9KGAui5=1HVvR_ECgl z(tIv}5#bay@}ukxoMKrbBQ3ZIIAMLhpm=m13R=t^2O0n?Z9N|yiCYSrQCU7tpA?%G zRGa<6wZRek;+huzXQBVJ8RD|5mR9CqXv)i)CdcK+jSdZ8Rb3pLV2F=PPMGjiRcT;- zL2)CWAqviqB6h)%BD^MIteym3RJ)8MBy=#)i}gdJq3WEjIdplpXiLeC**6Tt?+3xPj6qGOO8ly{z0|!3qG&< zOX>FEZs;*Rd|uU8Vo!woF_}l?0=hrcaXYWL)E-Txvl!#@Fmiv zG@q#b*U|m~x}U={X~N0aM*bxpP<~PU<#4xjyVO>#99521e>I1z_wSefC!G`b>wG!V zk8s%a?<#T2Z8hiS@+{oUdjZ)4!;qSy{b7#`$slY6I2M===h2z0zL*Jm9Zn1k?fb_| zANKPQ_6ZJVnE@+rg5SE1yviYHXf z2ppz63y~|D*@e7N!2j4c|jMnAB8wP(B0^*hxW~NT*~ISzgsG; z9)51_Tmf8J)$p^pUt)R4r<*E$038C+M(TNba1CmD-RQi^JG6Y7)pqFc$)lTA-@K)B zXJ=<+H5=J{UGCm(&wg{mZPz@#Z|1D}+L;6c<@SCn(>d!}{bS^isK*UK1-F;Y<68Y= z;W|eNWPa@G1yhS=l)QT5H4C~5XBWSwToTJySIk?y>x;#^W0eC{{{5}xlY2Mbe!9QC zd}{aR+uq@W%_Y38;yUHhgX^11lwXVU1tqG6C|wD9d6KmbCoCZzh|78z=X*(44&VOG zz`vE}ZsR?7_^LU(N<*=ixr)2M1 zD8`Bg;8}I7a3&c}0YmV_3omTn@y=)0f6f1;JSbJH8omzn%wp5zY5bqCI_gD)wCd4S z^OJzgJ2tf{8?B5&m}IT%D(}wBoKrq?-MX3Ob278$RCKLdWl5i!p4ORe;mgxI z)AB9p(|E$nb%m9ch3jT^tu3smC|ui>Ztb0C&FHnJXTVPjJmPVF+^rZ>%oQEx334s9 z)5NHL(%Q}zTTe@8OJVoKRn`2u_IWF-l@;xM#9!@f1MokG$Qfu=s<)8VX~#)kItyWt zB{_XH_HZvceQmxcT_Mr-tG_a7?kKG?_ zCZW7}Z>m{(d)WtESF^rm$?c_oQ$DK+*^1-Jw~9Y1ybRAz60+NV0=kSrwx5E&nScAu zrn`6CvuUkz7zg&y5NhZAXwPu!^yLQt(%5(IfDmx@~Z;q)Q zTq>QUeYx5u$rbfC;zs;RWovN9oZ)Z4f3$sHI{b~+#y+$m;VxfZ%8&EoS|bu=UU>(B=2KD4uyF=>!gD%HKb;pLY% zwC%n8a^9~T;r;aYzyJL~;9NTL2f0>yL)gfeMe!OR_axr`S@dA`LVL~ zl3$S;y^{H%cgK$fhV$;Ea3$^DURNh-|ST^ zJ%L&34VgeEbP!}BXBj6Ngj1}g^Q$+$YdM{HI^&%Tah*ObJuzI%zk2mmC1~us|Nilh zL?gsIOM5Z*jF8Z-XQqmT1lI#pA+>Ob>RfS%YU0cEnkEiYecAaqRhMH`)uUCx2h>j- z`iY>u2#G)Zhu~@wH(DQHLnlWJzY&c#%$|(%T21l1wk#nnEdjZzd@r@Q(B6jUQMlb+m77j7|;=oTR?TcIrS`j1-;Y@~!kf`U9WYqkFJ9wbvV?phk67c=7ff z4@6#;as9$A0}E!X^gPYGAHC`5^L+W;r*>@KdFAH8J##u&PucqvcuZn8Q1e;o_t03u z1x^v2G8lNP8kRT{wQ{veLT2(tp{Rjc$14;5Tu~2_14FHDr@BVj>p}9TR;~4k>MB~k zW&4t%?g+2eZ7t2)sD(+Xc?UP*kkj;Yl&3e9#uVPC5r5PQ%D`G@W7QgtB5hdRgsaMl z3HX-qJQY=Pus{UaMlDgGhfEtZtb*x0DR)b6bzxAoIl#-uKPx4FRjrH`AWV4L^P(0buL&?)Z)$BFShJ=g zVrhTKUH_uogwvDNXE6wyF{V&N+<8beU}v2G`+R#HN2w0J?#wP|j2J{Pi3U%QT!=Q| z!SU2QdE?A!$MK`Q3XZ*?fTLGoQfu<#?DpN;zK-drP>&+zN2u-5i7n10t*%60s_e)` zJg6V(kUL^;I?&TI@X_|& z+rNovugpnnN&)`2T_##nPhG99^drwEzm;$_LRVe|dip}n)6Am<&nq#-7L*tqlxRG{ zgO1#+e17vb-lm-3%kO*r_4^)p`Q-|oR#x9=2dGE`W)AP$~+v_(U*tV+ql9n|pJ<0%k9r~uxfi09Grybj8+Hs3@n`d-A zf%7+CKQUwVjcZq3y}f>OW9$D{+nE4HS)BiWW|Q5JgK!u~ga9ibB1*u3AfQwf5iLdJ z5J6NzvVllQFj+*b#hY5SRw?C2)hbfFYP?WUP!t7^V)241=PHq72`fmbQLwQ8&olGx z?wb%4+y39(?>omk_dN5=%=6C7tFIaL%(cafTm1UUvftiTIdI6(bNUaVETB_Q0pS@L zsC>VIvtDTa$ogA&3dYSk@_YTuN5>sGf6v`_-#uM_dBm?Tv*|bw-Zc_`yjPP`=v;Gs zU&<*bFldSiG4;8XchA1yoI%4b9(3x^tZT>X-yHd}YoB4$<}AqgZTY|$<}a%G3b9)r-7IUnIL+>8oRM(S)c1IhB;O$o-wqQFrRtYjFRf-&fxi7;wRYBMbh3 zq=WbY1{JmHUN&~xv~lI#vWm_tynd#BHm}c_6V5#I$a~ie9C*z@$unu2 zK%6GeE?KB~*-=m2|8@OL54=<|{dwbgW{r9DpdO)1Ev=hf+UApbr)0rVJ9Zd3Way=% zh74`8aN$)?78gGmST=L!EL*>)qiZzCL(q-d$&2*(0z12M0B>Funvu9MCdf$F*~vqhw%53$=o6 z6Q2=0>vTRNC^RFx0eTXap<^ZsuCFb=@xsGn^YR8ynl#vcR`EWe1!PvFzgXyBPKAv{ zPybv0l~v>7C!Y~5aSl|6)He|=UD&7JP}0zrFeME?Nw=3?G)E)X7Ses1Bq>QXjl` zBkpddKHA9)?P!`sxEd1!$gtjy?{gjb8Nw(>e%7wHm24IsOPKj|UK9ou0(m zTy#iWT*qj^P~$|K-{*&mMvqEQ=c6iT4;axp|70?Da{n%q64^cLN}F98n}pjzm+29n zZPX=HXh%k7Ak?=W(T*6paG|H`C?VUx=mg#B8R`Yvcs;r`Qd$XH)+o%-9SNIvQqFf- z9lA9y9oYEbBHaE1&WCdK3`@Hma{I{W#w_B2cH{3mkArrPmbD7)lBS-7WoVZg zZj5&IvKa9~ySkh_m@^oERL8aD3AfQZY1>yo(ugV7%@yYQ#+c*$hTdJk<9B2LcsmH zxuo$Qx6H}ulAS#-uT7ggOTVVvw?So6iw)_wi?b*rzcK37pS!4c5FZNeFInYXP*=6l z)8C9OvXJsHlVFa*s8;g9oI3Uns4uUDOxF0OTkI3aee_?e|NOw03yyq$#jIIZOt|5O zy!>f-eS7sgtLMOLdiCv_ox5?t^zsG&H~re;U%z_84HK@sVWe)BcS@fVr(QL#+ZZ;5 zX~x-`)yAYUk$auMSe0Q(rk?=SuqczB_JSblfnSk`dKpag&sH?%`?1 zjX6WavxRfWn@aiB!{9CoM_lc*V}AbUj>i^z232 zzL^u5eRIrRW9Nd|Nr?MHHu1@kKHnbQf8^<7L?{Pa9zN7aWD-}7Gymcp*N@G>j^0<% zcx1ZDy`$pj3EGhl8*BiGib)>lQM3__9PVIlB z>oM|tqbCA=HbuUnyruoHK@GvltiYVNvQXv&-g!#JCOwAV>i!z=kIqy{VA<^%e-Kocn?Hk#7 zIkDfL8jDE|HC=RcG_uF&0Oj@ud|$qofW+H1U+?9T&m1$>kL!Q`$KP1&{bc2A*EV*= zs;Iv_Iw|q|ChCyY)5nZfk6|I|i;YFrz40oHhyO&3Mr2pcF~eW1)0;IG`p7Y3ijGda zJv&%r7lz-SR9|w@7Z%rG>j;e9jDYmEE-qO{O1Vz#C`mPfjkr)_*pZg5JtnKHh{LJB zBtP}niZNFn{3=#yu|4Z{cjGaoDW}%o2J>8FnLcSKo9fM%g`M4lGmb6-vtJEbN*Yf2 z=F$iCBrUW;`KEAOj+5w5TW7m>)VGWk$NUMShs=#7;lgv<^2Os0XS9CO`R4HoQzWv@ zk#~7k-ZSRL+>?699>@HSIj3I{-`)6%EuUDseT#Pu9nBi5lzJz4(uEw80^Un((&>GM zoY?SPEL|?SljltB?A*Dfks_f?to%vN_C8AuR>)`SaSqd!{deLhoj3>l$frM7H05y) z2|x0{&l6F_@+EtI^I1WFlp(es+(;=Ct6csA0h{wJvznis8S{~ar+!{eWV~eS=zGRs zXR{W9dAix_DMKcNghqz&zo@4%?6TqT+(B}JX8R*ses=DVAtv_r9C_yFW;32o*)x77 zXKoHNyu#Tx{=dkebEf-|AAWY$Vq4Rr>SyLkWOG(dDpDFb@+BrCb>yUd9ocE_KqD)? z^wM9nZYz@0fx3rtn#)O-q#`~w>+dD3$;=V#8IyAEOkD% zlBU!2WylK|xn`efz}jJ zC+99l&P$p*IUhksUdp~uD=TLF)|j+7rQx>Mdg5cR`=B?MEcw&=14XTSdAjHYrhGUj zu~&-j#hIn#p79s!BXvJrsuxjqX18mWzMRi$m&n+RJyo98p8cL%W6zp-sy(gQyy5us z>wu@TeReWOc3-Ofg^w1>v*>CDo}$B>Zt!$7@6R_&xLuM?Rm+lI7a1s{ z7Bj}n@=fn>+G!oypLSZ(si(;+mD32RvtEj8d!3_hbo81z${I)Sp>=F=^whp?;pmf9 zhCbiXvla(AgAK=r{X9p{=Q%tnj=qUH!6R?`S^2ZGDbkJatIvX5DDcS@ne+J?B3AmOFY*m-Nl2Y;-dDS2qBwmv?;29leJ!{ilvz z-u-WL^vSI4J=M{BSywm0(es5eeS@PDM0gLOY`8%N@Si$Vto9bTvy=s1h}q z75hQur>E)3IRbt8@~P1^kMAg&$ z29Sx-B={0Gmelv$J>e-ouV>Gm11=gp+CX<$4XLEZb~W< zy}B$=QCU)6<~LC^Ous7$KOS!h8TONPKbfyUEh55cs1<4|cIB$rJeh*+@mE@`@cbo} z{sMonqM#@+t)OD6zr5HVoDyiXQq*x$gleQl6(h6&rBgx@2cb^pCmATvdMb9vsjyrg zHwbyAl3(6`62r`yGxLrS%VbKwaV4c9{wh$VNm$Y=FpaP=8j1Onl4{uWO9?^B!Ox2?DOZVQ zvPq|;RGOQ_Cp0HHb7$LzEtjM7Cr_ocY$_z>k`rmHlZ|b;DQR01MdV&;BG!=I z>8%v@HF^rIWk`8h&_AlYI5@MQA|TCYdPR9KP#6pp`C(px3V%`gv_NIBq|jebR^%@! z3kE963W9Kff>KvIlV^o-Zdh6{GtWP+e1^YZaz!BE50?8&iUMW9lHysmHI5$QFDBYb z|D;*|vVv&=6Leukpr|Amb8t$fzkFsH{ANnY^jIs7H*4CsJHASih0QE~QJ}J9av6dJ z$wbkNLP@6IhFeK~8#b9lB~PJpg_QFsFd@<&6q}IaG>SIf5KWS&P)d0;z#f#tG#*M{ z;U--nflIM2wdEA>i=h!WLAM(*G~$N!T8VJP(1@E0`BH}vgWM$tlc{cLV3K<2rTlT? zaD{c@>HdP#>4_$nRFX_;T8d5NndXX~BWuf!zVspNG_H~u19_Rxr7&hlMV^q(oV6)q ziDt};TCnEs1SD&%kP>C{F8M^>g|}sv-;VX|9Z1bd%&t2jJvIdT-z-;Rr=8nHm=TZje(c=$hZ{84fA#<>c)WxiZ8m4}w zhSM#MpzKG&phl}P>M}J}T@Di%udYxN)RpQgb+wvEN&QvbuI^AP)O;0IbJV@+ZuOK} ztnOkj?rrS8tW^ip?-^y>saC0w+OPhmzE%HHb!w4%M*UsAr=Eo!6sr3u*$*h+_Zb&{ zr2e7Sst?s}n8rHwvHCeuQwj67dekE)y0Y<07`MMczJwOl9ZWbM^H*7`P4ht(0Cs?#_f zFGEE&-$dYhl+9Q*+?+MTE%gb!r)>pP~+_&vjRQD(~Y?)2Hk1I#2iDJ=qyLU-weg>MPw_pQ-z>{`V}#?fp4%>ui0F z9;knzp68A0xq1-$cFxy>^#yu}zEBU<7pWiAztwiNgB@WUaKuii;q0m!!C-x)9;HX? zG5Rt+mLdN*Jzig-C$OLAHGLIpz9;GewNvduYs|uGB%^ja& zs&CV`>pRpE^`cs;UQw&nOX_9yj=EL7&2HnT)w_C*dPBXbf2&^Cck18iyY$`q9{qcL zul|F+Pv6h}vp?#2`cHbk{y)7y|5-nvA5{0~hxA|c!}<}uP(P{{>A&j5`Z4`DYayT1 zPwBs@1^Q`Sr5;d!R{PXrYOZ=nJ)!=f=BYpFXY{lBIsH6e8hJr4(J$(k^vldUR;su3 zEBaNvOfT23>DToN{f2&1uhehpxAiK$TEC;;)$i%|_22ax{ek|6UaLRUAL)ea0_cfoDv08GOSE3TFfZzEY!P40AooD0LZp!)!iFjgmZ!OeB|b^9{HD%dG$5 zE-x8nE`x8l^Ck4tTr(ELXqui=ZFPSoCC->foNQ9dSjzYqPG#R!^b-61y&suQ^z(5Oq(8@RT&7T zmXtBfpGLouS`4cQ6iq6>KE3kV84T8EPALfnQi2sF1(Rn?ZzgKlBinCgkKs+ zx5^|K?Nsk{8ehO$I3-XxH3=z7Qt{QrUT}4ZxtIDb%&V;Ic}7}EycPHgjE!%yDEU4r zy0T|4yamCmq~O&hAP8oq7-|X@`=pXlqD&mi&G4Fi7J)Jb0I07TVg_E3KW}^ zG9jQ~ajFTgsH}Wi6A961Buvqy*-%BBYQnWT3E8-lu#Gz#y3yM3jYAWI(U~|Pi3$^k z(MTMkapDlIjl=3B4&zSZFz##|Mr-3R4ow`QYnGUan36nU68*^30Q{;r7;Af3j-8dF zISn%XLc^4dr{=Ei-B`46_u$5+S)!*mX5Xcv^iHRjr_md$bUUCi`sM`*wrDIe3u0Wu zacg*n(Pud0BFA8R4r74W;fY4uEWzrHIh}bl;|Hss9M4LAbJyrZ9_F`jk3Wn}v&2Zn zm{Xv3UY)hymZglp#^*hEqvW&Wtq$=YO=&thuLY_J!0XEM{1-AU(gKc8O`v%I0`FJ^Y9 zncZE^eLV9x%{;1vr)B(-m^aPjemg(SjBY;nzwpz{=oWL|!w<1I5wclcpUwRoJw_!l z{$7IqCH)%rf9ZpSkZjU|JJd9NGwU2YgNFXEAHzUS`0@n)&ut zO$Lp>z^^8rKWMbvN6P(|gU0*SUB9|ym|ra&dC9N*s(Q3}I(piyF4!cz62xvw|(P3HckuoShkyrQT~MW$m=wUrX)_my;W>IiM*44o{k zN~cMC(apK{)~zdNOsdqmu$xNVF^DhSmAVj#h)@J4XgW0`dU>J^1xwj9L*{V;@{Vj| z9c__wbU?<@$+$Sx+*#X+YgQ9-XRRA|cFA&QFDG|a4|12~c$~y(?mbaubzE2Or}IQ3 z8|lm)0T%aEbLTuM^ry%T2zirI-iMrlTtehgvyEh9zIs?aj>KXqbK7^3P<)0&V<)nN zI;00aBnGXK2XtY+--r495a#KZF%vIlUVR<&<~huL=QF!~oVK!*ndrOBHa}xVxzmYK zzW*T64mCORcxsX|?UN)qvqlm_YcuK)N4?llCpc=EqgFWT4UYP_qdsfPEXlr+)86&g z?A>6Wdutu@A#3*et=T8#M*P01oYP&T`C49P@H(PCeI}Q-x>YKeg2G44oQu%yS&|UdMjEqpr3kNtGIZX*E_&@9C&c z`K3GMmOjz3FM~RZR1YKw+su4lqzErkSDTpUS2N$=!;F77Gybob^M{!2Z)MK^B{Tjn znD<**&VFY9HO}0hnSY~lJE43zOJE?fx50)Nk41*{Fw&KUNT?PeO?y+lg{*9oBb^DU zFObk|Gg7G5NT1mJg3Ra=NA}Z*RD;|+KwFS?K)s1$7<|46$=HoZ;O4PG{&gfee11b$ zpkIM(=RN%iaxyOz`D&%e9=M=uvy5XF|0hHMD_u=*c|i zYZ|!8RLL<(95%^LIcNXK6SsfS7vq){;gTdVoPAn{bb@gnX9@=K$3 z&ZVX#j1{gh#QdVm>_H0L8ot#UI|bL0l*^ty4|h=|L~AE^In#1DJnK&S>o<_{eZ#(` z_Q)KEA{#8Dp6=5N;Xtob*XyBT`GTnUYWR~J*-Q9p!>3}Fw4^oi#O<^3=kk8OVTf*D zjXhQH`1*d_K8}7SdwSjO-L4xxVe7BUt=naNdlt;b-ML-4Z7p@$@=27SP^`7HG%lr= zcq&wH%TsLKPpnz^nA_I6wISNOf{KM|uI4VZk!V*!8FGTQ__vgY3oX0T>eF1Jm9;nh zBu9L^{NNjov5}B|%y(O{*Q%qe4)0X z{yNis&f<-SjDVG#On98(9$yT(P*NA#Uw=5e9bYRr+s}{V_+o1hjdx`+!`ZyK8No=t z$mA*azl!hpV)oM-Z67vNjpSWWG5w2_XZ!zA+{c%Sj_?snBNy|2>MGs~RX8h*{QvWG z9AAn$!x3Zjb(xyT8!8z&-f7CF(>L+y*tr(7Y+2wVDN@t>?;MLz-mP2g2o%o8!` z<=n^WW!$AbdU*FZ7FG7*H=!kE((c=n)^4h&egU5ssY`grBkC~yit+gz_e=D%;$J^w z{7cF%0xvOdknz<}LLLEiTu$5*X(3bS8K+Y#*Fz~cGsnGC-NU=bd1?V~lNQorKB=mB z52wv+b{pzT;AOy=S#JV6K{eP8WG1`=>;}8QS0D^nF{Zx;TR{YT3HE_6z+O-b_JeN# zV^e(q{EIZVGi^%7gvU1`%ub93$$MAMwOqmsyz$ZMRz|8{NNm(zH_D~)5$6`>Ghgan zgw~wV+slk`BaClJGo15c#-m#qi*9qCF6AwkjCV;rPscK%ld-9+sPj=5QV+dxnSpHJ zTX_qHImwP$jSKgfNhn9g5=FEXw~QdyjOS%uEMpA`&&mLL8yP@vBLnDdWB|R544}7> z0rWO9fZielz(>NjXDaI~RHiIqf+8h6iB;e+v?lThJFaS?JgIZKQHv@6O1V#^G|43w z=OPNrxnw*p=){7O9PM zCAUmwr?_0nd~q_lb278nWLEMUn?A{BTb(hTmps&E8lF7b*p5%0m|UD(nq1*}c75_} zm+AK8y9o0>FdsaWyvX(J$>e8Urk9eJyG$#S-?gUXf8g)aYd^(i@9^F-k_MgvNF@Tyf=I2#PmG5$2(U{-UZ%=y^Fnn^FHr-w$%H&%k;MQeeZ`c zvv<9BQ%sNVFTFcmrii!JW%}NGBw_L;`_jbZYwly`v@h4!k-JDe#4gX*+v<#|zwca^ zX^3x_%QVt=xyy7_LQg0~ZWHEf5@z3Y-*wpBXl;DA`tHPZuVb3$d%)##VL~rD-{T3h zugXUY!0uJw8%AC2dbY;*v9bHi+_(6uUC+Y4z4&rkfbWoqY+_f6FU7Qgl$I&beoFh4 z&hjLsTS`yveNtRBpK@M`q4|{IDNuXL_>_spWpPR=rizs7#e`0%U9$olp6rqG(VmBm z&55jK7A`JN@0O>mT@d{sqc@UNRu7b6lW%N<{!Hyi!$jQ)3`PnrP7)U2zJG#8o_Qmg3u88>p=pVnQBUdmMKQ;Z%7m*|<1Yd+^8 zc_}kCYvrDl!AVe>l@{ndK6&c#nWyI&m$Qt%z0r3u`V&3OUFd%$%stN2q38ofpKYGz z8vQ;G_N=mzkWXX(q2@f%V(x8?n=Io->QL);vZ7nV8*u-$xMB5?*cW+D;oid7|3>o5 zsvdE(TtZX7)lZ6zz6CdLn=qxFYTd)=jogs^#gbZEGTm6gqxBUg%%BNpqv%-)BVm5x zkvW|WKjO(izunkBW!#wjvd?!5_D|{FgyT0M`^Al?iQM&l#ztBJX*RJK>7>pSdn7y( z%hyK#wei)*l4q1iezHLm7+ z?j)|S#9n=D=yrwfLikb7JlrRn@UuN7=$lB%@NGd!m5En9C2mLue)U`8MlCU=_k*$j z!T8NGev^&gUm3qq6PLJ@QHi|SQ0C2s>=-(S5u%Loa*Q0Uosv11pPA5=NPFcCMi27_ zqo;X;aR#Hi#mtuE4Ms21`S&(&FwQjZF8Y{v7X!>#K;D%o^G-yYcOoA9PQ<+FNH%Xb z+8KHDy||Jxdw`rQL=|3H1%yk!3ginMt5Meg;f}%^w*aAvFpx6-7dRw^321AqK2y3S z$f1ndgU*b@x-p{aiKMF!qv*3Sp9hc<>*1)QaXTLGD@|Q&H21g7eG-y%t==+vd;iqv zD>xxetH+K0J&9IrF#3nh{Y`Vf%-pRn`_zVML%7yFU1#n#oCjU*ryKn>!ks8X3IBbM z$R&QO? z@n)v1PTAWet4VQ_#Z3;So}M~BbwgVFvL$X6ANHUYy$}wfoSDX}k=n9XmFja%Y3X_!sy{Bkq1=j3Ll=VxCZL&m`Dh4nC^{XEHa z_R@yP{9E=;H*7v7w#-+-8#yZTWBIk8CwG&3N+4rI_8bF3Y;keU;5a7cT-Cyj;+$ZM z;`WPLho_Vx~Eb-1d-J@%fw zgt8BISl(e}ZW%R34oKmloY@`TrIv!kaY*hR)^`YX*xsS0!@vDLe@3h(Y&q7ycX-$S z#JBvQz0_zmvw2!?`@U^KW4`*G2b8V@FbJFvSC+z;l0KZ1E+KKMVd z0Q?y|03IaVhw=XiSO^{ki@;yOV(=Jl9tTf=C&5$TS@1k~0W1M8f|tNj@EY;20B_>= zEwBo##{M1fE_e^T5B?6;fDgc0@Dca~tONf9pM#BH6W9Vm;7bsR)@o05k4^%~zzcjJ z1vKMX3vdEx1zJZ}=p4`n;hr18`OY3 zFchtdwpUokjTjiLn_z_7ncogkMegLY-X+ zKcYJ0s|#v3&^@{c+KfP(5mtSt(O0HGkBgwkMbP6S=y8#{IQqOA5&ckI3Pxfcg*qB_ z4C-ak*VX0FdW=pfLqn@qMz^ck#B&q48QcPH1-F6Q!5zeRAGjaP1%CwdzU*f~qy8Or4eAG|Yr#k06R-~a6MPOff=#&DOqp##-HIAQ z{Q~t%)NQB{-26aV4})m*Lk2}3Li-VDe-X4Ff%X?c`w?h=kxu1VI%o=-MPH{KyiPlK zop$iLZq0g$9MA@|i*C>zz)7GJI2o8Wpi*obKs`OWUFU(GARjvKMfkl@&qVD*e0@>- z5pI9NlQtpk!L$YZ+O`m(EiBS6N1vxXL}(8Y+5_)4!8TCMv#-E*umkJ_yFeK11~p(0 zh~WQguovv3Josu0EusZz3B|UK9)`vb=t6Q(M6QcbC!$!Y)9$g?u7Z>XykkhYY~csYj_*oHW#MyvHiPyh;} zhY9Jho~kl+8Gf4)Vw(9iHL3lM5oRVS{*JWN(asJKnyf=$&t~-Bq^qf(h|dBr6*sMv zmsF*Jrl1+Ey#>gMevHrE_)I1phwyobR(gQ6Y@}`PAUzRswuZEy|qRXE=<{gZMm%&x80pC_Z^Vmx%ileC#u2U{W0Y0ACSPij<&n-GMy! zA)Y?O)RmI#gYN~Dwu8iWh}a^O*VpkhXA`4McO9V} zBs8IdeWZUMIo?N(_YvA5>McfDS=4kZLTgR>vf;@>KPOTfZE)3=98WS77s2-dd`Ivt zv$lTGPpIh;m=ns4KzS(OvX@8|eKu(EDwmr&~`i zx0D`ksXmRAcLzN{KJI#h{C1i50Of_e>?;=(6r3cY-qL0%< zd3hqI!kT?Ww8!SuVhhxksGUJ~Lg-7n`%x$Tu^&Kbo(;W@yp#d>tTP`{7b` zfqdqB{48vR4cNLvW`9vt6xrDTu@>xfZx(15Rq8HtuhD0~f zi*BM9-9#^1O)pwaFIr76x`|%2nqG7hy=XPPXqaBKnwWM_hC85%9hBn^btP?dB4JG> zWwQzUCU7&j1>6d51Gj^RiR%%t5IhPNfxm*q;4$KO96SM@1W$oy!E?m-Jn9Qz33w5_ z1eStVc=jq-29|@@NXrWF264Sfm@84=LVX)`73w?qc@O*@d;r#hkH9Bj9r!2s9Bc%e z32!U-0&D{j%IgQz!ypRp)gURliC%CMJ>VvKz-oHHYI?wGdcZI}V3-~-Ob-~Q*Q=)2 ztEShhrq`>c*Q)!3)e4nL&!KQXPd4x8q*&JEaB<6|jLHsI?a-k(a( zW~tEW-JO!cbor>I*}4VJI#PwH=h+g?BqyP}N4L zY9my&5vtk7tf7|IDl zIbkR#4CREOoG_FVhH}DCP8iC04@wC`DPbrj40RlYIu1e|2ceFG)cQthJwmN-q}FA8 z6QiNpUU^Nq&K|-K218Q-7vKqrgp>BZkXB)Q@demH%#rae+$%rJs<+U27AFi z($bSYzK%Y=jy}E)z92jyLXFf?BYWYO!ezI>FL%IK!tl%Ykx6Az`gGXP zqfy78UPfGF3Hx&Nc3xuA>C8()(Ee&QjpwuIg=f?E-2`q1w}4y0ZQyor2Whwu+z;l0 zKZ1E+K6se89svu%qhJyED_9I31CN6zz?0x9@GN+a^gNIH0$2iG1TTT5;1!;|3YLN8 zATd9gPrIpt3g**ps-T4Vw3{mCCtGMcRm@Me(0;0zpKPHGRWU!=LOZIW9aYhes%S@5 zw4*B8Q5Ef|igr}R{A3GlsfzgtyE;)rs9&IdiMkCnLLK}-8V-XfqfQMx(Ji#KDxHk# zMfIVkpr-OH9W(`*&`dK%B8=K-hf8%!)Duv%P+Ot4W?qraSWD(CjJ?dfMaEw3@Y?~L z1fU1F_!_wQdM$JJ(?K5S3G$=!Y0p(q_FnN?cI(yihg{G$r~ zQ3d~~f`3%OKdSUMgts5mf&NB2hqYZ^< zKOx#ri1s70rV#BX#3-aaZAWBFA=*xewiBZ5)Y5h$w3!g?CFHb|8bY@t4;gh##NSlf z_%xp10qz6$gSp_3U>=wceq6p3q78&-10mW#h&B+S4TPZo5cD5{{zK4z2>K5}{~_qV z2Kujo{%fHBn)ryLzPu>}&4-}*5Hufx=0nhY2$~N;^C4(H1kHz_`4BW8g62cedODwgDZ6phNZ?1M&kMhM>a`bQppTL(n0s$H6WT2D?EG*aI4)yCu-w z(@@q9C`-m3tKjl-LXpfFIx+Ge2a@O)s?bT_u>oqOts5Je*^Glqub^D!FsAWhD>5pv z{WfmvbGh9Uvt?&@d(#U^zqy%peOb&#eDp3SnO;xg%4!x;jpq_-K;y5^`YP+L+0ozZuvN9~J` zex$KK7(khxO?jRZ-AT&~(=v}WLi?5$xR2gxGriMhdZ*3wPMhhSHq$$8rgz%R_+S++ zFibBLrWXp+3x(;0!t_F6dZF-tFhbi*PZOr6*-TFprl;9VPZOra{Wl{t8OyszXy4K^ zd`qwJEj_}w)XaKnW<52to|+Mf?JCAJtC-8~WG=gtx$I7z&&;$JVf02l6V;C5zNHq| zQ;Q2$f#}?t>Jh_b-UooyWq;Z;L5uUWo)K4g}P+c z&diLyODHTro$sU04^rprsdE_>9i+Y)v6%W^PkqZc?^Eiy2JTw}_pO2J*1&aZ%m{oe z^fMlMllSve3Hd?XKE|`h!4u#~@Dz9!JP%#~OTdfZC9o8{hF=+Hy@UQe@OSV5SPMP^ zpMZ7XpWt(_5k#QkBwD8zq=1H_W~q~G+L6@DiKtRHZBe^WhNqDGuF+5Rsi@sh`{G|l z)KV7%aC13s#_?=Cs+80O)GJZ1!tK?l6LD7nrW%g7LrRi5s$soF7OVTRSm!4z{<5gA z8n{;t+^YueRRi~`fqT`!y=vfIHE=IZQUFNNSRt3iO1Ui7mx+{JTB5W*X>p1A+6C`O zWn7Leajt_u^rKGugR>b+K1jdb1)ka!mG?E|qLv)glKNUwzK8anO*@tl`K~;5pQ5s& ze4UihQ5!g1KRC?*_|Z7%fw?5y%JQD2gfBEB(vhcmTFuNpf{O^_&}wG($hon94gCs6 z;q`gcdis3Le8%Cl~$r(@0oJ%Qz4>lx=nNT-Z-BBWKuI}y_RG-IA>W*0IaNrfI0 zbCQ+JD$}6Vm6Xs9_>(Oqq0<4;&q?K4PHyqR`+U%)4@yshHhqi&4yxI>xe441ZUMJ~ z+raJMLHxajyA|LK%qzj$)O#~{cMEU=Xay|&_{h~-=*LH{*3!16T{A1gY-z{m(2mcc z9UnPb3+?!jsHP!NO{3@BZ00cmRGGs}jjp8U6wX{t*?Z}m(m+$tj1p)8Y~Lh2+)AjB z78xlO(jsyfVIHuZdN2|x%Ds*O}NykYTrlj!oZ7YSYyTPvy9+;HM6|Z2dX$%gKppx|G;ur$Sd&Ia~`p$kUH;xgM9+RWHI%VugX1pX}pH z$7fT1UV8cVl!BZ(+#0!N4|WjBNx24MrP--S0>F-s{b|>*0$|*uqSv5S3-^H94 zG>cmN4d)9D<1C|lX*aSycswgfUgEr?rR@5f&1#NqjMu;7_Y^g^gIe9i?`djpH#NJ5 zvx=VK+@o5~#*vebUSh4$_neXQ1HV_1E+1CQkS|9$fk^9~oYs?1jl!MSlY~^0pO1Yy z<(x{ys%*|Ax{Y6&zJp)7Ip-!rKhH0dwZ5-$LeVOIC$fj@Jx(QB!>=v-u-0-ik(^@F zjvZN_b3T!*{q?hh?SN+8cdIg}ST%jT#a)!d$*hm9qXZkd-1gCx(e-dcb5VQFmC(g( zVk+~^V_ebqqdVw-6_m#X$2RdtH$-zP~zNmKL(MvM)v=stP_uIPg3>!iskQHd>D zM}D`^9@MeYR6nR_tqrNZ?XgUzj7TjKZ};U&zb!@kkQS&+32@qJ%sJdNe$gK^xSSHN zwKY(FyVyY%Zk=PDwu!R zi#1|$N$!6nwL<-$0E`M2ZFm~ zlb&kv6@5)2YvhV?9p@3@vDPQ#*tE~v-(%`?&mH+7X1DLEMZj+PrT?E`5%)E7CLgPEY^)*#1m`=8P@>JO?|C#6r^ z(vL~%gwGqE9$g{zL|W#;F&DXG785*5?Cizb-=nU^;uD&-bfJ)<$<_5Je-dMzB-}VU z;U=-(t3eOJtk_)elkFx=KNgO4DI;E?rvtH`&sfLl6Z`#!vP=(c_|r;el3np5>$SLI z{K@#sbtqR17Z{sP=3f71Lzm~poDVyc`P-oS4u0B1&FzTw6~}fB=lF-|f6TZ(`jvHQ z_}qulPk4IRH6k&63odx~W$49}ouzDd3_n^oE{B#LoEV`!=VC`CJ4QRkjOb26FJ?cK z>W|yk*PPC7=)~0oZ4364dQo$Xbslr!=4OVhjX9UTC7XG(?5|hI4%(Vn%p-0o%%-Id zl9@$IEhaIGJ_WO^my@$6WM_LivuwFqf(%aUkyJK*$qt;xYFS(-I8PI1{;{8z)XU6X zezB_^sh6!A_9uG_Qk`EboTQWH#4nlDCp$lp6Ua|?BTL%tPj-IBt_<`U#4RT##q~0Bal@YX;4$&!QqD0nBad!m zQ~ohXJvKyZYNi$WlDd_%lq}>djT95M#3SKJ7#;BcpIj103=$WkZ{!M{RTt-O!}J^F zR99X9bX>=xm!J08xQlM_+K}_c_;3li=4&G8<^JDa3A$`7tP_Y&eiEnrY#YywI~ARr z>n-gn2Q+?ls@IC7^$88jyvWjW=eRd93o@yF;la|2pWyVaZPCjmbZk?dK`pXs2?~)m zBdtiz))F+Oe1w+>%{DWfLekmT)e%c+A&p%L&JfGLRr#ul^K<)(wNRS}yFxdO)C)I? z@dT^J$~?gdY`SCi!XsiFr5V1FUK2tL9-g`(t_5=9O+(0OJ8no?8n(F3l%KViXAL1^ z@&xL~o3OVlG@DXy7Og1%7}Cf~Lu64iCy+0xTR9=#f(^G$J|!LrOTv)U{U?{i5rf2) z!>@zsiR|5mX=&E>RmU64vFPP^{Wo-%K})tjRxXkA7UWvYmj5?&{qxNU%8XH%TWvvn z@=NqLd4^u4KM;Bn>2wn1*8;C?*);0UX1u&Ld)u$2 LDz@faSn~e>Zok6> literal 0 HcmV?d00001 diff --git a/flutter_application_1/assets/fonts/Satoshi-BoldItalic.ttf b/flutter_application_1/assets/fonts/Satoshi-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..08b262dde9d966f1dafa2c0c94a70131f63a17cf GIT binary patch literal 76616 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

    2j^JK=(pdP1U7 zB5`>;#0BvC9)Ldxen&edJvBvF(etbE5&r~I1zNj6_&3_oVpKVSTnGu^1q&l48*NoR zdD-gopSo=Id6l!KFS~kH&$7KV@Hy(af5&su=^HLyvi_4>7jO7fhItTum7sC>ay5`E zqW-7Lz26wF6fQ3rf!mrg2`R*5?$Dc&S`s*~>*JLA5-N*7KdPhulyX!wc(ALrY+qDO z(6$A=Yv!+cfljx)-mtm0xao};}+ zfle`d{UIGw(<7=sdX`?gY|+;0o`$J|v*@kf0exHEo_WgfGHQx zMnKreP}mTuG-z~6ozlj_RJU|T)vOx^dYk%6O_$Mjwe(4MZo}Z_OMC!I@1pM3*^L2o zVcCC-7t9;Jg29xIc8zG)ACiG+K!CP}WXYwq4;I4U?l-$X&N2>cxM|h=?Zv9ThR#*p z&0Xv0XJ7rQ**LK7mJ0@JH$K(Sw`qDy&ql!8fW}MFE{GiPLHg-B={IWW;%2%*nj^eg zHnJKH4p5H~v{H(>3xUOv2Aa+RcZ~`pJJth7;ot(vMnlF~P1AQRn6w7;!u$zx4JfvIz+4b5w)oUIA!%AdD+i2k^-w6P+mQi?5Y>S-u# z=$7ZE9q_h*W;q@bFg2rGg^4%V#UT^juf5szVP?|6#+z2p-(I5XtM6Lb-PFDID;W>B z0uP&>uIG5z1pH=zr@o*+*m%K-t3;>wH`zFBy6u&&jt-7Y#mbx_UEp9kfh2+V|I6Eo z0#==#7u_Vmp^)g*2yIkK2$Ki~LG2$HYKYWEJ2m{Yt8k#O$zp|m`ZAld1Z9FHLFp+N z)KZRG@Kj6nvr8YSdZ7AhMlPjoAa|aq0sFuA*P5q!2CrS}kem-GzG#7+xtX z#8{!q)~2T=jaoc~f{{PH=_ArQZ~E##(c;ym51`E^>#u?*=pY>SCUh7k*KB;Oa4@pc zm-u8T&$( zX{A)D__KfJUeT+taJg@R_nfwlSw7LKqT=cI>^kz*kxO>W30{81jen<#7Y@9#db-Ih z7OX63EzV4->Qjq5cmAuqN$KNnDVkl=Jgf29qH7miaLZ5k?Y_GS}}Zt$y6u3MlZ@^7wvDdhAHV@SXVK4 z(W>cBB)`xwqjvCk@=L9=AoF{hs^)6-!~Mg;Wzrv=)j5UIU!~t#tMZxsN=Xss^*Hnn z$Yv(DxT>Mmr&GHogk_u#?7aD%TUTDMtW~e<*l}dTf}{0K)4lJ#{E;7a%x~&Fe#5Fu zZek08z+pZNn7!EQr_*cXiEzM3J>MQae#M<%&e%Tdvb~S*6ka`g@e}V0myJB|$j!?y zQ>R^%7`m()8P^c^%-#t*TRA$eQP+7d6RthJfAu9BmnD`+TUHiS-h0I(Kdc?7nQDXS4tXpl zU_#X40%U8dhO4sa7871f(hlKO>1kR%lEeI3@-yTMJcBh`gPXq?t{P^Pfo~8wg_rg_ zyh9|DD?V(YwxCT$;=W>)hpMooyw0b+xt=uhy; z`thNiw|sPH=dE?;Ejs@gyXegi{CV_JTvrTV{MI!qE_%~Ow+qm>n%QT7+MRM|J(XNF z{Cn@ps~YdkIW}u?J5@^mBfPr2XVsdV)xd016vf;%FfHDWto@2LR-9EU8C%7 zZ0=7rExJaSGGpb!o{|b?hiMX+T{fq$xU!`*%@U9R%M0_(5LOTP*$QRRDH+(!YI;g_ zVnNjc;j+@wkyXNF?7ni$Gm|NhD4g8wbkF&;v!SZNx2JddkZ)sEW6++p>$d+v-cb{lp1D@QzFtbaL^y7ij>jp3f@z*K zTS5j4#ss+{^x|3Y81!(aH!C3+zmmdL^e1UpML$Y zaH~~xhpM@NDKQke4H7vmuI6%6Z!n!UnJWcpEo)mKk&v73(4U~&gR*6-X^a}7axDGr5k88dY<)88GY&Kx0bXLB1}@FSQKjABY-9BntSUEGuJ2lM^-#(5 zfZ&Fzj^U=Vj#a|HrMs4`?K}TSVa{M(>&0_xJ1^zqM7#7eJ{G18L9RG2)Nl=Oo`~Bw z)IO-H@~q5h8)`1gZ4a!{u5ayK^~&ZW-K|-9I|u5fiQ0cV9BPKQMassv6H zK#9Z2@Rp{im@=PCwiqYneID2Mip82XnM?wT)yDvzK30yskutr)dbVdXJr z4_mhYsTikF>dc8h^{(1CG`Q5?Q`$*e%FUgD6`>m<%LX;n;$7#ne)i@g+Xr9<0) zqO!cQj-H%-jYmFB&YYbmb<(3UeTddLAsnzWzl$BKFkv|=Z33^9@=wka7k|yNqHaHJ zVT0zp1%0c<3bC!cVb&B)?3{w`C6x`u9mDly?JG{Ky`{j^FD0*DKfkk}s;7O}WLeQ$ z(R%*uil+1B`NTL*V;q4_R04X`FfCW194uc|o>RG`qsKR+Jk2Msw5Hz|gz@0q6*HuN z)3C;=gRqQ1YiQ{MxYZ(|D^URId#Tjk~_7qFGoR8mNtD*T^;Wq!bAqb%!;c zyw9Hv9s4Y`V49e?WdlDP7=}i|^wKMV!J(CY(<-KWHx?$0Hh1Q4h(-v;k$=`TVr~*J zrk^n;=x}Tu7ZXfM@UwD02Gc?{UGH36yJ{JR5%A~p(#O9JvN_<-kbmPD@HTsf-HT6@ zjSWi5Pw*%5@44xVbrXayV+lxd!d6qBm^0r}rwW^q*VN&YRi2^FS<$Y}sK`>AEqU!~ zda|}NKRY{rUaRysno(NYR4lzsvx@4PWZw$+6|Z@(;@!D$lHdl&WYflUe^byQQhSLY$MCU)h|SIj_CBe@9YQ zW>RF_lnDKdlIE7GnW+i6VG)}A^zx}~a$ih-ScEM$8nt=CmHOQkReh?y(DKmPs@e2t z-u2h#VN9uj>kK`~=z^)WvPlWLR&YT^|61OZuP9$UwTm;UxwyI)gds&v8(cA+8l*3q z+6KU-coZ>NLjOQJh#lK?5Ul=xSzFQQ>k$=vU!C+lp8H!>bWtKL26OUfpos|I;Tia) zMxU`Q`LL=I;q_IDJEvA;czFgyTv3(o;iXq!QS)7Cwo34d751XR6S=0eLYgFH{`UvxubsZt*vituU~ZP)C({C^5csf z9_#B?1I3&%Js<0Nb_v3vqA3EZ6zC>PWeSZ=_R|ejOna|ZdMSUN@h!75HoBCak$UJI zBX=(b4k-FNhUdrXAM>Oey=bHKlZwt&Ne@x~9J)TwEM0=T3!y(Of&LH;>14?+r3fN` zto$I3l_4JIOCzy4gWOrw`x5g%XZ9WMq2W~y?NG8OTjdfJp<{aK$m z{gb40@8Igsg2HpnhR^kk<>A-3i%t>4xL$#2ZMxKaX_q*3W)H&;(_fV6KNhPPsD$YV zaC`6$QxML`=0KQ~93mgHDpM2g5vOFG>pjr9mpLgzq4(6MsJm40%7Vh&@Ze9;e^B*j zns77gUsq6dGCh;QKu!p)bPcyYOu%J2v%YO^4)iJn6^5=#p4J?#Gk6vG)E8vzGsMQz zp=+|TlGAIO2B30)rwakFg4;u|VKm%VARDqu6V^q&#rzhFEy3dyYl}4rC!*!(Qp%^R zPaHY&KHw;|S_J|<40f?rjyo_@lLc)!M5BwhAAKXBq36PR{)PUPZC+KL6}eNF$+||! zaDzV`@?F`n`d0PgC92Mvti0_5wcUA{_0v2SGo1bjU`rs~0X1|`=0Y+6wN4f{=X0iR zGOI&r(-vsH^sKsUnqrQs*?;@o{&k9KMQe5K4FBKMpC~Hw|6SkgTca5+Q?G3dNzH39 z%sFq-^sLB&_&X<^8Lxk0{k2Bo(69ki+stBB)B^4!d8~G4(G1kX05{dL;TC`C7}=36xH>$ zG|nt7$jUZPtDo0U($d%3FtaQ#E8BvPWo4@y%L)n`=qgkF6n#x;^VG_e?3AQpttMi+ zsoq;(U)D6WA|*Q&-vmX>NK7tBO-#<`^|PlucIBPFK6b^CUo%f!v*pGU`?egQ zi33~filz=UTB_5MO6vzOPtYobCdfQbE@cf&!kYNsH}Cvy>Y3a2@xP}|{r(-hz=K`L zs7s@*%-;fGhX90-W-N=9hSjvy`T{d|kTcYUOsG$6(7I**W1850Fes_QK| z2)TlvsA}rq=9%q-TV}K@np%Y`GEP4=Ha;&-ADunlknWSNjiilpTKcvPw9MKTxpHd7 zRCbkoq>Iea%vHWvnUo!2K`qB%F0&t*ORo@Rm8_*_opo1s~? zmh_@pOImSeT%^vZi_#f|6?qMX>3I!BS(NwW#S=YI^mPPZm7+q;xwhLka=YKv#+)<2kCsG9fE94tF)o1zIhgR6aB%$d$UhtxxUKeK-_0^TvdgUlmjOk^Gao$2o;`;2I<%$v{LbR5oWR;}G7(4}r%ku<@ zYQ$9xmu$|dW>#LaxN6NB*6(R+I`ogvnIA&S^l9D`#Ij8lF%*>#Rb;C33!r!;ab09# zLYePd!XwhZD(VKh&oEUaE*yBQvpy*VLH?+jb_NemA(I(cA>acv)otouwW*{iy=E4j znzkv8emQsRnNxJrJSj#5(kWu)caaZ~a|J!Y;>3-cVvNO!F~*|1jM0W-V~hccG_`(i zZ9rC76!Rx5nH719}?-A7vUMHo)Vszo0fQcvVVNEPuR?e zG%+qb5hTs}jYOXJL%=!nJu-Qz-!RMTs;XS!rEIB{$v_}aNU-ykh9yH7bo}p4cmCFP z`Zk&%znpZi7d#rL@C@QxXj2880!q1M6(V3F=G7M9HJB{7G$=OaX3%d(UMm)|*W9dp zpd`+yG^X%rnG!RO6TRyeHFwl4@-^;i;j=UDYT>}6zM7$o;;X-BwU6ug#qtL z$N~hP*bRgf=x9KljaK6l-N#v!86OoLpR5n@oPW9URps3H)QY*K!c;cwtkpLwkCo_> zFzhr8oBlUCf!(W{mX_M3vLs}dme2raB;1A>3Ag@C-{N`*;zUSMkqsbd@mS=bw{aJX zZBgg?2~+?J?YBjQB1=5IisXRNH1BHvZL@opBVYuzCOSAGEgC_gd&9Gu5i&C6S9LTl zShuKs;{szYFb&-Q7dWUC*Mo<=xvmaB5T=y*l61DH3%w0~A?beC*o!EvJ##U0Svdz_ z?Cq^{w8!{zY8wsmzERra z)~c|6eb1TOT$*)^doy(MP^Pz0Ij9cnohg!7*<5?b&-6&wMU`vflv%#@vE_a-(vNO^ z1!m`&&5JE(9&zms{A0&6lkG7q7U;b8IIq>N9XHt4>NxD~+aVQ&LV%T4Z8)NQ5C=I_BEHU^OM>*5)Lc>e7>=k#!ZL zjX3j97XUzOg7s4n+!pYgAJf55#M#UA*Q_xof*~)GijnHUUw6@GXm>RdfDfA|KqN(K$unt^n&Sb&JB; zSjQHMv$w%`hP45X8Pmp3V3$<)Hf-!N8qc%0!+3>R-7=?)X{uailV}+CdPL89p zaWQ(;PfV?d&pD=%np{X#bnj^Rd!e zk>QN#@xU2#n$TKk0AcJ#VCOD=r)`dC8TKtIm=}SqE|4Is*=uEVc=47YCobnt@Uhbt z+t}fWo=B@^Jzg?q$lBOC)|T5K8*HF}ULbV^7MJm1-U-Bd0gY?CHwE4S#C&rq)fG7` z?z`dIWES^byFK|jT31BtSooLLNq?~Luk^c(2JaP_EDLAz&OLpjk_=GV!h*EVCdBm0 zOj(Hi=oBavoyFH^$PgIjF+*_!r%&L6QTc@0>4%_rn(P)n6veetl4}H!INE0G5BJz{ z>UYX7bj~3Z%4g*_f9>A%`Za4LAD)`56~)^ zkHBzz?^}kq_oiKqzx#yjM;}dj{E@_mA4z%qQ8xEUh@<=loks)D0+TTeN&{F~_G&P% zT8L+mmSQzlc;*-=vlUomdTq0*sWLl3~n?gM3SK8p-CWO_<1#XSn+hlT!nT|Hi$E{hqx^z|t=vKPH zy=5lWM-I9*4Jhq6VDg>O?F5wLJ_E=Ihm-G60&^PI}Og34<)8$1gTc0B9_t;aG;%tr0!0tT_la(n+-A&F$%u=OmUIPh@| zs4^M*z@Ra>uBhiQK_A(qdz^i#Ej}xFsj~Sna@FJzdN^o?@opCOrcJ1!oD2GXa#;et zIV+r*b~D5NI`aJF5Hnkw=M!MRtpjFfiQ{a4oD0m0MAJ zr$$_$YZx9_=C6=0b9 z-K_EU2~U7E6aoiSb{rf~v2An4_IHEAHd-ZnNP; zC@uG4!CJ`jDX=CD@k9!4Kf@lvE&(=YHam{p3r}u-^BwGFhX3XA-Mn4ujlKBJb{xBX zP+kBo;;l0ozuVqE<_PVF0~Us>No+aROc(dCj4H$Lvi97^{f4b^IS(ib@dP=yTaJn( z^3a&U6k-dCF(be^jX{5Cg?VPUre#S$e?&rKU|5fT)8hS`=WnT;R@c3LT7CDrw^scn zD|K*>U4(`x#jG(h>KzK_pVCTjTb&8NCEDU$0$*o(Ob*n-lRB_Z}EWO1*Af$TA1G zVROMVq17*+=?NbWlV} zbVzve;)2hjgTqtU#nzB;>pz4kf{)!sqhlQ%)c+QXSL6*v<#iR!Uw>z0|rBjAKEfl`f_qBcDQG;fY9%8&tnnfd>Ah0Sesax#%uGLS@|uME7uyy0i0hdG?E<1UC80&_k;ZlDJYiN+z@s~av7dIR>G>d$gvzaP+YzFiHJ8#$*vxJvA}FT^P-E( z-folaLVMgcWxMEPI&jv5SxzB#e?Wz|X9Bnp_2U#A!Cba~sI1 zT+TE=_C>bq&_1%L$}PE;+_lmyxAAQ#EGsXlIr9&fA!1~*U2-)rmca949qpU4W$kJ5 zvC<38a<7F2ub*|qS92&vZl8S6*aKxAWJYKr@C>V`C zlV*N9K{YlBT#)xwiOeU&Jk8D;yh}JosDU0J=T($nMTgfr0RICL&k^F5uH^WNl;9cq8D^nEft8 zu*1*feJs=akqNEUpZUmTNRBy?`ESfBBkL{BShHv9(;SUfhxT;Ri3x_5Y41_mKk@ijT!77! zoWD8Y&~8CoxwdrHzVSvTuJ7qtf990ys2C1qTH7bjm939ShU6vpBE2}lh@x0e(mk%D zk>hlSd2Gv%dx>qM!HSm6atKBppzU%GH;>s%C<^PROzc$cNl-KM)X0igZ}0Igi97+cq%QatxTQyDWZ-=Ep=u{jlUl zxJN>5OYUgwliMrsm$3Dg`!Cpf>mbXqo+g{Wy6E~}2XvFw{*{2a&Q3XWFo>*+*}5qdsWQgd!zZeh{($%b@wK{=N4 zk=rL272`eoxR~xbMy8Az*ha`JCbO#D$2BUkkVs*lA^ZG{j?K;!jL+=v$DJpd32DV7 zR`+Bhb4aa`=O-E*tCz5Z@AXBb*LklmPY@c_5a{jFE|;yp>e1ENKBltKby(&@=mc#4 zQ3A`2bXaZ9BT~5ZV?iOB@wX!-EFJAHCu!WBNz3$({xf22o0K>l^8CqhTf2N7Gj%Pn zW@<`jncQbimdGRa5u!P8lT4FL7IQzHtHgI6pksp-^+ZUmrfk;2$!3g8<&k&CpDnhI zV!yP=#=-J^x`!{nH`~NdIm8J=7?W$o6IlH=$qIGcZO|u$*<1 z79}zW(ue1=TT3vo*!Yae_iWj5!DJ1yCV6ZeO1vriZ1@m-%|Xj@AQcK)C&$Q!jpg~( z2gXMUXh6ov0rW4|FdBuxwkn?kUM>PCFfa-Wq$B5qnFE_3siX@gM-AkaOeY&5Gg;)z zE=eF&&W0TNG?QV_z4VjgMr+rHww?t)2LVG8YFmtf;@lCG2Sb+ao0Hx-C;SxPUVSJO zL+Ri-;Hbn_dw_*F&cZ~f8)C3z^F2rMKB%*lBeE`EbJxrVKah;GZekj}0TX|S=`f=UbBQ&sH&RRQ!o{6RgpZdP$Y zO}B(f+XP+l5dIa9d_b8KT4=WVT{t8?S%mQ;C%t7BEpNAQH$#_q-KLFl*6eFOssZ`e#fIq}VA z>Dd$BIDL@&kZX<{eI&Yxaln8heuCN@LM>k(nVx1_r9h3chZT1-cLzOabITiDt99^2 zaAb*V%?`dlm#TQ2i0$dJw+q*>J-ug+Eo0_`F*|daL44-1(M`GX*sUdkT>k@`3!N%} zL?Byftc)33669c^(KAJ*RQiR)hG>Fa3xu5cM3yDN_?gKPoR?rNvF-mwKb#V5JAk#W z{fyZXJPgT|qE>tQ1;++Mayd2#f6m%Z6zsA}rr+m8wpRkX2$}B#MhdEuAY(GWIn-8~ zgzcTU-Bz81!-P8vxG%;Yn*)W?0z7dkwiA#`%}^%kE}qk7jrNd;k9ZwlU*AdCZJ2I6edIt9OvS^}i%WMg(ah zZ5>D}BQ!ygQP2l%{Z#ROrpV(1Z*g}{kb?DA5ELC1926CeS?!NXio*Ypw=BDi^@%4m zr7Szk0!hSXGFa7=S7mx#{dzL5Gm}A;C2@3~^h94tpY&T9HR4%hk&$oEA9D0CDy9AL z`EYQ1RpypwR;bEpXLN21ZI#}Pw!lXQ7@019FQ) z=Q22sC7$tP$S8;-?arLY{5B=F{p^UXvblGG)vc33cd)mOp~$h|OZPidryak{MqoK` zviF9eNJcT;C0jbubpG7f@p#At;oT2eoMq5G zpo+y`+UyoWMNWqdH_L-&)o$626v${OQkIFJ7rbYhTOM9ynQ_E@1jvXUKPTEAH^>au=eV(VUT4Z<7`eTnPL+|c^UzkB3_Ct}qLg#$K*2|c zX712w>CKJ}AVxY18$g27_jGQ*rEbfDtq<}-R4EVqIlc8p*(+1Ft-Sf@#G09q<_N`yYHbw-wa&Bn+P{rU9USXxRJhwBj zGHgRj<)AiUP4(<`!e7ef@>(k+Go7kYl;`D_In`Y$FUYUhNE=x3mCr{@Q~*XMQ}oUMmanOz`S>Fv`Z3*~!`(uYOh!WMWX1heK0w2Ye)kNyZ=; zGO~dsSS83}xh{sx56)w7H}PCbWqgeeQ&mbYSu=7joH6p0Eb?vr*ym$2WM>dOL{8Fk zyy4Owo2&k%@n%Kb(9^Tw4E#?M&C6n(ouc3scw|}cGBuCMUZ)ISMcbG7j#N z;jq~n;<=#VX*oRi=OlPA!Lv5<=VXYWpn(Qne-8c!?U+o?F;(YA>r*;m#wiK(5&PES zn7$>d(Q7o#@pL@*KxL@zsFIX4i&|nE7$d`@`#qVBvat1nb)WRjAyS=;{?^% z)YJ(o*YvjrsMuz`G()hwr!UGQy1ZqgS~g{ELL>*v&*+~J7r{tQ#6$;xn%ET!P-j&M``bUi2J6R%EB~0P@!3@`wL?Azz z)e(Yw!Q|AK^K{#tQ_z5R``KG`l-x?SSvcd2`}>)> z&CIru^4(_+J_hIq?)&BBF^+IwgVL^7GYe|GF~O)|9n2KRnMQ8ZxaV84nyO0#mZyNd z45Nvl%uVSU6;;5v7*k_4_KtA9Jw+>5>E}{!^&crd292Dil^#d;aQTsnSS+ibhQ4$z z)zerNld+y%y3O0Am>O!DjCy#TtE!>0$*6x9d^-b1)Bo`N5oRsh^e9JxRQql`6mF#> zHoa->_!V4{N+MTUn5dAez~V~6cib-NGmt4(8f8}i+gZ@O$ZL>&WO&y9}*ertz+*(Is-BU=#lho>AY{*~f=S z5VcjgJqcyK*`?C0?D@6VyM>A?rls)}=j7bLjeZPDV^*q~mng1faN_E*mns&+SFAYm-e{Wcrf6+c zZmr3f7augOh!-xVBSx%ofIUJgaH?S}$~8_nFYzcVgIqNmcM4^?LpWWpfNH?|`Pr)gh|DvYI%y>UwwF%cU&8#MPH=EP%2{@qAZQ`)Mw)c52~QQq-lR!3 zoG{z7#8yK-7o2=9MyFd8V)C-`Zz8jR`@-bl$7Dt3CEeI~h_|)OR$msdo!xqe;===$ zAx{3l2@H2ua`u&?B<2y@C6|6S!_Lhq z=qQb!$U~0Y`^bWXwnF(MvChF5=v}CF37?}}<5rHtGV4pu7j=y;IhVby9uv`&?Ldh- zV-f_;>qg%Loz92IHQwyu=*`Yy=zlr~pefme8h3-@TC5dzP2+J{R}m!WJ^&dj-DS9E zjqM(JHF;iMif|7Metyrj!k=^p_zkhY(M(Si7;bT7U5aaXW+mFYTnr>X%J(`)`yaI} z!KfZ-3-beCyM)uUPkf8(EMsy5oUMv4P(vykR)pPx5KcSUEV8-4@bfEj8I}QB*vy3} zR_mMyQHGt~EDOR%8>Mr~fS_atRN=$Wnb=C|YUw`6GepX;?a@}VOZ1hu*aPm(z}fjc z9&U?mGfRO^L9FAUg_apC63*)gPEsR(()xqvG;jZRuuoP)l9Kpji`34{pLm0`k7Y^4{qPHRP~~&qjyf@^d-ev=DL+D_H63iJJoEC zTisAIW2iTO9!8HE-&RSehg@V?9yT8%FH+6SXsEDaQ)Rze@K-I!@(7H`Ri%cer+Q_- zR7LN~&zGK$3^U{W2wEz2F+AGsSr%JkO|zZK;~BF;11s;dZz4;US2jGG9V^#t8NZKF zBldo_ANuqp7OcD*ep35Yw$Yj2gpG;Gsd2}2H;e0ZO)w@~X2t}AvfJiN4`LCp@%nI# zNnmwWrN<{8lPzmw(kklA%8N_cF4De$dG6p_7|2U zsN%FjSEL~}BCAu0;`Bj^5VX4y&;E{QWtr`AZs_j~c+eo?lt3*`35*gBWOgc1SsqVn zqLN}cT%p!m$v(1_J@0<*=)T5mMR+2f55OsdA<>zcon8r^aVQHN6qy7ql*t>wPOspw z!`JQxJ(dB;Fht+v;UFh=?063F(Pevv8$>Tnfa~yrMh6?Lggct`hw;+Ae7t(zpUa5R zq02WeI5;4q1V^a?B_Yu+D2a4IkU)SRn$7Wp{@gL--k%H34m4(aMofgl2v>w6_5{VR z26{d8RGf?CP`=O0oTHrMpXooxt3MNWq-4yUn}O4raDFa6vGW31rl)(TM0s9Nzt`*l zJR6i5G~hKSpkLV^M18kpEKJ|LIelTq7T}bf<+v49s;^*uI@f7FVyf&d%c_{ZwKBVG zMpbqx6IaO7{8eb?XUX!qn2udC@XI;N2j}{0)MrgDBw7E)_xSG{T1c` zJ9pXRQC_Q@^Q!OccL9HJLJ_ZZ?Oel}7q7;Ag^>u+jDF%sHCc#z&wd8-Ioy(P z4y~*!3dzd|6TQ6CuroU+s??`EE;lkTGBH}~<)4_AkQ$O6Cq0CFGDAgn+_INXW-N|d z*5yWMA`Q4FAR#RwEi_e6Z^b>1BbieYa8G)Y^O4M&tayGTbAU!Zk~u=nk7SNcz>&-; zx|no+B(tYa&Nm8rqo_BNPfA)qm!S4I-+L$fGTd{@lpAMMHEoz# z)s$<>D4Uj@Q9g}+w(jPct?LfWXfG(=Hm9Is2imfJi#qiAXp5gKOyyJ75pFT*Oct7z z?Q8P=*z0s{Mz-|FEs6BzY16WCP|LeN0>&S}%>{DJdC^f~UM{C@+nFGPq|Q-fCTCQp zC*&Bjdj9EkG+m#bUo}`;-bDYEVy?+fNHeNFFs%uzGS@9=XJacyyBpB%+0PWdbW8aK zfg#0B19hbxdQEO}R#{d`R;93f_vOmQqWU?l#m3rY$+_jGR8u8rcm~FKKH6mnMv@ky z>~!6mh5tP1MWck5qzmZz*-Z9})<4jH5wFW1haD#b=P)>qofs`qn5c0|WK%l5_sUDl z?k+P|rzOP1&8aJC8Zag#=cVXVEGgNB%+l>7 zd>X;);4_=+Mw*Vku(WzkaLxf8=bVGNZpR#e=DxG;L#g^^cFutXRqOvR&Nh%@qx+42Q>i zoY@RE2r6nGtSxJ2@<3*Tq;a``5_V4eKH**F6~`GY29PeR`C&1!ELQ9-W4WA&C@7*> zTp=3Yp)Lr$W6PZZ?OrurrCwFWcdwb6sy5ebIHIT7D(UZD)TEOB6L8UjiXwHs&%R9- zF(t*aGz%0ZL8X=yVgiA z7cm*yFCPW!B)=!TLgL=zk{A~KLa6b1d!zN;}U91>- zmZgqx016){^@hLpDn3&5CK_IePl>O%EFmQ!X0<*~xFbIP6b9`{T^IXU*y}+b({`9eB5NIWUzW#Pgze3_A@zH)l`cNv8d;#RgBLS z$hfwL$($F5F$Ze=D@h+;W-^*}5h3BVmdw(Qn7sJd(3p6AVpME$LQJgD`EZRZc$_(^h@} z$(Rvp%;V3U^;3+G)mLV97j1OLOfy7X|BpvP=`rOO%D5l8VvJjjsC)+U^J5MVLUy7#(q=lt&XKImDnpy!r<4}SLRXM-nB z%o{16$Dh3jdSwgd8t`g#!Jbq}1N0Zshot+20prMlLgCdyI&!^HSRmai!wY>!_)5N? z=IVevYM?kD>fxf1>yw3r!c~P*BW+_(ER^rRfCyrv?S5?lkcVSz#DD^R*M6fgpFT>Z z#zJAfab!P-XQtIECLs@#;ZLap@~D;y0sNjt#*ym^3hBery~3hoepEE%ZZ6i&9N2qY zH?i&hzzN)={Kc0Fwua{3JZzZ}t~=0r|4o|~oL7a~n;W_tx;MPD_V&!wBiG;a;kAF; zvY@H=qS+18wn6tkWBoqY8SBwRT%B;<{} zBv{l_;80^Uj&)tQ1UN^ei|yfniGf|-!}Pzy)eEJYu@>hDyV-r#UvM8glNx>y){DsY z>u7M&_2W{35B0jooBmxbo&T`(8(m+IE$7j-WzxT-kI?>Xnj>`3A!ZY@(?Axn%8ns) z2n;}3+l^z7B+vLY$@eOlNAqlEH9n4sCs%_i4%ez)xP*pswF3r4lxXHM(F)!WBab*3?dWv2Tx&hBAJ==+ zS4Y0Yv2v1@#^b@OOCONlV&V{RUxHqO#i*c&ii)U+f{LL>lo%ojpvRWzEqmH+!#cueA z{Nc%*x7-_!9pATiv-oI~{MI8KsYX_E~M**}8v!{<*{>l`^}T z@d;}q`J7<-c|l){=M~YbECKZZ2rCdck^+R z!v^qobN+HJiuuX8{iAcU55U2uax)@Q?U{_UwgCv+mrZr-DRfF-&n()3P3hUA4vMdl z_Mg;EXu8v+;r7qK^=k2XfE`qAo8Z|CcKS47G0WGUVCIoj3iqf84mZ;IA!etNE>HM2olX{qu7=?Tw?$z2m2C zest-bx8F3h|KDGJ(d0X`L2A20)}PX%gi;8M#`&nd@brJ=JdlvZrsiY}>s;}`f5rp* z59~c$p=Z?Ug99dUNFBczH$NOtke`^#F}32){M_s2$?wJ&Sidl5M+0YtBs-dOmU4Ig zWy=sU(7qa(g8gG#TG?g^gZ)1sl$k3teN|^mu#jEf163Tu+m zs>@AR_vzZM>yT$gOt|O9&(gYG+^bvPVWawwo<6MasJU|p|c@>1PLcE;3hW5j9K zv6;{uWq!^&ChHmWKZlPxd3HTJ>Hp2SRgG;*mtUTX-#(`C@S6cI(gN#@--c?j{p;@| z_O$APr_K&%YrVgLZ>kfX|JUGF{dP2A4REyCQ4vyck=IxmWU98_8Q(IwMSM$+TJmpO z($Nz~jM@@pKpg(Enw*mA8ptPm50XEt?Uiu&99aCeujPoA>_i$heB?gkT(X*qZkJgX zXDnrwX!@OYaoLHNKk1l5kb_=rm{~feb_;(%Z)0VQC;dJvM%Ite-7?=iRDX!qqDVT^7U8_bR1@ zlYVk1d*w^u|G3g9IHGI&MCxW4)29r3u_-o|G@?Rvnh_I91931EvKDFh@mbHJ1 z(yz^$a%JrZ-F4){4?jFqpRA46&zSrmPIGYE+VnLf7ItUb-9`HNevz*plY9HCn%~=KaN}ML)?>PMZ&vPiB zeK}))uZtEef1)Vs)=MJiO_)|RW771c`um?w#$Uf+=`(-K7<>JO3G;qGd-AO7DU%g= zei#0_;A`#W*z5LB=);k5J!IG5y-NCN7Teo;fqmJ7MHC z@d?uhdT+?n$F9HhvJrho)_N|TIBUYC6J&@^J{0nh^GQuUbUL5xSpU3j#@?QGMhuOd zH-38IjEOU@`{}0>P05F6$%o&+JKp5O@A0>>@3c-uCT;4)x#mwAr;qPHY{A(6!&AF< zNE_X)L$6V{&R#a*(pk$VT-v?Y{LvTpUO*g~KjHb9^-pb6B|2nZ=3d^Xr|x)h?JIou zRrCE6VbNdd4c+=zfQ43s-rog(&YKoFDy{n<`8jXM|9A&n?EfFHR*JYQ!o$A+!PWl} zZ)%4j9l9mA2+#hXh|k>K4n0O>4!su1WZR@po>@J*&xkO;*JX}^u`KJ{rdYHuGcwlp zNfyiWf6)A$_o9fd=BLCX{XZhsw2-HDIBrO{%H{8FPc;<)GCoLV8` zIM>j$cFdKvZEuO$`gb2Vkw{P`VZPI<7JvWqe94IP!Sfr1r(QC7VA}B3%{#U0l+vMH zr_}Fr7dZy^7%*{Y&vt#MCUs;2uOmY@En`2EUqbV+EaY(?B3+9>x|ZA{g^{_?yVLip zs?k^c2YNq;Sk+li5Iogm1i|zVZ9(vi286%O6YC0p9cFb=Bj#%?naufU{fqfS(i^#Y zUNU(=+6dC`>6Fru^yixN_n#!`zoK2oluqqB$k0_?rkCnmWNYW0Yrbs3I6tj->^1tL zj=e@Xv=IC3U!~&f7O5JkeAr4O=41~q&|a%+>=M(-w@(Hgzz}6=iGAe z2F2P9$g9bVRN~hY{|v8}|7Hj2{mZ99f5NTb>vmvY_fZ9_gf?l*h{p)rNgw!pG=DA; zbOW+wL-WJ%cM$&mXFh+^{2>b(xqDtRX<%rXJJJ^|atul_h2C$fRp=?icM9p0e1qm~ z8MI%dY{`m+<}cODSU2zmV>XYRWJ^Ccl*b1}felTBTzXN5PRxDuZ{Ip~>;R@dLWJoT zcV_BC??_IIicev_qZ9KTP5aBFfKYt1#I|dg?r7bzExkX=<8tD88FB)X{`1d~$D|L2 z=%v#48riyqztZcUa&zltfYf@KBfCuPa9m;ceL6}CLkDbi=g6#Mz}*OcJM^c+E)!)s zE%VmrZpgUh*<}mwUNr66yBBru((UR_DZ@H-Yk$e|lzxr-CnoQ>dBGo6{&B$#D?8nn zJMG$g7f;Wbt)senhPSvjV@{W= z_rQ)5J5JkgQJWww>d#8yo?1NMh2|9)uBS~fq$ zo;S!yYs2<~=Lk=BA@l2>vyvHR=cTm<+MJdgD!=IM&rhUX=L`PVdh4@CpCcM)ErI4w zKxf6tpMF`ZY?W{5Uzr*z-x)0MUwe)q%`ckH8HSwwV8Y<^2lx3>_zg!(bU#NB)=>~= zg(0$?MGleew3BmY+Sj4a{?Jd|T~DF)K|d86l=QS>2DeQo`$U1{bidrkA0B5fM0c}K z6d0(7`z1iqc3AbqItRj(ZD{=uZ9C4Fay`7>xfJKh>Cj^#TD0lbu6Y}x=8t7SG8KrI z+4C#^QR@SR(@&IRCjB)y*o3>Ax2O}*5T+q}eJAGm%OvZ{ChYU=(`|Ud6ZTHzr~El3 zJA7-mSaHdDG_i$8wj>Yem^7lmzpwWzf3EpyPtFjw`V;l{nVm1IeyV@8N|ir$bwzgm z1BW^1q@nz=Wp~1N2B=YLN?p!l?N>E2X=cX$J4v3tP5xwLPFk=1^tVg(9M;c`YQOx= z!o4s%ZNl4Rm9wl232BdI0`UJqKzYV)wSE6Zl7vIn{^PeM$e*59*;63vT#zgUR&57% zll`BRnAc+;8g90vHLuH*) zAmcUsoy|DL+S4V2_lBg}+R2Y}Mm8kccBDP>NNq#|@@>x65;-}oOX%5M^~L2TEnWOl zybj4@{AZ_i8W&erhMq|1QQ^(ZpYt+IabJEYCLfLNVK=wx%Inv8o=**|T`={xyz zte&LaUB7SJpyIlj?uVjo^m~p^$xCHUfx1?XY3{{Q&Wu5l z*&T41zD>TxGoOjyit-qtaqtf0d$+!NIj@3~daW4l>s3hG}|HaYBa@Wb7 z6scLm*mLMp$bWs0lh8$0c(MS>vFOawQ7o|d^h{q2al67fQJr?a0myh(Ad*tKB2^6MHd^{<)z)#`*2k#!PQRbA>PWa>-$=D~*=}*v&MguQF3s6~u4-G) zS%|K$Y(0MUv=5wQ8i+*?I@7S-!IMPG%<$*?P{n(0y%vxJu+?63eX% z^Sf=mTV?9EY<-04?3ilnBUMYsJ+?kt4RXA0>toaiXJcC*t9Lu)+zE+WBh}9}!qStV zp>8?j1#{BX+_l%%v!=jh$60eKm}>=dXZfl?Ek}l%qq5mmQmj10Kb3Vh{gEk)E)Bhh zH5z#;6Fcds9yJXY1C%r978 zn3KJ**prsptACHQ)U;ln@p+j!>3N=M%L}}oG5JgKG7Fcdc!uZZdW^*)PocNSTX>x} z6X#bFmtsOMBGx&)rWfZIEkrXO({y5xqcV6YPS4FjO(Vcma}UPCG@?C44X)=!kGf9N zQc_b>2algNX3AjO?;d{N>IN;D6B49t+2gl7!=$>1_~e_s3r0oF@D>*3?(u5*auaMWyWNkBRuym>jE;d$BF>4m%rnHEEUMf|Fy zCwERrki|A>X4NCi4Bi*xw79sSXi(3dIfl@Rp|dQT%rf%jb3LDzD!Ehsn-G>RU7B)^ zP^KA@mGYA6lSh~yXi>_jn9wB2Qc6~d7VwsjxfgPlXC_~)3MZAx!@HzQDpxTsGBA-U zDz+q7#6=;hR27Q=rD`-xBYt<1Q}tOwEDExHO_;nm0C&p0%JpBCb193I>Y!XtVVLBn4GdGR($AUXgr^o_}o%E`|21DafX{rGiQ9tt#jzj*vKw?e0nMP79TtQ$#c= zX~{O}M=IaHz$NN(>1Wix^l40F@23-qMmYT=H|y~tks(LZr--FhZ_HS|2`lvCnR{x6 z#H~rZ%CF#m}@!jY(cc%qUA=jlfPh&jVhf}ut z(XJ0r17Vzl)eu&x4rP=&j64`YPhb@LO2??NY8*U#0+RWOtp1-&LwPxQKNSWwjq%?M zHB-%k3Cv-&`CN6iny0Q&^U0}a)NSf^^$v5_<*bXmNBu>;pq^ECsZw>T`kSg!zo@@z zhq_aJp!TZc>L2Q)I-#o7)9OX_iTYT*1Utx3_fqXXC4V>5U;ILSrao6&)lV>u?P{C) zQoT$m98>qHZ`2O;HB@(4{jC11uBBw;q@7$U>XT5}?_gbpl+_YS>pB=kg<3|RZMpir z`U5@EH`P<>CUv8_S^ZH}sv~NhcIq(ZNnNZBk5Ffr*^JatI$FmlAG49MEDCC@wT{zG zbW+ZS-d-HlSm)%RJ>E5bLeXsk-%6%3l4`6xzAa;teh=_@}OVt|niXNti>k;ga9HmF= zF?uY${_%>LPjyiJz#gs3^h7;LPu5fP<@yReRbQ#6>FIigo~dW)*?Nw?O3&3-tMz)G zzDCd2>FP&%qbv0SmVah)0)3Xw)(drxzLuSdxoW36pmwR&!^v(K@`WAhwzD?h*URAHD67`1Kq}Hm} z)raa9^}hO(`ltFx-=Q|BclDpt+xkvU-nvWwMc=Les_)VNqwm%C>HGEH^aJ`qy+Z%5 zen>y8AJLDhyY*xG@A`55gnm*#rJvT%=x6nFdL`>(pVu!i7I;YiQ?FK!sE5^2^_;q2 zJ*HNv|4|R92lb2kCH=Bqqu$c5=vVb?daZt)@yJH?o_>Rc_;2ZTdcA&IzrzaJclAd7 zo_=3{pf~9c^+)<+y;*;vx9CsxXZmx!Rezzk=`ZzHdb{4Czvj=<-|C(EJ6)=G>D_vd z-mCZN{rZ3|)BIgT|Db==hcpX>b%j2xEA`L%h(4;1>EpUe|H2cU!0DT=T5g&*YE{}-s`-sbfdV3=V#~Vc^A3UEj4;%MowYI zlEqoM-eu7lL4DN7%>3f?j11a>sEmNtH7X+=uU(mzGKz50i`}E`0O`j`z^>6&fL^0S zjSjeu@&>f-(RMVvmg*X9`RFxD^w?lTqO*hgsIdVLqOt?pn6WVV#pzaLW3oeD!p1E~ zFAQ7A!!^D*CpXjU$}x(2ydC2lTODu5CdbZ{3BfRLtCYhrrFl47qb z*C;U)Lq5gihP=2YTItL+O4vja5thrtHQ92XXStso;v^<7%aWAj7bTvM%(3ayZ)hIk%R81mwpYK2s2DOXyqii{F{ zWiU^oi-P)yX&H13a&yxoifxT+n&rIMC}Gp2Jc^|}rd#E)#43;JcKnxEYWVcRoV@Jt zCGw1&9vb`DC82Nb>2|p-vCC~{FfP$cL-eyl^vi>K*BmQV*Bd2jPJpDMt`BO5ODrr4 z=>e^K_-JF~PWKu$dP-4ldeK5lpC8o6Tp5z3F-4&-(?Va0LtY{XJJ(xObZumIVfuAm zzAT6|9*eF~F!tty$v@FWSy^WcO~n&kY#R(mNK;m# zOW?6My?9Aso;NdnLB182#>UX9ZDJ|fE^5&?E-Eg}U*s)Xm|rLC!LCDOwzRy|*wwrD#b3 zZ~29>48RIQ-g2(<2Hs+da+U>N8Wq7C^MbElksSnHWAk$If)1@9a`LiF5HYY(#$xtM z@zVUjOQYh2^rZu@R$TlxW3wbK{x=gB|BD@$z^fG(|Em=j|6ADTC58E}yd{fCb)zB~ zZ3g=EkunCL*u0sMMA3M%Fvdj5(icTb6l{HrNx%IPnO<0!zckmIRqQspB?VDNHF6T` zVl^l?Mh@8tiqeQ zAb(kO(eIYfSzo#^r`YQ*F3d^KUQ*Cl)V%Cm?~(#z?h?Y!^+sFD0vPS0@B%8IH#}pZ zH)D|#nTj*(nyheeO^$iyy2hpy6{Yry$_dm0SGqBAWs8#LqM(aXd*iGaEO!=PlLLyu za<`$T;w+aGGKv&$aaM#?u*F$!LtdgvVe(x_itiRNp)nbXi91gSs5mRq_?MZNzc@mC zG#c?!G*OnXqK!2ES~~IB*b~2vJHmQKPj z_9P5r&kDn6tuTy56Ncy-2S*|%C*v2;jx6%Rud<5$buYm-v!rWwg^V6+n38c67t*{N zgC?OZxG`xQZ0XIr>k3i&MAOPs>5Wme)uA!^xbz@fGzN{*{anMgYj}py$JqTM`^9QG z%nQU0Pc+)bK~`_xqZvojf3Wn~fuy9xh4fD3V_K8Y{)aJX9PFu>_eg2~MAtjoY88z> z*56{9wyTNuY_#!)$Z z&Es}5ZjuxFZsV5K$SZjMom(@adzR;6Zp6w2s2R5m;dzOkuAKD0+0jP7dp*w+`rr7# zZciEiid7Y*Z+2`@j!|PKPE(C?(~I+nm3&vkp8aRo@sEJdHS%RA^zb>OJ!<~Q;nU+F%g@Vul_j8PO*l^ z>u1}I_ziX=e}mog$PCh7~P@R_Q3IFFKBAAKkoY$$}!? z26j`VlZ$bsS)~=A2u{niOGe5^zGy?il8=p%dBh{{Xo0MwHFA!2$T&I}8yA@;Yg@6+ z%1NGX^NcW0=BY4YzK&;S^OQY(vfr*7&x;8~BNyq+vj;Uq*8a)YNb`&`&n{vBguJ0$ z=1F=Xmk@c>jYhJuLOrflBC#l8Z2J)sif@o;{D>@}8tH)xi9vJZ0i7A|_hURihH?4~ zM&enFtFL3+dT4eQ~DQDz!~) zILFxP1Y4bJt9iCsXsgytmv*kS-(Rxw%xTTk>F^!ad-zW4dw7-oe%g9>d8~Jr$_X{4DQ|Q?DzMr_lQ*MJz{|U{;K`H&U%j=X1zxW z&%%9VuHhLvveo_=y^QwvFy`OSh<_jBeoK~foY8-UJ@#kh-=N%1 zD8C!>xS`12Mj2i_6B*XyNLQXjLiIG#w0G5e$jVA>>C9fW4++fyBZX>?^hq`z4MqZF z$$lD;YLJ>o;2hTaqhav+S){4}3D}*q58=o`mP32nbRqh8knMcTj_+mYHz4KNtiM8v z7LJtU2Bad}k*0+sFZl!VksZ1S{d>^yr^rQ$(Z7!*=rbsI3HlF^34M;N4xXZlkCvG{Tfpxo!?W(Bz21P7@0gB&EA>H=I2TTIGt##w;XrRw);pl$ zaudF|t9wg|tc$tvdfzOY5|^k3zJ$7L_`A&8*9}d|Di~fvUlo$^x^6;Uoc&Gqa);Uv zwO#)UTfRf=hT5!aE_>Mheuml#HMOWyY=znoinYuv8n63Rs9sEjdg^|$-i42a`exa+ ze6*elDi*4_hNsX*uwDseDCkGrTav z$M80BFE#dT_ZQ|B(oBG`0DE3h%-~_D~zGHf)@l%3M$u z?Th4R(*IG|7Z!_T_=rU#6PTZx$GlLXz4FNOe;$tui%~~7qMyEIsQJuLNzd_4lQ+r# zKgQ`l$4+)Z3TKcStf&RJ2((xZ=6rs~hmSZgmwq9{XX#-}do1q5^qc7C;ywaimB2WWH@%MMOjbZiOD$Y&JTr`(eFY+@ zNsXxYNyN1qyTV?<<#={Ytug9E{f2S*GS4acC2_A`H0~v4Tc#9A5af5oAe|t=JT8YvW67NX!ZbD3tk8GnRO}n5tM<0 zKt{qpfS=SoylVQU`WJA5IJY%*O8SHs)+1~Y z>rt<5tqYCC+fp3G_$z z&=);me=T8_OZvOSp06|M(MjKQFmEo(Ldu~JHe-+toRnEG-knyT)z}E_Gg&klMd{pF zM@G=b^yg&^Ep4OtXUPEi7#TnxBLnDTWB`4P44{vZ0rW94fIcDvz(vrtV-f2tR3ll$ z1VxH}QWFHSGLc@Od6QNzLOCMu=s~a4eZqaOa!0fw6(gOiov+e(zlkj_=LY8{OK0A; zIJbqoedFA1y*bOUS?)Z-^Mq}3T7vOkVXiQd+SpfE(=c{r$`!`ew6Kn0j9$Z1ZIgas zLoA*7J|b*f$lK(wX~uL;*!-}pu-q{AWc#nMWnnk^_4syM*j+sD1?)2qdo1kfkZ;e2 zy%h4cHf&wU+s3euthcbwaQ9W%PM&+i4%%iFAvTYN$!==<3abg1lC!Vyh;U>w{wq8o zJdqBS$9fO%9Nyjk1=FWg!$-+m_=IrA1K~5m=ki=&eGgw4o)@$k)P)y|K3rC8 z+E@6^;dl7;e7QUPet8RjDE#s8XT$#yz9!^bN%-3#Z|{e14&Um358n}9>eu6XfB26f zZpDsWwg$qkl?>lW9Yyxn8JJ>YsI#O9Mhz35ykgYT}@E@}W~Z@M-Z zbyLW>Kmk?J5iTR_;22E4v1`PK(IKf4N<5Qv=*h-O#=}$=y-DxVyPidG>RM z(7bzu+t9pwvKwl5&vDN;HnZHhycN2a$s0PMcCGJV*Q|E1CzjlP}!8zxT~pN$+&KOp9g?~Ff2 zg68OEzP@SfXBfTVmpa|}bIh1`H*H_O(LW?l^^M~>eC}dQy2@9iW8!ls$4d0VDYRn* zdw#Xv?U>E8ldexvBJT) z0GSQ><9J3)oG$t55dNo~-A!4%Zs=sLaof-M^R&^M+-4n<6Gl)hjH7> z#H8G~eGL=omB`En$7(RbiZe4C%}pP#rIDkxHDfN1nbWw~%wY61GZ?962BR0fyJs0K z$qYts)A;u>GZ=l%+(kb#cQKeSTxPCBnK=<{=0qIUoQRp}2s5)AZH+uyIH;uf5mNFb zs_@FyK)9ro_6GW@!XvkUZ9sVAZcqj!RZ=rffYXvWzy;ujx+!Q$4km$)^uxN*qe?~6 z)sJ5E5Z*@sq{MnM>NM=m!TJB1vUtlp*O=!ddNjn#=&k2!qtD>9K+XT)r0iJr%yXU5 z|Is{m8NPI{c^)!+Ng4gW%=3hKzG$94^R(=5H2NRR^9A$lYeoru#eW^`7(*y`u_8>f zZmtHCNyd)FZ|`*s!~ARgIObu(&D3i7ntZwR$T1f@#EsN;tQIWG~d>$U#rW*wzXQ&s-V>!tsZMt(rR0)Z(1GXu0Z_;(}F~mn36ay zab99>Vqu%h+vFvMB_)S#OG-^DOj?$7OVZs*_b0tcXn~s$w*u?lPndz5FwNbnU%R26 zK7<*(A2XppMhqS^p-T)3tneicCLX!OfIBIyRY6i%%w4S(_z}Cc)g5)P-?L6q-s-XX zh@0AKTPWVRs{m_Exu!7N&tfr$Hj+&T#6s(*&Huw zR$^{_G%sm$d8>ZJpFB@W_Cr!3K1&G3H(a+mD0cl2H{o&NaqSnhzq|c9>lwC}yuZJF zdHW+tcT;MTg2!7OOw4V6f|8m?7zgE<>`0DDZkpUOxm$9d zf8S~~0R2GU)0`Kufiof=QlmK0XN<3k^P8&FI4~7V12cRzYPRp7n&aE8uJYBYxxO9h zcHG_z?gRIOzkvt93h=++A@DGG1U!o0kK^|f;7RZlcp5wdo(0bl#!9dXJP%#~FM&1S z74Rx}4XgzvU_If#1K!2$d*B1GiEuvT+efG$qi#n11a%AQr>LKUFTj^zJNO!W3%&!T z*x3#Cg8iV9Gm0F*$$7P$E2KFEUb|4;sEznTNMm1(jzevN+7vY&H3795YIEOe-4Y~% zHn>Rw9*_(=g3i7Tx{GhO?&^C;U*y}NyP@{>ozR@Ato!l3KVb~OuYveA2tQ_Fe>V2# zpk9SK7xik?dAPd<_pjoHe9?PQiND?lNP|8A$}s;P90WgrAHg9|4t@d^;4tZzf0M;Q zL0wsU%?yEx_ia-Nz8Cpd#9rv@N9gM-{-3)Qswz{heaHCc$8PB6S!iOdp$DWWzRjwc zZ=I2aTDEGjRfDaKYB08E`}SjVFDs~<`c~loaYBs6#R>d>4gY_{|05;_tx-GTsxvg* z4fKFc(@^_>e#EjrG(Uuva1`cad~2Z9HPGrBHJ;EWpk7WquK-igUx_*mbvo({-xf8K zvYkbpnC&ZvmdlAzIka4^uBJZRNSHT)o53H!E#Ovg8@QdY?*;dP`@!G917HPsl(;-j zT%G_=f~UaK;2H2Nc#iN_f>q#o@B(-VyiAUxMx6Yw#`j4wPbN7wT@* zJ*az8_o41bJ%Cz?|GyH~Gr;HDsx^?m2049es2i2kjWyJbO6tZM9m%(75DOZqIO@q3 z9f#TkwJB;mDwIY&*`k}X?xF=W+7h)DY9eZD)V98zx*cc_I)F}~i?3XFrH^qDYB$vG z)Q=R93etQVsXwcAAJo36{fJ9{;xd461`^I7{2h$HlsWaMoVru4=i$dSs4r5-UIH(J zHQ*KSD()!<{W>VY-5Z#_3Eo1#4y*@zutPpk*O+4k2S6G2zXu1w58y{|2$X}LKm|Aq zD#6d-2sjFk;oosk1%81(8}ZMHV=4;7g2ujYR1?sY8k0z^UjQ_wl2J{$ca z>_j3#rB$FFw1h_|Qde60YH?A6iyCa#V7rDI8jdZId&Yvs^kd@S>`hR`bu*~BIklk$ zrQed+By#>-8)Qz4dkPa4*>lwad_;?B*kLgA9{POTae5Sj@Eu%ldMJ85dC?7Bq%iGy(CXGJ#s%4F1v_ zF4ltlY6ZpC=@|KyMrp*TVYr+qLnyAD{+Wc;t;LG zA!1nqr>=!l*TSg}!KDwup%3ZCDnd5_@t_%K?%PC6HxbiK#Pl0tS^{UQCAKB{V&4(n z1M~!Gxa|W5;${$bXJK~^m<#4%_Zq@+(;GZN3Yd|k7Ig6KAq5Z9zI~(b@U3L7A)GH! zAQm)+y5lIRCaCmUNOLu7jU1%=AU(lTxI9GKD@pq=r2Pkcsiu{zCf(JfyP9-YlkRHL zT}`^HNq05ruBNwlir(HSdV8nn?VTbYejp#J$%kt4p_+WCCLgNV*W@7W2TA)u(teQM z(J6XIr|2D>qIYzP-q9)YqY`dkO`iNfo>Y@3KadaA5=TDN3xS1$xeDCJL!?^q(`!o z9?4F6B&BL4SOuO3FMyZ8%Y?ZG^%d|ccnz!tCEyLdy$Rj|>%e;A^A6ZRSnuNJM%4FE z-$(rb^+Viz3_by$g3rMh;7hO_d=0(@-+^8Dw+HM42S6ox_ABZc;Dc*u;PjQ!(6I_fIDuc5Tyr@~Ii+uOPQLEWw z=0tK3Lyw^p+S*Akpp;%fDZPMFdI7A>0*633_z6^i!=MtoKZ7ISDETFSNRYoBv_y8p z7|!<{RL2aQp~Em}j~)Q@)&Z_Lo7|CFUyVs3wf-wi%WzS`mz}tJEI_@6i(yj6Os};0 z7R}o2zVCVHwG4WFo-jTm)F|k67xelWv|0tN21kJt&<93>#F91@`b&WRc0qr;pub(v z-!ABH7xcFa`r8HlRY8AM&|ekwR|Wl5L4Q@yU)66O?QOuncX787^*z-0Q9nSH(VmR- zWR&-xMtHlhvj^-02SBCoGia*HjO=7oSD#0x`F24cRnW&S=%Whys4{$bKJ=6hGT_%) zV3F^6)0eoNS>rqCVaZ7Bb$HDMj=Z3Q8BBDE2m>ZUpZWQgb+AOOOaU z`}VmGvZ?t|m*gWK+d({6yfmYOy_lbrCPmv%iH zz4W$jCs%}HLeY%*gbxm+J(+DxE8to(hdI!9Kyu5_@qSXb(V}5!a5gR(CsLi^ei^sR&8;Y1d{Q!18PU#Dn^hMj36tZ=~oy*RxpCBU<4Uq zMv$YZFJr)1Fb<4|vrj<1oZ58-n2P>N)M=>GQD^wRX7pGCU*16+W%Ov`X^$QcQYSW= zQdsUgKuN5kBvw%pt0;+8l*B4ZVihH^ijiamBgqOzk`;_3D;P;uFp{ibBw0b7DWT4k zP-jZ0GbPlS66#C|b*6+mQ=(RaRp5E>0(c3$Onla$z5-qauYt9o1iZnwH^EzA9SDvh zS5cqXfl7SdLwz6h1Jq5#;X~AqP(Mc9jQR=c7SvBsKL=lcFTr;3HTV{M2THNC3w1Z@ z9@M?4`%w3z9zd<641OgJXMm4BxCRdRtCN0A7-~4G3)PJp$+u__3mVb)Y3%!&Q6zmR z)TXHMs0paeP_0p9jXjF2u}6_Lv;#Y62X@d7?4TXkK|8R6c3`iT5oCAz5h)-Qr1@4+ z&r6{6Rn+qmMvoQL^%6#p5wr(iYismaL%Xn-c405=!d}{ia@qx}$DPRtE*mW358ip0 zsX-1Ycj4W&PdawsO(595orj*d8l+dP>(595orj*d8l+dP>z)MQtB_;5Z5_m}oBg+~_mNkql zYZzJ9Fn2)CQd_>VYl-ymLsom728tPIFwvJJk%Be@?)T46hQ4RH| zoO)DFpC*ZRqJ}zDP8}+z4wc&ym`dtSIrXO8t}jOk#p=gMA7(!877>fZe7_ys3+@B= zgTH|XzzXmq#o@B(-VtO2ipSHWvwEhqtRFur*cyam<) zf8XU@{CW?305)OoL+}y!7;FZgfGyxt@HzMbdB zXullVuY~q%p!ITSy&PIEht|uX^>S#vTr(2Ztw3wgmVYX@1MNWv&#ZEZquV*(h*9JtS0CCK0tb)$8zYg z9C|E=9?PM}a_F%fdMt+?*=-Igz+uo3{k;qQeE?-uKv`R$jIW@-1N2yg{$v!>f$`RC z;G~U^9*y+ArFSIKMj4X{EnP*v+(A!BOgGr3X9A`!OxN0`hyAAP-%m31FKy|5R&OSl z9?xK8M0c1l1G6)PuJBFQ|($r94aSE^`xthj@g_+-8D+(~<^ zc9ItJBrWDi6K)yd;txI!#AG((=c|ZOIBAZ-b|Smm@><+NDkv{>b|SmpE`zM?iBrZyg?HXf!n9;P-PrZyg? zHXf!n9#t#BD)2mb0lWm(fLFk);5D!olz^Il$vprnsJnxag>^Il$voAPJIYYeF#o{2u^({ z&<~>TLWvHfB&7teLUJk8=B4aUQ1-Qy{a(tx7F#aL{Ip%>dnxlO%KJc_at@ZUixqnb z%sWT1$}o!ZuAod0{N{37kK1>^Zz(64N2yybF3QD4xwt47mnoMP)F~;OR;W@wtx-GE zi|#_|yV9CogxU?&Di4<_kHOfPg`L@an}aGjH5c`2)Opyw26aAur32)3lu?D`q$#Ho z+`a|Yf%V`*%j_6-nYCbjWCE)S69Q#s)k3Lx!7`Im_9Ee8m=dm>Pv75g5Rr1#P*O4@ zcAC`FZvly*GYCqoYDirTDXSq>HKgdY$V#CEc2iLLBHYR7pDCqVH73j?Zu;PLZS} z3N;oqCf;$-Ruj~w#IqyxY>jgyS9cT3ZSbl%_+|ujj5H3&-(jtBPZhkY3f@%(@2Y}# zRl&Qe;9XUuVw+lzy?4L{-Zz5xp%YFnf)1IF0L_5#gf8^>x*{RI2(=q(8ut2tfqa+x zPuPYB5Vqk1SEJ6u-ZiN6p|^Cf0G=Syc`vF+<`*%_w8lf*$op_8A_~NU#*FTofFS>` zqzsNw1|n}eLKz_AA!nA;>a6Ge9VAm-z(t@ta)%UPPB-QKDsVNp23WG%gTz2&wFiko zHGR@k#Nr^7SO#4p2c-Q=rF9!m%NIkgCc{nqEzU6BM`PzQFcEWEr!g5!0n!@H=lkE$ z|ATM;1gpV|;BCyl2S1=c1bzaC!Oxf-1;@cJ;3W7L_&0JCcG=o;l`vbb5=N|I*;ChtUE9F5K0Q2sG&%50_B+=|UIq$6UpjG9o5 zZD~-?+-m(f^8s3KCX_J!k?&XBRAbgcf6HzsS+5(Va|vDcwRB}o%=gYYD}WBLQs{f` z)s*26l<6Vvmng@dkh~w}e5*CANn`fioR0MdD`ie`#^|ry>ygNxq5OT^?{Fqns@kB_ zDBB~P`jpK%RExMH+1r)R`Bkjs*D;*UbSo!V-Ok;}oQ>32ui=*U;p=r%cI$n>*;OBN zw`FJF7Iuey&fU(OeB@yl-?uuMy^Z^I2X;OFLalW)%Y&X&?8+v0kuR(cq#PQ&Ld|_! ze0!17nu{{Dub|Fv;#aAG=eT?ueEVp@74*jiuP1z8t#6yJ6q>1X@sA*}@o&JoDv1sB zBqm4Uc%m}i=RRipbPyBzHTVRT(PwP%I(LlgSSNoPz9de*UnNd;FJd99KP65`2K+e( z-An2!d|Rm%in@0J7yoo-1=)pOCXa}1J-@@K4fbW_qV;0pQ$`JwnKJ+Pkdl(q?do2E z9Jf-(d^)3ykW2nh?As}+3tqmTeBan5mO#vof^Pt2hwTIO#wkzVtG?G5*KkRk;5*8< z#<$Y<80%h=#FQ%nGrJVAZ%W+yfO)N@^PQA%LND>%e_cpfOJ4hqBjw`?rE$v-;#=z5 zEwQhAF(Vgp8Op2{1L%*jE9z?e+9G8Fhc#v6J4im28Y(z#@|5zCoH4FsMM>x-D}1@2 z^P|46eC5Uu87nJzwRL$c#pH6JHrn6nDD~)~&bRZw)Qc0A$qhp*(D-}QVo57?*p#1q zE2S?|pAM}cqUwbdq|L3=R1<%bSCpzznP&>P5ZXTJ+hf!v7eM_4 z^G(K;aFWf~-pef#T$%GpGI0_YtBF$r_S(=#Sp%iv%J-q=?yP50T@&c)N9GLtS4(_@ zVldrJ2(nY!To#S^Ed^A&WNbS-NT(^GQ2O!P^|zC(36L_iYm@&gCUNLx?ZD5ze~}lb z;YE$G^%W3$N+NBnFE)GyT9Qk+hS8i&Q;M=U!k-aL%WLeAB246fa6_WL=%Q@?O`G|a~+b_VS?;}ZT-Alrw z+@;;HFJe-QYvgUFer$kdHe$Bd|NSgAB(-OKJD)*=?x2cK?3&z$nC-Sv;X6ef-j{Mh zy&sOb8m|LB(9$X2L-MpQDe3xGz;?(7p=qINxq6vrSM#j%AVhlCCge4tAK*H~5%V(g zPv(aFJ}K(hS^fz3H2gVWE7ULHyL^`x)UOQ`NnI%%h&n(D-~gr+p&D|h z8VVDBQB6)h2k(-yJMU#`FgDI=S?tza9K)q*EbfamA<&EQduwrc>#c6B@!P=739H8g zfBlBoRR+JDr4w%A??0WY`_&&u_{k{~r}Oz^m9X?sgr1Jn=@$h0nV26pT#*(UTf(2V zu)CuxZe;Bom!TtnG$K?hzm_qXT+zWEYv7AT{qlW0=Ney(L_kgq`c0RQH5mT3;@l3& zOPRNzCn$FOSR(Q!?a!Jx}Uv{5@Hp2-$s=~*vTG?h zU@w`}EA#GwQau6lx|;6npbuVfV%Ds+WrQqeBgmD)SUAp%khOVlL)+4VakHGspjbiI z+Js_0@sKffBh)ZP(Nc;|&Ti_$yR2B0^Gc+CMce(9ro6>asuIhFFDW~#tk3=)*vt4{ZvWMm*vobw>z4g4k@npTE78O`c=In3;%?m{Es$GwuuI&nTXqZkuNd?( zge|9bTWEs&P_%^x+hSeTh}B0+awrs5AA!0+n0};?e?7=S;q(?R4(MeCXeea=ygb4eI}NLci~ zkt=jWT4p^hKRrgd=yq~%SN<+@5<3~88+C_|==6PPH7xXbmmkn8u zCp@_&Ou4N(9%$`M%PeQXOTB6d8ooNzsYNnM5E_oQRXGj9e~G!E5v4CYSX%LTN?NYg z=4sKg73&yEk$FWZL~4xGB9W^JV#y!jB|@`}ZOMV(z3q*yB%?|VY3K@a27mf3l|S^@ zcc?3W4YkrB97pbWtVrDpz5RI}`v@cBUn=o|ab@&01~Mg?fH2dbv>d_3gz_pRHRY!g4}} z)4W^!zrO9?{vM=EKZS*=O$bl!V0)8ds8!knp(l|}JIOy;lSQA-ld3H`6%@r5iImb7`%_L~70d?U7WglOm~B)gq}@r$kbXWLu=r dP9ueuIw18-m0tPqF;VxlIPiO;wj8_S{{w9gl;!{c literal 0 HcmV?d00001 diff --git a/flutter_application_1/assets/fonts/Satoshi-Light.ttf b/flutter_application_1/assets/fonts/Satoshi-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b116dd8d3e00af8b9244c6716fc7642fda57a406 GIT binary patch literal 71808 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/assets/fonts/Satoshi-Medium.ttf b/flutter_application_1/assets/fonts/Satoshi-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f57b57aa4fcb3d360c7a36e66e05959cf76df690 GIT binary patch literal 73888 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/assets/fonts/Satoshi-Regular.ttf b/flutter_application_1/assets/fonts/Satoshi-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2d6788f603bec6f3c63fefd16e9c2bb8c5d6f663 GIT binary patch literal 73624 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 literal 0 HcmV?d00001 diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart new file mode 100644 index 000000000..e4924f6fe --- /dev/null +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart @@ -0,0 +1,103 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:flutter_application_1/components/models/expense_model.dart'; +import 'package:meta/meta.dart'; + +part 'expenses_event.dart'; +part 'expenses_state.dart'; + +class ExpensesBloc extends Bloc { + ExpensesBloc() : super(ExpensesInitial()) { + on (expensesInitialEvent); + } + + List> expenseList = [ + { + "expense_title": "Groceries", + "amount_spent": 1200, + "category": "Food", + "date_time": "2025-03-08T14:30:00", + "payment_method": "UPI", + "merchant_name": "Big Bazaar" + }, + { + "expense_title": "Electricity Bill", + "amount_spent": 2500, + "category": "Utilities", + "date_time": "2025-03-07T10:00:00", + "payment_method": "Credit Card", + "merchant_name": "State Electricity Board" + }, + { + "expense_title": "Uber Ride", + "amount_spent": 350, + "category": "Transport", + "date_time": "2025-03-06T18:45:00", + "payment_method": "Debit Card", + "merchant_name": "Uber" + }, + { + "expense_title": "Movie Tickets", + "amount_spent": 800, + "category": "Entertainment", + "date_time": "2025-03-05T20:00:00", + "payment_method": "UPI", + "merchant_name": "PVR Cinemas" + }, + { + "expense_title": "Coffee", + "amount_spent": 150, + "category": "Food", + "date_time": "2025-03-04T09:30:00", + "payment_method": "Cash", + "merchant_name": "Starbucks" + }, + { + "expense_title": "Gym Membership", + "amount_spent": 3000, + "category": "Fitness", + "date_time": "2025-03-03T12:00:00", + "payment_method": "Credit Card", + "merchant_name": "Gold's Gym" + }, + { + "expense_title": "Online Shopping", + "amount_spent": 4500, + "category": "Shopping", + "date_time": "2025-03-02T15:20:00", + "payment_method": "Debit Card", + "merchant_name": "Amazon" + }, + { + "expense_title": "Dinner at Restaurant", + "amount_spent": 1800, + "category": "Food", + "date_time": "2025-03-01T21:00:00", + "payment_method": "UPI", + "merchant_name": "Barbeque Nation" + }, + { + "expense_title": "Mobile Recharge", + "amount_spent": 399, + "category": "Utilities", + "date_time": "2025-02-28T08:00:00", + "payment_method": "Credit Card", + "merchant_name": "Jio" + }, + { + "expense_title": "Book Purchase", + "amount_spent": 1200, + "category": "Education", + "date_time": "2025-02-27T17:30:00", + "payment_method": "Debit Card", + "merchant_name": "Flipkart" + } + ]; + + Future expensesInitialEvent(ExpensesInitialEvent event, Emitter emit) async { + emit(ExpensesLoadingState()); + await Future.delayed(const Duration(seconds: 2)); + emit(ExpensesLoadedState(expenseList)); + } +} diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart new file mode 100644 index 000000000..b3b08c233 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart @@ -0,0 +1,5 @@ +part of 'expenses_bloc.dart'; + +abstract class ExpensesEvent {} + +class ExpensesInitialEvent extends ExpensesEvent {} diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart new file mode 100644 index 000000000..5d24a1fb9 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart @@ -0,0 +1,17 @@ +part of 'expenses_bloc.dart'; + +abstract class ExpensesState {} + +abstract class ExpensesActionState extends ExpensesState {} + +class ExpensesInitial extends ExpensesState {} + +class ExpensesLoadingState extends ExpensesActionState {} + +class ExpensesLoadedState extends ExpensesActionState { + final List> expenses; + + ExpensesLoadedState(this.expenses); +} + +class ExpensesErrorState extends ExpensesActionState {} diff --git a/flutter_application_1/lib/components/models/expense_model.dart b/flutter_application_1/lib/components/models/expense_model.dart new file mode 100644 index 000000000..5d1dc504c --- /dev/null +++ b/flutter_application_1/lib/components/models/expense_model.dart @@ -0,0 +1,55 @@ +import 'dart:convert'; + +class ExpenseModel { + String expenseTitle; + int amountSpent; + String category; + DateTime dateTime; + String paymentMethod; + String merchantName; + + ExpenseModel({ + required this.expenseTitle, + required this.amountSpent, + required this.category, + required this.dateTime, + required this.paymentMethod, + required this.merchantName, + }); + + // Convert JSON to Expense object + factory ExpenseModel.fromJson(Map json) { + return ExpenseModel( + expenseTitle: json['expenseTitle'], + amountSpent: json['amountSpent'], + category: json['category'], + dateTime: DateTime.parse(json['dateTime']), + paymentMethod: json['paymentMethod'], + merchantName: json['merchantName'], + ); + } + + // Convert Expense object to JSON + Map toJson() { + return { + 'expenseTitle': expenseTitle, + 'amountSpent': amountSpent, + 'category': category, + 'dateTime': dateTime.toIso8601String(), + 'paymentMethod': paymentMethod, + 'merchantName': merchantName, + }; + } + + // Convert list of JSON to List + static List fromJsonList(String jsonString) { + final List jsonList = json.decode(jsonString); + return jsonList.map((json) => ExpenseModel.fromJson(json)).toList(); + } + + // Convert List to JSON string + static String toJsonList(List expenses) { + final List> jsonList = expenses.map((e) => e.toJson()).toList(); + return json.encode(jsonList); + } +} diff --git a/flutter_application_1/lib/components/utils/helper/styles.dart b/flutter_application_1/lib/components/utils/helper/styles.dart new file mode 100644 index 000000000..1d825c5f6 --- /dev/null +++ b/flutter_application_1/lib/components/utils/helper/styles.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_application_1/theme/colors.dart'; + +class AppStyles { + static TextStyle setAppStyle(Color? color, double? fontSize, FontWeight? fontWeight, String? fontFamily) { + return TextStyle( + color: color ?? black, + fontSize: fontSize ?? 16, + fontWeight: fontWeight ?? FontWeight.normal, + fontFamily: fontFamily ?? "medium" + ); + } +} \ No newline at end of file diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 49c4c850a..067bfe584 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -1,4 +1,10 @@ import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/widgets/expense_card.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import '../../../theme/colors.dart'; +import '../../bloc/expenses_bloc/expenses_bloc.dart'; +import '../../utils/helper/styles.dart'; class ExpensesView extends StatefulWidget { const ExpensesView({super.key}); @@ -8,8 +14,75 @@ class ExpensesView extends StatefulWidget { } class _ExpensesViewState extends State { + bool initialLoading = true; + ExpensesBloc expensesBloc = ExpensesBloc(); + + @override + void initState() { + expensesBloc.add(ExpensesInitialEvent()); + super.initState(); + } @override Widget build(BuildContext context) { - return const Placeholder(); + return BlocConsumer( + bloc: expensesBloc, + listener: (context, state) { + if (state is ExpensesLoadingState) { + initialLoading = true; + } + if (state is ExpensesLoadedState) { + initialLoading = false; + } + if (state is ExpensesErrorState) { + initialLoading = false; + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("something went wrong"))); + } + }, + builder: (context, state) { + return Scaffold( + backgroundColor: bgColor, + appBar: AppBar( + backgroundColor: bgColor, + title: Text( + "Expenses", + style: AppStyles.setAppStyle(black, 20, FontWeight.bold, "black"), + ), + leading: SizedBox(), + ), + floatingActionButton: ElevatedButton( + onPressed: () {}, + style: ElevatedButton.styleFrom( + backgroundColor: white, + shape: CircleBorder( + side: BorderSide(color: border, width: 0.5) + ), + minimumSize: const Size(50, 50), + ), + child: Icon(Icons.star,size: 35,color: Colors.green,), + ), + body: bodyPartOfExpensesView(), + ); + }, + ); + } + + Widget bodyPartOfExpensesView() { + return initialLoading + ? Center(child: SpinKitCircle(color: primary,)) + : ListView.builder( + physics: const AlwaysScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: expensesBloc.expenseList.length, + itemBuilder: (context, index) { + return ExpenseCard( + expenseTitle: expensesBloc.expenseList[index]["expense_title"], + amountSpent: expensesBloc.expenseList[index]["amount_spent"], + category: expensesBloc.expenseList[index]["category"], + dateTime: expensesBloc.expenseList[index]["date_time"], + paymentMethod: expensesBloc.expenseList[index]["payment_method"], + merchantName: expensesBloc.expenseList[index]["merchant_name"] + ); + }, + ); } } diff --git a/flutter_application_1/lib/components/view/expenses/view_expense.dart b/flutter_application_1/lib/components/view/expenses/view_expense.dart new file mode 100644 index 000000000..299b721fc --- /dev/null +++ b/flutter_application_1/lib/components/view/expenses/view_expense.dart @@ -0,0 +1,33 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/utils/helper/styles.dart'; +import 'package:flutter_application_1/theme/colors.dart'; + +class ViewExpense extends StatefulWidget { + Map expenseModel; + ViewExpense({super.key, required this.expenseModel}); + + @override + State createState() => _ViewExpenseState(); +} + +class _ViewExpenseState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: bgColor, + appBar: AppBar( + backgroundColor: bgColor, + title: Text( + "View Expenses", + style: AppStyles.setAppStyle(black, 29, FontWeight.bold, "bold"), + ), + ), + body: bodyPartOfViewExpense(), + ); + } + + Widget bodyPartOfViewExpense() { + return SizedBox(); + } +} diff --git a/flutter_application_1/lib/components/view/main_screeen.dart b/flutter_application_1/lib/components/view/main_screeen.dart index 6b35ea272..6b0bc0664 100644 --- a/flutter_application_1/lib/components/view/main_screeen.dart +++ b/flutter_application_1/lib/components/view/main_screeen.dart @@ -39,6 +39,7 @@ class _MainScreenState extends State { }, builder: (context, state) { return Scaffold( + backgroundColor: bgColor, body: mainScreens[selectedIndex], bottomNavigationBar: BottomNavigationBar( backgroundColor: Colors.white, // Light theme background diff --git a/flutter_application_1/lib/components/widgets/expense_card.dart b/flutter_application_1/lib/components/widgets/expense_card.dart new file mode 100644 index 000000000..9e352c464 --- /dev/null +++ b/flutter_application_1/lib/components/widgets/expense_card.dart @@ -0,0 +1,89 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +import '../../theme/colors.dart'; + +class ExpenseCard extends StatelessWidget { + final String expenseTitle; + final int amountSpent; + final String category; + final String dateTime; // Accept date as String from JSON + final String paymentMethod; + final String merchantName; + + const ExpenseCard({ + super.key, + required this.expenseTitle, + required this.amountSpent, + required this.category, + required this.dateTime, + required this.paymentMethod, + required this.merchantName, + }); + + @override + Widget build(BuildContext context) { + // Safely parse the date string to DateTime + DateTime parsedDate = DateTime.tryParse(dateTime) ?? DateTime.now(); + + return Card( + color: white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: border, width: 0.5)), + elevation: 3, + margin: const EdgeInsets.symmetric(vertical: 8, horizontal: 16), + child: Padding( + padding: const EdgeInsets.all(12), + child: Row( + children: [ + // Icon for category (currently hardcoded for movies) + CircleAvatar( + radius: 24, + backgroundColor: Colors.blueAccent, + child: Icon(Icons.movie, color: Colors.white, size: 28), + ), + const SizedBox(width: 12), + + // Expense details + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + expenseTitle, + style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 4), + Text( + merchantName, + style: TextStyle(fontSize: 14, color: Colors.grey[700]), + ), + const SizedBox(height: 4), + Text( + '${DateFormat.yMMMd().format(parsedDate)} • ${DateFormat.jm().format(parsedDate)}', + style: TextStyle(fontSize: 12, color: Colors.grey[600]), + ), + ], + ), + ), + + // Amount spent + Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + '₹$amountSpent', + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Colors.redAccent), + ), + const SizedBox(height: 4), + Text( + paymentMethod, + style: TextStyle(fontSize: 12, color: Colors.grey[700]), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index 51e94be7d..e761e9921 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -86,11 +86,27 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.0" + flutter_spinkit: + dependency: "direct main" + description: + name: flutter_spinkit + sha256: d2696eed13732831414595b98863260e33e8882fc069ee80ec35d4ac9ddb0472 + url: "https://pub.dev" + source: hosted + version: "5.2.1" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + intl: + dependency: "direct main" + description: + name: intl + sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + url: "https://pub.dev" + source: hosted + version: "0.20.2" leak_tracker: dependency: transitive description: diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml index aad3b899c..985828a85 100644 --- a/flutter_application_1/pubspec.yaml +++ b/flutter_application_1/pubspec.yaml @@ -36,6 +36,8 @@ dependencies: cupertino_icons: ^1.0.8 bloc: ^8.1.4 flutter_bloc: ^8.1.6 + intl: ^0.20.2 + flutter_spinkit: ^5.2.1 dev_dependencies: flutter_test: @@ -77,6 +79,34 @@ flutter: # "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: black + fonts: + - asset: assets/fonts/Satoshi-Black.ttf + + - family: blackItalic + fonts: + - asset: assets/fonts/Satoshi-BlackItalic.ttf + + - family: bold + fonts: + - asset: assets/fonts/Satoshi-Bold.ttf + + - family: boldItalic + fonts: + - asset: assets/fonts/Satoshi-BoldItalic.ttf + + - family: medium + fonts: + - asset: assets/fonts/Satoshi-Medium.ttf + + - family: mediumItalic + fonts: + - asset: assets/fonts/Satoshi-MediumItalic.ttf + + - family: regular + fonts: + - asset: assets/fonts/Satoshi-Regular.ttf # fonts: # - family: Schyler # fonts: From 6875a2f59837179c850ecd18a318457f73cc95d2 Mon Sep 17 00:00:00 2001 From: Pra_Kas Date: Sat, 8 Mar 2025 16:08:34 +0530 Subject: [PATCH 05/24] Updated Analytics page --- .../AnalyticsBloc/analytics_bloc_bloc.dart | 27 +++ .../AnalyticsBloc/analytics_bloc_event.dart | 6 + .../AnalyticsBloc/analytics_bloc_state.dart | 18 ++ .../lib/components/bloc/bloc | 0 .../view/analytics/analytics_view.dart | 192 +++++++++++++++++- flutter_application_1/lib/main.dart | 1 + flutter_application_1/pubspec.lock | 122 +++++++---- flutter_application_1/pubspec.yaml | 3 + 8 files changed, 330 insertions(+), 39 deletions(-) create mode 100644 flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart create mode 100644 flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart create mode 100644 flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart delete mode 100644 flutter_application_1/lib/components/bloc/bloc diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart new file mode 100644 index 000000000..98506fd54 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart @@ -0,0 +1,27 @@ +import 'dart:math'; + +import 'package:bloc/bloc.dart'; +import 'package:meta/meta.dart'; + +part 'analytics_bloc_event.dart'; +part 'analytics_bloc_state.dart'; + +class AnalyticsBlocBloc extends Bloc { + + AnalyticsBlocBloc() : super(AnalyticsBlocInitial()) { + on(analyticsLoadEvent); + } + + Future analyticsLoadEvent(AnalyticsLoadEvent event, Emitter emit) async{ + emit(AnalyticsLoadingState()); + ListxList = List.generate(10,((_){ + return Random().nextInt(20); + })); + ListyList = List.generate(10,((_){ + return Random().nextInt(20); + })); + String xTitle = "X-Axis"; + String yTitle = "Y-Axis"; + emit(AnalyticsLoadedState(xList, yList, xTitle, yTitle)); + } +} diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart new file mode 100644 index 000000000..674ebc5cc --- /dev/null +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart @@ -0,0 +1,6 @@ +part of 'analytics_bloc_bloc.dart'; + +@immutable +sealed class AnalyticsBlocEvent {} + +class AnalyticsLoadEvent extends AnalyticsBlocEvent {} \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart new file mode 100644 index 000000000..1839d0b00 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart @@ -0,0 +1,18 @@ +part of 'analytics_bloc_bloc.dart'; + +@immutable +sealed class AnalyticsBlocState {} + +final class AnalyticsBlocInitial extends AnalyticsBlocState {} + +class AnalyticsLoadingState extends AnalyticsBlocState {} + +class AnalyticsLoadedState extends AnalyticsBlocState { + ListxList; + ListyList; + String xTitle; + String yTitle; + AnalyticsLoadedState(this.xList, this.yList, this.xTitle, this.yTitle); +} + +class AnalyticsLoadFailedState extends AnalyticsBlocState {} diff --git a/flutter_application_1/lib/components/bloc/bloc b/flutter_application_1/lib/components/bloc/bloc deleted file mode 100644 index e69de29bb..000000000 diff --git a/flutter_application_1/lib/components/view/analytics/analytics_view.dart b/flutter_application_1/lib/components/view/analytics/analytics_view.dart index 54e6b0785..7c1599ddb 100644 --- a/flutter_application_1/lib/components/view/analytics/analytics_view.dart +++ b/flutter_application_1/lib/components/view/analytics/analytics_view.dart @@ -1,4 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter_application_1/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; class AnalyticsView extends StatefulWidget { const AnalyticsView({super.key}); @@ -7,9 +10,194 @@ class AnalyticsView extends StatefulWidget { State createState() => _AnalyticsViewState(); } -class _AnalyticsViewState extends State { +class _AnalyticsViewState extends State + with TickerProviderStateMixin { + List xAxis = []; + List month = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ]; + List barTouchData = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ]; + List yAxis = []; + String xTitle = ""; + String yTitle = ""; + late TabController tabController; + final analyticsBlocBloc = AnalyticsBlocBloc(); + + @override + void initState() { + tabController = TabController(length: 2, vsync: this); + analyticsBlocBloc.add(AnalyticsLoadEvent()); + barTouchData = month; + super.initState(); + } + @override Widget build(BuildContext context) { - return const Placeholder(); + return Scaffold( + appBar: AppBar( + title: const Text( + 'Analytics', + ), + forceMaterialTransparency: true, + ), + body: Padding( + padding: const EdgeInsets.all(8.0), + child: BlocBuilder( + bloc: analyticsBlocBloc, + builder: (context, state) { + if (state is AnalyticsLoadingState) { + return CircularProgressIndicator(); + } + if (state is AnalyticsLoadedState) { + xAxis = state.xList; + yAxis = state.yList; + xTitle = state.xTitle; + yTitle = state.yTitle; + } + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + for (int i = 0; i < 12; i++) + monthlyExpenseContainer(1000, month[i], i, i) + ], + ), + ), + const SizedBox( + height: 20, + ), + Text('Expense Graphs'), + const SizedBox( + height: 20, + ), + expenseGraph(context, xAxis, yAxis, xTitle, yTitle,month), + const SizedBox( + height: 20, + ), + TabBar( + controller: tabController, + dividerColor: Colors.transparent, + tabs: [ + Tab(child: Text("Expenses")), + Tab(child: Text("Stocks")) + ]), + ], + ); + }, + ), + ), + ); } } + +Widget monthlyExpenseContainer( + int value, String month, int expense, int income) { + return GestureDetector( + onTap: () { + }, + child: Card( + color: Colors.grey[200], + child: Padding( + padding: EdgeInsets.all(18.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(month,style: TextStyle(fontWeight: FontWeight.bold),), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Expense'), + Text('$expense'), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Income'), + Text('$income'), + ], + ), + ], + ), + ), + ), + ); +} + +Widget expenseGraph(BuildContext context, List xList, List yList, + String xTitle, String yTitle, Listmonth) { + return SizedBox( + height: MediaQuery.of(context).size.width * 0.9, + child: BarChart(BarChartData( + alignment: BarChartAlignment.spaceEvenly, + borderData: FlBorderData(show: false), + gridData: FlGridData(show: false), + groupsSpace: 12, + barTouchData: BarTouchData( + touchTooltipData: BarTouchTooltipData( + getTooltipItem: (group, groupIndex, rod, rodIndex) { + return BarTooltipItem( + month[group.x.toInt()], + TextStyle(color: Colors.white)); + }, + ), + ), + barGroups: [ + for (int i = 0; i < xList.length; i++) + BarChartGroupData( + x: i, + barRods: [ + BarChartRodData( + toY: yList[i].toDouble(), + fromY: 0, + width: 25, + ), + ], + barsSpace: 4, + ), + ], + titlesData: FlTitlesData( + leftTitles: AxisTitles( + axisNameWidget: Text(yTitle), + sideTitles: SideTitles(showTitles: false, reservedSize: 30), + ), + bottomTitles: AxisTitles( + axisNameWidget: Text(yTitle), + sideTitles: SideTitles(showTitles: false, reservedSize: 30), + ), + rightTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + topTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false), + )))), + ); +} diff --git a/flutter_application_1/lib/main.dart b/flutter_application_1/lib/main.dart index 711b75f07..844894980 100644 --- a/flutter_application_1/lib/main.dart +++ b/flutter_application_1/lib/main.dart @@ -4,6 +4,7 @@ import 'package:flutter_application_1/components/view/analytics/analytics_view.d void main() { Widget myApp = MaterialApp( + debugShowCheckedModeBanner: false, initialRoute: "/", routes: { "/" : (BuildContext context) => AnalyticsView() diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index bbde030e7..b1e5fdb61 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -5,42 +5,50 @@ packages: dependency: transitive description: name: async - sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.12.0" + version: "2.11.0" + bloc: + dependency: "direct main" + description: + name: bloc + sha256: "52c10575f4445c61dd9e0cafcc6356fdd827c4c64dd7945ef3c4105f6b6ac189" + url: "https://pub.dev" + source: hosted + version: "9.0.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.1" characters: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.3.0" clock: dependency: transitive description: name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" collection: dependency: transitive description: name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.19.1" + version: "1.19.0" cupertino_icons: dependency: "direct main" description: @@ -49,19 +57,43 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" + 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: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.3.1" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + sha256: "5276944c6ffc975ae796569a826c38a62d2abcf264e26b88fa6f482e107f4237" + url: "https://pub.dev" + source: hosted + version: "0.70.2" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + sha256: "1046d719fbdf230330d3443187cc33cc11963d15c9089f6cc56faa42a4c5f0cc" + url: "https://pub.dev" + source: hosted + version: "9.1.0" flutter_lints: dependency: "direct dev" description: @@ -79,18 +111,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.8" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -111,10 +143,10 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: @@ -127,18 +159,34 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" + source: hosted + version: "1.15.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.0.0" path: dependency: transitive description: name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.9.0" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" sky_engine: dependency: transitive description: flutter @@ -148,50 +196,50 @@ packages: dependency: transitive description: name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.10.1" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.12.1" + version: "1.12.0" stream_channel: dependency: transitive description: name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.3.0" term_glyph: dependency: transitive description: name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.3" vector_math: dependency: transitive description: @@ -204,10 +252,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.3.1" + version: "14.3.0" sdks: - dart: ">=3.7.0-0 <4.0.0" + dart: ">=3.6.1 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml index d4ed2d6d7..20b722240 100644 --- a/flutter_application_1/pubspec.yaml +++ b/flutter_application_1/pubspec.yaml @@ -34,6 +34,9 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 + bloc: ^9.0.0 + fl_chart: ^0.70.2 + flutter_bloc: ^9.1.0 dev_dependencies: flutter_test: From 3abc8b91c2f61f671495552105a30179767885cd Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sat, 8 Mar 2025 17:11:23 +0530 Subject: [PATCH 06/24] 1. Edit expense 2. Global service handled --- .../edit_expense_bloc/edit_expense_bloc.dart | 20 ++ .../edit_expense_bloc/edit_expense_event.dart | 8 + .../edit_expense_bloc/edit_expense_state.dart | 11 + .../bloc/expenses_bloc/expenses_bloc.dart | 75 ++++- .../view/expenses/edit_expenses.dart | 292 ++++++++++++++++++ .../view/expenses/expenses_view.dart | 3 +- .../lib/components/widgets/expense_card.dart | 102 +++--- .../lib/service/helper/global_service.dart | 72 +++++ flutter_application_1/pubspec.lock | 32 ++ flutter_application_1/pubspec.yaml | 1 + 10 files changed, 556 insertions(+), 60 deletions(-) create mode 100644 flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart create mode 100644 flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart create mode 100644 flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_state.dart create mode 100644 flutter_application_1/lib/components/view/expenses/edit_expenses.dart create mode 100644 flutter_application_1/lib/service/helper/global_service.dart diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart new file mode 100644 index 000000000..6c86518f1 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart @@ -0,0 +1,20 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:meta/meta.dart'; + +part 'edit_expense_event.dart'; +part 'edit_expense_state.dart'; + +class EditExpenseBloc extends Bloc { + EditExpenseBloc() : super(EditExpenseInitial()) { + on (editExpenseSaveEvent); + } + + FutureOr editExpenseSaveEvent(EditExpenseSaveEvent event, Emitter emit) { + emit(EditExpenseSavingState()); + Map expense = event.expense; + // do api call here + emit(EditExpenseSavedState()); + } +} diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart new file mode 100644 index 000000000..f603532a0 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart @@ -0,0 +1,8 @@ +part of 'edit_expense_bloc.dart'; + +abstract class EditExpenseEvent {} + +class EditExpenseSaveEvent extends EditExpenseEvent { + final Map expense; + EditExpenseSaveEvent(this.expense); +} diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_state.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_state.dart new file mode 100644 index 000000000..6cdb2c011 --- /dev/null +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_state.dart @@ -0,0 +1,11 @@ +part of 'edit_expense_bloc.dart'; + +abstract class EditExpenseState {} + +abstract class EditExpenseActionState extends EditExpenseState {} + +class EditExpenseInitial extends EditExpenseState {} + +class EditExpenseSavedState extends EditExpenseActionState {} + +class EditExpenseSavingState extends EditExpenseActionState {} \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart index e4924f6fe..694ec510e 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart @@ -12,14 +12,20 @@ class ExpensesBloc extends Bloc { on (expensesInitialEvent); } - List> expenseList = [ + List> expenseList = [ { "expense_title": "Groceries", "amount_spent": 1200, "category": "Food", "date_time": "2025-03-08T14:30:00", "payment_method": "UPI", - "merchant_name": "Big Bazaar" + "merchant_name": "Big Bazaar", + "tags": ["essentials", "monthly"], + "items": [ + {"amountSpent": 500, "title": "Vegetables"}, + {"amountSpent": 300, "title": "Dairy Products"}, + {"amountSpent": 400, "title": "Snacks"} + ] }, { "expense_title": "Electricity Bill", @@ -27,7 +33,18 @@ class ExpensesBloc extends Bloc { "category": "Utilities", "date_time": "2025-03-07T10:00:00", "payment_method": "Credit Card", - "merchant_name": "State Electricity Board" + "merchant_name": "State Electricity Board", + "tags": ["monthly", "bills"], + "items": [ + {"amountSpent": 2.99, "title": "Ut wisi enim"}, + {"amountSpent": 1.3, "title": "Nibh euismod"}, + {"amountSpent": 17, "title": "Rdol magna"}, + {"amountSpent": 6.99, "title": "Mnonuy nibh"}, + {"amountSpent": 1.2, "title": "Kaoreet dolore"}, + {"amountSpent": 5.1, "title": "Taliquam erat"}, + {"amountSpent": 10, "title": "Aeuismod"}, + {"amountSpent": 4.99, "title": "Knonuy nib"} + ] }, { "expense_title": "Uber Ride", @@ -35,7 +52,11 @@ class ExpensesBloc extends Bloc { "category": "Transport", "date_time": "2025-03-06T18:45:00", "payment_method": "Debit Card", - "merchant_name": "Uber" + "merchant_name": "Uber", + "tags": ["travel", "daily commute"], + "items": [ + {"amountSpent": 350, "title": "Ride Fare"} + ] }, { "expense_title": "Movie Tickets", @@ -43,7 +64,12 @@ class ExpensesBloc extends Bloc { "category": "Entertainment", "date_time": "2025-03-05T20:00:00", "payment_method": "UPI", - "merchant_name": "PVR Cinemas" + "merchant_name": "PVR Cinemas", + "tags": ["leisure", "weekend"], + "items": [ + {"amountSpent": 400, "title": "Ticket 1"}, + {"amountSpent": 400, "title": "Ticket 2"} + ] }, { "expense_title": "Coffee", @@ -51,7 +77,11 @@ class ExpensesBloc extends Bloc { "category": "Food", "date_time": "2025-03-04T09:30:00", "payment_method": "Cash", - "merchant_name": "Starbucks" + "merchant_name": "Starbucks", + "tags": ["snack", "morning"], + "items": [ + {"amountSpent": 150, "title": "Latte"} + ] }, { "expense_title": "Gym Membership", @@ -59,7 +89,11 @@ class ExpensesBloc extends Bloc { "category": "Fitness", "date_time": "2025-03-03T12:00:00", "payment_method": "Credit Card", - "merchant_name": "Gold's Gym" + "merchant_name": "Gold's Gym", + "tags": ["health", "monthly"], + "items": [ + {"amountSpent": 3000, "title": "Monthly Subscription"} + ] }, { "expense_title": "Online Shopping", @@ -67,7 +101,12 @@ class ExpensesBloc extends Bloc { "category": "Shopping", "date_time": "2025-03-02T15:20:00", "payment_method": "Debit Card", - "merchant_name": "Amazon" + "merchant_name": "Amazon", + "tags": ["clothes", "electronics"], + "items": [ + {"amountSpent": 2000, "title": "T-shirt"}, + {"amountSpent": 2500, "title": "Headphones"} + ] }, { "expense_title": "Dinner at Restaurant", @@ -75,7 +114,11 @@ class ExpensesBloc extends Bloc { "category": "Food", "date_time": "2025-03-01T21:00:00", "payment_method": "UPI", - "merchant_name": "Barbeque Nation" + "merchant_name": "Barbeque Nation", + "tags": ["weekend", "dining"], + "items": [ + {"amountSpent": 1800, "title": "Buffet Dinner"} + ] }, { "expense_title": "Mobile Recharge", @@ -83,7 +126,11 @@ class ExpensesBloc extends Bloc { "category": "Utilities", "date_time": "2025-02-28T08:00:00", "payment_method": "Credit Card", - "merchant_name": "Jio" + "merchant_name": "Jio", + "tags": ["monthly", "phone"], + "items": [ + {"amountSpent": 399, "title": "Jio Recharge Plan"} + ] }, { "expense_title": "Book Purchase", @@ -91,13 +138,17 @@ class ExpensesBloc extends Bloc { "category": "Education", "date_time": "2025-02-27T17:30:00", "payment_method": "Debit Card", - "merchant_name": "Flipkart" + "merchant_name": "Flipkart", + "tags": ["learning", "study"], + "items": [ + {"amountSpent": 1200, "title": "Data Structures Book"} + ] } ]; Future expensesInitialEvent(ExpensesInitialEvent event, Emitter emit) async { emit(ExpensesLoadingState()); - await Future.delayed(const Duration(seconds: 2)); + await Future.delayed(const Duration(seconds: 1)); emit(ExpensesLoadedState(expenseList)); } } diff --git a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart new file mode 100644 index 000000000..35d54b001 --- /dev/null +++ b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart @@ -0,0 +1,292 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/utils/helper/styles.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:intl/intl.dart'; + +import '../../../theme/colors.dart'; +import '../../bloc/edit_expense_bloc/edit_expense_bloc.dart'; + +class EditExpenseScreen extends StatefulWidget { + final Map expenseData; + final bool isEdit; + + const EditExpenseScreen({super.key, required this.expenseData, required this.isEdit}); + + @override + State createState() => _EditExpenseScreenState(); +} + +class _EditExpenseScreenState extends State { + final _formKey = GlobalKey(); + + TextEditingController expenseTitleController = TextEditingController(); + TextEditingController merchantNameController = TextEditingController(); + TextEditingController totalAmountController = TextEditingController(); + TextEditingController paymentMethodController = TextEditingController(); + TextEditingController dateController = TextEditingController(); + TextEditingController categoryController = TextEditingController(); + + List> items = []; + String selectedCategory = "Shopping"; + String selectedPaymentMethod = "Cash"; + DateTime? selectedDate; + EditExpenseBloc editExpenseBloc = EditExpenseBloc(); + bool isSaving = false; + + @override + void initState() { + super.initState(); + if (widget.isEdit) { + expenseTitleController = + TextEditingController(text: widget.expenseData["expense_title"] ?? ""); + categoryController = TextEditingController(text: widget.expenseData["category"] ?? ""); + paymentMethodController = TextEditingController(text: widget.expenseData["payment_method"] ?? ""); + merchantNameController = TextEditingController(text: widget.expenseData["merchant_name"] ?? ""); + totalAmountController = TextEditingController(text: widget.expenseData["amount_spent"].toString() ?? ""); + dateController = TextEditingController(text: widget.expenseData["date"] ?? ""); + selectedDate = widget.expenseData["date"] != null + ? DateTime.tryParse(widget.expenseData["date"]) + : null; + print("tags from josn : ${widget.expenseData["tags"]}"); + items = List>.from(widget.expenseData["items"] ?? []); + } + } + + @override + void dispose() { + expenseTitleController.dispose(); + merchantNameController.dispose(); + totalAmountController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Text("Edit Expense",style: AppStyles.setAppStyle(black, 20, FontWeight.bold, "black"),)), + body: bodyPartOfEditExpense(), + ); + } + + Widget bodyPartOfEditExpense() { + return BlocConsumer( + bloc: editExpenseBloc, + listener: (context, state) { + if (state is EditExpenseSavingState) { + isSaving = true; + } + if (state is EditExpenseSavedState) { + isSaving = false; + Navigator.pop(context); + } + }, + builder: (context, state) { + return Padding( + padding: const EdgeInsets.all(20), + child: Column( + children: [ + textFieldForCreateScreen("Expense Title", expenseTitleController), + textFieldForCreateScreen("Merchant Name", merchantNameController), + textFieldForCreateScreen("Payment Method", paymentMethodController), + dateWidget(), + textFieldForCreateScreen("Category", categoryController), + const SizedBox(height: 20), + const Text("Items", style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + Expanded( + child: ListView.builder( + shrinkWrap: true, + itemCount: items.length, + itemBuilder: (context, index) { + return itemRow(index); + }, + ), + ), + isSaving + ? Center( + child : SpinKitCircle( + color: primary, + ), + ) + : + ElevatedButton( + onPressed: () { + if (true) { + final expenseData = { + "expenseTitle": expenseTitleController.text, + "merchantName": merchantNameController.text, + "totalAmount": double.parse(totalAmountController.text), + "paymentMethod": paymentMethodController.text, + "date": selectedDate != null + ? DateFormat("yyyy-MM-dd").format(selectedDate!) + : "", + "category": selectedCategory, + "items": items, + }; + + if (widget.isEdit) { + + } else { + // Add new expense + } + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: primary, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + ), + child: Text(widget.isEdit ? "Update Expense" : "Add Expense",style: AppStyles.setAppStyle(white, 16, FontWeight.normal, "medium"),), + ), + ], + ), + ); + }, +); + } + + Widget itemRow(int index) { + TextEditingController titleController = TextEditingController(text: items[index]['title']); + TextEditingController amountController = TextEditingController(text: items[index]['amountSpent'].toString()); + + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: Row( + children: [ + Expanded( + child: TextFormField( + controller: titleController, + onChanged: (value) => items[index]['title'] = value, + decoration: InputDecoration(labelText: 'Item Title'), + ), + ), + const SizedBox(width: 10), + SizedBox( + width: 100, + child: TextFormField( + controller: amountController, + keyboardType: TextInputType.number, + onChanged: (value) => items[index]['amountSpent'] = double.tryParse(value) ?? 0.0, + decoration: InputDecoration(labelText: 'Amount'), + ), + ), + IconButton( + icon: const Icon(Icons.delete, color: Colors.red), + onPressed: () { + setState(() { + items.removeAt(index); + }); + }, + ) + ], + ), + ); + } + + + Widget dateWidget() { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, vertical: 16.0), + decoration: BoxDecoration( + color: filterSortBackground, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: border)), + child: InkWell( + enableFeedback: true, + onTap: () async { + DateTime? pickedDate = await showDatePicker( + context: context, + initialDate: + (dateController.text.isNotEmpty) + ? DateFormat('dd-MM-yyyy') + .parse(dateController.text) + : DateTime.now(), + firstDate: DateTime(2000), lastDate: DateTime(2050), + ); + if (pickedDate != null) { + setState(() { + dateController.text = + DateFormat('dd-MM-yyyy') + .format(pickedDate); + }); + } + }, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + dateController.text.isNotEmpty + ? dateController.text + : 'dd-mm-yyyy', + style: const TextStyle( + fontFamily: 'medium', + color: Colors.grey, + ), + ), + Icon(Icons.calendar_month) + ], + ), + ), + ), + ); + } + + Widget textFieldForCreateScreen( + String labelText, + TextEditingController textEditingController) { + return Padding( + padding: const EdgeInsets.only(bottom: 10), + child: TextFormField( + keyboardType: (labelText == "Amount Spent") + ? TextInputType.number + : TextInputType.text, + controller: textEditingController, + style: const TextStyle(fontFamily: "regular"), + decoration: InputDecoration( + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: BorderSide( + color: primary, + width: 0.5 + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: BorderSide( + color: primary, + width: 0.5 + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: BorderSide( + color: primary, + width: 0.5 + ), + ), + labelText: labelText, + labelStyle: TextStyle( + fontFamily: "regular", + color: grey, + fontSize: 16, + fontWeight: FontWeight.w400, + fontStyle: FontStyle.normal, + ), + floatingLabelStyle: TextStyle( + fontFamily: "regular", + color: primary, + fontSize: 16, + fontWeight: FontWeight.w400, + fontStyle: FontStyle.normal, + ), + fillColor: white, + filled: true), + maxLines: 10, + minLines: 1, + ), + ); + } +} diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 067bfe584..084212d4f 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -80,7 +80,8 @@ class _ExpensesViewState extends State { category: expensesBloc.expenseList[index]["category"], dateTime: expensesBloc.expenseList[index]["date_time"], paymentMethod: expensesBloc.expenseList[index]["payment_method"], - merchantName: expensesBloc.expenseList[index]["merchant_name"] + merchantName: expensesBloc.expenseList[index]["merchant_name"], + expenseData: expensesBloc.expenseList[index], ); }, ); diff --git a/flutter_application_1/lib/components/widgets/expense_card.dart b/flutter_application_1/lib/components/widgets/expense_card.dart index 9e352c464..9da4f859d 100644 --- a/flutter_application_1/lib/components/widgets/expense_card.dart +++ b/flutter_application_1/lib/components/widgets/expense_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/view/expenses/edit_expenses.dart'; import 'package:intl/intl.dart'; import '../../theme/colors.dart'; @@ -10,6 +11,7 @@ class ExpenseCard extends StatelessWidget { final String dateTime; // Accept date as String from JSON final String paymentMethod; final String merchantName; + final Map expenseData; const ExpenseCard({ super.key, @@ -19,6 +21,7 @@ class ExpenseCard extends StatelessWidget { required this.dateTime, required this.paymentMethod, required this.merchantName, + required this.expenseData, }); @override @@ -26,62 +29,67 @@ class ExpenseCard extends StatelessWidget { // Safely parse the date string to DateTime DateTime parsedDate = DateTime.tryParse(dateTime) ?? DateTime.now(); - return Card( - color: white, - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: border, width: 0.5)), - elevation: 3, - margin: const EdgeInsets.symmetric(vertical: 8, horizontal: 16), - child: Padding( - padding: const EdgeInsets.all(12), - child: Row( - children: [ - // Icon for category (currently hardcoded for movies) - CircleAvatar( - radius: 24, - backgroundColor: Colors.blueAccent, - child: Icon(Icons.movie, color: Colors.white, size: 28), - ), - const SizedBox(width: 12), + return GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (context) => EditExpenseScreen(expenseData: expenseData, isEdit: true,))); + }, + child: Card( + color: white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: border, width: 0.5)), + elevation: 3, + margin: const EdgeInsets.symmetric(vertical: 8, horizontal: 16), + child: Padding( + padding: const EdgeInsets.all(12), + child: Row( + children: [ + // Icon for category (currently hardcoded for movies) + CircleAvatar( + radius: 24, + backgroundColor: Colors.blueAccent, + child: Icon(Icons.movie, color: Colors.white, size: 28), + ), + const SizedBox(width: 12), - // Expense details - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + // Expense details + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + expenseTitle, + style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 4), + Text( + merchantName, + style: TextStyle(fontSize: 14, color: Colors.grey[700]), + ), + const SizedBox(height: 4), + Text( + '${DateFormat.yMMMd().format(parsedDate)} • ${DateFormat.jm().format(parsedDate)}', + style: TextStyle(fontSize: 12, color: Colors.grey[600]), + ), + ], + ), + ), + + // Amount spent + Column( + crossAxisAlignment: CrossAxisAlignment.end, children: [ Text( - expenseTitle, - style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold), - ), - const SizedBox(height: 4), - Text( - merchantName, - style: TextStyle(fontSize: 14, color: Colors.grey[700]), + '₹$amountSpent', + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Colors.redAccent), ), const SizedBox(height: 4), Text( - '${DateFormat.yMMMd().format(parsedDate)} • ${DateFormat.jm().format(parsedDate)}', - style: TextStyle(fontSize: 12, color: Colors.grey[600]), + paymentMethod, + style: TextStyle(fontSize: 12, color: Colors.grey[700]), ), ], ), - ), - - // Amount spent - Column( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Text( - '₹$amountSpent', - style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Colors.redAccent), - ), - const SizedBox(height: 4), - Text( - paymentMethod, - style: TextStyle(fontSize: 12, color: Colors.grey[700]), - ), - ], - ), - ], + ], + ), ), ), ); diff --git a/flutter_application_1/lib/service/helper/global_service.dart b/flutter_application_1/lib/service/helper/global_service.dart new file mode 100644 index 000000000..2f73af1e2 --- /dev/null +++ b/flutter_application_1/lib/service/helper/global_service.dart @@ -0,0 +1,72 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; + +import '../../data/appvalues.dart'; + +class GlobalService { + static Future globalService( + {required String endpoint, + Map? requestBody, + required String method}) async { + final Uri url = + Uri.parse("${AppValues.ip}/$endpoint"); // ✅ Uses passed endpoint + final Map headers = { + "Content-Type": "application/json", + }; + + try { + http.Response response = + await _makeRequest(url, headers, method, requestBody); + + if (response.statusCode == 401) { + // 🔄 Refresh token and retry + response = await _makeRequest(url, headers, method, requestBody); + } + + // 🛠 Handle all response codes properly + return _handleResponse(response); + } catch (e) { + return {"status": false, "message": "Request failed: $e"}; + } + } + + /// 🔹 Helper function to make HTTP requests + static Future _makeRequest( + Uri url, + Map headers, + String method, + Map? requestBody) async { + switch (method.toUpperCase()) { + case "POST": + return await http.post(url, + headers: headers, body: jsonEncode(requestBody)); + case "GET": + return await http.get(url, headers: headers); + case "PUT": + return await http.put(url, + headers: headers, body: jsonEncode(requestBody)); + case "DELETE": + return await http.delete(url, headers: headers); + default: + throw Exception("Invalid HTTP method: $method"); + } + } + + /// 🔹 Helper function to process API response + static dynamic _handleResponse(http.Response response) { + try { + final Map decodedBody = jsonDecode(response.body); + + if (response.statusCode >= 200 && response.statusCode < 300) { + return decodedBody; + } else { + return { + "status": false, + "message": decodedBody["message"] ?? "Something went wrong" + }; + } + } catch (e) { + return {"status": false, "message": "Invalid JSON response: $e"}; + } + } +} diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index e761e9921..80927ae5c 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -99,6 +99,22 @@ packages: description: flutter source: sdk version: "0.0.0" + 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" intl: dependency: "direct main" description: @@ -240,6 +256,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.4" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" vector_math: dependency: transitive description: @@ -256,6 +280,14 @@ packages: url: "https://pub.dev" source: hosted version: "14.3.1" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" sdks: dart: ">=3.7.0-0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml index 985828a85..f91611a87 100644 --- a/flutter_application_1/pubspec.yaml +++ b/flutter_application_1/pubspec.yaml @@ -38,6 +38,7 @@ dependencies: flutter_bloc: ^8.1.6 intl: ^0.20.2 flutter_spinkit: ^5.2.1 + http: ^1.3.0 dev_dependencies: flutter_test: From 4da924587ca7694c9e1a631591b22b759b9c374d Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sat, 8 Mar 2025 17:20:38 +0530 Subject: [PATCH 07/24] updated edit_expenses.dart --- .../components/bloc/edit_expense_bloc/edit_expense_event.dart | 2 +- .../lib/components/view/expenses/edit_expenses.dart | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart index f603532a0..86903820d 100644 --- a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart @@ -4,5 +4,5 @@ abstract class EditExpenseEvent {} class EditExpenseSaveEvent extends EditExpenseEvent { final Map expense; - EditExpenseSaveEvent(this.expense); + EditExpenseSaveEvent({required this.expense}); } diff --git a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart index 35d54b001..f21a7bbfa 100644 --- a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart +++ b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart @@ -112,7 +112,7 @@ class _EditExpenseScreenState extends State { ElevatedButton( onPressed: () { if (true) { - final expenseData = { + Map expenseData = { "expenseTitle": expenseTitleController.text, "merchantName": merchantNameController.text, "totalAmount": double.parse(totalAmountController.text), @@ -125,7 +125,7 @@ class _EditExpenseScreenState extends State { }; if (widget.isEdit) { - + editExpenseBloc.add(EditExpenseSaveEvent(expense : expenseData)); } else { // Add new expense } From 88e5b1b952a80c99eef1179f677425fbae6720fd Mon Sep 17 00:00:00 2001 From: Pra_Kas Date: Sat, 8 Mar 2025 17:28:21 +0530 Subject: [PATCH 08/24] Added image picking option --- .../android/gradle.properties | 1 + flutter_application_1/devtools_options.yaml | 3 + .../bloc/expenses_bloc/expenses_bloc.dart | 10 +- .../bloc/expenses_bloc/expenses_event.dart | 5 + .../bloc/expenses_bloc/expenses_state.dart | 7 ++ .../main_screen_bloc/main_screen_bloc.dart | 1 - .../view/expenses/expenses_view.dart | 114 ++++++++++++++---- flutter_application_1/lib/data/appvalues.dart | 2 +- flutter_application_1/lib/service/service | 0 .../lib/service/upload_bill.dart | 24 ++++ flutter_application_1/pubspec.yaml | 3 +- 11 files changed, 141 insertions(+), 29 deletions(-) create mode 100644 flutter_application_1/devtools_options.yaml delete mode 100644 flutter_application_1/lib/service/service create mode 100644 flutter_application_1/lib/service/upload_bill.dart diff --git a/flutter_application_1/android/gradle.properties b/flutter_application_1/android/gradle.properties index 259717082..a190a9353 100644 --- a/flutter_application_1/android/gradle.properties +++ b/flutter_application_1/android/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +org.gradle.java.home= C:/Program Files/Java/jdk-17 diff --git a/flutter_application_1/devtools_options.yaml b/flutter_application_1/devtools_options.yaml new file mode 100644 index 000000000..fa0b357c4 --- /dev/null +++ b/flutter_application_1/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart index e4924f6fe..22958b35c 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart @@ -2,7 +2,8 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:flutter_application_1/components/models/expense_model.dart'; -import 'package:meta/meta.dart'; +import 'package:flutter_application_1/service/upload_bill.dart'; +import 'package:image_picker/image_picker.dart'; part 'expenses_event.dart'; part 'expenses_state.dart'; @@ -10,6 +11,7 @@ part 'expenses_state.dart'; class ExpensesBloc extends Bloc { ExpensesBloc() : super(ExpensesInitial()) { on (expensesInitialEvent); + on(expenseImagePickedEvent); } List> expenseList = [ @@ -95,6 +97,12 @@ class ExpensesBloc extends Bloc { } ]; + Future expenseImagePickedEvent(ExpenseImagePickedEvent event, Emitter emit)async{ + emit(ExpensesImageProcessingState()); + await uploadBill(event.image); + emit(ExpenseImageProcessedState([])); + } + Future expensesInitialEvent(ExpensesInitialEvent event, Emitter emit) async { emit(ExpensesLoadingState()); await Future.delayed(const Duration(seconds: 2)); diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart index b3b08c233..25e228830 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart @@ -3,3 +3,8 @@ part of 'expenses_bloc.dart'; abstract class ExpensesEvent {} class ExpensesInitialEvent extends ExpensesEvent {} + +class ExpenseImagePickedEvent extends ExpensesEvent { + final XFile image; + ExpenseImagePickedEvent(this.image); +} diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart index 5d24a1fb9..7f7ae7369 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart @@ -15,3 +15,10 @@ class ExpensesLoadedState extends ExpensesActionState { } class ExpensesErrorState extends ExpensesActionState {} + +class ExpensesImageProcessingState extends ExpensesActionState {} + +class ExpenseImageProcessedState extends ExpensesActionState { + List expenses; + ExpenseImageProcessedState(this.expenses); +} diff --git a/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_bloc.dart b/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_bloc.dart index a345988d1..64e4d9574 100644 --- a/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_bloc.dart +++ b/flutter_application_1/lib/components/bloc/main_screen_bloc/main_screen_bloc.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; -import 'package:meta/meta.dart'; part 'main_screen_event.dart'; part 'main_screen_state.dart'; diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 067bfe584..bbed38992 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -1,9 +1,11 @@ import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/models/expense_model.dart'; import 'package:flutter_application_1/components/widgets/expense_card.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import '../../../theme/colors.dart'; import '../../bloc/expenses_bloc/expenses_bloc.dart'; +import 'package:image_picker/image_picker.dart'; import '../../utils/helper/styles.dart'; class ExpensesView extends StatefulWidget { @@ -15,6 +17,7 @@ class ExpensesView extends StatefulWidget { class _ExpensesViewState extends State { bool initialLoading = true; + List expenses = []; ExpensesBloc expensesBloc = ExpensesBloc(); @override @@ -22,6 +25,7 @@ class _ExpensesViewState extends State { expensesBloc.add(ExpensesInitialEvent()); super.initState(); } + @override Widget build(BuildContext context) { return BlocConsumer( @@ -35,10 +39,17 @@ class _ExpensesViewState extends State { } if (state is ExpensesErrorState) { initialLoading = false; - ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("something went wrong"))); + ScaffoldMessenger.of(context) + .showSnackBar(SnackBar(content: Text("something went wrong"))); } }, builder: (context, state) { + if(state is ExpensesImageProcessingState){ + return SpinKitCircle(color: primary,); + } + if(state is ExpenseImageProcessedState){ + expenses = state.expenses; + } return Scaffold( backgroundColor: bgColor, appBar: AppBar( @@ -49,17 +60,67 @@ class _ExpensesViewState extends State { ), leading: SizedBox(), ), - floatingActionButton: ElevatedButton( + floatingActionButton: Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + ElevatedButton( + onPressed: () { + showModalBottomSheet( + isScrollControlled: true, + context: context, builder: (BuildContext context){ + return Wrap( + children: [ + ListTile( + title: Center(child: Text("Add Expense",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), + onTap: (){}, + ), + ListTile( + title: Center(child: Text("Upload Image",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), + onTap: () async{ + final value = await ImagePicker().pickImage(source: ImageSource.gallery); + if(value != null){ + expensesBloc.add(ExpenseImagePickedEvent(value)); + Navigator.pop(context); + print(value.path); + } + }, + ), + ListTile( + title: Center(child: Text("Upload pdf",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), + onTap: (){}, + ), + ], + ); + }); + }, + style: ElevatedButton.styleFrom( + backgroundColor: white, + shape: + CircleBorder(side: BorderSide(color: border, width: 0.5)), + minimumSize: const Size(50, 50), + ), + child: Icon( + Icons.add, + size: 35, + color: Colors.green, + ), + ), + SizedBox(height: 20), + ElevatedButton( onPressed: () {}, - style: ElevatedButton.styleFrom( - backgroundColor: white, - shape: CircleBorder( - side: BorderSide(color: border, width: 0.5) + style: ElevatedButton.styleFrom( + backgroundColor: white, + shape: + CircleBorder(side: BorderSide(color: border, width: 0.5)), + minimumSize: const Size(50, 50), + ), + child: Icon( + Icons.star, + size: 35, + color: Colors.green, ), - minimumSize: const Size(50, 50), ), - child: Icon(Icons.star,size: 35,color: Colors.green,), - ), + ]), body: bodyPartOfExpensesView(), ); }, @@ -68,21 +129,26 @@ class _ExpensesViewState extends State { Widget bodyPartOfExpensesView() { return initialLoading - ? Center(child: SpinKitCircle(color: primary,)) + ? Center( + child: SpinKitCircle( + color: primary, + )) : ListView.builder( - physics: const AlwaysScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: expensesBloc.expenseList.length, - itemBuilder: (context, index) { - return ExpenseCard( - expenseTitle: expensesBloc.expenseList[index]["expense_title"], - amountSpent: expensesBloc.expenseList[index]["amount_spent"], - category: expensesBloc.expenseList[index]["category"], - dateTime: expensesBloc.expenseList[index]["date_time"], - paymentMethod: expensesBloc.expenseList[index]["payment_method"], - merchantName: expensesBloc.expenseList[index]["merchant_name"] - ); - }, - ); + physics: const AlwaysScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: expensesBloc.expenseList.length, + itemBuilder: (context, index) { + return ExpenseCard( + expenseTitle: expensesBloc.expenseList[index] + ["expense_title"], + amountSpent: expensesBloc.expenseList[index]["amount_spent"], + category: expensesBloc.expenseList[index]["category"], + dateTime: expensesBloc.expenseList[index]["date_time"], + paymentMethod: expensesBloc.expenseList[index] + ["payment_method"], + merchantName: expensesBloc.expenseList[index] + ["merchant_name"]); + }, + ); } } diff --git a/flutter_application_1/lib/data/appvalues.dart b/flutter_application_1/lib/data/appvalues.dart index b39c4e544..3550881a0 100644 --- a/flutter_application_1/lib/data/appvalues.dart +++ b/flutter_application_1/lib/data/appvalues.dart @@ -1,4 +1,4 @@ class AppValues { - static String ip = ""; + static String ip = "http://10.18.0.146:3000/"; } \ No newline at end of file diff --git a/flutter_application_1/lib/service/service b/flutter_application_1/lib/service/service deleted file mode 100644 index e69de29bb..000000000 diff --git a/flutter_application_1/lib/service/upload_bill.dart b/flutter_application_1/lib/service/upload_bill.dart new file mode 100644 index 000000000..ee8cba7cd --- /dev/null +++ b/flutter_application_1/lib/service/upload_bill.dart @@ -0,0 +1,24 @@ +import 'dart:convert'; +import 'dart:io'; +import 'package:flutter_application_1/data/appvalues.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:http/http.dart' as http; + +Future uploadBill(XFile image) async { + try { + List imageBytes = await image.readAsBytes(); + String base64String = base64Encode(imageBytes); + print("The string is $base64String"); + var response = await http.post( + Uri.parse("${AppValues.ip}addExpenseByBill"), + body: {"image": base64String}, + ); + if (response.statusCode == 200) { + return "Upload successful: ${response.body}"; + } else { + return "Upload failed: ${response.statusCode} - ${response.body}"; + } + } catch (e) { + return "Error: $e"; + } +} diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml index 3f66c5d71..d70718c3e 100644 --- a/flutter_application_1/pubspec.yaml +++ b/flutter_application_1/pubspec.yaml @@ -34,13 +34,12 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 - bloc: ^8.1.4 - flutter_bloc: ^8.1.6 intl: ^0.20.2 flutter_spinkit: ^5.2.1 bloc: ^9.0.0 fl_chart: ^0.70.2 flutter_bloc: ^9.1.0 + image_picker: ^1.1.2 dev_dependencies: flutter_test: From 1c81c711296175ffbc17d34a34d7bfabb4a7d09d Mon Sep 17 00:00:00 2001 From: Pra_Kas Date: Sat, 8 Mar 2025 20:06:09 +0530 Subject: [PATCH 09/24] Added expenses integration --- .../bloc/expenses_bloc/expenses_bloc.dart | 287 +++++++++--------- .../bloc/expenses_bloc/expenses_event.dart | 5 + .../bloc/expenses_bloc/expenses_state.dart | 9 +- .../view/expenses/expenses_view.dart | 35 ++- .../lib/service/expense_service.dart | 78 +++++ .../lib/service/upload_bill.dart | 24 -- flutter_application_1/pubspec.lock | 183 ++++++++++- flutter_application_1/pubspec.yaml | 1 + 8 files changed, 434 insertions(+), 188 deletions(-) create mode 100644 flutter_application_1/lib/service/expense_service.dart delete mode 100644 flutter_application_1/lib/service/upload_bill.dart diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart index 5738b3205..05370884b 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart @@ -1,8 +1,11 @@ import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; import 'package:bloc/bloc.dart'; +import 'package:file_picker/file_picker.dart'; import 'package:flutter_application_1/components/models/expense_model.dart'; -import 'package:flutter_application_1/service/upload_bill.dart'; +import 'package:flutter_application_1/service/expense_service.dart'; import 'package:image_picker/image_picker.dart'; part 'expenses_event.dart'; @@ -12,151 +15,161 @@ class ExpensesBloc extends Bloc { ExpensesBloc() : super(ExpensesInitial()) { on (expensesInitialEvent); on(expenseImagePickedEvent); + on(expensePdfPickedEvent); } - List> expenseList = [ - { - "expense_title": "Groceries", - "amount_spent": 1200, - "category": "Food", - "date_time": "2025-03-08T14:30:00", - "payment_method": "UPI", - "merchant_name": "Big Bazaar", - "tags": ["essentials", "monthly"], - "items": [ - {"amountSpent": 500, "title": "Vegetables"}, - {"amountSpent": 300, "title": "Dairy Products"}, - {"amountSpent": 400, "title": "Snacks"} - ] - }, - { - "expense_title": "Electricity Bill", - "amount_spent": 2500, - "category": "Utilities", - "date_time": "2025-03-07T10:00:00", - "payment_method": "Credit Card", - "merchant_name": "State Electricity Board", - "tags": ["monthly", "bills"], - "items": [ - {"amountSpent": 2.99, "title": "Ut wisi enim"}, - {"amountSpent": 1.3, "title": "Nibh euismod"}, - {"amountSpent": 17, "title": "Rdol magna"}, - {"amountSpent": 6.99, "title": "Mnonuy nibh"}, - {"amountSpent": 1.2, "title": "Kaoreet dolore"}, - {"amountSpent": 5.1, "title": "Taliquam erat"}, - {"amountSpent": 10, "title": "Aeuismod"}, - {"amountSpent": 4.99, "title": "Knonuy nib"} - ] - }, - { - "expense_title": "Uber Ride", - "amount_spent": 350, - "category": "Transport", - "date_time": "2025-03-06T18:45:00", - "payment_method": "Debit Card", - "merchant_name": "Uber", - "tags": ["travel", "daily commute"], - "items": [ - {"amountSpent": 350, "title": "Ride Fare"} - ] - }, - { - "expense_title": "Movie Tickets", - "amount_spent": 800, - "category": "Entertainment", - "date_time": "2025-03-05T20:00:00", - "payment_method": "UPI", - "merchant_name": "PVR Cinemas", - "tags": ["leisure", "weekend"], - "items": [ - {"amountSpent": 400, "title": "Ticket 1"}, - {"amountSpent": 400, "title": "Ticket 2"} - ] - }, - { - "expense_title": "Coffee", - "amount_spent": 150, - "category": "Food", - "date_time": "2025-03-04T09:30:00", - "payment_method": "Cash", - "merchant_name": "Starbucks", - "tags": ["snack", "morning"], - "items": [ - {"amountSpent": 150, "title": "Latte"} - ] - }, - { - "expense_title": "Gym Membership", - "amount_spent": 3000, - "category": "Fitness", - "date_time": "2025-03-03T12:00:00", - "payment_method": "Credit Card", - "merchant_name": "Gold's Gym", - "tags": ["health", "monthly"], - "items": [ - {"amountSpent": 3000, "title": "Monthly Subscription"} - ] - }, - { - "expense_title": "Online Shopping", - "amount_spent": 4500, - "category": "Shopping", - "date_time": "2025-03-02T15:20:00", - "payment_method": "Debit Card", - "merchant_name": "Amazon", - "tags": ["clothes", "electronics"], - "items": [ - {"amountSpent": 2000, "title": "T-shirt"}, - {"amountSpent": 2500, "title": "Headphones"} - ] - }, - { - "expense_title": "Dinner at Restaurant", - "amount_spent": 1800, - "category": "Food", - "date_time": "2025-03-01T21:00:00", - "payment_method": "UPI", - "merchant_name": "Barbeque Nation", - "tags": ["weekend", "dining"], - "items": [ - {"amountSpent": 1800, "title": "Buffet Dinner"} - ] - }, - { - "expense_title": "Mobile Recharge", - "amount_spent": 399, - "category": "Utilities", - "date_time": "2025-02-28T08:00:00", - "payment_method": "Credit Card", - "merchant_name": "Jio", - "tags": ["monthly", "phone"], - "items": [ - {"amountSpent": 399, "title": "Jio Recharge Plan"} - ] - }, - { - "expense_title": "Book Purchase", - "amount_spent": 1200, - "category": "Education", - "date_time": "2025-02-27T17:30:00", - "payment_method": "Debit Card", - "merchant_name": "Flipkart", - "tags": ["learning", "study"], - "items": [ - {"amountSpent": 1200, "title": "Data Structures Book"} - ] - } - ]; + + // List> expenseList = [ + // { + // "expense_title": "Groceries", + // "amount_spent": 1200, + // "category": "Food", + // "date_time": "2025-03-08T14:30:00", + // "payment_method": "UPI", + // "merchant_name": "Big Bazaar", + // "tags": ["essentials", "monthly"], + // "items": [ + // {"amountSpent": 500, "title": "Vegetables"}, + // {"amountSpent": 300, "title": "Dairy Products"}, + // {"amountSpent": 400, "title": "Snacks"} + // ] + // }, + // { + // "expense_title": "Electricity Bill", + // "amount_spent": 2500, + // "category": "Utilities", + // "date_time": "2025-03-07T10:00:00", + // "payment_method": "Credit Card", + // "merchant_name": "State Electricity Board", + // "tags": ["monthly", "bills"], + // "items": [ + // {"amountSpent": 2.99, "title": "Ut wisi enim"}, + // {"amountSpent": 1.3, "title": "Nibh euismod"}, + // {"amountSpent": 17, "title": "Rdol magna"}, + // {"amountSpent": 6.99, "title": "Mnonuy nibh"}, + // {"amountSpent": 1.2, "title": "Kaoreet dolore"}, + // {"amountSpent": 5.1, "title": "Taliquam erat"}, + // {"amountSpent": 10, "title": "Aeuismod"}, + // {"amountSpent": 4.99, "title": "Knonuy nib"} + // ] + // }, + // { + // "expense_title": "Uber Ride", + // "amount_spent": 350, + // "category": "Transport", + // "date_time": "2025-03-06T18:45:00", + // "payment_method": "Debit Card", + // "merchant_name": "Uber", + // "tags": ["travel", "daily commute"], + // "items": [ + // {"amountSpent": 350, "title": "Ride Fare"} + // ] + // }, + // { + // "expense_title": "Movie Tickets", + // "amount_spent": 800, + // "category": "Entertainment", + // "date_time": "2025-03-05T20:00:00", + // "payment_method": "UPI", + // "merchant_name": "PVR Cinemas", + // "tags": ["leisure", "weekend"], + // "items": [ + // {"amountSpent": 400, "title": "Ticket 1"}, + // {"amountSpent": 400, "title": "Ticket 2"} + // ] + // }, + // { + // "expense_title": "Coffee", + // "amount_spent": 150, + // "category": "Food", + // "date_time": "2025-03-04T09:30:00", + // "payment_method": "Cash", + // "merchant_name": "Starbucks", + // "tags": ["snack", "morning"], + // "items": [ + // {"amountSpent": 150, "title": "Latte"} + // ] + // }, + // { + // "expense_title": "Gym Membership", + // "amount_spent": 3000, + // "category": "Fitness", + // "date_time": "2025-03-03T12:00:00", + // "payment_method": "Credit Card", + // "merchant_name": "Gold's Gym", + // "tags": ["health", "monthly"], + // "items": [ + // {"amountSpent": 3000, "title": "Monthly Subscription"} + // ] + // }, + // { + // "expense_title": "Online Shopping", + // "amount_spent": 4500, + // "category": "Shopping", + // "date_time": "2025-03-02T15:20:00", + // "payment_method": "Debit Card", + // "merchant_name": "Amazon", + // "tags": ["clothes", "electronics"], + // "items": [ + // {"amountSpent": 2000, "title": "T-shirt"}, + // {"amountSpent": 2500, "title": "Headphones"} + // ] + // }, + // { + // "expense_title": "Dinner at Restaurant", + // "amount_spent": 1800, + // "category": "Food", + // "date_time": "2025-03-01T21:00:00", + // "payment_method": "UPI", + // "merchant_name": "Barbeque Nation", + // "tags": ["weekend", "dining"], + // "items": [ + // {"amountSpent": 1800, "title": "Buffet Dinner"} + // ] + // }, + // { + // "expense_title": "Mobile Recharge", + // "amount_spent": 399, + // "category": "Utilities", + // "date_time": "2025-02-28T08:00:00", + // "payment_method": "Credit Card", + // "merchant_name": "Jio", + // "tags": ["monthly", "phone"], + // "items": [ + // {"amountSpent": 399, "title": "Jio Recharge Plan"} + // ] + // }, + // { + // "expense_title": "Book Purchase", + // "amount_spent": 1200, + // "category": "Education", + // "date_time": "2025-02-27T17:30:00", + // "payment_method": "Debit Card", + // "merchant_name": "Flipkart", + // "tags": ["learning", "study"], + // "items": [ + // {"amountSpent": 1200, "title": "Data Structures Book"} + // ] + // } + // ]; + + Future expensePdfPickedEvent(ExpensePdfPickedEvent event, Emitter emit)async{ + emit(ExpensePdfProcessingState()); + await uploadPdf(event.pdf); + List> expenses = await getExpenses(); + emit(ExpensePdfProcessedState(expenses)); + } Future expenseImagePickedEvent(ExpenseImagePickedEvent event, Emitter emit)async{ emit(ExpensesImageProcessingState()); await uploadBill(event.image); - emit(ExpenseImageProcessedState([])); + List> expenses = await getExpenses(); + emit(ExpenseImageProcessedState(expenses)); } Future expensesInitialEvent(ExpensesInitialEvent event, Emitter emit) async { emit(ExpensesLoadingState()); - await Future.delayed(const Duration(seconds: 1)); - emit(ExpensesLoadedState(expenseList)); + List> expenses = await getExpenses(); + emit(ExpensesLoadedState(expenses)); } } diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart index 25e228830..1c9747e24 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart @@ -8,3 +8,8 @@ class ExpenseImagePickedEvent extends ExpensesEvent { final XFile image; ExpenseImagePickedEvent(this.image); } + +class ExpensePdfPickedEvent extends ExpensesEvent { + final FilePickerResult pdf; + ExpensePdfPickedEvent(this.pdf); +} \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart index 7f7ae7369..765bc18a3 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart @@ -19,6 +19,13 @@ class ExpensesErrorState extends ExpensesActionState {} class ExpensesImageProcessingState extends ExpensesActionState {} class ExpenseImageProcessedState extends ExpensesActionState { - List expenses; + List> expenses; ExpenseImageProcessedState(this.expenses); } + +class ExpensePdfProcessingState extends ExpensesActionState {} + +class ExpensePdfProcessedState extends ExpensesActionState { + List> expenses; + ExpensePdfProcessedState(this.expenses); +} diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 491231657..a34789af5 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -1,3 +1,4 @@ +import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/models/expense_model.dart'; import 'package:flutter_application_1/components/widgets/expense_card.dart'; @@ -17,7 +18,7 @@ class ExpensesView extends StatefulWidget { class _ExpensesViewState extends State { bool initialLoading = true; - List expenses = []; + List> expenses = []; ExpensesBloc expensesBloc = ExpensesBloc(); @override @@ -36,6 +37,7 @@ class _ExpensesViewState extends State { } if (state is ExpensesLoadedState) { initialLoading = false; + expenses = state.expenses; } if (state is ExpensesErrorState) { initialLoading = false; @@ -44,7 +46,7 @@ class _ExpensesViewState extends State { } }, builder: (context, state) { - if(state is ExpensesImageProcessingState){ + if(state is ExpensesImageProcessingState || state is ExpensePdfProcessingState){ return SpinKitCircle(color: primary,); } if(state is ExpenseImageProcessedState){ @@ -87,7 +89,14 @@ class _ExpensesViewState extends State { ), ListTile( title: Center(child: Text("Upload pdf",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), - onTap: (){}, + onTap: () async{ + final value = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['pdf']); + if(value != null){ + expensesBloc.add(ExpensePdfPickedEvent(value)); + print(value); + Navigator.pop(context); + } + }, ), ], ); @@ -121,13 +130,13 @@ class _ExpensesViewState extends State { ), ), ]), - body: bodyPartOfExpensesView(), + body: bodyPartOfExpensesView(expenses), ); }, ); } - Widget bodyPartOfExpensesView() { + Widget bodyPartOfExpensesView(List> expenses) { return initialLoading ? Center( child: SpinKitCircle( @@ -136,16 +145,16 @@ class _ExpensesViewState extends State { : ListView.builder( physics: const AlwaysScrollableScrollPhysics(), shrinkWrap: true, - itemCount: expensesBloc.expenseList.length, + itemCount: expenses.length, itemBuilder: (context, index) { return ExpenseCard( - expenseTitle: expensesBloc.expenseList[index]["expense_title"], - amountSpent: expensesBloc.expenseList[index]["amount_spent"], - category: expensesBloc.expenseList[index]["category"], - dateTime: expensesBloc.expenseList[index]["date_time"], - paymentMethod: expensesBloc.expenseList[index]["payment_method"], - merchantName: expensesBloc.expenseList[index]["merchant_name"], - expenseData: expensesBloc.expenseList[index], + expenseTitle: expenses[index]["expense_title"], + amountSpent: expenses[index]["amount_spent"], + category: expenses[index]["category"], + dateTime: expenses[index]["date_time"], + paymentMethod: expenses[index]["payment_method"], + merchantName: expenses[index]["merchant_name"], + expenseData: expenses[index], ); }, ); diff --git a/flutter_application_1/lib/service/expense_service.dart b/flutter_application_1/lib/service/expense_service.dart new file mode 100644 index 000000000..e1c3f03a0 --- /dev/null +++ b/flutter_application_1/lib/service/expense_service.dart @@ -0,0 +1,78 @@ +import 'dart:convert'; +import 'dart:io'; +import 'package:file_picker/file_picker.dart'; +import 'package:flutter_application_1/components/models/expense_model.dart'; +import 'package:flutter_application_1/data/appvalues.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:http/http.dart' as http; + +Future uploadBill(XFile image) async { + try { + List imageBytes = await image.readAsBytes(); + String base64String = base64Encode(imageBytes); + print("The string is $base64String"); + var response = await http.post( + Uri.parse("${AppValues.ip}addExpenseByBill"), + body: {"image64": base64String}, + ); + if (response.statusCode == 200) { + return "Upload successful: ${response.body}"; + } else { + return "Upload failed: ${response.statusCode} - ${response.body}"; + } + } catch (e) { + return "Error: $e"; + } +} + +Future uploadPdf(FilePickerResult pdf) async { + try { + if (pdf.files.isEmpty) { + return "No file selected"; + } + + var request = http.MultipartRequest( + "POST", + Uri.parse("${AppValues.ip}addBankStatement"), + ); + request.headers.addAll({ + "Content-Type": "multipart/form-data", + }); + File file = File(pdf.files.single.path!); + request.files.add(await http.MultipartFile.fromPath( + 'file', + file.path, + filename: pdf.files.single.name, + )); + + var response = await request.send(); + + if (response.statusCode == 200) { + return "Upload successful"; + } else { + return "Upload failed: ${response.statusCode}"; + } + } catch (e) { + return "Error: $e"; + } +} + + +Future>> getExpenses() async { + try{ + List> expenses = []; + var response = await http.get(Uri.parse("${AppValues.ip}getExpense")); + if(response.statusCode == 200){ + var data = jsonDecode(response.body); + for(var expense in data["message"]){ + expenses.add(expense); + } + print("Success: $expenses"); + return expenses; + } + } + catch(e){ + print("Error: $e"); + } + return []; +} \ No newline at end of file diff --git a/flutter_application_1/lib/service/upload_bill.dart b/flutter_application_1/lib/service/upload_bill.dart deleted file mode 100644 index ee8cba7cd..000000000 --- a/flutter_application_1/lib/service/upload_bill.dart +++ /dev/null @@ -1,24 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; -import 'package:flutter_application_1/data/appvalues.dart'; -import 'package:image_picker/image_picker.dart'; -import 'package:http/http.dart' as http; - -Future uploadBill(XFile image) async { - try { - List imageBytes = await image.readAsBytes(); - String base64String = base64Encode(imageBytes); - print("The string is $base64String"); - var response = await http.post( - Uri.parse("${AppValues.ip}addExpenseByBill"), - body: {"image": base64String}, - ); - if (response.statusCode == 200) { - return "Upload successful: ${response.body}"; - } else { - return "Upload failed: ${response.statusCode} - ${response.body}"; - } - } catch (e) { - return "Error: $e"; - } -} diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index 0515c88d4..e03f94272 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: async - sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.12.0" + version: "2.11.0" bloc: dependency: "direct main" description: name: bloc - sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" + sha256: "52c10575f4445c61dd9e0cafcc6356fdd827c4c64dd7945ef3c4105f6b6ac189" url: "https://pub.dev" source: hosted - version: "8.1.4" + version: "9.0.0" boolean_selector: dependency: transitive description: @@ -49,6 +49,14 @@ packages: 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" cupertino_icons: dependency: "direct main" description: @@ -73,6 +81,54 @@ packages: 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_picker: + dependency: "direct main" + description: + name: file_picker + sha256: "7423298f08f6fc8cce05792bae329f9a93653fc9c08712831b1a55540127995d" + url: "https://pub.dev" + source: hosted + version: "9.0.2" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" + url: "https://pub.dev" + source: hosted + version: "0.9.3+2" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc" + url: "https://pub.dev" + source: hosted + version: "0.9.4+2" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b + url: "https://pub.dev" + source: hosted + version: "2.6.2" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" + url: "https://pub.dev" + source: hosted + version: "0.9.3+4" fl_chart: dependency: "direct main" description: @@ -90,10 +146,10 @@ packages: dependency: "direct main" description: name: flutter_bloc - sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a + sha256: "1046d719fbdf230330d3443187cc33cc11963d15c9089f6cc56faa42a4c5f0cc" url: "https://pub.dev" source: hosted - version: "8.1.6" + version: "9.1.0" flutter_lints: dependency: "direct dev" description: @@ -102,6 +158,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.0" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: "5a1e6fb2c0561958d7e4c33574674bda7b77caaca7a33b758876956f2902eea3" + url: "https://pub.dev" + source: hosted + version: "2.0.27" flutter_spinkit: dependency: "direct main" description: @@ -115,6 +179,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" http: dependency: "direct main" description: @@ -131,6 +200,70 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: "8bd392ba8b0c8957a157ae0dc9fcf48c58e6c20908d5880aea1d79734df090e9" + url: "https://pub.dev" + source: hosted + version: "0.8.12+22" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100" + url: "https://pub.dev" + source: hosted + version: "0.8.12+2" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "1b90ebbd9dcf98fb6c1d01427e49a55bd96b5d67b8c67cf955d60a5de74207c1" + url: "https://pub.dev" + source: hosted + version: "0.2.1+2" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0" + url: "https://pub.dev" + source: hosted + version: "2.10.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" intl: dependency: "direct main" description: @@ -191,10 +324,18 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + 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: "1.16.0" + version: "2.0.0" nested: dependency: transitive description: @@ -207,10 +348,18 @@ packages: dependency: transitive description: name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "2.1.8" provider: dependency: transitive description: @@ -271,7 +420,7 @@ packages: sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.3" typed_data: dependency: transitive description: @@ -295,7 +444,7 @@ packages: sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.3.1" + version: "14.3.0" web: dependency: transitive description: @@ -304,6 +453,14 @@ packages: 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" sdks: dart: ">=3.6.1 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + flutter: ">=3.27.0" diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml index 8ebe42dcd..3954a8d41 100644 --- a/flutter_application_1/pubspec.yaml +++ b/flutter_application_1/pubspec.yaml @@ -41,6 +41,7 @@ dependencies: flutter_bloc: ^9.1.0 image_picker: ^1.1.2 http: ^1.3.0 + file_picker: ^9.0.2 dev_dependencies: flutter_test: From c40f875afbe762b8f96922d454dead396f981b56 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sat, 8 Mar 2025 20:06:31 +0530 Subject: [PATCH 10/24] chaned the json fied in edit expense --- .../android/gradle.properties | 2 +- .../edit_expense_bloc/edit_expense_bloc.dart | 1 + .../view/expenses/edit_expenses.dart | 49 +++-- .../view/expenses/expenses_view.dart | 9 +- .../flutter/generated_plugin_registrant.cc | 4 + .../linux/flutter/generated_plugins.cmake | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 2 + flutter_application_1/pubspec.lock | 201 +++++++++++++++--- .../flutter/generated_plugin_registrant.cc | 3 + .../windows/flutter/generated_plugins.cmake | 1 + 10 files changed, 223 insertions(+), 50 deletions(-) diff --git a/flutter_application_1/android/gradle.properties b/flutter_application_1/android/gradle.properties index a190a9353..692013121 100644 --- a/flutter_application_1/android/gradle.properties +++ b/flutter_application_1/android/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true -org.gradle.java.home= C:/Program Files/Java/jdk-17 +org.gradle.java.home= /usr/lib/jvm/java-17-openjdk-amd64 \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart index 6c86518f1..0ac16bf6d 100644 --- a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart @@ -14,6 +14,7 @@ class EditExpenseBloc extends Bloc { FutureOr editExpenseSaveEvent(EditExpenseSaveEvent event, Emitter emit) { emit(EditExpenseSavingState()); Map expense = event.expense; + print(expense); // do api call here emit(EditExpenseSavedState()); } diff --git a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart index f21a7bbfa..95897e707 100644 --- a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart +++ b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart @@ -94,12 +94,31 @@ class _EditExpenseScreenState extends State { const SizedBox(height: 20), const Text("Items", style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), Expanded( - child: ListView.builder( - shrinkWrap: true, - itemCount: items.length, - itemBuilder: (context, index) { - return itemRow(index); - }, + child: Column( + children: [ + ListView.builder( + shrinkWrap: true, + itemCount: items.length, + itemBuilder: (context, index) { + return itemRow(index); + }, + ), + ElevatedButton( + onPressed: () { + setState(() { + items.add({ + "title": "", + "amountSpent": 0.0, + }); + }); + }, + style: ElevatedButton.styleFrom( + backgroundColor: primary, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + ), + child: const Text("Add Item", style: TextStyle(color: Colors.white)), + ), + ], ), ), isSaving @@ -112,14 +131,18 @@ class _EditExpenseScreenState extends State { ElevatedButton( onPressed: () { if (true) { + for (int i=0;i expenseData = { - "expenseTitle": expenseTitleController.text, - "merchantName": merchantNameController.text, - "totalAmount": double.parse(totalAmountController.text), - "paymentMethod": paymentMethodController.text, - "date": selectedDate != null - ? DateFormat("yyyy-MM-dd").format(selectedDate!) - : "", + "expense_title": expenseTitleController.text, + "merchant_name": merchantNameController.text, + "amount_spent": double.parse(totalAmountController.text), + "payment_method": paymentMethodController.text, + "date": dateController.text.trim(), "category": selectedCategory, "items": items, }; diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 491231657..677c6028e 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/models/expense_model.dart'; +import 'package:flutter_application_1/components/view/expenses/edit_expenses.dart'; import 'package:flutter_application_1/components/widgets/expense_card.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; @@ -72,7 +73,9 @@ class _ExpensesViewState extends State { children: [ ListTile( title: Center(child: Text("Add Expense",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), - onTap: (){}, + onTap: (){ + Navigator.push(context, MaterialPageRoute(builder: (context) => EditExpenseScreen(expenseData: {}, isEdit: false,))); + }, ), ListTile( title: Center(child: Text("Upload Image",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), @@ -107,7 +110,9 @@ class _ExpensesViewState extends State { ), SizedBox(height: 20), ElevatedButton( - onPressed: () {}, + onPressed: () { + + }, style: ElevatedButton.styleFrom( backgroundColor: white, shape: diff --git a/flutter_application_1/linux/flutter/generated_plugin_registrant.cc b/flutter_application_1/linux/flutter/generated_plugin_registrant.cc index e71a16d23..64a0ecea4 100644 --- a/flutter_application_1/linux/flutter/generated_plugin_registrant.cc +++ b/flutter_application_1/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,10 @@ #include "generated_plugin_registrant.h" +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); + file_selector_plugin_register_with_registrar(file_selector_linux_registrar); } diff --git a/flutter_application_1/linux/flutter/generated_plugins.cmake b/flutter_application_1/linux/flutter/generated_plugins.cmake index 2e1de87a7..2db3c22ae 100644 --- a/flutter_application_1/linux/flutter/generated_plugins.cmake +++ b/flutter_application_1/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + file_selector_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift index cccf817a5..14b5f7c7e 100644 --- a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,8 @@ import FlutterMacOS import Foundation +import file_selector_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) } diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index 0515c88d4..389e80d44 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -13,42 +13,50 @@ packages: dependency: "direct main" description: name: bloc - sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" + sha256: "52c10575f4445c61dd9e0cafcc6356fdd827c4c64dd7945ef3c4105f6b6ac189" url: "https://pub.dev" source: hosted - version: "8.1.4" + version: "9.0.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" collection: dependency: transitive description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "0.3.4+2" cupertino_icons: dependency: "direct main" description: @@ -69,10 +77,42 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" + url: "https://pub.dev" + source: hosted + version: "1.3.2" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" + url: "https://pub.dev" + source: hosted + version: "0.9.3+2" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc" + url: "https://pub.dev" + source: hosted + version: "0.9.4+2" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b + url: "https://pub.dev" + source: hosted + version: "2.6.2" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "0.9.3+4" fl_chart: dependency: "direct main" description: @@ -90,10 +130,10 @@ packages: dependency: "direct main" description: name: flutter_bloc - sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a + sha256: "1046d719fbdf230330d3443187cc33cc11963d15c9089f6cc56faa42a4c5f0cc" url: "https://pub.dev" source: hosted - version: "8.1.6" + version: "9.1.0" flutter_lints: dependency: "direct dev" description: @@ -102,6 +142,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.0" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: "5a1e6fb2c0561958d7e4c33574674bda7b77caaca7a33b758876956f2902eea3" + url: "https://pub.dev" + source: hosted + version: "2.0.27" flutter_spinkit: dependency: "direct main" description: @@ -115,6 +163,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" http: dependency: "direct main" description: @@ -131,6 +184,70 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: "8bd392ba8b0c8957a157ae0dc9fcf48c58e6c20908d5880aea1d79734df090e9" + url: "https://pub.dev" + source: hosted + version: "0.8.12+22" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100" + url: "https://pub.dev" + source: hosted + version: "0.8.12+2" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "1b90ebbd9dcf98fb6c1d01427e49a55bd96b5d67b8c67cf955d60a5de74207c1" + url: "https://pub.dev" + source: hosted + version: "0.2.1+2" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0" + url: "https://pub.dev" + source: hosted + version: "2.10.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" intl: dependency: "direct main" description: @@ -143,18 +260,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -175,10 +292,10 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -195,6 +312,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" nested: dependency: transitive description: @@ -211,6 +336,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" provider: dependency: transitive description: @@ -228,47 +361,47 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" stack_trace: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted version: "0.7.4" @@ -292,7 +425,7 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted version: "14.3.1" @@ -305,5 +438,5 @@ packages: source: hosted version: "1.1.1" sdks: - dart: ">=3.6.1 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + dart: ">=3.7.0-0 <4.0.0" + flutter: ">=3.27.0" diff --git a/flutter_application_1/windows/flutter/generated_plugin_registrant.cc b/flutter_application_1/windows/flutter/generated_plugin_registrant.cc index 8b6d4680a..77ab7a09a 100644 --- a/flutter_application_1/windows/flutter/generated_plugin_registrant.cc +++ b/flutter_application_1/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,9 @@ #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + FileSelectorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FileSelectorWindows")); } diff --git a/flutter_application_1/windows/flutter/generated_plugins.cmake b/flutter_application_1/windows/flutter/generated_plugins.cmake index b93c4c30c..a423a0247 100644 --- a/flutter_application_1/windows/flutter/generated_plugins.cmake +++ b/flutter_application_1/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + file_selector_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 90e7817c92ef76971ead5381fc971f59675a5f33 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sat, 8 Mar 2025 23:36:11 +0530 Subject: [PATCH 11/24] notification service completed --- .../android/app/build.gradle | 8 +- .../android/app/google-services.json | 48 ++ .../android/app/src/main/AndroidManifest.xml | 15 + flutter_application_1/android/build.gradle | 10 + flutter_application_1/android/settings.gradle | 3 + .../AnalyticsBloc/analytics_bloc_bloc.dart | 22 +- .../view/analytics/analytics_view.dart | 184 +++--- .../lib/components/view/main_screeen.dart | 25 + flutter_application_1/lib/data/appvalues.dart | 1 + .../lib/firebase_options.dart | 62 +++ flutter_application_1/lib/main.dart | 5 +- .../lib/service/notification_service.dart | 143 +++++ .../Flutter/GeneratedPluginRegistrant.swift | 10 + flutter_application_1/pubspec.lock | 522 ------------------ flutter_application_1/pubspec.yaml | 4 + .../flutter/generated_plugin_registrant.cc | 6 + .../windows/flutter/generated_plugins.cmake | 2 + 17 files changed, 425 insertions(+), 645 deletions(-) create mode 100644 flutter_application_1/android/app/google-services.json create mode 100644 flutter_application_1/lib/firebase_options.dart create mode 100644 flutter_application_1/lib/service/notification_service.dart delete mode 100644 flutter_application_1/pubspec.lock diff --git a/flutter_application_1/android/app/build.gradle b/flutter_application_1/android/app/build.gradle index eaad983ab..eac3b2668 100644 --- a/flutter_application_1/android/app/build.gradle +++ b/flutter_application_1/android/app/build.gradle @@ -3,6 +3,7 @@ plugins { id "kotlin-android" // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" + id "com.google.gms.google-services" // Google services for Firebase } android { @@ -24,7 +25,7 @@ android { applicationId = "com.example.flutter_application_1" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. - minSdk = flutter.minSdkVersion + minSdk = 23 targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName @@ -42,3 +43,8 @@ android { flutter { source = "../.." } + +dependencies { + implementation platform('com.google.firebase:firebase-bom:32.7.0') // Firebase BOM (use latest version) + implementation 'com.google.firebase:firebase-messaging' // Firebase Cloud Messaging +} diff --git a/flutter_application_1/android/app/google-services.json b/flutter_application_1/android/app/google-services.json new file mode 100644 index 000000000..6f2a45869 --- /dev/null +++ b/flutter_application_1/android/app/google-services.json @@ -0,0 +1,48 @@ +{ + "project_info": { + "project_number": "101217440706", + "project_id": "finnfloww", + "storage_bucket": "finnfloww.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:101217440706:android:a9c09bb6b54d47d08b7c5b", + "android_client_info": { + "package_name": "com.example.flutter_application_1" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDFcAakxrfNnQsARzoFKAKhohW_-nMn-CE" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:101217440706:android:c3004202794325658b7c5b", + "android_client_info": { + "package_name": "com.finnfloww.app" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDFcAakxrfNnQsARzoFKAKhohW_-nMn-CE" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/flutter_application_1/android/app/src/main/AndroidManifest.xml b/flutter_application_1/android/app/src/main/AndroidManifest.xml index ed185c3c2..bcc91b221 100644 --- a/flutter_application_1/android/app/src/main/AndroidManifest.xml +++ b/flutter_application_1/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,6 @@ + + + + + + + + + + { - AnalyticsBlocBloc() : super(AnalyticsBlocInitial()) { on(analyticsLoadEvent); } - Future analyticsLoadEvent(AnalyticsLoadEvent event, Emitter emit) async{ + Future analyticsLoadEvent( + AnalyticsLoadEvent event, Emitter emit) async { emit(AnalyticsLoadingState()); - ListxList = List.generate(10,((_){ - return Random().nextInt(20); - })); - ListyList = List.generate(10,((_){ - return Random().nextInt(20); - })); - String xTitle = "X-Axis"; - String yTitle = "Y-Axis"; - emit(AnalyticsLoadedState(xList, yList, xTitle, yTitle)); + + // Generate random expense data + List xList = List.generate(12, (index) => index); + List yList = List.generate(12, (index) => Random().nextInt(5000) + 1000); + + emit(AnalyticsLoadedState(xList, yList, "Months", "Expense (₹)")); } -} +} \ No newline at end of file diff --git a/flutter_application_1/lib/components/view/analytics/analytics_view.dart b/flutter_application_1/lib/components/view/analytics/analytics_view.dart index 7c1599ddb..dc7605d57 100644 --- a/flutter_application_1/lib/components/view/analytics/analytics_view.dart +++ b/flutter_application_1/lib/components/view/analytics/analytics_view.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:fl_chart/fl_chart.dart'; -import 'package:flutter_application_1/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import '../../bloc/AnalyticsBloc/analytics_bloc_bloc.dart'; class AnalyticsView extends StatefulWidget { const AnalyticsView({super.key}); @@ -12,65 +12,35 @@ class AnalyticsView extends StatefulWidget { class _AnalyticsViewState extends State with TickerProviderStateMixin { + final analyticsBloc = AnalyticsBlocBloc(); + int selectedMonthIndex = 0; List xAxis = []; - List month = [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ]; - List barTouchData = [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ]; List yAxis = []; String xTitle = ""; String yTitle = ""; - late TabController tabController; - final analyticsBlocBloc = AnalyticsBlocBloc(); + + List months = [ + "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" + ]; @override void initState() { - tabController = TabController(length: 2, vsync: this); - analyticsBlocBloc.add(AnalyticsLoadEvent()); - barTouchData = month; super.initState(); + analyticsBloc.add(AnalyticsLoadEvent()); } @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( - title: const Text( - 'Analytics', - ), - forceMaterialTransparency: true, - ), + appBar: AppBar(title: const Text('Analytics')), body: Padding( padding: const EdgeInsets.all(8.0), child: BlocBuilder( - bloc: analyticsBlocBloc, + bloc: analyticsBloc, builder: (context, state) { if (state is AnalyticsLoadingState) { - return CircularProgressIndicator(); + return const Center(child: CircularProgressIndicator()); } if (state is AnalyticsLoadedState) { xAxis = state.xList; @@ -78,37 +48,33 @@ class _AnalyticsViewState extends State xTitle = state.xTitle; yTitle = state.yTitle; } + return Column( - mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ + // Month Selector SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( - children: [ - for (int i = 0; i < 12; i++) - monthlyExpenseContainer(1000, month[i], i, i) - ], + children: List.generate(12, (index) { + return monthlyExpenseContainer( + month: months[index], + expense: yAxis[index], + isSelected: selectedMonthIndex == index, + onTap: () { + setState(() { + selectedMonthIndex = index; + }); + }, + ); + }), ), ), - const SizedBox( - height: 20, - ), - Text('Expense Graphs'), - const SizedBox( - height: 20, - ), - expenseGraph(context, xAxis, yAxis, xTitle, yTitle,month), - const SizedBox( - height: 20, - ), - TabBar( - controller: tabController, - dividerColor: Colors.transparent, - tabs: [ - Tab(child: Text("Expenses")), - Tab(child: Text("Stocks")) - ]), + const SizedBox(height: 20), + const Text('Expense Graphs', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + const SizedBox(height: 20), + // Expense Graph + expenseGraph(context, xAxis, yAxis, xTitle, yTitle,months), ], ); }, @@ -118,33 +84,29 @@ class _AnalyticsViewState extends State } } -Widget monthlyExpenseContainer( - int value, String month, int expense, int income) { +// Monthly Expense Container Widget +Widget monthlyExpenseContainer({ + required String month, + required int expense, + required bool isSelected, + required VoidCallback onTap, +}) { return GestureDetector( - onTap: () { - }, + onTap: onTap, child: Card( - color: Colors.grey[200], + color: isSelected ? Colors.blue[100] : Colors.grey[200], + margin: const EdgeInsets.symmetric(horizontal: 4), child: Padding( - padding: EdgeInsets.all(18.0), + padding: const EdgeInsets.all(12.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(month,style: TextStyle(fontWeight: FontWeight.bold),), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text('Expense'), - Text('$expense'), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text('Income'), - Text('$income'), - ], - ), + Text(month, style: const TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ + const Text('Expense:'), + Text('₹$expense', style: const TextStyle(fontWeight: FontWeight.bold)), + ]), ], ), ), @@ -152,11 +114,12 @@ Widget monthlyExpenseContainer( ); } -Widget expenseGraph(BuildContext context, List xList, List yList, - String xTitle, String yTitle, Listmonth) { +// Expense Graph Widget +Widget expenseGraph(BuildContext context, List xList, List yList, String xTitle, String yTitle, List months) { return SizedBox( - height: MediaQuery.of(context).size.width * 0.9, - child: BarChart(BarChartData( + height: MediaQuery.of(context).size.width * 0.7, + child: BarChart( + BarChartData( alignment: BarChartAlignment.spaceEvenly, borderData: FlBorderData(show: false), gridData: FlGridData(show: false), @@ -164,9 +127,7 @@ Widget expenseGraph(BuildContext context, List xList, List yList, barTouchData: BarTouchData( touchTooltipData: BarTouchTooltipData( getTooltipItem: (group, groupIndex, rod, rodIndex) { - return BarTooltipItem( - month[group.x.toInt()], - TextStyle(color: Colors.white)); + return BarTooltipItem('₹${yList[group.x.toInt()]}', TextStyle(color: Colors.white)); }, ), ), @@ -177,27 +138,34 @@ Widget expenseGraph(BuildContext context, List xList, List yList, barRods: [ BarChartRodData( toY: yList[i].toDouble(), - fromY: 0, width: 25, + color: Colors.blue, ), ], - barsSpace: 4, ), ], titlesData: FlTitlesData( - leftTitles: AxisTitles( - axisNameWidget: Text(yTitle), - sideTitles: SideTitles(showTitles: false, reservedSize: 30), - ), - bottomTitles: AxisTitles( - axisNameWidget: Text(yTitle), - sideTitles: SideTitles(showTitles: false, reservedSize: 30), - ), - rightTitles: AxisTitles( - sideTitles: SideTitles(showTitles: false), + leftTitles: AxisTitles( + axisNameWidget: Text(yTitle), + sideTitles: SideTitles(showTitles: true, reservedSize: 30), + ), + bottomTitles: AxisTitles( + axisNameWidget: Text(xTitle), + sideTitles: SideTitles( + showTitles: true, + getTitlesWidget: (value, meta) { + return Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Text(months[value.toInt()].substring(0, 3)), + ); + }, + reservedSize: 30, ), - topTitles: AxisTitles( - sideTitles: SideTitles(showTitles: false), - )))), + ), + rightTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + ), + ), + ), ); } diff --git a/flutter_application_1/lib/components/view/main_screeen.dart b/flutter_application_1/lib/components/view/main_screeen.dart index 6b0bc0664..71929d1ba 100644 --- a/flutter_application_1/lib/components/view/main_screeen.dart +++ b/flutter_application_1/lib/components/view/main_screeen.dart @@ -1,9 +1,11 @@ +import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/view/analytics/analytics_view.dart'; import 'package:flutter_application_1/components/view/expenses/expenses_view.dart'; import 'package:flutter_application_1/components/view/settings/settings.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import '../../service/notification_service.dart'; import '../../theme/colors.dart'; import '../bloc/main_screen_bloc/main_screen_bloc.dart'; @@ -28,6 +30,29 @@ class _MainScreenState extends State { mainScreenBloc.add(MainScreenBottomNavigationBarSwitchingEvent(index)); } + @override + void initState() { + // TODO: implement initState + getFirebaseNotification(); + super.initState(); + } + + Future getFirebaseNotification() async { + await NotificationService.instance.initialize(context); + NotificationSettings settings = + await FirebaseMessaging.instance.getNotificationSettings(); + if (settings.authorizationStatus == AuthorizationStatus.notDetermined) { + settings = await FirebaseMessaging.instance.requestPermission(); + } + + if (settings.authorizationStatus == AuthorizationStatus.authorized) { + print("Has permission"); + // do api call to backend to create FCM + } else { + + } + } + @override Widget build(BuildContext context) { return BlocConsumer( diff --git a/flutter_application_1/lib/data/appvalues.dart b/flutter_application_1/lib/data/appvalues.dart index 3550881a0..be574effb 100644 --- a/flutter_application_1/lib/data/appvalues.dart +++ b/flutter_application_1/lib/data/appvalues.dart @@ -1,4 +1,5 @@ class AppValues { static String ip = "http://10.18.0.146:3000/"; + static String fcm = ""; } \ No newline at end of file diff --git a/flutter_application_1/lib/firebase_options.dart b/flutter_application_1/lib/firebase_options.dart new file mode 100644 index 000000000..9c03fd8cc --- /dev/null +++ b/flutter_application_1/lib/firebase_options.dart @@ -0,0 +1,62 @@ +// File generated by FlutterFire CLI. +// ignore_for_file: type=lint +import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +/// Default [FirebaseOptions] for use with your Firebase apps. +/// +/// Example: +/// ```dart +/// import 'firebase_options.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for web - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return android; + case TargetPlatform.iOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for ios - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.macOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for macos - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.windows: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for windows - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); + } + } + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyDFcAakxrfNnQsARzoFKAKhohW_-nMn-CE', + appId: '1:101217440706:android:a9c09bb6b54d47d08b7c5b', + messagingSenderId: '101217440706', + projectId: 'finnfloww', + storageBucket: 'finnfloww.firebasestorage.app', + ); +} diff --git a/flutter_application_1/lib/main.dart b/flutter_application_1/lib/main.dart index 05ce364f3..f69ad18f9 100644 --- a/flutter_application_1/lib/main.dart +++ b/flutter_application_1/lib/main.dart @@ -1,4 +1,5 @@ +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/view/analytics/analytics_view.dart'; import 'package:flutter_application_1/components/view/expenses/expenses_view.dart'; @@ -6,7 +7,9 @@ import 'package:flutter_application_1/components/view/main_screeen.dart'; import 'package:flutter_application_1/components/view/settings/settings.dart'; import 'package:flutter_application_1/components/view/splash_screen.dart'; -void main() { +Future main() async { + WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp(); Widget myApp = MaterialApp( debugShowCheckedModeBanner: false, initialRoute: "/", diff --git a/flutter_application_1/lib/service/notification_service.dart b/flutter_application_1/lib/service/notification_service.dart new file mode 100644 index 000000000..6f07ab491 --- /dev/null +++ b/flutter_application_1/lib/service/notification_service.dart @@ -0,0 +1,143 @@ + +import 'dart:convert'; + +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; + +import '../data/appvalues.dart'; + +class NotificationService { + NotificationService._(); + static final NotificationService instance = NotificationService._(); + final FirebaseMessaging _fcm = FirebaseMessaging.instance; + final FlutterLocalNotificationsPlugin _localNotifications = + FlutterLocalNotificationsPlugin(); + + bool isFlutterNotificationInitialized = false; + + Future initialize(BuildContext context) async { + FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); + + try { + String? token = await _fcm.getToken(); + if (token != null) { + AppValues.fcm = token; + print("FCM Token: $token"); + } else { + print("FCM Token is null"); + } + } catch (e, stackTrace) { + print("Error obtaining FCM token: $e"); + } + await requestPermission(); + await _setupFlutterNotifications(context); + await _setupMessageHandlers(context); + } + + Future requestPermission() async { + final settings = await _fcm.requestPermission( + alert: true, + badge: true, + sound: true, + ); + print( + "Notification permission status: ${settings.authorizationStatus}"); + } + + Future _setupFlutterNotifications(BuildContext context) async { + if (isFlutterNotificationInitialized) { + print("Already it's initialized"); + return; + } + + const channel = AndroidNotificationChannel( + 'finance_updates_channel', + 'finance Updates Channel', + description: 'This channel contains updates of finance in the application.', + importance: Importance.max, + ); + + await _localNotifications + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin>() + ?.createNotificationChannel(channel); + + const androidSettings = + AndroidInitializationSettings('@mipmap/ic_launcher'); + const initializationSettings = InitializationSettings( + android: androidSettings, + ); + + await _localNotifications.initialize( + initializationSettings, + onDidReceiveNotificationResponse: (response) async { + if (response.payload != null) { + print("From initialization"); + } + }, + ); + // await _checkInitialNotification(context); + + isFlutterNotificationInitialized = true; + } + + Future _setupMessageHandlers(BuildContext context) async { + FirebaseMessaging.onMessage.listen((message) { + print("Notification received"); + if (message.notification != null) { + showNotification(message); + } + }); + + FirebaseMessaging.onMessageOpenedApp.listen((message) { + if (message.data.isNotEmpty) { + + } + }); + + try { + // Check for initial message when app starts + RemoteMessage? initialMessage = await _fcm.getInitialMessage(); + + if (initialMessage != null) { + print("Initial message received when app was terminated"); + } + } catch (e, stackTrace) { + print("Error handling initial message: $e"); + } + } + + Future showNotification(RemoteMessage message) async { + final notification = message.notification; + if (notification == null) return; + + AndroidNotificationDetails androidDetails = AndroidNotificationDetails( + 'finance_updates_channel', + 'finance Updates Channel', + importance: Importance.max, + priority: Priority.high, + ); + + NotificationDetails details = NotificationDetails(android: androidDetails); + + await _localNotifications.show( + notification.hashCode, + notification.title, + notification.body, + details, + payload: jsonEncode(message.data), + ); + } + + +} + +@pragma('vm:entry-point') +Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { + print( + "Notification from the background handler function : ${message.data}"); + // await Firebase.initializeApp(); + // await NotificationService.instance._setupFlutterNotifications(); + // await NotificationService.instance.showMessage(message,"background"); +} \ No newline at end of file diff --git a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift index 14b5f7c7e..2f210df99 100644 --- a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,8 +5,18 @@ import FlutterMacOS import Foundation +import file_picker import file_selector_macos +import firebase_auth +import firebase_core +import firebase_messaging +import flutter_local_notifications func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) + FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) + FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) + FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin")) + FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) } diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock deleted file mode 100644 index a86f98aa6..000000000 --- a/flutter_application_1/pubspec.lock +++ /dev/null @@ -1,522 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - async: - dependency: transitive - description: - name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" - source: hosted - version: "2.11.0" - bloc: - dependency: "direct main" - description: - name: bloc - sha256: "52c10575f4445c61dd9e0cafcc6356fdd827c4c64dd7945ef3c4105f6b6ac189" - url: "https://pub.dev" - source: hosted - version: "9.0.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - characters: - dependency: transitive - description: - name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - clock: - dependency: transitive - description: - name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b - url: "https://pub.dev" - source: hosted - version: "1.1.2" - collection: - dependency: transitive - description: - name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.dev" - source: hosted - version: "1.19.1" - cross_file: - dependency: transitive - description: - name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" - 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" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons - sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 - url: "https://pub.dev" - source: hosted - version: "1.0.8" - 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: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" - url: "https://pub.dev" - source: hosted - version: "1.3.2" - file_selector_linux: - dependency: transitive - description: - name: file_selector_linux - sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" - url: "https://pub.dev" - source: hosted - version: "0.9.3+2" - file_selector_macos: - dependency: transitive - description: - name: file_selector_macos - sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc" - url: "https://pub.dev" - source: hosted - version: "0.9.4+2" - file_selector_platform_interface: - dependency: transitive - description: - name: file_selector_platform_interface - sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b - url: "https://pub.dev" - source: hosted - version: "2.6.2" - file_selector_windows: - dependency: transitive - description: - name: file_selector_windows - sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" - 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_picker: - dependency: "direct main" - description: - name: file_picker - sha256: "7423298f08f6fc8cce05792bae329f9a93653fc9c08712831b1a55540127995d" - url: "https://pub.dev" - source: hosted - version: "9.0.2" - file_selector_linux: - dependency: transitive - description: - name: file_selector_linux - sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" - url: "https://pub.dev" - source: hosted - version: "0.9.3+2" - file_selector_macos: - dependency: transitive - description: - name: file_selector_macos - sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc" - url: "https://pub.dev" - source: hosted - version: "0.9.4+2" - file_selector_platform_interface: - dependency: transitive - description: - name: file_selector_platform_interface - sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b - url: "https://pub.dev" - source: hosted - version: "2.6.2" - file_selector_windows: - dependency: transitive - description: - name: file_selector_windows - sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" - url: "https://pub.dev" - source: hosted - version: "0.9.3+4" - fl_chart: - dependency: "direct main" - description: - name: fl_chart - sha256: "5276944c6ffc975ae796569a826c38a62d2abcf264e26b88fa6f482e107f4237" - url: "https://pub.dev" - source: hosted - version: "0.70.2" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_bloc: - dependency: "direct main" - description: - name: flutter_bloc - sha256: "1046d719fbdf230330d3443187cc33cc11963d15c9089f6cc56faa42a4c5f0cc" - url: "https://pub.dev" - source: hosted - version: "9.1.0" - flutter_lints: - dependency: "direct dev" - description: - name: flutter_lints - sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" - url: "https://pub.dev" - source: hosted - version: "5.0.0" - flutter_plugin_android_lifecycle: - dependency: transitive - description: - name: flutter_plugin_android_lifecycle - sha256: "5a1e6fb2c0561958d7e4c33574674bda7b77caaca7a33b758876956f2902eea3" - url: "https://pub.dev" - source: hosted - version: "2.0.27" - flutter_spinkit: - dependency: "direct main" - description: - name: flutter_spinkit - sha256: d2696eed13732831414595b98863260e33e8882fc069ee80ec35d4ac9ddb0472 - url: "https://pub.dev" - source: hosted - version: "5.2.1" - 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" - 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_picker: - dependency: "direct main" - description: - name: image_picker - sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" - url: "https://pub.dev" - source: hosted - version: "1.1.2" - image_picker_android: - dependency: transitive - description: - name: image_picker_android - sha256: "8bd392ba8b0c8957a157ae0dc9fcf48c58e6c20908d5880aea1d79734df090e9" - url: "https://pub.dev" - source: hosted - version: "0.8.12+22" - image_picker_for_web: - dependency: transitive - description: - name: image_picker_for_web - sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" - url: "https://pub.dev" - source: hosted - version: "3.0.6" - image_picker_ios: - dependency: transitive - description: - name: image_picker_ios - sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100" - url: "https://pub.dev" - source: hosted - version: "0.8.12+2" - image_picker_linux: - dependency: transitive - description: - name: image_picker_linux - sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" - url: "https://pub.dev" - source: hosted - version: "0.2.1+1" - image_picker_macos: - dependency: transitive - description: - name: image_picker_macos - sha256: "1b90ebbd9dcf98fb6c1d01427e49a55bd96b5d67b8c67cf955d60a5de74207c1" - url: "https://pub.dev" - source: hosted - version: "0.2.1+2" - image_picker_platform_interface: - dependency: transitive - description: - name: image_picker_platform_interface - sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0" - url: "https://pub.dev" - source: hosted - version: "2.10.1" - image_picker_windows: - dependency: transitive - description: - name: image_picker_windows - sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" - url: "https://pub.dev" - source: hosted - version: "0.2.1+1" - 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: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec - url: "https://pub.dev" - source: hosted - version: "10.0.8" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 - url: "https://pub.dev" - source: hosted - version: "3.0.9" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - 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: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 - url: "https://pub.dev" - source: hosted - version: "0.12.17" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec - url: "https://pub.dev" - source: hosted - version: "0.11.1" - meta: - dependency: transitive - description: - name: meta - sha256: 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: "1.16.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" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "1.9.1" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "2.1.8" - provider: - dependency: transitive - description: - name: provider - sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c - url: "https://pub.dev" - source: hosted - version: "6.1.2" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" - url: "https://pub.dev" - source: hosted - version: "1.10.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" - url: "https://pub.dev" - source: hosted - version: "1.12.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" - url: "https://pub.dev" - source: hosted - version: "1.4.1" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" - url: "https://pub.dev" - source: hosted - version: "1.2.2" - test_api: - dependency: transitive - description: - name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd - url: "https://pub.dev" - source: hosted - version: "0.7.3" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - 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: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" - 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" -sdks: - dart: ">=3.6.1 <4.0.0" - flutter: ">=3.27.0" diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml index 3954a8d41..c7ba8a629 100644 --- a/flutter_application_1/pubspec.yaml +++ b/flutter_application_1/pubspec.yaml @@ -42,6 +42,10 @@ dependencies: image_picker: ^1.1.2 http: ^1.3.0 file_picker: ^9.0.2 + firebase_core: ^3.12.1 + firebase_auth: ^5.5.1 + firebase_messaging: ^15.2.4 + flutter_local_notifications: ^18.0.1 dev_dependencies: flutter_test: diff --git a/flutter_application_1/windows/flutter/generated_plugin_registrant.cc b/flutter_application_1/windows/flutter/generated_plugin_registrant.cc index 77ab7a09a..5861e0f0e 100644 --- a/flutter_application_1/windows/flutter/generated_plugin_registrant.cc +++ b/flutter_application_1/windows/flutter/generated_plugin_registrant.cc @@ -7,8 +7,14 @@ #include "generated_plugin_registrant.h" #include +#include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); + FirebaseAuthPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi")); + FirebaseCorePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); } diff --git a/flutter_application_1/windows/flutter/generated_plugins.cmake b/flutter_application_1/windows/flutter/generated_plugins.cmake index a423a0247..ce851e9de 100644 --- a/flutter_application_1/windows/flutter/generated_plugins.cmake +++ b/flutter_application_1/windows/flutter/generated_plugins.cmake @@ -4,6 +4,8 @@ list(APPEND FLUTTER_PLUGIN_LIST file_selector_windows + firebase_auth + firebase_core ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 6c64824ec5ccab4e94a73351ca617b210280ad58 Mon Sep 17 00:00:00 2001 From: Pra_Kas Date: Sun, 9 Mar 2025 00:38:32 +0530 Subject: [PATCH 12/24] ChatBot in the expense page --- .../android/gradle.properties | 2 +- .../bloc/expenses_bloc/expenses_bloc.dart | 145 +--------- .../bloc/expenses_bloc/expenses_event.dart | 10 + .../bloc/expenses_bloc/expenses_state.dart | 12 + .../view/expenses/expenses_view.dart | 255 ++++++++++++++---- .../lib/service/expense_service.dart | 21 ++ .../Flutter/GeneratedPluginRegistrant.swift | 2 + flutter_application_1/pubspec.lock | 108 ++------ 8 files changed, 281 insertions(+), 274 deletions(-) diff --git a/flutter_application_1/android/gradle.properties b/flutter_application_1/android/gradle.properties index 692013121..4f5d1e015 100644 --- a/flutter_application_1/android/gradle.properties +++ b/flutter_application_1/android/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true -org.gradle.java.home= /usr/lib/jvm/java-17-openjdk-amd64 \ No newline at end of file +org.gradle.java.home= C:/Program Files/Java/jdk-17 \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart index 05370884b..d8bff1238 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart @@ -16,142 +16,21 @@ class ExpensesBloc extends Bloc { on (expensesInitialEvent); on(expenseImagePickedEvent); on(expensePdfPickedEvent); + on(expenseChoiceShipSelectedEvent); + on(expensechatBotEvent); } + Future expensechatBotEvent(ExpensechatBotEvent event, Emitter emit) async { + emit(ExpenseChatBotLoadingState()); + String message = await getChatBotResponse(event.message); + emit(ExpenseChatBotLoadedState(message)); + } + + + Future expenseChoiceShipSelectedEvent(ExpenseChoiceShipSelectedEvent event, Emitter emit) async { + emit(ExpenseChoiceShipSelected(event.choiceShip)); + } - // List> expenseList = [ - // { - // "expense_title": "Groceries", - // "amount_spent": 1200, - // "category": "Food", - // "date_time": "2025-03-08T14:30:00", - // "payment_method": "UPI", - // "merchant_name": "Big Bazaar", - // "tags": ["essentials", "monthly"], - // "items": [ - // {"amountSpent": 500, "title": "Vegetables"}, - // {"amountSpent": 300, "title": "Dairy Products"}, - // {"amountSpent": 400, "title": "Snacks"} - // ] - // }, - // { - // "expense_title": "Electricity Bill", - // "amount_spent": 2500, - // "category": "Utilities", - // "date_time": "2025-03-07T10:00:00", - // "payment_method": "Credit Card", - // "merchant_name": "State Electricity Board", - // "tags": ["monthly", "bills"], - // "items": [ - // {"amountSpent": 2.99, "title": "Ut wisi enim"}, - // {"amountSpent": 1.3, "title": "Nibh euismod"}, - // {"amountSpent": 17, "title": "Rdol magna"}, - // {"amountSpent": 6.99, "title": "Mnonuy nibh"}, - // {"amountSpent": 1.2, "title": "Kaoreet dolore"}, - // {"amountSpent": 5.1, "title": "Taliquam erat"}, - // {"amountSpent": 10, "title": "Aeuismod"}, - // {"amountSpent": 4.99, "title": "Knonuy nib"} - // ] - // }, - // { - // "expense_title": "Uber Ride", - // "amount_spent": 350, - // "category": "Transport", - // "date_time": "2025-03-06T18:45:00", - // "payment_method": "Debit Card", - // "merchant_name": "Uber", - // "tags": ["travel", "daily commute"], - // "items": [ - // {"amountSpent": 350, "title": "Ride Fare"} - // ] - // }, - // { - // "expense_title": "Movie Tickets", - // "amount_spent": 800, - // "category": "Entertainment", - // "date_time": "2025-03-05T20:00:00", - // "payment_method": "UPI", - // "merchant_name": "PVR Cinemas", - // "tags": ["leisure", "weekend"], - // "items": [ - // {"amountSpent": 400, "title": "Ticket 1"}, - // {"amountSpent": 400, "title": "Ticket 2"} - // ] - // }, - // { - // "expense_title": "Coffee", - // "amount_spent": 150, - // "category": "Food", - // "date_time": "2025-03-04T09:30:00", - // "payment_method": "Cash", - // "merchant_name": "Starbucks", - // "tags": ["snack", "morning"], - // "items": [ - // {"amountSpent": 150, "title": "Latte"} - // ] - // }, - // { - // "expense_title": "Gym Membership", - // "amount_spent": 3000, - // "category": "Fitness", - // "date_time": "2025-03-03T12:00:00", - // "payment_method": "Credit Card", - // "merchant_name": "Gold's Gym", - // "tags": ["health", "monthly"], - // "items": [ - // {"amountSpent": 3000, "title": "Monthly Subscription"} - // ] - // }, - // { - // "expense_title": "Online Shopping", - // "amount_spent": 4500, - // "category": "Shopping", - // "date_time": "2025-03-02T15:20:00", - // "payment_method": "Debit Card", - // "merchant_name": "Amazon", - // "tags": ["clothes", "electronics"], - // "items": [ - // {"amountSpent": 2000, "title": "T-shirt"}, - // {"amountSpent": 2500, "title": "Headphones"} - // ] - // }, - // { - // "expense_title": "Dinner at Restaurant", - // "amount_spent": 1800, - // "category": "Food", - // "date_time": "2025-03-01T21:00:00", - // "payment_method": "UPI", - // "merchant_name": "Barbeque Nation", - // "tags": ["weekend", "dining"], - // "items": [ - // {"amountSpent": 1800, "title": "Buffet Dinner"} - // ] - // }, - // { - // "expense_title": "Mobile Recharge", - // "amount_spent": 399, - // "category": "Utilities", - // "date_time": "2025-02-28T08:00:00", - // "payment_method": "Credit Card", - // "merchant_name": "Jio", - // "tags": ["monthly", "phone"], - // "items": [ - // {"amountSpent": 399, "title": "Jio Recharge Plan"} - // ] - // }, - // { - // "expense_title": "Book Purchase", - // "amount_spent": 1200, - // "category": "Education", - // "date_time": "2025-02-27T17:30:00", - // "payment_method": "Debit Card", - // "merchant_name": "Flipkart", - // "tags": ["learning", "study"], - // "items": [ - // {"amountSpent": 1200, "title": "Data Structures Book"} - // ] - // } - // ]; Future expensePdfPickedEvent(ExpensePdfPickedEvent event, Emitter emit)async{ emit(ExpensePdfProcessingState()); diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart index 1c9747e24..fa701dcaf 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_event.dart @@ -12,4 +12,14 @@ class ExpenseImagePickedEvent extends ExpensesEvent { class ExpensePdfPickedEvent extends ExpensesEvent { final FilePickerResult pdf; ExpensePdfPickedEvent(this.pdf); +} + +class ExpenseChoiceShipSelectedEvent extends ExpensesEvent { + final String choiceShip; + ExpenseChoiceShipSelectedEvent(this.choiceShip); +} + +class ExpensechatBotEvent extends ExpensesEvent { + final String message; + ExpensechatBotEvent(this.message); } \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart index 765bc18a3..82083aaa2 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart @@ -29,3 +29,15 @@ class ExpensePdfProcessedState extends ExpensesActionState { List> expenses; ExpensePdfProcessedState(this.expenses); } + +class ExpenseChoiceShipSelected extends ExpensesActionState { + final String choiceShip; + ExpenseChoiceShipSelected(this.choiceShip); +} + +class ExpenseChatBotLoadingState extends ExpensesActionState {} + +class ExpenseChatBotLoadedState extends ExpensesActionState { + final String message; + ExpenseChatBotLoadedState(this.message); +} diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 1c51dd078..3dae92f4d 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/models/expense_model.dart'; @@ -19,7 +21,7 @@ class ExpensesView extends StatefulWidget { class _ExpensesViewState extends State { bool initialLoading = true; - List> expenses = []; + List> expenses = []; ExpensesBloc expensesBloc = ExpensesBloc(); @override @@ -47,10 +49,13 @@ class _ExpensesViewState extends State { } }, builder: (context, state) { - if(state is ExpensesImageProcessingState || state is ExpensePdfProcessingState){ - return SpinKitCircle(color: primary,); + if (state is ExpensesImageProcessingState || + state is ExpensePdfProcessingState) { + return SpinKitCircle( + color: primary, + ); } - if(state is ExpenseImageProcessedState){ + if (state is ExpenseImageProcessedState) { expenses = state.expenses; } return Scaffold( @@ -63,47 +68,72 @@ class _ExpensesViewState extends State { ), leading: SizedBox(), ), - floatingActionButton: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ + floatingActionButton: + Column(mainAxisAlignment: MainAxisAlignment.end, children: [ ElevatedButton( onPressed: () { showModalBottomSheet( - isScrollControlled: true, - context: context, builder: (BuildContext context){ - return Wrap( - children: [ - ListTile( - title: Center(child: Text("Add Expense",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), - onTap: (){ - Navigator.push(context, MaterialPageRoute(builder: (context) => EditExpenseScreen(expenseData: {}, isEdit: false,))); - }, - ), - ListTile( - title: Center(child: Text("Upload Image",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), - onTap: () async{ - final value = await ImagePicker().pickImage(source: ImageSource.gallery); - if(value != null){ - expensesBloc.add(ExpenseImagePickedEvent(value)); - Navigator.pop(context); - print(value.path); - } - }, - ), - ListTile( - title: Center(child: Text("Upload pdf",style: TextStyle(color: Colors.grey,fontFamily: "medium"),)), - onTap: () async{ - final value = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['pdf']); - if(value != null){ - expensesBloc.add(ExpensePdfPickedEvent(value)); - print(value); - Navigator.pop(context); - } - }, - ), - ], - ); - }); + isScrollControlled: true, + context: context, + builder: (BuildContext context) { + return Wrap( + children: [ + ListTile( + title: Center( + child: Text( + "Add Expense", + style: TextStyle( + color: Colors.grey, fontFamily: "medium"), + )), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => EditExpenseScreen( + expenseData: {}, + isEdit: false, + ))); + }, + ), + ListTile( + title: Center( + child: Text( + "Upload Image", + style: TextStyle( + color: Colors.grey, fontFamily: "medium"), + )), + onTap: () async { + final value = await ImagePicker() + .pickImage(source: ImageSource.gallery); + if (value != null) { + expensesBloc + .add(ExpenseImagePickedEvent(value)); + Navigator.pop(context); + print(value.path); + } + }, + ), + ListTile( + title: Center( + child: Text( + "Upload pdf", + style: TextStyle( + color: Colors.grey, fontFamily: "medium"), + )), + onTap: () async { + final value = await FilePicker.platform.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf']); + if (value != null) { + expensesBloc.add(ExpensePdfPickedEvent(value)); + print(value); + Navigator.pop(context); + } + }, + ), + ], + ); + }); }, style: ElevatedButton.styleFrom( backgroundColor: white, @@ -120,7 +150,15 @@ class _ExpensesViewState extends State { SizedBox(height: 20), ElevatedButton( onPressed: () { - + showModalBottomSheet( + context: context, + useSafeArea: true, + isScrollControlled: true, + builder: (BuildContext context) { + return chatBotBottomSheet( + expensesBloc: expensesBloc, + ); + }); }, style: ElevatedButton.styleFrom( backgroundColor: white, @@ -141,27 +179,128 @@ class _ExpensesViewState extends State { ); } - Widget bodyPartOfExpensesView(List> expenses) { + Widget bodyPartOfExpensesView(List> expenses) { return initialLoading ? Center( child: SpinKitCircle( color: primary, )) : ListView.builder( - physics: const AlwaysScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: expenses.length, - itemBuilder: (context, index) { - return ExpenseCard( - expenseTitle: expenses[index]["expense_title"], - amountSpent: expenses[index]["amount_spent"], - category: expenses[index]["category"], - dateTime: expenses[index]["date_time"], - paymentMethod: expenses[index]["payment_method"], - merchantName: expenses[index]["merchant_name"], - expenseData: expenses[index], - ); - }, + physics: const AlwaysScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: expenses.length, + itemBuilder: (context, index) { + return ExpenseCard( + expenseTitle: expenses[index]["expense_title"], + amountSpent: expenses[index]["amount_spent"], + category: expenses[index]["category"], + dateTime: expenses[index]["date_time"], + paymentMethod: expenses[index]["payment_method"], + merchantName: expenses[index]["merchant_name"], + expenseData: expenses[index], + ); + }, + ); + } +} + +class chatBotBottomSheet extends StatelessWidget { + final ExpensesBloc expensesBloc; + chatBotBottomSheet({ + required this.expensesBloc, + super.key, + }); + + String? selectedChip; + final _controller = TextEditingController(); + @override + Widget build(BuildContext context) { + List chipLabels = [ + "Financial Insights", + "Budgeting Assistance", + "Expense Tracking", + "Others" + ]; + + return Padding( + padding: const EdgeInsets.all(8.0), + child: BlocBuilder( + bloc: expensesBloc, + builder: (context, state) { + if (state is ExpenseChoiceShipSelected) { + selectedChip = state.choiceShip; + } + + List columnValues = [ + const SizedBox(height: 20), + Text( + "How can I help you ???", + style: TextStyle(fontFamily: "medium", fontSize: 20), + ), + const SizedBox(height: 20), + if (selectedChip == "Others") + Padding( + padding: const EdgeInsets.all(8.0), + child: TextField( + controller: _controller, + decoration: InputDecoration( + suffixIcon: IconButton( + icon: Icon(Icons.send), + onPressed: () { + if( (_controller.text.isNotEmpty)) { + expensesBloc + .add(ExpensechatBotEvent(_controller.text)); + } + }), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: primary, width: 0.5), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: primary, width: 0.5), + ), + border: InputBorder.none, + hintText: "Type your message here", + hintStyle: TextStyle(fontFamily: "medium"), + prefixIcon: Icon(Icons.info), + ), + ), + ), + const SizedBox(height: 20), + Wrap( + children: chipLabels.map((label) { + return ChoiceChip( + selected: selectedChip == label, + label: Text(label), + onSelected: (value) { + if (selectedChip == label) { + selectedChip = null; + } else { + if (label != "Others") + expensesBloc.add(ExpensechatBotEvent(label)); + selectedChip = label; + } + expensesBloc.add( + ExpenseChoiceShipSelectedEvent(selectedChip ?? "")); + }, + ); + }).toList(), + ), + ]; + if (state is ExpenseChatBotLoadedState) { + columnValues.add(Card( + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Text(state.message), + ))); + } + if (state is ExpenseChatBotLoadingState) { + columnValues.add(SpinKitCircle( + color: primary, + )); + } + return Column(children: columnValues); + }, + ), ); } } diff --git a/flutter_application_1/lib/service/expense_service.dart b/flutter_application_1/lib/service/expense_service.dart index e1c3f03a0..21ea72e1f 100644 --- a/flutter_application_1/lib/service/expense_service.dart +++ b/flutter_application_1/lib/service/expense_service.dart @@ -75,4 +75,25 @@ Future>> getExpenses() async { print("Error: $e"); } return []; +} + +Future getChatBotResponse(String message) async { + try { + var response = await http.post( + Uri.parse("${AppValues.ip}botQuery"), + body: {"botQuery": message}, + ); + var decodedResponse = jsonDecode(response.body); + if (decodedResponse["status"] == 200) { + return jsonDecode(response.body)["answer"]; + } + else if(decodedResponse["status"] == 404){ + return decodedResponse["message"]; + } + else { + return "Error: ${response.statusCode} - ${response.body}"; + } + } catch (e) { + return "Error: $e"; + } } \ No newline at end of file diff --git a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift index 14b5f7c7e..10496c22d 100644 --- a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,8 +5,10 @@ import FlutterMacOS import Foundation +import file_picker import file_selector_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) } diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index a86f98aa6..e03f94272 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -21,39 +21,31 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.1" characters: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.3.0" clock: dependency: transitive description: name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" collection: dependency: transitive description: name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.dev" - source: hosted - version: "1.19.1" - cross_file: - dependency: transitive - description: - name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted version: "1.19.0" @@ -85,39 +77,7 @@ packages: dependency: transitive description: name: fake_async - sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" - url: "https://pub.dev" - source: hosted - version: "1.3.2" - file_selector_linux: - dependency: transitive - description: - name: file_selector_linux - sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" - url: "https://pub.dev" - source: hosted - version: "0.9.3+2" - file_selector_macos: - dependency: transitive - description: - name: file_selector_macos - sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc" - url: "https://pub.dev" - source: hosted - version: "0.9.4+2" - file_selector_platform_interface: - dependency: transitive - description: - name: file_selector_platform_interface - sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b - url: "https://pub.dev" - source: hosted - version: "2.6.2" - file_selector_windows: - dependency: transitive - description: - name: file_selector_windows - sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" url: "https://pub.dev" source: hosted version: "1.3.1" @@ -316,18 +276,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.8" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -348,10 +308,10 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: @@ -368,14 +328,6 @@ packages: 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: "1.16.0" mime: dependency: transitive description: @@ -400,14 +352,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.0" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "1.9.1" plugin_platform_interface: dependency: transitive description: @@ -433,47 +377,47 @@ packages: dependency: transitive description: name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.10.1" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.12.1" + version: "1.12.0" stream_channel: dependency: transitive description: name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.3.0" term_glyph: dependency: transitive description: name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted version: "0.7.3" @@ -497,7 +441,7 @@ packages: dependency: transitive description: name: vm_service - sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted version: "14.3.0" From 36adbc11b764be48865a6c691f1de853a60c8a93 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 01:27:30 +0530 Subject: [PATCH 13/24] 1. analytics completed. 2. login page and settings page. 3. firebae integration completed --- .../AnalyticsBloc/analytics_bloc_bloc.dart | 56 ++- .../AnalyticsBloc/analytics_bloc_event.dart | 10 +- .../AnalyticsBloc/analytics_bloc_state.dart | 30 +- .../lib/components/view/Auth/login_view.dart | 237 +++++++++++ .../view/analytics/analytics_view.dart | 373 ++++++++++++++---- .../view/expenses/expenses_view.dart | 1 + .../lib/components/view/main_screeen.dart | 2 +- .../components/view/settings/settings.dart | 226 ++++++++++- .../lib/components/view/splash_screen.dart | 45 ++- flutter_application_1/lib/data/appvalues.dart | 1 + flutter_application_1/lib/main.dart | 2 +- .../lib/service/helper/global_service.dart | 3 +- .../Flutter/GeneratedPluginRegistrant.swift | 2 + flutter_application_1/pubspec.yaml | 1 + 14 files changed, 889 insertions(+), 100 deletions(-) create mode 100644 flutter_application_1/lib/components/view/Auth/login_view.dart diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart index 01bacb58f..de9d17ff0 100644 --- a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart @@ -1,5 +1,6 @@ import 'dart:math'; import 'package:bloc/bloc.dart'; +import 'package:flutter_application_1/service/helper/global_service.dart'; import 'package:meta/meta.dart'; part 'analytics_bloc_event.dart'; @@ -8,16 +9,63 @@ part 'analytics_bloc_state.dart'; class AnalyticsBlocBloc extends Bloc { AnalyticsBlocBloc() : super(AnalyticsBlocInitial()) { on(analyticsLoadEvent); + on(analyticsMonthSelectedEvent); } Future analyticsLoadEvent( AnalyticsLoadEvent event, Emitter emit) async { emit(AnalyticsLoadingState()); + Map response = await GlobalService.globalService(endpoint: "getPrevYear", method: "GET"); + if (response["status"] == false) { + return ; + } + Map data = Map.from(response["message"]); + // Generate random expense data for months + List xList = List.from(data['xList']); + List yList = List.from(data['yList']); + String xTitle = data['xTitle']; + String yTitle = data['yTitle']; - // Generate random expense data - List xList = List.generate(12, (index) => index); - List yList = List.generate(12, (index) => Random().nextInt(5000) + 1000); + // Parse weekly data + Map> weeklyExpense = {}; + Map> weeklyIncome = {}; + Map> weeklyData = {}; // For chart - emit(AnalyticsLoadedState(xList, yList, "Months", "Expense (₹)")); + Map weeklyDataMap = data['weeklyData']; + weeklyDataMap.forEach((month, monthData) { + int monthIndex = int.parse(month); + weeklyExpense[monthIndex] = List.from(monthData['expense']); + weeklyIncome[monthIndex] = List.from(monthData['income']); + weeklyData[monthIndex] = List.from(monthData['expense']); + }); + + emit(AnalyticsLoadedState( + xList: xList, + yList: yList, + xTitle: xTitle, + yTitle: yTitle, + weeklyData: weeklyData, + weeklyExpense: weeklyExpense, + weeklyIncome: weeklyIncome, + selectedMonth: data['selectedMonth'] ?? -1 + )); + } + + Future analyticsMonthSelectedEvent( + AnalyticsMonthSelectedEvent event, Emitter emit) async { + if (state is AnalyticsLoadedState) { + final currentState = state as AnalyticsLoadedState; + + emit(AnalyticsLoadedState( + xList: currentState.xList, + yList: currentState.yList, + xTitle: currentState.xTitle, + yTitle: currentState.yTitle, + weeklyData: currentState.weeklyData, + weeklyExpense: currentState.weeklyExpense, + weeklyIncome: currentState.weeklyIncome, + selectedMonth: event.monthIndex + )); + } } } \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart index 674ebc5cc..5f98cd435 100644 --- a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart @@ -1,6 +1,12 @@ part of 'analytics_bloc_bloc.dart'; @immutable -sealed class AnalyticsBlocEvent {} +abstract class AnalyticsBlocEvent {} -class AnalyticsLoadEvent extends AnalyticsBlocEvent {} \ No newline at end of file +class AnalyticsLoadEvent extends AnalyticsBlocEvent {} + +class AnalyticsMonthSelectedEvent extends AnalyticsBlocEvent { + final int monthIndex; + + AnalyticsMonthSelectedEvent(this.monthIndex); +} \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart index 1839d0b00..d3b87f4c5 100644 --- a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart @@ -1,18 +1,30 @@ part of 'analytics_bloc_bloc.dart'; @immutable -sealed class AnalyticsBlocState {} +abstract class AnalyticsBlocState {} -final class AnalyticsBlocInitial extends AnalyticsBlocState {} +class AnalyticsBlocInitial extends AnalyticsBlocState {} class AnalyticsLoadingState extends AnalyticsBlocState {} class AnalyticsLoadedState extends AnalyticsBlocState { - ListxList; - ListyList; - String xTitle; - String yTitle; - AnalyticsLoadedState(this.xList, this.yList, this.xTitle, this.yTitle); -} + final List xList; + final List yList; + final String xTitle; + final String yTitle; + final Map> weeklyData; + final Map> weeklyExpense; + final Map> weeklyIncome; + final int selectedMonth; -class AnalyticsLoadFailedState extends AnalyticsBlocState {} + AnalyticsLoadedState({ + required this.xList, + required this.yList, + required this.xTitle, + required this.yTitle, + required this.weeklyData, + required this.weeklyExpense, + required this.weeklyIncome, + required this.selectedMonth + }); +} diff --git a/flutter_application_1/lib/components/view/Auth/login_view.dart b/flutter_application_1/lib/components/view/Auth/login_view.dart new file mode 100644 index 000000000..a74d0eec0 --- /dev/null +++ b/flutter_application_1/lib/components/view/Auth/login_view.dart @@ -0,0 +1,237 @@ +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/view/main_screeen.dart'; +import 'package:flutter_application_1/data/appvalues.dart'; +import 'package:google_sign_in/google_sign_in.dart'; + +class LoginPage extends StatelessWidget { + const LoginPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: SafeArea( + child: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 60), + + // App logo + Container( + height: 100, + width: 100, + decoration: BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.circular(20), + ), + child: const Icon( + Icons.account_balance_wallet, + color: Colors.white, + size: 60, + ), + ), + + const SizedBox(height: 30), + + // App title + const Text( + "FinTrack", + style: TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + color: Colors.blue, + ), + ), + + const SizedBox(height: 10), + + // App tagline + const Text( + "Your personal finance companion", + style: TextStyle( + fontSize: 16, + color: Colors.grey, + ), + textAlign: TextAlign.center, + ), + + const SizedBox(height: 50), + + // Welcome message + Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.blue.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + ), + child: Column( + children: [ + const Text( + "Welcome!", + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.blue, + ), + ), + const SizedBox(height: 16), + const Text( + "Sign in with your Google account to access intelligent financial insights, track your expenses, and manage your money effortlessly.", + style: TextStyle(fontSize: 16, color: Colors.black87), + textAlign: TextAlign.center, + ), + ], + ), + ), + + const SizedBox(height: 40), + + // Features section + Row( + children: [ + Expanded( + child: _buildFeatureItem( + Icons.insights, + "Personalized financial insights" + ), + ), + ], + ), + const SizedBox(height: 16), + Row( + children: [ + Expanded( + child: _buildFeatureItem( + Icons.track_changes, + "Smart budgeting & expense tracking" + ), + ), + ], + ), + const SizedBox(height: 16), + Row( + children: [ + Expanded( + child: _buildFeatureItem( + Icons.auto_awesome, + "AI-powered financial recommendations" + ), + ), + ], + ), + + const SizedBox(height: 60), + + // Google Sign in button + ElevatedButton( + onPressed: () { + // Implement Google Sign-in functionality + _handleGoogleSignIn(context); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.white, + foregroundColor: Colors.black87, + elevation: 2, + padding: const EdgeInsets.symmetric(vertical: 16), + minimumSize: const Size(double.infinity, 50), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + side: BorderSide(color: Colors.grey.shade300), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.network( + 'https://th.bing.com/th/id/OIP.JflGW8e1fT4_ttSuFTQXJwHaHj?rs=1&pid=ImgDetMain', + height: 24, + width: 24, + ), + const SizedBox(width: 12), + const Text( + "Sign in with Google", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + + const SizedBox(height: 16), + ], + ), + ), + ), + ), + ); + } + + Widget _buildFeatureItem(IconData icon, String text) { + return Row( + children: [ + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.blue.withOpacity(0.1), + borderRadius: BorderRadius.circular(8), + ), + child: Icon(icon, color: Colors.blue, size: 20), + ), + const SizedBox(width: 16), + Expanded( + child: Text( + text, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ); + } + + Future _handleGoogleSignIn(BuildContext context) async { + + // TODO: Implement actual Google Sign In + // You would use a package like firebase_auth and google_sign_in + // Example implementation: + // + try { + final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn(); + final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication; + final credential = GoogleAuthProvider.credential( + accessToken: googleAuth?.accessToken, + idToken: googleAuth?.idToken, + ); + await FirebaseAuth.instance.signInWithCredential(credential); + String? jwtToken = await FirebaseAuth.instance.currentUser?.getIdToken(); + if (jwtToken == null) { + throw Exception('Failed to get JWT token'); + } + AppValues.jwtToken = jwtToken; + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const MainScreen()), + (Route route) => false, + ); + } catch (e) { + print("Error in google sign in $e"); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Sign-in failed. Please try again.')), + ); + } + + if (AppValues.jwtToken == "") { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Sign-in failed. Please try again.')), + ); + } + } +} \ No newline at end of file diff --git a/flutter_application_1/lib/components/view/analytics/analytics_view.dart b/flutter_application_1/lib/components/view/analytics/analytics_view.dart index dc7605d57..0eac32577 100644 --- a/flutter_application_1/lib/components/view/analytics/analytics_view.dart +++ b/flutter_application_1/lib/components/view/analytics/analytics_view.dart @@ -1,7 +1,10 @@ import 'package:flutter/material.dart'; import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter_application_1/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import '../../bloc/AnalyticsBloc/analytics_bloc_bloc.dart'; + +import '../../../theme/colors.dart'; +import '../../utils/helper/styles.dart'; class AnalyticsView extends StatefulWidget { const AnalyticsView({super.key}); @@ -12,32 +15,66 @@ class AnalyticsView extends StatefulWidget { class _AnalyticsViewState extends State with TickerProviderStateMixin { - final analyticsBloc = AnalyticsBlocBloc(); - int selectedMonthIndex = 0; List xAxis = []; + List month = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ]; + List barTouchData = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ]; List yAxis = []; String xTitle = ""; String yTitle = ""; - - List months = [ - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" - ]; + late TabController tabController; + final analyticsBlocBloc = AnalyticsBlocBloc(); + int selectedMonth = -1; @override void initState() { + tabController = TabController(length: 2, vsync: this); + analyticsBlocBloc.add(AnalyticsLoadEvent()); + barTouchData = month; super.initState(); - analyticsBloc.add(AnalyticsLoadEvent()); } @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: const Text('Analytics')), + appBar: AppBar( + title: Text( + 'Analytics', + style: AppStyles.setAppStyle(black, 20, FontWeight.bold, 'black'), + ), + centerTitle: true, + forceMaterialTransparency: true, + leading: SizedBox(), + ), body: Padding( padding: const EdgeInsets.all(8.0), child: BlocBuilder( - bloc: analyticsBloc, + bloc: analyticsBlocBloc, builder: (context, state) { if (state is AnalyticsLoadingState) { return const Center(child: CircularProgressIndicator()); @@ -47,36 +84,95 @@ class _AnalyticsViewState extends State yAxis = state.yList; xTitle = state.xTitle; yTitle = state.yTitle; - } + selectedMonth = state.selectedMonth; - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - // Month Selector - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - children: List.generate(12, (index) { - return monthlyExpenseContainer( - month: months[index], - expense: yAxis[index], - isSelected: selectedMonthIndex == index, - onTap: () { - setState(() { - selectedMonthIndex = index; - }); - }, - ); - }), - ), + return SingleChildScrollView( + scrollDirection: Axis.vertical, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + for (int i = 0; i < 12; i++) + monthlyExpenseContainer( + value: state.yList[i], + month: month[i], + expense: state.yList[i], + income: state.yList[i] + 500, + index: i, + isSelected: selectedMonth == i, + onTap: () { + analyticsBlocBloc.add(AnalyticsMonthSelectedEvent(i)); + } + ) + ], + ), + ), + const SizedBox(height: 20), + + // Show weekly data if a month is selected, otherwise show monthly data + if (selectedMonth >= 0) ...[ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('${month[selectedMonth]} Weekly Analytics', + style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + Expanded( + child: TextButton( + onPressed: () { + analyticsBlocBloc.add(AnalyticsMonthSelectedEvent(-1)); + }, + child: const Text('Back to Monthly View',style: TextStyle(overflow: TextOverflow.ellipsis),), + ), + ), + ], + ), + const SizedBox(height: 20), + weeklyExpenseGraph( + context, + List.generate(4, (index) => index), + state.weeklyData[selectedMonth] ?? [], + "Weeks", + "Weekly Amount", + selectedMonth + ), + const SizedBox(height: 20), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + for (int i = 0; i < 4; i++) + weeklyDetailContainer( + week: "Week ${i + 1}", + expense: state.weeklyExpense[selectedMonth]?[i] ?? 0, + income: state.weeklyIncome[selectedMonth]?[i] ?? 0, + ) + ], + ), + ), + ] else ...[ + const Text('Expense Graphs', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + const SizedBox(height: 20), + expenseGraph(context, xAxis, yAxis, xTitle, yTitle, month), + ], + + // const SizedBox(height: 20), + // TabBar( + // controller: tabController, + // dividerColor: Colors.transparent, + // tabs: const [ + // Tab(child: Text("Expenses")), + // Tab(child: Text("Stocks")) + // ] + // ), + ], ), - const SizedBox(height: 20), - const Text('Expense Graphs', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), - const SizedBox(height: 20), - // Expense Graph - expenseGraph(context, xAxis, yAxis, xTitle, yTitle,months), - ], - ); + ); + } + return const Center(child: Text("No data available")); }, ), ), @@ -84,29 +180,45 @@ class _AnalyticsViewState extends State } } -// Monthly Expense Container Widget Widget monthlyExpenseContainer({ + required int value, required String month, required int expense, + required int income, + required int index, required bool isSelected, - required VoidCallback onTap, + required VoidCallback onTap }) { return GestureDetector( onTap: onTap, child: Card( color: isSelected ? Colors.blue[100] : Colors.grey[200], - margin: const EdgeInsets.symmetric(horizontal: 4), + elevation: isSelected ? 4 : 1, child: Padding( - padding: const EdgeInsets.all(12.0), + padding: const EdgeInsets.all(18.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(month, style: const TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(height: 5), - Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - const Text('Expense:'), - Text('₹$expense', style: const TextStyle(fontWeight: FontWeight.bold)), - ]), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text('Expense'), + Text('₹$expense'), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text('Income'), + Text('₹$income'), + ], + ), + if (isSelected) + const Padding( + padding: EdgeInsets.only(top: 8.0), + child: Text('Tap to view weekly', style: TextStyle(fontSize: 12, color: Colors.blue)), + ), ], ), ), @@ -114,12 +226,56 @@ Widget monthlyExpenseContainer({ ); } -// Expense Graph Widget -Widget expenseGraph(BuildContext context, List xList, List yList, String xTitle, String yTitle, List months) { +Widget weeklyDetailContainer({ + required String week, + required int expense, + required int income, +}) { + return Card( + color: Colors.grey[200], + child: Padding( + padding: const EdgeInsets.all(18.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(week, style: const TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 8), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text('Expense'), + Text('₹$expense'), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text('Income'), + Text('₹$income'), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text('Balance'), + Text('₹${income - expense}', + style: TextStyle( + fontWeight: FontWeight.bold, + color: income - expense >= 0 ? Colors.green : Colors.red + )), + ], + ), + ], + ), + ), + ); +} + +Widget expenseGraph(BuildContext context, List xList, List yList, + String xTitle, String yTitle, List month) { return SizedBox( - height: MediaQuery.of(context).size.width * 0.7, - child: BarChart( - BarChartData( + height: MediaQuery.of(context).size.width * 0.9, + child: BarChart(BarChartData( alignment: BarChartAlignment.spaceEvenly, borderData: FlBorderData(show: false), gridData: FlGridData(show: false), @@ -127,7 +283,9 @@ Widget expenseGraph(BuildContext context, List xList, List yList, Stri barTouchData: BarTouchData( touchTooltipData: BarTouchTooltipData( getTooltipItem: (group, groupIndex, rod, rodIndex) { - return BarTooltipItem('₹${yList[group.x.toInt()]}', TextStyle(color: Colors.white)); + return BarTooltipItem( + month[group.x.toInt()], + const TextStyle(color: Colors.white)); }, ), ), @@ -138,34 +296,101 @@ Widget expenseGraph(BuildContext context, List xList, List yList, Stri barRods: [ BarChartRodData( toY: yList[i].toDouble(), + fromY: 0, width: 25, color: Colors.blue, ), ], + barsSpace: 4, ), ], titlesData: FlTitlesData( - leftTitles: AxisTitles( - axisNameWidget: Text(yTitle), - sideTitles: SideTitles(showTitles: true, reservedSize: 30), - ), - bottomTitles: AxisTitles( - axisNameWidget: Text(xTitle), - sideTitles: SideTitles( - showTitles: true, - getTitlesWidget: (value, meta) { - return Padding( - padding: const EdgeInsets.only(top: 8.0), - child: Text(months[value.toInt()].substring(0, 3)), - ); - }, - reservedSize: 30, + leftTitles: AxisTitles( + axisNameWidget: Text(yTitle), + sideTitles: const SideTitles(showTitles: false, reservedSize: 30), + ), + bottomTitles: AxisTitles( + axisNameWidget: Text(xTitle), + sideTitles: SideTitles( + showTitles: true, + getTitlesWidget: (value, meta) { + if (value.toInt() >= 0 && value.toInt() < month.length) { + return Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Text(month[value.toInt()].substring(0, 3)), + ); + } + return const Text(''); + }, + reservedSize: 30 + ), ), + rightTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + topTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + )))), + ); +} + +Widget weeklyExpenseGraph(BuildContext context, List xList, List yList, + String xTitle, String yTitle, int monthIndex) { + print("ylist data ${yList[1].toDouble()}"); + return SizedBox( + height: MediaQuery.of(context).size.width * 0.7, + child: BarChart(BarChartData( + alignment: BarChartAlignment.spaceEvenly, + borderData: FlBorderData(show: false), + gridData: const FlGridData(show: false), + groupsSpace: 12, + barTouchData: BarTouchData( + touchTooltipData: BarTouchTooltipData( + getTooltipItem: (group, groupIndex, rod, rodIndex) { + return BarTooltipItem( + "Week ${group.x.toInt() + 1}", + const TextStyle(color: Colors.white)); + }, ), - rightTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), - topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), ), - ), - ), + barGroups: [ + for (int i = 0; i < xList.length; i++) + BarChartGroupData( + x: i, + barRods: [ + BarChartRodData( + toY: yList[i].toDouble(), + fromY: 0, + width: 30, + color: Colors.green, + ), + ], + barsSpace: 4, + ), + ], + titlesData: FlTitlesData( + leftTitles: AxisTitles( + axisNameWidget: Text(yTitle), + sideTitles: const SideTitles(showTitles: false, reservedSize: 30), + ), + bottomTitles: AxisTitles( + axisNameWidget: Text(xTitle), + sideTitles: SideTitles( + showTitles: true, + getTitlesWidget: (value, meta) { + return Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Text("Week ${value.toInt() + 1}"), + ); + }, + reservedSize: 30 + ), + ), + rightTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + topTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + )))), ); -} +} \ No newline at end of file diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 1c51dd078..a61b3bb9a 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -61,6 +61,7 @@ class _ExpensesViewState extends State { "Expenses", style: AppStyles.setAppStyle(black, 20, FontWeight.bold, "black"), ), + centerTitle: true, leading: SizedBox(), ), floatingActionButton: Column( diff --git a/flutter_application_1/lib/components/view/main_screeen.dart b/flutter_application_1/lib/components/view/main_screeen.dart index 71929d1ba..8117bd1be 100644 --- a/flutter_application_1/lib/components/view/main_screeen.dart +++ b/flutter_application_1/lib/components/view/main_screeen.dart @@ -21,7 +21,7 @@ class _MainScreenState extends State { List mainScreens = [ ExpensesView(), AnalyticsView(), - Settings(), + ProfilePage(), ]; MainScreenBloc mainScreenBloc = MainScreenBloc(); int selectedIndex = 0; diff --git a/flutter_application_1/lib/components/view/settings/settings.dart b/flutter_application_1/lib/components/view/settings/settings.dart index d50650e72..6a876882f 100644 --- a/flutter_application_1/lib/components/view/settings/settings.dart +++ b/flutter_application_1/lib/components/view/settings/settings.dart @@ -1,15 +1,229 @@ import 'package:flutter/material.dart'; -class Settings extends StatefulWidget { - const Settings({super.key}); +class ProfilePage extends StatefulWidget { + const ProfilePage({super.key}); @override - State createState() => _SettingsState(); + State createState() => _ProfilePageState(); } -class _SettingsState extends State { +class _ProfilePageState extends State { + // Mock user data - replace with actual user data from your app + final Map userData = { + 'name': 'Gopinath S', + 'email': 'gopinath.s2022cce@sece.ac.in', + 'phone': '9344751909', + 'accountType': 'Premium', + 'profilePicture': 'https://th.bing.com/th/id/OIP._es0XdTFgRtnSNs1-5gs4QHaH0?rs=1&pid=ImgDetMain', + }; + @override Widget build(BuildContext context) { - return const Placeholder(); + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + title: const Text( + 'My Profile', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + backgroundColor: Colors.blue, + elevation: 0, + ), + body: SingleChildScrollView( + child: Column( + children: [ + // Blue curved header with profile image + Container( + height: 150, + decoration: const BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(30), + bottomRight: Radius.circular(30), + ), + ), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 10), + // Profile picture + CircleAvatar( + radius: 50, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 47, + backgroundImage: NetworkImage(userData['profilePicture']), + // If image fails to load, show a fallback + onBackgroundImageError: (_, __) {}, + child: userData['profilePicture'] == null + ? const Icon(Icons.person, size: 60, color: Colors.blue) + : null, + ), + ), + ], + ), + ), + ), + + const SizedBox(height: 20), + + // User name with larger font + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + userData['name'], + style: const TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.blue, + fontFamily: "medium", + ), + textAlign: TextAlign.center, + ), + ), + + // Account type chip + Container( + margin: const EdgeInsets.symmetric(vertical: 10), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + decoration: BoxDecoration( + color: Colors.blue.shade100, + borderRadius: BorderRadius.circular(20), + ), + child: Text( + '${userData['accountType']} Account', + style: TextStyle( + color: Colors.blue.shade800, + fontWeight: FontWeight.bold, + fontFamily: "medium" + ), + ), + ), + + // Text( + // "Will implement subscription things in future" + // ), + + const SizedBox(height: 30), + + // Profile information cards + _buildInfoCard('Email', userData['email'], Icons.email), + _buildInfoCard('Phone', userData['phone'], Icons.phone), + + const SizedBox(height: 40), + + // Logout button + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: ElevatedButton( + onPressed: () { + // Add logout functionality here + _showLogoutDialog(context); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red.shade400, + foregroundColor: Colors.white, + minimumSize: const Size(double.infinity, 50), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + ), + child: const Text( + 'Logout', + style: TextStyle(fontSize: 16,fontFamily: "medium"), + ), + ), + ), + + const SizedBox(height: 30), + ], + ), + ), + ); } -} + + Widget _buildInfoCard(String title, String value, IconData icon) { + return Container( + margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), + padding: const EdgeInsets.all(15), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(15), + boxShadow: [ + BoxShadow( + color: Colors.blue.withOpacity(0.1), + spreadRadius: 2, + blurRadius: 7, + offset: const Offset(0, 3), + ), + ], + ), + child: Row( + children: [ + Icon(icon, color: Colors.blue, size: 28), + const SizedBox(width: 15), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: TextStyle( + fontSize: 14, + color: Colors.blue.shade300, + fontFamily: "medium" + ), + ), + const SizedBox(height: 5), + Text( + value, + style: const TextStyle( + fontSize: 16, + color: Colors.black87, + fontWeight: FontWeight.w500, + fontFamily: "medium" + ), + ), + ], + ), + ], + ), + ); + } + + // Logout confirmation dialog + void _showLogoutDialog(BuildContext context) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text("Logout"), + content: const Text("Are you sure you want to logout?"), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: Text("Cancel", style: TextStyle( + color: Colors.blue.shade700, + fontFamily: "medium" + )), + ), + ElevatedButton( + onPressed: () { + // Implement your logout logic here + Navigator.of(context).pop(); + // You might want to navigate to login page or clear user session + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red.shade400, + ), + child: const Text("Logout", style: TextStyle( + color: Colors.white, + fontFamily: "medium" + )), + ), + ], + ); + }, + ); + } +} \ No newline at end of file diff --git a/flutter_application_1/lib/components/view/splash_screen.dart b/flutter_application_1/lib/components/view/splash_screen.dart index c005b65a3..6e30c8360 100644 --- a/flutter_application_1/lib/components/view/splash_screen.dart +++ b/flutter_application_1/lib/components/view/splash_screen.dart @@ -1,4 +1,7 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/view/Auth/login_view.dart'; +import 'package:flutter_application_1/components/view/main_screeen.dart'; import '../../theme/colors.dart'; @@ -19,14 +22,52 @@ class _SplashScreenState extends State { Future navigateToMainScreen() async { await Future.delayed(const Duration(seconds: 2)); - Navigator.pushNamed(context, "/main"); + + try { + var user = FirebaseAuth.instance.currentUser; + + if (user == null) { + // User is not logged in, navigate to LoginPage + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const LoginPage()), + (Route route) => false, + ); + } else { + // User is logged in, navigate to MainScreen + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const MainScreen()), + (Route route) => false, + ); + } + } catch (e) { + print("Error in splash screen: $e"); + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const LoginPage()), + (Route route) => false, + ); + } } @override Widget build(BuildContext context) { return Scaffold( body: Center( - child: true ? CircleAvatar(backgroundColor: white,) : Image(image: AssetImage("assets/images/applogo.png")) + child: Container( + height: 100, + width: 100, + decoration: BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.circular(20), + ), + child: const Icon( + Icons.account_balance_wallet, + color: Colors.white, + size: 60, + ), + ), ), ); } diff --git a/flutter_application_1/lib/data/appvalues.dart b/flutter_application_1/lib/data/appvalues.dart index be574effb..77dcef485 100644 --- a/flutter_application_1/lib/data/appvalues.dart +++ b/flutter_application_1/lib/data/appvalues.dart @@ -2,4 +2,5 @@ class AppValues { static String ip = "http://10.18.0.146:3000/"; static String fcm = ""; + static String jwtToken = ""; } \ No newline at end of file diff --git a/flutter_application_1/lib/main.dart b/flutter_application_1/lib/main.dart index f69ad18f9..6742b17c5 100644 --- a/flutter_application_1/lib/main.dart +++ b/flutter_application_1/lib/main.dart @@ -18,7 +18,7 @@ Future main() async { "/main" : (BuildContext context) => MainScreen(), "/analytics" : (BuildContext context) => AnalyticsView(), "/expenses" : (BuildContext context) => ExpensesView(), - "/settings" : (BuildContext context) => Settings() + "/settings" : (BuildContext context) => ProfilePage() }, ); runApp(myApp); diff --git a/flutter_application_1/lib/service/helper/global_service.dart b/flutter_application_1/lib/service/helper/global_service.dart index 2f73af1e2..c353cd5e2 100644 --- a/flutter_application_1/lib/service/helper/global_service.dart +++ b/flutter_application_1/lib/service/helper/global_service.dart @@ -9,7 +9,7 @@ class GlobalService { Map? requestBody, required String method}) async { final Uri url = - Uri.parse("${AppValues.ip}/$endpoint"); // ✅ Uses passed endpoint + Uri.parse("${AppValues.ip}$endpoint"); // ✅ Uses passed endpoint final Map headers = { "Content-Type": "application/json", }; @@ -58,6 +58,7 @@ class GlobalService { final Map decodedBody = jsonDecode(response.body); if (response.statusCode >= 200 && response.statusCode < 300) { + decodedBody["status"] = true; return decodedBody; } else { return { diff --git a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift index 2f210df99..90c0b335e 100644 --- a/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/flutter_application_1/macos/Flutter/GeneratedPluginRegistrant.swift @@ -11,6 +11,7 @@ import firebase_auth import firebase_core import firebase_messaging import flutter_local_notifications +import google_sign_in_ios func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) @@ -19,4 +20,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin")) FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) + FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin")) } diff --git a/flutter_application_1/pubspec.yaml b/flutter_application_1/pubspec.yaml index c7ba8a629..447ff877f 100644 --- a/flutter_application_1/pubspec.yaml +++ b/flutter_application_1/pubspec.yaml @@ -46,6 +46,7 @@ dependencies: firebase_auth: ^5.5.1 firebase_messaging: ^15.2.4 flutter_local_notifications: ^18.0.1 + google_sign_in: ^6.3.0 dev_dependencies: flutter_test: From 3213252bb2ee377463ea56e08d748108de344472 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 02:39:31 +0530 Subject: [PATCH 14/24] edit expenses bug profile page updation. --- .../lib/components/models/user_model.dart | 6 +++++ .../lib/components/view/Auth/login_view.dart | 16 +++++++---- .../view/expenses/edit_expenses.dart | 19 ++++++------- .../lib/components/view/main_screeen.dart | 13 +++++++++ .../components/view/settings/settings.dart | 27 ++++++++++++++----- 5 files changed, 61 insertions(+), 20 deletions(-) create mode 100644 flutter_application_1/lib/components/models/user_model.dart diff --git a/flutter_application_1/lib/components/models/user_model.dart b/flutter_application_1/lib/components/models/user_model.dart new file mode 100644 index 000000000..ef2169ebe --- /dev/null +++ b/flutter_application_1/lib/components/models/user_model.dart @@ -0,0 +1,6 @@ +class UserModel { + static String name = ""; + static String email = ""; + static String phone = ""; + static String photoUrl = ""; +} \ No newline at end of file diff --git a/flutter_application_1/lib/components/view/Auth/login_view.dart b/flutter_application_1/lib/components/view/Auth/login_view.dart index a74d0eec0..017db1f36 100644 --- a/flutter_application_1/lib/components/view/Auth/login_view.dart +++ b/flutter_application_1/lib/components/view/Auth/login_view.dart @@ -198,12 +198,18 @@ class LoginPage extends StatelessWidget { } Future _handleGoogleSignIn(BuildContext context) async { - - // TODO: Implement actual Google Sign In - // You would use a package like firebase_auth and google_sign_in - // Example implementation: - // + GoogleSignIn _googleSignIn = GoogleSignIn(); try { + if (await _googleSignIn.isSignedIn()) { + await _googleSignIn.signOut(); + await FirebaseAuth.instance.signOut(); + + try { + await _googleSignIn.disconnect(); + } catch (e, stackTrace) { + print("Error during disconnect: $e"); + } + } final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn(); final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication; final credential = GoogleAuthProvider.credential( diff --git a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart index 95897e707..aa951c947 100644 --- a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart +++ b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart @@ -37,6 +37,7 @@ class _EditExpenseScreenState extends State { @override void initState() { super.initState(); + print("AMount spent : ${widget.expenseData["date_time"]}"); if (widget.isEdit) { expenseTitleController = TextEditingController(text: widget.expenseData["expense_title"] ?? ""); @@ -44,9 +45,9 @@ class _EditExpenseScreenState extends State { paymentMethodController = TextEditingController(text: widget.expenseData["payment_method"] ?? ""); merchantNameController = TextEditingController(text: widget.expenseData["merchant_name"] ?? ""); totalAmountController = TextEditingController(text: widget.expenseData["amount_spent"].toString() ?? ""); - dateController = TextEditingController(text: widget.expenseData["date"] ?? ""); - selectedDate = widget.expenseData["date"] != null - ? DateTime.tryParse(widget.expenseData["date"]) + dateController = TextEditingController(text: widget.expenseData["date_time"] ?? ""); + selectedDate = widget.expenseData["date_time"] != null + ? DateTime.tryParse(widget.expenseData["date_time"]) : null; print("tags from josn : ${widget.expenseData["tags"]}"); items = List>.from(widget.expenseData["items"] ?? []); @@ -108,7 +109,7 @@ class _EditExpenseScreenState extends State { setState(() { items.add({ "title": "", - "amountSpent": 0.0, + "amount_spent": 0.0, }); }); }, @@ -134,7 +135,7 @@ class _EditExpenseScreenState extends State { for (int i=0;i expenseData = { @@ -142,7 +143,7 @@ class _EditExpenseScreenState extends State { "merchant_name": merchantNameController.text, "amount_spent": double.parse(totalAmountController.text), "payment_method": paymentMethodController.text, - "date": dateController.text.trim(), + "date_time": dateController.text.trim(), "category": selectedCategory, "items": items, }; @@ -169,7 +170,7 @@ class _EditExpenseScreenState extends State { Widget itemRow(int index) { TextEditingController titleController = TextEditingController(text: items[index]['title']); - TextEditingController amountController = TextEditingController(text: items[index]['amountSpent'].toString()); + TextEditingController amountController = TextEditingController(text: items[index]['amount_spent'].toString()); return Padding( padding: const EdgeInsets.symmetric(vertical: 8.0), @@ -188,7 +189,7 @@ class _EditExpenseScreenState extends State { child: TextFormField( controller: amountController, keyboardType: TextInputType.number, - onChanged: (value) => items[index]['amountSpent'] = double.tryParse(value) ?? 0.0, + onChanged: (value) => items[index]['amount_spent'] = double.tryParse(value) ?? 0.0, decoration: InputDecoration(labelText: 'Amount'), ), ), @@ -223,7 +224,7 @@ class _EditExpenseScreenState extends State { context: context, initialDate: (dateController.text.isNotEmpty) - ? DateFormat('dd-MM-yyyy') + ? DateTime .parse(dateController.text) : DateTime.now(), firstDate: DateTime(2000), lastDate: DateTime(2050), diff --git a/flutter_application_1/lib/components/view/main_screeen.dart b/flutter_application_1/lib/components/view/main_screeen.dart index 8117bd1be..05b731093 100644 --- a/flutter_application_1/lib/components/view/main_screeen.dart +++ b/flutter_application_1/lib/components/view/main_screeen.dart @@ -1,5 +1,7 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/models/user_model.dart'; import 'package:flutter_application_1/components/view/analytics/analytics_view.dart'; import 'package:flutter_application_1/components/view/expenses/expenses_view.dart'; import 'package:flutter_application_1/components/view/settings/settings.dart'; @@ -33,10 +35,21 @@ class _MainScreenState extends State { @override void initState() { // TODO: implement initState + getUserDetails(); getFirebaseNotification(); super.initState(); } + Future getUserDetails() async { + print("name from firebase : ${FirebaseAuth.instance.currentUser!.displayName!}"); + if (UserModel.name.isEmpty) { + UserModel.name = FirebaseAuth.instance.currentUser!.displayName!; + UserModel.email = FirebaseAuth.instance.currentUser!.email!; + UserModel.photoUrl = FirebaseAuth.instance.currentUser!.photoURL!; + UserModel.phone = FirebaseAuth.instance.currentUser!.phoneNumber!; + } + } + Future getFirebaseNotification() async { await NotificationService.instance.initialize(context); NotificationSettings settings = diff --git a/flutter_application_1/lib/components/view/settings/settings.dart b/flutter_application_1/lib/components/view/settings/settings.dart index 6a876882f..1424e0112 100644 --- a/flutter_application_1/lib/components/view/settings/settings.dart +++ b/flutter_application_1/lib/components/view/settings/settings.dart @@ -1,4 +1,10 @@ +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/models/user_model.dart'; +import 'package:flutter_application_1/data/appvalues.dart'; + +import '../Auth/login_view.dart'; class ProfilePage extends StatefulWidget { const ProfilePage({super.key}); @@ -10,11 +16,11 @@ class ProfilePage extends StatefulWidget { class _ProfilePageState extends State { // Mock user data - replace with actual user data from your app final Map userData = { - 'name': 'Gopinath S', - 'email': 'gopinath.s2022cce@sece.ac.in', - 'phone': '9344751909', + 'name': UserModel.name.isNotEmpty ? UserModel.name : "Not provided", + 'email': UserModel.email.isNotEmpty ? UserModel.email : "Not provided", + 'phone': UserModel.phone.isNotEmpty ? UserModel.phone : "Not provided", 'accountType': 'Premium', - 'profilePicture': 'https://th.bing.com/th/id/OIP._es0XdTFgRtnSNs1-5gs4QHaH0?rs=1&pid=ImgDetMain', + 'profilePicture': UserModel.photoUrl, }; @override @@ -208,9 +214,18 @@ class _ProfilePageState extends State { )), ), ElevatedButton( - onPressed: () { + onPressed: () async { // Implement your logout logic here - Navigator.of(context).pop(); + await FirebaseAuth.instance.signOut(); + AppValues.jwtToken = ""; + UserModel.phone = ""; + UserModel.email = ""; + UserModel.name = ""; + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const LoginPage()), + (Route route) => false, + ); // You might want to navigate to login page or clear user session }, style: ElevatedButton.styleFrom( From 52d4df48d9444dd733edc062ca440cd7096b8032 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 02:43:56 +0530 Subject: [PATCH 15/24] pubspec.lock added --- flutter_application_1/pubspec.lock | 666 +++++++++++++++++++++++++++++ 1 file changed, 666 insertions(+) create mode 100644 flutter_application_1/pubspec.lock diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock new file mode 100644 index 000000000..5a87c34eb --- /dev/null +++ b/flutter_application_1/pubspec.lock @@ -0,0 +1,666 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: "7fd72d77a7487c26faab1d274af23fb008763ddc10800261abbfb2c067f183d5" + url: "https://pub.dev" + source: hosted + version: "1.3.53" + args: + dependency: transitive + description: + name: args + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 + url: "https://pub.dev" + source: hosted + version: "2.6.0" + async: + dependency: transitive + description: + name: async + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 + url: "https://pub.dev" + source: hosted + version: "2.12.0" + bloc: + dependency: "direct main" + description: + name: bloc + sha256: "52c10575f4445c61dd9e0cafcc6356fdd827c4c64dd7945ef3c4105f6b6ac189" + url: "https://pub.dev" + source: hosted + version: "9.0.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + characters: + dependency: transitive + description: + name: characters + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + url: "https://pub.dev" + source: hosted + version: "0.3.4+2" + 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: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" + url: "https://pub.dev" + source: hosted + version: "1.3.2" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + file_picker: + dependency: "direct main" + description: + name: file_picker + sha256: "7423298f08f6fc8cce05792bae329f9a93653fc9c08712831b1a55540127995d" + url: "https://pub.dev" + source: hosted + version: "9.0.2" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" + url: "https://pub.dev" + source: hosted + version: "0.9.3+2" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc" + url: "https://pub.dev" + source: hosted + version: "0.9.4+2" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b + url: "https://pub.dev" + source: hosted + version: "2.6.2" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" + url: "https://pub.dev" + source: hosted + version: "0.9.3+4" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + sha256: "91587615d7d9165c65a030426e3cf40bbec37c486f52ff654af17aba5be3d208" + url: "https://pub.dev" + source: hosted + version: "5.5.1" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + sha256: "1dcf1dbdd90fe97fa37ab3631b561bf584adb88f6be0b0dd915fff799ad53192" + url: "https://pub.dev" + source: hosted + version: "7.6.1" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + sha256: "3774cb13547e28b180fed2a5e696b4b36f97f4b1fadc7b04a0200e5009344d98" + url: "https://pub.dev" + source: hosted + version: "5.14.1" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + sha256: f4d8f49574a4e396f34567f3eec4d38ab9c3910818dec22ca42b2a467c685d8b + url: "https://pub.dev" + source: hosted + version: "3.12.1" + 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: faa5a76f6380a9b90b53bc3bdcb85bc7926a382e0709b9b5edac9f7746651493 + url: "https://pub.dev" + source: hosted + version: "2.21.1" + firebase_messaging: + dependency: "direct main" + description: + name: firebase_messaging + sha256: "5fc345c6341f9dc69fd0ffcbf508c784fd6d1b9e9f249587f30434dd8b6aa281" + url: "https://pub.dev" + source: hosted + version: "15.2.4" + firebase_messaging_platform_interface: + dependency: transitive + description: + name: firebase_messaging_platform_interface + sha256: a935924cf40925985c8049df4968b1dde5c704f570f3ce380b31d3de6990dd94 + url: "https://pub.dev" + source: hosted + version: "4.6.4" + firebase_messaging_web: + dependency: transitive + description: + name: firebase_messaging_web + sha256: fafebf6a1921931334f3f10edb5037a5712288efdd022881e2d093e5654a2fd4 + url: "https://pub.dev" + source: hosted + version: "3.10.4" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + sha256: "5276944c6ffc975ae796569a826c38a62d2abcf264e26b88fa6f482e107f4237" + url: "https://pub.dev" + source: hosted + version: "0.70.2" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + sha256: "1046d719fbdf230330d3443187cc33cc11963d15c9089f6cc56faa42a4c5f0cc" + url: "https://pub.dev" + source: hosted + version: "9.1.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: ef41ae901e7529e52934feba19ed82827b11baa67336829564aeab3129460610 + url: "https://pub.dev" + source: hosted + version: "18.0.1" + flutter_local_notifications_linux: + dependency: transitive + description: + name: flutter_local_notifications_linux + sha256: "8f685642876742c941b29c32030f6f4f6dacd0e4eaecb3efbb187d6a3812ca01" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + sha256: "6c5b83c86bf819cdb177a9247a3722067dd8cc6313827ce7c77a4b238a26fd52" + url: "https://pub.dev" + source: hosted + version: "8.0.0" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: "5a1e6fb2c0561958d7e4c33574674bda7b77caaca7a33b758876956f2902eea3" + url: "https://pub.dev" + source: hosted + version: "2.0.27" + flutter_spinkit: + dependency: "direct main" + description: + name: flutter_spinkit + sha256: d2696eed13732831414595b98863260e33e8882fc069ee80ec35d4ac9ddb0472 + url: "https://pub.dev" + source: hosted + version: "5.2.1" + 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_identity_services_web: + dependency: transitive + description: + name: google_identity_services_web + sha256: "55580f436822d64c8ff9a77e37d61f5fb1e6c7ec9d632a43ee324e2a05c3c6c9" + url: "https://pub.dev" + source: hosted + version: "0.3.3" + google_sign_in: + dependency: "direct main" + description: + name: google_sign_in + sha256: d0a2c3bcb06e607bb11e4daca48bd4b6120f0bbc4015ccebbe757d24ea60ed2a + url: "https://pub.dev" + source: hosted + version: "6.3.0" + google_sign_in_android: + dependency: transitive + description: + name: google_sign_in_android + sha256: "4e52c64366bdb3fe758f683b088ee514cc7a95e69c52b5ee9fc5919e1683d21b" + url: "https://pub.dev" + source: hosted + version: "6.2.0" + google_sign_in_ios: + dependency: transitive + description: + name: google_sign_in_ios + sha256: "29cd125f58f50ceb40e8253d3c0209e321eee3e5df16cd6d262495f7cad6a2bd" + url: "https://pub.dev" + source: hosted + version: "5.8.1" + google_sign_in_platform_interface: + dependency: transitive + description: + name: google_sign_in_platform_interface + sha256: "5f6f79cf139c197261adb6ac024577518ae48fdff8e53205c5373b5f6430a8aa" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + google_sign_in_web: + dependency: transitive + description: + name: google_sign_in_web + sha256: "460547beb4962b7623ac0fb8122d6b8268c951cf0b646dd150d60498430e4ded" + url: "https://pub.dev" + source: hosted + version: "0.12.4+4" + 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_picker: + dependency: "direct main" + description: + name: image_picker + sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: "8bd392ba8b0c8957a157ae0dc9fcf48c58e6c20908d5880aea1d79734df090e9" + url: "https://pub.dev" + source: hosted + version: "0.8.12+22" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100" + url: "https://pub.dev" + source: hosted + version: "0.8.12+2" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "1b90ebbd9dcf98fb6c1d01427e49a55bd96b5d67b8c67cf955d60a5de74207c1" + url: "https://pub.dev" + source: hosted + version: "0.2.1+2" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0" + url: "https://pub.dev" + source: hosted + version: "2.10.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + 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: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec + url: "https://pub.dev" + source: hosted + version: "10.0.8" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + url: "https://pub.dev" + source: hosted + version: "3.0.9" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + 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: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + url: "https://pub.dev" + source: hosted + version: "0.12.17" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + url: "https://pub.dev" + source: hosted + version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + 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: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_span: + dependency: transitive + description: + name: source_span + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + url: "https://pub.dev" + source: hosted + version: "1.10.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test_api: + dependency: transitive + description: + name: test_api + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + url: "https://pub.dev" + source: hosted + version: "0.7.4" + 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" + 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: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" + url: "https://pub.dev" + source: hosted + version: "14.3.1" + 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: b89e6e24d1454e149ab20fbb225af58660f0c0bf4475544650700d8e2da54aef + url: "https://pub.dev" + source: hosted + version: "5.11.0" + 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.7.0 <4.0.0" + flutter: ">=3.27.0" From bab20f0fa6089042df2037e6aa13f8d9d307c265 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 07:08:09 +0530 Subject: [PATCH 16/24] 1. Edit expense and create expense. --- .../AnalyticsBloc/analytics_bloc_event.dart | 14 +- .../edit_expense_bloc/edit_expense_bloc.dart | 23 +- .../edit_expense_bloc/edit_expense_event.dart | 3 +- .../edit_expense_bloc/edit_expense_state.dart | 4 +- .../view/analytics/analytics_view.dart | 27 ++ .../view/expenses/edit_expenses.dart | 24 +- .../view/expenses/expenses_view.dart | 356 ++++++++++++++---- .../lib/service/helper/update_expense.dart | 45 +++ 8 files changed, 412 insertions(+), 84 deletions(-) create mode 100644 flutter_application_1/lib/service/helper/update_expense.dart diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart index 5f98cd435..82548a0d4 100644 --- a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_event.dart @@ -9,4 +9,16 @@ class AnalyticsMonthSelectedEvent extends AnalyticsBlocEvent { final int monthIndex; AnalyticsMonthSelectedEvent(this.monthIndex); -} \ No newline at end of file +} + +class SendAnalyticsQueryEvent extends AnalyticsBlocEvent { + final String query; + + SendAnalyticsQueryEvent(this.query); +} + +class SelectAnalyticsChipEvent extends AnalyticsBlocEvent { + final String chipName; + + SelectAnalyticsChipEvent(this.chipName); +} diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart index 0ac16bf6d..702ddca0b 100644 --- a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart @@ -1,6 +1,8 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; +import 'package:flutter_application_1/service/helper/global_service.dart'; +import 'package:flutter_application_1/service/helper/update_expense.dart'; import 'package:meta/meta.dart'; part 'edit_expense_event.dart'; @@ -11,11 +13,26 @@ class EditExpenseBloc extends Bloc { on (editExpenseSaveEvent); } - FutureOr editExpenseSaveEvent(EditExpenseSaveEvent event, Emitter emit) { + Future editExpenseSaveEvent(EditExpenseSaveEvent event, Emitter emit) async { emit(EditExpenseSavingState()); Map expense = event.expense; - print(expense); + print("expense ${expense} bool : ${event.isEdit}"); // do api call here - emit(EditExpenseSavedState()); + if (event.isEdit) { + bool isUpdated = await updateExpense(expense); + print("bool : $isUpdated"); + if (isUpdated) { + emit(EditExpenseSavedState()); + } else { + emit(EditExpenseErrorState()); + } + } else { + bool isCreated = await createExpense(expense); + if (isCreated) { + emit(EditExpenseSavedState()); + } else { + emit(EditExpenseErrorState()); + } + } } } diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart index 86903820d..d93fd3d54 100644 --- a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart @@ -4,5 +4,6 @@ abstract class EditExpenseEvent {} class EditExpenseSaveEvent extends EditExpenseEvent { final Map expense; - EditExpenseSaveEvent({required this.expense}); + bool isEdit; + EditExpenseSaveEvent({required this.expense, required this.isEdit}); } diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_state.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_state.dart index 6cdb2c011..27368b2ab 100644 --- a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_state.dart +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_state.dart @@ -8,4 +8,6 @@ class EditExpenseInitial extends EditExpenseState {} class EditExpenseSavedState extends EditExpenseActionState {} -class EditExpenseSavingState extends EditExpenseActionState {} \ No newline at end of file +class EditExpenseSavingState extends EditExpenseActionState {} + +class EditExpenseErrorState extends EditExpenseActionState {} \ No newline at end of file diff --git a/flutter_application_1/lib/components/view/analytics/analytics_view.dart b/flutter_application_1/lib/components/view/analytics/analytics_view.dart index 0eac32577..2053a4dea 100644 --- a/flutter_application_1/lib/components/view/analytics/analytics_view.dart +++ b/flutter_application_1/lib/components/view/analytics/analytics_view.dart @@ -71,6 +71,33 @@ class _AnalyticsViewState extends State forceMaterialTransparency: true, leading: SizedBox(), ), + floatingActionButton: ElevatedButton( + onPressed: () { + // showModalBottomSheet( + // context: context, + // useSafeArea: true, + // isScrollControlled: true, + // builder: (BuildContext context) { + // return Padding( + // padding: EdgeInsets.only( + // bottom: MediaQuery.of(context).viewInsets.bottom, // Moves content up + // ), + // child: ChatBotBottomSheet(expensesBloc: expensesBloc), + // ); + // }); + }, + style: ElevatedButton.styleFrom( + backgroundColor: white, + shape: + CircleBorder(side: BorderSide(color: border, width: 0.5)), + minimumSize: const Size(50, 50), + ), + child: Icon( + Icons.star, + size: 35, + color: Colors.green, + ), + ), body: Padding( padding: const EdgeInsets.all(8.0), child: BlocBuilder( diff --git a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart index aa951c947..a1f84ddea 100644 --- a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart +++ b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart @@ -65,7 +65,7 @@ class _EditExpenseScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: Text("Edit Expense",style: AppStyles.setAppStyle(black, 20, FontWeight.bold, "black"),)), + appBar: AppBar(title: Text(widget.isEdit ? "Edit Expense" : "Create Expense",style: AppStyles.setAppStyle(black, 20, FontWeight.bold, "black"),)), body: bodyPartOfEditExpense(), ); } @@ -81,6 +81,14 @@ class _EditExpenseScreenState extends State { isSaving = false; Navigator.pop(context); } + if (state is EditExpenseErrorState) { + isSaving = false; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Error while saving expense"), + ), + ); + } }, builder: (context, state) { return Padding( @@ -138,7 +146,16 @@ class _EditExpenseScreenState extends State { "amount_spent": items[i]['amount_spent'], }; } - Map expenseData = { + Map expenseData = widget.isEdit ? { + "expense_title": expenseTitleController.text, + "merchant_name": merchantNameController.text, + "amount_spent": double.parse(totalAmountController.text), + "payment_method": paymentMethodController.text, + "date_time": dateController.text.trim(), + "category": selectedCategory, + "items": items, + "uuid" : widget.expenseData["uuid"], + } : { "expense_title": expenseTitleController.text, "merchant_name": merchantNameController.text, "amount_spent": double.parse(totalAmountController.text), @@ -149,9 +166,10 @@ class _EditExpenseScreenState extends State { }; if (widget.isEdit) { - editExpenseBloc.add(EditExpenseSaveEvent(expense : expenseData)); + editExpenseBloc.add(EditExpenseSaveEvent(expense : expenseData, isEdit: true)); } else { // Add new expense + editExpenseBloc.add(EditExpenseSaveEvent(expense : expenseData, isEdit: false)); } } }, diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 367348aac..b5875683d 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -156,8 +156,11 @@ class _ExpensesViewState extends State { useSafeArea: true, isScrollControlled: true, builder: (BuildContext context) { - return chatBotBottomSheet( - expensesBloc: expensesBloc, + return Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, // Moves content up + ), + child: ChatBotBottomSheet(expensesBloc: expensesBloc), ); }); }, @@ -205,15 +208,30 @@ class _ExpensesViewState extends State { } } -class chatBotBottomSheet extends StatelessWidget { +class ChatBotBottomSheet extends StatefulWidget { final ExpensesBloc expensesBloc; - chatBotBottomSheet({ + + const ChatBotBottomSheet({ required this.expensesBloc, super.key, }); + @override + State createState() => _ChatBotBottomSheetState(); +} + +class _ChatBotBottomSheetState extends State { String? selectedChip; final _controller = TextEditingController(); + final _scrollController = ScrollController(); + + @override + void dispose() { + _controller.dispose(); + _scrollController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { List chipLabels = [ @@ -223,84 +241,272 @@ class chatBotBottomSheet extends StatelessWidget { "Others" ]; - return Padding( - padding: const EdgeInsets.all(8.0), - child: BlocBuilder( - bloc: expensesBloc, - builder: (context, state) { - if (state is ExpenseChoiceShipSelected) { - selectedChip = state.choiceShip; - } + return Container( + decoration: BoxDecoration( + color: Theme.of(context).scaffoldBackgroundColor, + borderRadius: const BorderRadius.vertical(top: Radius.circular(20)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 10, + spreadRadius: 1, + ) + ], + ), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), + child: BlocBuilder( + bloc: widget.expensesBloc, + builder: (context, state) { + if (state is ExpenseChoiceShipSelected) { + selectedChip = state.choiceShip; + } - List columnValues = [ - const SizedBox(height: 20), - Text( - "How can I help you ???", - style: TextStyle(fontFamily: "medium", fontSize: 20), - ), - const SizedBox(height: 20), - if (selectedChip == "Others") - Padding( - padding: const EdgeInsets.all(8.0), - child: TextField( - controller: _controller, - decoration: InputDecoration( - suffixIcon: IconButton( - icon: Icon(Icons.send), - onPressed: () { - if( (_controller.text.isNotEmpty)) { - expensesBloc - .add(ExpensechatBotEvent(_controller.text)); - } - }), - enabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: primary, width: 0.5), + // Auto-scroll to bottom when new messages arrive + WidgetsBinding.instance.addPostFrameCallback((_) { + if (_scrollController.hasClients) { + _scrollController.animateTo( + _scrollController.position.maxScrollExtent, + duration: const Duration(milliseconds: 300), + curve: Curves.easeOut, + ); + } + }); + + // Clear text controller after response is received + if (state is ExpenseChatBotLoadedState) { + _controller.clear(); + } + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar at the top + Center( + child: Container( + margin: const EdgeInsets.only(top: 8, bottom: 16), + width: 40, + height: 4, + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(2), ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: primary, width: 0.5), + ), + ), + + // Title with an icon + Row( + children: [ + Icon( + Icons.support_agent, + color: Theme.of(context).primaryColor, + size: 28, + ), + const SizedBox(width: 10), + Text( + "Finance Assistant", + style: TextStyle( + fontFamily: "medium", + fontSize: 22, + fontWeight: FontWeight.bold, + ), ), - border: InputBorder.none, - hintText: "Type your message here", - hintStyle: TextStyle(fontFamily: "medium"), - prefixIcon: Icon(Icons.info), + ], + ), + + const SizedBox(height: 16), + + // Chat topic chips in a horizontally scrollable container + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: chipLabels.map((label) { + return Padding( + padding: const EdgeInsets.only(right: 8.0), + child: ChoiceChip( + selected: selectedChip == label, + label: Text(label), + labelStyle: TextStyle( + fontWeight: selectedChip == label ? FontWeight.bold : FontWeight.normal, + ), + backgroundColor: Colors.grey.shade200, + selectedColor: Theme.of(context).primaryColor.withOpacity(0.2), + onSelected: (value) { + setState(() { + if (selectedChip == label) { + selectedChip = null; + _controller.clear(); + } else { + selectedChip = label; + // Set the text controller to the chip label + if (label != "Others") { + _controller.text = label; + } else { + _controller.clear(); + } + } + }); + + widget.expensesBloc.add( + ExpenseChoiceShipSelectedEvent(selectedChip ?? "")); + }, + ), + ); + }).toList(), ), ), + + const SizedBox(height: 16), + + // Chat messages area + Flexible( + child: SingleChildScrollView( + controller: _scrollController, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (state is ExpenseChatBotLoadedState) + ChatBubble( + message: state.message, + isFromBot: true, + ), + if (state is ExpenseChatBotLoadingState) + Padding( + padding: const EdgeInsets.all(16.0), + child: Center( + child: SpinKitPulse( + color: Theme.of(context).primaryColor, + size: 40.0, + ), + ), + ), + ], + ), + ), + ), + + const SizedBox(height: 16), + + // Input field with send button - always visible + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(24), + border: Border.all( + color: Theme.of(context).primaryColor.withOpacity(0.5), + width: 1.5, + ), + color: Colors.grey.shade50, + ), + child: Row( + children: [ + Expanded( + child: TextField( + controller: _controller, + decoration: InputDecoration( + hintText: "Type your question here...", + hintStyle: TextStyle( + fontFamily: "medium", + color: Colors.grey.shade500, + ), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + border: InputBorder.none, + ), + maxLines: null, + textCapitalization: TextCapitalization.sentences, + ), + ), + Material( + color: Colors.transparent, + child: InkWell( + borderRadius: BorderRadius.circular(24), + onTap: () { + if (_controller.text.isNotEmpty) { + // Send message to bloc and wait for response + widget.expensesBloc.add(ExpensechatBotEvent(_controller.text)); + // Controller will be cleared after response is received + } + }, + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Icon( + Icons.send_rounded, + color: Theme.of(context).primaryColor, + ), + ), + ), + ), + ], + ), + ), + + const SizedBox(height: 16), + ], + ); + }, + ), + ), + ); + } +} + +// Custom chat bubble widget +class ChatBubble extends StatelessWidget { + final String message; + final bool isFromBot; + + const ChatBubble({ + required this.message, + required this.isFromBot, + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + margin: const EdgeInsets.symmetric(vertical: 8), + child: Row( + mainAxisAlignment: isFromBot ? MainAxisAlignment.start : MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (isFromBot) + Container( + margin: const EdgeInsets.only(right: 8), + child: CircleAvatar( + backgroundColor: Theme.of(context).primaryColor.withOpacity(0.2), + radius: 16, + child: Icon( + Icons.android, + size: 20, + color: Theme.of(context).primaryColor, + ), ), - const SizedBox(height: 20), - Wrap( - children: chipLabels.map((label) { - return ChoiceChip( - selected: selectedChip == label, - label: Text(label), - onSelected: (value) { - if (selectedChip == label) { - selectedChip = null; - } else { - if (label != "Others") - expensesBloc.add(ExpensechatBotEvent(label)); - selectedChip = label; - } - expensesBloc.add( - ExpenseChoiceShipSelectedEvent(selectedChip ?? "")); - }, - ); - }).toList(), ), - ]; - if (state is ExpenseChatBotLoadedState) { - columnValues.add(Card( - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Text(state.message), - ))); - } - if (state is ExpenseChatBotLoadingState) { - columnValues.add(SpinKitCircle( - color: primary, - )); - } - return Column(children: columnValues); - }, + Flexible( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration( + color: isFromBot + ? Colors.grey.shade100 + : Theme.of(context).primaryColor.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: isFromBot + ? Colors.grey.shade300 + : Theme.of(context).primaryColor.withOpacity(0.3), + width: 1, + ), + ), + child: Text( + message, + style: TextStyle( + fontSize: 15, + color: Colors.black87, + ), + ), + ), + ), + ], ), ); } diff --git a/flutter_application_1/lib/service/helper/update_expense.dart b/flutter_application_1/lib/service/helper/update_expense.dart new file mode 100644 index 000000000..12168d85c --- /dev/null +++ b/flutter_application_1/lib/service/helper/update_expense.dart @@ -0,0 +1,45 @@ +import "dart:convert"; + +import "package:flutter_application_1/data/appvalues.dart"; +import "package:http/http.dart" as http; + + +Future updateExpense(Map expense) async { + try { + String uuid = expense["uuid"]; + expense.remove("uuid"); + var request = await http.put( + Uri.parse("${AppValues.ip}updateExpense/$uuid"), + body: jsonEncode(expense), + headers: { + "Content-Type": "application/json", + } + ); + if (request.statusCode == 200) { + return true; + } + return false; + } catch (e) { + print("Error on update expense : $e"); + return false; + } +} + +Future createExpense(Map expense) async { + try { + var request = await http.post( + Uri.parse("${AppValues.ip}/addExpense"), + body: jsonEncode(expense), + headers: { + "Content-Type": "application/json", + } + ); + if (request.statusCode == 200) { + return true; + } + return false; + } catch (e) { + print("Error on create expense : $e"); + return false; + } +} \ No newline at end of file From b26ff6a76eaeabe1b715bca5e5bcff64ab073657 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 08:46:00 +0530 Subject: [PATCH 17/24] 1. analytics page chat bot completed --- .../AnalyticsBloc/analytics_bloc_bloc.dart | 54 +++ .../AnalyticsBloc/analytics_bloc_state.dart | 35 ++ .../view/analytics/analytics_view.dart | 377 +++++++++++++++++- .../view/expenses/expenses_view.dart | 1 + .../components/widgets/analytics_graph.dart | 68 ++++ 5 files changed, 522 insertions(+), 13 deletions(-) create mode 100644 flutter_application_1/lib/components/widgets/analytics_graph.dart diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart index de9d17ff0..b3d729930 100644 --- a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart @@ -10,6 +10,8 @@ class AnalyticsBlocBloc extends Bloc { AnalyticsBlocBloc() : super(AnalyticsBlocInitial()) { on(analyticsLoadEvent); on(analyticsMonthSelectedEvent); + on(_handleQueryEvent); + on(_handleChipEvent); } Future analyticsLoadEvent( @@ -68,4 +70,56 @@ class AnalyticsBlocBloc extends Bloc { )); } } + + Future _handleQueryEvent( + SendAnalyticsQueryEvent event, + Emitter emit + ) async { + emit(AnalyticsChatBotLoadingState()); + + try { + // Simulate API call + + // This would be replaced with actual analytics data fetching + Map requestBody = { + "botQuery": event.query + }; + Map response = await GlobalService.globalService(endpoint: "botQuery", method: "POST", requestBody: requestBody); + print("response form gemini : ${response["answer"]}"); + String message = (response["answer"] ?? _generateResponse(event.query)); + if (response["isGraph"] == true && false) { + List xList = List.from(response["xList"]); + List yList = List.from(response["yList"]); + String xTitle = response["xTitle"]; + String yTitle = response["yTitle"]; + emit(AnalyticsGraphShowingState(xList: xList, yList: yList, xTitle: xTitle, yTitle: yTitle)); + } + else { + emit(AnalyticsChatBotLoadedState(message: message)); + } + } catch (e) { + emit(AnalyticsErrorState(error: e.toString())); + } + } + + Future _handleChipEvent( + SelectAnalyticsChipEvent event, + Emitter emit + ) async { + emit(AnalyticsChipSelectedState(selectedChip: event.chipName)); + } + + String _generateResponse(String query) { + if (query.toLowerCase().contains('revenue')) { + return 'Based on current analytics, your revenue has increased by 15% compared to last month. The top performing channel is organic search with 43% contribution.'; + } else if (query.toLowerCase().contains('users') || query.toLowerCase().contains('visitors')) { + return 'You had 24,582 unique visitors this month, which is up 8.3% from last month. Average session duration is 3:24 minutes.'; + } else if (query.toLowerCase().contains('conversion')) { + return 'Your overall conversion rate is 3.2%, which is about industry average. Your best converting page is the Summer Sale landing page at 7.8%.'; + } else if (query.toLowerCase().contains('trend') || query.toLowerCase().contains('growth')) { + return 'I\'ve analyzed your growth trend. You\'re seeing consistent week-over-week growth of 2.1% in traffic and 1.7% in conversions over the past 3 months.'; + } else { + return 'I\'ve analyzed your analytics data. Overall performance looks positive with a 12% improvement in key metrics compared to the previous period. Would you like details on a specific metric?'; + } + } } \ No newline at end of file diff --git a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart index d3b87f4c5..c62c43684 100644 --- a/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart +++ b/flutter_application_1/lib/components/bloc/AnalyticsBloc/analytics_bloc_state.dart @@ -28,3 +28,38 @@ class AnalyticsLoadedState extends AnalyticsBlocState { required this.selectedMonth }); } + +class AnalyticsInitialState extends AnalyticsBlocState {} + +class AnalyticsChatBotLoadingState extends AnalyticsBlocState {} + +class AnalyticsChatBotLoadedState extends AnalyticsBlocState { + final String message; + final dynamic data; + + AnalyticsChatBotLoadedState({required this.message, this.data}); +} + +class AnalyticsErrorState extends AnalyticsBlocState { + final String error; + + AnalyticsErrorState({required this.error}); +} + +class AnalyticsChipSelectedState extends AnalyticsBlocState { + final String selectedChip; + + AnalyticsChipSelectedState({required this.selectedChip}); +} + +class AnalyticsGraphShowingState extends AnalyticsBlocState { + final List xList; + final List yList; + final String xTitle; + final String yTitle; + AnalyticsGraphShowingState( + {required this.xList, + required this.yList, + required this.xTitle, + required this.yTitle}); +} diff --git a/flutter_application_1/lib/components/view/analytics/analytics_view.dart b/flutter_application_1/lib/components/view/analytics/analytics_view.dart index 2053a4dea..170bd91b8 100644 --- a/flutter_application_1/lib/components/view/analytics/analytics_view.dart +++ b/flutter_application_1/lib/components/view/analytics/analytics_view.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:fl_chart/fl_chart.dart'; import 'package:flutter_application_1/components/bloc/AnalyticsBloc/analytics_bloc_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; import '../../../theme/colors.dart'; import '../../utils/helper/styles.dart'; @@ -73,18 +74,18 @@ class _AnalyticsViewState extends State ), floatingActionButton: ElevatedButton( onPressed: () { - // showModalBottomSheet( - // context: context, - // useSafeArea: true, - // isScrollControlled: true, - // builder: (BuildContext context) { - // return Padding( - // padding: EdgeInsets.only( - // bottom: MediaQuery.of(context).viewInsets.bottom, // Moves content up - // ), - // child: ChatBotBottomSheet(expensesBloc: expensesBloc), - // ); - // }); + showModalBottomSheet( + context: context, + useSafeArea: true, + isScrollControlled: true, + builder: (BuildContext context) { + return Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, // Moves content up + ), + child: AnalyticsChatBottomSheet(analyticsChatBloc: analyticsBlocBloc), + ); + }); }, style: ElevatedButton.styleFrom( backgroundColor: white, @@ -104,7 +105,7 @@ class _AnalyticsViewState extends State bloc: analyticsBlocBloc, builder: (context, state) { if (state is AnalyticsLoadingState) { - return const Center(child: CircularProgressIndicator()); + return Center(child: SpinKitCircle(color: primary,)); } if (state is AnalyticsLoadedState) { xAxis = state.xList; @@ -420,4 +421,354 @@ Widget weeklyExpenseGraph(BuildContext context, List xList, List yList sideTitles: SideTitles(showTitles: false), )))), ); +} +// The Bottom Sheet Widget +class AnalyticsChatBottomSheet extends StatefulWidget { + final AnalyticsBlocBloc analyticsChatBloc; + + const AnalyticsChatBottomSheet({ + required this.analyticsChatBloc, + Key? key, + }) : super(key: key); + + @override + State createState() => _AnalyticsChatBottomSheetState(); +} + +class _AnalyticsChatBottomSheetState extends State { + final TextEditingController _controller = TextEditingController(); + final ScrollController _scrollController = ScrollController(); + String? selectedChip; + List messages = []; + + @override + void dispose() { + _controller.dispose(); + _scrollController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + // Common analytics questions + List analyticsChips = [ + "Revenue Analysis", + "Conversion Rates", + "Growth Trends", + "Custom Query" + ]; + + return Container( + decoration: BoxDecoration( + color: Theme.of(context).scaffoldBackgroundColor, + borderRadius: const BorderRadius.vertical(top: Radius.circular(20)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 10, + spreadRadius: 1, + ) + ], + ), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), + child: BlocConsumer( + bloc: widget.analyticsChatBloc, + listener: (context, state) { + if (state is AnalyticsChatBotLoadedState) { + setState(() { + messages.add(ChatMessage( + content: state.message, + isFromBot: true, + timestamp: DateTime.now(), + )); + }); + + // Auto-scroll to bottom + WidgetsBinding.instance.addPostFrameCallback((_) { + if (_scrollController.hasClients) { + _scrollController.animateTo( + _scrollController.position.maxScrollExtent, + duration: const Duration(milliseconds: 300), + curve: Curves.easeOut, + ); + } + }); + + // Clear text field after response + _controller.clear(); + } else if (state is AnalyticsChipSelectedState) { + setState(() { + selectedChip = state.selectedChip; + + if (selectedChip != "Custom Query") { + _controller.text = selectedChip!; + } else { + _controller.clear(); + } + }); + } + }, + builder: (context, state) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar at the top + Center( + child: Container( + margin: const EdgeInsets.only(top: 8, bottom: 16), + width: 40, + height: 4, + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(2), + ), + ), + ), + + // Header with analytics icon + Row( + children: [ + Icon( + Icons.analytics, + color: Theme.of(context).primaryColor, + size: 28, + ), + const SizedBox(width: 10), + Text( + "Analytics Assistant", + style: TextStyle( + fontFamily: "medium", + fontSize: 22, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + + const SizedBox(height: 16), + + // Analytics topic chips + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: analyticsChips.map((label) { + return Padding( + padding: const EdgeInsets.only(right: 8.0), + child: ChoiceChip( + selected: selectedChip == label, + label: Text(label), + labelStyle: TextStyle( + fontWeight: selectedChip == label ? FontWeight.bold : FontWeight.normal, + ), + backgroundColor: Colors.grey.shade200, + selectedColor: Theme.of(context).primaryColor.withOpacity(0.2), + onSelected: (value) { + widget.analyticsChatBloc.add(SelectAnalyticsChipEvent(label)); + }, + ), + ); + }).toList(), + ), + ), + + const SizedBox(height: 16), + + // Chat messages area + Flexible( + child: messages.isEmpty + ? Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.chat_bubble_outline, + size: 48, + color: Colors.grey.shade400, + ), + const SizedBox(height: 16), + Text( + "Ask me about your analytics data", + style: TextStyle( + color: Colors.grey.shade600, + fontSize: 16, + ), + ), + ], + ), + ) + : ListView.builder( + controller: _scrollController, + itemCount: messages.length, + itemBuilder: (context, index) { + final message = messages[index]; + return ChatBubble( + message: message.content, + isFromBot: message.isFromBot, + ); + }, + ), + ), + + // Loading indicator + if (state is AnalyticsChatBotLoadingState) + Center( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 16.0), + child: SpinKitPulse( + color: Theme.of(context).primaryColor, + size: 40.0, + ), + ), + ), + + const SizedBox(height: 16), + + // Input field with send button + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(24), + border: Border.all( + color: Theme.of(context).primaryColor.withOpacity(0.5), + width: 1.5, + ), + color: Colors.grey.shade50, + ), + child: Row( + children: [ + Expanded( + child: TextField( + controller: _controller, + decoration: InputDecoration( + hintText: "Ask about analytics data...", + hintStyle: TextStyle( + fontFamily: "medium", + color: Colors.grey.shade500, + ), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + border: InputBorder.none, + ), + maxLines: null, + textCapitalization: TextCapitalization.sentences, + ), + ), + Material( + color: Colors.transparent, + child: InkWell( + borderRadius: BorderRadius.circular(24), + onTap: () { + if (_controller.text.isNotEmpty) { + final query = _controller.text; + + // Add user message to chat + setState(() { + messages.add(ChatMessage( + content: query, + isFromBot: false, + timestamp: DateTime.now(), + )); + }); + + // Send query to bloc + widget.analyticsChatBloc.add(SendAnalyticsQueryEvent(query)); + } + }, + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Icon( + Icons.send_rounded, + color: Theme.of(context).primaryColor, + ), + ), + ), + ), + ], + ), + ), + + const SizedBox(height: 16), + ], + ); + }, + ), + ), + ); + } +} + +// Chat Message Model +class ChatMessage { + final String content; + final bool isFromBot; + final DateTime timestamp; + + ChatMessage({ + required this.content, + required this.isFromBot, + required this.timestamp, + }); +} + +// Custom chat bubble widget +class ChatBubble extends StatelessWidget { + final String message; + final bool isFromBot; + + + const ChatBubble({ + required this.message, + required this.isFromBot, + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + margin: const EdgeInsets.symmetric(vertical: 8), + child: Row( + mainAxisAlignment: isFromBot ? MainAxisAlignment.start : MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (isFromBot) + Container( + margin: const EdgeInsets.only(right: 8), + child: CircleAvatar( + backgroundColor: Theme.of(context).primaryColor.withOpacity(0.2), + radius: 16, + child: Icon( + Icons.analytics, + size: 20, + color: Theme.of(context).primaryColor, + ), + ), + ), + Flexible( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration( + color: isFromBot + ? Colors.grey.shade100 + : Theme.of(context).primaryColor.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: isFromBot + ? Colors.grey.shade300 + : Theme.of(context).primaryColor.withOpacity(0.3), + width: 1, + ), + ), + child: Text( + message, + style: TextStyle( + fontSize: 15, + color: Colors.black87, + ), + ), + ), + ), + ], + ), + ); + } } \ No newline at end of file diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index b5875683d..d4efae4ed 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -224,6 +224,7 @@ class _ChatBotBottomSheetState extends State { String? selectedChip; final _controller = TextEditingController(); final _scrollController = ScrollController(); + final messages = []; @override void dispose() { diff --git a/flutter_application_1/lib/components/widgets/analytics_graph.dart b/flutter_application_1/lib/components/widgets/analytics_graph.dart new file mode 100644 index 000000000..fe1632ac4 --- /dev/null +++ b/flutter_application_1/lib/components/widgets/analytics_graph.dart @@ -0,0 +1,68 @@ +import 'package:fl_chart/fl_chart.dart'; +import 'package:flutter/material.dart'; + +class CustomGraph extends StatelessWidget { + final List xList; + final List yList; + final String xTitle; + final String yTitle; + + const CustomGraph({ + Key? key, + required this.xList, + required this.yList, + required this.xTitle, + required this.yTitle, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return AspectRatio( + aspectRatio: 1.5, // Adjust aspect ratio + child: Padding( + padding: const EdgeInsets.all(16.0), + child: LineChart( + LineChartData( + gridData: FlGridData(show: false), // Hide background grid + titlesData: FlTitlesData( + leftTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + reservedSize: 40, + getTitlesWidget: (value, meta) { + return Text(value.toString(), style: const TextStyle(fontSize: 12)); + }, + ), + ), + bottomTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + reservedSize: 40, + getTitlesWidget: (value, meta) { + return Text(value.toString(), style: const TextStyle(fontSize: 12)); + }, + ), + ), + topTitles: const AxisTitles(sideTitles: SideTitles(showTitles: false)), + rightTitles: const AxisTitles(sideTitles: SideTitles(showTitles: false)), + ), + borderData: FlBorderData(show: true), // Show chart border + lineBarsData: [ + LineChartBarData( + spots: List.generate( + xList.length, + (index) => FlSpot(xList[index], yList[index]), + ), + isCurved: true, // Smooth curve + color: Colors.blue, + barWidth: 3, + belowBarData: BarAreaData(show: false), // No fill color + dotData: FlDotData(show: true), // Show points + ), + ], + ), + ), + ), + ); + } +} From c0c2faacff766dfd8ce85eafa744014447d03abe Mon Sep 17 00:00:00 2001 From: Pra_Kas Date: Sun, 9 Mar 2025 10:25:21 +0530 Subject: [PATCH 18/24] Added reccuring expense --- .../bloc/expenses_bloc/expenses_bloc.dart | 14 +- .../bloc/expenses_bloc/expenses_state.dart | 3 +- .../view/expenses/expenses_view.dart | 123 ++++++++++++++++-- .../lib/service/expense_service.dart | 11 +- .../lib/service/helper/update_expense.dart | 5 +- 5 files changed, 137 insertions(+), 19 deletions(-) diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart index d8bff1238..82c2ac41b 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_bloc.dart @@ -35,20 +35,26 @@ class ExpensesBloc extends Bloc { Future expensePdfPickedEvent(ExpensePdfPickedEvent event, Emitter emit)async{ emit(ExpensePdfProcessingState()); await uploadPdf(event.pdf); - List> expenses = await getExpenses(); + dynamic val = await getExpenses(); + List> expenses = val["expenses"]; + List> recurringExpenses = val["recurringExpenses"]; emit(ExpensePdfProcessedState(expenses)); } Future expenseImagePickedEvent(ExpenseImagePickedEvent event, Emitter emit)async{ emit(ExpensesImageProcessingState()); await uploadBill(event.image); - List> expenses = await getExpenses(); + dynamic val = await getExpenses(); + List> expenses = val["expenses"]; + List> recurringExpenses = val["recurringExpenses"]; emit(ExpenseImageProcessedState(expenses)); } Future expensesInitialEvent(ExpensesInitialEvent event, Emitter emit) async { emit(ExpensesLoadingState()); - List> expenses = await getExpenses(); - emit(ExpensesLoadedState(expenses)); + dynamic val = await getExpenses(); + List> expenses = val["expenses"]; + List> recurringExpenses = val["recurringExpenses"]; + emit(ExpensesLoadedState(expenses,recurringExpenses)); } } diff --git a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart index 82083aaa2..7e294454f 100644 --- a/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart +++ b/flutter_application_1/lib/components/bloc/expenses_bloc/expenses_state.dart @@ -10,8 +10,9 @@ class ExpensesLoadingState extends ExpensesActionState {} class ExpensesLoadedState extends ExpensesActionState { final List> expenses; + final List> recurringExpenses; - ExpensesLoadedState(this.expenses); + ExpensesLoadedState(this.expenses,this.recurringExpenses); } class ExpensesErrorState extends ExpensesActionState {} diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index b5875683d..8a99a33d1 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/models/expense_model.dart'; import 'package:flutter_application_1/components/view/expenses/edit_expenses.dart'; import 'package:flutter_application_1/components/widgets/expense_card.dart'; +import 'package:flutter_application_1/service/helper/update_expense.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import '../../../theme/colors.dart'; @@ -21,7 +22,9 @@ class ExpensesView extends StatefulWidget { class _ExpensesViewState extends State { bool initialLoading = true; + bool isRecurring = false; List> expenses = []; + List> recurringExpenses = []; ExpensesBloc expensesBloc = ExpensesBloc(); @override @@ -41,6 +44,7 @@ class _ExpensesViewState extends State { if (state is ExpensesLoadedState) { initialLoading = false; expenses = state.expenses; + recurringExpenses = state.recurringExpenses; } if (state is ExpensesErrorState) { initialLoading = false; @@ -62,12 +66,39 @@ class _ExpensesViewState extends State { backgroundColor: bgColor, appBar: AppBar( backgroundColor: bgColor, + forceMaterialTransparency: true, title: Text( "Expenses", style: AppStyles.setAppStyle(black, 20, FontWeight.bold, "black"), ), - centerTitle: true, - leading: SizedBox(), + actions: [ + IconButton( + onPressed: () { + showModalBottomSheet( + context: context, + builder: (BuildContext context) { + return Column( + children: [ + Padding( + padding: const EdgeInsets.all(18.0), + child: Text( + "The below displayed expenses are considered as recurring expenses. Please verify them. You can simple add those by clicking on the check icon.",style: TextStyle(fontFamily: "medium"),), + ), + RecurringExpensesWidget(initialExpenses: recurringExpenses,), + ElevatedButton( + onPressed: () { + Navigator.pop(context); + }, + child: Text("Continue"), + ) + ], + ); + }); + }, + icon: Icon(Icons.info,color: primary,), + ) + ], + leading: Icon(Icons.money, color: black), ), floatingActionButton: Column(mainAxisAlignment: MainAxisAlignment.end, children: [ @@ -158,7 +189,9 @@ class _ExpensesViewState extends State { builder: (BuildContext context) { return Padding( padding: EdgeInsets.only( - bottom: MediaQuery.of(context).viewInsets.bottom, // Moves content up + bottom: MediaQuery.of(context) + .viewInsets + .bottom, // Moves content up ), child: ChatBotBottomSheet(expensesBloc: expensesBloc), ); @@ -328,10 +361,13 @@ class _ChatBotBottomSheetState extends State { selected: selectedChip == label, label: Text(label), labelStyle: TextStyle( - fontWeight: selectedChip == label ? FontWeight.bold : FontWeight.normal, + fontWeight: selectedChip == label + ? FontWeight.bold + : FontWeight.normal, ), backgroundColor: Colors.grey.shade200, - selectedColor: Theme.of(context).primaryColor.withOpacity(0.2), + selectedColor: + Theme.of(context).primaryColor.withOpacity(0.2), onSelected: (value) { setState(() { if (selectedChip == label) { @@ -349,7 +385,8 @@ class _ChatBotBottomSheetState extends State { }); widget.expensesBloc.add( - ExpenseChoiceShipSelectedEvent(selectedChip ?? "")); + ExpenseChoiceShipSelectedEvent( + selectedChip ?? "")); }, ), ); @@ -409,7 +446,8 @@ class _ChatBotBottomSheetState extends State { fontFamily: "medium", color: Colors.grey.shade500, ), - contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, vertical: 12), border: InputBorder.none, ), maxLines: null, @@ -423,7 +461,8 @@ class _ChatBotBottomSheetState extends State { onTap: () { if (_controller.text.isNotEmpty) { // Send message to bloc and wait for response - widget.expensesBloc.add(ExpensechatBotEvent(_controller.text)); + widget.expensesBloc + .add(ExpensechatBotEvent(_controller.text)); // Controller will be cleared after response is received } }, @@ -466,14 +505,16 @@ class ChatBubble extends StatelessWidget { return Container( margin: const EdgeInsets.symmetric(vertical: 8), child: Row( - mainAxisAlignment: isFromBot ? MainAxisAlignment.start : MainAxisAlignment.end, + mainAxisAlignment: + isFromBot ? MainAxisAlignment.start : MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.start, children: [ if (isFromBot) Container( margin: const EdgeInsets.only(right: 8), child: CircleAvatar( - backgroundColor: Theme.of(context).primaryColor.withOpacity(0.2), + backgroundColor: + Theme.of(context).primaryColor.withOpacity(0.2), radius: 16, child: Icon( Icons.android, @@ -511,3 +552,65 @@ class ChatBubble extends StatelessWidget { ); } } + +class RecurringExpensesWidget extends StatefulWidget { + final List> initialExpenses; + + const RecurringExpensesWidget({Key? key, required this.initialExpenses}) : super(key: key); + + @override + _RecurringExpensesWidgetState createState() => _RecurringExpensesWidgetState(); +} + +class _RecurringExpensesWidgetState extends State { + late List> recurringExpenses; + + @override + void initState() { + super.initState(); + recurringExpenses = List.from(widget.initialExpenses); + } + + void removeItem(int index, bool canSend) { + if (index >= 0 && index < recurringExpenses.length) { + createExpense(recurringExpenses[index]); + setState(() { + recurringExpenses.removeAt(index); + }); + } + } + + @override + Widget build(BuildContext context) { + return Column( + children: recurringExpenses.asMap().entries.map((entry) { + int index = entry.key; + Map expense = entry.value; + return Card( + margin: EdgeInsets.symmetric(vertical: 5, horizontal: 10), + child: ListTile( + title: Text( + expense['expense_title'], + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w500), + ), + subtitle: Text("Amount: ${expense['amount_spent']}"), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + IconButton( + icon: Icon(Icons.check_circle, color: Colors.green), + onPressed: () => removeItem(index,true), + ), + IconButton( + icon: Icon(Icons.cancel, color: Colors.red), + onPressed: () => removeItem(index,false), + ), + ], + ), + ), + ); + }).toList(), + ); + } +} + diff --git a/flutter_application_1/lib/service/expense_service.dart b/flutter_application_1/lib/service/expense_service.dart index 21ea72e1f..299e74e7a 100644 --- a/flutter_application_1/lib/service/expense_service.dart +++ b/flutter_application_1/lib/service/expense_service.dart @@ -58,17 +58,24 @@ Future uploadPdf(FilePickerResult pdf) async { } -Future>> getExpenses() async { +Future getExpenses() async { try{ List> expenses = []; + List> recurringExpenses = []; var response = await http.get(Uri.parse("${AppValues.ip}getExpense")); if(response.statusCode == 200){ var data = jsonDecode(response.body); + for(var expense in data["data"]){ + recurringExpenses.add(expense); + } for(var expense in data["message"]){ expenses.add(expense); } print("Success: $expenses"); - return expenses; + return { + "expenses": expenses, + "recurringExpenses": recurringExpenses + }; } } catch(e){ diff --git a/flutter_application_1/lib/service/helper/update_expense.dart b/flutter_application_1/lib/service/helper/update_expense.dart index 12168d85c..d2c6fccf4 100644 --- a/flutter_application_1/lib/service/helper/update_expense.dart +++ b/flutter_application_1/lib/service/helper/update_expense.dart @@ -28,12 +28,13 @@ Future updateExpense(Map expense) async { Future createExpense(Map expense) async { try { var request = await http.post( - Uri.parse("${AppValues.ip}/addExpense"), - body: jsonEncode(expense), + Uri.parse("${AppValues.ip}addExpense"), + body: jsonEncode({"data":expense}), headers: { "Content-Type": "application/json", } ); + print("Completed request ${request.statusCode}"); if (request.statusCode == 200) { return true; } From d52dce8a0818366b8b9cc1c15ebdf6271dc6cfe5 Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 10:28:22 +0530 Subject: [PATCH 19/24] 1. jwt token added. --- .../edit_expense_bloc/edit_expense_bloc.dart | 12 + .../edit_expense_bloc/edit_expense_event.dart | 5 + .../lib/components/view/Auth/login_view.dart | 1 + .../components/view/expenses/add_income.dart | 210 ++++++++++++++++++ .../view/expenses/edit_expenses.dart | 6 +- .../view/expenses/expenses_view.dart | 15 ++ .../lib/service/expense_service.dart | 12 +- .../lib/service/helper/global_service.dart | 1 + .../lib/service/helper/update_expense.dart | 24 +- 9 files changed, 281 insertions(+), 5 deletions(-) create mode 100644 flutter_application_1/lib/components/view/expenses/add_income.dart diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart index 702ddca0b..f60fe117f 100644 --- a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_bloc.dart @@ -11,6 +11,7 @@ part 'edit_expense_state.dart'; class EditExpenseBloc extends Bloc { EditExpenseBloc() : super(EditExpenseInitial()) { on (editExpenseSaveEvent); + on (addIncomeSaveEvent); } Future editExpenseSaveEvent(EditExpenseSaveEvent event, Emitter emit) async { @@ -35,4 +36,15 @@ class EditExpenseBloc extends Bloc { } } } + + Future addIncomeSaveEvent(AddIncomeSaveEvent event, Emitter emit) async { + emit(EditExpenseSavingState()); + Map incomeData = event.income; + bool isIncomeCreated = await addIncome(incomeData); + if (isIncomeCreated) { + emit(EditExpenseSavedState()); + } else { + emit(EditExpenseErrorState()); + } + } } diff --git a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart index d93fd3d54..42a8ce014 100644 --- a/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart +++ b/flutter_application_1/lib/components/bloc/edit_expense_bloc/edit_expense_event.dart @@ -7,3 +7,8 @@ class EditExpenseSaveEvent extends EditExpenseEvent { bool isEdit; EditExpenseSaveEvent({required this.expense, required this.isEdit}); } + +class AddIncomeSaveEvent extends EditExpenseEvent { + final Map income; + AddIncomeSaveEvent({required this.income}); +} diff --git a/flutter_application_1/lib/components/view/Auth/login_view.dart b/flutter_application_1/lib/components/view/Auth/login_view.dart index 017db1f36..14f2b0d8d 100644 --- a/flutter_application_1/lib/components/view/Auth/login_view.dart +++ b/flutter_application_1/lib/components/view/Auth/login_view.dart @@ -218,6 +218,7 @@ class LoginPage extends StatelessWidget { ); await FirebaseAuth.instance.signInWithCredential(credential); String? jwtToken = await FirebaseAuth.instance.currentUser?.getIdToken(); + print("JWT token : $jwtToken"); if (jwtToken == null) { throw Exception('Failed to get JWT token'); } diff --git a/flutter_application_1/lib/components/view/expenses/add_income.dart b/flutter_application_1/lib/components/view/expenses/add_income.dart new file mode 100644 index 000000000..8e3dfa8a6 --- /dev/null +++ b/flutter_application_1/lib/components/view/expenses/add_income.dart @@ -0,0 +1,210 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_application_1/components/bloc/edit_expense_bloc/edit_expense_bloc.dart'; +import 'package:flutter_application_1/components/utils/helper/styles.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:intl/intl.dart'; + +import '../../../theme/colors.dart'; +import '../../bloc/expenses_bloc/expenses_bloc.dart'; + +class AddIncome extends StatefulWidget { + const AddIncome({super.key}); + + @override + State createState() => _AddIncomeState(); +} + +class _AddIncomeState extends State { + + TextEditingController amountController = TextEditingController(); + TextEditingController incomeTitleController = TextEditingController(); + TextEditingController dateController = TextEditingController(); + EditExpenseBloc expensesBloc = EditExpenseBloc(); + bool isSaving = false; + + @override + Widget build(BuildContext context) { + return BlocConsumer( + bloc: expensesBloc, + listener: (context, state) { + if (state is EditExpenseSavedState) { + isSaving = false; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text("Income added successfully"), + backgroundColor: primary, + ), + ); + Navigator.pop(context); + } + if (state is EditExpenseErrorState) { + isSaving = false; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text("Error in adding income"), + backgroundColor: primary, + ), + ); + } + if (state is EditExpenseSavingState) { + isSaving = true; + } + }, + builder: (context, state) { + return Scaffold( + backgroundColor: bgColor, + appBar: AppBar( + backgroundColor: bgColor, + title: Text( + "Add Income", + style: AppStyles.setAppStyle(black, 20, FontWeight.bold, "black"), + ), + ), + body: bodyPartOfIncome(), + ); + }, + ); + } + + Widget bodyPartOfIncome() { + return Padding( + padding: const EdgeInsets.all(20), + child: Column( + children: [ + textFieldForCreateScreen( + "Income Title (source)", incomeTitleController), + textFieldForCreateScreen("Salary amount", amountController), + dateWidget(), + isSaving ? SpinKitCircle(color: primary,) : ElevatedButton( + onPressed: () { + Map incomeData = { + "expense_title": incomeTitleController.text, + "merchant_name" : "", + "amount_spent": amountController.text, + "date": dateController.text, + "category": "income", + "payment_method": "salary", + }; + expensesBloc.add(AddIncomeSaveEvent(income: incomeData)); + }, + style: ElevatedButton.styleFrom( + backgroundColor: primary, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10)), + ), + child: Text("Add income", style: AppStyles.setAppStyle( + white, 16, FontWeight.normal, "medium"),), + ), + ], + ), + ); + } + + + Widget dateWidget() { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, vertical: 16.0), + decoration: BoxDecoration( + color: filterSortBackground, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: border)), + child: InkWell( + enableFeedback: true, + onTap: () async { + DateTime? pickedDate = await showDatePicker( + context: context, + initialDate: + (dateController.text.isNotEmpty) + ? DateTime + .parse(dateController.text) + : DateTime.now(), + firstDate: DateTime(2000), lastDate: DateTime(2050), + ); + if (pickedDate != null) { + setState(() { + dateController.text = + DateFormat('dd-MM-yyyy') + .format(pickedDate); + }); + } + }, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + dateController.text.isNotEmpty + ? dateController.text + : 'dd-mm-yyyy', + style: const TextStyle( + fontFamily: 'medium', + color: Colors.grey, + ), + ), + Icon(Icons.calendar_month) + ], + ), + ), + ), + ); + } + + Widget textFieldForCreateScreen(String labelText, + TextEditingController textEditingController) { + return Padding( + padding: const EdgeInsets.only(bottom: 10), + child: TextFormField( + keyboardType: (labelText == "Salary amount") + ? TextInputType.number + : TextInputType.text, + controller: textEditingController, + style: const TextStyle(fontFamily: "regular"), + decoration: InputDecoration( + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: BorderSide( + color: primary, + width: 0.5 + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: BorderSide( + color: primary, + width: 0.5 + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: BorderSide( + color: primary, + width: 0.5 + ), + ), + labelText: labelText, + labelStyle: TextStyle( + fontFamily: "regular", + color: grey, + fontSize: 16, + fontWeight: FontWeight.w400, + fontStyle: FontStyle.normal, + ), + floatingLabelStyle: TextStyle( + fontFamily: "regular", + color: primary, + fontSize: 16, + fontWeight: FontWeight.w400, + fontStyle: FontStyle.normal, + ), + fillColor: white, + filled: true), + maxLines: 10, + minLines: 1, + ), + ); + } +} diff --git a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart index a1f84ddea..9742f9608 100644 --- a/flutter_application_1/lib/components/view/expenses/edit_expenses.dart +++ b/flutter_application_1/lib/components/view/expenses/edit_expenses.dart @@ -93,7 +93,7 @@ class _EditExpenseScreenState extends State { builder: (context, state) { return Padding( padding: const EdgeInsets.all(20), - child: Column( + child: ListView( children: [ textFieldForCreateScreen("Expense Title", expenseTitleController), textFieldForCreateScreen("Merchant Name", merchantNameController), @@ -149,7 +149,7 @@ class _EditExpenseScreenState extends State { Map expenseData = widget.isEdit ? { "expense_title": expenseTitleController.text, "merchant_name": merchantNameController.text, - "amount_spent": double.parse(totalAmountController.text), + "amount_spent": -double.parse(totalAmountController.text), "payment_method": paymentMethodController.text, "date_time": dateController.text.trim(), "category": selectedCategory, @@ -158,7 +158,7 @@ class _EditExpenseScreenState extends State { } : { "expense_title": expenseTitleController.text, "merchant_name": merchantNameController.text, - "amount_spent": double.parse(totalAmountController.text), + "amount_spent": -double.parse(totalAmountController.text), "payment_method": paymentMethodController.text, "date_time": dateController.text.trim(), "category": selectedCategory, diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index d4efae4ed..909143b08 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -3,6 +3,7 @@ import 'dart:math'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/models/expense_model.dart'; +import 'package:flutter_application_1/components/view/expenses/add_income.dart'; import 'package:flutter_application_1/components/view/expenses/edit_expenses.dart'; import 'package:flutter_application_1/components/widgets/expense_card.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -79,6 +80,18 @@ class _ExpensesViewState extends State { builder: (BuildContext context) { return Wrap( children: [ + ListTile( + title: Center( + child: Text( + "Add Income", + style: TextStyle( + color: Colors.grey, fontFamily: "medium"), + )), + onTap: () { + Navigator.pop(context); + Navigator.push(context, MaterialPageRoute(builder: (context) => AddIncome())); + }, + ), ListTile( title: Center( child: Text( @@ -87,6 +100,7 @@ class _ExpensesViewState extends State { color: Colors.grey, fontFamily: "medium"), )), onTap: () { + Navigator.pop(context); Navigator.push( context, MaterialPageRoute( @@ -94,6 +108,7 @@ class _ExpensesViewState extends State { expenseData: {}, isEdit: false, ))); + }, ), ListTile( diff --git a/flutter_application_1/lib/service/expense_service.dart b/flutter_application_1/lib/service/expense_service.dart index 21ea72e1f..2a01c39b0 100644 --- a/flutter_application_1/lib/service/expense_service.dart +++ b/flutter_application_1/lib/service/expense_service.dart @@ -13,6 +13,9 @@ Future uploadBill(XFile image) async { print("The string is $base64String"); var response = await http.post( Uri.parse("${AppValues.ip}addExpenseByBill"), + headers: { + "Authorization" : AppValues.jwtToken + }, body: {"image64": base64String}, ); if (response.statusCode == 200) { @@ -37,6 +40,7 @@ Future uploadPdf(FilePickerResult pdf) async { ); request.headers.addAll({ "Content-Type": "multipart/form-data", + "Authorization" : AppValues.jwtToken }); File file = File(pdf.files.single.path!); request.files.add(await http.MultipartFile.fromPath( @@ -61,7 +65,13 @@ Future uploadPdf(FilePickerResult pdf) async { Future>> getExpenses() async { try{ List> expenses = []; - var response = await http.get(Uri.parse("${AppValues.ip}getExpense")); + var response = await http.get( + Uri.parse("${AppValues.ip}getExpense"), + headers: { + "Content-Type": "multipart/form-data", + "Authorization" : AppValues.jwtToken + } + ); if(response.statusCode == 200){ var data = jsonDecode(response.body); for(var expense in data["message"]){ diff --git a/flutter_application_1/lib/service/helper/global_service.dart b/flutter_application_1/lib/service/helper/global_service.dart index c353cd5e2..12a35e193 100644 --- a/flutter_application_1/lib/service/helper/global_service.dart +++ b/flutter_application_1/lib/service/helper/global_service.dart @@ -12,6 +12,7 @@ class GlobalService { Uri.parse("${AppValues.ip}$endpoint"); // ✅ Uses passed endpoint final Map headers = { "Content-Type": "application/json", + "Authorization" : AppValues.jwtToken }; try { diff --git a/flutter_application_1/lib/service/helper/update_expense.dart b/flutter_application_1/lib/service/helper/update_expense.dart index 12168d85c..e40a0aa6d 100644 --- a/flutter_application_1/lib/service/helper/update_expense.dart +++ b/flutter_application_1/lib/service/helper/update_expense.dart @@ -13,6 +13,7 @@ Future updateExpense(Map expense) async { body: jsonEncode(expense), headers: { "Content-Type": "application/json", + "Authorization" : AppValues.jwtToken } ); if (request.statusCode == 200) { @@ -28,10 +29,11 @@ Future updateExpense(Map expense) async { Future createExpense(Map expense) async { try { var request = await http.post( - Uri.parse("${AppValues.ip}/addExpense"), + Uri.parse("${AppValues.ip}addExpense"), body: jsonEncode(expense), headers: { "Content-Type": "application/json", + "Authorization" : AppValues.jwtToken } ); if (request.statusCode == 200) { @@ -42,4 +44,24 @@ Future createExpense(Map expense) async { print("Error on create expense : $e"); return false; } +} + +Future addIncome(Map income) async { + try { + var request = await http.post( + Uri.parse("${AppValues.ip}/addExpense"), + body: jsonEncode(income), + headers: { + "Content-Type": "application/json", + "Authorization" : AppValues.jwtToken + } + ); + if (request.statusCode == 200) { + return true; + } + return false; + } catch (e) { + print("Error on add income : $e"); + return false; + } } \ No newline at end of file From 0c46e500fd56db003621a4f8266f9e4c971ccc1b Mon Sep 17 00:00:00 2001 From: Pra_Kas Date: Sun, 9 Mar 2025 10:49:23 +0530 Subject: [PATCH 20/24] Design changes --- .../lib/components/view/analytics/analytics_view.dart | 3 +-- .../lib/components/view/settings/settings.dart | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flutter_application_1/lib/components/view/analytics/analytics_view.dart b/flutter_application_1/lib/components/view/analytics/analytics_view.dart index 170bd91b8..c777c15ae 100644 --- a/flutter_application_1/lib/components/view/analytics/analytics_view.dart +++ b/flutter_application_1/lib/components/view/analytics/analytics_view.dart @@ -68,9 +68,8 @@ class _AnalyticsViewState extends State 'Analytics', style: AppStyles.setAppStyle(black, 20, FontWeight.bold, 'black'), ), - centerTitle: true, forceMaterialTransparency: true, - leading: SizedBox(), + leading: Icon(Icons.analytics_outlined), ), floatingActionButton: ElevatedButton( onPressed: () { diff --git a/flutter_application_1/lib/components/view/settings/settings.dart b/flutter_application_1/lib/components/view/settings/settings.dart index 1424e0112..599ec7c23 100644 --- a/flutter_application_1/lib/components/view/settings/settings.dart +++ b/flutter_application_1/lib/components/view/settings/settings.dart @@ -30,10 +30,11 @@ class _ProfilePageState extends State { appBar: AppBar( title: const Text( 'My Profile', - style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + style: TextStyle(color: Colors.white, fontFamily: "medium"), ), backgroundColor: Colors.blue, elevation: 0, + leading: Icon(Icons.settings_outlined), ), body: SingleChildScrollView( child: Column( From ab3b16ec0ac567525f96c2c706960c895acc82cb Mon Sep 17 00:00:00 2001 From: Prakash kumar M <103827847+Pra-kas@users.noreply.github.com> Date: Sun, 9 Mar 2025 10:51:13 +0530 Subject: [PATCH 21/24] Update README.md --- README.md | 71 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 48a05e012..d08f74474 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ - # Define 3.0 The official template repository for Define 3.0 @@ -6,35 +5,51 @@ The official template repository for Define 3.0 -# < Project Name > - Cover Image If applicable +# FINFLOW ### Team Information -- **Team Name**: -- **Track**: < Track > +- *Team Name*: DEBUG DRAGONS +- *Track*: FINTECH ### Team Members | Name | Role | GitHub | LinkedIn | |------|------|--------|----------| -| [Full Name] | [Role] | [@username](https://github.com/username) | [Profile](https://linkedin.com/in/username) | -| [Full Name] | [Role] | [@username](https://github.com/username) | [Profile](https://linkedin.com/in/username) | -| [Full Name] | [Role] | [@username](https://github.com/username) | [Profile](https://linkedin.com/in/username) | -| [Full Name] | [Role] | [@username](https://github.com/username) | [Profile](https://linkedin.com/in/username) | +| MUTHUVEL A | BACKEND DEVELOPMENT | [MuthuvelA](https://github.com/muthuvela) | [Profile](https://linkedin.com/in/muthuvela) | +| KAMALESH R | BACKEND DEVELOPMENT | [Kamaleshbala01](https://github.com/kamaleshbala01) | [Profile](https://linkedin.com/in/kamaleshbala) | +| PRAKASH KUMAR M | FRONTEND DEVELOPMENT | [Pra-Kas](https://github.com/Pra-kas) | [Profile](https://linkedin.com/in/prakashkumar-m) | +| GOPINATH S | FRONTEND DEVELOPMENT | [igopi77](https://github.com/igopi77) | [Profile](https://linkedin.com/in/gopinath-siva-191a27259) | ## Project Details ### Overview -_A concise summary of your project (2-3 sentences)_ +1. Mobile Application to assist user on financial FAQs +2. Dashboard to visualise the income and expense ### Problem Statement -_Describe the problem your project aims to solve_ +Develop a basic prototype of a fintech website with an AI-powered chatbot that provides users with financial insights and customer support. The website should have a clean, user-friendly interface with a simple dashboard displaying sample financial data and a chatbot capable of handling basic FAQs related to fintech services ### Solution -_Explain your approach to solving the problem_ +Start + Users register and integrate their past financial transactions with AI for personalized insights. + Only finance-related questions are allowed. +User Interaction & Data Input + Users can provide financial data such as expenses and income through: + Bills (image upload for AI processing) + Bank statements + Manual entry +AI-Powered Insights & Responses + AI processes financial data to answer finance-related queries. + Users receive personalized insights based on their financial history. + Follw-up questions can be asked to refine responses. +Financial Management Features + AI-driven financial improvement suggestions are sent via push notifications. + An analytics dashboard visually summarizes the user’s financial history. +Finish + The chatbot ensures a seamless and interactive financial advisory experience, helping users make better financial decisions._ ### Demo [![Project Demo](https://img.youtube.com/vi/VIDEO_ID/0.jpg)](https://www.youtube.com/watch?v=VIDEO_ID) -_Replace VIDEO_ID with your YouTube video ID or provide an alternative demo link_ +Replace VIDEO_ID with your YouTube video ID or provide an alternative demo link ### Live Project [Project Name](https://your-project-url.com) @@ -42,17 +57,15 @@ _Replace VIDEO_ID with your YouTube video ID or provide an alternative demo link ## Technical Implementation ### Technologies Used -- **Frontend**: [Technologies] -- **Backend**: [Technologies] -- **Database**: [Technologies] -- **APIs**: [Technologies] -- **DevOps**: [Technologies] -- **Other Tools**: [Technologies] +- *Frontend*: [Flutter] +- *Backend*: [Nodejs,Express] +- *Database*: [MongoDB] +- *APIs*: [GeminiAPI] ### Key Features -- Feature 1 -- Feature 2 -- Feature 3 +- Recurring items automatic suggestion +- Personalised insights +- Data extraction from document ## Setup Instructions @@ -62,25 +75,25 @@ _Replace VIDEO_ID with your YouTube video ID or provide an alternative demo link - Requirement 3 ### Installation -```bash +bash + -``` ### Running the Project -```bash +bash + -``` ## Additional Resources ### Project Timeline -_Brief overview of your development process and milestones_ +Brief overview of your development process and milestones ### Challenges Faced -_Discuss technical challenges and how you overcame them_ +Discuss technical challenges and how you overcame them ### Future Enhancements -_Share your vision for future development_ +Share your vision for future development ### References (if any) - [Reference 1](link) From 0bee365788784859ef2139ea9d7eba98c999641a Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 10:51:31 +0530 Subject: [PATCH 22/24] 1. jwt token added. for all --- .../lib/components/view/Auth/login_view.dart | 17 +++++-- .../lib/components/view/main_screeen.dart | 3 +- .../lib/components/view/splash_screen.dart | 6 +++ .../lib/service/auth/auth.dart | 46 +++++++++++++++++++ .../lib/service/expense_service.dart | 7 +-- .../lib/service/helper/global_service.dart | 2 +- .../lib/service/helper/update_expense.dart | 6 +-- 7 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 flutter_application_1/lib/service/auth/auth.dart diff --git a/flutter_application_1/lib/components/view/Auth/login_view.dart b/flutter_application_1/lib/components/view/Auth/login_view.dart index 14f2b0d8d..358904d2b 100644 --- a/flutter_application_1/lib/components/view/Auth/login_view.dart +++ b/flutter_application_1/lib/components/view/Auth/login_view.dart @@ -2,6 +2,7 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/view/main_screeen.dart'; import 'package:flutter_application_1/data/appvalues.dart'; +import 'package:flutter_application_1/service/auth/auth.dart'; import 'package:google_sign_in/google_sign_in.dart'; class LoginPage extends StatelessWidget { @@ -223,11 +224,17 @@ class LoginPage extends StatelessWidget { throw Exception('Failed to get JWT token'); } AppValues.jwtToken = jwtToken; - Navigator.pushAndRemoveUntil( - context, - MaterialPageRoute(builder: (context) => const MainScreen()), - (Route route) => false, - ); + bool isAuthenticated = await authService(); + if (isAuthenticated) { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const MainScreen()), + (Route route) => false, + ); + } + else { + throw Exception("Unauthorized"); + } } catch (e) { print("Error in google sign in $e"); ScaffoldMessenger.of(context).showSnackBar( diff --git a/flutter_application_1/lib/components/view/main_screeen.dart b/flutter_application_1/lib/components/view/main_screeen.dart index 05b731093..c08ac8700 100644 --- a/flutter_application_1/lib/components/view/main_screeen.dart +++ b/flutter_application_1/lib/components/view/main_screeen.dart @@ -5,6 +5,7 @@ import 'package:flutter_application_1/components/models/user_model.dart'; import 'package:flutter_application_1/components/view/analytics/analytics_view.dart'; import 'package:flutter_application_1/components/view/expenses/expenses_view.dart'; import 'package:flutter_application_1/components/view/settings/settings.dart'; +import 'package:flutter_application_1/service/auth/auth.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import '../../service/notification_service.dart'; @@ -46,7 +47,6 @@ class _MainScreenState extends State { UserModel.name = FirebaseAuth.instance.currentUser!.displayName!; UserModel.email = FirebaseAuth.instance.currentUser!.email!; UserModel.photoUrl = FirebaseAuth.instance.currentUser!.photoURL!; - UserModel.phone = FirebaseAuth.instance.currentUser!.phoneNumber!; } } @@ -61,6 +61,7 @@ class _MainScreenState extends State { if (settings.authorizationStatus == AuthorizationStatus.authorized) { print("Has permission"); // do api call to backend to create FCM + // await sendFCM(); // enabled after the backend implemetation. } else { } diff --git a/flutter_application_1/lib/components/view/splash_screen.dart b/flutter_application_1/lib/components/view/splash_screen.dart index 6e30c8360..7f58770f7 100644 --- a/flutter_application_1/lib/components/view/splash_screen.dart +++ b/flutter_application_1/lib/components/view/splash_screen.dart @@ -2,6 +2,7 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter_application_1/components/view/Auth/login_view.dart'; import 'package:flutter_application_1/components/view/main_screeen.dart'; +import 'package:flutter_application_1/data/appvalues.dart'; import '../../theme/colors.dart'; @@ -34,6 +35,11 @@ class _SplashScreenState extends State { (Route route) => false, ); } else { + String? jwtToken = await user.getIdToken(); + if (jwtToken == null) { + throw Exception("Unauthorized"); + } + AppValues.jwtToken = jwtToken; // User is logged in, navigate to MainScreen Navigator.pushAndRemoveUntil( context, diff --git a/flutter_application_1/lib/service/auth/auth.dart b/flutter_application_1/lib/service/auth/auth.dart new file mode 100644 index 000000000..0808a017a --- /dev/null +++ b/flutter_application_1/lib/service/auth/auth.dart @@ -0,0 +1,46 @@ + +import 'dart:convert'; +import 'package:http/http.dart' as http; + +import '../../data/appvalues.dart'; +Future authService() async { + try { + var request = await http.get( + Uri.parse("${AppValues.ip}login"), + headers: { + "Content-Type": "application/json", + "Authorization" : AppValues.jwtToken + } + ); + if (request.statusCode == 200) { + return true; + } + return false; + } catch (e) { + print("Error on add income : $e"); + return false; + } +} + +Future sendFCM() async { + try { + Map body = { + "fcm" : AppValues.fcm + }; + var request = await http.post( + Uri.parse("${AppValues.ip}fcm"), + headers: { + "Content-Type": "application/json", + "Authorization" : AppValues.jwtToken + }, + body: jsonEncode(body) + ); + if (request.statusCode == 200) { + return true; + } + return false; + } catch (e) { + print("Error on add income : $e"); + return false; + } +} \ No newline at end of file diff --git a/flutter_application_1/lib/service/expense_service.dart b/flutter_application_1/lib/service/expense_service.dart index 2a01c39b0..0d8c4a34e 100644 --- a/flutter_application_1/lib/service/expense_service.dart +++ b/flutter_application_1/lib/service/expense_service.dart @@ -14,7 +14,7 @@ Future uploadBill(XFile image) async { var response = await http.post( Uri.parse("${AppValues.ip}addExpenseByBill"), headers: { - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" }, body: {"image64": base64String}, ); @@ -40,7 +40,7 @@ Future uploadPdf(FilePickerResult pdf) async { ); request.headers.addAll({ "Content-Type": "multipart/form-data", - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" }); File file = File(pdf.files.single.path!); request.files.add(await http.MultipartFile.fromPath( @@ -65,11 +65,12 @@ Future uploadPdf(FilePickerResult pdf) async { Future>> getExpenses() async { try{ List> expenses = []; + // print("JWT token : ${AppValues.jwtToken}"); var response = await http.get( Uri.parse("${AppValues.ip}getExpense"), headers: { "Content-Type": "multipart/form-data", - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" } ); if(response.statusCode == 200){ diff --git a/flutter_application_1/lib/service/helper/global_service.dart b/flutter_application_1/lib/service/helper/global_service.dart index 12a35e193..94c80ae8e 100644 --- a/flutter_application_1/lib/service/helper/global_service.dart +++ b/flutter_application_1/lib/service/helper/global_service.dart @@ -12,7 +12,7 @@ class GlobalService { Uri.parse("${AppValues.ip}$endpoint"); // ✅ Uses passed endpoint final Map headers = { "Content-Type": "application/json", - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" }; try { diff --git a/flutter_application_1/lib/service/helper/update_expense.dart b/flutter_application_1/lib/service/helper/update_expense.dart index e40a0aa6d..19668963c 100644 --- a/flutter_application_1/lib/service/helper/update_expense.dart +++ b/flutter_application_1/lib/service/helper/update_expense.dart @@ -13,7 +13,7 @@ Future updateExpense(Map expense) async { body: jsonEncode(expense), headers: { "Content-Type": "application/json", - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" } ); if (request.statusCode == 200) { @@ -33,7 +33,7 @@ Future createExpense(Map expense) async { body: jsonEncode(expense), headers: { "Content-Type": "application/json", - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" } ); if (request.statusCode == 200) { @@ -53,7 +53,7 @@ Future addIncome(Map income) async { body: jsonEncode(income), headers: { "Content-Type": "application/json", - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" } ); if (request.statusCode == 200) { From bc5d7921059d076efdb37b1aff4732f56f0c95ef Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 10:55:06 +0530 Subject: [PATCH 23/24] auth jwt added --- flutter_application_1/lib/service/auth/auth.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flutter_application_1/lib/service/auth/auth.dart b/flutter_application_1/lib/service/auth/auth.dart index 0808a017a..17a2154c1 100644 --- a/flutter_application_1/lib/service/auth/auth.dart +++ b/flutter_application_1/lib/service/auth/auth.dart @@ -9,7 +9,7 @@ Future authService() async { Uri.parse("${AppValues.ip}login"), headers: { "Content-Type": "application/json", - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" } ); if (request.statusCode == 200) { @@ -31,7 +31,7 @@ Future sendFCM() async { Uri.parse("${AppValues.ip}fcm"), headers: { "Content-Type": "application/json", - "Authorization" : AppValues.jwtToken + "Authorization" : "Bearer ${AppValues.jwtToken}" }, body: jsonEncode(body) ); From fb3b0d8ae87bc5ae03fb63eedba9d384b6d0814b Mon Sep 17 00:00:00 2001 From: Gopinath S Date: Sun, 9 Mar 2025 11:44:05 +0530 Subject: [PATCH 24/24] flutter release done. --- .../android/app/build.gradle | 16 +++++ .../android/app/src/main/AndroidManifest.xml | 5 -- .../view/analytics/analytics_view.dart | 4 +- .../view/expenses/expenses_view.dart | 6 +- .../lib/components/view/main_screeen.dart | 2 +- .../lib/components/widgets/expense_card.dart | 2 +- .../lib/service/expense_service.dart | 3 + flutter_application_1/pubspec.lock | 66 ++++++++++++------- 8 files changed, 67 insertions(+), 37 deletions(-) diff --git a/flutter_application_1/android/app/build.gradle b/flutter_application_1/android/app/build.gradle index eac3b2668..cd44dac59 100644 --- a/flutter_application_1/android/app/build.gradle +++ b/flutter_application_1/android/app/build.gradle @@ -11,6 +11,22 @@ android { compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion + signingConfigs { + release { + storeFile file("upload-keystore.jks") + storePassword "Gopinath S" + keyAlias "upload" + keyPassword "Gopinath S" + } + } + buildTypes { + release { + signingConfig signingConfigs.release + minifyEnabled false + shrinkResources false + } + } + compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/flutter_application_1/android/app/src/main/AndroidManifest.xml b/flutter_application_1/android/app/src/main/AndroidManifest.xml index bcc91b221..c814c9954 100644 --- a/flutter_application_1/android/app/src/main/AndroidManifest.xml +++ b/flutter_application_1/android/app/src/main/AndroidManifest.xml @@ -35,11 +35,6 @@ - - minimumSize: const Size(50, 50), ), child: Icon( - Icons.star, + Icons.reddit, size: 35, - color: Colors.green, + color: Colors.orange, ), ), body: Padding( diff --git a/flutter_application_1/lib/components/view/expenses/expenses_view.dart b/flutter_application_1/lib/components/view/expenses/expenses_view.dart index 9063cf80d..503f74d03 100644 --- a/flutter_application_1/lib/components/view/expenses/expenses_view.dart +++ b/flutter_application_1/lib/components/view/expenses/expenses_view.dart @@ -191,7 +191,7 @@ class _ExpensesViewState extends State { child: Icon( Icons.add, size: 35, - color: Colors.green, + color: Colors.orange, ), ), SizedBox(height: 20), @@ -219,9 +219,9 @@ class _ExpensesViewState extends State { minimumSize: const Size(50, 50), ), child: Icon( - Icons.star, + Icons.reddit, size: 35, - color: Colors.green, + color: Colors.orange, ), ), ]), diff --git a/flutter_application_1/lib/components/view/main_screeen.dart b/flutter_application_1/lib/components/view/main_screeen.dart index c08ac8700..f87023a7f 100644 --- a/flutter_application_1/lib/components/view/main_screeen.dart +++ b/flutter_application_1/lib/components/view/main_screeen.dart @@ -61,7 +61,7 @@ class _MainScreenState extends State { if (settings.authorizationStatus == AuthorizationStatus.authorized) { print("Has permission"); // do api call to backend to create FCM - // await sendFCM(); // enabled after the backend implemetation. + await sendFCM(); // enabled after the backend implemetation. } else { } diff --git a/flutter_application_1/lib/components/widgets/expense_card.dart b/flutter_application_1/lib/components/widgets/expense_card.dart index 9da4f859d..4931ac08f 100644 --- a/flutter_application_1/lib/components/widgets/expense_card.dart +++ b/flutter_application_1/lib/components/widgets/expense_card.dart @@ -66,7 +66,7 @@ class ExpenseCard extends StatelessWidget { ), const SizedBox(height: 4), Text( - '${DateFormat.yMMMd().format(parsedDate)} • ${DateFormat.jm().format(parsedDate)}', + DateFormat.yMMMd().format(parsedDate), style: TextStyle(fontSize: 12, color: Colors.grey[600]), ), ], diff --git a/flutter_application_1/lib/service/expense_service.dart b/flutter_application_1/lib/service/expense_service.dart index 95a5c8940..26bae708c 100644 --- a/flutter_application_1/lib/service/expense_service.dart +++ b/flutter_application_1/lib/service/expense_service.dart @@ -99,6 +99,9 @@ Future getChatBotResponse(String message) async { try { var response = await http.post( Uri.parse("${AppValues.ip}botQuery"), + headers: { + "Authorization" : "Bearer ${AppValues.jwtToken}" + }, body: {"botQuery": message}, ); var decodedResponse = jsonDecode(response.body); diff --git a/flutter_application_1/pubspec.lock b/flutter_application_1/pubspec.lock index b87d0f5b2..5a87c34eb 100644 --- a/flutter_application_1/pubspec.lock +++ b/flutter_application_1/pubspec.lock @@ -37,31 +37,39 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" collection: dependency: transitive description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" url: "https://pub.dev" source: hosted version: "0.3.4+2" @@ -436,18 +444,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -468,10 +476,10 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -487,6 +495,14 @@ packages: sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted + version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted version: "2.0.0" nested: dependency: transitive @@ -537,47 +553,47 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" stack_trace: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted version: "0.7.4" @@ -609,7 +625,7 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted version: "14.3.1"

    __|0?N^%*RD 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 VW27lalxy|E4dyw+<4c%522N)kk*L&I; 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