From 17c0526ed68ac78bdf04a643152c6cebd8cbfab3 Mon Sep 17 00:00:00 2001 From: Narayanan Madaswamy Date: Sun, 16 Aug 2026 20:13:21 +0530 Subject: [PATCH] V1 - Personal Account and Budgeting Done Personal Account and Budgeting --- .DS_Store | Bin 0 -> 6148 bytes .vscode/launch.json | 15 + .vscode/settings.json | 4 + kifi-api/.gitattributes | 2 + kifi-api/.gitignore | 33 + .../.mvn/wrapper/maven-wrapper.properties | 3 + kifi-api/Dockerfile | 13 + kifi-api/Kifi-API.postman_collection.json | 360 +++++ kifi-api/build_n_push.sh | 20 + kifi-api/docker-compose.yml | 30 + kifi-api/mvnw | 295 ++++ kifi-api/mvnw.cmd | 189 +++ kifi-api/pom.xml | 171 +++ .../java/com/kifi/api/KifiApiApplication.java | 16 + .../com/kifi/api/config/SecurityConfig.java | 54 + .../com/kifi/api/config/WebClientConfig.java | 14 + .../kifi/api/controller/AuthController.java | 63 + .../kifi/api/controller/BudgetController.java | 42 + .../api/controller/CategoryController.java | 30 + .../kifi/api/controller/HealthController.java | 18 + .../RecurringTransactionController.java | 43 + .../kifi/api/controller/ReportController.java | 29 + .../api/controller/TransactionController.java | 101 ++ .../kifi/api/controller/WalletController.java | 104 ++ .../java/com/kifi/api/dto/AuthRequest.java | 9 + .../java/com/kifi/api/dto/AuthResponse.java | 16 + .../java/com/kifi/api/dto/BudgetSummary.java | 14 + .../kifi/api/dto/OtpVerificationRequest.java | 9 + .../kifi/api/dto/ResetPasswordRequest.java | 10 + .../com/kifi/api/dto/WalletMemberDTO.java | 19 + .../main/java/com/kifi/api/entity/Budget.java | 21 + .../java/com/kifi/api/entity/Category.java | 24 + .../kifi/api/entity/RecurringTransaction.java | 28 + .../java/com/kifi/api/entity/Transaction.java | 50 + .../api/entity/TransactionAttachment.java | 25 + .../com/kifi/api/entity/TransactionItem.java | 25 + .../com/kifi/api/entity/TransactionType.java | 6 + .../main/java/com/kifi/api/entity/User.java | 26 + .../java/com/kifi/api/entity/UserWallet.java | 18 + .../main/java/com/kifi/api/entity/Wallet.java | 22 + .../com/kifi/api/entity/WalletInvitation.java | 19 + .../kifi/api/repository/BudgetRepository.java | 11 + .../api/repository/CategoryRepository.java | 11 + .../RecurringTransactionRepository.java | 19 + .../TransactionAttachmentRepository.java | 11 + .../repository/TransactionItemRepository.java | 11 + .../api/repository/TransactionRepository.java | 14 + .../TransactionRepositoryCustom.java | 20 + .../repository/TransactionRepositoryImpl.java | 108 ++ .../kifi/api/repository/UserRepository.java | 13 + .../api/repository/UserWalletRepository.java | 12 + .../WalletInvitationRepository.java | 12 + .../kifi/api/repository/WalletRepository.java | 9 + .../RecurringTransactionScheduler.java | 69 + .../api/security/AuthenticationManager.java | 46 + .../java/com/kifi/api/security/JwtUtil.java | 68 + .../security/SecurityContextRepository.java | 38 + .../com/kifi/api/service/AuthService.java | 157 ++ .../com/kifi/api/service/BudgetService.java | 70 + .../com/kifi/api/service/CategoryService.java | 26 + .../com/kifi/api/service/CryptoService.java | 48 + .../com/kifi/api/service/EmailService.java | 172 +++ .../kifi/api/service/MinioServiceClient.java | 102 ++ .../service/RecurringTransactionService.java | 48 + .../com/kifi/api/service/ReportService.java | 50 + .../kifi/api/service/TransactionService.java | 227 +++ .../com/kifi/api/service/WalletService.java | 192 +++ kifi-api/src/main/resources/application.yml | 48 + kifi-api/src/main/resources/schema.sql | 134 ++ .../com/kifi/api/KifiApiApplicationTests.java | 13 + kifi-app/.gitignore | 45 + kifi-app/.metadata | 45 + kifi-app/README.md | 16 + kifi-app/analysis_options.yaml | 28 + kifi-app/android/.gitignore | 14 + kifi-app/android/app/build.gradle.kts | 50 + kifi-app/android/app/proguard-rules.pro | 4 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 45 + .../com/sarascore/kifi_app/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 -> 5669 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3000 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 8921 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 17728 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 29164 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + kifi-app/android/build.gradle.kts | 24 + kifi-app/android/gradle.properties | 2 + .../gradle/wrapper/gradle-wrapper.properties | 5 + kifi-app/android/settings.gradle.kts | 26 + kifi-app/assets/icon.png | Bin 0 -> 682015 bytes kifi-app/flutter_launcher_icons.yaml | 4 + kifi-app/ios/.gitignore | 34 + kifi-app/ios/Flutter/AppFrameworkInfo.plist | 26 + kifi-app/ios/Flutter/Debug.xcconfig | 2 + kifi-app/ios/Flutter/Release.xcconfig | 2 + kifi-app/ios/Podfile | 46 + kifi-app/ios/Podfile.lock | 179 +++ kifi-app/ios/Runner.xcodeproj/project.pbxproj | 751 ++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 101 ++ .../contents.xcworkspacedata | 10 + kifi-app/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 1 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 501593 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 967 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 2281 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 4247 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1475 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 4028 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 7712 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 2281 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 6641 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 13068 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 3215 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 9651 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 3935 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 11897 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 13068 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 26098 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 5669 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 17728 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 6147 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 19596 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 22941 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 + kifi-app/ios/Runner/Info.plist | 55 + kifi-app/ios/Runner/Runner-Bridging-Header.h | 1 + kifi-app/ios/RunnerTests/RunnerTests.swift | 12 + kifi-app/lib/core/network/dio_client.dart | 73 + .../lib/core/security/crypto_service.dart | 38 + .../core/services/notification_service.dart | 76 + kifi-app/lib/core/services/ocr_service.dart | 60 + kifi-app/lib/core/theme/app_theme.dart | 118 ++ kifi-app/lib/core/theme/nature_colors.dart | 50 + kifi-app/lib/core/theme/theme_provider.dart | 41 + kifi-app/lib/core/utils/snackbar_service.dart | 59 + kifi-app/lib/core/widgets/empty_state.dart | 48 + .../lib/core/widgets/shimmer_loading.dart | 64 + .../features/auth/data/auth_repository.dart | 84 ++ .../auth/presentation/auth_screen.dart | 153 ++ .../presentation/forgot_password_screen.dart | 164 +++ .../auth/presentation/otp_screen.dart | 98 ++ .../auth/presentation/profile_screen.dart | 148 ++ .../presentation/reset_password_screen.dart | 238 +++ .../auth/providers/auth_provider.dart | 81 ++ .../budget/presentation/budget_screen.dart | 425 ++++++ .../presentation/accounts_screen.dart | 881 +++++++++++ .../presentation/dashboard_screen.dart | 604 ++++++++ .../presentation/maturity_dialog.dart | 313 ++++ .../presentation/wallet_ledger_screen.dart | 249 ++++ .../widgets/budget_status_card.dart | 83 ++ .../widgets/category_spending_chart.dart | 221 +++ .../widgets/day_wise_spending_chart.dart | 162 +++ .../presentation/widgets/statistics_tab.dart | 224 +++ .../dashboard/providers/insight_provider.dart | 100 ++ .../presentation/onboarding_screen.dart | 139 ++ .../features/transactions/data/models.dart | 358 +++++ .../transactions/data/repository.dart | 220 +++ .../transactions/models/invitation.dart | 28 + .../presentation/add_transaction_screen.dart | 1110 ++++++++++++++ .../presentation/all_transactions_screen.dart | 308 ++++ .../widgets/attachment_gallery_screen.dart | 138 ++ .../widgets/transaction_filter_sheet.dart | 173 +++ .../paginated_transaction_provider.dart | 115 ++ .../transactions/providers/providers.dart | 221 +++ kifi-app/lib/main.dart | 122 ++ kifi-app/linux/.gitignore | 1 + kifi-app/linux/CMakeLists.txt | 128 ++ kifi-app/linux/flutter/CMakeLists.txt | 88 ++ .../flutter/generated_plugin_registrant.cc | 23 + .../flutter/generated_plugin_registrant.h | 15 + .../linux/flutter/generated_plugins.cmake | 27 + kifi-app/linux/runner/CMakeLists.txt | 26 + kifi-app/linux/runner/main.cc | 6 + kifi-app/linux/runner/my_application.cc | 148 ++ kifi-app/linux/runner/my_application.h | 21 + kifi-app/macos/.gitignore | 7 + kifi-app/macos/Flutter/Flutter-Debug.xcconfig | 2 + .../macos/Flutter/Flutter-Release.xcconfig | 2 + .../Flutter/GeneratedPluginRegistrant.swift | 24 + kifi-app/macos/Podfile | 42 + kifi-app/macos/Podfile.lock | 61 + .../macos/Runner.xcodeproj/project.pbxproj | 801 ++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 99 ++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + kifi-app/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 kifi-app/macos/Runner/Base.lproj/MainMenu.xib | 343 +++++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + kifi-app/macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 12 + kifi-app/macos/Runner/Info.plist | 32 + kifi-app/macos/Runner/MainFlutterWindow.swift | 15 + kifi-app/macos/Runner/Release.entitlements | 8 + kifi-app/macos/RunnerTests/RunnerTests.swift | 12 + kifi-app/pubspec.lock | 1282 +++++++++++++++++ kifi-app/pubspec.yaml | 109 ++ kifi-app/web/favicon.png | Bin 0 -> 917 bytes kifi-app/web/icons/Icon-192.png | Bin 0 -> 5292 bytes kifi-app/web/icons/Icon-512.png | Bin 0 -> 8252 bytes kifi-app/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes kifi-app/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes kifi-app/web/index.html | 38 + kifi-app/web/manifest.json | 35 + kifi-app/windows/.gitignore | 17 + kifi-app/windows/CMakeLists.txt | 108 ++ kifi-app/windows/flutter/CMakeLists.txt | 109 ++ .../flutter/generated_plugin_registrant.cc | 26 + .../flutter/generated_plugin_registrant.h | 15 + .../windows/flutter/generated_plugins.cmake | 30 + kifi-app/windows/runner/CMakeLists.txt | 40 + kifi-app/windows/runner/Runner.rc | 121 ++ kifi-app/windows/runner/flutter_window.cpp | 71 + kifi-app/windows/runner/flutter_window.h | 33 + kifi-app/windows/runner/main.cpp | 43 + kifi-app/windows/runner/resource.h | 16 + .../windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes kifi-app/windows/runner/runner.exe.manifest | 14 + kifi-app/windows/runner/utils.cpp | 65 + kifi-app/windows/runner/utils.h | 19 + kifi-app/windows/runner/win32_window.cpp | 288 ++++ kifi-app/windows/runner/win32_window.h | 102 ++ prompt.md | 1070 ++++++++++++++ 247 files changed, 19002 insertions(+) create mode 100644 .DS_Store create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 kifi-api/.gitattributes create mode 100644 kifi-api/.gitignore create mode 100644 kifi-api/.mvn/wrapper/maven-wrapper.properties create mode 100644 kifi-api/Dockerfile create mode 100644 kifi-api/Kifi-API.postman_collection.json create mode 100755 kifi-api/build_n_push.sh create mode 100644 kifi-api/docker-compose.yml create mode 100755 kifi-api/mvnw create mode 100644 kifi-api/mvnw.cmd create mode 100644 kifi-api/pom.xml create mode 100644 kifi-api/src/main/java/com/kifi/api/KifiApiApplication.java create mode 100644 kifi-api/src/main/java/com/kifi/api/config/SecurityConfig.java create mode 100644 kifi-api/src/main/java/com/kifi/api/config/WebClientConfig.java create mode 100644 kifi-api/src/main/java/com/kifi/api/controller/AuthController.java create mode 100644 kifi-api/src/main/java/com/kifi/api/controller/BudgetController.java create mode 100644 kifi-api/src/main/java/com/kifi/api/controller/CategoryController.java create mode 100644 kifi-api/src/main/java/com/kifi/api/controller/HealthController.java create mode 100644 kifi-api/src/main/java/com/kifi/api/controller/RecurringTransactionController.java create mode 100644 kifi-api/src/main/java/com/kifi/api/controller/ReportController.java create mode 100644 kifi-api/src/main/java/com/kifi/api/controller/TransactionController.java create mode 100644 kifi-api/src/main/java/com/kifi/api/controller/WalletController.java create mode 100644 kifi-api/src/main/java/com/kifi/api/dto/AuthRequest.java create mode 100644 kifi-api/src/main/java/com/kifi/api/dto/AuthResponse.java create mode 100644 kifi-api/src/main/java/com/kifi/api/dto/BudgetSummary.java create mode 100644 kifi-api/src/main/java/com/kifi/api/dto/OtpVerificationRequest.java create mode 100644 kifi-api/src/main/java/com/kifi/api/dto/ResetPasswordRequest.java create mode 100644 kifi-api/src/main/java/com/kifi/api/dto/WalletMemberDTO.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/Budget.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/Category.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/RecurringTransaction.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/Transaction.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/TransactionAttachment.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/TransactionItem.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/TransactionType.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/User.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/UserWallet.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/Wallet.java create mode 100644 kifi-api/src/main/java/com/kifi/api/entity/WalletInvitation.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/BudgetRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/CategoryRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/RecurringTransactionRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/TransactionAttachmentRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/TransactionItemRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/TransactionRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/TransactionRepositoryCustom.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/TransactionRepositoryImpl.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/UserRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/UserWalletRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/WalletInvitationRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/repository/WalletRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/scheduler/RecurringTransactionScheduler.java create mode 100644 kifi-api/src/main/java/com/kifi/api/security/AuthenticationManager.java create mode 100644 kifi-api/src/main/java/com/kifi/api/security/JwtUtil.java create mode 100644 kifi-api/src/main/java/com/kifi/api/security/SecurityContextRepository.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/AuthService.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/BudgetService.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/CategoryService.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/CryptoService.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/EmailService.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/MinioServiceClient.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/RecurringTransactionService.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/ReportService.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/TransactionService.java create mode 100644 kifi-api/src/main/java/com/kifi/api/service/WalletService.java create mode 100644 kifi-api/src/main/resources/application.yml create mode 100644 kifi-api/src/main/resources/schema.sql create mode 100644 kifi-api/src/test/java/com/kifi/api/KifiApiApplicationTests.java create mode 100644 kifi-app/.gitignore create mode 100644 kifi-app/.metadata create mode 100644 kifi-app/README.md create mode 100644 kifi-app/analysis_options.yaml create mode 100644 kifi-app/android/.gitignore create mode 100644 kifi-app/android/app/build.gradle.kts create mode 100644 kifi-app/android/app/proguard-rules.pro create mode 100644 kifi-app/android/app/src/debug/AndroidManifest.xml create mode 100644 kifi-app/android/app/src/main/AndroidManifest.xml create mode 100644 kifi-app/android/app/src/main/kotlin/com/sarascore/kifi_app/MainActivity.kt create mode 100644 kifi-app/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 kifi-app/android/app/src/main/res/drawable/launch_background.xml create mode 100644 kifi-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 kifi-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 kifi-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 kifi-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 kifi-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 kifi-app/android/app/src/main/res/values-night/styles.xml create mode 100644 kifi-app/android/app/src/main/res/values/styles.xml create mode 100644 kifi-app/android/app/src/profile/AndroidManifest.xml create mode 100644 kifi-app/android/build.gradle.kts create mode 100644 kifi-app/android/gradle.properties create mode 100644 kifi-app/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 kifi-app/android/settings.gradle.kts create mode 100644 kifi-app/assets/icon.png create mode 100644 kifi-app/flutter_launcher_icons.yaml create mode 100644 kifi-app/ios/.gitignore create mode 100644 kifi-app/ios/Flutter/AppFrameworkInfo.plist create mode 100644 kifi-app/ios/Flutter/Debug.xcconfig create mode 100644 kifi-app/ios/Flutter/Release.xcconfig create mode 100644 kifi-app/ios/Podfile create mode 100644 kifi-app/ios/Podfile.lock create mode 100644 kifi-app/ios/Runner.xcodeproj/project.pbxproj create mode 100644 kifi-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 kifi-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 kifi-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 kifi-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 kifi-app/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 kifi-app/ios/Runner/AppDelegate.swift create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 kifi-app/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 kifi-app/ios/Runner/Base.lproj/Main.storyboard create mode 100644 kifi-app/ios/Runner/Info.plist create mode 100644 kifi-app/ios/Runner/Runner-Bridging-Header.h create mode 100644 kifi-app/ios/RunnerTests/RunnerTests.swift create mode 100644 kifi-app/lib/core/network/dio_client.dart create mode 100644 kifi-app/lib/core/security/crypto_service.dart create mode 100644 kifi-app/lib/core/services/notification_service.dart create mode 100644 kifi-app/lib/core/services/ocr_service.dart create mode 100644 kifi-app/lib/core/theme/app_theme.dart create mode 100644 kifi-app/lib/core/theme/nature_colors.dart create mode 100644 kifi-app/lib/core/theme/theme_provider.dart create mode 100644 kifi-app/lib/core/utils/snackbar_service.dart create mode 100644 kifi-app/lib/core/widgets/empty_state.dart create mode 100644 kifi-app/lib/core/widgets/shimmer_loading.dart create mode 100644 kifi-app/lib/features/auth/data/auth_repository.dart create mode 100644 kifi-app/lib/features/auth/presentation/auth_screen.dart create mode 100644 kifi-app/lib/features/auth/presentation/forgot_password_screen.dart create mode 100644 kifi-app/lib/features/auth/presentation/otp_screen.dart create mode 100644 kifi-app/lib/features/auth/presentation/profile_screen.dart create mode 100644 kifi-app/lib/features/auth/presentation/reset_password_screen.dart create mode 100644 kifi-app/lib/features/auth/providers/auth_provider.dart create mode 100644 kifi-app/lib/features/budget/presentation/budget_screen.dart create mode 100644 kifi-app/lib/features/dashboard/presentation/accounts_screen.dart create mode 100644 kifi-app/lib/features/dashboard/presentation/dashboard_screen.dart create mode 100644 kifi-app/lib/features/dashboard/presentation/maturity_dialog.dart create mode 100644 kifi-app/lib/features/dashboard/presentation/wallet_ledger_screen.dart create mode 100644 kifi-app/lib/features/dashboard/presentation/widgets/budget_status_card.dart create mode 100644 kifi-app/lib/features/dashboard/presentation/widgets/category_spending_chart.dart create mode 100644 kifi-app/lib/features/dashboard/presentation/widgets/day_wise_spending_chart.dart create mode 100644 kifi-app/lib/features/dashboard/presentation/widgets/statistics_tab.dart create mode 100644 kifi-app/lib/features/dashboard/providers/insight_provider.dart create mode 100644 kifi-app/lib/features/onboarding/presentation/onboarding_screen.dart create mode 100644 kifi-app/lib/features/transactions/data/models.dart create mode 100644 kifi-app/lib/features/transactions/data/repository.dart create mode 100644 kifi-app/lib/features/transactions/models/invitation.dart create mode 100644 kifi-app/lib/features/transactions/presentation/add_transaction_screen.dart create mode 100644 kifi-app/lib/features/transactions/presentation/all_transactions_screen.dart create mode 100644 kifi-app/lib/features/transactions/presentation/widgets/attachment_gallery_screen.dart create mode 100644 kifi-app/lib/features/transactions/presentation/widgets/transaction_filter_sheet.dart create mode 100644 kifi-app/lib/features/transactions/providers/paginated_transaction_provider.dart create mode 100644 kifi-app/lib/features/transactions/providers/providers.dart create mode 100644 kifi-app/lib/main.dart create mode 100644 kifi-app/linux/.gitignore create mode 100644 kifi-app/linux/CMakeLists.txt create mode 100644 kifi-app/linux/flutter/CMakeLists.txt create mode 100644 kifi-app/linux/flutter/generated_plugin_registrant.cc create mode 100644 kifi-app/linux/flutter/generated_plugin_registrant.h create mode 100644 kifi-app/linux/flutter/generated_plugins.cmake create mode 100644 kifi-app/linux/runner/CMakeLists.txt create mode 100644 kifi-app/linux/runner/main.cc create mode 100644 kifi-app/linux/runner/my_application.cc create mode 100644 kifi-app/linux/runner/my_application.h create mode 100644 kifi-app/macos/.gitignore create mode 100644 kifi-app/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 kifi-app/macos/Flutter/Flutter-Release.xcconfig create mode 100644 kifi-app/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 kifi-app/macos/Podfile create mode 100644 kifi-app/macos/Podfile.lock create mode 100644 kifi-app/macos/Runner.xcodeproj/project.pbxproj create mode 100644 kifi-app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 kifi-app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 kifi-app/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 kifi-app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 kifi-app/macos/Runner/AppDelegate.swift create mode 100644 kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 kifi-app/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 kifi-app/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 kifi-app/macos/Runner/Configs/Debug.xcconfig create mode 100644 kifi-app/macos/Runner/Configs/Release.xcconfig create mode 100644 kifi-app/macos/Runner/Configs/Warnings.xcconfig create mode 100644 kifi-app/macos/Runner/DebugProfile.entitlements create mode 100644 kifi-app/macos/Runner/Info.plist create mode 100644 kifi-app/macos/Runner/MainFlutterWindow.swift create mode 100644 kifi-app/macos/Runner/Release.entitlements create mode 100644 kifi-app/macos/RunnerTests/RunnerTests.swift create mode 100644 kifi-app/pubspec.lock create mode 100644 kifi-app/pubspec.yaml create mode 100644 kifi-app/web/favicon.png create mode 100644 kifi-app/web/icons/Icon-192.png create mode 100644 kifi-app/web/icons/Icon-512.png create mode 100644 kifi-app/web/icons/Icon-maskable-192.png create mode 100644 kifi-app/web/icons/Icon-maskable-512.png create mode 100644 kifi-app/web/index.html create mode 100644 kifi-app/web/manifest.json create mode 100644 kifi-app/windows/.gitignore create mode 100644 kifi-app/windows/CMakeLists.txt create mode 100644 kifi-app/windows/flutter/CMakeLists.txt create mode 100644 kifi-app/windows/flutter/generated_plugin_registrant.cc create mode 100644 kifi-app/windows/flutter/generated_plugin_registrant.h create mode 100644 kifi-app/windows/flutter/generated_plugins.cmake create mode 100644 kifi-app/windows/runner/CMakeLists.txt create mode 100644 kifi-app/windows/runner/Runner.rc create mode 100644 kifi-app/windows/runner/flutter_window.cpp create mode 100644 kifi-app/windows/runner/flutter_window.h create mode 100644 kifi-app/windows/runner/main.cpp create mode 100644 kifi-app/windows/runner/resource.h create mode 100644 kifi-app/windows/runner/resources/app_icon.ico create mode 100644 kifi-app/windows/runner/runner.exe.manifest create mode 100644 kifi-app/windows/runner/utils.cpp create mode 100644 kifi-app/windows/runner/utils.h create mode 100644 kifi-app/windows/runner/win32_window.cpp create mode 100644 kifi-app/windows/runner/win32_window.h create mode 100644 prompt.md diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..df49bf0f10307fa832c7cce7f49ea40fe1352022 GIT binary patch literal 6148 zcmeHKJ5EDE474G|lW0;>?gc2g!72(T-~xQ2ND+||3DLifYcpdT6tqc8fo3FoUi{hB zo8mb(Ghcmd?#-5FHo?gDNjHLd+JLKyT!TH%xU*+F+HSjfe;umN2iQB=o9%21JL!Kp z9QHVLNFH(a{$i3hGkN|pMWuigkOERb3P=IYY+|}emX`ujKnnaQ!0$tYk$dr+9G?!j zSOLHbgadevT>{(~0QcfK84@tmCP=Cyoy-R!lYc-)TjTa=sk zWO*qd1%4~Q-5XeP{y)Gj?EkD0q<|ForwaID{kUG?&2 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi + fi + else + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi + fi +} + +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" + done + printf %x\\n $h +} + +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 +} + +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +scriptDir="$(dirname "$0")" +scriptName="$(basename "$0")" + +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; + esac +done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" +} + +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" +fi + +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac + +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT +else + die "cannot create temp dir" +fi + +mkdir -p -- "${MAVEN_HOME%/*}" + +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" +fi + +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then + distributionSha256Result=true + fi + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + fi + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 + exit 1 + fi +fi + +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" +fi + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +actualDistributionDir="" + +# First try the expected directory name (for regular distributions) +if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then + if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then + actualDistributionDir="$distributionUrlNameMain" + fi +fi + +# If not found, search for any directory with the Maven executable (for snapshots) +if [ -z "$actualDistributionDir" ]; then + # enable globbing to iterate over items + set +f + for dir in "$TMP_DOWNLOAD_DIR"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/bin/$MVN_CMD" ]; then + actualDistributionDir="$(basename "$dir")" + break + fi + fi + done + set -f +fi + +if [ -z "$actualDistributionDir" ]; then + verbose "Contents of $TMP_DOWNLOAD_DIR:" + verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" + die "Could not find Maven distribution directory in extracted archive" +fi + +verbose "Found extracted Maven distribution directory: $actualDistributionDir" +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +clean || : +exec_maven "$@" diff --git a/kifi-api/mvnw.cmd b/kifi-api/mvnw.cmd new file mode 100644 index 0000000..92450f9 --- /dev/null +++ b/kifi-api/mvnw.cmd @@ -0,0 +1,189 @@ +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.4 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' + +$MAVEN_M2_PATH = "$HOME/.m2" +if ($env:MAVEN_USER_HOME) { + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null +} + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/kifi-api/pom.xml b/kifi-api/pom.xml new file mode 100644 index 0000000..aadcbce --- /dev/null +++ b/kifi-api/pom.xml @@ -0,0 +1,171 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 4.1.0 + + + com.kifi + kifi-api + 0.0.1-SNAPSHOT + kifi-api + Kifi Backend API + + + + + + + + + + + + + + + 21 + + + + org.springframework.boot + spring-boot-starter-data-r2dbc + + + org.springframework.boot + spring-boot-starter-data-redis-reactive + + + org.springframework.boot + spring-boot-starter-mail + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-webflux + + + + org.postgresql + postgresql + runtime + + + org.postgresql + r2dbc-postgresql + runtime + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-data-r2dbc-test + test + + + org.springframework.boot + spring-boot-starter-data-redis-reactive-test + test + + + org.springframework.boot + spring-boot-starter-mail-test + test + + + org.springframework.boot + spring-boot-starter-security-test + test + + + org.springframework.boot + spring-boot-starter-validation-test + test + + + org.springframework.boot + spring-boot-starter-webflux-test + test + + + io.jsonwebtoken + jjwt-api + 0.12.5 + + + io.jsonwebtoken + jjwt-impl + 0.12.5 + runtime + + + io.jsonwebtoken + jjwt-jackson + 0.12.5 + + + org.apache.commons + commons-csv + 1.10.0 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-compiler-plugin + + + default-compile + compile + + compile + + + + + org.projectlombok + lombok + + + + + + default-testCompile + test-compile + + testCompile + + + + + org.projectlombok + lombok + + + + + + + + + + diff --git a/kifi-api/src/main/java/com/kifi/api/KifiApiApplication.java b/kifi-api/src/main/java/com/kifi/api/KifiApiApplication.java new file mode 100644 index 0000000..d7a5cc3 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/KifiApiApplication.java @@ -0,0 +1,16 @@ +package com.kifi.api; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +import org.springframework.scheduling.annotation.EnableScheduling; + +@SpringBootApplication +@EnableScheduling +public class KifiApiApplication { + + public static void main(String[] args) { + SpringApplication.run(KifiApiApplication.class, args); + } + +} diff --git a/kifi-api/src/main/java/com/kifi/api/config/SecurityConfig.java b/kifi-api/src/main/java/com/kifi/api/config/SecurityConfig.java new file mode 100644 index 0000000..d430caf --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/config/SecurityConfig.java @@ -0,0 +1,54 @@ +package com.kifi.api.config; + +import com.kifi.api.security.AuthenticationManager; +import com.kifi.api.security.SecurityContextRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; +import org.springframework.security.config.web.server.ServerHttpSecurity; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.server.SecurityWebFilterChain; +import reactor.core.publisher.Mono; + +@Configuration +@EnableWebFluxSecurity +@RequiredArgsConstructor +public class SecurityConfig { + + private final AuthenticationManager authenticationManager; + private final SecurityContextRepository securityContextRepository; + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + + @Bean + public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { + return http + .exceptionHandling(exceptionHandlingSpec -> exceptionHandlingSpec + .authenticationEntryPoint((swe, e) -> + Mono.fromRunnable(() -> swe.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED)) + ) + .accessDeniedHandler((swe, e) -> + Mono.fromRunnable(() -> swe.getResponse().setStatusCode(HttpStatus.FORBIDDEN)) + ) + ) + .csrf(ServerHttpSecurity.CsrfSpec::disable) + .formLogin(ServerHttpSecurity.FormLoginSpec::disable) + .httpBasic(ServerHttpSecurity.HttpBasicSpec::disable) + .authenticationManager(authenticationManager) + .securityContextRepository(securityContextRepository) + .authorizeExchange(exchange -> exchange + .pathMatchers(HttpMethod.OPTIONS).permitAll() + .pathMatchers("/api/kifi/auth/**").permitAll() + .pathMatchers("/api/kifi/health/**").permitAll() + .anyExchange().authenticated() + ) + .build(); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/config/WebClientConfig.java b/kifi-api/src/main/java/com/kifi/api/config/WebClientConfig.java new file mode 100644 index 0000000..4cee9ce --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/config/WebClientConfig.java @@ -0,0 +1,14 @@ +package com.kifi.api.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.reactive.function.client.WebClient; + +@Configuration +public class WebClientConfig { + + @Bean + public WebClient.Builder webClientBuilder() { + return WebClient.builder(); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/controller/AuthController.java b/kifi-api/src/main/java/com/kifi/api/controller/AuthController.java new file mode 100644 index 0000000..930adee --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/controller/AuthController.java @@ -0,0 +1,63 @@ +package com.kifi.api.controller; + +import com.kifi.api.dto.AuthRequest; +import com.kifi.api.dto.OtpVerificationRequest; +import com.kifi.api.dto.ResetPasswordRequest; +import com.kifi.api.service.AuthService; +import com.kifi.api.service.CryptoService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Mono; + +import java.util.Map; + +@RestController +@RequestMapping("/api/kifi/auth") +@RequiredArgsConstructor +public class AuthController { + + private final AuthService authService; + private final CryptoService cryptoService; + + @GetMapping("/public-key") + public Mono> getPublicKey() { + return Mono.just(ResponseEntity.ok().body((Object) Map.of("publicKey", cryptoService.getPublicKeyBase64()))); + } + + @PostMapping("/signup") + public Mono> signup(@RequestBody AuthRequest request) { + return authService.signup(request) + .map(msg -> ResponseEntity.ok().body((Object) Map.of("message", msg))) + .onErrorResume(e -> Mono.just(ResponseEntity.badRequest().body(Map.of("error", e.getMessage())))); + } + + @PostMapping("/verify-otp") + public Mono> verifyOtp(@RequestBody OtpVerificationRequest request) { + return authService.verifyOtp(request.getEmail(), request.getOtp()) + .map(response -> ResponseEntity.ok().body((Object) response)) + .onErrorResume(e -> Mono.just(ResponseEntity.badRequest().body(Map.of("error", e.getMessage())))); + } + + @PostMapping("/login") + public Mono> login(@RequestBody AuthRequest request) { + return authService.login(request) + .map(response -> ResponseEntity.ok().body((Object) response)) + .onErrorResume(e -> Mono.just(ResponseEntity.status(401).body(Map.of("error", e.getMessage())))); + } + + @PostMapping("/forgot-password") + public Mono> forgotPassword(@RequestBody Map request) { + String email = request.get("email"); + return authService.forgotPassword(email) + .map(msg -> ResponseEntity.ok().body((Object) Map.of("message", msg))) + .onErrorResume(e -> Mono.just(ResponseEntity.badRequest().body(Map.of("error", e.getMessage())))); + } + + @PostMapping("/reset-password") + public Mono> resetPassword(@RequestBody ResetPasswordRequest request) { + return authService.resetPassword(request.getEmail(), request.getOtp(), request.getNewPassword()) + .map(msg -> ResponseEntity.ok().body((Object) Map.of("message", msg))) + .onErrorResume(e -> Mono.just(ResponseEntity.badRequest().body(Map.of("error", e.getMessage())))); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/controller/BudgetController.java b/kifi-api/src/main/java/com/kifi/api/controller/BudgetController.java new file mode 100644 index 0000000..04dcfda --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/controller/BudgetController.java @@ -0,0 +1,42 @@ +package com.kifi.api.controller; + +import com.kifi.api.entity.Budget; +import com.kifi.api.dto.BudgetSummary; +import com.kifi.api.service.BudgetService; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.Authentication; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import java.util.List; + +@RestController +@RequestMapping("/api/kifi/budgets") +@RequiredArgsConstructor +public class BudgetController { + private final BudgetService budgetService; + + @GetMapping + public Mono> getBudgets(Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return budgetService.getBudgets(userId).collectList(); + } + + @GetMapping("/summary") + public Mono> getBudgetSummaries(Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return budgetService.getBudgetSummaries(userId).collectList(); + } + + @PostMapping + public Mono addOrUpdateBudget(Authentication authentication, @RequestBody Budget budget) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return budgetService.addOrUpdateBudget(userId, budget); + } + + @DeleteMapping("/{id}") + public Mono deleteBudget(@PathVariable Long id) { + return budgetService.deleteBudget(id); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/controller/CategoryController.java b/kifi-api/src/main/java/com/kifi/api/controller/CategoryController.java new file mode 100644 index 0000000..20413c6 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/controller/CategoryController.java @@ -0,0 +1,30 @@ +package com.kifi.api.controller; + +import com.kifi.api.entity.Category; +import com.kifi.api.service.CategoryService; +import lombok.RequiredArgsConstructor; + +import java.util.List; + +import org.springframework.security.core.Authentication; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Mono; + +@RestController +@RequestMapping("/api/kifi/categories") +@RequiredArgsConstructor +public class CategoryController { + private final CategoryService categoryService; + + @GetMapping + public Mono> getCategories(Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return categoryService.getCategories(userId).collectList(); + } + + @PostMapping + public Mono addCategory(Authentication authentication, @RequestBody Category category) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return categoryService.addCategory(userId, category); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/controller/HealthController.java b/kifi-api/src/main/java/com/kifi/api/controller/HealthController.java new file mode 100644 index 0000000..ea02313 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/controller/HealthController.java @@ -0,0 +1,18 @@ +package com.kifi.api.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; + +import java.util.Map; + +@RestController +@RequestMapping("/api/kifi/health") +public class HealthController { + + @GetMapping + public Mono> healthCheck() { + return Mono.just(Map.of("status", "UP", "message", "Kifi API is running.")); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/controller/RecurringTransactionController.java b/kifi-api/src/main/java/com/kifi/api/controller/RecurringTransactionController.java new file mode 100644 index 0000000..b50537b --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/controller/RecurringTransactionController.java @@ -0,0 +1,43 @@ +package com.kifi.api.controller; + +import com.kifi.api.entity.RecurringTransaction; +import com.kifi.api.service.RecurringTransactionService; +import lombok.RequiredArgsConstructor; + +import java.util.List; + +import org.springframework.security.core.Authentication; +import org.springframework.web.bind.annotation.*; +import java.util.List; +import reactor.core.publisher.Mono; + +@RestController +@RequestMapping("/api/kifi/recurring-transactions") +@RequiredArgsConstructor +public class RecurringTransactionController { + + private final RecurringTransactionService service; + + @GetMapping + public Mono> getRecurringTransactions(Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return service.getRecurringTransactions(userId).collectList(); + } + + @PostMapping + public Mono addRecurringTransaction(Authentication authentication, @RequestBody RecurringTransaction transaction) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return service.addRecurringTransaction(userId, transaction); + } + + @PutMapping("/{id}") + public Mono updateRecurringTransaction(@PathVariable Long id, Authentication authentication, @RequestBody RecurringTransaction transaction) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return service.updateRecurringTransaction(id, userId, transaction); + } + + @DeleteMapping("/{id}") + public Mono deleteRecurringTransaction(@PathVariable Long id) { + return service.deleteRecurringTransaction(id); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/controller/ReportController.java b/kifi-api/src/main/java/com/kifi/api/controller/ReportController.java new file mode 100644 index 0000000..3591fb0 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/controller/ReportController.java @@ -0,0 +1,29 @@ +package com.kifi.api.controller; + +import com.kifi.api.service.ReportService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.Authentication; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; + +@RestController +@RequestMapping("/api/kifi/reports") +@RequiredArgsConstructor +public class ReportController { + private final ReportService reportService; + + @GetMapping(value = "/export", produces = "text/csv") + public Mono> exportTransactions(Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return reportService.exportTransactionsToCsv(userId) + .map(bytes -> ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"transactions.csv\"") + .contentType(MediaType.parseMediaType("text/csv")) + .body(bytes)); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/controller/TransactionController.java b/kifi-api/src/main/java/com/kifi/api/controller/TransactionController.java new file mode 100644 index 0000000..ae29267 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/controller/TransactionController.java @@ -0,0 +1,101 @@ +package com.kifi.api.controller; + +import com.kifi.api.entity.Transaction; +import com.kifi.api.service.TransactionService; + +import java.util.List; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.Authentication; +import org.springframework.web.bind.annotation.*; +import java.util.List; +import reactor.core.publisher.Mono; + +@RestController +@RequestMapping("/api/kifi/transactions") +@RequiredArgsConstructor +public class TransactionController { + private final TransactionService transactionService; + + @GetMapping + public Mono> getTransactions(Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return transactionService.getTransactions(userId).collectList(); + } + + @GetMapping("/search") + public Mono> searchTransactions( + Authentication authentication, + @RequestParam(required = false) String type, + @RequestParam(required = false) Long walletId, + @RequestParam(required = false) Long categoryId, + @RequestParam(required = false) @org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE) java.time.LocalDate startDate, + @RequestParam(required = false) @org.springframework.format.annotation.DateTimeFormat(iso = org.springframework.format.annotation.DateTimeFormat.ISO.DATE) java.time.LocalDate endDate, + @RequestParam(required = false) String search, + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "20") int size + ) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + Pageable pageable = PageRequest.of(page, size); + return transactionService.searchTransactions(userId, type, walletId, categoryId, startDate, endDate, search, pageable); + } + + @PostMapping + public Mono addTransaction(Authentication authentication, @RequestBody Transaction transaction) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return transactionService.addTransaction(userId, transaction); + } + + @PutMapping("/{id}") + public Mono updateTransaction(Authentication authentication, @PathVariable Long id, @RequestBody Transaction transaction) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return transactionService.updateTransaction(id, userId, transaction); + } + + @DeleteMapping("/{id}") + public Mono deleteTransaction(@PathVariable Long id) { + return transactionService.deleteTransaction(id); + } + + @PostMapping(value = "/{id}/attachments", consumes = org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE) + public Mono addAttachment(@PathVariable Long id, @RequestPart("file") org.springframework.http.codec.multipart.FilePart filePart) { + return org.springframework.core.io.buffer.DataBufferUtils.join(filePart.content()) + .flatMap(dataBuffer -> { + byte[] bytes = new byte[dataBuffer.readableByteCount()]; + dataBuffer.read(bytes); + org.springframework.core.io.buffer.DataBufferUtils.release(dataBuffer); + String base64Content = java.util.Base64.getEncoder().encodeToString(bytes); + String fileName = filePart.filename(); + String contentType = filePart.headers().getContentType() != null ? filePart.headers().getContentType().toString() : "application/octet-stream"; + return transactionService.addAttachment(id, fileName, contentType, base64Content); + }); + } + + @GetMapping("/{id}/attachments/{attachmentId}/content") + public Mono> downloadAttachment(@PathVariable Long id, @PathVariable Long attachmentId) { + return transactionService.downloadAttachment(attachmentId) + .map(response -> { + byte[] decodedBytes = java.util.Base64.getDecoder().decode(response.getBase64Content()); + return org.springframework.http.ResponseEntity.ok() + .header(org.springframework.http.HttpHeaders.CONTENT_TYPE, "image/jpeg") // Ideally dynamic based on db + .body(decodedBytes); + }); + } + + @DeleteMapping("/attachments/{attachmentId}") + public Mono deleteAttachment(@PathVariable Long attachmentId) { + return transactionService.deleteAttachment(attachmentId); + } + + @PutMapping("/{id}/close-investment") + public Mono closeInvestment(Authentication authentication, @PathVariable Long id, @RequestBody java.util.Map payload) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + java.math.BigDecimal maturityAmount = new java.math.BigDecimal(payload.get("maturityAmount").toString()); + java.time.LocalDate closingDate = payload.get("closingDate") != null ? java.time.LocalDate.parse(payload.get("closingDate").toString()) : java.time.LocalDate.now(); + Long toWalletId = payload.get("toWalletId") != null ? Long.valueOf(payload.get("toWalletId").toString()) : null; + return transactionService.closeInvestment(id, userId, maturityAmount, closingDate, toWalletId); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/controller/WalletController.java b/kifi-api/src/main/java/com/kifi/api/controller/WalletController.java new file mode 100644 index 0000000..583d688 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/controller/WalletController.java @@ -0,0 +1,104 @@ +package com.kifi.api.controller; + +import com.kifi.api.entity.UserWallet; +import com.kifi.api.entity.Wallet; +import com.kifi.api.entity.WalletInvitation; +import com.kifi.api.service.WalletService; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.Authentication; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import java.util.List; + +@RestController +@RequestMapping("/api/kifi/wallets") +@RequiredArgsConstructor +public class WalletController { + + private final WalletService walletService; + + @GetMapping + public Mono> getWallets(Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return walletService.getWalletsForUser(userId).collectList(); + } + + @PostMapping + public Mono createWallet(@RequestBody CreateWalletRequest request, Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return walletService.createWallet(userId, request.getName(), request.getNature(), request.getIcon(), request.getColor(), request.getCurrency(), request.getInitialBalance()); + } + + @PutMapping("/{walletId}") + public Mono editWallet(@PathVariable Long walletId, @RequestBody CreateWalletRequest request, Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return walletService.editWallet(walletId, userId, request.getName(), request.getNature(), request.getIcon(), request.getColor(), request.getCurrency()); + } + + @DeleteMapping("/{walletId}") + public Mono deleteWallet(@PathVariable Long walletId, Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return walletService.deleteWallet(walletId, userId); + } + + @PostMapping("/{walletId}/invite") + public Mono inviteUser(@PathVariable Long walletId, @RequestBody InviteRequest request, Authentication authentication) { + Long inviterId = Long.valueOf(authentication.getDetails().toString()); + return walletService.inviteUserByEmail(inviterId, walletId, request.getEmail()); + } + + @GetMapping("/invitations") + public Mono> getInvitations(Authentication authentication) { + String email = authentication.getName(); + return walletService.getPendingInvitations(email).collectList(); + } + + @PostMapping("/invitations/{id}/accept") + public Mono acceptInvitation(@PathVariable Long id, Authentication authentication) { + String email = authentication.getName(); + Long userId = Long.valueOf(authentication.getDetails().toString()); + return walletService.respondToInvitation(id, email, userId, true); + } + + @PostMapping("/invitations/{id}/reject") + public Mono rejectInvitation(@PathVariable Long id, Authentication authentication) { + String email = authentication.getName(); + Long userId = Long.valueOf(authentication.getDetails().toString()); + return walletService.respondToInvitation(id, email, userId, false); + } + + @GetMapping("/{walletId}/members") + public Mono> getWalletMembers(@PathVariable Long walletId, Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return walletService.getWalletMembers(walletId, userId).collectList(); + } + + @DeleteMapping("/{walletId}/members/{memberIdToRemove}") + public Mono removeWalletMember(@PathVariable Long walletId, @PathVariable Long memberIdToRemove, Authentication authentication) { + Long ownerId = Long.valueOf(authentication.getDetails().toString()); + return walletService.removeWalletMember(walletId, ownerId, memberIdToRemove); + } + + @GetMapping("/user-contacts") + public Mono> getKnownContacts(Authentication authentication) { + Long userId = Long.valueOf(authentication.getDetails().toString()); + return walletService.getKnownContacts(userId).collectList(); + } + + @Data + static class CreateWalletRequest { + private String name; + private String nature; + private String icon; + private String color; + private String currency; + private java.math.BigDecimal initialBalance; + } + + @Data + static class InviteRequest { + private String email; + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/dto/AuthRequest.java b/kifi-api/src/main/java/com/kifi/api/dto/AuthRequest.java new file mode 100644 index 0000000..ba2bb2e --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/dto/AuthRequest.java @@ -0,0 +1,9 @@ +package com.kifi.api.dto; + +import lombok.Data; + +@Data +public class AuthRequest { + private String email; + private String password; +} diff --git a/kifi-api/src/main/java/com/kifi/api/dto/AuthResponse.java b/kifi-api/src/main/java/com/kifi/api/dto/AuthResponse.java new file mode 100644 index 0000000..baede0a --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/dto/AuthResponse.java @@ -0,0 +1,16 @@ +package com.kifi.api.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AuthResponse { + private String token; + private Long userId; + private String email; +} diff --git a/kifi-api/src/main/java/com/kifi/api/dto/BudgetSummary.java b/kifi-api/src/main/java/com/kifi/api/dto/BudgetSummary.java new file mode 100644 index 0000000..83bcc55 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/dto/BudgetSummary.java @@ -0,0 +1,14 @@ +package com.kifi.api.dto; + +import com.kifi.api.entity.Budget; +import lombok.Builder; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Builder +public class BudgetSummary { + private Budget budget; + private BigDecimal spentAmount; +} diff --git a/kifi-api/src/main/java/com/kifi/api/dto/OtpVerificationRequest.java b/kifi-api/src/main/java/com/kifi/api/dto/OtpVerificationRequest.java new file mode 100644 index 0000000..acee905 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/dto/OtpVerificationRequest.java @@ -0,0 +1,9 @@ +package com.kifi.api.dto; + +import lombok.Data; + +@Data +public class OtpVerificationRequest { + private String email; + private String otp; +} diff --git a/kifi-api/src/main/java/com/kifi/api/dto/ResetPasswordRequest.java b/kifi-api/src/main/java/com/kifi/api/dto/ResetPasswordRequest.java new file mode 100644 index 0000000..cac0599 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/dto/ResetPasswordRequest.java @@ -0,0 +1,10 @@ +package com.kifi.api.dto; + +import lombok.Data; + +@Data +public class ResetPasswordRequest { + private String email; + private String otp; + private String newPassword; +} diff --git a/kifi-api/src/main/java/com/kifi/api/dto/WalletMemberDTO.java b/kifi-api/src/main/java/com/kifi/api/dto/WalletMemberDTO.java new file mode 100644 index 0000000..1a0f899 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/dto/WalletMemberDTO.java @@ -0,0 +1,19 @@ +package com.kifi.api.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WalletMemberDTO { + private Long userId; + private String email; + private String role; + private LocalDateTime joinedAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/Budget.java b/kifi-api/src/main/java/com/kifi/api/entity/Budget.java new file mode 100644 index 0000000..669d339 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/Budget.java @@ -0,0 +1,21 @@ +package com.kifi.api.entity; + +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@Table("budgets") +public class Budget { + @Id + private Long id; + private Long userId; + private Long categoryId; + private Long walletId; + private BigDecimal monthlyLimit; + private Boolean isShared; + private LocalDateTime createdAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/Category.java b/kifi-api/src/main/java/com/kifi/api/entity/Category.java new file mode 100644 index 0000000..b7bec34 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/Category.java @@ -0,0 +1,24 @@ +package com.kifi.api.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("categories") +public class Category { + @Id + private Long id; + private Long userId; + private String name; + private String iconName; + private LocalDateTime createdAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/RecurringTransaction.java b/kifi-api/src/main/java/com/kifi/api/entity/RecurringTransaction.java new file mode 100644 index 0000000..7cd1f7b --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/RecurringTransaction.java @@ -0,0 +1,28 @@ +package com.kifi.api.entity; + +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +@Data +@Table("recurring_transactions") +public class RecurringTransaction { + @Id + private Long id; + private Long userId; + private Long categoryId; + private Long fromWalletId; + private Long toWalletId; + private String type; + private BigDecimal amount; + private String frequency; // DAILY, WEEKLY, MONTHLY, YEARLY + private LocalDate nextExecutionDate; + private LocalDate endDate; + private String status; // ACTIVE, PAUSED + private String description; + private LocalDateTime createdAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/Transaction.java b/kifi-api/src/main/java/com/kifi/api/entity/Transaction.java new file mode 100644 index 0000000..620a468 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/Transaction.java @@ -0,0 +1,50 @@ +package com.kifi.api.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("transactions") +public class Transaction { + @Id + private Long id; + private Long userId; + private Long categoryId; + private Long fromWalletId; + private Long toWalletId; + private String notes; + private String type; // INCOME or EXPENSE or INVESTMENT + private BigDecimal amount; + private LocalDate date; + private String description; + + // Payable fields + private LocalDate dueDate; + private String alertSchedule; + private java.time.LocalTime alertTime; + + // Investment fields + private String investmentStatus; // OPEN or CLOSED + private BigDecimal maturityAmount; + private BigDecimal profitLoss; + private LocalDate closingDate; + + private LocalDateTime createdAt; + + @org.springframework.data.annotation.Transient + private java.util.List items; + + @org.springframework.data.annotation.Transient + private java.util.List attachments; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/TransactionAttachment.java b/kifi-api/src/main/java/com/kifi/api/entity/TransactionAttachment.java new file mode 100644 index 0000000..de376fd --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/TransactionAttachment.java @@ -0,0 +1,25 @@ +package com.kifi.api.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("transaction_attachments") +public class TransactionAttachment { + @Id + private Long id; + private Long transactionId; + private String fileName; + private String filePath; + private String contentType; + private LocalDateTime createdAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/TransactionItem.java b/kifi-api/src/main/java/com/kifi/api/entity/TransactionItem.java new file mode 100644 index 0000000..3f51ffd --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/TransactionItem.java @@ -0,0 +1,25 @@ +package com.kifi.api.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("transaction_items") +public class TransactionItem { + @Id + private Long id; + private Long transactionId; + private String name; + private BigDecimal amount; + private LocalDateTime createdAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/TransactionType.java b/kifi-api/src/main/java/com/kifi/api/entity/TransactionType.java new file mode 100644 index 0000000..61d0c5f --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/TransactionType.java @@ -0,0 +1,6 @@ +package com.kifi.api.entity; + +public enum TransactionType { + INCOME, + EXPENSE +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/User.java b/kifi-api/src/main/java/com/kifi/api/entity/User.java new file mode 100644 index 0000000..01da5f3 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/User.java @@ -0,0 +1,26 @@ +package com.kifi.api.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("users") +public class User { + @Id + private Long id; + private String email; + private String password; + @Builder.Default + private Boolean enabled = false; + private LocalDateTime createdAt; + private LocalDateTime updatedAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/UserWallet.java b/kifi-api/src/main/java/com/kifi/api/entity/UserWallet.java new file mode 100644 index 0000000..fb665e6 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/UserWallet.java @@ -0,0 +1,18 @@ +package com.kifi.api.entity; + +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.time.LocalDateTime; + +@Data +@Table("user_wallets") +public class UserWallet { + @Id + private Long id; // R2DBC sometimes needs a synthetic ID, but we have a composite PK in DB. We might need to just use a regular ID if this gives issues, but let's try mapping. + private Long userId; + private Long walletId; + private String role; + private LocalDateTime joinedAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/Wallet.java b/kifi-api/src/main/java/com/kifi/api/entity/Wallet.java new file mode 100644 index 0000000..70f0a9e --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/Wallet.java @@ -0,0 +1,22 @@ +package com.kifi.api.entity; + +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.time.LocalDateTime; + +@Data +@Table("wallets") +public class Wallet { + @Id + private Long id; + private String name; + private Long ownerId; + private String nature; + private java.math.BigDecimal balance; + private String currency; + private String icon; + private String color; + private LocalDateTime createdAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/entity/WalletInvitation.java b/kifi-api/src/main/java/com/kifi/api/entity/WalletInvitation.java new file mode 100644 index 0000000..6ee4a8a --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/entity/WalletInvitation.java @@ -0,0 +1,19 @@ +package com.kifi.api.entity; + +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.relational.core.mapping.Table; + +import java.time.LocalDateTime; + +@Data +@Table("wallet_invitations") +public class WalletInvitation { + @Id + private Long id; + private Long walletId; + private Long inviterId; + private String inviteeEmail; + private String status; + private LocalDateTime createdAt; +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/BudgetRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/BudgetRepository.java new file mode 100644 index 0000000..1f0edb1 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/BudgetRepository.java @@ -0,0 +1,11 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.Budget; +import org.springframework.data.r2dbc.repository.R2dbcRepository; +import reactor.core.publisher.Flux; + +public interface BudgetRepository extends R2dbcRepository { + @org.springframework.data.r2dbc.repository.Query("SELECT b.* FROM budgets b WHERE b.user_id = :userId OR (b.is_shared = TRUE AND b.wallet_id IN (SELECT uw.wallet_id FROM user_wallets uw WHERE uw.user_id = :userId))") + Flux findByUserId(Long userId); + reactor.core.publisher.Mono deleteByWalletId(Long walletId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/CategoryRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/CategoryRepository.java new file mode 100644 index 0000000..5446bf5 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/CategoryRepository.java @@ -0,0 +1,11 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.Category; +import org.springframework.data.r2dbc.repository.R2dbcRepository; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; + +@Repository +public interface CategoryRepository extends R2dbcRepository { + Flux findByUserId(Long userId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/RecurringTransactionRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/RecurringTransactionRepository.java new file mode 100644 index 0000000..ea37c1c --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/RecurringTransactionRepository.java @@ -0,0 +1,19 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.RecurringTransaction; +import org.springframework.data.r2dbc.repository.Query; +import org.springframework.data.r2dbc.repository.R2dbcRepository; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; + +import java.time.LocalDate; + +@Repository +public interface RecurringTransactionRepository extends R2dbcRepository { + Flux findByUserId(Long userId); + + @Query("SELECT * FROM recurring_transactions WHERE status = 'ACTIVE' AND next_execution_date <= :date") + Flux findDueTransactions(LocalDate date); + + reactor.core.publisher.Mono countByFromWalletIdOrToWalletId(Long fromWalletId, Long toWalletId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/TransactionAttachmentRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/TransactionAttachmentRepository.java new file mode 100644 index 0000000..6947344 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/TransactionAttachmentRepository.java @@ -0,0 +1,11 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.TransactionAttachment; +import org.springframework.data.repository.reactive.ReactiveCrudRepository; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; + +@Repository +public interface TransactionAttachmentRepository extends ReactiveCrudRepository { + Flux findByTransactionId(Long transactionId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/TransactionItemRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/TransactionItemRepository.java new file mode 100644 index 0000000..dd58c6e --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/TransactionItemRepository.java @@ -0,0 +1,11 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.TransactionItem; +import org.springframework.data.repository.reactive.ReactiveCrudRepository; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; + +@Repository +public interface TransactionItemRepository extends ReactiveCrudRepository { + Flux findByTransactionId(Long transactionId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepository.java new file mode 100644 index 0000000..344333b --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepository.java @@ -0,0 +1,14 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.Transaction; +import org.springframework.data.r2dbc.repository.R2dbcRepository; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +@Repository +public interface TransactionRepository extends R2dbcRepository, TransactionRepositoryCustom { + @org.springframework.data.r2dbc.repository.Query("SELECT t.* FROM transactions t WHERE t.user_id = :userId OR t.from_wallet_id IN (SELECT uw.wallet_id FROM user_wallets uw WHERE uw.user_id = :userId) OR t.to_wallet_id IN (SELECT uw.wallet_id FROM user_wallets uw WHERE uw.user_id = :userId) ORDER BY t.date DESC") + Flux findVisibleTransactionsForUser(Long userId); + Mono countByFromWalletIdOrToWalletId(Long fromWalletId, Long toWalletId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepositoryCustom.java b/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepositoryCustom.java new file mode 100644 index 0000000..9f944d1 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepositoryCustom.java @@ -0,0 +1,20 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.Transaction; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import reactor.core.publisher.Mono; +import java.time.LocalDate; + +public interface TransactionRepositoryCustom { + Mono> findTransactionsWithFilters( + Long userId, + String type, + Long walletId, + Long categoryId, + LocalDate startDate, + LocalDate endDate, + String search, + Pageable pageable + ); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepositoryImpl.java b/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepositoryImpl.java new file mode 100644 index 0000000..3958416 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/TransactionRepositoryImpl.java @@ -0,0 +1,108 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.Transaction; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.r2dbc.core.DatabaseClient; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Mono; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +@Repository +public class TransactionRepositoryImpl implements TransactionRepositoryCustom { + + private final DatabaseClient databaseClient; + + public TransactionRepositoryImpl(DatabaseClient databaseClient) { + this.databaseClient = databaseClient; + } + + @Override + public Mono> findTransactionsWithFilters( + Long userId, + String type, + Long walletId, + Long categoryId, + LocalDate startDate, + LocalDate endDate, + String search, + Pageable pageable) { + StringBuilder baseQuery = new StringBuilder("FROM transactions t WHERE (t.user_id = :userId OR t.from_wallet_id IN (SELECT uw.wallet_id FROM user_wallets uw WHERE uw.user_id = :userId) OR t.to_wallet_id IN (SELECT uw.wallet_id FROM user_wallets uw WHERE uw.user_id = :userId))"); + + if (type != null && !type.isEmpty()) { + baseQuery.append(" AND t.type = :type"); + } + if (walletId != null) { + baseQuery.append(" AND (t.from_wallet_id = :walletId OR t.to_wallet_id = :walletId)"); + } + if (categoryId != null) { + baseQuery.append(" AND t.category_id = :categoryId"); + } + if (startDate != null) { + baseQuery.append(" AND t.date >= :startDate"); + } + if (endDate != null) { + baseQuery.append(" AND t.date <= :endDate"); + } + if (search != null && !search.trim().isEmpty()) { + baseQuery.append(" AND t.description ILIKE :search"); + } + + String dataQueryStr = "SELECT t.* " + baseQuery.toString() + " ORDER BY t.date DESC LIMIT " + pageable.getPageSize() + " OFFSET " + pageable.getOffset(); + String countQueryStr = "SELECT COUNT(t.id) " + baseQuery.toString(); + + DatabaseClient.GenericExecuteSpec dataSpec = databaseClient.sql(dataQueryStr).bind("userId", userId); + DatabaseClient.GenericExecuteSpec countSpec = databaseClient.sql(countQueryStr).bind("userId", userId); + + if (type != null && !type.isEmpty()) { + dataSpec = dataSpec.bind("type", type); + countSpec = countSpec.bind("type", type); + } + if (walletId != null) { + dataSpec = dataSpec.bind("walletId", walletId); + countSpec = countSpec.bind("walletId", walletId); + } + if (categoryId != null) { + dataSpec = dataSpec.bind("categoryId", categoryId); + countSpec = countSpec.bind("categoryId", categoryId); + } + if (startDate != null) { + dataSpec = dataSpec.bind("startDate", startDate); + countSpec = countSpec.bind("startDate", startDate); + } + if (endDate != null) { + dataSpec = dataSpec.bind("endDate", endDate); + countSpec = countSpec.bind("endDate", endDate); + } + if (search != null && !search.trim().isEmpty()) { + dataSpec = dataSpec.bind("search", "%" + search.trim() + "%"); + countSpec = countSpec.bind("search", "%" + search.trim() + "%"); + } + + Mono> transactionsMono = dataSpec.map((row, metadata) -> { + Transaction t = new Transaction(); + t.setId(row.get("id", Long.class)); + t.setUserId(row.get("user_id", Long.class)); + t.setFromWalletId(row.get("from_wallet_id", Long.class)); + t.setToWalletId(row.get("to_wallet_id", Long.class)); + t.setCategoryId(row.get("category_id", Long.class)); + t.setType(row.get("type", String.class)); + t.setAmount(row.get("amount", BigDecimal.class)); + t.setDate(row.get("date", LocalDate.class)); + t.setDescription(row.get("description", String.class)); + t.setInvestmentStatus(row.get("investment_status", String.class)); + t.setProfitLoss(row.get("profit_loss", BigDecimal.class)); + return t; + }).all().collectList(); + + Mono countMono = countSpec.map((row, metadata) -> row.get(0, Long.class)).first().defaultIfEmpty(0L); + + return Mono.zip(transactionsMono, countMono) + .map(tuple -> new PageImpl<>(tuple.getT1(), pageable, tuple.getT2())); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/UserRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/UserRepository.java new file mode 100644 index 0000000..bc8c6ea --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/UserRepository.java @@ -0,0 +1,13 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.User; +import org.springframework.data.r2dbc.repository.R2dbcRepository; +import org.springframework.data.r2dbc.repository.Query; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +@Repository +public interface UserRepository extends R2dbcRepository { + Mono findByEmail(String email); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/UserWalletRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/UserWalletRepository.java new file mode 100644 index 0000000..47e3a10 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/UserWalletRepository.java @@ -0,0 +1,12 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.UserWallet; +import org.springframework.data.repository.reactive.ReactiveCrudRepository; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +public interface UserWalletRepository extends ReactiveCrudRepository { + Flux findByUserId(Long userId); + Flux findByWalletId(Long walletId); + Mono deleteByWalletId(Long walletId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/WalletInvitationRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/WalletInvitationRepository.java new file mode 100644 index 0000000..c23559e --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/WalletInvitationRepository.java @@ -0,0 +1,12 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.WalletInvitation; +import org.springframework.data.r2dbc.repository.R2dbcRepository; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; + +@Repository +public interface WalletInvitationRepository extends R2dbcRepository { + Flux findByInviteeEmailAndStatus(String inviteeEmail, String status); + reactor.core.publisher.Mono deleteByWalletId(Long walletId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/repository/WalletRepository.java b/kifi-api/src/main/java/com/kifi/api/repository/WalletRepository.java new file mode 100644 index 0000000..19dde62 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/repository/WalletRepository.java @@ -0,0 +1,9 @@ +package com.kifi.api.repository; + +import com.kifi.api.entity.Wallet; +import org.springframework.data.repository.reactive.ReactiveCrudRepository; +import reactor.core.publisher.Flux; + +public interface WalletRepository extends ReactiveCrudRepository { + Flux findByOwnerId(Long ownerId); +} diff --git a/kifi-api/src/main/java/com/kifi/api/scheduler/RecurringTransactionScheduler.java b/kifi-api/src/main/java/com/kifi/api/scheduler/RecurringTransactionScheduler.java new file mode 100644 index 0000000..a562ceb --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/scheduler/RecurringTransactionScheduler.java @@ -0,0 +1,69 @@ +package com.kifi.api.scheduler; + +import com.kifi.api.entity.RecurringTransaction; +import com.kifi.api.entity.Transaction; +import com.kifi.api.repository.RecurringTransactionRepository; +import com.kifi.api.service.TransactionService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import reactor.core.publisher.Mono; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +@Component +@RequiredArgsConstructor +@Slf4j +public class RecurringTransactionScheduler { + + private final RecurringTransactionRepository recurringRepository; + private final TransactionService transactionService; + + // Runs every day at midnight + @Scheduled(cron = "0 0 0 * * ?") + public void processRecurringTransactions() { + LocalDate today = LocalDate.now(); + log.info("Starting recurring transaction processing for {}", today); + + recurringRepository.findDueTransactions(today) + .flatMap(this::processSingle) + .subscribe( + success -> log.info("Processed recurring transaction: {}", success.getId()), + error -> log.error("Error processing recurring transactions", error), + () -> log.info("Finished processing recurring transactions for {}", today) + ); + } + + private Mono processSingle(RecurringTransaction rt) { + Transaction t = Transaction.builder() + .userId(rt.getUserId()) + .categoryId(rt.getCategoryId()) + .fromWalletId(rt.getFromWalletId()) + .toWalletId(rt.getToWalletId()) + .type(rt.getType()) + .amount(rt.getAmount()) + .date(rt.getNextExecutionDate()) // Process it as of the execution date + .description(rt.getDescription()) + .notes("Auto-generated from recurring transaction") + .createdAt(LocalDateTime.now()) + .build(); + + // Calculate next date + LocalDate nextDate = rt.getNextExecutionDate(); + switch (rt.getFrequency()) { + case "DAILY" -> nextDate = nextDate.plusDays(1); + case "WEEKLY" -> nextDate = nextDate.plusWeeks(1); + case "MONTHLY" -> nextDate = nextDate.plusMonths(1); + case "YEARLY" -> nextDate = nextDate.plusYears(1); + } + rt.setNextExecutionDate(nextDate); + if (rt.getEndDate() != null && nextDate.isAfter(rt.getEndDate())) { + rt.setStatus("COMPLETED"); + } + + return transactionService.addTransaction(rt.getUserId(), t) + .then(recurringRepository.save(rt)); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/security/AuthenticationManager.java b/kifi-api/src/main/java/com/kifi/api/security/AuthenticationManager.java new file mode 100644 index 0000000..7b1e5a1 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/security/AuthenticationManager.java @@ -0,0 +1,46 @@ +package com.kifi.api.security; + +import io.jsonwebtoken.Claims; +import lombok.RequiredArgsConstructor; +import org.springframework.security.authentication.ReactiveAuthenticationManager; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.stereotype.Component; +import reactor.core.publisher.Mono; + +import java.util.Collections; + +@Component +@RequiredArgsConstructor +public class AuthenticationManager implements ReactiveAuthenticationManager { + + private final JwtUtil jwtUtil; + + @Override + public Mono authenticate(Authentication authentication) { + String authToken = authentication.getCredentials().toString(); + + try { + if (jwtUtil.validateToken(authToken)) { + Claims claims = jwtUtil.getAllClaimsFromToken(authToken); + String email = claims.getSubject(); + Long userId = claims.get("userId", Long.class); + + UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken( + email, + null, + Collections.singletonList(new SimpleGrantedAuthority("ROLE_USER")) + ); + + auth.setDetails(userId); + + return Mono.just(auth); + } else { + return Mono.empty(); + } + } catch (Exception e) { + return Mono.empty(); + } + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/security/JwtUtil.java b/kifi-api/src/main/java/com/kifi/api/security/JwtUtil.java new file mode 100644 index 0000000..6f54bbb --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/security/JwtUtil.java @@ -0,0 +1,68 @@ +package com.kifi.api.security; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.security.Keys; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.crypto.SecretKey; +import java.util.Date; +import java.util.HashMap; + +@Component +public class JwtUtil { + + @Value("${jwt.secret}") + private String secret; + + @Value("${jwt.expiration}") + private String expirationTime; + + private SecretKey getSignKey() { + byte[] keyBytes = secret.getBytes(); + return Keys.hmacShaKeyFor(keyBytes); + } + + public Claims getAllClaimsFromToken(String token) { + return Jwts.parser() + .verifyWith(getSignKey()) + .build() + .parseSignedClaims(token) + .getPayload(); + } + + public String getEmailFromToken(String token) { + return getAllClaimsFromToken(token).getSubject(); + } + + public Date getExpirationDateFromToken(String token) { + return getAllClaimsFromToken(token).getExpiration(); + } + + private Boolean isTokenExpired(String token) { + final Date expiration = getExpirationDateFromToken(token); + return expiration.before(new Date()); + } + + public String generateToken(String email, Long userId) { + HashMap claims = new HashMap<>(); + claims.put("userId", userId); + + long expirationTimeLong = Long.parseLong(expirationTime); + final Date createdDate = new Date(); + final Date expirationDate = new Date(createdDate.getTime() + expirationTimeLong); + + return Jwts.builder() + .claims(claims) + .subject(email) + .issuedAt(createdDate) + .expiration(expirationDate) + .signWith(getSignKey()) + .compact(); + } + + public Boolean validateToken(String token) { + return !isTokenExpired(token); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/security/SecurityContextRepository.java b/kifi-api/src/main/java/com/kifi/api/security/SecurityContextRepository.java new file mode 100644 index 0000000..c222e75 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/security/SecurityContextRepository.java @@ -0,0 +1,38 @@ +package com.kifi.api.security; + +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpHeaders; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextImpl; +import org.springframework.security.web.server.context.ServerSecurityContextRepository; +import org.springframework.stereotype.Component; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +@Component +@RequiredArgsConstructor +public class SecurityContextRepository implements ServerSecurityContextRepository { + + private final AuthenticationManager authenticationManager; + + @Override + public Mono save(ServerWebExchange exchange, SecurityContext context) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Mono load(ServerWebExchange exchange) { + String authHeader = exchange.getRequest().getHeaders().getFirst(HttpHeaders.AUTHORIZATION); + + if (authHeader != null && authHeader.startsWith("Bearer ")) { + String authToken = authHeader.substring(7); + Authentication auth = new UsernamePasswordAuthenticationToken(authToken, authToken); + return this.authenticationManager.authenticate(auth) + .map(SecurityContextImpl::new); + } + + return Mono.empty(); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/AuthService.java b/kifi-api/src/main/java/com/kifi/api/service/AuthService.java new file mode 100644 index 0000000..9098312 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/AuthService.java @@ -0,0 +1,157 @@ +package com.kifi.api.service; + +import com.kifi.api.dto.AuthRequest; +import com.kifi.api.dto.AuthResponse; +import com.kifi.api.entity.User; +import com.kifi.api.repository.UserRepository; +import com.kifi.api.security.JwtUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.ReactiveStringRedisTemplate; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.Random; + +@Service +@RequiredArgsConstructor +@Slf4j +public class AuthService { + + private final UserRepository userRepository; + private final PasswordEncoder passwordEncoder; + private final JwtUtil jwtUtil; + private final EmailService emailService; + private final ReactiveStringRedisTemplate redisTemplate; + private final CryptoService cryptoService; + + private String decryptField(String value) { + try { + return cryptoService.decrypt(value); + } catch (Exception e) { + // If decryption fails, treat as plaintext (backward compatibility) + log.warn("RSA decryption failed, treating as plaintext: {}", e.getMessage()); + return value; + } + } + + public Mono signup(AuthRequest request) { + String email = decryptField(request.getEmail()); + String password = decryptField(request.getPassword()); + + return userRepository.findByEmail(email) + .flatMap(existingUser -> { + if (existingUser.getEnabled()) { + return Mono.error(new RuntimeException("User already exists and is verified")); + } + return generateAndSendOtp(existingUser, "REGISTRATION"); + }) + .switchIfEmpty(Mono.defer(() -> { + User newUser = User.builder() + .email(email) + .password(passwordEncoder.encode(password)) + .enabled(false) + .createdAt(LocalDateTime.now()) + .updatedAt(LocalDateTime.now()) + .build(); + return userRepository.save(newUser).flatMap(u -> generateAndSendOtp(u, "REGISTRATION")); + })) + .map(u -> "OTP sent to your email."); + } + + private Mono generateAndSendOtp(User user, String purpose) { + String otp = String.format("%06d", new Random().nextInt(999999)); + String redisKey = "OTP:" + purpose + ":" + user.getEmail(); + return redisTemplate.opsForValue() + .set(redisKey, otp, Duration.ofMinutes(5)) + .then(purpose.equals("REGISTRATION") + ? emailService.sendRegistrationOtp(user.getEmail(), otp) + : emailService.sendResetPasswordOtp(user.getEmail(), otp)) + .thenReturn(user); + } + + public Mono verifyOtp(String email, String otp) { + String redisKey = "OTP:REGISTRATION:" + email; + return redisTemplate.opsForValue().get(redisKey) + .switchIfEmpty( + // Fallback to old key format for backward compatibility + redisTemplate.opsForValue().get("OTP:" + email) + .switchIfEmpty(Mono.error(new RuntimeException("OTP not found or expired"))) + ) + .flatMap(savedOtp -> { + if (!savedOtp.equals(otp)) { + return Mono.error(new RuntimeException("Invalid OTP")); + } + return userRepository.findByEmail(email); + }) + .flatMap(user -> { + user.setEnabled(true); + user.setUpdatedAt(LocalDateTime.now()); + return userRepository.save(user); + }) + .flatMap(user -> redisTemplate.opsForValue().delete(redisKey).thenReturn(user)) + .map(user -> AuthResponse.builder() + .token(jwtUtil.generateToken(user.getEmail(), user.getId())) + .userId(user.getId()) + .email(user.getEmail()) + .build()); + } + + public Mono login(AuthRequest request) { + String email = decryptField(request.getEmail()); + String password = decryptField(request.getPassword()); + + return userRepository.findByEmail(email) + .switchIfEmpty(Mono.error(new RuntimeException("Invalid email or password"))) + .flatMap(user -> { + if (!user.getEnabled()) { + return Mono.error(new RuntimeException("Email not verified")); + } + if (passwordEncoder.matches(password, user.getPassword())) { + return Mono.just(AuthResponse.builder() + .token(jwtUtil.generateToken(user.getEmail(), user.getId())) + .userId(user.getId()) + .email(user.getEmail()) + .build()); + } else { + return Mono.error(new RuntimeException("Invalid email or password")); + } + }); + } + + public Mono forgotPassword(String email) { + return userRepository.findByEmail(email) + .switchIfEmpty(Mono.error(new RuntimeException("No account found with this email"))) + .flatMap(user -> { + if (!user.getEnabled()) { + return Mono.error(new RuntimeException("Account not verified yet")); + } + return generateAndSendOtp(user, "RESET"); + }) + .map(u -> "Password reset OTP sent to your email."); + } + + public Mono resetPassword(String email, String otp, String encryptedNewPassword) { + String redisKey = "OTP:RESET:" + email; + String newPassword = decryptField(encryptedNewPassword); + + return redisTemplate.opsForValue().get(redisKey) + .switchIfEmpty(Mono.error(new RuntimeException("OTP not found or expired"))) + .flatMap(savedOtp -> { + if (!savedOtp.equals(otp)) { + return Mono.error(new RuntimeException("Invalid OTP")); + } + return userRepository.findByEmail(email); + }) + .flatMap(user -> { + user.setPassword(passwordEncoder.encode(newPassword)); + user.setUpdatedAt(LocalDateTime.now()); + return userRepository.save(user); + }) + .flatMap(user -> redisTemplate.opsForValue().delete(redisKey).thenReturn(user)) + .map(u -> "Password reset successfully."); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/BudgetService.java b/kifi-api/src/main/java/com/kifi/api/service/BudgetService.java new file mode 100644 index 0000000..657a1eb --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/BudgetService.java @@ -0,0 +1,70 @@ +package com.kifi.api.service; + +import com.kifi.api.dto.BudgetSummary; +import com.kifi.api.entity.Budget; +import com.kifi.api.repository.BudgetRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.r2dbc.core.DatabaseClient; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Service +@RequiredArgsConstructor +public class BudgetService { + private final BudgetRepository budgetRepository; + private final DatabaseClient databaseClient; + + public Flux getBudgets(Long userId) { + return budgetRepository.findByUserId(userId); + } + + public Flux getBudgetSummaries(Long userId) { + return budgetRepository.findByUserId(userId) + .flatMap(budget -> { + String sql = "SELECT COALESCE(SUM(amount), 0) FROM transactions " + + "WHERE type = 'EXPENSE' AND " + + "date >= date_trunc('month', current_date) AND " + + "(category_id = :categoryId OR from_wallet_id = :walletId) AND " + + "(user_id = :userId OR from_wallet_id IN (SELECT uw.wallet_id FROM user_wallets uw WHERE uw.user_id = :userId))"; + + return databaseClient.sql(sql) + .bind("userId", userId) + .bind("categoryId", budget.getCategoryId() != null ? budget.getCategoryId() : -1) + .bind("walletId", budget.getWalletId() != null ? budget.getWalletId() : -1) + .map((row, rowMetadata) -> row.get(0, BigDecimal.class)) + .first() + .defaultIfEmpty(BigDecimal.ZERO) + .map(spent -> BudgetSummary.builder().budget(budget).spentAmount(spent).build()); + }); + } + + public Mono addOrUpdateBudget(Long userId, Budget budget) { + return budgetRepository.findByUserId(userId) + .filter(b -> (b.getCategoryId() != null && b.getCategoryId().equals(budget.getCategoryId())) || + (b.getWalletId() != null && b.getWalletId().equals(budget.getWalletId()))) + .next() + .flatMap(existing -> { + existing.setMonthlyLimit(budget.getMonthlyLimit()); + if (budget.getIsShared() != null) { + existing.setIsShared(budget.getIsShared()); + } + return budgetRepository.save(existing); + }) + .switchIfEmpty(Mono.defer(() -> { + budget.setUserId(userId); + budget.setCreatedAt(LocalDateTime.now()); + if (budget.getIsShared() == null) { + budget.setIsShared(false); + } + return budgetRepository.save(budget); + })); + } + + public Mono deleteBudget(Long id) { + return budgetRepository.deleteById(id); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/CategoryService.java b/kifi-api/src/main/java/com/kifi/api/service/CategoryService.java new file mode 100644 index 0000000..f32fd39 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/CategoryService.java @@ -0,0 +1,26 @@ +package com.kifi.api.service; + +import com.kifi.api.entity.Category; +import com.kifi.api.repository.CategoryRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.time.LocalDateTime; + +@Service +@RequiredArgsConstructor +public class CategoryService { + private final CategoryRepository categoryRepository; + + public Flux getCategories(Long userId) { + return categoryRepository.findByUserId(userId); + } + + public Mono addCategory(Long userId, Category category) { + category.setUserId(userId); + category.setCreatedAt(LocalDateTime.now()); + return categoryRepository.save(category); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/CryptoService.java b/kifi-api/src/main/java/com/kifi/api/service/CryptoService.java new file mode 100644 index 0000000..99a7359 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/CryptoService.java @@ -0,0 +1,48 @@ +package com.kifi.api.service; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.crypto.Cipher; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.util.Base64; + +@Service +@Slf4j +public class CryptoService { + + private KeyPair keyPair; + + public CryptoService() { + try { + KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); + keyGen.initialize(2048); + this.keyPair = keyGen.generateKeyPair(); + log.info("RSA Key Pair generated successfully for CryptoService."); + } catch (Exception e) { + log.error("Failed to generate RSA Key Pair", e); + throw new RuntimeException("Failed to initialize CryptoService", e); + } + } + + public String getPublicKeyBase64() { + PublicKey publicKey = keyPair.getPublic(); + return Base64.getEncoder().encodeToString(publicKey.getEncoded()); + } + + public String decrypt(String encryptedBase64) { + try { + byte[] encryptedBytes = Base64.getDecoder().decode(encryptedBase64); + Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); + cipher.init(Cipher.DECRYPT_MODE, keyPair.getPrivate()); + byte[] decryptedBytes = cipher.doFinal(encryptedBytes); + return new String(decryptedBytes, "UTF-8"); + } catch (Exception e) { + log.error("Failed to decrypt RSA payload", e); + throw new RuntimeException("Failed to decrypt payload"); + } + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/EmailService.java b/kifi-api/src/main/java/com/kifi/api/service/EmailService.java new file mode 100644 index 0000000..bd262ea --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/EmailService.java @@ -0,0 +1,172 @@ +package com.kifi.api.service; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; + +import jakarta.mail.internet.MimeMessage; + +@Service +@RequiredArgsConstructor +@Slf4j +public class EmailService { + + private final JavaMailSender javaMailSender; + + public String buildEmailTemplate(String title, String subtitle, String otp, String footerNote) { + return """ + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+

Kifi

+

Smart Financial Management

+
+

%s

+

%s

+ + + + + +
+
+ %s +
+
+

+ ⏱ This code expires in 5 minutes +

+
+
+
+

%s

+

© 2026 Kifi by Sarascore. All rights reserved.

+
+
+ + + """.formatted(title, subtitle, otp, footerNote); + } + + public Mono sendRegistrationOtp(String to, String otp) { + String html = buildEmailTemplate( + "Welcome to Kifi! 🎉", + "Thank you for signing up. Please use the verification code below to complete your registration.", + otp, + "If you didn't create an account, you can safely ignore this email." + ); + return sendEmail(to, "Kifi – Verify Your Email", html); + } + + public String buildInvitationEmailTemplate(String title, String subtitle, String footerNote) { + return """ + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+

Kifi

+

Smart Financial Management

+
+

%s

+

%s

+
+
+
+

%s

+

© 2026 Kifi by Sarascore. All rights reserved.

+
+
+ + + """.formatted(title, subtitle, footerNote); + } + + public Mono sendResetPasswordOtp(String to, String otp) { + String html = buildEmailTemplate( + "Reset Your Password 🔐", + "We received a request to reset your password. Use the code below to set a new password.", + otp, + "If you didn't request a password reset, please ignore this email. Your account is safe." + ); + return sendEmail(to, "Kifi – Password Reset Code", html); + } + + // Keep old method for backward compatibility + public Mono sendOtpEmail(String to, String otp) { + return sendRegistrationOtp(to, otp); + } + + public Mono sendEmail(String to, String subject, String htmlContent) { + return Mono.fromRunnable(() -> { + try { + MimeMessage message = javaMailSender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); + helper.setTo(to); + helper.setSubject(subject); + helper.setText(htmlContent, true); + javaMailSender.send(message); + log.info("Email sent to: {} with subject: {}", to, subject); + } catch (Exception e) { + log.error("Failed to send email", e); + throw new RuntimeException("Failed to send email"); + } + }).subscribeOn(Schedulers.boundedElastic()).then(); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/MinioServiceClient.java b/kifi-api/src/main/java/com/kifi/api/service/MinioServiceClient.java new file mode 100644 index 0000000..c2d23c8 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/MinioServiceClient.java @@ -0,0 +1,102 @@ +package com.kifi.api.service; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; + +@Service +public class MinioServiceClient { + + private final WebClient webClient; + + @Value("${minio.service.url:http://minio-service:1500}") + private String minioServiceUrl; + + @Value("${minio.service.bucket:kifi}") + private String bucketName; + + public MinioServiceClient(WebClient.Builder webClientBuilder) { + this.webClient = webClientBuilder.build(); + } + + @Data + public static class MinioUploadRequest { + private String bucketName; + private String directoryPath; + private String contentType; + private String fileName; + private String fileContentBase64; + private boolean overwrite; + } + + @Data + public static class MinioDeleteRequest { + private String bucketName; + private String type; + private String filePath; + } + + @Data + public static class MinioResponse { + private boolean success; + private String message; + private String filePath; + } + + public Mono uploadFile(String directoryPath, String contentType, String fileName, String base64Content) { + MinioUploadRequest request = new MinioUploadRequest(); + request.setBucketName(bucketName); + request.setDirectoryPath(directoryPath); + request.setContentType(contentType); + request.setFileName(fileName); + request.setFileContentBase64(base64Content); + request.setOverwrite(true); + + return webClient.post() + .uri(minioServiceUrl + "/api/v1/minio/upload") + .bodyValue(request) + .retrieve() + .bodyToMono(MinioResponse.class); + } + + public Mono deleteFile(String contentType, String filePath) { + MinioDeleteRequest request = new MinioDeleteRequest(); + request.setBucketName(bucketName); + request.setType(contentType); + request.setFilePath(filePath); + + return webClient.method(org.springframework.http.HttpMethod.DELETE) + .uri(minioServiceUrl + "/api/v1/minio/file") + .bodyValue(request) + .retrieve() + .bodyToMono(MinioResponse.class); + } + @Data + public static class MinioDownloadRequest { + private String bucketName; + private String type; + private String filePath; + } + + @Data + public static class MinioDownloadResponse { + private boolean success; + private String message; + private String base64Content; + } + + public Mono downloadFile(String contentType, String filePath) { + MinioDownloadRequest request = new MinioDownloadRequest(); + request.setBucketName(bucketName); + request.setType(contentType); + request.setFilePath(filePath); + + return webClient.post() + .uri(minioServiceUrl + "/api/v1/minio/download") + .bodyValue(request) + .retrieve() + .bodyToMono(MinioDownloadResponse.class); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/RecurringTransactionService.java b/kifi-api/src/main/java/com/kifi/api/service/RecurringTransactionService.java new file mode 100644 index 0000000..d9b19fa --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/RecurringTransactionService.java @@ -0,0 +1,48 @@ +package com.kifi.api.service; + +import com.kifi.api.entity.RecurringTransaction; +import com.kifi.api.repository.RecurringTransactionRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.time.LocalDateTime; + +@Service +@RequiredArgsConstructor +public class RecurringTransactionService { + private final RecurringTransactionRepository repository; + + public Flux getRecurringTransactions(Long userId) { + return repository.findByUserId(userId); + } + + public Mono addRecurringTransaction(Long userId, RecurringTransaction transaction) { + transaction.setUserId(userId); + if (transaction.getStatus() == null) transaction.setStatus("ACTIVE"); + transaction.setCreatedAt(LocalDateTime.now()); + return repository.save(transaction); + } + + public Mono updateRecurringTransaction(Long id, Long userId, RecurringTransaction updated) { + return repository.findById(id) + .filter(rt -> rt.getUserId().equals(userId)) + .flatMap(existing -> { + existing.setAmount(updated.getAmount()); + existing.setFrequency(updated.getFrequency()); + existing.setNextExecutionDate(updated.getNextExecutionDate()); + existing.setEndDate(updated.getEndDate()); + existing.setStatus(updated.getStatus()); + existing.setDescription(updated.getDescription()); + existing.setFromWalletId(updated.getFromWalletId()); + existing.setToWalletId(updated.getToWalletId()); + existing.setCategoryId(updated.getCategoryId()); + return repository.save(existing); + }); + } + + public Mono deleteRecurringTransaction(Long id) { + return repository.deleteById(id); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/ReportService.java b/kifi-api/src/main/java/com/kifi/api/service/ReportService.java new file mode 100644 index 0000000..e287ecf --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/ReportService.java @@ -0,0 +1,50 @@ +package com.kifi.api.service; + +import com.kifi.api.entity.Transaction; +import com.kifi.api.repository.TransactionRepository; +import lombok.RequiredArgsConstructor; +import org.apache.commons.csv.CSVFormat; +import org.apache.commons.csv.CSVPrinter; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +import java.io.ByteArrayOutputStream; +import java.io.PrintWriter; +import java.nio.charset.StandardCharsets; +import java.time.format.DateTimeFormatter; +import java.util.List; + +@Service +@RequiredArgsConstructor +public class ReportService { + private final TransactionRepository transactionRepository; + + public Mono exportTransactionsToCsv(Long userId) { + return transactionRepository.findVisibleTransactionsForUser(userId) + .collectList() + .map(this::generateCsvBytes); + } + + private byte[] generateCsvBytes(List transactions) { + try (ByteArrayOutputStream out = new ByteArrayOutputStream(); + PrintWriter pw = new PrintWriter(out, true, StandardCharsets.UTF_8); + CSVPrinter csvPrinter = new CSVPrinter(pw, CSVFormat.DEFAULT.builder().setHeader("ID", "Date", "Type", "Amount", "Description").build())) { + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + for (Transaction tx : transactions) { + csvPrinter.printRecord( + tx.getId(), + tx.getDate() != null ? tx.getDate().format(formatter) : "", + tx.getType(), + tx.getAmount(), + tx.getDescription() != null ? tx.getDescription() : "" + ); + } + csvPrinter.flush(); + return out.toByteArray(); + } catch (Exception e) { + throw new RuntimeException("Error generating CSV", e); + } + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/TransactionService.java b/kifi-api/src/main/java/com/kifi/api/service/TransactionService.java new file mode 100644 index 0000000..2139b9c --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/TransactionService.java @@ -0,0 +1,227 @@ +package com.kifi.api.service; + +import com.kifi.api.entity.Transaction; +import com.kifi.api.entity.TransactionAttachment; +import com.kifi.api.entity.TransactionItem; +import com.kifi.api.repository.TransactionAttachmentRepository; +import com.kifi.api.repository.TransactionItemRepository; +import com.kifi.api.repository.TransactionRepository; +import com.kifi.api.repository.WalletRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.core.io.buffer.DataBuffer; +import org.springframework.core.io.buffer.DataBufferUtils; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.http.codec.multipart.FilePart; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; + +@Service +@RequiredArgsConstructor +public class TransactionService { + private final TransactionRepository transactionRepository; + private final TransactionItemRepository transactionItemRepository; + private final TransactionAttachmentRepository transactionAttachmentRepository; + private final WalletRepository walletRepository; + private final MinioServiceClient minioServiceClient; + + public Flux getTransactions(Long userId) { + return transactionRepository.findVisibleTransactionsForUser(userId) + .flatMap(this::populateItemsAndAttachments); + } + + public Mono> searchTransactions(Long userId, String type, Long walletId, Long categoryId, LocalDate startDate, LocalDate endDate, String search, Pageable pageable) { + return transactionRepository.findTransactionsWithFilters(userId, type, walletId, categoryId, startDate, endDate, search, pageable) + .flatMap(page -> Flux.fromIterable(page.getContent()) + .flatMap(this::populateItemsAndAttachments) + .collectList() + .map(populatedList -> new org.springframework.data.domain.PageImpl<>(populatedList, pageable, page.getTotalElements()))); + } + + private Mono populateItemsAndAttachments(Transaction transaction) { + Mono> itemsMono = transactionItemRepository.findByTransactionId(transaction.getId()).collectList(); + Mono> attachmentsMono = transactionAttachmentRepository.findByTransactionId(transaction.getId()).collectList(); + + return Mono.zip(itemsMono, attachmentsMono).map(tuple -> { + transaction.setItems(tuple.getT1()); + transaction.setAttachments(tuple.getT2()); + return transaction; + }); + } + + @Transactional + public Mono addTransaction(Long userId, Transaction transaction) { + transaction.setUserId(userId); + transaction.setCreatedAt(LocalDateTime.now()); + if ("INVESTMENT".equals(transaction.getType())) { + transaction.setInvestmentStatus("OPEN"); + } + + Mono updateBalances = updateWalletBalances(transaction.getFromWalletId(), transaction.getToWalletId(), transaction.getAmount()); + + return updateBalances.then(transactionRepository.save(transaction)).flatMap(savedTx -> { + Mono itemsMono = Mono.empty(); + if (transaction.getItems() != null && !transaction.getItems().isEmpty()) { + for (TransactionItem item : transaction.getItems()) { + item.setTransactionId(savedTx.getId()); + item.setCreatedAt(LocalDateTime.now()); + } + itemsMono = transactionItemRepository.saveAll(transaction.getItems()).then(); + } + return itemsMono.thenReturn(savedTx); + }).flatMap(this::populateItemsAndAttachments); + } + + private Mono updateWalletBalances(Long fromWalletId, Long toWalletId, BigDecimal amount) { + Mono deductFrom = fromWalletId != null ? walletRepository.findById(fromWalletId) + .flatMap(w -> { + w.setBalance(w.getBalance().subtract(amount)); + return walletRepository.save(w); + }).then() : Mono.empty(); + + Mono addTo = toWalletId != null ? walletRepository.findById(toWalletId) + .flatMap(w -> { + w.setBalance(w.getBalance().add(amount)); + return walletRepository.save(w); + }).then() : Mono.empty(); + + return deductFrom.then(addTo); + } + + public Mono addAttachment(Long transactionId, String fileName, String contentType, String base64Content) { + String uniqueFileName = UUID.randomUUID().toString() + "_" + fileName; + String directoryPath = "transactions/" + transactionId; + + return minioServiceClient.uploadFile(directoryPath, contentType, uniqueFileName, base64Content) + .flatMap(minioResponse -> { + if (minioResponse.isSuccess()) { + TransactionAttachment attachment = TransactionAttachment.builder() + .transactionId(transactionId) + .fileName(fileName) + .filePath(minioResponse.getFilePath()) + .contentType(contentType) + .createdAt(LocalDateTime.now()) + .build(); + return transactionAttachmentRepository.save(attachment); + } else { + return Mono.error(new RuntimeException("Failed to upload to MinIO")); + } + }); + } + + public Mono deleteAttachment(Long attachmentId) { + return transactionAttachmentRepository.findById(attachmentId) + .flatMap(attachment -> + minioServiceClient.deleteFile(attachment.getContentType(), attachment.getFilePath()) + .then(transactionAttachmentRepository.delete(attachment)) + ); + } + + public Mono downloadAttachment(Long attachmentId) { + return transactionAttachmentRepository.findById(attachmentId) + .switchIfEmpty(Mono.error(new RuntimeException("Attachment not found"))) + .flatMap(attachment -> + minioServiceClient.downloadFile(attachment.getContentType(), attachment.getFilePath()) + ); + } + + @Transactional + public Mono updateTransaction(Long id, Long userId, Transaction updatedTransaction) { + return transactionRepository.findById(id) + .filter(t -> t.getUserId().equals(userId)) + .flatMap(t -> { + // Revert old balances + Mono revertBalances = updateWalletBalances(t.getToWalletId(), t.getFromWalletId(), t.getAmount()); + + // Apply new balances + Mono applyNewBalances = updateWalletBalances(updatedTransaction.getFromWalletId(), updatedTransaction.getToWalletId(), updatedTransaction.getAmount()); + + t.setCategoryId(updatedTransaction.getCategoryId()); + t.setFromWalletId(updatedTransaction.getFromWalletId()); + t.setToWalletId(updatedTransaction.getToWalletId()); + t.setNotes(updatedTransaction.getNotes()); + t.setType(updatedTransaction.getType()); + t.setAmount(updatedTransaction.getAmount()); + t.setDate(updatedTransaction.getDate()); + t.setDescription(updatedTransaction.getDescription()); + + return revertBalances.then(applyNewBalances).then(transactionRepository.save(t)); + }).flatMap(this::populateItemsAndAttachments); + } + + @Transactional + public Mono closeInvestment(Long id, Long userId, BigDecimal maturityAmount, LocalDate closingDate, Long destinationWalletId) { + return transactionRepository.findById(id) + .filter(t -> t.getUserId().equals(userId) && "OPEN".equals(t.getInvestmentStatus())) + .flatMap(t -> { + t.setInvestmentStatus("CLOSED"); + t.setClosingDate(closingDate); + t.setMaturityAmount(maturityAmount); + BigDecimal profitLoss = maturityAmount.subtract(t.getAmount()); + t.setProfitLoss(profitLoss); + + Mono profitLossProcess = Mono.empty(); + if (profitLoss.compareTo(BigDecimal.ZERO) > 0) { + Transaction profit = new Transaction(); + profit.setUserId(userId); + profit.setType("INCOME"); + profit.setAmount(profitLoss); + profit.setDate(closingDate); + profit.setToWalletId(t.getToWalletId()); + profit.setDescription("Profit from " + (t.getDescription() != null ? t.getDescription() : "Investment")); + profitLossProcess = transactionRepository.save(profit) + .flatMap(savedProfit -> updateWalletBalances(null, savedProfit.getToWalletId(), profitLoss)); + } else if (profitLoss.compareTo(BigDecimal.ZERO) < 0) { + Transaction loss = new Transaction(); + loss.setUserId(userId); + loss.setType("EXPENSE"); + loss.setAmount(profitLoss.abs()); + loss.setDate(closingDate); + loss.setFromWalletId(t.getToWalletId()); + loss.setDescription("Loss from " + (t.getDescription() != null ? t.getDescription() : "Investment")); + profitLossProcess = transactionRepository.save(loss) + .flatMap(savedLoss -> updateWalletBalances(savedLoss.getFromWalletId(), null, profitLoss.abs())); + } + + // Create transfer transaction from the investment wallet to the savings wallet + if (destinationWalletId != null) { + Transaction transfer = new Transaction(); + transfer.setUserId(userId); + transfer.setType("TRANSFER"); + transfer.setAmount(maturityAmount); + transfer.setDate(closingDate); + transfer.setFromWalletId(t.getToWalletId()); // The money was in the investment wallet + transfer.setToWalletId(destinationWalletId); + transfer.setDescription("Closure of " + (t.getDescription() != null ? t.getDescription() : "Investment")); + + return transactionRepository.save(t) + .then(profitLossProcess) + .then(transactionRepository.save(transfer)) + .flatMap(savedTransfer -> updateWalletBalances(savedTransfer.getFromWalletId(), savedTransfer.getToWalletId(), maturityAmount)) + .thenReturn(t); + } else { + return transactionRepository.save(t).then(profitLossProcess).thenReturn(t); + } + }).flatMap(this::populateItemsAndAttachments); + } + + @Transactional + public Mono deleteTransaction(Long id) { + return transactionRepository.findById(id).flatMap(t -> { + Mono revertBalances = updateWalletBalances(t.getToWalletId(), t.getFromWalletId(), t.getAmount()); + return revertBalances.then( + transactionAttachmentRepository.findByTransactionId(id) + .flatMap(attachment -> minioServiceClient.deleteFile(attachment.getContentType(), attachment.getFilePath())) + .then(transactionRepository.deleteById(id)) + ); + }); + } +} diff --git a/kifi-api/src/main/java/com/kifi/api/service/WalletService.java b/kifi-api/src/main/java/com/kifi/api/service/WalletService.java new file mode 100644 index 0000000..5023070 --- /dev/null +++ b/kifi-api/src/main/java/com/kifi/api/service/WalletService.java @@ -0,0 +1,192 @@ +package com.kifi.api.service; + +import com.kifi.api.entity.UserWallet; +import com.kifi.api.entity.Wallet; +import com.kifi.api.entity.WalletInvitation; +import com.kifi.api.repository.BudgetRepository; +import com.kifi.api.repository.RecurringTransactionRepository; +import com.kifi.api.repository.TransactionRepository; +import com.kifi.api.repository.UserWalletRepository; +import com.kifi.api.repository.WalletInvitationRepository; +import com.kifi.api.repository.WalletRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.time.LocalDateTime; + +@Service +@RequiredArgsConstructor +public class WalletService { + private final WalletRepository walletRepository; + private final UserWalletRepository userWalletRepository; + private final WalletInvitationRepository walletInvitationRepository; + private final TransactionRepository transactionRepository; + private final BudgetRepository budgetRepository; + private final RecurringTransactionRepository recurringTransactionRepository; + private final EmailService emailService; + private final com.kifi.api.repository.UserRepository userRepository; + + public Mono createWallet(Long ownerId, String name, String nature, String icon, String color, String currency, java.math.BigDecimal initialBalance) { + Wallet wallet = new Wallet(); + wallet.setOwnerId(ownerId); + wallet.setName(name); + wallet.setNature(nature != null ? nature : "CASH"); + wallet.setBalance(initialBalance != null ? initialBalance : java.math.BigDecimal.ZERO); + wallet.setCurrency(currency != null ? currency : "INR"); + wallet.setIcon(icon); + wallet.setColor(color); + wallet.setCreatedAt(LocalDateTime.now()); + + return walletRepository.save(wallet) + .flatMap(savedWallet -> { + UserWallet uw = new UserWallet(); + uw.setUserId(ownerId); + uw.setWalletId(savedWallet.getId()); + uw.setRole("OWNER"); + uw.setJoinedAt(LocalDateTime.now()); + return userWalletRepository.save(uw).thenReturn(savedWallet); + }); + } + + public Flux getWalletsForUser(Long userId) { + return userWalletRepository.findByUserId(userId) + .flatMap(uw -> walletRepository.findById(uw.getWalletId())); + } + + public Mono inviteUserToWallet(Long walletId, Long userIdToInvite) { + UserWallet uw = new UserWallet(); + uw.setUserId(userIdToInvite); + uw.setWalletId(walletId); + uw.setRole("MEMBER"); + uw.setJoinedAt(LocalDateTime.now()); + return userWalletRepository.save(uw); + } + + public Mono inviteUserByEmail(Long inviterId, Long walletId, String inviteeEmail) { + return walletRepository.findById(walletId) + .flatMap(wallet -> { + WalletInvitation invitation = new WalletInvitation(); + invitation.setWalletId(walletId); + invitation.setInviterId(inviterId); + invitation.setInviteeEmail(inviteeEmail); + invitation.setStatus("PENDING"); + invitation.setCreatedAt(LocalDateTime.now()); + return walletInvitationRepository.save(invitation) + .flatMap(savedInv -> { + String emailHtml = emailService.buildInvitationEmailTemplate( + "Wallet Invitation 🤝", + "You have been invited to join the wallet: " + wallet.getName(), + "Please log in to the Kifi app with this email to accept or decline the invitation." + ); + return emailService.sendEmail(inviteeEmail, "Kifi – Wallet Invitation", emailHtml) + .thenReturn(savedInv) + .onErrorResume(e -> Mono.just(savedInv)); // Return saved invitation even if email fails + }); + }); + } + + public Flux getPendingInvitations(String email) { + return walletInvitationRepository.findByInviteeEmailAndStatus(email, "PENDING"); + } + + public Mono respondToInvitation(Long invitationId, String email, Long userId, boolean accept) { + return walletInvitationRepository.findById(invitationId) + .filter(inv -> inv.getInviteeEmail().equalsIgnoreCase(email) && "PENDING".equals(inv.getStatus())) + .flatMap(inv -> { + inv.setStatus(accept ? "ACCEPTED" : "REJECTED"); + return walletInvitationRepository.save(inv) + .flatMap(savedInv -> { + if (accept) { + UserWallet uw = new UserWallet(); + uw.setUserId(userId); + uw.setWalletId(savedInv.getWalletId()); + uw.setRole("MEMBER"); + uw.setJoinedAt(LocalDateTime.now()); + return userWalletRepository.save(uw).then(); + } + return Mono.empty(); + }); + }); + } + + public Mono editWallet(Long walletId, Long ownerId, String name, String nature, String icon, String color, String currency) { + return walletRepository.findById(walletId) + .filter(w -> w.getOwnerId().equals(ownerId)) + .switchIfEmpty(Mono.error(new RuntimeException("Wallet not found or you are not the owner"))) + .flatMap(w -> { + if (name != null) w.setName(name); + if (nature != null) w.setNature(nature); + if (icon != null) w.setIcon(icon); + if (color != null) w.setColor(color); + if (currency != null) w.setCurrency(currency); + return walletRepository.save(w); + }); + } + + public Mono deleteWallet(Long walletId, Long ownerId) { + return walletRepository.findById(walletId) + .filter(w -> w.getOwnerId().equals(ownerId)) + .switchIfEmpty(Mono.error(new RuntimeException("Wallet not found or you are not the owner"))) + .flatMap(w -> transactionRepository.countByFromWalletIdOrToWalletId(walletId, walletId) + .flatMap(txCount -> recurringTransactionRepository.countByFromWalletIdOrToWalletId(walletId, walletId) + .flatMap(rtCount -> { + if (txCount > 0 || rtCount > 0) { + return Mono.error(new RuntimeException("Cannot delete wallet with transactions")); + } + return budgetRepository.deleteByWalletId(walletId) + .then(walletInvitationRepository.deleteByWalletId(walletId)) + .then(userWalletRepository.deleteByWalletId(walletId)) + .then(walletRepository.deleteById(walletId)); + }) + ) + ); + } + + public Flux getWalletMembers(Long walletId, Long requestingUserId) { + // Ensure requesting user has access to this wallet + return userWalletRepository.findByUserId(requestingUserId) + .filter(uw -> uw.getWalletId().equals(walletId)) + .switchIfEmpty(Mono.error(new RuntimeException("You do not have access to this wallet"))) + .next() + .flatMapMany(uw -> userWalletRepository.findByWalletId(walletId) + .flatMap(memberUw -> userRepository.findById(memberUw.getUserId()) + .map(user -> com.kifi.api.dto.WalletMemberDTO.builder() + .userId(user.getId()) + .email(user.getEmail()) + .role(memberUw.getRole()) + .joinedAt(memberUw.getJoinedAt()) + .build() + ) + ) + ); + } + + public Mono removeWalletMember(Long walletId, Long ownerId, Long memberIdToRemove) { + return walletRepository.findById(walletId) + .filter(w -> w.getOwnerId().equals(ownerId)) + .switchIfEmpty(Mono.error(new RuntimeException("Wallet not found or you are not the owner"))) + .flatMap(w -> { + if (ownerId.equals(memberIdToRemove)) { + return Mono.error(new RuntimeException("Cannot remove the owner of the wallet")); + } + return userWalletRepository.findByWalletId(walletId) + .filter(uw -> uw.getUserId().equals(memberIdToRemove)) + .next() + .flatMap(uw -> userWalletRepository.delete(uw)); + }); + } + + @Autowired + private org.springframework.r2dbc.core.DatabaseClient databaseClient; + + public Flux getKnownContacts(Long currentUserId) { + String sql = "SELECT DISTINCT u.email FROM users u JOIN user_wallets uw ON u.id = uw.user_id WHERE uw.wallet_id IN (SELECT wallet_id FROM user_wallets WHERE user_id = :userId) AND u.id != :userId"; + return databaseClient.sql(sql) + .bind("userId", currentUserId) + .map((row, rowMetadata) -> row.get("email", String.class)) + .all(); + } +} diff --git a/kifi-api/src/main/resources/application.yml b/kifi-api/src/main/resources/application.yml new file mode 100644 index 0000000..3138e5e --- /dev/null +++ b/kifi-api/src/main/resources/application.yml @@ -0,0 +1,48 @@ +spring: + application: + name: kifi-api + + r2dbc: + url: r2dbc:postgresql://103.125.129.116:5333/kifi + username: postgres + password: M@triXPostgr3s@6202 + pool: + initial-size: 5 + max-size: 20 + + sql: + init: + mode: never + schema-locations: classpath:schema.sql + + data: + redis: + host: 103.125.129.116 + port: 7901 + password: M@triXR3d1s@6202 + + mail: + host: smtp.gmail.com + port: 587 + username: technobeesolutions@gmail.com + password: lrideibfakickldg + properties: + mail: + smtp: + auth: true + starttls: + enable: true + + minio: + service: + url: http://103.125.129.116:1500 + bucket: kifi + +jwt: + secret: 404E635266556A586E3272357538782F413F4428472B4B6250645367566B5970 + expiration: 604800000 # 7 days + +logging: + level: + org.springframework.data.r2dbc: DEBUG + org.springframework.r2dbc: DEBUG diff --git a/kifi-api/src/main/resources/schema.sql b/kifi-api/src/main/resources/schema.sql new file mode 100644 index 0000000..fb407b8 --- /dev/null +++ b/kifi-api/src/main/resources/schema.sql @@ -0,0 +1,134 @@ + +CREATE TABLE IF NOT EXISTS users ( + id SERIAL PRIMARY KEY, + email VARCHAR(255) UNIQUE NOT NULL, + password VARCHAR(255), + enabled BOOLEAN DEFAULT FALSE, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS merchants ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id), + name VARCHAR(255) NOT NULL, + icon_name VARCHAR(255), + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS categories ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id), + name VARCHAR(255) NOT NULL, + icon_name VARCHAR(255), + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS transactions ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id), + category_id INTEGER REFERENCES categories(id), + type VARCHAR(50) NOT NULL, -- 'INCOME' or 'EXPENSE' or 'INVESTMENT' + amount DECIMAL(10, 2) NOT NULL, + date DATE NOT NULL, + description TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS budgets ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id), + category_id INTEGER REFERENCES categories(id), + monthly_limit DECIMAL(10, 2) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + UNIQUE(user_id, category_id) +); + +CREATE TABLE IF NOT EXISTS recurring_transactions ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id), + category_id INTEGER REFERENCES categories(id), + type VARCHAR(50) NOT NULL, + amount DECIMAL(10, 2) NOT NULL, + frequency VARCHAR(50) NOT NULL, + next_execution_date DATE NOT NULL, + description TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS wallets ( + id SERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL, + owner_id INTEGER REFERENCES users(id), + nature VARCHAR(50) DEFAULT 'CASH', -- 'CASH', 'DEPOSIT', 'EXPENSE', 'INCOME', 'SAVINGS', 'LOAN', etc. + balance DECIMAL(15, 2) DEFAULT 0.00, + currency VARCHAR(10) DEFAULT 'INR', + icon VARCHAR(255), + color VARCHAR(50), + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS user_wallets ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id), + wallet_id INTEGER REFERENCES wallets(id), + role VARCHAR(50) DEFAULT 'MEMBER', + joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + UNIQUE (user_id, wallet_id) +); + +ALTER TABLE wallets ADD COLUMN IF NOT EXISTS nature VARCHAR(50) DEFAULT 'CASH'; +ALTER TABLE wallets ADD COLUMN IF NOT EXISTS balance DECIMAL(15, 2) DEFAULT 0.00; +ALTER TABLE wallets ADD COLUMN IF NOT EXISTS currency VARCHAR(10) DEFAULT 'INR'; +ALTER TABLE wallets ADD COLUMN IF NOT EXISTS icon VARCHAR(255); +ALTER TABLE wallets ADD COLUMN IF NOT EXISTS color VARCHAR(50); + +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS wallet_id INTEGER REFERENCES wallets(id); +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS from_wallet_id INTEGER REFERENCES wallets(id); +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS to_wallet_id INTEGER REFERENCES wallets(id); +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS notes TEXT; +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS due_date DATE; +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS alert_schedule VARCHAR(50); +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS alert_time TIME; + +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS investment_status VARCHAR(20) DEFAULT 'OPEN'; +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS maturity_amount DECIMAL(10, 2); +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS profit_loss DECIMAL(10, 2); +ALTER TABLE transactions ADD COLUMN IF NOT EXISTS closing_date DATE; + +CREATE TABLE IF NOT EXISTS transaction_items ( + id SERIAL PRIMARY KEY, + transaction_id INTEGER REFERENCES transactions(id) ON DELETE CASCADE, + name VARCHAR(255) NOT NULL, + amount DECIMAL(10, 2) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE IF NOT EXISTS transaction_attachments ( + id SERIAL PRIMARY KEY, + transaction_id INTEGER REFERENCES transactions(id) ON DELETE CASCADE, + file_name VARCHAR(255) NOT NULL, + file_path VARCHAR(1024) NOT NULL, + content_type VARCHAR(100), + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +ALTER TABLE budgets ADD COLUMN IF NOT EXISTS wallet_id INTEGER REFERENCES wallets(id); +ALTER TABLE budgets ADD COLUMN IF NOT EXISTS is_shared BOOLEAN DEFAULT FALSE; +-- Ensure budget can be either category-specific or wallet-specific +ALTER TABLE budgets ALTER COLUMN category_id DROP NOT NULL; + +ALTER TABLE recurring_transactions ADD COLUMN IF NOT EXISTS from_wallet_id INTEGER REFERENCES wallets(id); +ALTER TABLE recurring_transactions ADD COLUMN IF NOT EXISTS to_wallet_id INTEGER REFERENCES wallets(id); +ALTER TABLE recurring_transactions ADD COLUMN IF NOT EXISTS status VARCHAR(20) DEFAULT 'ACTIVE'; +ALTER TABLE recurring_transactions ADD COLUMN IF NOT EXISTS end_date DATE; +ALTER TABLE recurring_transactions ALTER COLUMN category_id DROP NOT NULL; + +CREATE TABLE IF NOT EXISTS wallet_invitations ( + id SERIAL PRIMARY KEY, + wallet_id INTEGER REFERENCES wallets(id), + inviter_id INTEGER REFERENCES users(id), + invitee_email VARCHAR(255) NOT NULL, + status VARCHAR(20) DEFAULT 'PENDING', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); diff --git a/kifi-api/src/test/java/com/kifi/api/KifiApiApplicationTests.java b/kifi-api/src/test/java/com/kifi/api/KifiApiApplicationTests.java new file mode 100644 index 0000000..53c14ea --- /dev/null +++ b/kifi-api/src/test/java/com/kifi/api/KifiApiApplicationTests.java @@ -0,0 +1,13 @@ +package com.kifi.api; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class KifiApiApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/kifi-app/.gitignore b/kifi-app/.gitignore new file mode 100644 index 0000000..3820a95 --- /dev/null +++ b/kifi-app/.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-dependencies +.pub-cache/ +.pub/ +/build/ +/coverage/ + +# 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/kifi-app/.metadata b/kifi-app/.metadata new file mode 100644 index 0000000..41a1979 --- /dev/null +++ b/kifi-app/.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: "8b872868494e429d94fa06dca855c306438b22c0" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 8b872868494e429d94fa06dca855c306438b22c0 + base_revision: 8b872868494e429d94fa06dca855c306438b22c0 + - platform: android + create_revision: 8b872868494e429d94fa06dca855c306438b22c0 + base_revision: 8b872868494e429d94fa06dca855c306438b22c0 + - platform: ios + create_revision: 8b872868494e429d94fa06dca855c306438b22c0 + base_revision: 8b872868494e429d94fa06dca855c306438b22c0 + - platform: linux + create_revision: 8b872868494e429d94fa06dca855c306438b22c0 + base_revision: 8b872868494e429d94fa06dca855c306438b22c0 + - platform: macos + create_revision: 8b872868494e429d94fa06dca855c306438b22c0 + base_revision: 8b872868494e429d94fa06dca855c306438b22c0 + - platform: web + create_revision: 8b872868494e429d94fa06dca855c306438b22c0 + base_revision: 8b872868494e429d94fa06dca855c306438b22c0 + - platform: windows + create_revision: 8b872868494e429d94fa06dca855c306438b22c0 + base_revision: 8b872868494e429d94fa06dca855c306438b22c0 + + # 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/kifi-app/README.md b/kifi-app/README.md new file mode 100644 index 0000000..770d8b3 --- /dev/null +++ b/kifi-app/README.md @@ -0,0 +1,16 @@ +# kifi_app + +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/kifi-app/analysis_options.yaml b/kifi-app/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/kifi-app/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/kifi-app/android/.gitignore b/kifi-app/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/kifi-app/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/kifi-app/android/app/build.gradle.kts b/kifi-app/android/app/build.gradle.kts new file mode 100644 index 0000000..d78a813 --- /dev/null +++ b/kifi-app/android/app/build.gradle.kts @@ -0,0 +1,50 @@ +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.sarascore.kifi_app" + compileSdk = 37 + ndkVersion = flutter.ndkVersion + + compileOptions { + isCoreLibraryDesugaringEnabled = true + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.sarascore.kifi_app" + // 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.getByName("debug") + proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") + } + } +} + +dependencies { + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") +} + +flutter { + source = "../.." +} diff --git a/kifi-app/android/app/proguard-rules.pro b/kifi-app/android/app/proguard-rules.pro new file mode 100644 index 0000000..5c91193 --- /dev/null +++ b/kifi-app/android/app/proguard-rules.pro @@ -0,0 +1,4 @@ +-dontwarn com.google.mlkit.vision.text.chinese.** +-dontwarn com.google.mlkit.vision.text.devanagari.** +-dontwarn com.google.mlkit.vision.text.japanese.** +-dontwarn com.google.mlkit.vision.text.korean.** diff --git a/kifi-app/android/app/src/debug/AndroidManifest.xml b/kifi-app/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/kifi-app/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/kifi-app/android/app/src/main/AndroidManifest.xml b/kifi-app/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..411e205 --- /dev/null +++ b/kifi-app/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/kifi-app/android/app/src/main/kotlin/com/sarascore/kifi_app/MainActivity.kt b/kifi-app/android/app/src/main/kotlin/com/sarascore/kifi_app/MainActivity.kt new file mode 100644 index 0000000..8939ce7 --- /dev/null +++ b/kifi-app/android/app/src/main/kotlin/com/sarascore/kifi_app/MainActivity.kt @@ -0,0 +1,5 @@ +package com.sarascore.kifi_app + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/kifi-app/android/app/src/main/res/drawable-v21/launch_background.xml b/kifi-app/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/kifi-app/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/kifi-app/android/app/src/main/res/drawable/launch_background.xml b/kifi-app/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/kifi-app/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/kifi-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/kifi-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1a8aef11e206eb9e8ae16ecea5188847047d23f0 GIT binary patch literal 5669 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 LNkvXXu0mjf6ZhVY literal 0 HcmV?d00001 diff --git a/kifi-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/kifi-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0a51d7838f47fafbd092fa8a01810569a68785e1 GIT binary patch literal 3000 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 + + + + + + diff --git a/kifi-app/android/app/src/main/res/values/styles.xml b/kifi-app/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/kifi-app/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/kifi-app/android/app/src/profile/AndroidManifest.xml b/kifi-app/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/kifi-app/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/kifi-app/android/build.gradle.kts b/kifi-app/android/build.gradle.kts new file mode 100644 index 0000000..dbee657 --- /dev/null +++ b/kifi-app/android/build.gradle.kts @@ -0,0 +1,24 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/kifi-app/android/gradle.properties b/kifi-app/android/gradle.properties new file mode 100644 index 0000000..fbee1d8 --- /dev/null +++ b/kifi-app/android/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true diff --git a/kifi-app/android/gradle/wrapper/gradle-wrapper.properties b/kifi-app/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..02767eb --- /dev/null +++ b/kifi-app/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.13-all.zip diff --git a/kifi-app/android/settings.gradle.kts b/kifi-app/android/settings.gradle.kts new file mode 100644 index 0000000..ca7fe06 --- /dev/null +++ b/kifi-app/android/settings.gradle.kts @@ -0,0 +1,26 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + 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.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false +} + +include(":app") diff --git a/kifi-app/assets/icon.png b/kifi-app/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fb1458a71af57c84d758f533c6ede155a134aa9d GIT binary patch literal 682015 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∨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 mH3Kd)Cd)F$MJ7w$iloT+Q7PGx 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˪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 z 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 WmTVC-cXyir0000Xe literal 0 HcmV?d00001 diff --git a/kifi-app/flutter_launcher_icons.yaml b/kifi-app/flutter_launcher_icons.yaml new file mode 100644 index 0000000..242e426 --- /dev/null +++ b/kifi-app/flutter_launcher_icons.yaml @@ -0,0 +1,4 @@ +flutter_icons: + android: true + ios: true + image_path: "assets/icon.png" diff --git a/kifi-app/ios/.gitignore b/kifi-app/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/kifi-app/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/kifi-app/ios/Flutter/AppFrameworkInfo.plist b/kifi-app/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..1dc6cf7 --- /dev/null +++ b/kifi-app/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 + 13.0 + + diff --git a/kifi-app/ios/Flutter/Debug.xcconfig b/kifi-app/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..ec97fc6 --- /dev/null +++ b/kifi-app/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/kifi-app/ios/Flutter/Release.xcconfig b/kifi-app/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..c4855bf --- /dev/null +++ b/kifi-app/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/kifi-app/ios/Podfile b/kifi-app/ios/Podfile new file mode 100644 index 0000000..3853408 --- /dev/null +++ b/kifi-app/ios/Podfile @@ -0,0 +1,46 @@ +# Uncomment this line to define a global platform for your project +platform :ios, '15.5' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + target.build_configurations.each do |config| + config.build_settings.delete 'EXCLUDED_ARCHS' + end + end +end diff --git a/kifi-app/ios/Podfile.lock b/kifi-app/ios/Podfile.lock new file mode 100644 index 0000000..b4b5805 --- /dev/null +++ b/kifi-app/ios/Podfile.lock @@ -0,0 +1,179 @@ +PODS: + - Flutter (1.0.0) + - flutter_image_compress_common (1.0.0): + - Flutter + - SDWebImage + - SDWebImageWebPCoder + - flutter_local_notifications (0.0.1): + - Flutter + - flutter_secure_storage_darwin (10.0.0): + - Flutter + - FlutterMacOS + - google_mlkit_commons (0.12.0): + - Flutter + - MLKitVision (~> 10.0.0) + - google_mlkit_text_recognition (0.16.0): + - Flutter + - google_mlkit_commons + - GoogleMLKit/TextRecognition (~> 9.0.0) + - GoogleDataTransport (10.1.1): + - nanopb (~> 3.30910.0) + - PromisesObjC (~> 2.4) + - GoogleMLKit/MLKitCore (9.0.0): + - MLKitCommon (~> 14.0.0) + - GoogleMLKit/TextRecognition (9.0.0): + - GoogleMLKit/MLKitCore + - MLKitTextRecognition (~> 7.0.0) + - GoogleToolboxForMac/Defines (4.2.1) + - GoogleToolboxForMac/Logger (4.2.1): + - GoogleToolboxForMac/Defines (= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (4.2.1)": + - GoogleToolboxForMac/Defines (= 4.2.1) + - GoogleUtilities/Environment (8.1.2): + - GoogleUtilities/Privacy + - GoogleUtilities/Logger (8.1.2): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (8.1.2) + - GoogleUtilities/UserDefaults (8.1.2): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GTMSessionFetcher/Core (3.5.0) + - image_picker_ios (0.0.1): + - Flutter + - libwebp (1.6.0): + - libwebp/demux (= 1.6.0) + - libwebp/mux (= 1.6.0) + - libwebp/sharpyuv (= 1.6.0) + - libwebp/webp (= 1.6.0) + - libwebp/demux (1.6.0): + - libwebp/webp + - libwebp/mux (1.6.0): + - libwebp/demux + - libwebp/sharpyuv (1.6.0) + - libwebp/webp (1.6.0): + - libwebp/sharpyuv + - local_auth_darwin (0.0.1): + - Flutter + - FlutterMacOS + - MLImage (1.0.0-beta8) + - MLKitCommon (14.0.0): + - GoogleDataTransport (~> 10.0) + - GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)" + - GoogleUtilities/Logger (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - GTMSessionFetcher/Core (< 4.0, >= 3.3.2) + - MLKitTextRecognition (7.0.0): + - MLKitCommon (~> 14.0) + - MLKitTextRecognitionCommon (= 6.0.0) + - MLKitVision (~> 10.0) + - MLKitTextRecognitionCommon (6.0.0): + - MLKitCommon (~> 14.0) + - MLKitVision (~> 10.0) + - MLKitVision (10.0.0): + - GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)" + - GTMSessionFetcher/Core (< 4.0, >= 3.3.2) + - MLImage (= 1.0.0-beta8) + - MLKitCommon (~> 14.0) + - nanopb (3.30910.0): + - nanopb/decode (= 3.30910.0) + - nanopb/encode (= 3.30910.0) + - nanopb/decode (3.30910.0) + - nanopb/encode (3.30910.0) + - PromisesObjC (2.4.1) + - SDWebImage (5.21.7): + - SDWebImage/Core (= 5.21.7) + - SDWebImage/Core (5.21.7) + - SDWebImageWebPCoder (0.15.0): + - libwebp (~> 1.0) + - SDWebImage/Core (~> 5.17) + - share_plus (0.0.1): + - Flutter + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - Flutter (from `Flutter`) + - flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`) + - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) + - flutter_secure_storage_darwin (from `.symlinks/plugins/flutter_secure_storage_darwin/darwin`) + - google_mlkit_commons (from `.symlinks/plugins/google_mlkit_commons/ios`) + - google_mlkit_text_recognition (from `.symlinks/plugins/google_mlkit_text_recognition/ios`) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) + - local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`) + - share_plus (from `.symlinks/plugins/share_plus/ios`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + +SPEC REPOS: + trunk: + - GoogleDataTransport + - GoogleMLKit + - GoogleToolboxForMac + - GoogleUtilities + - GTMSessionFetcher + - libwebp + - MLImage + - MLKitCommon + - MLKitTextRecognition + - MLKitTextRecognitionCommon + - MLKitVision + - nanopb + - PromisesObjC + - SDWebImage + - SDWebImageWebPCoder + +EXTERNAL SOURCES: + Flutter: + :path: Flutter + flutter_image_compress_common: + :path: ".symlinks/plugins/flutter_image_compress_common/ios" + flutter_local_notifications: + :path: ".symlinks/plugins/flutter_local_notifications/ios" + flutter_secure_storage_darwin: + :path: ".symlinks/plugins/flutter_secure_storage_darwin/darwin" + google_mlkit_commons: + :path: ".symlinks/plugins/google_mlkit_commons/ios" + google_mlkit_text_recognition: + :path: ".symlinks/plugins/google_mlkit_text_recognition/ios" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" + local_auth_darwin: + :path: ".symlinks/plugins/local_auth_darwin/darwin" + share_plus: + :path: ".symlinks/plugins/share_plus/ios" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + +SPEC CHECKSUMS: + Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 + flutter_image_compress_common: 11d5dcfb36f4ded92320bfa896261813a073240e + flutter_local_notifications: 643a3eda1ce1c0599413ca31672536d423dee214 + flutter_secure_storage_darwin: 46e401699982ee74142909676535e0f6a7321e58 + google_mlkit_commons: b4dfe2f6ae4cbf24010dc6640a28984d01343c86 + google_mlkit_text_recognition: 9b164471713e3afdb4c129cabe6d1d64fef7e817 + GoogleDataTransport: a24e58982ab3ba2f64d79613e027fe7f57e88539 + GoogleMLKit: b1eee21a41c57704fe72483b15c85cb2c0cd7444 + GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8 + GoogleUtilities: 766ace00c6b10d8148408f329d10c4f051931850 + GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 + image_picker_ios: e0ece4aa2a75771a7de3fa735d26d90817041326 + libwebp: af5937a13536ef73f3784d69cc342b98961acf33 + local_auth_darwin: c3ee6cce0a8d56be34c8ccb66ba31f7f180aaebb + MLImage: 0de5c6c2bf9e93b80ef752e2797f0836f03b58c0 + MLKitCommon: 47d47b50a031d00db62f1b0efe5a1d8b09a3b2e6 + MLKitTextRecognition: c0ad24510481dfc8893ad15dfcb8a5f05ed9e826 + MLKitTextRecognitionCommon: 234ceb1cfdfb5fceb4fd664943046609a2961cc2 + MLKitVision: 39a5a812db83c4a0794445088e567f3631c11961 + nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 + PromisesObjC: 752c3227f599e3467650e47ea36f433eeb10c273 + SDWebImage: e9fc87c1aab89a8ab1bbd74eba378c6f53be8abf + SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377 + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb + +PODFILE CHECKSUM: 05bcc0ae31139d41b9fa5949f7a59ee09c6fb20d + +COCOAPODS: 1.17.0 diff --git a/kifi-app/ios/Runner.xcodeproj/project.pbxproj b/kifi-app/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..16deac4 --- /dev/null +++ b/kifi-app/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,751 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 312D2FA747F4BF324094ED55 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F06C0555F49CA279B7F03E87 /* Pods_RunnerTests.framework */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 52339C7D96FB484157166BA2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 10E322288A433A3444E6480D /* Pods_Runner.framework */; }; + 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 */ + 10E322288A433A3444E6480D /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 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 = ""; }; + 3CB337752F0813F6923ADC49 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 47C12038BB6EBB708F74F4C5 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; 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 = ""; }; + 94C8738DA289CD156F426C3C /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.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 = ""; }; + A1AD163901F88FB7876836C0 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + A1F0AAF9706AEFA06CC31D9A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + F06C0555F49CA279B7F03E87 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F315CD68535668FE5A36584C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7E550CFF6B1E014E5F6406DB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 312D2FA747F4BF324094ED55 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 52339C7D96FB484157166BA2 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 53DF7287B9D01C6A8EF8654D /* Frameworks */ = { + isa = PBXGroup; + children = ( + 10E322288A433A3444E6480D /* Pods_Runner.framework */, + F06C0555F49CA279B7F03E87 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + 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 */, + A53102319B25770F648A9197 /* Pods */, + 53DF7287B9D01C6A8EF8654D /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + A53102319B25770F648A9197 /* Pods */ = { + isa = PBXGroup; + children = ( + 3CB337752F0813F6923ADC49 /* Pods-Runner.debug.xcconfig */, + 47C12038BB6EBB708F74F4C5 /* Pods-Runner.release.xcconfig */, + A1F0AAF9706AEFA06CC31D9A /* Pods-Runner.profile.xcconfig */, + 94C8738DA289CD156F426C3C /* Pods-RunnerTests.debug.xcconfig */, + A1AD163901F88FB7876836C0 /* Pods-RunnerTests.release.xcconfig */, + F315CD68535668FE5A36584C /* Pods-RunnerTests.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 303776586152ACB29BA42786 /* [CP] Check Pods Manifest.lock */, + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + 7E550CFF6B1E014E5F6406DB /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + C9C52B4D2082ADD2599053FA /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 9A9CAD73968105EABAD607AB /* [CP] Embed Pods Frameworks */, + 4F5F2B2DF690B64C3E6E3C86 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 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 */ + 303776586152ACB29BA42786 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 4F5F2B2DF690B64C3E6E3C86 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 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"; + }; + 9A9CAD73968105EABAD607AB /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + C9C52B4D2082ADD2599053FA /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* 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 = 15.5; + 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)"; + DEVELOPMENT_TEAM = GA7G8SBPKB; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.sarascore.kifiApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 94C8738DA289CD156F426C3C /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.sarascore.kifiApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A1AD163901F88FB7876836C0 /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.sarascore.kifiApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F315CD68535668FE5A36584C /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.sarascore.kifiApp.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 = AppIcon; + 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 = 15.5; + 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 = AppIcon; + 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 = 15.5; + 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)"; + DEVELOPMENT_TEAM = GA7G8SBPKB; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.sarascore.kifiApp; + 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)"; + DEVELOPMENT_TEAM = GA7G8SBPKB; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.sarascore.kifiApp; + 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/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/kifi-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/kifi-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/kifi-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e3773d4 --- /dev/null +++ b/kifi-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kifi-app/ios/Runner.xcworkspace/contents.xcworkspacedata b/kifi-app/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/kifi-app/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/kifi-app/ios/Runner/AppDelegate.swift b/kifi-app/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..6266644 --- /dev/null +++ b/kifi-app/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/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d0d98aa --- /dev/null +++ b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1 @@ +{"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":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"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":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@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"}} \ No newline at end of file diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..e82da530b0af5b868d407417089cb14a0f07f486 GIT binary patch literal 501593 zcmV({K+?a7P)4Tx02q~(kg-a`P!xv0Xu&E<1v@x6Wa!|aQbdYt+o1>!Au3p%k~ED%nqHEK zcGu0p)lFP{0nx`$5FErOa1udhPZCP9IC$W{=i}$_bM67{-BQXg)nO3Cq1kEa``rV5 z>Vq;B=4qf=PNbTKv5nNY7fOSl*W`tl)g+7m)pXB|9O<8;nxn#4BCEp2X{-|N30Ff| zO86{cFXPLE?Tl~InO(Cjd@sCg7uYNCz&~;Fy_t1`y&dUg(Gn3R9a?|PY@{=7hA2ja z9OH3Bj80P=g^w$|MS#N^E5hs4MUCX1SzLan+#BA)<~K}U<(_>Fj~B4`mU}h%W91wk zo|F|@sZ|n9^!xC22XkFmc!rt7@nL@f6QD}yxCm-T00*V;Nkl{`KqE_fPxv>(}q!zkjKAz3Vza&-v$L z)b+ffz|359CNp{V$E1%ZA0HpG15o3svp{4AodUT2z99|Glz6z{JTi_~)|Pu3isu568NJSbmk%oLn%NNo%~odhHWkdNFEN%kVx zOY9PYl+}C-)(Z?s$uufD8D1%TeSN`nd0iJ-=_=R zaTHAdZj%ZS7ShBr82kA5Q;yG^L$6$<7>Kp&P%&aE;rlSN*ye7sA+}V3L0+_EOJR*@CAl4a$K)Ycpg01njSMtSq}2KlLN~oFxtnarW$bWGN{M$wQqCcxw?0;qfSGcWcC-%3%!hYD zhh+}7YK3&XH=te+RO$c0=g8#*j~ABNY+vYel%53&D{^brC9zh&-qoY>W;Nk8d#Y@V zZj@x0=XLo>KgC7ovrNa!IM;MIa+eKum)u@*hul4T2ab--)K0^ikam#)T+cRL$MrbawayM6jz5$6&(?UtMj|YJQuoRe=Dtcq59zXJep2U9Y(1>A3y(UE0((F6cXTI*4tULa6HR!eCnLn`g&Oy4HPaSGYa4E zJhNNl{hG}1)M>~abl}Q?TFJA-34uKa++oIyj^w%;{Nv!OTkL77Am0sn6!ZVtEG$^d zs^V^`S*-(P4-F9iJ>g2mrW5INJ18`U7}ICcrxflb7&jE%k;*KU>H$L<_YJYZWo2$6 zaFMIuk=R|vCnt~)>T-cZ>L&|X>a9aCYi_^;OC0}x5-Yb%3b_Hq>vSa#Yg!`HIp)XZ zA_^1a=&~ZL$Y1Am0-X_ zKdkPVLja?0ti)vfU6&Fnf#h!lJI*eS>b@auhMrBkH}8#!pnsos=1hP&ype=t)C9WJ zNL#uu332b~&*^sjt+@6HBW1qQ1POUPH@6$)i~>-N5(x0ca>SD$|kdJw82>U2aDIt8T10e*+O#vV1ZypG!!W z*>>C>wT%9c$Ywp4@?m70UCL1el+foX?JHQk<)5?NW&Yhgy%|}iSfmLsl5^)#Ioxxq znZeR2jB_rF`Ij~lSUrtF8I4H90#~wKIwwQ(e3#1y{W-}*{K3^6c>rFE154pXu6y0& zxA|VvMMvuDCro)eo0;KC!UEt`;sz-KH`luOGLz0RBTUh|QFp;0?=+__Ap9PT%H45`4R0bCd(*=kgl84DCkC#CUbdjJipKBGDB}trj_evT*P_om zP7+$S(3MWeMJ21C?QBH+fpWRIJjLp2PH#Cn=sdZV>D<);@?nrbpH{&O?%=km@lim$ z$J2n|*Fe)OIeVMG+e&`QoF^QftT+vNUQ@$s39A4YNNm6a<&1sH@$NJqO_?`01o`2*3->59O_$I& zluuzw=qZ&7hTPDTvIS`~|9|(GlI2-u(d_I(c+QMTIj_-rbqhDL>p)*p2tX?1;3Mzh zB1-TEp@o`@=-AvvO_M5 zlqTHNZe%KQx;uSPa8;G5+p>h04^dqa&4qv!O_nJx>lm+2{y8(%06EH_oU1c|AJ@um z_tIwW+*CTsc$WhQ^Un|Q3efdhmI@j>Uzvs{Z(8GQ7b&i&1+3g)7v@ctC7ffuhtx}% zI9DD*W`J3}n+E?iGk6}mW`<5>+3Q{V3t#BbY{c4fuyG$1lKYzjQZ~_GDM6Q<9OQ@O z){B^2n(E6E4vx#7H^Prx>|7UbldN>ei5f2v7P~GaJe1nb{nvx?i^#S1udgpA7=(}= zW?B6W3qMMzq~@>RU2!8ix_xJ7((KD=u{J+1Q$)T(#tHUm!H5xRMw6^R(oeb_Y+`|X zF7rkp9x!MS0zZ*ctQg7NK?Q#Dc0&$unvv!GX&8qC)DlR0Fz%kW*Bvt%Kci{-@WC<%YGKDw`fziqzTbIigj;ufi+#7jgso{+` zSd~^{A$d>fG}Fsm!4h)ZVQj}fC-_xK8Avg=QV6TSrL=>~b>MitY+fnd0v=HVuidG_lW|Ipw~nhF~~3m%LywD5z(oEqz1e-_{qI1!TPjt z_{lIhKamS(wAxhtCEAegSS}%p&ILRel66wDl>HKjMfT)w@F}-IL=Jb$m(Mvs$v<7@;MOSDlJgB1-nh_fNC_OJ!p}uD9y^1x*%Opm zW@Xu$K;|yZ3;5Fchb9?YQ6|eoI>U^#!Wv5*0G;6#t#DA*XZd_UG6{5GEvv&1_`y91 znJ;wr84>`uiCicuKV@~K4>xj1XNppzPRm*j--KiC zz@dE7*p9pDcdt1_=vrwVu%PgH!e_={Fd9cP@0t)r(2^eSGfLiMd92hry@rgkv!rFt+6QSJ!Oyxcq=dl zIH{B{&lU0$Sy&3Qlrf<9M6z0Q3UnqvYvH63MW`anE0tkse7_Euye&iK5Vn5RD_C8y zM5&6W`1@XJ-E<4{I#!z}@Ge{)fJ-L9e0uwGQ=j5g9@sb#spryVITtNsrCk2nPQ7%n z+!dYArMW&Vgq+!y)&vF^@IYV2;;oT#;2a=`C6GOBM_?wqns=^>o#r!{?X}(Gv$6d( z{kY7euPaTR3;;MQ52OEJ5hcjU9U64qY~^Frr|i@;hoK#+U_P3j4Cot-$njnVu#i9e zuN{H&iM+e{(ilH?O2Zm+n$LuF0eF&=a)(UQ`M$;=9ZhN2&H)84kY_1J$^P;*8D_aQ zvB@C=9SK|{8g?{6b@>G29xw_qGMl7Jdro7_lyH+&vnjn}T<pP!;Q^m zD>Ixv+2(h1SPv!6eswD|H;hY4iS_g77>#R8D<;X1HyB{a4@@+luSb+T#KootQl3_F z-#NY9695PGpaYztKw1W!b7>(2(Z;8{{*QO5zTm^@aUWKH4X$Hcln93otWDstkmTpY~*}sMD`t!q_(@IWcS_=p!=iwpn zm90tJf}3qLN20OP?lQOevOq|@8DOk{!vf-4o& zg%+S+?&3P{X}P+g+~C)+%o1d*G59F6mqDo4{xx_9#`tya51ez_9Rlhq(j&ZHR;lGc zW>sP}_Z?7@dEhE^lLrybq35fXyv&9TIiyKACI6tPYdp*Cv@TU*(@f#^@DTjqUQnhp ztEc@3oKCrAeps(S?cL_eNyDw*#`CW&R60r@IEPPU^G+$$O}El)vW0140fa&S#%2AL z#_0bB3U9`8j@<^ zQ||lK-pLXlV?TMrn&4Mr?i($KO!mmkr1RGdM0g=U`TD;3*`Z8h`j&I(ke9;{`GjNe zQL47CNZuHRw_u8lJKefqYh=bKYZbDR)GRHl*{Pu1die>jI=ehh9!?RqoW~ zJ)o9J!G(vs7bQ!s=lm1Y$>EYv6nC&GBum$yAsH?+(&@&7G6Xm1lrzunG|KVdFb6;6 zP`%!|;rdSSr~#=2QOw~h0$y8ofME!8n?G>`8Bxg_6A2e7%le1SAxqIg3Kl zk>8?|1y!C)a22Mx?9uz)yztY;m{n?{TR7*>P#4I{Tus}JZPNAZ!(kw#)=_4AYtUEj zpGD`6ETnJwa{?gktw#WBgJZ9wTnD~}DZ~L`-Tuq?$fjhCr#(^U1V08Eg3y!rzFuImWd zNG}&MpD>HW-={X!yd~qK%($HEcB&|oD<}3f#D`GM+n2M)kRYvxqHDt7kS?$n^!5n9 zm5wMcf%{9RbOV6|v=i>sap&N>GOHnS%}g>R|3{7U)!gTL!dfI_$IB0aP3>9FG&v=5 z9pn`Sh_4xZ@M?p3XQ_qQ%$mVuAv<^Yo(&jCl~qaLstJDi0#zA)-i!?;>oI+Yyu zA$BqeMAk*EG}*?p_vV2-DogU}zoNYmDcpwgya9dYEm#k@-f!$=WXZrOB%jXpHG&%p z$;)r@#?_;i1lL^A9qrE9^L>xZLof5m@L$)T+}6zsE+r2K`|6$Hq|ac_!LX)Dhrd$e z0NsGea0u*{?4BQm{z zaimUjP;~pv9-lMy6<~4eJ+d6@fJHg*6tp=eUFOEY(jhsyUvuB3{L6^tP(G+1qnRv_ zQ{WQ%JGL7eTu-rhyZeyPvlZ^ z%CPkiP;)8;sOZ7V!F#nXJ~ zw1!BTGVzn(OvvIcvLCGBYn}km5T3h*hbFyZ$hYUicM^=8HLbHq4=JOt)B#7~NM{@{ z3*o7cFHQ(S8qE2Pxk@??An`!=?k9A0=qG@Htf}QeThq!MH2dgqjw}-chtWArf1q9$#=n74Z>PhZGWfE&07#I-OW@-7LT&N-FQnzJ!d}6$pbU#fJEMX z0Pd6i<)&l`@$=foCU|ngVagC(HYtjHy=V4p{HLQc`}a-~f?NfFx@u-9aYmm!6&KZN;=B7#k^xbk8 zkHRdW+UJPFx*886*^_Hz`hkeUe3Emhi8`T4cvPz8joJzL!BD4cQY;6CU^*$c6%#WC z4VYuDA{&>}(i|h@_Q_&in78--&gxSg3_+R z#pM7i^O8MjGQbJ~RPWp6|3Kfx!4ME9p5wVzhuQ0%b5;^4>4@h^LDqI?kmstdLXg{$WKN;2obCo!&9U{Gf9580 z@_X$FaIC=w!o%r)O@)yakfsIRf+K1$Ul}9+N^`YLS$$~SPKendDZRn=MYBn|RzS>8 zq*(GE%|7|bjmCxi#sdHYb01|bQXcC5b@l7B(5r*v#9@^XvSE11bDyQJwlZ?4egKvk2VOSV}j`D?$J)M{w1 zrn35Fxh{vdN{9@kGSrxz9fdF*B#n6%Ifc9W2oj_Y zB}48hAzFaE>#eQ7DBEzO)K!3{B)^{xY;yK&F6uSv&S}F`xjqVV#AToE6ho#BE9Wqg zd)Q;~25)27WKCThlUp*Tvnd&>VAa8ba;+`!1BMWY&&5iSUhg{RzizQ} z@33}Wh3v^}2Uy%>TtFPSTI(8@Gn60maP&j=!rlz_ku}*lA~!XNV#bT0s2ryx^Y}HO zAV(k_l0VmHP4!ltb3@j61M_Y$=-+3zGu4+ogm-gRCvy+SNjMC0ex!-+&|y7I3;QeW zU(x};DgTtsr61wR>%0FxXZheE8J5l0!Q+?5&>>NAu&&j_4?*V8Sfl)2)rE`TJS$XdpWYKxQ&I+em>l*2}y;^LsqB9?`}DRb|b+wm{l39 zgFS{l{Tcr6wRDJIyhq_!gLy04iU*F`lty++yp|kZIes;t%$C;O>%8N{^BjLRCGlmo}5r=GL)M~9(u)|4@3|Jh-l56t62$AgS3Jp+^Ha_!R7o%*ldN^|;D zmhC01pB(^6yLyrY6HT-Zo#iYc*X8m9tZRkfq1`J<=FEKl>C{!4{G`T~a>P>T)=b!)mf4%!S9u19sx2xjh`0B)- zcOe!h5R14<39C~xRx&gH44-ZFs{8NH^MB;pd#veL;y!)e;tB>ikIEc6;vrN!>=Hbz zoQs)1YWL`K4saSlLkT$`p}@Q}+j9FFg`9>ky;*;{>vCg>fXnO}p39pXjeP|uaFl<- z>O%j31=m0u;7-5l92{YzS5mIID9{`NHv}6WKA(rGnJX5+@D+*5vDB_`{LjkvMX-Un z9IPc^n4J8)wL8)PyPG9|hhcC(8OS#UGOlh$$ra}PcPSD-B!oCM0bgKG^`yWVxE zKz4J~KAU<5z{H~@I6JHxO%^Tsd@F#nqpXy*e=^e)EgqSM?ABKr)~M4ssb&@_NmjK} zo`c5U(+~hXO@BErKMbMhuL${Se9Ii(?a4X}=N^XbC?of22D0A2%rln7#nsE*K%a67 z$!%$drJgi6JD6BLWOtLwbcOqbcgq=Jr^;BnB1ji3`ZMQu+K{;Rvoy z?9}yT*ioi2%_=}o`Wn`_GxP0o?^QWh{kh)C8+R&s*{#Vj){hNjCWGf$H#BSwAD%n- zlsR;~g?5T&-^s2Uh`3I@2D?zdldnHr^etUdw$(Dy@VqXNNMIC_T9*%P3D3oY(ApcB zH$1=S&`qAlIm3rsS74k_k*mmj{)@|8FJcKch-tI3gE zu2N!9Anxi4JX{jw2(g|Km2fj#;_AMdM8(Z6%S+h{g<0nC8`vUGu{x_zI%)QFKFKVt zPQ%szco*iAatC>J?$6b?K*lJW3p8a^Woj#LE45(1?>IL%W2jR&;jdd600vwSlebfx zqbS`7Uq4$tYT46`G7qJczJ4+p@kzG%BnTltWZWfPH>-MI2;lu{ymSr_Y~9WtGvEv} z=1|yYr0htu1hNk-g9!c-uw=`zUY7du(II=@#vvX7P)aLL!Pv{ZeW7mU%3(DStgCIX z{)NxL$+g^L`-Ypo(dU}3L}?5iz?P)*GT%?7z1UH)@FMFl?qA6(f?OQ8wUlpIR_Hb3<-En)gbuQ z+$7d=HhbmvjkC&XRsuySJy(O^i6+d;w*Y3hkPN%}X&7E6Eij#Q(d$Qyrj4tsB`v=C zWOk(l*#+dx{_nP2LYU9hu3VqxeWb{L-UPHaq-nkOcCqhqQ}Fxu?+`~PaK)t29)~J_W`6wpB-O^kIfeZ6IWO?& zL+#v3AxpsRUatXr{+Z!RppbEAK>yjydroAZsfV(X*KbyXtHOO&*Cfr;%FEHWptuMp z`)9A^fct54X_(Za^3suaeFw@ZIe8O12CcpaAb|ebGqfPIqv8F+Fp_{1( zy>NJnd4dz@-A(|qvxCe0kI3fm0S_-dZ{e9k;n7vTavGZybk;t zi`Cz`l-C;+fM2r$Gl~Oru?o<+O8ZN|TuyKZ^#2 za_#Jb;drcLKst?v&t_@-E$NcCz%ZYLF!K(q2Ww)iBgcZrxQ$P!easl`n9L+(Ho}I+ zq+S>M@q9Ric@{(pjI&Gn*Sj*gb?J)qmZhUR0zF|B4uA&VD{}zn`5S3BE9%46jXRv|ftg|X z?&(BRlF|i9bes3$9s|(W*ri``c@)rb^uxR^D!GX`+;F!ef6iIDv}L(poU3Fx=e_Ga zfEybVjPwvz@n&q2!yBwM#dylVX$l8$E?||ZiY|F@69F&?cMF;3ks5$%eZm`g*zN34 znn577-qUUD*3k25#Q6vjkX8j^U)2Cv`|jBIz|!lo|C@EmtwUche)c z255#v0`xpXULZT42S8?_==jFEhX^)}ak!$#!$6>jf>_VA)sh~T2To1O1n zOa|l<_}yl#1jH`N22ye(BtN|y3i%Io3)Y@nKL3&YfFB5p0wFM*%6XAf4|(sCw?Hzp z&c1%4!%2g$#yNh1KUoim8&!1cU8it4p;N!GoAT1#jmF?i`p?oov%1RKp?fPs=TN7Z zA^FDg;k856c@<1YE}S=1c3|Dk9w0oCO?o8G0T>!`^k+Iugehd#U_bbY><#J3;$+G(0i;02Y4>jx47y~eb;0TWuC76Gs`qw!Y*OW zI~au}EnD@uNr`is2X8qPcpGVDELajLdrs-~hUP?c8(SRBn8Q_%as5Y71lc3@ zWQW|-o&31DoFmGo+f!GMV3T8GwUJEZhK7`>V1`XcGqRF^yKaE#QHf#oIeD(zjqiPh zDuz3|%Tt7GSr!g5jx0~8T$^ijtU6->1|$rFv#)%4eRXSLA&z+%?mW!tvECY_a@Kv? z04YJtdft){%PCW0H&<9-cn)aiG!}!1?AL&1O}c>qPTN|*{^|30@y&N{a!$PNoC5@_ zX`RM+=Z|vW33YTCgBt+N>czx+7)%$z)hQr;fR-B_o+rSBRi}ZYI5F4x+HAkb=GmmDWnw8a$*_;RCz8eHq2N zlvPIJCJH*B_O~)RNt0^|*?4cX#(_x5hioT+TK62Z8j4d*R&!Cy=q;E@wxe8IWa9E$ zDCE5EOdwypk(@|Z({MgH3>$i+?Q-w>95^8Ids!=QN;toD)_r}T)|E{s5l5f>c`(DW z{801p7hDK)=1^uAkN%&*5}dDp(?w1qWdiMO3-@=ELgWx9&EG0yx!CFCUkb-#v}6UON!itnrw4i!$jOe2RG*u00gX6 zlQkEWYiUxKaF!LE^(vXBp2`--&mn&ZZaX^RI>s7Lr}aI)=390H%J)hJ zeHM4rB&_H9O8^_p=Q?T59IiiQ|IgBxUFw|uQLdvm@yzK>vu6O8olt@qOP?MbQ%)qH z1!oH8R670ap%~NWv6DiHhssuljoDdBphUWEj~;(PoRcTE8Sl!CTemE~RqhTeIqVmE zXO~d1ZLTR_8@xy++9nES|(!+$hqz>nS>-A2zgtBt)tk?})b1fEHP+f`mLzI+U ztAa-hfj&Vevw=9@7p!TjC`%y6C)wP(fwl?>|10YVGq87Cl-Rt zc3_RpYiEoet?cXLbTR?m42Qj3*U9?+X_ho^Ib@1n53W=$jd>{vIhZWtrGH;FC`l`w*sGuh@d;AP$!?;1t z5dbka_7SUvuor96MAiw166C<%gWUEV(sNzy9@*ekgJ!(%{?^vmgVc&}A*77EQ6c|) z_BVetBCtB2@K!pYlYvnPR4$*%wY_Y@%*ML#=IrS7Vurh4SLRFEdr0xFx2-r8G3*Kb zTvy#3T0(`g1ZV5fcEI1Icg;&<$}8ZL3n?d+;ZT;%8Za7Cl)QwMd8v(ZICMD85*=c2 zG2N-UqwrVm2RZ~J(Xbny={x+F&*U?Jk$x%5Gvi3!npJO)u4FUBk{mLtYoCCj1I-(4 zp67trb8R>52se%q0b}r_6Gb!I?>3h~f}_B5eKOK=F|zrNi=zb2MdEOxcfD>x zEW}sG5}O}uz}(bKCp?#jl9Fd07$%aSGXsM8unfbj?hPzsd9GYJoV2H1%T@l=NhU? z^l(utb(_g@%VA?hf&3x7872Zh836Ub+D+kdPMILdbvb2|ZYt>K(Ul&_QfZQnd+)7# zy%jbmokPmo=j*)A3}I@QmX`(&V4BfCV4kCe@WWtGG6UhYgmCW^;7v$fwtMn%U`*1_ z4|ARwWX_n4wE`})IkufY51hN*gm+7H2TxYwJzD#eV}jyla#C2U&98Y|$PGdalYcTN z@;UdpO{X-}a7z*-0Eti&9^T}Q5uPK(yT6tMq+t7Gozuc*kNy|lvxE+(M7V=HIEFqf z$DV@ z4_Xat1Wq!<;RDGMS2+{~@ZBMDUgm~=V4{D2p8vB7p>aFXE@TVp2dkb@Gia|&6>`Gq z7?AwTfvfE}m(_Heh96F_rPJ$!sN}7`rz!!l{1%`UvIKs@bAHhi0mh``3Mj(a+Ilz) z-zF4T3V#Btt31~N$|X4&y z&l@W}8r9c#8jJ3C;ZwRuSM&<7AXG7BTi?weIXJ>tBRT&1`O1#@vrrG7A5Sit|KImH zR%bYu#QF+WS?>Dj_V23%@OO@(K^DtE96CQ=Uf*0cM}4gEl6|+kXBiIefwBaG%~-a1 z*&%1%yvB7Ph*#=EsPVvNv1^+HC+rJ1;_@xBFt2OO%oTf+S0MZULRczXyBC8rK!(Nq^nXSJ$zk9mD-8IwQwaX}Q4a1CLUsmVfk|%i zo9Kau+qv}re+U?$hBJm4p~C_k+zD+OA)kvKNl==-taJ2*CB7cxGWB)iUC0N?|GY?k zhhq}|x=IFuxr$ldN16=C`xUT+zDmTYe{b_gNJa7q)E?KX)nlT*05i zj=|YxX@v8C0IcCc8aM$7d{=i0oq0Gc!Sw`K;^GubLw-EZjg{|)Zc_;CrhfnaEq_Kg z2gIX@DY4e$2?N%KtegD?dUmHJkOo|kDWD*?sD^FM!DM*4+GER_(8(zl({v`ln)BJ% z$$Iawj5j>w6s5UIgKu>nBwss$KXZ;0#ya+xnb$=Lo*kNZ{<_B;uQIVS1|S7b-Ur`O zo7Yj26KQxZOL3s>2r)P8t*e%RuTfXG9QlN|I46V+(2*U0rK9-Nfgp+f3a1mTqxeIF_c|q&yaAU7!!s8MfHV1ciKOg{i zo%L#rQ(gbwh@|1)K#gvJD}}YQjNri$F=#&WS|O8>2}v2~dxtsuuO7pBR1R~_98RM~ z?is{Vn&F_CQo9veNI$vyPiKZD^Wn%P;7`}5)D~8iBWU{I`7;bSf;)3a&R>C{UMYF_ zEP71}?3kX6{T>HQ|NZ+jyWY84IX?~j zp*0q|I^HruWDvhH*$-LG6DUtUV-*9h{kR&o49}&)G|7_WSwdCzOMzx{tUde7tOJ1K zQH|rayDRhXa-y8}AL*gYYGH+RE zr@C>C3d_8AL4i1M&5kV`9Ix;>eT9l(8L4xEEt~`aT)vb$}X9|G`zi3dIjGI{jIK=evW%%c+v&-R~ zi<3L$a%T2j(7`>)g1X+4It>2Sk#bNl7rCZ}GeLa<5bpd<&g7IK&^D0HWw$)Vs+F+gRwZ*x?8(Q?pXKs{-`qR8- z2XAP8_MAB)XHu-6^R1jI1wZVP4afid(_JX&w~SpkYua2+L;1)VPR;|h`MTEUk0W|Ch>is=h3ptx(Fwa4YG1Dw{p+X1BD`b(E2Z-dd^)nTbD65ijpJbE z78rD(T*47Lk*2iH-rQo(r&~Ah(;62Y=lNjPP3Oj*Zc200Dfn<_-Ez`^?E4}Pi5CLU z4h>-yO^k^?DK{xhBp21_RkP{LD)Td+K==qCyN8}7pE>hv zMCuZ-*KzQ@RgXR&&%L{<`2WnEWmU|M-L1|IS{ENe!hYnlJGpmY4i|3^AMj4xV0pf+nw-XYb;i9AvFC#N4B# zbWM75TX!u)?HjELF=6cbnUhnRVc?p*=Ww6Z;0Dj@`NQX0L6NNUyE6DS$gh_m7nas) znS8?A09C_`tMXc=xYwwB5z8=3vf)Y#Gf;)ih4s$ugBar^2{bvAoKY$dbcYPnGtLe< z+y-|kXXk-@DgT&2}#IlY=h43d;OVJM?uz!<@WJg0S&w9WGo1- zsg%R~hRy7Gf*XM+G62Ey9|_pp1?d(7^HL7a;UCV}d1($nUow$cXFZzWsUgrz6IcNm zY*3GnXWm#+01vRjDR#3ti<4zdwA^GPJBPF{!|73poRk?fPm* z4pOe{HL;&dfmmC@eNn)5?ogCXLq>404xqyd49xRxx`I2`VdtNWJ-)uaK7)RPOt05Y zlTJOaYr)fnQF4bEGdUulL#2N&B_IcSWN%#z1XmefL1i7Xk>1MPxL{_&4nAhT@k^G@ zXpaC;z=dlnB@-lQeJq3(g;)~g45866GrNstN(Nt6$4Vv9mAr;1Tj>O{PXN`GPJHEr z$@208&!G|_{cK+KdV-o`wzEy1MRo}KlM^eu zVZHNOa|#KP8um&#WCZCf6b`5zc;bgn4yAus6HAkZ>6M23uup89Z|A^$N)0^r+=9mT zPuk19{}m!ShC>5r+Y|_zDByIg*}f1UB)FQJ;to8^)QeRyhyHTAr6fLz3N9B_nd zt}seSREA0B#O2@cr^8{FtIAUZzh-0wzZL2hCptr0PaexHa8B82{2I<(4(+B6Yb;w( z%RYNt4{hFT;RGh%z?MGU@ysBVKG*U6defi+a7}m)&%+_c95{=Y)Az~5Y`x04auS^5 z>1|Fom(2RIN4;$+CF;#NZFB2Xs_}b};xAB;%~=X}SSu0i-d6{>KFm|d#s=bY07zdRPVtuBo`{mn78`hjO+QTA$p{ zo9lrkS(#v-*V;@7;qI0^P%b^1^cON=04AA!I5^8mg>>kyBr|bjCOeN51LtcC=Z3Qb zuYxt7m&w=4XVe7OJpa9h&)M_sg4uc}IQii%b}2m|W7bt^%hG%tlWX!RSCMJD;V{+( z*OLBfUy^}rJEby*)Sa(_2atrQyn+(V+ZW%j0Wf*5u++%Hg zRyo93pA0?owM&fMy`aF-%1_xr1_XgbmNlpTdQV9E z0y^Zm)}w~N4A5C0PGsik+1fwksciXjnG>k3YvH9qs*o*8qV@~zNxhmqR{+X=n$iNR zdvm_T`m@#moXT_V+@G6Z~|h1+B{=@x17-6W;3isrV}m|adE{3 zPS<4qCbwe-dnW--+hm{X4*GiDSmqB6wpfYu(*+F2xk?WZ=fJtqO~95*aAAe70?XNX zML9^7t}mxgJeF7b{r&yVKmP>8=18#sv*k7^VgULf7v;hSbSpjK49z!^3YjO&S=P;x z4+G!}IQS_1v6E!bA{Xn{_1unsoL0N7lzj4xJe{+$OgY>iW9yc~*Se=n4oir_3NXte z(tNTfgnR6AJ9yGhAh8}{1ScE3K#l=T0OnB+vN$(AQ<|Iu3?W=)<1>`m-17CD-9>S5xNE*wzQx@baRR<%({A#;xr!T1-X7>WJHQ<> zv<&WhhHtl3|MQSW^Mj{7a(!S9&Y7%e%qbhQ*91!5FAfC26^jKti7W9kLFX~t5xqme z@?*g(;JHyu1Yhdn3rKhhtucWR&5ulbjt#tpv5kmIFI4W%+!`0TLXyyUzyHxC#^6h3 zRP}oNB=wI10AE0$zqtwx*b9MVrIX7Nup+sTkc|v~VRMPoldH9k((HAH*C16caW$IE^0^lw zTyx;SDW~&#!LiJI8x+978aJKe+~o-Y+yk|6eFAnZyZ(E)T(0gf#xQqHq8a66wI1|0 zrp;(u4sBYJdoP=WL&#V14@Pptf{s8PmwzhBXsDMKEy; zP?Mi4kkGSMVEmoPAIi9PM@r5WaEyZ;@YZ~|#u&+!gN)%ky*Z$B=*>x{^vr$w7Z|vH ze?THd8F69Z_rM=`q5=qWi{)9kR3F%O4}br@zHs&*ccvVltMK z>MKAGQt2y9a^uJ-_mmA2f*q>||Bi}0FmL*}&W)<@Tn?%BxdeN>^?n!JPx=230fT^! zvP=iy)@1h;(!I#qOB!el+p zAO`wRUFZ8zCd2t2e__mHh$HPYv{qY$T&JYi=NzUcmyW9(wYVZ8ZSid^wLG4e#nvum>5FxRT$=Fzn_|2v7 z@5e)t2EaBk6bXw8KxH)n7pI^b3xN}3H={I6=Tg>V9Er``ig;jVl^Oo?Ltyef*IXFx z0mR&o@N0;(^GXnQx4G~w^NrV3_(Gz86atLI(dYYTQ#dQ!$yIj$?@bTP0n$tzvg<(8Q@bS^{^S^KZy)^RAy2D7ttkql*41jB7b2BqT;2@D5O zPUluA&|q#BTDUtG){-?4=F0ezDL7mXa#&$>Shbs-Gi~YXfE2re4639Rta*iVcXChN zN`vQ=aj*=CO(M|@0hYp_%&PN6>tbiOwOj>LgfJvmv;y2FH466&e*gY`{r=3VNG@bM z#OZ+7T3g`&dgO;sp#t1zZj4J#EjwohT)YnI1jtzSl*y!Hdp>soC?|Dcb%FmiNpsG; zQAptYhPMIxx;lS`F^-UA6i^f=MqZCUCY|5E4?G3$F}!;Otkp_iCXH=5|2hJTt78qp zc(wD~j^BilfpYfV~i`iU40t+&3PT@RmSnotISB#0NLOQ+^B0( zx7Q^EZzR?y?I5uRZ-ub9CTyWeA><1Kvzy~&1z7il>E?1QH4P>LVampGmf#E?a(eIb zaF>cp)e14ry!9bx1kcagCy_Ca4f`@Pzz~Km$NuwSxqs(d(5G>COh5QcSICfY!J%Y1 zujCMd?26e+vVlmiEi#wL{>Q!bCjrPFstJ=hGYgkV%IW&z*$REwhNaUScgX%6Z@Kb- z^9x{IVbzeN@)Rth46>!1*H9!iDR%}0bIL}a9=L8&IJvE8+YRB|lA}eqmjY6BfH}Txp@DZ&~38AD=>G z3Q3on;;5p3+T_8V>%j9eq?0@${b++DJ5SnBuCX1QoA#Ap2hKYbdG&H7hRG4MYT-qL!y;qM|q$jgKS!= zYV)%MlHq&aY_;Y0+lt3tP5@*iZbB&#ofhT%EYIs~Te2q!O8uAt3@l_dxuXm|X#A8R ze6jcGNwMpH9eu*slKB8w^8$MpnHgAHLzel;s4=kN`sXV#WhRsJSa)KuI`ns>y4D!v zDBrFhAwFoq=Kwa9C-siuRi%&Q2173Pq=)2(j4vIx>>t+aST`C+H8^*k=Ky^4)TbYg z;pr7m*V0Uy3qy{#ayOamX$9n{1>&ocWU`XC`EM!e0O{l|xYv>snV2=vXKLxXiDe?) zV4JmaECF%eK96BOe)7qeFCz)f!GP>7Up>)6C8d(k%-QnGNX(pjfruU~}>KDUF4Vkh(||<%$!f z?#hXz+jahK&cgP_L8Sz^u*}lYOYa)fWk984a;Y)zP`TZ9b)HRPcvQ^#ggPIJDVHyEE67SwwYn~ zB^y)bQ&&rL6GbKNG#nz=|LJIJR^Aj$G1j&fB*ULMiXM2NnvWxkp9j_SanVjrJD|$=$_2y ze0!eRE6rBM#O z39@3%bUpKM(6{RaoG`O6gPAjjt_7sdeC9F)yk`8`L%oobgi9b&)m`*&woGao4b(Tv z*4QNR1}taYV%D6VR4%f}Q6b-xkO>A(bkW>ySU0h3y={Wl$$^u94vVv=RQu0Rwvj>6 z1vzOp_e6oUqP5fh+Ei z-JjgGRWY2S51Cb<<`S@g7*^QFM(D6O3~!904`b4M0({}1%gM8x3mW)wMu*a!W#ZGp ztr<>!=qAk+*4jr%R;BI0Tj!U^cRiGiO;YAIjdnFQ<-oMW4Lx#YX&>z>yndzORjFRN*KTLAq{qR3{*!yAkn7A2`2 zxwyt>_GwjL=UV$fPpN4#ZEI4d?{Bde&PC7Q!nl`{Pgi9QdgZhwcjJdn`1zU;E8!=r z?CKUJ)8z$mAn4v|7UrzWojgFQ1Z+r{GJY5K1J-eR?Uk3)q}|zx1gPO6kkizjZFiWn z*28i{yvNd7CuqE6@1s|c+VjRrxTXPt?WVa%2Ajg}FNf_W$CGG}pRfc#T#r9z6z5#G z6vb568-WcPD>j5N2?*q3*V$cw48Z!L?6&yo%pJfso4b^2bDAG$O6TwV|82%3SAnJP zXOnrUQ%+f`kY@P5YY_CCw9_R9k}?m;YQxGVGY2Oe#$?R=R9$(-1sGH^nbV=tEeEia z<;k=36{Wyo_D(?>^TnD6HfA0g9Jb_LYYyt=a->&uxa%U-rzJtX9VhF$*!ggu>nBj4 z;kN+I*RG0CrroYdR4Q4Ao=#1{JIv=nvM{@xcf7s>3rbg>r46K{)ivl@`mDy?fOt>S zyf9Y~d$v-JB|!qx?=*3)fg`2Ac0F?r&^L#QGFPQalv7Jz$?VN1E82GI;X3yTo4nj5 zIn0!EnH+?}M=l}j%PLw1u;3qLK?mw19Et)&SUplkE!;|_<%O?a(S?i#46#db`BGTL zpr4>s>5du%%!>-nr@xE`x*>(Y(w6=+oSubX&C6`=Ww}jsG*=1q7qrTS$cg4$ea(m! zQhJymw8q>{JutMUyq%$1`6S%hKfNLq6vGMAsUPnM_nh`Mf7Y$E3;F!>bg%>8YkJV2 z;jAt<;8A&T4W<|ta@EThqw0AG*^cwhu+vxBsbqjTDWR~_d!QLcor2mUL|78cWLYgA zPvo7~d58oG@1h8xEBQn&P!>Fx@-?bI5YM2b#2G**`_tfI@{wqmE8CQeL(-+*aGFPe zRlaot39S>ktiXkHE`q|4;ISq0;MF<&dc%{?HoqR12~OriZGJ5QNNu@ZaB2jS^qcr_ zEML!eZMLj5&HXZ~1rWTJ$CC>{WXvIj!z-1zDjXNj8CSHo8jD290k+Co;bdFB(=I+0qjaTTo>}6-v8fM8`g>|CjzK_`Wd_M z=_n_bi`&kof#DJ&2l+iXl`}ai_;Wzg;T2nhqs&p&xde} zz{PTI@LK_^BX02h`qp|1*+c38qyWPOp4ZtS+;R|=6Rp(bikepX&%77GxB_6x)*%gZ zW(%2N&|ByHbMn9|b!da1NZVPfl1J~B+dVPyB52kl^dTVgY;H^GCBVQD$>H`HPAVkn}cI&zCzkxNGR3)XCm-cFINDwzLqzxIPkDz zf~wW(j$iYTUx1b%`GJ8_IO~={W36Ip*H5nl8!}+`#vmOieUQ5gp3|xl{kxuSbJs0nCTBp(d%@51?RMZ9usc&*_k~k3>DJl6xr5AGfZ@FM z=DF)O^|04}DZnX;%+DkxtHPYnvVU`k6E-xLEr2B%Usga+)i^b zQj)C7!0kA3e8MVRO)G}<$@Av88Qem4;IheA!Vj1Mi=u zGed~XHJw5qDb^3!WmHD|&JO#75#R04_d}DYujJu3oC0%a2VvJ(vOW(xBH4f##;Td& zTF%iMX*&!W%$|d&r0K%5^co>lWEUV~Id=n^>sc%(5$9{})8n=|gn^esZ`lY#>hgT}0yQKAVQDs=dY*4E|5v5FR7VgFi*e0R=Q4rk zaQ!z&RuHD6z>5l33s|rrg!kMwdMN95A#l3A%NN5!bx_`ck&{Yq3o~ZbDzU}2S&bi* z4s;&$OG|W-xQRoPh&#BDYX^i8%!g-$kKe63&Ms6g0mgEC&0`snNX{>s5^ziYn?Gf0 zH21|NGgG_PW7t09aykjmLAM#>_9ysqzg)D=n*|{z&kL<|!fvcIMi=@ss=E%lc@)^4 zn_K zOL!7sRq!5R_W73NM@E4VyN@hdau^&7%pPuXGJBsuG;dg$S4Bki`0UXyskk9iflocV zo+>Q;f}McyGlcahw11C(|09!sSeu<%2Kur|l>#OomhVK=uy-_Yc3u-dryEBW7;wC# zQv%;LqGt>tgBEa=<(Yw6)A}Jz9J;~4)dF%2YMgybz!_X!3!4sTBQVcVO;3LZ)oTKSnh`>lL@>hJgOM}4qCieIl7V1kwh z=K`x-2xlVFR|ojtW$9~|pPYP@=g)994#~NzO=PDhm81(dUr&VjG1-%=Sl3mKnnS|P zE>}>_oXmY$izag}em&b~NQFxlVOID2xtG6Q|4ga>ItBZYNA>aXlOGJue)_)Vv#mu_3CQyGUkQ@9*20om9s2w; ze9obdzAgafeDdS`(Wxc6&Nncti=coxcvDOQq`qLb=aM8b|^{)w;oR|b8sE=royo{2ZVMbbf4q2D&4qj};`0`R3>jbr{moS+7ORH=D^6CQee@=R zXP8P7Vjn0!XSt8zaR2I}f1Quz3v%);cZ4V}5xl}$?J*t%Kb?g*(f8p*#s<(E_L8d` zDsv_YWtgAW83U%TJjm&$Hl$eB145Fo*Uf?>kkrngh;bBp0U~@DxXuIBpQ>Ho4 z5e%tF$xNxwE8r_r2x*usy3%U;wd5epPXN+E0CTxP#@`vB^qb<`)D54`G$jub!b;wb z{EVCKdLk_@Q{Y8qvki1sfvg6YeR3Y?*t?p$u^H%0fn*`93bQI6w46Mgs!gAp1x0dO z0|5F+Q29@I$OyR9hw1$QQom<_-}$ZqFQj+-GkI|Lasya&Ruc|$+$>CAv8rvyFU>hj zv{3#tV}p{t5FBL*;GI@pFv;^ip8xq4pn&jZgUBaw{On9jTrae$xuaXI@r2(Ye~suB z;CQn1Sl#0zxsNsemqeCMHsJC@Th%F*c}tziJR(&cgu5QNSdB)K(m(seq{*bp|&Nv|;$XQ<4kfg#}Y&&a4nq8}_ z)(0ZssR9U-F>&2lxz}%A{Dbs6>_VSZ$XHxjL6aUZkdP{UFZp3roKrZ9;LcAV^mScB z2>y8@+9S4~o&R~x`)fcQy`h(Yc~Mdc`OH7K!IJ0IHoZ!JJY}fuE8Gg}A^Y{6urho= zzy%MGSIP_Qsvf-

q_X#z~`jp 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

T>7O~plXXoL^AJKu2aw~e*H1h4J_*#WD6xbF zlJ!8Kv6uaTy|MVK0&EHk1iyx6Fa7nDwj2Vz@xN+F3dvJCDQHUpXOlJVczJMm?$Prv zKJA=a!feuPyWJMZkTFWHj{@NKF`abu`~SrJd94L*%EZD zfQba3eY=EEJocTBJQ6~5?Q!QG9bf(Q_D|fr{MSD7#JM=Q`^hK*A_PYE1^07nJI!%)&$3_W!h zK#}Qr=vls^L?yWAVApG!OwFb#adV5>T2!kmAwc4kPSqu(6=CPzOyR&hFyH(=bNAy% zPh7s9U_rS@n8V6Id6yJ`6*Q;5OKw+#(q!|bMVt{nZq45-)@kbWHph!3lODhs1=Eiw zdLg;P>VNRRQ7;nXV*CX_R_2gZSarrElcbClyogFb%+v;cHGYW}b8CGC@e92<}kp4s??M?qsW(4V+T!17jcU%sZc$U;j<>t=Dc} zxOC0C#Yg9C&^_$5`0UM5j*eV&$kU>ecu@fKR*xAg7`*V|2C+fWLaEC>IS4J2!}uyw zvqsG2JjUT8-;6@@tvPGrG=VeGl%hv%1v*Kfc3XP&(NQ(t`M{4VlDG!;M~ z*`;PU1T{CVf)(v!y{Nfnrfe&l7Pn0_qwII$u#Y##L4sI`t}Q5(V^4uznUlWh=>{BN zkZoPx{c$~ImPhq2g;erw55EPb;hT|;lXGzX)8?&=o+nRD z4nT@+-ak=JZ+l(9RaJ_tZ;gFI`I^g5vmD=Rz=iLAB3{#?l~*rLYW3kwrtkj2v(MzVpcZ@;@=( zdF|fWOV{>*%UrtW3mvsFM{Ck5lchK&{HnfSHfKn)i_c+k(5w{NQZy=)j477Hl_FEt z$gxI-ICK{RBxjC96l^dx{T!-!G9~pxXrqxP9mF{|hn&aPWZ9cC2_%m!@K5(4O!C&7 z%4FuTO{}MtlTqgyMGi$lu*DD_))CEyr%+BSs?xqWbUlHH;_5xxcAk>mBj~FyXuk=Aj|8d-+SJKQ98@*2ZUN%qG#qbz$S)SG55`D z-!vb8a{JoV8_VMHj$do=DNrLB0rV^X1k<@RrgM4dtX*?aaY@bO7ax6qB5+@PhN|8}qF)!*Bv9fI;g=R2+Ugd!J@F|l1j8cD+dBB| z1d%^hR_qu!dt9-W$+ZcBTJJ?**?G|?VXb+B4c`9%rI4sS`(jjF+t zP7=Y`5BIHuFY!D562ish=+bh0;l1zt%*(g_!WW-E3vGJ13?7z7MH#`4J(;Ww?6?K0 z_lfcqUyMpaqU2W%&oZ3qO|HK8ZJAUy#$O*d#g5j4SUTz@)MEQDCRhahO0~U3A?g4k z8;D4WOhNDS@rRo-QM+9QrbVg(%J1QRk%7s1yFzOJy}(hs9_~~IVuZ7CdA<MP0}Y_*I=|7fvGv3CN*UH9*pZ~npkb7wEu;(=Q+6*dcn>}R2=c|FA3 zK0=`4RR79v>)REIg_50j{V`u@T_G24g1%d6bN!zx59E*}Lf!zIBEP2}))@Z;G8Xsl z7{e5&`TqKm=9k5CGmM z?pW4VN}XB7%kcyJdJ_R|g-_n5LxdRrC!J4BJMZVTf`hde=7-nre(=*T-TG^vd-_a1 zY?vlERg9-9Qf@oNUAw3Ko)n-wrhCRoQJt=z5KU~HuyF;oXL2Q!j6f+JRPedebtk@8 z5>O;+(S!|@=6b+GR|CWi#kRX=X?kjn8mDJAuKyHiwkSN$m&qpVQGOByj$+ah^*S_b zQwy=|>H?&|V(}3VD0@->y_aDnu0hAgr+#`wie-8V0O^s=WJ={CO4fb8aSc6VKsBY} zO}0G+(|D^#zoL`$RMkr7Aoq_einVej1v>90vF?bKD?=o#L$ic@o(S9T0>|ga=B;m- zJMZt$oWFWJ&(k!8Wf83u#8qAIZ%CPFtrY`rizA>YzueJ^Xoalc+co>}AlSVzZ{Ib)_8aD#uYGXg$`g;~eeB#6Z}TqES9{8z zWZY{Z+P|-Zj5}1-Im}Tqdtic@0;Vg{xaNkb7{Boo1_A=s$`K7@vJ_i}*hjqF#7Y_o z*=|O7$ECoxZ4x_;-KpMLJfPk!l{Lx^z&K~wkE9wdi3I8V^j*OB+SJl79h75RK38b*$W z1_>r*u<^Us5#A6-%v+X=E&)35;PepKFxcXzqX&7&GEt-r2g((vigl6?IdJL$W!@vb z3){AvfuSojr)yRL-w=4r=cHP0?^`0%c0HBrMEbzs9N@wu7GlxB(2mAb3woV$ zUf>k=2?aimG}rTw)So<(?4qR7adD7!@<`?NpSlJ(esCoAi|YU*RgEvdEq`uCQn9GV zxQYo3-ZroQf$@(H{b6(z0mIu!kA(3T7hunJ$h(5w(=$huN;rI3ZSVnNu3KZ8`;N6m zNA^2-Z>mYA#gLXjN_p0TK}KurF^|f)JQ7J8Y3HahW~>T?S@Wk(;F$%FM?TyJUFiXF zlrV5aO1mYgZP6m?jN7||`_I4hVsy4&O5DS&(zp=@lgYe#3!KQYIUEiS2n5IlAV7dc&3XyQBLd^F{RVuyBR$P2dTM>H@9H445d znRkO-qvB+)EAe*{1M=Pxh+mFG5K=Lwf>*a<*zD<^=`^-o4%v*+$|$%cZ<{N02t7<_ z{#kS>TN$!)``Su#KcjF0R#)hgZW-cx{Go*~5N8RAK7Kd1l(OkkkExnKnl!ZHu<)!z zy2UOzrc+E74et9k(A)P-c7m-6*(H3u5r|{esG1cQJ z$?0HB_HdJm&F0jEE;Uh zgHxf%8fvuYKlSi;V`PYmGGc+_s*y5lJzqCbBKL#^7lq<`zVb!;MBANEF5qUD5pTk@ zkAwE%8|Hhj@15H@FsymMp6QGCR+|}Tlaqc;L0$~oX2gDx&jTN>_SfE%(!@5B%QTij zqC${wg_oV5LP^{udz$4m3(dHZN){9;NOU$|P_l&Hmb{LqNs)3qg!_!QACJx5!;24| ze&Ol@u_bcmZ@1ldz7M6pAs$Oovg!@*2-$oHN5<~mba#&N{{P^cZ(X|fj0v;%ON=G! zT!?(-X78u9m#*~PJL5f@B#A~!Em6*SJRiT7T)Rf=>5G<4r8+m%nGwRPy_M3TYFnf3 z(hZLb^|n1DxW#0ObEzoCd$u-QC*JjPB@i7bS^wktly^S8whKhyN&??`o01DgzbkL- z<)eF-_n%(>^u53FBVYOxPhM~f_)39CopWb=lvA+IY>-kF8&S?HV0vUj?4671^U`y( z7A0YCv5TsLXxbO0>!zl`Uy3~%89-&r;EmR5d-gBfQ{FUx6g!%@zZ0@g2bpyJq+Muq zPScL3cdF9XV;FJJq<(RI4BtnsfBMx;VBk@vo^-aS+48{`S8gq^BbAE()M>@fxQZjP zRPXct`dNPw&lVMK>uGyLtdDeLWGDuKGABd%eDf!~HhRVYJW9n|T98D#SW%XZNMvuW z^}gtMce9>NLk0P#Xxd5PO(3L(PbNf@oT49?SAX9;xOaT{>V^G$i~=Y*C3S9j*|Sa= z(=J!mqxDa*0PcH=F|vZ@G|}yMcyrkFNrPuSd7~PY5ZSx_bD1M7g20?H+Rxs9`s}j@m#-MVglH?xs!W{zWPt7USDZ3P#RXwNA=G*b zZy$WNKtGzzM@QzDe$D*5-+kw~=brUpw#GZ>gV}|ca@xWPM9csjV*HyaBh&~2A<eH}XK6;=zDM~CX3zl+Q{rH=G%3_x0TLwCZVVsa< zZyI`+-lT-V_^#f9%a=d$%NQ#u?2Pll%`pUMJ;d`V%$J#hTU@*WeEIn9b9dhTtAFBi zf9lqS6u{0oGkIuhHg4zUaz+I1LUJI{(>;U0m;b7m0$IUC;~ z7(Q?0&&CI87cfaZep6r)e|EhePQ(hmhEK$!1VQp~C;NxaNxd;5Q$m_n7Qfg>;`2JL z)rcp0xboA9T|Pu3YE{*zLkO5zdC6W4y}{u#*c%f91bb^$*P~8xAR}JG5aoOQApK8D zjg#|idE>upzVr2uc8BNpezw_XqeR>6S139M<6ncy>MMMgX1Kfmb>ifTBQGm^?I)GO zxkR{kwKiAhr6DPh3R_acdMma0bv>8Jr48ZpP1)!1Ilzi3No^37e~LCz?~a~(>4`Jv zjh$@DlM6R89GqFM_a%CwkMM9=6)8xhOBV^eF%N?|_U7Xw^R?eHzyF`#dhVI0W412` z5Y11S;$*2UKBXSeeo4p*6}#k<)}Z{Bc``&Ev}^D;ON<}_ zIWanf1$-{A@N=b29G2dCED(QlKm>avp%br{%B#LOf|Z1B?O{TvA#l)hr5=~B`bM4A z?BRI8K}Z6ar>GZR-9Nne;Px~7PyW)EU;2S(uE2@F41;Euq%nZ1Yx5my9_IZ2t7qg$ zA?uconi%B!7?MhlaV@F2hx4#75zAn*M>GW9gn~*(YF1R8-bs`oV5MES2N;yiz3s&Y zg(6krn&ncIEKCt$>fB3Cc*tB((Zt499ZxT!IPu{}CFI+l5ZhdvB7P7#A9KqNf80}r zH+w}2jA#OhV@d&yXpvugJeu)`6Wnv*pDT3H$5grKBQBdBcE@W{_dn~&FJ7&9fYni|2f)P>y3$6MvGS>#=&SFjz8uV#lk6CcQ{uLVR+r zY48bPhkVgBmFZ^c#i2Xf33c^f@KdG&^MKeFBn@pBq=sUS4R}c57nq5j^hCqaozqHm zBqq8@nt3@sdnw#{_Tsbyy}^4|)xR}54#|_%wM{0@gDeoyvL9PnOtNFoi@Cd)U;l0M zZ-4jr%!OOQ?_)y?6f!#xj*BM8YwRH16>B?4KAoe(BvhVF*jdHF@>a$uBjCm+zfDxQ zKxUHWEM&VraCpsc1%n(+Q4xzLSQ%Z2a)cM)Dj9NTTs^L=F@J!cy{Q|kHQ;NFXxjP?y=J@ts{-Mu)<>om!y$Ta*D`vBUp-KmX z6I^b=NgGBq>iR3+voN>dVni!ekOM!v?g4j^BrN^L&NI7e9{#&7jgc|wN%dY6V!wLm zf_IifmvO|r2`acIQ2usi)l1j%%0EQ{aIsCFIzAxdSh;57B5=GX^ze);sB&|fc%33@ zC&fhFfSV3`L&WRBMAB^bn}gURh@e;zC8J7~Bs9we2#a$>Q6|s8f~0*>z8!H#L$7_o zVO@PmRK9i5+37{7{JQyxXX#-&Cvl+&%BCcyTzm!@or?o;@RgM#s#Una2;+&8NG#JC zTL2}dM1r^8&d$unzh{2uKZe7D3ubb~OlPYj{kY9luxxb-7Z@SPBQ7+1%Ssd$sRlos ztFNiBAeE)RyM*?iv{;UwIJ6cvsS4uj@p;Qm$umUI_7 zo*~#>R3$+dkM0-q;wH%Tw}hMi;h7KL{=(t>xBkpmpSldbYjIp+4(X&$?5r!9xxKLl zrx4bshRkda$B<8YVy6dl$Ip84%I639Y=%cOF zN!GBaE9=TVx7jFqAV~(SEDXi}9*;&Bl8SXE!a}e|#_Y`-|HZuf#>Y=SeLcoz_r^}n z!)-n1fF!_NW&3xe+AKt5t*v4sS?)*o{8a|?v$*xpJjo|<#owxI`zw_LSx2{}0 zxA-~6mv(8I@|lhcj_n5x8jz}oIQU?NO(x{UnxkO;#lJIu|7-6)^XyaL-tXZea!hyY zeY%<%g9OD2z4L(G;f%)S35tDj*;U^qKM{u@{$fgmpMoMwre1jCPX-ZOts!?av4S=0 zO@QK~pTv7yr@pd_E%EkqHVqPqsLX*Sb5}g$Q!Zm)uBD4Cm?_LoM*Xg3{=;7eTV|-= z|B%i&#C?QUiFcglmO*L6*6>7yg*;(+VsDxv&%`T8QLZF@PiH7|1oBb%xXC$t{*(89 zXm|hTfBXkuJUc-gVF)%9yv+^8Ya`C4ODRECP1!3BHkyuh5=ZcKq2wP$wwX+m3ro6C53nM_`zii>5cl*C&42!XjxSz5 zV`8`AYWCv|+rPTHYuG2Eq4(*#wWqVw7uKp(j45^Rny`w1evqVCPM3R04pW+81zcA;*uK+j9y9$x$Yj zfjW%F&j`b4#HjZZ2CYlVK{@|Ctr;wKdd#L#HLg9WmeIa_bXB)<7&~|-I0Z1)EjE~` zMp#)f1$foyb9UtC;P4y#^AlL7ZOSuV8k zOU0hj8=2mM8pk?{tmuI@LJ~*Mga)!wdQfr`qH(Sp-+cL)>ny6{4NSR+*U1}Fvez!* z>dj{mdA7S7AxShR$(~v#(u;a%9v2{gw100O)RRvh)9foQC9!0q0F1XfZr5p! zYkc$$v#oJLaQ;y-(6}i29lD0l@@mTfAyDwK)?jMoba$@N{*u-3wc|A5ezivTc-%&LLUXA0B=D)QjP%=XN!wEvvI~>3~?##5L=rOffQ&Af7WzSO+uNlKxi`99rG%3Kn5%I8cPRz%i&-?!SlY4R8b4T>SLCpStY- z+*dyL>{(}1g74UE$QNhoY}@G27P54*-oZ5cmh>(%9)BZNg&kBx^OGozH+Pdw)v-s9 zUS|)wZPsuKvovp|_s?EEy)o2BZ*a$#Do+^<>m$P_{<$tX6v}&uHVJdF(LM^LeaCHy zHbK_zdfq5j&edt&i(W&@)1&zmkKh8NTiG|M+;pAKBDM33oQ|p8PFtHLIoL)PKyR7{ zjSz%FacViEJie39AO}1qqlmSMtgIgn5}OC#zj3vExD;(c**5Cmq^(UyNmhPZx9k~s z?Sc93H;kDN!Y=OV@os3yI5;W+ZZcjbKqR#SaVoz1gekT0F#!PAR_@YWg8WTwt1MD+ z?aNae%7sYrFckL=Q@DO!6EsPTibsZTjfza@F+guRVpwz=!x=61?(?r)y>!LQDHTJ> zy9I~}?C{bkV7~Rp1-u%Heekn)$BQ|h%)kA8^H2Z9`}1_|@L&h2rCmYQQFT0+4(27r zX!kyH)0ETwBHgh1+`|!zuNO=M%3+1P!IBstN5~2rdBmDGDD+UO)Le1RB=1s%^Ooc1=JCQ@q3k z5C%?&Y`FR8?)lsA{`gau{=!#YyneWRjqwI;p9dE80pU- z5hHgLxR$0MROQ4C18yioZ%dqxzk5FDwPxj8@?nF1q=p8)?r`~$lGUO)cpTaLCofF) zSJC{i33mI7xm$SL5XA`~dlD8dTyTpbyZ)Jywz_DuH+SDQZ-3iN;oQ6|4zvRom4wNM zB_hc+@o6!DRzrBLAAz~t5d4B8^f#W@xEIB^+r(#Fu^0314YY&OSGmLRMmUkCuY}Kh{+ijP zOTPttS-}4}l8y&mkA}bKJ?R>z3vTwtPv-Z(Y5x8{I(BET9UdGkv)@4@Afa8d??(Tz zc!|V-dr!>OT5e{8Vb{Vz3}k~!Q9(mK*2rpV;i5G}UAzeZ8ERK*A^&R=#ouB-b>IOU z8%JHyMg6dOLUWF`spMWrEyh310PvbbmbZVUGt!E^jDY$6FCuafI`?%B)A7gA+aY z5PZAo;-xpV>$!j{O_ByUD&0i?3L}#3oc~%+o5aZ@9;^Dz45bzFM#Q*!2gMqcuM~BK zke#+_Z}b1B9~`R~pIIx-VX|BN|#pb7_bEb@Fi=b%`P0+@>+NH8px%A z4hiR3SE_2~sJNP-`fTZP zot%cfiyuWPoLfY2za47QaSs=^~QB%;-GBRnH zr;uS?DxXe&Trs=ad5LZoN6!4-H_hMvJKqThPn|tDH_r=PGnl8SJKFuS7`IEV8arp_ zn_{K1wE=xAJ2@7gNzkUXdAY^-b@H( z)Ua~f3S|C1^A*7{c`ECjb=D(Ou3Lzhqb_z#EKVrK?M)%wmkshJQdDch1dgx$64mLo zP}Z41?~B1bs~X^vl2bZWHQ?y(HJRlg>~9=@dg1o_Kl$>LKlP>O&O}GC9mtGO5}ldo zifCnbcGLxGFxWiACcvO}yk?Oj4dD+JOK@GMJ7K!}oD9O2DJ-?K)}w?#WhZ{M$x zCxb|nkn5=^N-MyY9vR>r`D)8xSB()=;BeglXkLgRi4%$6aE9;cSA2xU zt7V-brJE-A+>>}-4nzTail7&XbAix{#T53qj{9&?y@4du^BZPSFMRe=2}J z*_P_LEum0!AmL)Gr@7+7ICy+1V@0z0b`pIIT1kqnM>F-Gq8%bv<;|*5W+)TA8lth^So48- zF2b#aIMhZH_@x#{aXqIeXNJnfOtqk+G7eR^g<$vWszdAT2bXgiLcM_qPL*AL$5MGL5T}wXYD>Nq%){|}ypC`0^ zcd;LF?qX0K_|}#T?WX$l+Y}%u`a#&^@L-yg1|B1cbSa{@L}6ko`1# zos%^yZaS67K^|>0GNt=@g0R`3s7%J9=>9y;fX!DVR;?Ts z^GK&zwnZHX-sMvi8^icGP%oozp@Z8$0iyVY-TvtM?RWnAb60=(3(sA4IaTsxUGQ^` zOYP$}Z}J5XK^T_NE()S*uEL^;8&)t77coGU#=Tl0lKj!@$Dj8g%{XcoU+RukMcz8LX3dVD-}NXHiC}uq_DWDbQ8ZCrk67DgJzRC^ zt-xMwBTh9O&F~`&jzl-vZroEysidc~DGH3v&AJPwvX_Vz_TV^a6kCAEzJ8K+eT?^L zl4pOw`8-pHjHSoou#vj3L^SfzYv%1YKc3EBS^Pfl@X_KQ!CYtwr(`&UlWIxSTTxyY zIIHxo*_%ZR!^*~~u~NZ^@}IwwZUJD!aDqm@v|tHiTZ5UO2vc9EYP+^A?4Z0L8Ilz^ zUAo4uqQzG*n`)wn4AbI*_p=Z8&s@6yxgYoe2&ukIF*3hT$6X;iiZm{#;M6jO9HnyY zb5<5(V9W^ey)*Y_^Xi-CSO3|AyAS>O3+Ll`i;Yz-W^ZhmqsPybzqU&<{li%awQlCQ zz{08p$Hq|QPMl3Vk5#t|#hPBGKoAt-_L--K#hB_5fIrMzROeH!y>pSyank7?U2bsT z(tG&kDBYBRv?0NyxUaCdk`Guu#q#;Od%mk4M`?1Cv9tH*Y}hT2u0MG1>E+Y^>IXmb z!%tm_xxV~r+u!)6 z#wq77Hvu|%bb!?E7u&Vrsx~KaWR^FV2EsF@{;|3BZ_+=$W_z;2Ialqo>De6WO*(sC zGn_fa6`?5MI^yb;CqL~@joW$$NxV$21K&r#s8c^8F(UvQWazmmfTZb2xi*(xC0KnTW*fe222~d>uSE_aOH?skY_*qMsC>4p=cwxS zAyioJ*BS92g>EH zLcD`JP1D10_o*k{lTRObzwCD9mXuA20LrDz;EN`c;yG1i4nnO5Gly^xuYhM5H^(>T zy}Ra@zGhy3cR9RtF0a;*bPB&f`nafzMqXU%u859D@Qx1TU@vxS(BHyx4#mlbyTG;6 zknUQbF-$iB*4RfDqF|*Ul9hdZWi6NQI>^AQGc`@?aEd_SvMpa=pFP{$sNsU5V{dCt zbc;H{YtSFdt}J)DhL&xT(7`l&%X5R6~O$9jdy~NO>jKCgktt0<|=*GM(iw#;1vya;#Viq=!j-G z4kU;*np4YD#q-;}kFy6Us?-RKew+fl#lcEW+AqvqCo*F88>0Ew$tR~691LJ^wU1+X zRSct?cmk!!;vLk@dh5FP?0PNrHtBReqI(k(H49HXVGBj^-PA5l_wZ@Pt@qBY6ywC^ zaoeUYj_vVcRlV~{VSG+vND!Y98(wPfZ#YU zp&ubdQaU8CF)oZbddGa{8|Li6MX(v9*m^KuRWx~_b)WtGEna9n6Ga^#cxn0O-IFY2 zvtO%CJi^L*wveko^jcN9A+UZW&2}*!5`vF%4(Q$Tan>!x+6 zbKEevFFS+F|NWOg|HQfTF<8np9rzq?6Aw`d%u*Lzy1bcka>bv*1P&W^vda>&*|9Mn z+%tds@7{U!jiVd4ZtjH_;v?J!UKAB$2bC-O zf4Q)L7L}qWnS7SyllxFK|1Zv*^~*)$FWi0mIdkt9{?u1rx-!lC{lU(~|BK%KE?xOe zhbq0<;5)CrH7g%(mg$WWZudlo>S99#m-oO4K_kS-%C8sdgmJv2h^CRTBG~Dqcy7Fy z@+eB0-io3KIp?_Qh|Bh9CKEAIO!*b>p@p7$ValTa${?0i>?QVSPU-nLFcG)@TG+24 zK!mI!PUtO9W!!eS+=g)omE3$p?9P{B@6ng~V?O#4eayw9D+8NgmjD<27_{Mg_}|bb zKMn0Cn`$VTefTH7%#K%xCd)*Ha9pp@UFC)sC#6byStHfB(%BN7CK+-eaC<47mad%^ zV~)*R|Ha&X@BZcM=K<+A*SWx-JJl@2(WhF_8k^jb47J%I#@ZBWnI9q*m-Mw-^l^?r zR0G}@1Sr`5$lsw@cAH}Tc&1e7tS{53!VB;4)u!YXAJ!|CX+qhx--fF4V^}X0wE1Ea zRW(k08)Ybmo=pF>VX-#uNhnc647?wmfX-a<&%b=}%(-Z@k95ak$tNk;6i+>CIH`S` z6DdU>nY3V&2Z;VwwD zxQC>mS_Edwa(?me650uBT^MAy8}tcyXG0WQYTGY7lZ#yxt>qe5ck45VbGV%1{V31lDai z=9P&YME@eG*y2Fy+yqYTKO6kENnZQ;P>=YYxT&W0e%g(EuUAAY2famw=_a3#AaZ_J zL9rb4+U>1X!kvU;6fW<=@m3o0E@P0b=mX+_oaj9%fRDd>!%KcuO+NK_6l)IjPRyoh zN2eSY6RB0?PES#;2vtgDRpu^*Q;dby%u{g-o{jm)y!uD8Jy@KxOUM_qi;IXY0b=B9 z{v%I8w++t=NL@1aCp@-#N7$SY7vb{t@$5_n+y0gPN#txL@KmTCEXg?}G$liupE$SP zRz-jXrjW~Yw(%4_q`U^Cx(3Tx;QH@$xE%XCw{Bi~;^yTTf`3Z;QyS{5%&e{-VFg(A zrom!XCwLF=`yqJ#{O|wV{O%upaO>ui&S!lNT*u;N%MeqD^2~YL{5wj{gDIYq~B0gw=+Qglr80W?yaSAxuVm)MQ zR<4YX15ok7va1*MVdUXEcn_}ViWx3BVhG-J<~gY?6)#LYDc?tPEgPaFPMZxB-$pp; zT$E?k=Q~i70)t+2iWi?$Ev-Eq1Lb-NbFUoFm7S z%|DbHyt(sj^S#$TI)CA6JfEL^R1wO#9{@wgBYam_qlja00dG25I=j-$hhlwMFCNtY zv?B%`Uh@N#iY?eKT_wyG9Y9%Mjh62G3{**fD%!ZvAg;B(VgdCzIo-!MYsS^tF7l?^&q3bw)N1hSn478&%A_W zqyPB6`NzLy{_X#L=lrFsvAKD12NCSWsO&qtEX%>PgGovKbve*cJQT=rer&obY7?z! z^T_BQ?CH+d#JZtGa!K^CnRDy>l;{vif6aNQi|!Rl1fg}zlRX~Cyfmx0NJ?koaF;

kGo(tI3yh=DJU@s-90ls8APtimYxSNu1@RT!g-V>fOU;4N-;x%P`M z4ACPfmxqFIiFHFmqo`4OLxf9D$-xQ+8C9JPPNBPV`Zv2teiE=I{0mXu>SG1Iq}!Mf z#2j8dGOxdC?%z4Sc;n3R@$4WH5BC4mgxNPtjMf54G{)-j>?1!#Xc+7OKb z;7DD&-=O)mJLPa7m}xN&-MLSmd+D>&p)=8ae;>Us%GkD*?E2nX-Jg7sXHXN`#Aj~LaOAEm$?-a)|YJL1|eO~#DG+rjVSnMq_4ROc@zKLGAAIL8e&Ok#{L*vhreNc}ac`!BgUKe1 zD;_C9*P@?Lj4MRKtx_WEu=fUP#Kgl*{-jv1yx5}B)*yR}^CIq~q+Jp7^*ov|)22U2 z_-wJWz5Xh8K#rSFF#@;}9>KgHAd8Ln5b@E68H~>{H9@>J?7--|b3P~EU5`Pabu>*WwLl(>P$!&&^*j{G zc^r$8lzBHDjxfG+A)N*!`+1sHR}ROTTLIW(UUUkohJidm>2!u2 zwl@p!9!RXv$ z{p8?cNeD4RbaWugG`q+iaY~#$fA5paAHVr?Uw-y4e*UQm?x8pnb{2xiCZ{?N(-h-J zxyei^P;G5$(`S-AJ=+#Xkei$Dh}laqZ1rA>yYrwQkvIan2}#^5u|nJ1vc8U7J zNeA(_SlR9fVL{*SH75?2g5bq5;rxTKQ&mc9I2ry)Pnl1hRVG45s^lS)!i`GG=RK1X zJgzsWr}+GhGMUlNM03xY9?T8Gu8~JTari|3N#?Kyl{|xQX|1*+7-lAD)OyD zB>GBLBkOLLw6bVfn|F3LAG~Eg`p_R99(undhnkou$|n^e_y#%}h0Pq@ z?J9~zU{1Co1nE~g8tCtZI1Q~|WzbAo!QTet)WnuaK%WF$yB2CLWYS{lvbUvL z05=ZJb($$M4k;~`OX$U%nB&Q>K_+3In)Q z=c>kpk~TS^x+xwYERp=l-aj(?V1D2C$N(S@8$D1qDI>FQm-+LB*aC5 z3WO~)inzur&Fh=CT~ZR0U3>RzvbYaQAczZ z%=?R<+?C@y7ax55yubT%KlX*Myma*-v2i@wno^k93?owYz*-CVG1(T@2s71r^evvi z5k+m|1Kuleil?U`kQQ|_(D)w26_1fhL@ym3S&DS>m!ydkebW1!clM+Rm}6+}@Wbb5 z+=8t1YhBA3LCKSXw<_`Qu-B-rF80`f)ht)SHAzBnucssGjsA2q0gLL<_vJiDtY0sK zA7v>HinhU*oL9(Z@O>YXUOn0n8QbG^p>UrkdWXdWj~t(#w8&-3Nym*SV9Mt`PUwBo z(l+IUP9aPw|7%Kh9*@`Ip5}e?-B-;eUz%LXKm2M|VU&G~9rwE8qAxq@ivE|(crwXsA8O2MF5 zn#%@rfbA;a90kpAnI>pYi|xz#)q2*EPMk!o9(5o`d9ozBPB!?P&4B)b=X6+aL8PCG z5zm|AqE@<>hKp*OB3!Pfrofbk^u!>rZVIzE^B#P5Y)V#r9N7;X?GC21_dfWNz58=N z_{xtyb9J$y`m3c|6sgX5B9H?c)lA3@CE9Sb4~O-=qvK8ET`i1-Rej0Z?Gdco?0d*e z0c7I?(%Y)W!7I6jp?o-CdXp)v9N5!##6~xvzYZ9xtw)(kk&8yKvQq6PJ}%ORRx7R3 z62}XbK}qYkb%PqT2U&>p$D!_T&pz%Ec_V6lJ!^}i)a^u2D^j+p)00m$>*D~Qm6utd zCCSJ+_@q>I5C(q8-SF*2E@GOVxt*MT{Qvfh;Cu0)gFoT`Zk|KwPtVbrG)lG~PF1hY zp0p}Bn;dI+TO#`>Op$SrkKzB{_|~V>bg+audL6_Hr*)4{A47I08yfF_h1&H)3@(Eq z_Ws6KyT6r+4fWRl_#z!NT=9Nk3?0A^X5}1KnXaMXoVX!5_?OyTpko4K6>+?`tAB1I z5KC}LYo_2HK6v!u)1SHc!pl!Bil6ZN{PnhaVv81}TZX z>G?CaP!y#IQJ4n7n6O`_DXE(AMtF*rz5@=qG2gRqzxBoQ^WXTfFTZmA?C~-?2<#JG zKAeRM+4+zLV!JLea_D*_5mQjd!rrmz&;+%(>P11S2m~Ul2azr(pn8nx)MD1+Y^JLy zVll40^aLP5M?~26l-M51;_FwG-nc^2U$KvyW-tD1%6YPii5K6XQ^uwSHBt#5oEE;%1(`*-g=Z5RM<`dEQOI`Q_ll@BZ+aM}PAtfBc0D6I>tPr62+8 z4Tn(gMI@K9=sgsZ(3uo*i6k-?(7f{KN37#Jpy-oLb_Yd+8pM(0Thi7DuF?UY{_uTj zleS*dB0uYUE>UQ8I`x<1qfM~Qh!;1faC3gKmM&WT6ll76;9m-$JUo&?fj15g(bMO5nE?NVV|-suW(uF=7>bbg+u#KKF(_-ALjlqSgNGO%S?Sn z7P^c)wgra37CYu1pJGl1Q+=N{eY%V>VqBW^Rl2oV@58J*d$WKiRrH|%JPNlF ztlKZ2p1pkUrO$nFiB-9IPWit~@y|)L;pLy=ZXSf}fNvfyF?Qqa`{p0~BlEj|_}aA_ zFYT9@!pSdlx}~@H81FybU;w?NdX+%bmYlq*@=)z~nT60yHx(C_zHIK6WQn9r99A}Z z)=*`3n#EJ+5ov~vmS_#;YH?kRoVyOjDMD5Go*S%8;XX}WUs;l+FJe)ZP5U-7+PSFSJ5O#;Nv6&0d~A_iBPI9VbLP)2M-QQ;*y`eN$GX?i3QtivP@rBZV{ zv4{MCk3$4Lf}3O1BV9%3qiA?=>~wuv+KTv9PQy8)3OoEyMNv`24M(@F)9pwvPx3@IiM!Zy7@Q1*%SeYVZ7<#I<_TABnXwEot9Pp2Ekq(fC$9a$_{4!vR7?BXSoL_X_x&ra~z>^k@$GI`|LB*v(KGd<}kUP1@b`yf`~(5BI)fCG*5%H zfGV?Cd;5X;wcjxR{y%!lyf|vStrnFr=p>Xj{yE> z@6>wJQ&bnf{q0_RDaw;g49B~#%UE&m9@%k30tWHrCX~_v!-%xxU-6e*|K~aY{@kKR zZ;L1}x(?8rsh*11gWZH(MZFQL^qk+eMzI+U(ii28s4eLBLB4qLAId=KQ?t{-+z3=9 zo|I(V@zB?srlfw6`qC~{8OPOeg=VfE;W8s*N4SRs`QZb&$ymw>SMzP>wu#6G%77?) zWHtTveicWrFZg`xreYPgCNIUqwG%=7k@cKN${sxNLS0CXw!p5@_%>T}xHsn5yzvcl z`=d{;T)i|0?$NKRY(bJAqhYTF~5U#+1xMq+&aD3@d%=raq@xg3<^Ix0a z`t8>*UU@o3_g|vQ2!7a$o4|D&pq~#p>Lr8_iV2&1j+PVC2n3G~;#P)nO{S`r6>wUv z>dLZ)W@=WGub+xL7Ak2|(l2o*#-iBUobyY>;zYdT&A7fH^oWp1$s&yZV4_d{w%K3! zI3O3V<)Tb|xGw`)iNhzwz*czwiUk z{@6=5FCIoWwaGz}2wO6vWq-tpk7rm{Yr49WXr`MoA-MjN4=?@+PZ`g&=Qu%Kr;kf{e_F8J^R#2~9Tnu*o(Yk+$QB}UDi&(+&fy`hpZAou^iL%NA}QIDwB8l$ttCRI_*0J+aHPUcX9fOK z8X`_UO7FxaR9eU0K0;)A^f&Q8rg1F^&3KN`QgOXQJ+Y7CASmNc8r5qKDgUZ1zU-z3 zUGX)5L)=skV)8HZzWLVgKbWlD?WSdc5TJHSQCVtO`s|6(5^LJ4t9%(N1}&4YY8o!w zO@y~l-%I4hG}I_^4hA9IkT!w;dDhY~T(Oh0b_pmk1siqftajbGC9<>&W8%HGhy)H< zqb{tc5Vlyp^KIG{+SwFWC7Qp3TWmsI=?EaJd*D&+7k_+sc7Ejx*WAwJd~X>xC2#e0 z+lJ)4&S#YtV)B@1k3C+@fBZf3wO_w~_QEsM6yx}SA9l{~<#Tqg1no=J&=sG;x7g%? z1_7kXGO=YjCbtrUxf)^@<%lmSdL%ei<*5Hj-&m5>jQ!nO03kzy?Vei-8&}sT_3&R*W|#W|f6wmofrq;{YF+a>rnW^^@JjtSNbH zY>KIclIs~FLu|31aDzh4L55!zV4Zku0<#Fd+=HTsKn4f0WuW;gJ@Sxw00@B$%-&mw zC2XcMW(f~IJ^$fr|HDsw=JTJu<-#%ryMvgXp&l*d7*ORJKr2Oy|J&5Am6Z}@Puv7^ zWdG$Wl<#G{>2Z+P6ZpJoeIwrNov7K0xP^%5o|Q_WO=(NCXmCpO-VsG>e8BaWI<)0& ziGU50m;NBR0!5v0vlqB<+oA=evGmRvDnum55nM8C60o_rxQZp#uvt0(?@2XPZb{z_ zb^sHk=$E*?kz%??;*D-HSq3pIs3q@Xk36moj|>js7;XmRLnmrkgELx3Z-nhO9ZPg( zQlywJr^FV?t}K2#E`@oEiX4%dFw@B4#Rc)flS5MXMmYKiTs`im*YcLhMMOEmcA*DPlBjf-{2jES(OTH!VH==3KNWsIn<&A}b)f-z^q@xlJl z<@+B#J01PPU;fiyymhby57A|(YGScvpv0X8Pec#9a4{}^g&&SkMW4go&OT^}5hWhi zqXL@ zqzb`)y0df%Rin{{LP_(@{BebHdH!TuH_y*xCpece2`yIi|*cAq^>jH!97O2p6fPi$hewkjEcQocF19gBJ^ zfAPWh$k-NnSB|5SO_2aEBMBgB?ySLxzoj>c_VQ~+>Nru9QKvqHwg0`DRkn>Z5A|Q| zA08B%-Moa|S-)TIJp1B}D_1WpeukKgV3aq>UJT)(0LO=5rj$7h9I_LlUxInl>ugG)o7_lh4AD?- zUu69R#FV9M^PTM#7L z)-=qdn?2y6@7ZAm> zACk&9s1obJWBYx9L$zj%=z1mgk0CS)bQ1h>1^Rof0i2#JX@II?1n!hRQelT9TU&xibu@R+ovrpTwDxWTHo4 z%N0xz@_!&D(-f?kO}G>De_cFxEqa8fvx~Y2d=n)CvY$?&P?WbHgA7me(~=; z{LX8i+`4sh4v?EWhWc5OdrLkfsbgmYqHRcG^!RF3K2iLilw-lRLqxxl21*vfoxPc> zh@n#taeCBU9rR+ScnELc?UQdDBU_tj3vBt&Lwbk+!2pt7_p{^7^3|LF6V{`^-y|MbNjoXGoK%<^k3mJ!C3tY?C>Q5F$@)9W(lxAjbkNdwXF zOvZ$-ZgLndN=^|b_Qbn#7)3fxF6ogjh?Iym^DB$I@QEN3{)(`r$gw^2Tt6Hf5HhfO zNzyO<6J-e#h8Z6mPKLe&dgX~Csx-lmj1<+BuPn^xoX8PNG^R?|^Lt>7)5+iO#4iUm z)RR73@^03~E#D(YW2Cti7`2UVRzg%Re)>5wAU%{rYEYPrYa=61k7-U}{!t!Le{Cgr z4WB~q&4+KAPu?+?E?ilbSwKq#=w!Sb zieEL#Y?|UpQqy2^4mKF;SLQS%j(%q}P?>ZPAw?obl~6Vy8+nCyeBb2go&zT*9Whz{jxjUee&por$4tm|I#Jv zAOvVh1r28HIFmWeYCIwGlZnowehzc6`#l8x{DK)uzix zFK`RQ+PWYEI*Td;2)`D$yxL;=tF)2C*Qz(eFsEb=E?q9N!R#Q>#GHb_`gqP5hk7!0 za%Ye3o&V^KpZU^_pZ(&Km(T5{cyi!@L##`YJWbXDXbi7bpeblZF+B0Tsb|O-(T@0P z?fuP_1cgHK236y*RM{k~2gTaT1=UDb3^rvHmq9JnqWti$Pv?Q56jjv zqM=bye|u7oL-TQ_?5(k$`CY<*0G`9}{w`rKEay?!%>-;Cfs#`A>GKen386LN$)gWboVLH6OXIaH3mM9EjRr_Q<1{z@E;dbU6^h9WVGvmi7(x}7(K@l!`K+>)1c&Q zpi@F1AP0)5u+MIy+ujJA2+fStzxDXceQR?m6O$mEaa$7S3x#<-L_+H5vxgS+&f+G> zCM&uy@NSN{V65v@#Z;t1-XpQ0O(R;bypBWoCwPBXJX?B1_FTw%OM9d*iW`!?S;Ncf zpqPqHe7<@^G5#JC)`N(HT*_ON6M^ZE;#i^=Pz)8EP+VJ2=N45L5j~%%o15FlNguKT zMa#FoO35*k0+crwvwof6bV}!l9z6ckK5iZpcN}|+K5K1-bvt(r9E(73vT4Kp(0uRP z52lzODu7LQA#|>F#`I3BS4ODOKk5SZl`V4}WQe4(qPLV1*$MCEmnG(Rao*@vRWk$= ziIz!8-Y;?Dqiflf66o zYd<)?fAOk)`SX|EE~Z-o00uE?lJz~5c%cx$#hPiEV@(U3Yy7+aVE*}U-9CT$;ylkT zMjF~h<^b~jJUejt2mh#$^nfLYyK&{-dFHwV+u`qYUW743n$0x0;C1HexRpWA*`PcX zSxFxH(%bbXTa>Tl&0mKx54X*VaTBo~a^DtQ~RgMj?n0zC^J%&+m z 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

7ED8*^8|QgH+!fNP#t!FXENkAgohP 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 z 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

X^ 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 z�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 literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..df4a9e0dc1a76271c0142bdb3bf1eef63fc211d7 GIT binary patch literal 2281 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 literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a50fe46b92d74960278362affbae7d0730f1886c GIT binary patch literal 4028 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 literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..978b561d095a9e0c43625b137f555d3dfd8d1e12 GIT binary patch literal 13068 zcmV+nGxN-eP)4Tx02q~(kg-a`P!xv0Xu&E<1v@x6Wa!|aQbdYt+o1>!Au3p%k~ED%nqHEK zcGu0p)lFP{0nx`$5FErOa1udhPZCP9IC$W{=i}$_bM67{-BQXg)nO3Cq1kEa``rV5 z>Vq;B=4qf=PNbTKv5nNY7fOSl*W`tl)g+7m)pXB|9O<8;nxn#4BCEp2X{-|N30Ff| zO86{cFXPLE?Tl~InO(Cjd@sCg7uYNCz&~;Fy_t1`y&dUg(Gn3R9a?|PY@{=7hA2ja z9OH3Bj80P=g^w$|MS#N^E5hs4MUCX1SzLan+#BA)<~K}U<(_>Fj~B4`mU}h%W91wk zo|F|@sZ|n9^!xC22XkFmc!rt7@nL@f6QD}yxCm-T001$gNklR@?Ivehow)+#=$tM`8*q9XBRutuGh%FfvC{&4bcnIVN>2*=Mod#kGx9I35Z? z4ck=8{S7)P)>ILT$$KgQC?c#rm%5Pbl~{w?N^VoS;7E2`625|40=dMB7F-$i6GYui z0FxdR$TxUUtXYbczfF))5|@%V6JL-laKaG`g0|-dLi8k~F}*3D zL@TP%pGHLyKgp`C_cv{n+Emz8t_^VFlflUKa0Zf!@9S)vu>6*{*~vih1NBT+yZN}V za4Y4cE{b@R#b&`i!VV&fBuTl)m=*U#Q0ce}eQ_r-*YBQ~Eu?y}?)6w|K6E5eJEaX_ zlVd!Ln;<68iAVx9lC;-5tYy*wx}W08CHuygY|`jM>Tp^HFsb_|W05ahd%_?|Shop! zR%>*UNV=inFr=zMqMyAFPWKbA7!1i+NnDn$1D&V1K>!Xtc#nVl4xBIs4 zJK;j^yoj%kHQM_eXmJ`DV$=>QkyNfWzh*MKn7~_7*E_c`ZR>(EojQ9B3C+x8g5=JN z3F4^QNyfHL<7K;8uwokh`qX5SvLxq;HkN4#6`tMBCe{h z1ftn>!Tq%gL>dZ#1Y2~Wu5{q(Br6wK+V)05yD*_`9Qf_Bjj|W|6?3{}fAuTbVk8@? zFhQk63{_E&h1@0PJ#D>R5%`8&VjT>iybacyRboMb{?X)NwPf8Om@s<$q0>g6+Q@aA zm9AqQzLoTYTfP~YY_(kFd=Wdqv6Lv5MN{1x%*kD73vSZ25@(wusqrBDxiaa#yp&g& z+AT08koV9;XHP)$2@)>_9l>S!jJEq@+8ao=$@6N%J)ye)UyiE&z7L5utP#Wy0;1-Z z5STvuA%;H9I)auvbKxU~vkXaN9dJRXs^(B`oHEAz>tno1HYWZl=%=<@f_r_b1xCV+ ze`+8kn$h%Gl@+u*Sarm(8v{{`6-}H>R%60lNxtY` zsj4HEc$?Z*HnSnk*an84VbI}~ch~x)7*&)il~*Zc^;Zbt>HDNGLQ6BCt#6Vg#C;jq zG2br>uHl^90jHF*Q%+Vn;%X2n^Tc!qCu5&Ojkk(c0z zSzS_O6KqZ!ti@-NKe@Wu@h8oJh}CFhP1tFuLYriRfhC#`rno8-b&w2JXl=Gq&htF> zL;`vF&zd09wi|m|F@c&vPT|k`7udu@v5K zUHs^1^fxuyr*}Rq#B+wO>Q;;GD9iIa7HCr3vC!MNL=fixEg#VF4y5Q5&4Lbv^>ULPDmuaB}LCe{u|KP z2_&SAjRbXQ8#nICEXxLifs}oBiZr^ zerg*ti7TBVf)o@Oe28J8Eh-yu*`R~F-EP0%N7USobNIF+FREu1_)iY!Hu_-?DJADT z5OJHTCPOWuSZl|(W+Vj4N3&FK`F?*W)8OfG2}$$iSI_;FW!Y#nvS$o{gr++ws~V%* zB8u@CbbqasojSKrsDw2OD&eb=7N&y!NmzOj*3PIx!qisW{ymWOEE@}Pz&CWsnostR z+KgCoES4%M#CSZmj)HMp(uA+A&)Qt@^q{ckE!oJjEO|jNIO4~94X{xh0*Q-{(}_oD zb%BVXB9uhx03CT$UH?v=Pqhw|39<{>o-y-O8hg+WtyDjWSN`p;!g-z#hePATa6hOy z8Ek8ewyZAjdD#v6J7V7w;~+mrSTw|Bs{;5@^19>KS?YO<7Ql z2?NEKvO+jqz`ykA@qs!mQAeJcF5FU9TaDLs)tjelkmb_bnG$Gc15>QQ7L6Z(v5{v3i_)MYe3qBlxU#u zUnRJ21-`jPhlYgQ*e+)7B^Pcli~HgbugT=483PQvFbP4N^U-KzmD&?)Vs@=5STD)Z zVTe5uNv)3JTfUK$@?=-Il(YtAIQVHg@f2|mN@?MmOhT>EM&Hb5t>8#S82R(X(couB z{%b&AT7)kxsx^hk0XQ;SzH;=pl(HG{x^tcx%S&_Sw>sG(`xMT(i&It=LzfNUyG4Pl zMHBCB8|;~IQZ9&s1}*n>zuo7y$_fWRLr3-#XHXcZ24;Iwk8V|71j^z|PR8*~43wG? z8eJX{``TIcxs$LYfj9y)!X%IcOc8RUaSG6!XRK6U1(21p4-Hx}a%3ZXl}5Um@=3P3 z7IahH%CQhU43Q}%16M8Ri3uWhmH>#3e1i@>K*&r+Ff(L3E=qw{Ka$f=nxs#q67scY^qWW`hNz%kSWqgO;*afFD~L0rZk_@Mq4@O-rPnw zW!@INY(R%q=ODQtR%%b3Lk`ex7)u*q&>!Z=FGppgNNR zXFk1ySWMN|L|UKw-Ng(WB1rOo06BoiK4Gv2jVeeq0ynyBST&WF(Ed-raBf>^J(Gcs zV*~o*$K>I4WEo>jj|8&1tWXPF0a_C2rt;A`nkAQ23U29XJ^*#o$WNC|%FZ;oXku~N zQ2QqnE_e`T3Yed7Nxu^wU6MI-?x{P}+LAt_>?zZz(f}HX8!)ia*J1}rn|3yewWS#) z#rsduU+hyW5}D9Crp2ntLVyD)YwPUrMvEfEsQknT6kfu{ubS;NBSc|z(0Tcud;&St z!R|P;R6|D)&G8Lrg(SX^DS(@R|TQrxF;J?9)R?1}PsBuTf;7MJw8K`*8n zVlQD8RAN)loQIE|zJp7pv&Gl3jy7Mbl2-%>%^*M|_fY6Z?^kDDvV1_tV>CXROQflU zVp#eqM$HYeL{fC##l{ABlwhdf!(S~PKZ#6eJq2YGk95D4t>C)DG`C}h(%Cypf~b4c zlIb^gM{n5F^?J3H&w1_z)Z@CL?7@IQFBjXMhekGOPuJ`#c&(G&lq zM>kqZVAz#aUTHi+CAE?%gQVnQO$>Kj&Z_hw4JT^_{qdLOlcy{MoAIoGiqZwvyik_P zq^NTA2#7oSjyB|aQ$GBeZC&&l5)AXCKs@aZ;~2q!@II4EbQajO<~|TNrws!+JB?0+ zAR40t;pl^~bV}=~b^;ATYrAEbSfNU?Yo(yYjety-ob~$WUo`D(#_EVZbfz8MqT4Os&v$|Pgh@(Etu8NTmL7`1K zhRd_soRMS+Wz7^F{GxRy%RmPi2Spn6P^DvH{6H+7LyZ;)7hOTT%D`D0(SQGpeD*kC zuIYp_xNM(i)Qn1hlG`AO?ntPjL5^2T5;HNwU4^tOhyZWfGz?XD~Yn5Zx2AWv2jX3N7$%LMbQXA82 z3+v3RUv&8lAQXx|@(=QvL&l9PjEGAg-9$1h5@W^0ZRi6Hf*WpQoqI;==g%Mg@Xjd) zUWBA&`Yn)kto6QL`+UtsimEvcU4{b?5d%=<@Fr?flKU#)*fh1ZXE8bpFYU8|1vD9u z8k!}Mk*^kRVgHha4y}4zD?RSM+VTqc^H0eq4gd-3!WhzxXhlUPw%@4raB`uwT5JxMJI0%ZP~_{uo7$jQX{KK5@&@2Z=_4s765^D&NM#|-4~gESr( z2E+_9n0!-7Xh<{^Xq6fYD>6f>Nr#TrCD&>#xZ}&}o(GYbaUhu?7>Jdush*m$me49V zL(O3{z0-ZTk&ixjCGOqW4NRX0xQ#5?K*wYL+Cso;CKo8CyHP~<*GuvOljyQp+t56$ z6Tyr3>$wtTl*`Bn%zPje7C?X`q7ii6Rf-^=8(w^6?_c)O9e3*PQ9^e{xd@GwdTl)s z8%kwmINM@H>1Tq1UA^INeXrOtn?;)B3#G1p8>5Z6#{~Dd?cOlfQTdMk(xuSZ4}w)b zfcSAJxemvk2Ip{VfW|V=tcVIDVp%zNr5RK@`n>l>xv+?T`afhb);6sq5*EM5P>l}* zK!D0|r?BK=L1nU zVgtBs5q>ts$u6Skkr++2~tEk}uNl8?? z2Q(a;6$IAsk;aE|hS6XJR8eI`Z`$7fPuEUo99_j@zjtDABOJ05e)5t)$z2lnS-haL z#%PB)K~_riB&dv`7r`=umQ?Zqs-o~3qp_l8WIS&JpEg)eh;!RV_dhW8+|x=!a}Hw$ z%j@fFqrr%jWFRw!T_&bPXGToTWxZ)$PE%A3WhCEy+2E~L&l+ZnPWVZJkz}RS89#iH zm@)Ah?i)Y|hI@_Cen$m5-|V!oZ@qX(L);~QQh0cuolCO%PvkrlWwo$G3`_Q_Fg;Cg zg-?E5uG3&){oG=Ib#>GyE->SiaS~i*3_5}Yhn%aNi77t2sk33D*t{jr80KvJzU$-< zUNT#1aWgqDP?uV@jb4Qxn%iKs&1?kG`QUp0t`MV}#M|$vM(Is)2f(83(r}5E7c9)% zaD3TamRwjiZ8hEaFl53$STOq111pcb`1IOv0GR-;<%`bkLK|bUp?m$Lv808i(ZWDJ zzc}2nLHx<<)lC=AK{Rr0Vo?wUYiLnP3$ZU@aaHb|Z)72T+aoDr-xAha{WN>ekB-*6 zlla3Y7(wCWH^RcRRAmiVI$O@J8S|y8wM!19^f%Fy&zwDR_oL4MR;Zwty9@ zUgE%*ve7U^#ZZTcIa8dmmGQzohu(cByz{L)-uKg+wru3k;Gu4$ruY)VSDsW~eToh( zj271NxqS3@ztF>^XAtr3VDtykd|x=iFUa>YJ+}94_*~422w?FgN4d+Hr0N}T)mf8gi0zWG(%C~{j@+t)q-xNw8~v1VF~=ACXMr~!6e6t&Yd(728#=Zm0;yeVtHN%D>#GB2GyO@V!Qjv!~K52nIIiY z)>1T?1{OHX_CH(wlXp&Cb-oBB63o>R!lxfn zUw&ZaBk!Khb5RUcpnTY9XdtM@XKz(&4O4YIIxe(XmD-Z{dR(Sd*jZ+%dAHT>^>a39 z%9=s6*HxITtzdUvO>JT}H3I6WbL#w~{Q&Us9 z0K^ZytBaL|jCprSt7_@DhDrkeP^6$I;4#>ozo{)lyj-j74~3(3W}P9Etf;*W%be^i z)zlWqrnyyb0yx(nKk)cT&N2^mA^OI{E5G+sQyZppE5sd}@}%}o z^ts7rHJ;N~@#+-oh@+tx1f#Sdp8k#X|>A zkp#gsZfJpW10WWKiJK`f&NSF)xiesDd8m$^%|y;}!8$qSjCYK!|$4&n-YpDXsgC*pgnDjpaKx(IeHEMKAy^I zL^gb59i){sI@xog+%0AXgg9qpr<`Pp~=HzUiioY6CEb$zTJJ8;ITvlX;PV9PPI z26GNf&zNW+(pigYeMG0vWm$)3LgR8*XhC;5H|or~jCYWA!F*t%V`MGhYsXk;Uvc|2 zy7z5H!<~<*FWk5Cq1$>#m-*j6NStG#Xv<9T#e zCt?PQ{@#vN&)aXLV?!ns2c^RTCe5xhuTi0_oGp^UzULN;u~uhIK{TDPgLN^Lnc zqK&L_7?V1^+|4?eYb@qHfgLSe(bcXw>uAK_UEm$$xsiB=B7-c$T;Scu33+k*l>&+G z+DCVMb>+kF>Ta6J{_hj?g~!YkIfMD$=*`y(YiWG%p=rqiO6Nwt?@wZokt-swPY#wa zLJg%(M)@1&U`%HZX>pqeb3K!Ue2!2ssN8P-AJY>kk379-L8FwZR%&L&tvQ_L7o2eo z1|wM%ORK$3N7IZ>hMiKl2A2`L$U6G3mU0JpUP@Uz@B)N@OyDDD;EosN+&cTGdsjbn zTW9lJ4hTY^5Yk$QZio5J_hM?k7S>u-(Tq?{V{*~h1a|TOal^y~MWe*KYIdEW5C%YO ziX9>EDa|98brefE6N9H-Tv=OFj0vVyT_@Wbd&td*&>}{my+I^4(;fZ62gOG}*4uvo zGY!WKa@6?HMaa>>1@bOp2U!kG>ou~R@|=mBcm|p2N5R=055wTl`bXcDpSQ7NTf#YX zds+ng0#QpRnsrLhvu1`x;(~??p7a`nBr)$NpCQ)QSBhVblim#W*Nu%(`YZ3Ci*-15 zT_|{9|5+mIn8R4&k;g{B=#m@q-VDn!UE~W-6#ao>5`N$ZvLzqR!m;(`{e~ev{*TS3zu3JXy*L} zg*x=ofEy8O1vUVo0YrZUL*_KUyYc1Azwn-I-m`TX^BdTI`T6{h|8{g@Nk9fH17$>v zxlU7BTBcJ+1{d$;T`~Obe>2tVU?)StVb3mIs%C>6IHNJK{b%L(Zem=({FD}eRH&JD zGh*zw(*NXRboEP`Zr78u&2UnDQS7i(GhI-oX4N78sxljQnMkK0flSAcQF#tLaoqQ$ z_8pBfGpp1l&|$UPB-64scm7Rb} z;8O?tj7lB0(F|V3xzNZRHf~-2;P1?JO#+u4B|gbP!s#B|{-fF7ez`cl%yr@Hm5iyzTYkAMaBy zoyD~g-2c`7wb$WyT{5%QSA((QnP!eQe|8)#S&n9T= zaPSCw;w8HCoBi8vp2h}R28%Xp$@qHhq!+}T+h$mNv674UHR2(SActdoUMK-z$M@jk zF&l?O8-~^qbpyzUj}5d7V|WH(E9}^oul6Ms{FQs?E!Rz#%kZd#Koj%Q-mFq^ z`31#O&#Q$+1#wDvi;v-LIb4&FIR7@#Xg>@{ewKAx_7s>%=$R9=dAl|>730&7*>(kc z{#$B&NjuV-mKZ43IKk=ELLpFxj`Uya`fj#tVS1(Aj=4CK{6}s-b9S=uNf*Ghr_!O*(1; zYMkP6W&UNvJG_0n9k}@nq!x5AYv7ZWfKetN|KvmRTVH~gzkYP(b)6Rv$kQifr-ySJ zaefnSyBZFC%laQ?9jjJj&7Ky|l3;>sCz%PoCzt63t;wd=Qx zpmnIgq+#kL>jH{(l@xTjY^;)?ciKs!p|VX2M=sV;?>`dbi-V2oA4fFw-}86Fj*Exe zcj`RZU6kFo2LB=D|Y}dwgA!L z=|_*y|NfhC#z+6_Z?M~2`nmtusZw@yn=jmegAvX2G$k|!7Q0+_xek$I0goKy|KUJi zBS4{0f-rc3g?Yw~d?->n- z{SSUK-A8C@+MoHS`LIuM+b5Nzj-tbbN6 zA5r}!xcYk9x?7!DTKk^Yh|8|tR7M5>yyW&++W7si&R?M;N%aH}5iXp;vu6!KgZo{lPH`q)!`_|dT|&iCJQJetgX^uok_D2^xQd}-YON0M!2?$a-_hl0Ie!f z#~r=>bt6%E^toZV+cdi2?ACXtJJVjGb7fgyfyoh2N-D`1NW1*cOd3h;6zDIrTiM)J z>tVxQ>M(oO1EA(aPhL7_H(~JV}IMSjc?h;!OyLBOi?xC2h8nVRV~)W3BaY#J@T;n z{9RIHsE97yS-j&NI*)(4i@gr$Ew8kzZRTVMyID!<8N-dKWB`_XY#u~Q{41A-kWNuS!ELHN><@!6^Dre zrLHwP$N`Mq6E9w+mrR!Va7J_OQlPqLsgCZ~qADYIVCS2uGNleT(3_2mp^N|y9fB8M zG=gNXx~A-&8{G_gnGSS7j(Mi%8PLS?ZQeQ}2?jX_K?q}Y&Bbu*8#XD0rxsQp8IIp_ z^L8m=^XytaR#&|YUiSvvxvR?O9jhc$z-ltLj<}Y@U4QH3Fx4~nG3s^80o=`C zs$&G5fna5(h=C46a&+uauWHdmVyyb>Y*?^j45!biwN;%DKN#ZjiSBD&vHX^w*r=E7 z>vg!WeS2r?R=DI6`B#5Fc;ByeHf<5EqQ-f5TY;cQpV1?B4H6N~f(Q8Ee~2;!$)$(@ z;^|{_-`#NiE9LnYiq&OUU$?A8Q)Y5$1z5Hm%*H+pVC!u8tQQW`V5HeAAiYe7j4QT8 zb;R9PKhI%iy6m~BDKnN7bUQfJHA`I>bPTExU^hd98)dtsGD+Em`saJ$tM{BjqVY&^ zhHt(7_=X&A`Tps5zI$FN_{KkvmzI+A^5m1fTpn zb;}#a8#c}sWA(C2#OLl*3#W&hwwPTOl!-w~RmCuCU%INJJJZl;?HPIj5q}OQK*^;3mXP4DroIQ7Vbnz}tAv_!I zD*@yJrh8`d0;FEoB(y6n<*p#RUy>}hMS+gMdXp-1nf|{}m+r(@UbmqrVBgbc4;&cj z?am}WZ!0fGdOyR*_o>sTXz?t4?VsiB505X{kpa*pmx*Ve9em%G+$AtcS!9j9^@Cmi zA&y%#jG@2E9$F5YluT+|XFl36|9saNIf!YE3mZlQh0N$?S6|gRavV-At^Lrer?^OX zS+;hhVB2=Jd(YS|7?|Iv>@wO5cNWvrQZFwg*m(h3ZnOJ*X?8N#VxO7f1T-9KvUc(` zf9m;RF5vKCDT_kMaVJx`$i^m$bkUwE&WqzG7vJ&rEmPB?kfaKbg1IhaH>Sdt}$Hgemy3SuRE8BcmzF~07DM$2)F+dfA{qnt1 zsqx$2*ySSBerJbm+UJf7_ys$;vYUuu$zHC#Rv^oC6u+`exqu(Mp=(!%DzidyENSaz z!GIpxH+<-^Q<}gH^}2rq8jb19>Cu+0IS@X+e|_KntwtkaF&^ew$J)44C)9oS(v7cB=WXZx0rmS-&iPo1 zk7)N?vylgzNXQU2cFUalAGwKt{PXJQDY$fZqN7X7q2S;_^O6^7z^EdZdi?;ay3m+e zyYvVvFNnWd{61U3|=v6EvQk`88Ds_>4M^>8@sRei9q zppG4blc$DTw@sZqSsXi2m=K*w&aVt$nYn0I4(oUwsB3q1t^6}VKmJiNFBEm(xvx|0T<$4Nm)vGeV z(V>RZ0R7KQ7vJ^ox`u>+%SUltY!)HYrI&YXs2+S?A7)WCvB#J}y=$*dBUVzu&I{(H zB)y@pCVYCAYAI>|)cE6{ID6~c=X*I8Qoix#jT##zJiNcZ|EUwd`m4L0VIB?#SiL+X z*i$2Te{wbZT5E9Qb=3~bTaH?zIp>4ndbc}e*E($3k~PbripP66?Ys4*z$&w7b+dM2 z8YU5)U&$KYBb0eh&IPr!o}fndl9g+0)$6&;LNBJ5J?jpTjB}C-zx#$PpOSz6mnZjL zI(_lQo!&G%d}RFS<4b_c?|IMesj1A(?+^OxqL#7?;@7!aZAu-u;FARGWMnm32qC3h z@2^fz&A9>MKhGNq{w9P@2P*xp*S^>01$~8gJ#0&6b~sSw75h036<*Y_fYN}YS;wf% ze3df$3Mz$yYxF3j4o_cob#L4G{E>%O9^Aju@2jaP_1f1@Uvb6DdO72)Oo12-*1>E7 z>%aZW$LMCJd1JYG_~J-Mjgu2vE(UKknsYuJtab7pXL;KcalmzapT2a-O_-$2%rjux zM1zJ+sYYVyl~*S#x@rlLMH?&)lkGse{Q)!kW?Az{O2-#X7##)I7_xm^e)AhP+n39j zDMyxNEX&LkvgVF*u)dn-nU5P@5-ByC8ARovk*VZ7oFIKPa5NiAoyp~uGxKxj8QbS3 zt^FHH!J;>^s*z>~J_B^qaP^KdPVreXWu>f%3)MooW3NB!R?bhD{XNS5EBlz4wKUAA zw%+uZGp_V}t|}8qv?RI7@#QA%5`b2g&T_7s?A~YR9Ogh3+T#0-4F;>tAQLlE*8j2B zIzih_yO&oM=jOIR73}mZRlOwA#d5*xS9_iE@2LW&?j~6iHYa3D>kOB3=DWx^xwHH;;bDOZ!)G|RQMa|lW=<}gQ)quesfihg)6+yvI$ zAEj-aq?NK$ zXJ35D*m68STSAB95^YIezUSlG?%uAWm$X$KI2w)5oH;Q&J3rN%jYm?ss;1hp+YEFo zX%}=Z->(}~0LwmcqV-e|Y;vV?r`;5)d$>b!8}q@6YFEJJI?Uvpm{0xw+Um*@=RD7~ zh^>^3pc4{`?OqJfVSaQp!xDB~fGs)^l!NzGOMh*BdA+|jGrghP=@IyeA7qz3f@`;X zjj;ROjiE*trH^{N+7cBY#t(FflI3aT(#5HHnZcsbaIm_vB8yR$35&~4&^|N=v^5rS z&=aLb2lWpupfE?acIg)0_)yxxn#{2nMK*Tn9;3?fI2% za;*GH)#lSR&ie=ip7I7IDOvRU>+9?KT_i&AZnxu$xGCkva+N@`Z4uD;WeT?5^()Gw zWIbq_0x%4OIYHZlb1tQRG0b4NvbMf#xL_uD#!Nb+nPREY)y02&P#D{8Exe`7ksny?@*RmX<`k99Et}JpA6@peiMb`y z9(|jsX^1atBWP*ebkiKY{n}_;=m1=~&zF;&Z?bEWZL8Nz3iJ`U_R6AZ&T4ox-8Mf7 z5u9soDx77)R}rVemNEy6;C*citeNOtWx6pIL!r>JN!4D@i%XFRRO@KDXqW>au8>Eco6ZC3oOV~|L`MHvE##Bdn^ zQ>;gR|GQ9>buMDj#FWOT4U^W+OcE}6OG{Ms+<3 zud!Gt8A5FaN9t<%2;f6XaAPcD_fq#1bh2iRlgJRCA@8R&Xht!}a0{-$2)EgWw!(wY z{u2Wd9D0Vyj&gHR{zk_!Y{hijNx9v{PwY`Kd4x5^msrpcwAO!a?dn(jG6|BdvnK>6 zVxyI`lYTwJ*MlSvzXrjCn14-xP!7&4O#9CcD5o3IlViJqo0@!$cT@HJwE+p-j6bwV zBPsMYh4AUKlR%iM6nK3>Ii6QW0dxe7X*MI#s^+~AlsvinZQuB)?MiEkyD=3Vn-iZT z#3LrD>}?|^sh55e8tDeX5OBlI-RL{bZN@N(^~qMna(BZykZ+)*!ClEm`*(XDc_^%4 zxU@-mf{_pEnKWIEx4-#keH@GxGiZF9MC`x8`IIqC58mX!3gBXLQQo9`Amw@it34O6 z$;sxit()Dj_J4AviI(;>%t9nYjJ4It*L`f(sUeo6)r~vs+ln%{B@O^3O?_2>E1{K} z)|aMf4EmkXc9hVOWG(J7v6YWy^zBqTtsqV)fo+Ie5?k6fiaFs!TZaWA4knudAWfe4 zTQ?z+5u_V5niq}41b2>kPhcwBtaI{nY?@pHCg@Izxlix_F&N-+qwK$_rujxC?5E@{ a?)ZP_@eMm@u#C(A00004Tx02q~(kg-a`P!xv0Xu&E<1v@x6Wa!|aQbdYt+o1>!Au3p%k~ED%nqHEK zcGu0p)lFP{0nx`$5FErOa1udhPZCP9IC$W{=i}$_bM67{-BQXg)nO3Cq1kEa``rV5 z>Vq;B=4qf=PNbTKv5nNY7fOSl*W`tl)g+7m)pXB|9O<8;nxn#4BCEp2X{-|N30Ff| zO86{cFXPLE?Tl~InO(Cjd@sCg7uYNCz&~;Fy_t1`y&dUg(Gn3R9a?|PY@{=7hA2ja z9OH3Bj80P=g^w$|MS#N^E5hs4MUCX1SzLan+#BA)<~K}U<(_>Fj~B4`mU}h%W91wk zo|F|@sZ|n9^!xC22XkFmc!rt7@nL@f6QD}yxCm-T000XnNkleleY?B&F*E1<&6$}yckY?F8&7iQ&YW}Re}3oxKK~I) zDd;prBqHc-`Obb5lAGdCHku4&_X!}1b6bZ}R<1oN5^~8{ zep2ZgdCjn-lgPTbh9!Z5>`Jf_QN}GSYEE7yOCk2#cL7JYv!m1HOv=_38NiHIPNnkO z(nWZ&mRR7hIFwC^N6{LxEWL+YMZ6g@tu+8J)B2KIyY*5t7efn+xVwxHd2_RrM#qhF zzBY;f2Tj(Kkcy&+F=UJvCnqpeIN~ z2b1mGq9}44r=R<=_?lmG?Ut#plrji{SeUFhP2^{1Es7$}c^-$oyr!kov@{7=fz5ZO zlr1li?gzUDfY2k>m}e!MPlaf$nipR$nsk}wES!0rR%R(A2nn1aec27%vSI)Th>o}6 zbObZnAll{7?M@Fh&Up|7S{n<14r?nU1!(ZsIO&XCH zDj*HOy^NZ<9GHVw&eIA4Ie;?lMgb$7c*m&nMw2+8j)jDYg z3P~XnphBvRrdw($`1vvV=K}F6Fb8!=u^>|Adazm&?h!G`tf&{RC@3{`glz|(sds7S z6exyK1PUPn&;ZO;!EbPgLjzpEXi| z^j^`i*C+@eLWl@Lh+#32;kP5dhT-JvXVHF zU)M@uM1fCM;EU%WoP3MI2vh`Zf&k4`0ZC79yq3NAlA5lA@(m!vAOwwQ?veJ4sb{Vd zqNB*A{uVKdN!`9~8kl9F`6)>%(z*nb|AvSt0&Eks5rTO6E3eo4Utwp@K;(nw1jZE5 zTp1CkCwAz^uaf!Y`sJ9JnRSvg$_JkkZYAx)5egMVfFV!_5CSS@;7=~WKaRKOVYR_k z*RgVT-)rwRj#5wk*q2_fDOhDJ&q)VPSuMbbr9b0kRm>mbLAklRYw%~I% zyKs&$wiGme8Keu<_4MYE$;EnuRVzjlxYSGn7od@UaN+N+v-jN0i%+h9_!c)OIdB9p z9ZoNZBCJf7R?=)AF)~~T*sKHN#K?FduL}M+%r}DL|5i~Xp|IjJyREznjH3=5mycicSyW;mO@W``&K@^sE>Tw_A2hd({#@c zW*KDSw)1K&@_A_nwu6i?o+=!WE^$e$W-wi9t5csf98pE#qI7`EYK5tw71jpDu#_WG zj&M1`+;yzt<45zj|6@Jg3?8||`}%%8I;ifsS{9OkZZu5(vwX`=^ip+*TXh&iMNq-m zC&A&9bpamZ4igfEBR&4Z=cVrtyztX7a2Ojxxt@ib8W%&Cc(V@g%)_@HbO3R~dRXTr zJ1ugnN1#3K6cOTZo&y!LcHKs3Hh{RX#}MF?(=Cs=Lb^-};QZ;Q*j=|*0N@ATVL$t= zZaWAAICUWy8-N|#Sw+G~g{D?v>!7~z3i3pc22%%05_~dzJu2U2W*j}KQ}P(w4zrUc zXCek?&jk=VRUrhEjEOHlruOaglX+KfX3su>uNcDZTu;`5l zWJEf^F^nF#S)`b{8EGDF*PUW#8g)>?Y8|RIU>qlI#54cW#wG<^n29RP@q`e9@7|-o z@nkLIZmR|DW!hd-Vl$nZVZZ!U_~;kea!60@W}AkD)_@Am&+2zignM>&&peh8Q*K%3 zi*Ei$FgLBoH^HSPU0cVt+z!)6fjiJ{Vud>u!EgRt^v&n189`0(>Z?JsrS?4{D>dgQ ze~N|%aLB`zWqt4%jrkfCu>ckpNUN@*P$68VN28)qBv;aK#WuzSRBOidZMz!~)xxKE z`9`@gtsi~mBIe|sai?;*)K<_1kbZZYU|cbxtFS0I%O^j&J@z$LnLKHbHQyp|1A1NsHqhF^2bjp8Nq; z^I`XGG(LfzkGpoz@BpYl5BcC=G~x?XxKs}=+r&uG(xtX0SE)z}-YE`tCE1OMneKDW znyT#(9s5{s*#?VsMa;Mc*RvUWv zF842QElrH7nuPzJi#A{GkfsY4!)nc}7Db`!$ha`uWtFkS;$es}Q=|#P)(tnA6JRa2 z#Pp!vIqP1tg<(p|{Khvh8c)M$rU_yliUliCwUW|^0V{;-%9WMHnm=OfE>`MJ;O^)FCCP8+lDap6A6iy^`Zl=1wW^*@#F=>H9uo%}dL3 zLb#se3*k_zWXUOwlIe+pQKwb}Iu>HLe$-twio$lQ5eDsQwc>duuJ$c}TSClNW~G#j zF)3xc-Ck`j#6G4h2QSHPbCCnOQ8v-q>bgNGr7(U0sq|=6__)#|;6$37b3?0IRZ6Y# zeI@@^8FGw^!p6w0Vr(fvJ5*b1qzV|fe6=penvzm#zGjxp$tLtGt6H5U)xdr&mu}mY z@ceyefqsmG-sGU<8$eHKBsbM|u>FDB$IgBqnEFxc)7dM;EOqX;ytTz5^}@G|zH66$ z(z2_8MWXplXZB*rE8k;%w#-i`m_p(pv(6Gj`5*feP9h+xuTua3002ovPDHLkV1j%6 B8$tj8 literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f170e50ddfc34bd47c18617c306d84aaa778fe07 GIT binary patch literal 9651 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 literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..701640401dad0bfecded19c1742282b692064be0 GIT binary patch literal 3935 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%0A$@!FrAw7iN(D}^sArV> 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 JPDHLkV1if)18)ET literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..1a8aef11e206eb9e8ae16ecea5188847047d23f0 GIT binary patch literal 5669 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 LNkvXXu0mjf6ZhVY literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..19d8705038d80ba6a2acef7aca4f62c9465e3486 GIT binary patch literal 17728 zcmV(|K+(U6P)4Tx02q~(kg-a`P!xv0Xu&E<1v@x6Wa!|aQbdYt+o1>!Au3p%k~ED%nqHEK zcGu0p)lFP{0nx`$5FErOa1udhPZCP9IC$W{=i}$_bM67{-BQXg)nO3Cq1kEa``rV5 z>Vq;B=4qf=PNbTKv5nNY7fOSl*W`tl)g+7m)pXB|9O<8;nxn#4BCEp2X{-|N30Ff| zO86{cFXPLE?Tl~InO(Cjd@sCg7uYNCz&~;Fy_t1`y&dUg(Gn3R9a?|PY@{=7hA2ja z9OH3Bj80P=g^w$|MS#N^E5hs4MUCX1SzLan+#BA)<~K}U<(_>Fj~B4`mU}h%W91wk zo|F|@sZ|n9^!xC22XkFmc!rt7@nL@f6QD}yxCm-T002YRNklzNNe0d%dTVPN$O&SxEu}0)!Ai1w>GSY|0`7f}k=ZA0v$5AP$S5BjBjGFp2}p z9+5>vNP>h#Ovt{6kWP1})646(zq_1MRrA$)>QvRa9cSkI<`Q1td+xb)s_MV}{!3M5 zj4=Q}L;w&%=r{gL2oc|)-^738A0~h6E(Q+`p5>a-?fW0&-^MM+1M&OmZVpBfv|z93 z_u&7eZLn>VGk$a@?Y6!%^S=w)Npq@z7UEHjAx}&jp)Ag<#?UgkrAr#KmN8XO_gBZg@WV$F$~u z6|0vdUnez0a9s~DIf=0ZH~TO2%mkfDvPByg#u_WxNUai+ipcwo00_9OK|f7Y*FgIt z6B;}grX=N({cN*aNfD2K<+Fd#`A5SI_D*z72Et@5U#oHoWJonW&X5}kYp0fDJq+5_ z-$yeN+JNSqfgNZE~D69>Ju?m@C#3K~qV{(}v3e zO%vKM|LzEb3ZG_9_|$v9X|B~~Fe7bU30_tkj6)*HM*O>ykfH6NZB|x@aV96g6iMwG z@qNgV{$P`H<&Pqmifjys@OUQ}o)(v242a>rbuyH+aBVZ5$VcRLx1fr*`8Ur-uT2B}w4 zXC@6#lEAUo70g4jh4?`+cGsiP2FV}0N59aJC$)6Yz07++!i>AOo~v*0MbKhoV8V$T zV*>q-`j8|!fPg>ROyC$#F1A2HA9MprwoB@_SS4EW2uq|;bb_YFsN#S>vPc7nrdPrB zgS0FM9rDTM_r4voCc#w#g$J4{8eT$1$Ame8cG|2(@GEyA7S^D_IJDs`y8BU6bA%l1 z&_G}p<0;A_^c5&Hw93#tK56aRK`I2Z9O#f(P~v7=Bmmkdmn1`5Jf-c2kuFNGf06+9 zJ#psB-j7MQEYMHmwSrWMV~|x$gWwxaPu3iiq*korVhcCko~Q6(0i2y*;TBjr-q*s@#<&TDaxJ;<@zzM&_4{^?U@N3#iG?UrsL_TF)f_VdZ(QOMD$_8bFeF6eq2 z0{TCGH7AJudw=VF3XqX(*a}u6m=rr+e#>n(%m>mwb+TCQe5{f3rJzlIo2s&Y)4Yd| z0g7>({|{gPHw{MY=%!L5cpqmb9@hpv+$)I{W1=)79Z5}^dRUqr;>Rd;fld{<_8sp~ zO52=|KwShp*k;>KN|mHd9plU-6{f`Ryk~snJU_rO#_Ic58nMI( zP}O$(q=?a%VryN@=p4Zuk&?(Ib}(YEtIhvya{$^%)n+REo7)tC8->1ybIurZ1S5pl zyNK7Z2JxKB;RpEw0MZsl$&&PUBp736lA$1d}uIIIfGe7DP@dRRi&ww((sKiRqU00(S0BDff@n4*CMAW1T zuxv0du~GCXm+W3rVv^s+1oj^t{4fd1bzfqNx*Mo^Rq93L3kgBxN(Zs*@aJuPi^-;6 zSun8VEF?#m^oM+@VvJ>3mgjj=2x0+s7&W*a3?Lq1k`hfEe-djSM>U)GG`e7Y^Tb25 zEF*-JWhn#-frOawN0LEfX)m?KNA+3ht%@Z#F|=~V4Y5 zu;hTp(6vqRCKY%)ogCsNHf%;xy0SQx`X?f zw>He}u|~sU=~CjND8~G-1vMqc6H_|i%JC+x4M!xO9(5IzgB8#woD&^eaIB`kDvF{k zOU9(XuQen9u{1lW`c2TuUC&a{5g)@q#7f}LtiGsUj4>@+-EKEIFHJQilEI5udnD&K z_Eg5$r{GE~*->Q2^#OxSX3Pg#yd1UMS4B|_heIuAQqqX9Vi0=AkH&O0RALY_^a~E# zOj@(w4NchXcH>SwN>d-Bk~XB%(i8BRsjUNJET6MaF?rf?EI3>iJf$d#!C;_irth#C zGBoFL)GD5qI+obH8V<6}tF zXan5w6bBp@+hYLebUOWhUyG@fGJ!!nI-Z<3BH_<`SgP&RRGT{T+NzPER)!iQB~@@r z@YC8L{%!I~Qc40tn6yu^ok-f+V94XMR%5(CLP)3684ibt+}?%(leIylmL|5w^Y z(^yP-Y{cgL5{(DLkJWpP5|eIeQc&Feno=4WCQX-Ltk?z`l-^M-0ooq%!)=kMSr?icHeSXM&CmHEu+;_T;;tXGdciCmm* z9@C9@)VhfT2V*$8c-~|B0YIMTRaMz|V;v?=a&zp1x+__d#l|Qoe*lhP4#y|eNE`bE zw|N7$i)8@V3OszhICc+b3^<@b5FD6Ng~#s05gT3n^IiGLdr+X^gGaO}uEtD(p$!LZ z(gknS2Q-Qhd{x}Wf{3U+GtJxp#5NJC@irgSed~h`;fj8efuCRnl?y@XNLoPG;FSa* z$q@>$%Xca~dILZBeZfjl>QG+eYPN(*1qgt}2lM%Zqq$vq+_%`OCt)50oTO%92yl#v zhnf7lDqyIF-X*Y&h;wt;Obk;!N?7Z-gi@;c+XnT~#wZe`il<9IHS=g2*K-9*rf$V0 zggECe4Bw_Jl8;Yj=QL{zfNELX|Mz_HARqxGsFE~taFSFgiKn!pEG#>Ae>Jx&_ZuIB z;u1LC`9(mE3vtuBxMLs=jKmO7eno(z3U7MS|I9ACYBJN%CpprjBc!!rzu$LJA$1Wg z&x8`$rk}#}N;`t$en!WSMdf*(WQW)ywnZfx7DB-A2;TV_)?XHcpb{pb%N8WTG_{0I z{1Cy#`Vu&A#Alj7p2o1$2=TT7d~1c@)0dTnsDtc83z37NLThRc;_CxEBV(6z2()`t zN$*ped8-xuU-@y%1km^2Bo_3g)?3!qLQZUb=^leETXm8D(G!XFLvZWgayF6-E@{Iw z)RWZW#^7r+1F9}Zuu-c_CyAsXr>-jM3;fm+zvcu#ULsNz?IS>_whuM>Fn)wy*{I^c zKNzx$J2Dm@&@34e@+Vzu#Z&|U0>?C#(MBw>sYcM2Yt>};S_eOkqNx=J9onQVW=ZoC z#mei4;O76u%OS|fn|?ZiK*Q*nKC3jVMBiHbAM=IKsU18^K*daVxw z%o03lyj3#-EyQpEfB11RT9?zu1ezK^R9MZ31vu8{>OUbM>x9Egge25-YdK~BH?G3x z4)G%cM2doF+o>g2J(LTORugp$SP%p`zcyN^o;yo)V~Ih<-mX6bl+xjFXh-e)^@&YD zl3FTWlumTfRzO%sP<4?z8|JCw1ZyWfl?eGL@(;<)AFuk$68do6n3*75QlcjvZGoix zN0lBxXG1zmmt>J;j(_tY|Ngw7nayx%uqUMqwah9CfdEzDC;(O6BNs;IbguBsT)0Vh zkMn8P<{D`;rgfG#w`MXTSRSIk#*$f2<3lQ^(4e9dGDR@q>%x;p2z`IciZkAMH9PUJ zvh*B~qIOh-T{vSaZYA(AmP`wuz=@ewIt7mK4NLG>_p)Us&6VN-rCqtHlvJ{#QdV4W zB2_I~xs)UnHZ%rM0K2$L4L7y8>Tx%G>=W5JeOG$k0wrJjVQs-f?}}(v0)Zu%o_dXH z5)_KbW*?-KA;Pg+#Do7PkSL^%fJ(%)HL>bhGc(}|Y6z>Z1@H}-yA+SMDTnN77h0 zqWJTy-^P*}R{pl-(;Sis`VnJGf2m7MxhVK8iBYY83KT6B#t}`h~+RiKU2xbTt zp%}sI3}&`Y)Ps(g9RTiG#*f~{4z2>tB*6u-07iLOHSzSXUGzZ|K8WVDWBz@Q3n=QV}Yu=)X>?gbqg`a${Oe=t^6% znbUMHF*M)^BLRPPGr#r$5Shj+MyC<3jQ8Asut#+D&$lO!+;^@lsP;3y_@0?R(MKL8l4SOs+Hh(Dl_Vhf!(}Va=sLU_vTF zrf95{8ddYcwTV>XtcWN1gS*blzuVd9_1g-fV+fwJ-!?`UCi3{R5h;%6+;|S&H+EvV zLv!f`eMw8^HdSg~wU8r4vo;CSD)G?w`H6$J=t?_6s%zRWHbf%In3-@C3bc9y1jz>5 zPn(S5Lt?<-gV$7d9|JN8)ZM9Bx8_Dk5o`HOhyW42RPmf*6u9DP$lj{>Clkr5k&}AOjFM zCY#d+!R+L@Rl(`!l@zpEy?-Lux#3>=ReWUK=f@ zx}c;@SPUXV8>kBWM8$UOMK4;03j=uH)zyIoLUIWZxzd50S9#wr_{ zX<*G2$kz~uvo~+6uAJ)y+bPBrYV)yzH*tPnH`A087g37wwrFe))+Cz?c?4@l!<$2Y z?_|J9fH-;!pFbpIqDxs9VayUR1vi)yCax420}C20M3h>LKxd}E_0%bgW?^X{-v8O^ zz&wgf$rGYr>aX=}B%O#CkW`(u$l3;%m2}D5)MgJkXa8vjyJBlE2?&$Ar@_3DYa1w1 z+m4&UP*nzv)C7z0f-&;JWE;P!Q zQpt3Zo(PTNPrp#;pqKzySc4CIn(aTP^5=+5jYbM?B}^>C_Ci;5DwT*ecu?9{#|xQ> zsK6#sz5O(}V5S!{XuyJ@foM;WI1tbb$J7()$AFSPcyjBax+%*Jjs7IID@r{ZqLl-F&&z6lOA|fG2Do{UcXJ|#z5c$*K>!qOx#-0tTJvgYGlCF8^#q@)G%A+f{}=c zx&E#_8xdew!5@CII`A+;W`iRr^_g)SO%PJZJS(+bMPo1RUm2{DPnDjvq|F6I{~hOb zXS$8W#6eIk_^J&ijQJ|0jHt6>&Gs=cC|Qhitd|eX@}tCKnim}7G@?^}SWEs>;g7x} zXVB0~D=4nCA85${hE~FqJ!7^*5}zx2o^g@XjZBa~|6FOo3;dg_5~#l6}6Ew(5}GZfJ_() z$&x7zH>6cVW|_ed0&sHcVCU}X{RhP-J}1>EH&8{`w3$IMI##RX47CbIO&Dg$=|oNP z2z%w8;mh_-5i9vVS(>~XZ^atEPw=vx6{(DhRE)UI74Z6WrR8DSe1c8Wdy#9ArRY!cylwnGZ+!p+Bt#YYOD&HqB@h ztRkJtZ+QtC6_HXh#Z?W8{#I39VGqlKwXez}Zt~W;Df&@Vl|1_`gCe2K{i~C_^9&`#t7|1UDEzm|w2m=wZPF)J9!+`QP z+338>x_|Mp>hK|zFQFi)LXuj_sPW*`1JJ-f9oSG=W1T>;+DblV3+?~*6UaGRCZRU7 z^~S`(qz3DWo70@!>ntQo3RMO(Z@9(Zna2N7B3d82cuu{#Z(~ow`z`p19IIpH)rW6$ zF(Ct%xs?EJsc41Is4Q1xq7~@Y(}(xox8d8@F_LjXb>%j44x@XCDu`0=$RCZs$`I?)WX z%s5!2h6KQ2RPy2SXrW*2pC4o$oZH;lxxF);!z<5Ozv}$ytXTr@!UGF~f4TdfrL`p)v!+s>5U8rYN0Xyg<-4HEBc+#(I)JTxW%1x~+<$^S<4m!0Qzig{Nsl5O;q1jHevJ85 z76^E=i)KV#-9Q*)Y;yqoHnqW;f57mf(}W-_C@=+w#^ciYcSkX~I;K42tLrhg|tHxV4oYs+3dA(XVNfWW!8M&Wi3-cHQj{_18xrcjZztq-$}t zCNbk9GX4*0EwQ8-(Z0DPAt8bQEh~ESA+lDHq63tC@jJ`c-8OjhE9QRbxzl+jh~2Wr z4;1*At1(ysQw9FS+3UMDi|-zs{Qj-0m`@PVpnISU$I~fxVIz0KwB~1=g&!~u?35qE zXb>WCIbtq#%hDrUt5svg%-RCyW1DxH1WGRkWjidEWdZ#Lqt}9Qib@CAe9AE z)*u2$g-NeEo(qwi1lO zvT<6{O>RNqr!SrU?2Y^zKUn+FD~mt)8ZetzAA%D7Fer?h1yCkdpmB(*v@=};^(+RaFjK~C;C!hhjID{p&I z?`JOQP|LOT;F>{E2do6ZXK&!2xpw{iFQ=z$?u>@qWwl~&+KXluJUhvXRS4}fJ-ha56ed6ou?|upFJ4IHq?w%RWO=)+R_{pg#vK7dd zqgD{D_gyIz-j=6X1FhDeHf@a}S#BCet4|^dqy5yPNfUP@5@wJ-gZmF-DX_>%PDzoGTnd&V z8zmW`Ii)#)oX`$_>Lxy44&MH(qD$S}K~qPW9)I~ZNv-$16fZnuQfr3ae9?psb)h#Q z!E_~+WP|7H-Cr7W?($U)Kg?^ZaY$U7ca`FohSzQ4KZ=LSKJtoS251V*K-FiMkO%5o zje<>WM$(~XvQ#Yp`0D7^dyZ2q&@H#qwu(?GNrEcFNKB$kQwynd#{|Ja#rHpgLeQck zg{hN~JeSleGExvy5Za-nAXp&Dk>&(*{MLSQ{Hx_}KQr4lLEQ4o8nCJVec@*DnQPYH zc@Z2&sJ@N_?pklzP z14lEEVuYGVIUxn5l3G%{s3aAT9I?QxAXL%}X%6=QWjW@AbaE+Sl1?O3_z{dWBNP@(^1I)y ze*3A}o@s*C+;X8%#y8jB{|b8g_TG&TL8+Gka53E#=kGMOD;cU7@0fd@pReR<+tf&4 z`lid%*P`i&_$B;tBBqHXW21<`nOvp;#FUDv(1qY!&Mp?b*hEa!5S@@pw*9wzjWC|8iD3Ept=}_9Cm?P#u3PmLO zS87F)166UZJcD(fz5fUNZI|MnDbUr!U%Xj-<{NA8eHnSoDZTrS;k!Ru<~aqKv=c=1 zKk>%N3A;8w2=a}M{Q9#B7I^vXM2>S)!@A!GUZk^O(9E+rUPu+^G@evfRiG;9C5oqb z&hrgKFXpN3pNfnOg}C{y;}kO)LsE27ZZXx0Q5Sd!wca0yM0x_Tlp$owPApLlc~K~Q zp`c)gU_r4%vI0qmfFciekanbmQ7vjYkPKB+67mcvl?D1AzL~xK@nmb4Tyq!yi+@;q z-!I~MdnROws(?H(BUGJBm+`b?QVhi6b+n-TrT^lkeG4{wFp(v38A*1R%uL=u+;cfmL~r2&ILqDq~oQO zp+boU4H6SJRNpHPO?lKWd*RAYUAg&9Z(Uqoqj`~&0)@g9q(ev{bs%c(*HN|HwN^wd z1kEweG0P=yWzt+qsvzQl!}zYRj^6ove$iP|W+K$MI~`-R2mx%`Ee8nH?c8~okzo1S z4=j3Utm%rYF~Z&4+Ed+0lvtc=`C>T`9&v}223vAE#dATvemV!o6!p{s0K3=zWt{JCfx1? zsEZRCwJ<@Z!lP0&g)L#?*poxw4-0f%>_9{S#&R3@5n&@AQLV51B--nmGL6dx1Gk`NKmd_yAK6b2-Z|X0H)EOX)sct!>D#I^ z_x1kyn!)M2ItN$r&INwnjIqN6q1VxA8@(FQOqs5Z6f(?J89^p# zwmM`pbL8CfCK31pcdf&SXF22)vK$vGx^PU)O!8iV1%Vrn!EBf9>`_gysjiI#>Xp!* z!_zeOUJY537C~Gojwm_=76yMK@e0+bez4oU$15NRP$EaSv7E0A3RXp3ex%8`EADZ7?G`2Lva z(;Z5XQ^XsO@tK{xL*=fbQ(Y5^lXZEOEgAAW+Jq>16653NCai;ZHxu)+#EE8C7dPq;6ED-3TWR^B>*1 zdgV`Noq})K+UrhaIhEoiK_C(PcIOm$PDF>4Qah`XtefY{CvM9@hz*^x$OsoOVjyx^ ztAJ3K4tSxWbX2xUyjWDyim~B12hnA}i57pNW&rbVo#7<$BRB0rq9T9hcsx~z%ZVv^ zHM^ToyyLFEQhcCul+wU!X;b_4Yktt`nij)%{tn%}d&==?l*EJGJL#{z6#nwde7&O5 z^~)rw1O-lEX_4P^^U9N-N%x#ONvV(!QHqYn^gszea|1uPM2{^jO{@ zImKM=ysQe%H};ByC&U?>!C${CYH4@f5g5_WQ;dxn^%P^Hl&VpL)1-52m22=kyRhFv z4wGxK$z$8rrrpxTVO%ZKB1RulVpq+p#3rY3_x*hogsSWcF$qcOe4&o@gDsv#@tR*Q zFTP}p<`1pZz2FOg9rGz$=^K6yKk-erGLmvBsNBzCaaH`_TdS8m8P3`}r7f05^Sbhi z5ZpD%{^UA5wk&x`DnzElhs$^+;eu8w;-K;l6d)ty^Vd{w`f2g3i;I{bI!T03qvzCQ z#;#byOLHHyr1Rv^U10a(^op;5{k8Sr6r)X(b*5qCcCq+~F1xT16SG`g@1O=JR`}vV zmC2|EMdKAyMKSr77&lqA__Uuq@pCUa#kdf49H_ynZfM(P$g6(}KX*M_8qg7ll{Ngq zwd;?6g1GSfjdEWT6j?5%K9jX^a@}-6*sTY$!}FYoYVTZ`XT)q4!WG12f^wmfq*7I6 z1dlFcizEE&uMMAie%{SOU1S!sHnso{C(*b@!p&(IE=eaay)eFcmMa>tAN|MpX%vfD zvEHNH(y@jDJI^P}^A=Yc!wZ^bO6|dq4-6$z)bv3mXVlm)V%O6k;JJ@m`1Rl1L5SZe zSEp=_&T!MEM=>{zFTR|7@rLU7D!uml{uyTtF1~0s%kUfD9?dUu8SJ1kBK5pyk=c#e zh5~+ktVB+qeeUQrmrvW=tXXBNtM&<);#MKx;dyx1$NPgpacq8Y>b7peM{ZIpic$Dq ziFgw|Us}St#7K;syN*_}+n!~l%mzLjw-amKaNGIh{_j_;vb&q3u9{IDR95@o;Zj%F zWTZVD2_C@)d-#}B0KW}Yo>GssvIFNHsH>4$-&!{ ztEpr_!3fk<8bI;r(JGUn3mM#%OmC!2X+w1s6}iciauP z-a0z#Omg9c^t$iE$38XKy=(dM=g#&k)jJjUSMd^+Ws@oqWt|5#D`!|KcvVlJ(Itvt z+-}purC}3<6UJMWo}MPfP05n|(E3Cpa#y`=(0v(9mORGJb=)*(@a0cd09Z^8PCcVH ze}vz5L)D#tq6?d5$;KJndI27~i=#PUMp8zgDRvq#SXqW5lLjn9l$29gp6XZ!;LMKY z-~8{BTetSKv23r)G<t(kx_-se;cxynTllllX}bq+eO-3RgmiESZTRG8Ng*N{q!U@(vF{4_@po(^ zD&w!dg8rZ^vW!aTsFb0^8-yB22y>?{zwIMa+jjI^)-LX+KOqQk&)xi#o#KTrm=cUH zE-$|3RWtfiz14=dEIS`XCEx! zsn6~JbTr^32;E+0_ixoV!LEyN^^xlM1H{zSP!q_Nb@E760hGIJqEBcVZ_cmxIY<$X} zbKmqvF^&c+Hc(=!1hJkG)f2USg{7HRqQWDWmwdC^XVr?J4toH=nOA0m^|HU9f*B_1 zFJ@+nj0{a`nW)gO%2A(w!Qz`guyNCDCs^DO25&4BIQSrZ{A1PP^5PrbSnS+2dHZc^ zXY9>)?(8*pIFvke+APjZl9j&VQzb2hOqfDWh+Gq2%G*|k(sQe1Ie;V~R)CctOvs7j zawWA&_6V8*XFOgkWMP}$^vqOQMDtAi_>uF6gWF7`qaLuQJ(EHf;~#t3ghMO=wT~#k z{;w&)Dqx?B^PZdC_pNH>Faa%L0*VZFpPnCjNaX4OAemFi_$AL;eC=;-mSSo;&?J8l zR}=8rPqMFEz4n5al+V9vPG`+7zkHf;xc33E);FR~kYBKmQdNQ9B|_wc=`EU377}DK zU@7-!VI_a;p8ji}n`eaFa}fUU(|F;Ywbwqc$16B;f_(UY^3!(?UipHKU}Anb|MO4U zom&8E3t>K}EmjTZ#z@IOLKFNjM>4vU*v-v?_}1)mz&|xiQ4g+$SdL&~gJlwQmcdOf-Px!Vxku6V5=%w{N%;K~R7 zxU*&JG%*{O3BAwqJKkT8Dj90202qVc`_D_~?b`?fI&yzLxkX3?(p}F8Dl-PWpYIH%{Ow+vI~bZ4!h2d`?x2(mA<$t*47Fg05(Z zRU&xtr!X1jyUd1QDM|#%FmQ*YMlbY2WTyD{@BX-2Tj5vzGHltNudTvEKbA)d5`tMF zmk1FevJA39mO@YpQ#1pD~)r_@ju*3lq#B6nEg4s4ESu5mN8OJ@;-7YKqi$AXjnkptj#3`o^_wDN< zU@uodh{#=7R8^yCrO1uK)x}x_U@C{nobZaXQat;K)f->3ogzGVc=Y;ru07{+_PQ7E z0Dy%h{>HZ+K5g^#&KY{qMSS-e*zNH7qvXH=@%z8qf9lhUXFOY;`NZ|8gk4kWT${wk zD$djLVIeeSPPA?N(1>n$(-dunBy8<2x;UaWs)0ZXQLhNHOZ5%eY@t9+9!FeDcJOi& z$(KzGK(|W_eAj1mpjqqQEwqm-vzN*-Hdv{fnSEE({UW1k>ktmw51Uf!on*D0%HvJ< zTB#fcthkgM0INz@`YF2JtZYhF4-nXFeJM6H1rGM~atO}+{AakcA*++((aJMJUb z-%w^5+;MMN4$E8bCTHy}2W#TtACc2`j$ZMqnLL*#kJ$4_p&VkbOMc;(iogC?|BIhl zd+{r#T*yG!9l={vVxZ?;2p9sjm&Jx5){QRp8At26J{&@GxSHZGeTpxf;6L*+F*B15 z26*HVvw6QP9HppB5M{zq*Oe+fB1|=n9LG+B@?fnm?z~?m0GN9BAfx zY!efpwg^)bqymu|C3XtE90r)GN~OeXhF<7J6ebc)gs7O^?}b%x>mB^o+ZS^R!#*P@ z?zo%XdH1pD0xo;ZhBy8CBq5|6;b;GLIFN{uXB1Z!M=$=xiEb}@$;)~leBbI*o<7{M zt7G?Dw>x#V#v8d?TBpZk*QkQ8Ipf1}A|9_NB~*#(6d7s4{Ut`nkMXjE_0@9IOt!Yl z4(uNiz2BCOTbQ+5GEc7;WJ`lE# zK_Ic$v4K$;ZL%963drTQ5IT?qG)H}ik*eI4H33AI0H6ux3Kh`hrPy<7`LoaLbqc)u ze)z&aRUjAvaoU#2$31~>nd`Ai9`|_WW7cU#zWyb;^^~>8U6y4Ttx8_x$g#5x|FG9W`+@o+D%C%P6U_vu*dGBKY96VRf)a3M_2#Tyo?A7=%B=e zWhp1W;{4iwt_DLqarZ`!v8sN6`ge9No1M#?P4u$Yb=<=N3ZG=Iajqyjy9q8if4H^| z_aDg4+_iq%_6gtNi+D?hGeC&xNiiCsFm=SdQvjD|@k&At^lomFD!h}cj6cU*X$P65 zR6a>g)fphAOswdQ4XR4WeZS>iSWH4kR#7C=Q(0A-uDtdQTUJ-Zwb%8JKCKYM|=`&#UjO(M> z8k8WOA#GIR#S24S``T8n4as+I?;bfiI{Wm&h39P4+w?Z~b9MC72Ls4`GoSMUvA#ai z*$f1}VN-`F*W($_&mRaYhI=&#QMG(*59dS!o!0srTtZi=_m(5-jND z;_xHozCC#5<2M*@uSqQvu`}#oKF!YNo44dl`QtJx!p+GAvvV2RYA)9;g0Oj0rZ#<3 z+pp_XGLr+pU|;9Hd)F3Du6A`R zs;cJC<0oKdhB7YHq6!nvsLGK()3BKqcB%aI>Sj-D8j%hWL^lG-^RK%XAy}4!PG`b- zPv86+Us~cn@m!pqrmVsfi>y%{1$wE!Hf5p~IlZnN`CLz*a|C&Yum0KM<6kOgHk22i zof|ulivQ|GZ};8HMkfwdjGZYodQgEm;;b7)pXU2k^%~=8WNq6N9O# z$;Bmh+a2miWPQ-C%$mpukU7#-E%XAtMpl=>2>zrqderu{lfz4XD*NPD%jt>H-d(w^ z-2s2J2Bb)0ROToFFU09eakS$ubPT0&>bWuf8aGl!yK01!9sb_m+Wf$emzP&6X?Ijq zS8&0YEK^)Qgty$ZzVED_+QI;ya@mIUzWDN2ANlzg?qpo5!Ta}*9(Zv6b-%L5R|CVr zx>*?zZB3dIrVvRQlo;J70z;L|jX7#5t1udkMtNSSZ~61D5=)Dt(@vX^B?5Ew$}1+! zQhN^t8WXJbAJ%6Up;2yik~gm%XHvlSkqH!J5*x z+SU5#Jd~%wVIl$M>%6+QzIk73wQtj;nd`D_ zkjk>Aet$L3XZ5#Rx8_^6=6<}_*1CiBzUxhI+?fo{XF#a8pwg2&p?4&&=e$||3}z|2 z-Z|R~=j%;Qj1<{`W)rmv7XdY@T2>DbUErglP3rUtu0k-3sS_QEpp@*{hfjY__tT$S zxa_j23(lR88zfK}nHmi7rrTG){>>xLd2aEfOShZns4BU^`noDMCqAz?V-#UH*RT1l z^I=hn3j*7S1TTjh1H=lu69_L0Uat0qz+smflDs!Zrw?~ zboIhl{_(`_J-rPZv*X9h{RdWd>?~jVy18@DnKcV~m3HBrm*p^*xoZ;ZLvIr5N+%bb z2rN|AoK45c(cS<}4e4x{CK#o3b#-xOW=nk{VACS{uVhro5z2~|jcM3*&;D{4H%MQ( zVZ%eUn8Iav!7cz$C(CJws!PW8aaY0wGu88`*+-fSeNn=6>5t3Z(m7MUFy**wSMeWS zzxB|=>qn1_R#w*Mwut9EZ{wabHfC~VJF0!>%+ih3m1SaMeyKu(1)P6(cg+~E%vOV$T4Vo($Jpkg5 z%J8M_f=vcAGQLD76^&fF0(}ctwQt9{AQtk;bLUhPPH^dX6Cw{sAe81gKWp#QnR`LO zcadjQu7Al%t~Mml5Ogr?vudQRmnUK17ZnEnt`}-==)-Wik(cXCtSM{032Bz+d4I54 z6y1y#cJYw#$Yq^*2S8jMo^7^S(QlxLunt&rvp%q!smGNnb&SiIr}}w1HCj9A?qpP> zhB&%9dRYZzCq^Gb5Bj`6c|L^-O43YlPTavly7p4;Lm(#v%t}#SuCFW=MXsskOPKJx zRWn=zItG)|*hRo`s55}=8tZ+- zr5H6i{Q z3d`%-N-7>BcJEDni1*6!0;NU?Iq~x8lrkB$R5?1ii;WeS0nLN!4j;Nt`doWWFjY*! zg%~X^9al87>qkVBiEKJvZOZJ5A){g%?{=4}MXNI{;~8OfqHL$$yy3!x;jKD&0=5PU#|7{?Atta$F zmFtb-p8$FoY0YHS&1f`SSUfVbX^V|}c^-yMEgP9b?j)~4Qx87YnNq(89_Y8CP#-%* zge^5zDM~Lt?&R8TVC(2>R&b%+E7e#y?ka=y$rIk8g?4U;i;mp!kKITHu+a;MW=8T%^umf zVYb_ytgVF8LZ;Ht+s?y-6Ly<)&mZxl&Q0Rg-+JXDvPGSEHK)EYlz=1wAp=J_8zYax69@-4?ad9{s-wWt zxs(!SfJ|9di%av}L4U)BS%Nfh%bb?ehblIgVVfFR8+Wk+;n6AF8l;|nhx_Wm=y?|I zgmmwRjgf%Ejdf>;%i($cyLJ3kZ|xcjF8J#5Qh%_XXPGuznUyaO8-mZ}NeTsDg(@+S zM_&w+MlaB<`i+Wu7#}msvPLYw8Xi0T@Z`jX$%ze(ys|${ppRM>z7Y^!F+j|jjad%c zYkVh+*jSO}=yX@|hfZppI10Cwg{5dbg8usI>dG7 zD?|)vHXf4Lk|Uv`i%w749#@pgaP{ii((=kek@q^CUf${Cw6MEN8PM)6%N71qx=3Td zCH~-Bs3;oYWbgxEK6J6gkv=(`qZn0-mE~wO8jc42;bfbx?fM#vdY^O;M0hjcjlT{V8~k9)M{K0h6-yfa(@53Z3DtlbKRc~)q+&+- zVyZ4fEx@5!k$Whxi3THTCF%_0YMPki0%=PuH)`^N!LUh{8k5ZrHgdHp!Nsl=&4>z! zFwQCGrbdqorb=EKr_79vK>ALhv!*pmsowGi0&N`76*g_)T5xDg#ruc~S`4lysf-#Srn)CwfY{?%j+Cu)o&r99{cY5j=} z56elJG}mY-h*2&r(G52kMNInols=Yu4sAH&W; z%fWL`N-%&r%^k;ZjdK!dod{MqgWZrn|NdBQ){b)^1o6a;8F0)ONtv)3wXv4Mx_Tl2 zLXYCrvSm@*-7Rq0Yt8o$czrMh0HlhUqMzHMh_TE!#>B?$$Fp6Rxg~kfztw*q2vE!j zzKVD>nI2bxV}T+zzY-qEZtbUMFdz^hPs2a}nru@6v!ZP+TD|Boir2V{zJm`$+ZZ~K z{;{YHk}{A!QZb;a1((84`X&9afOuo9l-1z=6NBGE>Y^cPi}KW4zlc~%$K7Z#{>~r? z=ZZNc>^IO>%^uv~-p7xNDbz*?->C@C4@)Xg`@Uf*l1XkKP_+%llc#Xx!9A%Hh7%(0 z=#@9!yX)Fkk7X9~_LQ$rJD> z{DhhqPE93Wj`355x~5Z12|L)9-JyhN)(R$OGa?)K(mzJvk|5rn=Om-+_t{C?jU5GF zStnt4{FtZ(2msX>mEs8OlPxI?!8qL+PrkeAPtX{%9RsT|6CKZZY*SO_^CVA9;`_#e zKEK~V7o&L;7M`ZrA!sUzm)cEH!in}t6+f%R6H4|d{7I680d>b?xxjf!5~dAZx3wAb zv4Qntgq|A-sEqldP(S=_n0|iMX z6#p<*Gw~}XZIY|9CJs#Cc%M|xt|ohy>_L-|5N{un{CS&NPV#KzC&bd+!2QVv-AJ1u zrCOu-wJq_~$GFtz(Kc@+{&|uY8=4Tx02q~(kg-a`P!xv0Xu&E<1v@x6Wa!|aQbdYt+o1>!Au3p%k~ED%nqHEK zcGu0p)lFP{0nx`$5FErOa1udhPZCP9IC$W{=i}$_bM67{-BQXg)nO3Cq1kEa``rV5 z>Vq;B=4qf=PNbTKv5nNY7fOSl*W`tl)g+7m)pXB|9O<8;nxn#4BCEp2X{-|N30Ff| zO86{cFXPLE?Tl~InO(Cjd@sCg7uYNCz&~;Fy_t1`y&dUg(Gn3R9a?|PY@{=7hA2ja z9OH3Bj80P=g^w$|MS#N^E5hs4MUCX1SzLan+#BA)<~K}U<(_>Fj~B4`mU}h%W91wk zo|F|@sZ|n9^!xC22XkFmc!rt7@nL@f6QD}yxCm-T000)6Nkl=KpFuckbbQbR}rZiw=B96Pa1@GIG{-d(TPd-vWubIw&Ji0H<+d;ekZ`nVU~k^S5Rm8b6oYNmT8dAb_pr40S_83{2pI1()os0^hg7HJP-~4< z3Dh#e=Ty~=d3IFNxcr8#VhaV4&KPPh$D~?s6l~fjyZUz(eXjc|6i&btpOe099gqBJ zg|`W}Cp)zGYe`+*ZC2NF1AKZsA=GGW@D}1|bx#qh#MFo+V5JCjBTzqod^Mm|NUClW z%cO<_0_piS63ph@sTGE`-(X|oVznq+|7sYZPOrvU0R&oVr_#DMw2bH(XS!uFLK~?K zB>p@iprOo8@+~Krh={b-J}Rivxe7CUe;z!nzGzoxj5&{5%T0fJKZ*$d8@JV30AcTS zegObuObAi2w=g7BiLYIv7OePBwAM-~yDnp_y5}+nM|6(7>u@^sUkmtZMW?mqocqi8 z>(%af9F!Xe1KpSY2TL0fWm!g~8RJ7fhH|SeExi5JdkD81r4$iKDXU)vj&2nJ2IQ?m zYBf;j{+3B8(=^pO6GB)J?eDzm{EfQ$zI2S*7>AMbkD@5@hq)*)PDRUVQa}H=%V%6b zLli}W!63`B++GT|Fb+i*A*6zROEFDrBSWoq9LJR@YE-n0MeEHhz<{f}ac@89G*e31 z@An;@PPYTL7T9$a#@mlt>nzJGg>`}3-Bc7NgbAxzY!$eBOO$4IgQF~)>IgLK7_kn&Wu~EY8ODH7U(#bhj zN}0%#BiM1^S=8>;T~>@qlGGxvx{Fq3;q(J^{v;_tMU-kf{|kD}Zwn7Lx_x+0fGj;4 za8A>Vf-XUXu#LkM3rTe|NGZGB?og67m*u9YKJ^9bi?Qx~C@CS({Bv;pyIN_Z#tKLQ zX~M-B=yz4z5Fq#mKrSQlyJv*Q!0^p$02oe!K)PX$`tLxeu##k;)R%_Vys&PEN zxU|-e!T`ILgo#EFvrohG-`0k83^b5N&^f7^Anj4yEb-APtp<4NBHTMiCsRNHOc)A5 zn>mpgm3_FU_e9(YGr-S`F|GA5T9h!l+pzFVqKHVo?J1>P*r;-0v}vIEqwwrEbk2Mr z^A9!Tq!K735m$1KoG(A?!dG6R<14vJ2}3cd!ebfU5)wiLV=qMHoTq78b>lueM4)x$ z0?$a2fzk(*uRP|Z*&h7O)B5-_@EDmQZKgIaqjkC5`BvD7>iUGQqDn#7b1uyvBgO@Tvf&k| zq6+^3;PgS7Jz>67g^C(F&CPJvlbhXm!|cOz^!Z0=$tWUeMU;Wr0u=L;Wt?>?q(3x` zlA*t6A8eKF%R-Y9(kMd6>N!X5_C`3k%7|LMq>dO@K|r$F7sW(fus6MkLXMy2+)~vD`18ZY19JHQkXBV z3En%I-La6Go0%HKf1f>O1v;&q11%dMkYaWp(j>4gK7soX0fq&OQNcl`l73QQd?xCl1{NLeOkwbgeliSGS*v=N<(kTfIhrQ z-MKNUx&U8T0ZjEw)Ph*;Z&lRdtcv-Oo7^|xV-Ju4H@SA@VuaNAe@w}k7-Jxk?8~p#O$_9|NF^1u0_8f3;?bCPn!G_M%88_ZCI9GH&P zpT8P*t|>f?S05dl6$EEKK^b*~cs!PrY;yP<%9D=V?8!$-X=i?r5e)z`#MJoM9B^sa zb}jtX->Ic}Pzfn!g=PUmE=dNOkugyQ+b7dcUoS3gmf%~h7p>;Ro`kVHaHy_T8itgV z>OGZA7f(H@Z7?)IoG{A)fTcMX5kQnac9@@ffwCADdn;W^GYPuEL`NnQqB$whDlWhc z>js~^Icf+t+$PqN}VJerS$Sq(3Ha(OQ+5;fN>pG zSCLKVuY7H8c4hH=x}t@EMCw>jLsBAiL$Z$OtdBQrjNZFLefauBGIUD?9$|!ai)e2i z`Pi$^{7Po2r0eMx@u&3gA1=}V~$Wuf*8 zkM71*U&`fUoIjmIAuN2qAuLbmI3jQ8#xxu{GrO?Z#VA51067BVOc3M5I519vF)qZj zGva*zM7#06znp#h8>as3J)NnRV=9dV01VC=$c?$4<;%T+SqqiATf?k;H@%AaFp=NU&qGte1&)Lo^fK zig-(krkEYDk9;fr)E(m1t$aiw(Lesr;I2Jz^_DniJ`bR*M=<1h(h%%>Y!Y5FRq|jI z&gCdI_nEOZlK|#<2cd*y9WZHxnQHjyp;sc702joiNfuFP-~{FdNMvUg{Urb2AHBuo@YODPRI^pg(+aq2B|+B^V0LKjb`@r_oY1w=5OotrqV@ye&jW z@D}H7lx-9(CL1Us{MWHqxggWtbxH@d$Qm8^>|z%XO*L5QHx7U zRi=Vo7=dU2E|E#H6Yx%+Rpf7JgeQ(HNFD5^UxTbETA?Zop@8lNkqYz5um9LF@ebUUXy;}W0L^z(cf!!rUpNJ zjOmzI6L|}ufvf>DCkC4?kIx?JPp>tV%Z-z4^Lp{n%XHUP6dcx0nE6`?x-ecf%UT3l zYE}v;tvDWsG>UX&Vgm>PTI8t_6i?@uvsY$P$z)!+mqtrD17usbWp{tJ6Um|=_JMat zYcEL;JjpNth>cWd7jzO)CrYomEomhfOXx^F(O?mWV~c81vYi{WCNxoWjM)WUArAT# z>RLU733+1WjyAb3idj=zQA9ceK&FZ1+RosG7kd&Tj*Ow;$juQVV{6uCe{pxC)$)32 z2;R0|PE4u?kAN09zf8S_?(6oql7_(!u_Q{f`wsDy)aVA&AW|jrvdWWfoPJ|=)#g!M zD?D2VM*?^OlYH!2@=nft0Y*ki1r{OM!nNCA?riRon2{$i`1z@UL?M_EJU^#Jo+Ros zpOc$6#}zGt+xPL#gueetn)%uCZLe!ReN-_Cn=ggkSMmpr!qroQTdv?m-l>S^9^t?f z^q&vwKY4e<&oyenkJncQVPiz?<;?NI93)L0H;N4Pve&T1Z=1y#HzB&GXknfrE+Woz zDw&Y<2cN>7yBZ;<5sp4jtrn;y=+AWDephp;M~^+DnSkC3-S8?t=<4lT*scxIZq$Th zGBu&grqY+s=^9-d5>^e8V-I{>R4oP#b>i`dvyEHTmdoYYlUaL`O>JTmo2Wa7IVQ!~ zb4oH1p@_MV47t$n|5J6tt?i+*kCfyWv-FdntejimH{6tc_V+t8OZ4MoDoIcXXvL6l z(0%Ilpf><}ieRb+c_DCRiF8kwp({F_b#A8IPGasw73}%hss#g9nET%u7_~HpT@cor2Vb|==ZoA3g@r@I(XA4fX z86dSHY6+koefa>~`{My+S}4FiNexV~ix<_t-IZo6^bfuKSPqWz@W5w`x{@sb`+gaK zk`C^^6Hh!$=`wD-luvfJ9`N;B2EY4hv1?Boim)Fn&_{U2%yjwjE;J>Ss8 z;Kpn9nrXJKi5WpB#)O+1(H+-hx9^Saz9;+0TX69LyZ8S72j7+a@E{Eaqa2K^7aX6F zI5Vt`li(l0yDGs0_v($?)Rrswi^r6ZIW&o}(Zp^0ab=cz7wBVm^PW<_c1tsEa6iX) z`f<~5M2L~KnbT+Ky9YFJT0f<(n~o+EQ;+UM&=9Crbaz>tTaf*WgYy@nxj7j0V17Yf zSX5Fdx1UiUFKMqYMj8QhpSIz5KKdzc_S~Z5CTld=tM{6wA;MuTQA5k<9c?km)Tni? z%sT@Yo_t&%KW;?&hBtu}Y_f$)pb(lNbPTqEOIon|<^%^Lw_%AOEBF>66*xKkXu9*T1H5ER9VJ>woSf2DU5knU<{l0)%3XDTkRE!0uG~sQ33}C90%$d0 z$`FYRO<}=El0%M{Aj##)5wrr`SMPYexbybOKm6>uGpBmjy=6i$o~3GjK`k!OzUyfB zZt>8;r5(GZ$$Rnxf4^aSSZ6G&t3#xdpjBu7PeZ zrwxY(K~|&)i2%ufqi(lZGhtqt*z90&QFDP?F5{YDVZrF{#!bdi^;76C(8jf<=&CiH zTcB%p#oxSl;ou|YG#~Wf#EIVCy>iV2rm3Euiu--N+@-hyTAOWTX(|Qx&dbB9WKEnb zr_L-ttj@A53tgd#@|RzI{6%^2+*E=S#`Lz-^ltdJ)q8 zZ=%CG9V=d|;(_LvNt9`Eqb#HKYuj0-?S1bm{ooIlkH5&bZjCN>@oV3ix#{M{y0s?e z^!qC!2g=TNtk(D#uCU2kfbLqJY(r2kOj*1?;?>9^i>h;xju~3rcXmluAn4(n`7rkq z4I!9O3x-;g6hTMuzc}+B!v)S*b)~W@`a~bRR&mst-3~0q?B5^INxbco3kh< zyrH`;RnXi#PM19q7KB*TnJ2JCM;#V#*hVEVl~-WeRHL=9v4Gk4jXOj`A!isxk?SxH z4lu_a!um(>j$o^?N~smKvbZ!m*;$vT$-_O9%Qy34&k(Fz97a2= zT&i8z1jEd18_d z34*HRs8s3q)c5=SrKNe!MYA~}MdIiqcVJR%)-_)_8vNz4(DPAIWvCfWmAotw00x8p zO7~)x4w59c6k2NxYOuA}|I-TUG{N%BN>vCk7z{2fog+daB4H{4%-Bk`vNVp%IBZP9 zk=|C{%72!jGII?uZ~SbxTQa|#Df$OHt2NrYLThj^=)~=sF751=&Nz;V65hO0#n*C-iJ3;zhKrU$+JQ=w8kP>{pVqC#JD<+QPJ4V}duUdXOr;$yAgPAJF+E_+%lN{#f}Wm$yx?Onf2lpY+^SY)vd6sOT16|X?FXyQ zGg`X#m&3KvtLV1h`0d5XRkYb{bewk%_E#YW%8UzI;Ywbu+!h{A?r&h6FsnxAuCOFo z`Pq5MNN-quAJ{5>sH`aza4P7#u4W6twTf>GdbvYb=K~!-zpf6eQZ=r%VwE4ucpZS@ zri0b16~`dg_bCr0S@n>9n5uf(YL}_MMy-YWfxFrmce7sji^{Xl?{|`*0 V`pF=YtMUK<002ovPDHLkV1lyN-!T9H literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/kifi-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4610dad9cf1a67eb06f7755784fe14778320dfbd GIT binary patch literal 19596 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

-B>Y(g-3Fy0JP|0tiE3 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 literal 0 HcmV?d00001 diff --git a/kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/kifi-app/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/kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/kifi-app/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/kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/kifi-app/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/kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/kifi-app/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/kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/kifi-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/kifi-app/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/kifi-app/ios/Runner/Base.lproj/LaunchScreen.storyboard b/kifi-app/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/kifi-app/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kifi-app/ios/Runner/Base.lproj/Main.storyboard b/kifi-app/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/kifi-app/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kifi-app/ios/Runner/Info.plist b/kifi-app/ios/Runner/Info.plist new file mode 100644 index 0000000..f2a5fe0 --- /dev/null +++ b/kifi-app/ios/Runner/Info.plist @@ -0,0 +1,55 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Kifi App + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + kifi_app + 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 + + NSCameraUsageDescription + Used to scan receipts for auto-filling transaction details. + NSPhotoLibraryUsageDescription + Used to select receipts for auto-filling transaction details. + NSFaceIDUsageDescription + Authenticate to access your personal finance data securely. + UIApplicationSupportsIndirectInputEvents + + + diff --git a/kifi-app/ios/Runner/Runner-Bridging-Header.h b/kifi-app/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/kifi-app/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/kifi-app/ios/RunnerTests/RunnerTests.swift b/kifi-app/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/kifi-app/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/kifi-app/lib/core/network/dio_client.dart b/kifi-app/lib/core/network/dio_client.dart new file mode 100644 index 0000000..26e5989 --- /dev/null +++ b/kifi-app/lib/core/network/dio_client.dart @@ -0,0 +1,73 @@ +import 'package:flutter/material.dart'; +import 'package:dio/dio.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import '../../main.dart'; +import '../../features/auth/presentation/auth_screen.dart'; + +class DioClient { + static final DioClient _instance = DioClient._internal(); + final Dio dio; + final FlutterSecureStorage storage; + + factory DioClient() { + return _instance; + } + + DioClient._internal() + : dio = Dio(BaseOptions( + baseUrl: 'https://app.technobeesolutions.in/api/kifi', + connectTimeout: const Duration(seconds: 10), + receiveTimeout: const Duration(seconds: 10), + )), + storage = const FlutterSecureStorage() { + dio.interceptors.add(InterceptorsWrapper( + onRequest: (options, handler) async { + final token = await storage.read(key: 'jwt_token'); + if (token != null) { + options.headers['Authorization'] = 'Bearer $token'; + } + return handler.next(options); + }, + onError: (DioException error, handler) async { + if (error.response?.statusCode == 401) { + // Token is invalid or expired + await storage.delete(key: 'jwt_token'); + if (navigatorKey.currentContext != null) { + Navigator.of(navigatorKey.currentContext!).pushAndRemoveUntil( + MaterialPageRoute(builder: (_) => const AuthScreen()), + (route) => false, + ); + } + } + + String cleanMessage = "An unexpected error occurred."; + if (error.type == DioExceptionType.connectionTimeout || error.type == DioExceptionType.sendTimeout || error.type == DioExceptionType.receiveTimeout) { + cleanMessage = "Network error: Unable to connect to server. Please check your internet connection."; + } else if (error.response?.statusCode == 500) { + cleanMessage = "Server error. Please try again later."; + } else if (error.response?.data != null && error.response!.data is Map && error.response!.data['message'] != null) { + cleanMessage = error.response!.data['message']; + } else if (error.type == DioExceptionType.connectionError) { + cleanMessage = "Network error: Unable to connect to server."; + } + + return handler.reject( + DioException( + requestOptions: error.requestOptions, + error: CleanException(cleanMessage), + type: error.type, + response: error.response, + ) + ); + }, + )); + } +} + +class CleanException implements Exception { + final String message; + CleanException(this.message); + + @override + String toString() => message; +} diff --git a/kifi-app/lib/core/security/crypto_service.dart b/kifi-app/lib/core/security/crypto_service.dart new file mode 100644 index 0000000..b5e7391 --- /dev/null +++ b/kifi-app/lib/core/security/crypto_service.dart @@ -0,0 +1,38 @@ +import 'package:encrypt/encrypt.dart'; +import 'package:pointycastle/asymmetric/api.dart'; +import 'package:dio/dio.dart'; +import '../network/dio_client.dart'; + +class CryptoService { + static final CryptoService _instance = CryptoService._internal(); + factory CryptoService() => _instance; + CryptoService._internal(); + + RSAPublicKey? _publicKey; + + Future fetchPublicKey() async { + try { + final dio = Dio(BaseOptions( + baseUrl: DioClient().dio.options.baseUrl, + connectTimeout: const Duration(seconds: 10), + receiveTimeout: const Duration(seconds: 10), + )); + final response = await dio.get('/auth/public-key'); + final publicKeyBase64 = response.data['publicKey'] as String; + _publicKey = RSAKeyParser().parse('-----BEGIN PUBLIC KEY-----\n$publicKeyBase64\n-----END PUBLIC KEY-----') as RSAPublicKey; + } catch (e) { + throw Exception('Failed to fetch public key: $e'); + } + } + + String encrypt(String plainText) { + if (_publicKey == null) { + throw Exception('Public key not initialized. Call fetchPublicKey() first.'); + } + final encrypter = Encrypter(RSA(publicKey: _publicKey)); + final encrypted = encrypter.encrypt(plainText); + return encrypted.base64; + } + + bool get isInitialized => _publicKey != null; +} diff --git a/kifi-app/lib/core/services/notification_service.dart b/kifi-app/lib/core/services/notification_service.dart new file mode 100644 index 0000000..363f55c --- /dev/null +++ b/kifi-app/lib/core/services/notification_service.dart @@ -0,0 +1,76 @@ +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:timezone/data/latest_all.dart' as tz; +import 'package:timezone/timezone.dart' as tz; +import 'package:flutter/foundation.dart'; + +class NotificationService { + static final NotificationService _instance = NotificationService._internal(); + factory NotificationService() => _instance; + NotificationService._internal(); + + final FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); + bool _initialized = false; + + Future initialize() async { + if (_initialized) return; + + tz.initializeTimeZones(); + + const AndroidInitializationSettings initializationSettingsAndroid = + AndroidInitializationSettings('@mipmap/ic_launcher'); + + final DarwinInitializationSettings initializationSettingsDarwin = + DarwinInitializationSettings( + requestAlertPermission: true, + requestBadgePermission: true, + requestSoundPermission: true, + ); + + final InitializationSettings initializationSettings = InitializationSettings( + android: initializationSettingsAndroid, + iOS: initializationSettingsDarwin, + ); + + await _flutterLocalNotificationsPlugin.initialize(settings: initializationSettings); + _initialized = true; + } + + Future scheduleNotification({ + required int id, + required String title, + required String body, + required DateTime scheduledDate, + }) async { + if (!_initialized) await initialize(); + + try { + await _flutterLocalNotificationsPlugin.zonedSchedule( + id: id, + title: title, + body: body, + scheduledDate: tz.TZDateTime.from(scheduledDate, tz.local), + notificationDetails: const NotificationDetails( + android: AndroidNotificationDetails( + 'payables_alerts_channel', + 'Payables Alerts', + channelDescription: 'Notifications for upcoming payable due dates', + importance: Importance.max, + priority: Priority.high, + ), + iOS: DarwinNotificationDetails( + presentAlert: true, + presentBadge: true, + presentSound: true, + ), + ), + androidScheduleMode: AndroidScheduleMode.exactAllowWhileIdle, + ); + } catch (e) { + debugPrint('Error scheduling notification: $e'); + } + } + + Future cancelNotification(int id) async { + await _flutterLocalNotificationsPlugin.cancel(id: id); + } +} diff --git a/kifi-app/lib/core/services/ocr_service.dart b/kifi-app/lib/core/services/ocr_service.dart new file mode 100644 index 0000000..a449acd --- /dev/null +++ b/kifi-app/lib/core/services/ocr_service.dart @@ -0,0 +1,60 @@ +import 'dart:io'; +import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart'; +import 'package:image_picker/image_picker.dart'; + +class OcrResult { + final double? amount; + final String? rawText; + + OcrResult({this.amount, this.rawText}); +} + +class OcrService { + final ImagePicker _picker = ImagePicker(); + + Future scanReceiptFromCamera() async { + final XFile? image = await _picker.pickImage(source: ImageSource.camera); + if (image == null) return null; + return await _processImage(File(image.path)); + } + + Future scanReceiptFromGallery() async { + final XFile? image = await _picker.pickImage(source: ImageSource.gallery); + if (image == null) return null; + return await _processImage(File(image.path)); + } + + Future _processImage(File file) async { + final inputImage = InputImage.fromFile(file); + final textRecognizer = TextRecognizer(script: TextRecognitionScript.latin); + + try { + final RecognizedText recognizedText = await textRecognizer.processImage(inputImage); + String text = recognizedText.text; + + // Simple regex to find a monetary amount (e.g., $145.50 or 145.50) + final RegExp amountRegex = RegExp(r'\$?\d+\.\d{2}'); + final Iterable matches = amountRegex.allMatches(text); + + double? maxAmount; + for (final Match m in matches) { + final matchText = m.group(0)?.replaceAll('\$', ''); + if (matchText != null) { + final amount = double.tryParse(matchText); + if (amount != null) { + if (maxAmount == null || amount > maxAmount) { + maxAmount = amount; // Usually the total is the largest amount + } + } + } + } + + return OcrResult( + amount: maxAmount, + rawText: text, + ); + } finally { + textRecognizer.close(); + } + } +} diff --git a/kifi-app/lib/core/theme/app_theme.dart b/kifi-app/lib/core/theme/app_theme.dart new file mode 100644 index 0000000..e94b6d5 --- /dev/null +++ b/kifi-app/lib/core/theme/app_theme.dart @@ -0,0 +1,118 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +class AppTheme { + static const Color primaryColor = Color(0xFF6C63FF); + static const Color secondaryColor = Color(0xFFFF6584); + static const Color backgroundColor = Color(0xFFF7F9FC); + static const Color surfaceColor = Colors.white; + static const Color textPrimaryColor = Color(0xFF2D3142); + static const Color textSecondaryColor = Color(0xFF9094A6); + + static ThemeData get lightTheme { + return ThemeData( + useMaterial3: true, + colorScheme: const ColorScheme.light( + primary: primaryColor, + secondary: secondaryColor, + surface: surfaceColor, + onSurface: textPrimaryColor, + ), + scaffoldBackgroundColor: backgroundColor, + textTheme: GoogleFonts.outfitTextTheme().copyWith( + displayLarge: GoogleFonts.outfit(color: textPrimaryColor, fontWeight: FontWeight.bold, fontSize: 32), + bodyLarge: GoogleFonts.outfit(color: textPrimaryColor, fontSize: 16), + bodyMedium: GoogleFonts.outfit(color: textSecondaryColor, fontSize: 14), + ), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + backgroundColor: primaryColor, + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + ), + inputDecorationTheme: InputDecorationTheme( + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: primaryColor, width: 2), + ), + hintStyle: const TextStyle(color: textSecondaryColor), + ), + cardTheme: CardThemeData( + color: surfaceColor, + elevation: 2, + shadowColor: Colors.black.withValues(alpha: 0.05), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24)), + ), + ); + } + + static ThemeData get darkTheme { + const Color darkBackground = Color(0xFF121212); + const Color darkSurface = Color(0xFF1E1E1E); + const Color darkTextPrimary = Color(0xFFE0E0E0); + const Color darkTextSecondary = Color(0xFFA0A0A0); + + return ThemeData( + useMaterial3: true, + colorScheme: const ColorScheme.dark( + primary: primaryColor, + secondary: secondaryColor, + surface: darkSurface, + onSurface: darkTextPrimary, + ), + scaffoldBackgroundColor: darkBackground, + textTheme: GoogleFonts.outfitTextTheme().copyWith( + displayLarge: GoogleFonts.outfit(color: darkTextPrimary, fontWeight: FontWeight.bold, fontSize: 32), + bodyLarge: GoogleFonts.outfit(color: darkTextPrimary, fontSize: 16), + bodyMedium: GoogleFonts.outfit(color: darkTextSecondary, fontSize: 14), + ), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + backgroundColor: primaryColor, + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + ), + inputDecorationTheme: InputDecorationTheme( + filled: true, + fillColor: darkSurface, + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: primaryColor, width: 2), + ), + hintStyle: const TextStyle(color: darkTextSecondary), + ), + cardTheme: CardThemeData( + color: darkSurface, + elevation: 2, + shadowColor: Colors.black.withValues(alpha: 0.2), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24)), + ), + ); + } +} diff --git a/kifi-app/lib/core/theme/nature_colors.dart b/kifi-app/lib/core/theme/nature_colors.dart new file mode 100644 index 0000000..bcbeb6c --- /dev/null +++ b/kifi-app/lib/core/theme/nature_colors.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; + +class NatureColors { + static Color getColor(String nature) { + switch (nature) { + case 'INCOME': + return Colors.green.shade700; + case 'RECEIVABLES': + case 'LENDING': + return Colors.lightGreen; + case 'EXPENSE': + return Colors.red; + case 'PAYABLES': + case 'LOAN': + return Colors.orange; + case 'INVESTMENTS': + case 'INVESTMENT': + return Colors.blue; + case 'SAVINGS': + return Colors.teal; + case 'CASH': + case 'BALANCE': + return Colors.blueGrey; + case 'TRANSFER': + return Colors.blueGrey; + default: + return Colors.grey; + } + } + + static List getPalette(String nature) { + switch (nature) { + case 'INCOME': + return [Colors.green.shade900, Colors.green.shade700, Colors.green.shade500, Colors.green.shade300, Colors.greenAccent.shade700, Colors.teal.shade400, Colors.lightGreen.shade400]; + case 'RECEIVABLES': + case 'LENDING': + return [Colors.lightGreen.shade900, Colors.lightGreen.shade700, Colors.lightGreen, Colors.lime.shade600, Colors.lightGreenAccent.shade700, Colors.green.shade400]; + case 'EXPENSE': + return [Colors.red.shade900, Colors.red.shade700, Colors.red, Colors.deepOrange.shade400, Colors.pink.shade400, Colors.redAccent.shade700, Colors.orange.shade800]; + case 'PAYABLES': + case 'LOAN': + return [Colors.orange.shade900, Colors.orange.shade700, Colors.orange, Colors.deepOrange.shade600, Colors.amber.shade700, Colors.orangeAccent.shade700, Colors.brown.shade400]; + case 'INVESTMENTS': + case 'INVESTMENT': + return [Colors.blue.shade900, Colors.blue.shade700, Colors.blue, Colors.lightBlue.shade600, Colors.cyan.shade600, Colors.blueAccent.shade700, Colors.indigo.shade400]; + default: + return [Colors.blueGrey.shade800, Colors.blueGrey.shade600, Colors.blueGrey, Colors.grey.shade600, Colors.grey.shade400, Colors.black54]; + } + } +} diff --git a/kifi-app/lib/core/theme/theme_provider.dart b/kifi-app/lib/core/theme/theme_provider.dart new file mode 100644 index 0000000..6fc0168 --- /dev/null +++ b/kifi-app/lib/core/theme/theme_provider.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class ThemeNotifier extends Notifier { + static const _themePrefKey = 'theme_pref'; + + @override + ThemeMode build() { + _loadTheme(); + return ThemeMode.system; + } + + Future _loadTheme() async { + final prefs = await SharedPreferences.getInstance(); + final themeString = prefs.getString(_themePrefKey); + if (themeString != null) { + if (themeString == 'light') { + state = ThemeMode.light; + } else if (themeString == 'dark') { + state = ThemeMode.dark; + } + } + } + + Future setTheme(ThemeMode mode) async { + state = mode; + final prefs = await SharedPreferences.getInstance(); + if (mode == ThemeMode.light) { + await prefs.setString(_themePrefKey, 'light'); + } else if (mode == ThemeMode.dark) { + await prefs.setString(_themePrefKey, 'dark'); + } else { + await prefs.setString(_themePrefKey, 'system'); + } + } +} + +final themeProvider = NotifierProvider(() { + return ThemeNotifier(); +}); diff --git a/kifi-app/lib/core/utils/snackbar_service.dart b/kifi-app/lib/core/utils/snackbar_service.dart new file mode 100644 index 0000000..359ecb9 --- /dev/null +++ b/kifi-app/lib/core/utils/snackbar_service.dart @@ -0,0 +1,59 @@ +import 'package:flutter/material.dart'; +import 'package:lucide_icons/lucide_icons.dart'; + +class SnackBarService { + static void showSuccess(BuildContext context, String message) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Row( + children: [ + const Icon(LucideIcons.checkCircle, color: Colors.white), + const SizedBox(width: 12), + Expanded(child: Text(message)), + ], + ), + backgroundColor: Colors.green.shade600, + behavior: SnackBarBehavior.floating, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + margin: const EdgeInsets.all(16), + ), + ); + } + + static void showError(BuildContext context, String message) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Row( + children: [ + const Icon(LucideIcons.alertCircle, color: Colors.white), + const SizedBox(width: 12), + Expanded(child: Text(message)), + ], + ), + backgroundColor: Colors.red.shade600, + behavior: SnackBarBehavior.floating, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + margin: const EdgeInsets.all(16), + ), + ); + } + + static void showWarning(BuildContext context, String message) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Row( + children: [ + const Icon(LucideIcons.alertTriangle, color: Colors.white), + const SizedBox(width: 12), + Expanded(child: Text(message)), + ], + ), + backgroundColor: Colors.orange.shade700, + behavior: SnackBarBehavior.floating, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + margin: const EdgeInsets.all(16), + duration: const Duration(seconds: 4), + ), + ); + } +} diff --git a/kifi-app/lib/core/widgets/empty_state.dart b/kifi-app/lib/core/widgets/empty_state.dart new file mode 100644 index 0000000..ecae99f --- /dev/null +++ b/kifi-app/lib/core/widgets/empty_state.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; + +class EmptyStateWidget extends StatelessWidget { + final IconData icon; + final String title; + final String message; + + const EmptyStateWidget({ + super.key, + required this.icon, + required this.title, + required this.message, + }); + + @override + Widget build(BuildContext context) { + return Center( + child: Padding( + padding: const EdgeInsets.all(32.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + icon, + size: 80, + color: Theme.of(context).colorScheme.primary.withValues(alpha: 0.5), + ), + const SizedBox(height: 24), + Text( + title, + style: Theme.of(context).textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 12), + Text( + message, + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.6), + ), + ), + ], + ), + ), + ); + } +} diff --git a/kifi-app/lib/core/widgets/shimmer_loading.dart b/kifi-app/lib/core/widgets/shimmer_loading.dart new file mode 100644 index 0000000..8960ad2 --- /dev/null +++ b/kifi-app/lib/core/widgets/shimmer_loading.dart @@ -0,0 +1,64 @@ +import 'package:flutter/material.dart'; +import 'package:shimmer/shimmer.dart'; + +class ShimmerLoading extends StatelessWidget { + final double width; + final double height; + final double borderRadius; + + const ShimmerLoading({ + super.key, + required this.width, + required this.height, + this.borderRadius = 8.0, + }); + + @override + Widget build(BuildContext context) { + final isDark = Theme.of(context).brightness == Brightness.dark; + + return Shimmer.fromColors( + baseColor: isDark ? Colors.grey.shade800 : Colors.grey.shade300, + highlightColor: isDark ? Colors.grey.shade700 : Colors.grey.shade100, + child: Container( + width: width, + height: height, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(borderRadius), + ), + ), + ); + } +} + +class ShimmerCard extends StatelessWidget { + const ShimmerCard({super.key}); + + @override + Widget build(BuildContext context) { + return Card( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const ShimmerLoading(width: 120, height: 16), + const SizedBox(height: 16), + const ShimmerLoading(width: double.infinity, height: 24), + const SizedBox(height: 8), + const ShimmerLoading(width: double.infinity, height: 24), + const SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + ShimmerLoading(width: 60, height: 16), + ShimmerLoading(width: 60, height: 16), + ], + ) + ], + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/auth/data/auth_repository.dart b/kifi-app/lib/features/auth/data/auth_repository.dart new file mode 100644 index 0000000..88fca49 --- /dev/null +++ b/kifi-app/lib/features/auth/data/auth_repository.dart @@ -0,0 +1,84 @@ +import 'package:dio/dio.dart'; +import '../../../../core/network/dio_client.dart'; +import '../../../../core/security/crypto_service.dart'; + +class AuthRepository { + final Dio dio = DioClient().dio; + final CryptoService _crypto = CryptoService(); + + Future _ensureCryptoReady() async { + if (!_crypto.isInitialized) { + await _crypto.fetchPublicKey(); + } + } + + Future signup(String email, String password) async { + try { + await _ensureCryptoReady(); + await dio.post('/auth/signup', data: { + 'email': _crypto.encrypt(email), + 'password': _crypto.encrypt(password), + }); + } on DioException catch (e) { + final data = e.response?.data; + final errorMsg = data is Map ? data['error'] : data; + throw Exception(errorMsg ?? e.message); + } + } + + Future> login(String email, String password) async { + try { + await _ensureCryptoReady(); + final response = await dio.post('/auth/login', data: { + 'email': _crypto.encrypt(email), + 'password': _crypto.encrypt(password), + }); + return response.data; + } on DioException catch (e) { + final data = e.response?.data; + final errorMsg = data is Map ? data['error'] : data; + throw Exception(errorMsg ?? 'Invalid email or password'); + } + } + + Future> verifyOtp(String email, String otp) async { + try { + final response = await dio.post('/auth/verify-otp', data: { + 'email': email, + 'otp': otp, + }); + return response.data; + } on DioException catch (e) { + final data = e.response?.data; + final errorMsg = data is Map ? data['error'] : data; + throw Exception(errorMsg ?? 'Invalid OTP'); + } + } + + Future forgotPassword(String email) async { + try { + await dio.post('/auth/forgot-password', data: { + 'email': email, + }); + } on DioException catch (e) { + final data = e.response?.data; + final errorMsg = data is Map ? data['error'] : data; + throw Exception(errorMsg ?? 'Failed to send reset code'); + } + } + + Future resetPassword(String email, String otp, String newPassword) async { + try { + await _ensureCryptoReady(); + await dio.post('/auth/reset-password', data: { + 'email': email, + 'otp': otp, + 'newPassword': _crypto.encrypt(newPassword), + }); + } on DioException catch (e) { + final data = e.response?.data; + final errorMsg = data is Map ? data['error'] : data; + throw Exception(errorMsg ?? 'Failed to reset password'); + } + } +} diff --git a/kifi-app/lib/features/auth/presentation/auth_screen.dart b/kifi-app/lib/features/auth/presentation/auth_screen.dart new file mode 100644 index 0000000..b9b39cd --- /dev/null +++ b/kifi-app/lib/features/auth/presentation/auth_screen.dart @@ -0,0 +1,153 @@ +import 'package:flutter/material.dart'; +import 'package:lucide_icons/lucide_icons.dart'; + +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../providers/auth_provider.dart'; +import 'otp_screen.dart'; +import 'forgot_password_screen.dart'; +import '../../dashboard/presentation/dashboard_screen.dart'; + +class AuthScreen extends ConsumerStatefulWidget { + const AuthScreen({super.key}); + + @override + ConsumerState createState() => _AuthScreenState(); +} + +class _AuthScreenState extends ConsumerState { + bool isLogin = true; + final emailController = TextEditingController(); + final passwordController = TextEditingController(); + + void toggleMode() { + setState(() { + isLogin = !isLogin; + }); + } + + Future submit() async { + final email = emailController.text.trim(); + final password = passwordController.text; + + if (email.isEmpty || password.isEmpty) return; + + if (isLogin) { + final success = await ref.read(authControllerProvider.notifier).login(email, password); + if (success && mounted) { + Navigator.pushReplacement( + context, MaterialPageRoute(builder: (_) => const DashboardScreen())); + } + } else { + final success = await ref.read(authControllerProvider.notifier).signup(email, password); + if (success && mounted) { + Navigator.push(context, MaterialPageRoute(builder: (_) => OtpScreen(email: email))); + } + } + } + + @override + Widget build(BuildContext context) { + ref.listen>(authControllerProvider, (previous, next) { + if (next.hasError) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: ${next.error}')), + ); + } + }); + + final state = ref.watch(authControllerProvider); + final isLoading = state.isLoading; + + return Scaffold( + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(24.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Text( + isLogin ? 'Welcome Back!' : 'Create Account', + style: Theme.of(context).textTheme.displayLarge, + textAlign: TextAlign.center, + ), + const SizedBox(height: 8), + Text( + isLogin ? 'Login to continue to Kifi' : 'Sign up to manage your expenses', + style: Theme.of(context).textTheme.bodyMedium, + textAlign: TextAlign.center, + ), + const SizedBox(height: 48), + TextField( + controller: emailController, + keyboardType: TextInputType.emailAddress, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Email Address', + prefixIcon: Icon(LucideIcons.mail, color: Colors.grey), + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 16), + TextField( + controller: passwordController, + obscureText: true, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Password', + prefixIcon: Icon(LucideIcons.lock, color: Colors.grey), + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + if (isLogin) ...[ + const SizedBox(height: 8), + Align( + alignment: Alignment.centerRight, + child: TextButton( + onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => const ForgotPasswordScreen())); + }, + style: TextButton.styleFrom( + foregroundColor: const Color(0xFF6C63FF), + padding: EdgeInsets.zero, + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + child: const Text('Forgot Password?', style: TextStyle(fontWeight: FontWeight.w600, fontSize: 13)), + ), + ), + ], + const SizedBox(height: 24), + ElevatedButton( + onPressed: isLoading ? null : submit, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: isLoading + ? const SizedBox(height: 20, width: 20, child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) + : Text(isLogin ? 'Login' : 'Sign Up', style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + ), + const SizedBox(height: 16), + TextButton( + onPressed: toggleMode, + child: Text(isLogin ? 'Don\'t have an account? Sign Up' : 'Already have an account? Login'), + ), + ], + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/auth/presentation/forgot_password_screen.dart b/kifi-app/lib/features/auth/presentation/forgot_password_screen.dart new file mode 100644 index 0000000..3d2b602 --- /dev/null +++ b/kifi-app/lib/features/auth/presentation/forgot_password_screen.dart @@ -0,0 +1,164 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import '../providers/auth_provider.dart'; +import 'reset_password_screen.dart'; + +class ForgotPasswordScreen extends ConsumerStatefulWidget { + const ForgotPasswordScreen({super.key}); + + @override + ConsumerState createState() => _ForgotPasswordScreenState(); +} + +class _ForgotPasswordScreenState extends ConsumerState { + final emailController = TextEditingController(); + bool _isLoading = false; + String? _errorMessage; + + @override + void dispose() { + emailController.dispose(); + super.dispose(); + } + + Future _sendOtp() async { + final email = emailController.text.trim(); + if (email.isEmpty || !email.contains('@')) { + setState(() => _errorMessage = 'Please enter a valid email address'); + return; + } + + setState(() { + _isLoading = true; + _errorMessage = null; + }); + + final success = await ref.read(authControllerProvider.notifier).forgotPassword(email); + + if (mounted) { + setState(() => _isLoading = false); + if (success) { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (_) => ResetPasswordScreen(email: email)), + ); + } else { + setState(() => _errorMessage = 'Failed to send reset code. Please check your email.'); + } + } + } + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Scaffold( + body: SafeArea( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 28, vertical: 16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 12), + IconButton( + onPressed: () => Navigator.pop(context), + icon: const Icon(Icons.arrow_back_ios_new, size: 20), + style: IconButton.styleFrom( + backgroundColor: Colors.grey.shade100, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + ), + const SizedBox(height: 40), + Center( + child: Container( + width: 80, + height: 80, + decoration: BoxDecoration( + gradient: const LinearGradient( + colors: [Color(0xFF6C63FF), Color(0xFF48C6EF)], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(24), + ), + child: const Icon(LucideIcons.keyRound, color: Colors.white, size: 36), + ), + ), + const SizedBox(height: 32), + const Center( + child: Text( + 'Forgot Password?', + style: TextStyle(fontSize: 28, fontWeight: FontWeight.bold), + ), + ), + const SizedBox(height: 12), + Center( + child: Text( + 'Enter your email address and we\'ll send you\na verification code to reset your password.', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 15, color: Colors.grey.shade600, height: 1.5), + ), + ), + const SizedBox(height: 48), + + TextField( + controller: emailController, + keyboardType: TextInputType.emailAddress, + textInputAction: TextInputAction.done, + onSubmitted: (_) => _sendOtp(), + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Email Address', + prefixIcon: Icon(LucideIcons.mail, color: Colors.grey.shade500), + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + if (_errorMessage != null) ...[ + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration( + color: Colors.red.shade50, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: Colors.red.shade200), + ), + child: Row( + children: [ + Icon(LucideIcons.alertCircle, color: Colors.red.shade400, size: 18), + const SizedBox(width: 10), + Expanded(child: Text(_errorMessage!, style: TextStyle(color: Colors.red.shade700, fontSize: 13))), + ], + ), + ), + ], + const SizedBox(height: 32), + + SizedBox( + width: double.infinity, + height: 56, + child: ElevatedButton( + onPressed: _isLoading ? null : _sendOtp, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: _isLoading + ? const SizedBox(width: 24, height: 24, child: CircularProgressIndicator(strokeWidth: 2, color: Colors.white)) + : const Text('Send Reset Code', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/auth/presentation/otp_screen.dart b/kifi-app/lib/features/auth/presentation/otp_screen.dart new file mode 100644 index 0000000..e9661f7 --- /dev/null +++ b/kifi-app/lib/features/auth/presentation/otp_screen.dart @@ -0,0 +1,98 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../providers/auth_provider.dart'; +import '../../dashboard/presentation/dashboard_screen.dart'; + +class OtpScreen extends ConsumerStatefulWidget { + final String email; + const OtpScreen({super.key, required this.email}); + + @override + ConsumerState createState() => _OtpScreenState(); +} + +class _OtpScreenState extends ConsumerState { + final otpController = TextEditingController(); + + Future verify() async { + final otp = otpController.text.trim(); + if (otp.isEmpty) return; + + final success = await ref.read(authControllerProvider.notifier).verifyOtp(widget.email, otp); + if (success && mounted) { + Navigator.pushAndRemoveUntil( + context, MaterialPageRoute(builder: (_) => const DashboardScreen()), (route) => false); + } + } + + @override + Widget build(BuildContext context) { + ref.listen>(authControllerProvider, (previous, next) { + if (next.hasError) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: ${next.error}')), + ); + } + }); + + final state = ref.watch(authControllerProvider); + final isLoading = state.isLoading; + + return Scaffold( + appBar: AppBar(backgroundColor: Colors.transparent, elevation: 0), + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(24.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Text( + 'Verify Email', + style: Theme.of(context).textTheme.displayLarge, + textAlign: TextAlign.center, + ), + const SizedBox(height: 8), + Text( + 'Enter the 6-digit OTP sent to ${widget.email}', + style: Theme.of(context).textTheme.bodyMedium, + textAlign: TextAlign.center, + ), + const SizedBox(height: 48), + TextField( + controller: otpController, + keyboardType: TextInputType.number, + textAlign: TextAlign.center, + maxLength: 6, + style: const TextStyle(fontSize: 24, letterSpacing: 8, fontWeight: FontWeight.bold, color: Color(0xFF6C63FF)), + decoration: InputDecoration( + hintText: '000000', + hintStyle: TextStyle(letterSpacing: 8, color: Colors.grey.shade400), + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 32), + ElevatedButton( + onPressed: isLoading ? null : verify, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: isLoading + ? const SizedBox(height: 20, width: 20, child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) + : const Text('Verify', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + ), + ], + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/auth/presentation/profile_screen.dart b/kifi-app/lib/features/auth/presentation/profile_screen.dart new file mode 100644 index 0000000..00157e1 --- /dev/null +++ b/kifi-app/lib/features/auth/presentation/profile_screen.dart @@ -0,0 +1,148 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:share_plus/share_plus.dart'; +import 'package:cross_file/cross_file.dart'; +import 'auth_screen.dart'; +import '../../../core/network/dio_client.dart'; +import '../providers/auth_provider.dart'; +import '../../transactions/providers/providers.dart'; + +import '../../../core/theme/theme_provider.dart'; + +class ProfileScreen extends ConsumerStatefulWidget { + const ProfileScreen({super.key}); + + @override + ConsumerState createState() => _ProfileScreenState(); +} + +class _ProfileScreenState extends ConsumerState { + bool _isExporting = false; + + Future _logout(BuildContext context) async { + const storage = FlutterSecureStorage(); + await storage.delete(key: 'jwt_token'); + + if (context.mounted) { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const AuthScreen()), + (route) => false, + ); + } + } + + Future _exportData() async { + setState(() => _isExporting = true); + try { + final bytes = await ref.read(apiRepositoryProvider).exportTransactions(); + + final tempDir = await getTemporaryDirectory(); + final file = File('${tempDir.path}/transactions_export.csv'); + await file.writeAsBytes(bytes); + + final xFile = XFile(file.path); + await Share.shareXFiles([xFile], text: 'Here is my Kifi transactions export.'); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Export failed: $e'))); + } + } finally { + if (mounted) { + setState(() => _isExporting = false); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Profile'), + backgroundColor: Colors.transparent, + elevation: 0, + ), + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 20), + CircleAvatar( + radius: 50, + backgroundColor: Theme.of(context).colorScheme.primary.withOpacity(0.1), + child: Icon(LucideIcons.user, size: 50, color: Theme.of(context).colorScheme.primary), + ), + const SizedBox(height: 24), + const Text('Kifi User', style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold)), + const SizedBox(height: 8), + const Text('maddy23285@gmail.com', style: TextStyle(color: Colors.grey, fontSize: 16)), + const SizedBox(height: 48), + Card( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + child: Column( + children: [ + ListTile( + leading: const Icon(LucideIcons.downloadCloud), + title: const Text('Export Data to CSV'), + trailing: _isExporting + ? const SizedBox(width: 20, height: 20, child: CircularProgressIndicator(strokeWidth: 2)) + : const Icon(LucideIcons.chevronRight), + onTap: _isExporting ? null : _exportData, + ), + const Divider(height: 1), + ListTile( + leading: const Icon(LucideIcons.moon), + title: const Text('Theme'), + trailing: SegmentedButton( + segments: const [ + ButtonSegment(value: ThemeMode.light, icon: Icon(LucideIcons.sun)), + ButtonSegment(value: ThemeMode.system, icon: Icon(LucideIcons.monitor)), + ButtonSegment(value: ThemeMode.dark, icon: Icon(LucideIcons.moon)), + ], + selected: {ref.watch(themeProvider)}, + onSelectionChanged: (Set newSelection) { + ref.read(themeProvider.notifier).setTheme(newSelection.first); + }, + showSelectedIcon: false, + style: ButtonStyle(visualDensity: VisualDensity.compact), + ), + ), + const Divider(height: 1), + + ListTile( + leading: const Icon(LucideIcons.helpCircle), + title: const Text('Help & Support'), + trailing: const Icon(LucideIcons.chevronRight), + onTap: () {}, + ), + ], + ), + ), + const Spacer(), + SizedBox( + width: double.infinity, + child: ElevatedButton.icon( + onPressed: () => _logout(context), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red.withOpacity(0.1), + foregroundColor: Colors.red, + padding: const EdgeInsets.symmetric(vertical: 16), + ), + icon: const Icon(LucideIcons.logOut), + label: const Text('Log Out', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + ), + ), + const SizedBox(height: 20), + ], + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/auth/presentation/reset_password_screen.dart b/kifi-app/lib/features/auth/presentation/reset_password_screen.dart new file mode 100644 index 0000000..40cb66f --- /dev/null +++ b/kifi-app/lib/features/auth/presentation/reset_password_screen.dart @@ -0,0 +1,238 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import '../providers/auth_provider.dart'; +import 'auth_screen.dart'; + +class ResetPasswordScreen extends ConsumerStatefulWidget { + final String email; + const ResetPasswordScreen({super.key, required this.email}); + + @override + ConsumerState createState() => _ResetPasswordScreenState(); +} + +class _ResetPasswordScreenState extends ConsumerState { + final otpController = TextEditingController(); + final newPasswordController = TextEditingController(); + final confirmPasswordController = TextEditingController(); + bool _isLoading = false; + bool _obscurePassword = true; + bool _obscureConfirm = true; + String? _errorMessage; + + @override + void dispose() { + otpController.dispose(); + newPasswordController.dispose(); + confirmPasswordController.dispose(); + super.dispose(); + } + + Future _resetPassword() async { + final otp = otpController.text.trim(); + final newPassword = newPasswordController.text; + final confirmPassword = confirmPasswordController.text; + + if (otp.isEmpty || otp.length != 6) { + setState(() => _errorMessage = 'Please enter a valid 6-digit OTP'); + return; + } + if (newPassword.isEmpty || newPassword.length < 6) { + setState(() => _errorMessage = 'Password must be at least 6 characters'); + return; + } + if (newPassword != confirmPassword) { + setState(() => _errorMessage = 'Passwords do not match'); + return; + } + + setState(() { + _isLoading = true; + _errorMessage = null; + }); + + final success = await ref.read(authControllerProvider.notifier).resetPassword(widget.email, otp, newPassword); + + if (mounted) { + setState(() => _isLoading = false); + if (success) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Password reset successfully! Please log in.'), + backgroundColor: Color(0xFF6C63FF), + ), + ); + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const AuthScreen()), + (route) => false, + ); + } else { + setState(() => _errorMessage = 'Invalid OTP or reset failed. Please try again.'); + } + } + } + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Scaffold( + body: SafeArea( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 28, vertical: 16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 12), + IconButton( + onPressed: () => Navigator.pop(context), + icon: const Icon(Icons.arrow_back_ios_new, size: 20), + style: IconButton.styleFrom( + backgroundColor: Colors.grey.shade100, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + ), + const SizedBox(height: 32), + Center( + child: Container( + width: 80, + height: 80, + decoration: BoxDecoration( + gradient: const LinearGradient( + colors: [Color(0xFF6C63FF), Color(0xFF48C6EF)], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(24), + ), + child: const Icon(LucideIcons.shieldCheck, color: Colors.white, size: 36), + ), + ), + const SizedBox(height: 28), + const Center( + child: Text( + 'Reset Password', + style: TextStyle(fontSize: 28, fontWeight: FontWeight.bold), + ), + ), + const SizedBox(height: 12), + Center( + child: Text( + 'We\'ve sent a 6-digit code to\n${widget.email}', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 15, color: Colors.grey.shade600, height: 1.5), + ), + ), + const SizedBox(height: 40), + + // OTP Field + TextField( + controller: otpController, + keyboardType: TextInputType.number, + textInputAction: TextInputAction.next, + maxLength: 6, + style: const TextStyle(fontWeight: FontWeight.w600, fontSize: 20, letterSpacing: 8), + textAlign: TextAlign.center, + decoration: InputDecoration( + hintText: '000000', + hintStyle: TextStyle(color: Colors.grey.shade300, letterSpacing: 8), + counterText: '', + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 18), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 20), + + // New Password + TextField( + controller: newPasswordController, + obscureText: _obscurePassword, + textInputAction: TextInputAction.next, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'New Password', + prefixIcon: Icon(LucideIcons.lock, color: Colors.grey.shade500), + suffixIcon: IconButton( + icon: Icon(_obscurePassword ? LucideIcons.eyeOff : LucideIcons.eye, color: Colors.grey.shade500), + onPressed: () => setState(() => _obscurePassword = !_obscurePassword), + ), + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 16), + + // Confirm Password + TextField( + controller: confirmPasswordController, + obscureText: _obscureConfirm, + textInputAction: TextInputAction.done, + onSubmitted: (_) => _resetPassword(), + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Confirm Password', + prefixIcon: Icon(LucideIcons.lock, color: Colors.grey.shade500), + suffixIcon: IconButton( + icon: Icon(_obscureConfirm ? LucideIcons.eyeOff : LucideIcons.eye, color: Colors.grey.shade500), + onPressed: () => setState(() => _obscureConfirm = !_obscureConfirm), + ), + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + + if (_errorMessage != null) ...[ + const SizedBox(height: 20), + Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration( + color: Colors.red.shade50, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: Colors.red.shade200), + ), + child: Row( + children: [ + Icon(LucideIcons.alertCircle, color: Colors.red.shade400, size: 18), + const SizedBox(width: 10), + Expanded(child: Text(_errorMessage!, style: TextStyle(color: Colors.red.shade700, fontSize: 13))), + ], + ), + ), + ], + const SizedBox(height: 32), + + SizedBox( + width: double.infinity, + height: 56, + child: ElevatedButton( + onPressed: _isLoading ? null : _resetPassword, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: _isLoading + ? const SizedBox(width: 24, height: 24, child: CircularProgressIndicator(strokeWidth: 2, color: Colors.white)) + : const Text('Reset Password', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/auth/providers/auth_provider.dart b/kifi-app/lib/features/auth/providers/auth_provider.dart new file mode 100644 index 0000000..dedd0f3 --- /dev/null +++ b/kifi-app/lib/features/auth/providers/auth_provider.dart @@ -0,0 +1,81 @@ +import 'dart:async'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../data/auth_repository.dart'; +import '../../../../core/network/dio_client.dart'; + +final authRepositoryProvider = Provider((ref) => AuthRepository()); + +class AuthController extends AsyncNotifier { + late AuthRepository _repository; + + @override + FutureOr build() { + _repository = ref.watch(authRepositoryProvider); + } + + Future login(String email, String password) async { + state = const AsyncValue.loading(); + try { + final data = await _repository.login(email, password); + await DioClient().storage.write(key: 'jwt_token', value: data['token']); + state = const AsyncValue.data(null); + return true; + } catch (e, st) { + state = AsyncValue.error(e, st); + return false; + } + } + + Future signup(String email, String password) async { + state = const AsyncValue.loading(); + try { + await _repository.signup(email, password); + state = const AsyncValue.data(null); + return true; + } catch (e, st) { + state = AsyncValue.error(e, st); + return false; + } + } + + Future verifyOtp(String email, String otp) async { + state = const AsyncValue.loading(); + try { + final data = await _repository.verifyOtp(email, otp); + await DioClient().storage.write(key: 'jwt_token', value: data['token']); + state = const AsyncValue.data(null); + return true; + } catch (e, st) { + state = AsyncValue.error(e, st); + return false; + } + } + + Future forgotPassword(String email) async { + state = const AsyncValue.loading(); + try { + await _repository.forgotPassword(email); + state = const AsyncValue.data(null); + return true; + } catch (e, st) { + state = AsyncValue.error(e, st); + return false; + } + } + + Future resetPassword(String email, String otp, String newPassword) async { + state = const AsyncValue.loading(); + try { + await _repository.resetPassword(email, otp, newPassword); + state = const AsyncValue.data(null); + return true; + } catch (e, st) { + state = AsyncValue.error(e, st); + return false; + } + } +} + +final authControllerProvider = AsyncNotifierProvider(() { + return AuthController(); +}); diff --git a/kifi-app/lib/features/budget/presentation/budget_screen.dart b/kifi-app/lib/features/budget/presentation/budget_screen.dart new file mode 100644 index 0000000..7380816 --- /dev/null +++ b/kifi-app/lib/features/budget/presentation/budget_screen.dart @@ -0,0 +1,425 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import '../../transactions/providers/providers.dart'; +import '../../transactions/data/models.dart'; +import '../../../core/widgets/shimmer_loading.dart'; + +class BudgetScreen extends ConsumerStatefulWidget { + const BudgetScreen({super.key}); + + @override + ConsumerState createState() => _BudgetScreenState(); +} + +class _BudgetScreenState extends ConsumerState { + String _searchQuery = ''; + String? _filterNature; + bool _isSearching = false; + final TextEditingController _searchController = TextEditingController(); + + @override + void dispose() { + _searchController.dispose(); + super.dispose(); + } + + Future _onRefresh() async { + ref.invalidate(budgetProvider); + ref.invalidate(walletProvider); + ref.invalidate(transactionProvider); + await Future.delayed(const Duration(milliseconds: 500)); + } + + void _showSetBudgetDialog(BuildContext context, Wallet wallet, Budget? existingBudget) { + final controller = TextEditingController(text: existingBudget?.monthlyLimit.toString() ?? ''); + bool isShared = existingBudget?.isShared ?? false; + + showDialog( + context: context, + builder: (ctx) => StatefulBuilder( + builder: (context, setState) { + return Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(28), + boxShadow: [BoxShadow(color: Colors.black.withValues(alpha: 0.1), blurRadius: 20, offset: const Offset(0, 10))], + ), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Set Budget for ${wallet.name}', style: const TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + const SizedBox(height: 24), + TextField( + controller: controller, + keyboardType: const TextInputType.numberWithOptions(decimal: true, signed: false), + textInputAction: TextInputAction.done, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Monthly Limit', + prefixText: 'Rs. ', + prefixStyle: const TextStyle(color: Colors.black87, fontWeight: FontWeight.w500, fontSize: 16), + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 16), + SwitchListTile( + title: const Text('Share budget with wallet members', style: TextStyle(fontSize: 14, fontWeight: FontWeight.w500)), + value: isShared, + activeColor: const Color(0xFF6C63FF), + contentPadding: EdgeInsets.zero, + onChanged: (val) { + setState(() { + isShared = val; + }); + }, + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + style: TextButton.styleFrom(foregroundColor: Colors.grey.shade700, padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12))), + child: const Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold)), + ), + const SizedBox(width: 12), + ElevatedButton( + onPressed: () async { + final limit = double.tryParse(controller.text); + if (limit != null && limit > 0) { + final newBudget = Budget( + id: existingBudget?.id ?? 0, + walletId: wallet.id, + monthlyLimit: limit, + isShared: isShared, + ); + await ref.read(budgetProvider.notifier).addOrUpdateBudget(newBudget); + if (mounted) Navigator.pop(ctx); + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text('Save', style: TextStyle(fontWeight: FontWeight.bold)), + ) + ], + ), + ], + ), + ), + ), + ), + ); + } + ), + ); + } + + void _showFilterSheet() { + final natures = ['ALL', 'CASH', 'SAVINGS', 'INVESTMENTS', 'LOAN', 'LENDING', 'PAYABLES', 'INCOME', 'EXPENSE', 'RECEIVABLES']; + String? tempFilterNature = _filterNature; + + showModalBottomSheet( + context: context, + isScrollControlled: true, + shape: const RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(20))), + builder: (ctx) => StatefulBuilder( + builder: (context, setSheetState) { + return Container( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + ), + child: SafeArea( + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Filter Budgets', style: Theme.of(context).textTheme.titleLarge), + IconButton(icon: const Icon(LucideIcons.x), onPressed: () => Navigator.pop(ctx)), + ], + ), + const SizedBox(height: 24), + + Text('Account Nature', style: Theme.of(context).textTheme.titleSmall), + const SizedBox(height: 8), + DropdownButtonFormField( + value: tempFilterNature ?? 'ALL', + style: const TextStyle(fontWeight: FontWeight.w500, color: Colors.black87, fontSize: 16), + decoration: InputDecoration( + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + items: natures.map((n) => DropdownMenuItem(value: n, child: Text(n))).toList(), + onChanged: (val) { + if (val != null) { + setSheetState(() { + tempFilterNature = val == 'ALL' ? null : val; + }); + } + }, + ), + const SizedBox(height: 32), + Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: () { + setState(() => _filterNature = null); + Navigator.pop(ctx); + }, + style: OutlinedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + side: BorderSide(color: Colors.grey.shade300), + ), + child: Text('Reset', style: TextStyle(color: Colors.grey.shade700, fontWeight: FontWeight.bold)), + ), + ), + const SizedBox(width: 16), + Expanded( + child: ElevatedButton( + onPressed: () { + setState(() => _filterNature = tempFilterNature); + Navigator.pop(ctx); + }, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text('Apply Filter', style: TextStyle(fontWeight: FontWeight.bold)), + ), + ), + ], + ), + const SizedBox(height: 16), + ], + ), + ), + ), + ); + }, + ), + ); + } + + @override + Widget build(BuildContext context) { + final budgetsState = ref.watch(budgetProvider); + final walletsState = ref.watch(walletProvider); + final transState = ref.watch(transactionProvider); + + return Scaffold( + backgroundColor: Colors.transparent, + body: Column( + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(16, 16, 16, 12), + child: Row( + children: [ + Expanded( + child: TextField( + controller: _searchController, + onChanged: (val) => setState(() => _searchQuery = val), + decoration: InputDecoration( + hintText: 'Search budgets...', + prefixIcon: const Icon(LucideIcons.search), + suffixIcon: _searchController.text.isNotEmpty ? IconButton( + icon: const Icon(LucideIcons.x), + onPressed: () { + _searchController.clear(); + setState(() => _searchQuery = ''); + }, + ) : null, + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + ), + ), + ), + const SizedBox(width: 8), + IconButton( + icon: Icon( + LucideIcons.filter, + color: _filterNature != null ? const Color(0xFF6C63FF) : null, + ), + onPressed: _showFilterSheet, + ), + ], + ), + ), + Expanded( + child: budgetsState.when( + loading: () => ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: 4, + itemBuilder: (context, index) => const ShimmerCard(), + ), + error: (err, stack) => Center(child: Text('Error: $err')), + data: (budgets) { + if (!walletsState.hasValue || !transState.hasValue) { + return ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: 4, + itemBuilder: (context, index) => const ShimmerCard(), + ); + } + + final wallets = walletsState.value!.where((w) { + final nature = (w.nature ?? 'CASH').trim().toUpperCase(); + final hasBudget = budgets.any((b) => b.walletId == w.id); + + final matchSearch = _searchQuery.isEmpty || w.name.toLowerCase().contains(_searchQuery.toLowerCase()); + final matchNature = _filterNature == null || nature == _filterNature; + + final matchBaseCondition = hasBudget || nature == 'EXPENSE' || nature == 'INVESTMENTS'; + + return matchBaseCondition && matchSearch && matchNature; + }).toList(); + + final transactions = transState.value!; + final now = DateTime.now(); + + // Calculate spent per wallet for the current month + final currentMonthTxs = transactions.where((t) => t.date.month == now.month && t.date.year == now.year); + final Map spentByWallet = {}; + + for (var t in currentMonthTxs) { + if (t.toWalletId != null) { + spentByWallet[t.toWalletId!] = (spentByWallet[t.toWalletId!] ?? 0) + t.amount; + } + } + + if (wallets.isEmpty) { + return const Center(child: Padding(padding: EdgeInsets.all(16), child: Text('No budgets or eligible accounts found.'))); + } + + return RefreshIndicator( + onRefresh: _onRefresh, + child: ListView.builder( + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.all(16), + itemCount: wallets.length, + itemBuilder: (context, index) { + final wallet = wallets[index]; + final existingBudgetIndex = budgets.indexWhere((b) => b.walletId == wallet.id); + final budget = existingBudgetIndex >= 0 ? budgets[existingBudgetIndex] : null; + final spent = spentByWallet[wallet.id] ?? 0.0; + + if (budget == null) { + return Card( + margin: const EdgeInsets.only(bottom: 12), + child: ListTile( + leading: const CircleAvatar(child: Icon(LucideIcons.wallet)), + title: Text(wallet.name), + subtitle: Text('${wallet.nature} • No budget set'), + trailing: TextButton( + onPressed: () => _showSetBudgetDialog(context, wallet, null), + child: const Text('Set Budget'), + ), + ), + ); + } + + final limit = budget.monthlyLimit; + final double progress; + if (limit <= 0) { + progress = 1.0; + } else { + progress = (spent / limit).clamp(0.0, 1.0); + } + Color progressColor = Colors.green; + if (progress > 0.9) progressColor = Colors.red; + else if (progress > 0.7) progressColor = Colors.orange; + + return Card( + margin: const EdgeInsets.only(bottom: 16), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Row( + children: [ + const Icon(LucideIcons.wallet, size: 20, color: Colors.blue), + const SizedBox(width: 8), + Expanded(child: Text(wallet.name, style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16), overflow: TextOverflow.ellipsis)), + ], + ), + ), + IconButton( + icon: const Icon(LucideIcons.edit3, size: 18), + onPressed: () => _showSetBudgetDialog(context, wallet, budget), + ) + ], + ), + const SizedBox(height: 12), + LinearProgressIndicator( + value: progress, + backgroundColor: Colors.grey.shade200, + valueColor: AlwaysStoppedAnimation(progressColor), + minHeight: 8, + borderRadius: BorderRadius.circular(4), + ), + const SizedBox(height: 12), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Spent: Rs. ${spent.toStringAsFixed(2)}', style: TextStyle(color: Colors.grey.shade700)), + Text('Limit: Rs. ${limit.toStringAsFixed(2)}', style: const TextStyle(fontWeight: FontWeight.bold)), + ], + ), + if (progress >= 1.0) + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Text('Budget Exceeded!', style: TextStyle(color: Colors.red.shade700, fontSize: 12, fontWeight: FontWeight.bold)), + ), + ], + ), + ), + ); + }), + ); + }, + ), + ), + ], + ), + ); + } +} diff --git a/kifi-app/lib/features/dashboard/presentation/accounts_screen.dart b/kifi-app/lib/features/dashboard/presentation/accounts_screen.dart new file mode 100644 index 0000000..fe4ff9f --- /dev/null +++ b/kifi-app/lib/features/dashboard/presentation/accounts_screen.dart @@ -0,0 +1,881 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import 'package:intl/intl.dart'; +import '../../transactions/providers/providers.dart'; +import '../../transactions/data/models.dart'; +import '../../transactions/data/repository.dart'; +import 'wallet_ledger_screen.dart'; + +class AccountsScreen extends ConsumerStatefulWidget { + final String? initialFilterNature; + const AccountsScreen({super.key, this.initialFilterNature}); + + @override + ConsumerState createState() => _AccountsScreenState(); +} + +class _AccountsScreenState extends ConsumerState { + String _searchQuery = ''; + String? _filterNature; + bool _isSearching = false; + final TextEditingController _searchController = TextEditingController(); + + @override + void initState() { + super.initState(); + _filterNature = widget.initialFilterNature; + } + + @override + void dispose() { + _searchController.dispose(); + super.dispose(); + } + + Future _onRefresh() async { + ref.invalidate(walletProvider); + ref.invalidate(invitationProvider); + await Future.delayed(const Duration(milliseconds: 500)); + } + + void _showCreateWalletDialog() { + final ctrl = TextEditingController(); + final amtCtrl = TextEditingController(); + DateTime openingDate = DateTime.now(); + String selectedNature = 'CASH'; + final natures = ['CASH', 'SAVINGS', 'INVESTMENTS', 'LOAN', 'LENDING', 'PAYABLES', 'INCOME', 'EXPENSE', 'RECEIVABLES']; + showDialog( + context: context, + builder: (ctx) => StatefulBuilder( + builder: (context, setStateDialog) { + return Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(28), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.1), + blurRadius: 20, + offset: const Offset(0, 10), + ), + ], + ), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: const Color(0xFF6C63FF).withValues(alpha: 0.1), + shape: BoxShape.circle, + ), + child: const Icon(LucideIcons.wallet, color: Color(0xFF6C63FF), size: 24), + ), + const SizedBox(width: 16), + const Text( + 'New Account', + style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), + ), + ], + ), + const SizedBox(height: 24), + + TextField( + controller: ctrl, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Account Name (e.g. Household)', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 16), + + DropdownButtonFormField( + value: selectedNature, + style: const TextStyle(fontWeight: FontWeight.w500, color: Colors.black87), + decoration: InputDecoration( + labelText: 'Account Nature', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + items: natures.map((n) => DropdownMenuItem(value: n, child: Text(n))).toList(), + onChanged: (val) { + if (val != null) setStateDialog(() => selectedNature = val); + }, + ), + const SizedBox(height: 16), + + TextField( + controller: amtCtrl, + keyboardType: const TextInputType.numberWithOptions(decimal: true, signed: false), + textInputAction: TextInputAction.done, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Opening Balance (Optional)', + prefixText: 'Rs. ', + prefixStyle: const TextStyle(color: Colors.black87, fontWeight: FontWeight.w500, fontSize: 16), + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 16), + + InkWell( + onTap: () async { + final picked = await showDatePicker( + context: context, + initialDate: openingDate, + firstDate: DateTime.now().subtract(const Duration(days: 365 * 10)), + lastDate: DateTime.now(), + ); + if (picked != null) { + setStateDialog(() => openingDate = picked); + } + }, + borderRadius: BorderRadius.circular(16), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + decoration: BoxDecoration( + color: Colors.grey.shade100, + borderRadius: BorderRadius.circular(16), + ), + child: Row( + children: [ + const Icon(LucideIcons.calendar, color: Colors.grey), + const SizedBox(width: 12), + Text( + 'Date: ${DateFormat('MMM dd, yyyy').format(openingDate)}', + style: const TextStyle(fontSize: 15, fontWeight: FontWeight.w500), + ), + ], + ), + ), + ), + const SizedBox(height: 24), + + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + style: TextButton.styleFrom( + foregroundColor: Colors.grey.shade700, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + child: const Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold)), + ), + const SizedBox(width: 12), + ElevatedButton( + onPressed: () async { + if (ctrl.text.isNotEmpty) { + final double amt = double.tryParse(amtCtrl.text) ?? 0.0; + final newWallet = await ref.read(walletProvider.notifier).createWallet( + name: ctrl.text, + nature: selectedNature, + initialBalance: 0.0, + ); + + if (amt > 0) { + final tx = Transaction( + id: 0, + type: 'INCOME', + amount: amt, + date: openingDate, + description: 'Opening Balance', + toWalletId: newWallet.id, + ); + await ref.read(transactionProvider.notifier).addTransaction(tx); + } + + if (context.mounted) Navigator.pop(ctx); + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text('Create', style: TextStyle(fontWeight: FontWeight.bold)), + ) + ], + ), + ], + ), + ), + ), + ), + ); + }, + ), + ); + } + + void _showFilterSheet() { + final natures = ['ALL', 'CASH', 'SAVINGS', 'INVESTMENTS', 'LOAN', 'LENDING', 'PAYABLES', 'INCOME', 'EXPENSE', 'RECEIVABLES']; + String? tempFilterNature = _filterNature; + + showModalBottomSheet( + context: context, + isScrollControlled: true, + shape: const RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(20))), + builder: (ctx) => StatefulBuilder( + builder: (context, setSheetState) { + return Container( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + ), + child: SafeArea( + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Filter Accounts', style: Theme.of(context).textTheme.titleLarge), + IconButton(icon: const Icon(LucideIcons.x), onPressed: () => Navigator.pop(ctx)), + ], + ), + const SizedBox(height: 24), + + Text('Account Nature', style: Theme.of(context).textTheme.titleSmall), + const SizedBox(height: 8), + DropdownButtonFormField( + value: tempFilterNature ?? 'ALL', + style: const TextStyle(fontWeight: FontWeight.w500, color: Colors.black87, fontSize: 16), + decoration: InputDecoration( + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + items: natures.map((n) => DropdownMenuItem(value: n, child: Text(n))).toList(), + onChanged: (val) { + if (val != null) { + setSheetState(() { + tempFilterNature = val == 'ALL' ? null : val; + }); + } + }, + ), + const SizedBox(height: 32), + Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: () { + setState(() => _filterNature = null); + Navigator.pop(ctx); + }, + style: OutlinedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + side: BorderSide(color: Colors.grey.shade300), + ), + child: Text('Reset', style: TextStyle(color: Colors.grey.shade700, fontWeight: FontWeight.bold)), + ), + ), + const SizedBox(width: 16), + Expanded( + child: ElevatedButton( + onPressed: () { + setState(() => _filterNature = tempFilterNature); + Navigator.pop(ctx); + }, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text('Apply Filter', style: TextStyle(fontWeight: FontWeight.bold)), + ), + ), + ], + ), + const SizedBox(height: 16), + ], + ), + ), + ), + ); + }, + ), + ); + } + + @override + Widget build(BuildContext context) { + final walletsState = ref.watch(walletProvider); + + return Scaffold( + backgroundColor: Colors.transparent, + body: SafeArea( + bottom: false, + child: Column( + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(16, 16, 16, 12), + child: Row( + children: [ + if (Navigator.of(context).canPop()) + Padding( + padding: const EdgeInsets.only(right: 8.0), + child: IconButton( + icon: const Icon(LucideIcons.arrowLeft), + onPressed: () => Navigator.pop(context), + ), + ), + Expanded( + child: TextField( + controller: _searchController, + onChanged: (val) => setState(() => _searchQuery = val), + decoration: InputDecoration( + hintText: 'Search accounts...', + prefixIcon: const Icon(LucideIcons.search), + suffixIcon: _searchController.text.isNotEmpty ? IconButton( + icon: const Icon(LucideIcons.x), + onPressed: () { + _searchController.clear(); + setState(() => _searchQuery = ''); + }, + ) : null, + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + ), + ), + ), + const SizedBox(width: 8), + IconButton( + icon: Icon( + LucideIcons.filter, + color: _filterNature != null ? const Color(0xFF6C63FF) : null, + ), + onPressed: _showFilterSheet, + ), + IconButton( + icon: const Icon(LucideIcons.plusCircle), + onPressed: _showCreateWalletDialog, + ), + ], + ), + ), + Expanded( + child: walletsState.when( + loading: () => const Center(child: CircularProgressIndicator()), + error: (e, st) => Center(child: Text('Error: $e')), + data: (allWallets) { + final wallets = allWallets.where((w) { + final matchSearch = _searchQuery.isEmpty || + w.name.toLowerCase().contains(_searchQuery.toLowerCase()); + final matchNature = _filterNature == null || w.nature == _filterNature; + return matchSearch && matchNature; + }).toList(); + + if (wallets.isEmpty) { + return const Center(child: Text('No accounts found.')); + } + + return RefreshIndicator( + onRefresh: _onRefresh, + child: ListView.builder( + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.all(16), + itemCount: wallets.length, + itemBuilder: (context, index) { + final w = wallets[index]; + return Card( + margin: const EdgeInsets.only(bottom: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16), side: BorderSide(color: Colors.grey.shade200)), + elevation: 0, + child: Column( + children: [ + InkWell( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => WalletLedgerScreen(wallet: w))); + }, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + children: [ + CircleAvatar( + backgroundColor: Colors.blue.withValues(alpha: 0.1), + child: const Icon(LucideIcons.wallet, color: Colors.blue), + ), + const SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(w.name, style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16)), + const SizedBox(height: 4), + Text('${w.nature ?? "CASH"} • Balance: Rs. ${w.balance}', style: TextStyle(color: Colors.grey.shade600, fontSize: 13)), + ], + ), + ), + ], + ), + ), + ), + Divider(height: 1, color: Colors.grey.shade200), + FittedBox( + fit: BoxFit.scaleDown, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + TextButton.icon( + icon: const Icon(LucideIcons.userPlus, size: 14), + label: const Text('Invite', style: TextStyle(fontSize: 12)), + style: TextButton.styleFrom(padding: const EdgeInsets.symmetric(horizontal: 8)), + onPressed: () { + showDialog( + context: context, + builder: (ctx) => InviteDialogWidget(wallet: w), + ); + }, + ), + TextButton.icon( + icon: const Icon(LucideIcons.edit2, size: 14), + label: const Text('Edit', style: TextStyle(fontSize: 12)), + style: TextButton.styleFrom(padding: const EdgeInsets.symmetric(horizontal: 8)), + onPressed: () { + final editCtrl = TextEditingController(text: w.name); + String editNature = w.nature ?? 'CASH'; + final natures = ['CASH', 'SAVINGS', 'EXPENSE', 'INVESTMENTS', 'LOAN', 'LENDING', 'PAYABLES', 'RECEIVABLES', 'INCOME']; + showDialog( + context: context, + builder: (ctx) => StatefulBuilder( + builder: (context, setStateDialog) => Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(28)), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Edit Account', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + const SizedBox(height: 24), + TextField( + controller: editCtrl, + decoration: InputDecoration( + hintText: 'Account Name', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + ), + ), + const SizedBox(height: 16), + DropdownButtonFormField( + value: editNature, + decoration: InputDecoration( + labelText: 'Account Nature', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + ), + items: natures.map((n) => DropdownMenuItem(value: n, child: Text(n))).toList(), + onChanged: (val) { + if (val != null) setStateDialog(() => editNature = val); + }, + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + child: const Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold)), + ), + const SizedBox(width: 12), + ElevatedButton( + onPressed: () async { + if (editCtrl.text.isNotEmpty) { + try { + await ref.read(walletProvider.notifier).editWallet( + w.id, + name: editCtrl.text.trim(), + nature: editNature, + ); + if (context.mounted) { + Navigator.pop(ctx); + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Wallet updated'))); + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Failed to edit: $e'))); + } + } + } + }, + style: ElevatedButton.styleFrom(backgroundColor: const Color(0xFF6C63FF), foregroundColor: Colors.white), + child: const Text('Save', style: TextStyle(fontWeight: FontWeight.bold)), + ) + ], + ), + ], + ), + ), + ), + ), + ), + ); + }, + ), + TextButton.icon( + icon: const Icon(LucideIcons.trash2, size: 14, color: Colors.red), + label: const Text('Delete', style: TextStyle(color: Colors.red, fontSize: 12)), + style: TextButton.styleFrom(padding: const EdgeInsets.symmetric(horizontal: 8)), + onPressed: () async { + final confirm = await showDialog( + context: context, + builder: (ctx) => Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(28)), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Delete Account', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.red)), + const SizedBox(height: 16), + Text('Are you sure you want to delete ${w.name}? This action cannot be undone.', style: const TextStyle(fontSize: 16)), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(ctx, false), + child: const Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold, color: Colors.grey)), + ), + const SizedBox(width: 12), + ElevatedButton( + onPressed: () => Navigator.pop(ctx, true), + style: ElevatedButton.styleFrom(backgroundColor: Colors.red, foregroundColor: Colors.white, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16))), + child: const Text('Delete', style: TextStyle(fontWeight: FontWeight.bold)), + ) + ], + ), + ], + ), + ), + ), + ); + + if (confirm == true) { + try { + await ref.read(walletProvider.notifier).deleteWallet(w.id); + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Wallet deleted'))); + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(e.toString().replaceAll('Exception: ', '')))); + } + } + } + }, + ), + TextButton.icon( + icon: const Icon(LucideIcons.list, size: 14), + label: const Text('Ledger', style: TextStyle(fontSize: 12)), + style: TextButton.styleFrom(padding: const EdgeInsets.symmetric(horizontal: 8)), + onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => WalletLedgerScreen(wallet: w))); + }, + ), + ], + ), + ), // Close FittedBox + ], + ), + ); + }, + ), + ); + }, + ), + ), + ], + ), + ), + ); + } +} + +class InviteDialogWidget extends ConsumerStatefulWidget { + final Wallet wallet; + const InviteDialogWidget({super.key, required this.wallet}); + + @override + ConsumerState createState() => _InviteDialogWidgetState(); +} + +class _InviteDialogWidgetState extends ConsumerState { + TextEditingController _autoCompleteCtrl = TextEditingController(); + bool _isInviting = false; + bool _isLoadingMembers = true; + List _members = []; + List _knownContacts = []; + + @override + void initState() { + super.initState(); + _fetchMembers(); + } + + @override + void dispose() { + _autoCompleteCtrl.dispose(); + super.dispose(); + } + + Future _fetchMembers() async { + try { + final members = await ApiRepository().getWalletMembers(widget.wallet.id); + + List contacts = []; + try { + contacts = await ApiRepository().getKnownContacts(); + } catch (e) { + debugPrint("Error fetching contacts: $e"); + } + + if (mounted) { + setState(() { + _members = members; + _knownContacts = contacts.where((c) => !members.any((m) => m.email == c)).toList(); + _isLoadingMembers = false; + }); + } + } catch (e) { + if (mounted) { + setState(() => _isLoadingMembers = false); + } + } + } + + Future _removeMember(WalletMember member) async { + final confirm = await showDialog( + context: context, + builder: (ctx) => AlertDialog( + title: const Text('Remove Member'), + content: Text('Are you sure you want to remove ${member.email} from this wallet?'), + actions: [ + TextButton(onPressed: () => Navigator.pop(ctx, false), child: const Text('Cancel')), + ElevatedButton( + onPressed: () => Navigator.pop(ctx, true), + style: ElevatedButton.styleFrom(backgroundColor: Colors.red, foregroundColor: Colors.white), + child: const Text('Remove'), + ), + ], + ), + ); + + if (confirm == true) { + try { + await ApiRepository().removeWalletMember(widget.wallet.id, member.userId); + await _fetchMembers(); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Member removed.'))); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(e.toString().replaceAll('Exception: ', '')))); + } + } + } + } + + @override + Widget build(BuildContext context) { + return Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(28), + boxShadow: [BoxShadow(color: Colors.black.withValues(alpha: 0.1), blurRadius: 20, offset: const Offset(0, 10))], + ), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Invite to ${widget.wallet.name}', style: const TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + const SizedBox(height: 24), + TextField( + controller: _autoCompleteCtrl, + keyboardType: TextInputType.emailAddress, + textInputAction: TextInputAction.done, + style: const TextStyle(fontWeight: FontWeight.w500), + onChanged: (val) { + setState(() {}); + }, + decoration: InputDecoration( + hintText: 'Enter Email Address to invite', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + if (_autoCompleteCtrl?.text.trim().isNotEmpty == true && (_autoCompleteCtrl?.text.length ?? 0) >= 2) + Builder( + builder: (context) { + final query = _autoCompleteCtrl.text.trim().toLowerCase(); + final matches = _knownContacts.where((c) => c.toLowerCase().contains(query)).toList(); + if (matches.isEmpty || (matches.length == 1 && matches.first.toLowerCase() == query)) return const SizedBox.shrink(); + + return Container( + margin: const EdgeInsets.only(top: 8), + constraints: const BoxConstraints(maxHeight: 160), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: Colors.grey.shade300), + boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10, offset: const Offset(0, 4))], + ), + child: ListView.separated( + shrinkWrap: true, + padding: EdgeInsets.zero, + itemCount: matches.length, + separatorBuilder: (_, __) => const Divider(height: 1, indent: 16, endIndent: 16), + itemBuilder: (ctx, index) { + final email = matches[index]; + return ListTile( + leading: const CircleAvatar(radius: 14, backgroundColor: Color(0xFF6C63FF), child: Icon(LucideIcons.user, size: 14, color: Colors.white)), + title: Text(email, style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500)), + onTap: () { + setState(() { + _autoCompleteCtrl.text = email; + _autoCompleteCtrl.selection = TextSelection.fromPosition(TextPosition(offset: email.length)); + }); + FocusScope.of(context).unfocus(); + }, + ); + }, + ), + ); + }, + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: _isInviting ? null : () => Navigator.pop(context), + style: TextButton.styleFrom(foregroundColor: Colors.grey.shade700, padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12))), + child: const Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold)), + ), + const SizedBox(width: 12), + ElevatedButton( + onPressed: _isInviting ? null : () async { + final email = _autoCompleteCtrl.text.trim(); + if (email.isNotEmpty && email.contains('@')) { + setState(() => _isInviting = true); + try { + await ref.read(walletProvider.notifier).inviteUser(widget.wallet.id, email); + if (context.mounted) { + Navigator.pop(context); + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('User invited!'))); + } + } catch (e) { + if (context.mounted) { + setState(() => _isInviting = false); + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(e.toString().replaceAll('Exception: ', '')))); + } + } + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: _isInviting + ? const SizedBox(width: 20, height: 20, child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) + : const Text('Invite', style: TextStyle(fontWeight: FontWeight.bold)), + ) + ], + ), + const SizedBox(height: 24), + const Text('Existing Members', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + const SizedBox(height: 12), + _isLoadingMembers + ? const Center(child: CircularProgressIndicator()) + : _members.isEmpty + ? const Text('No members found.', style: TextStyle(color: Colors.grey)) + : ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: _members.length, + itemBuilder: (context, index) { + final member = _members[index]; + final isOwner = member.role == 'OWNER'; + return ListTile( + contentPadding: EdgeInsets.zero, + leading: CircleAvatar(backgroundColor: Colors.grey.shade200, child: const Icon(LucideIcons.user, color: Colors.grey)), + title: Text(member.email, style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 14)), + subtitle: Text(member.role, style: TextStyle(color: isOwner ? Colors.blue : Colors.grey, fontSize: 12)), + trailing: !isOwner + ? IconButton( + icon: const Icon(LucideIcons.userMinus, color: Colors.red, size: 20), + onPressed: () => _removeMember(member), + ) + : null, + ); + }, + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/dashboard/presentation/dashboard_screen.dart b/kifi-app/lib/features/dashboard/presentation/dashboard_screen.dart new file mode 100644 index 0000000..991afbf --- /dev/null +++ b/kifi-app/lib/features/dashboard/presentation/dashboard_screen.dart @@ -0,0 +1,604 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import 'package:intl/intl.dart'; +import '../../transactions/presentation/add_transaction_screen.dart'; +import '../../transactions/presentation/all_transactions_screen.dart'; +import '../../transactions/providers/providers.dart'; +import '../../auth/presentation/profile_screen.dart'; +import '../../transactions/data/models.dart'; + +import '../../budget/presentation/budget_screen.dart'; + +import '../providers/insight_provider.dart'; +import 'widgets/budget_status_card.dart'; +import 'widgets/statistics_tab.dart'; +import '../../../core/widgets/shimmer_loading.dart'; +import '../../../core/theme/nature_colors.dart'; +import 'wallet_ledger_screen.dart'; +import 'maturity_dialog.dart'; +import 'accounts_screen.dart'; + +class DashboardScreen extends ConsumerStatefulWidget { + const DashboardScreen({super.key}); + + @override + ConsumerState createState() => _DashboardScreenState(); +} + +class _DashboardScreenState extends ConsumerState { + int _currentIndex = 0; + String _selectedFilter = 'All Time'; + DateTimeRange? _customDateRange; + Timer? _notificationTimer; + + final List _filters = ['Today', 'Last 3 Days', 'Week', 'Month', 'Year', 'All Time', 'Custom']; + + @override + void initState() { + super.initState(); + _notificationTimer = Timer.periodic(const Duration(minutes: 2), (_) { + ref.invalidate(invitationProvider); + }); + } + + @override + void dispose() { + _notificationTimer?.cancel(); + super.dispose(); + } + + Future _onRefresh() async { + ref.invalidate(transactionProvider); + ref.invalidate(walletProvider); + ref.invalidate(categoryProvider); + ref.invalidate(budgetProvider); + ref.invalidate(invitationProvider); + await Future.delayed(const Duration(milliseconds: 500)); + } + + DateTimeRange _getDateRange(List all) { + if (_selectedFilter == 'All Time') { + DateTime start = DateTime(2000); + if (all.isNotEmpty) { + start = all.map((t) => t.date).reduce((a, b) => a.isBefore(b) ? a : b); + } + return DateTimeRange(start: start, end: DateTime.now()); + } + + final now = DateTime.now(); + DateTime start; + DateTime end = now; + + switch (_selectedFilter) { + case 'Today': + start = DateTime(now.year, now.month, now.day); + break; + case 'Last 3 Days': + start = now.subtract(const Duration(days: 3)); + break; + case 'Week': + start = now.subtract(const Duration(days: 7)); + break; + case 'Month': + start = DateTime(now.year, now.month - 1, now.day); + break; + case 'Year': + start = DateTime(now.year - 1, now.month, now.day); + break; + case 'Custom': + if (_customDateRange != null) { + start = _customDateRange!.start; + end = _customDateRange!.end; + } else { + start = DateTime(2000); + if (all.isNotEmpty) { + start = all.map((t) => t.date).reduce((a, b) => a.isBefore(b) ? a : b); + } + } + break; + default: + start = DateTime(2000); + } + return DateTimeRange(start: start, end: end); + } + + List _filterTransactions(List all) { + if (_selectedFilter == 'All Time' || (_selectedFilter == 'Custom' && _customDateRange == null)) return all; + + final range = _getDateRange(all); + final start = range.start; + final end = range.end; + return all.where((t) { + final d = t.date; + return d.isAfter(start.subtract(const Duration(seconds: 1))) && + d.isBefore(end.add(const Duration(days: 1))); + }).toList(); + } + + Future _pickCustomDateRange() async { + final picked = await showDateRangePicker( + context: context, + firstDate: DateTime(2000), + lastDate: DateTime(2101), + ); + if (picked != null) { + setState(() { + _customDateRange = picked; + _selectedFilter = 'Custom'; + }); + } + } + + @override + Widget build(BuildContext context) { + final transState = ref.watch(transactionProvider); + final categoriesState = ref.watch(categoryProvider); + final insight = ref.watch(insightProvider); + final walletsState = ref.watch(walletProvider); + final allTransactions = transState.value ?? []; + + final range = _getDateRange(allTransactions); + final startDate = range.start; + final endDate = range.end; + + String title; + if (_currentIndex == 0) title = 'Dashboard'; + else if (_currentIndex == 1) title = 'Statistics'; + else if (_currentIndex == 2) title = 'My Accounts'; + else title = 'Budgets'; + + return Scaffold( + appBar: AppBar( + title: Text(title), + backgroundColor: Colors.transparent, + elevation: 0, + actions: [ + Consumer( + builder: (context, ref, child) { + final invitationsState = ref.watch(invitationProvider); + final pendingInvites = invitationsState.value?.where((inv) => inv.status == 'PENDING').toList() ?? []; + + return PopupMenuButton( + icon: Stack( + children: [ + const Icon(LucideIcons.bell), + if (pendingInvites.isNotEmpty) + Positioned( + right: 0, + top: 0, + child: Container( + padding: const EdgeInsets.all(2), + decoration: BoxDecoration( + color: Colors.red, + borderRadius: BorderRadius.circular(6), + ), + constraints: const BoxConstraints(minWidth: 12, minHeight: 12), + child: Text( + '${pendingInvites.length}', + style: const TextStyle(color: Colors.white, fontSize: 8, fontWeight: FontWeight.bold), + textAlign: TextAlign.center, + ), + ), + ) + ], + ), + offset: const Offset(0, 50), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + itemBuilder: (context) { + if (pendingInvites.isEmpty) { + return [ + const PopupMenuItem( + enabled: false, + child: Text('No new notifications'), + ) + ]; + } + return pendingInvites.map((inv) => PopupMenuItem( + enabled: false, + child: Container( + width: 250, + padding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('You have been invited to a wallet by User ${inv.inviterId}', style: const TextStyle(fontSize: 14)), + const SizedBox(height: 12), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () { + Navigator.pop(context); + ref.read(invitationProvider.notifier).rejectInvitation(inv.id); + }, + style: TextButton.styleFrom(foregroundColor: Colors.red), + child: const Text('Reject'), + ), + const SizedBox(width: 8), + ElevatedButton( + onPressed: () { + Navigator.pop(context); + ref.read(invitationProvider.notifier).acceptInvitation(inv.id); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + child: const Text('Accept'), + ), + ], + ) + ], + ), + ), + )).toList(); + }, + ); + } + ), + IconButton( + icon: const Icon(LucideIcons.user), + onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => const ProfileScreen())); + }, + ), + ], + ), + body: transState.when( + loading: () => ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: 4, + itemBuilder: (context, index) => const ShimmerCard(), + ), + error: (err, stack) => Center(child: Text('Error: $err')), + data: (allTransactions) { + final transactions = _filterTransactions(allTransactions); + + final totalIncome = transactions.where((t) => t.type == 'INCOME').fold(0.0, (s, t) => s + t.amount); + final totalExpense = transactions.where((t) => t.type == 'EXPENSE').fold(0.0, (s, t) => s + t.amount); + final totalInvestment = transactions.where((t) => t.type == 'INVESTMENT').fold(0.0, (s, t) => s + t.amount); + + double totalPayablesPeriod = 0.0; + double totalReceivablesPeriod = 0.0; + + final safeWallets = walletsState.hasValue ? walletsState.value! : []; + for (var t in transactions) { + if (t.toWalletId != null) { + final w = safeWallets.where((w) => w.id == t.toWalletId); + if (w.isNotEmpty) { + final nature = w.first.nature; + if (nature == 'PAYABLES' || nature == 'LOAN') { + totalPayablesPeriod += t.amount; + } else if (nature == 'RECEIVABLES' || nature == 'LENDING') { + totalReceivablesPeriod += t.amount; + } + } + } + } + + double cashBalance = 0; + double expenseBalance = 0; + double savingsBalance = 0; + double investmentsBalance = 0; + double payablesBalance = 0; + double receivablesBalance = 0; + + if (walletsState.hasValue) { + for (var w in walletsState.value!) { + final nature = w.nature ?? 'CASH'; + if (nature == 'CASH') { + cashBalance += w.balance; + } else if (nature == 'EXPENSE') { + expenseBalance += w.balance; + } else if (nature == 'SAVINGS' || nature == 'INCOME') { + savingsBalance += w.balance; + } else if (nature == 'INVESTMENTS') { + investmentsBalance += w.balance; + } else if (nature == 'LOAN' || nature == 'PAYABLES') { + payablesBalance += w.balance; + } else if (nature == 'LENDING') { + receivablesBalance += w.balance; + } + } + } + return IndexedStack( + index: _currentIndex, + children: [ + // ---------------- HOME TAB ---------------- + RefreshIndicator( + onRefresh: _onRefresh, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.all(24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (insight != null) ...[ + Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: insight.type == 'WARNING' ? Colors.orange.shade50 : (insight.type == 'SUCCESS' ? Colors.green.shade50 : Colors.blue.shade50), + borderRadius: BorderRadius.circular(16), + border: Border.all(color: insight.type == 'WARNING' ? Colors.orange : (insight.type == 'SUCCESS' ? Colors.green : Colors.blue), width: 1), + ), + child: Row( + children: [ + Icon( + insight.type == 'WARNING' ? LucideIcons.alertTriangle : (insight.type == 'SUCCESS' ? LucideIcons.checkCircle : LucideIcons.info), + color: insight.type == 'WARNING' ? Colors.orange : (insight.type == 'SUCCESS' ? Colors.green : Colors.blue), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(insight.title, style: const TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 4), + Text(insight.message, style: const TextStyle(fontSize: 12)), + ], + ), + ), + ], + ), + ), + const SizedBox(height: 24), + ], + const BudgetStatusCard(), + const SizedBox(height: 24), + + // Summary Cards Grid + GridView.count( + crossAxisCount: 2, + crossAxisSpacing: 16, + mainAxisSpacing: 16, + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + childAspectRatio: 1.5, + children: [ + _buildSummaryCard(context, 'Balance', cashBalance, NatureColors.getColor('BALANCE'), LucideIcons.wallet, 'CASH'), + _buildSummaryCard(context, 'Expense', expenseBalance, NatureColors.getColor('EXPENSE'), LucideIcons.arrowUpRight, 'EXPENSE'), + _buildSummaryCard(context, 'Savings', savingsBalance, NatureColors.getColor('SAVINGS'), LucideIcons.piggyBank, 'SAVINGS'), + _buildSummaryCard(context, 'Investments', investmentsBalance, NatureColors.getColor('INVESTMENTS'), LucideIcons.trendingUp, 'INVESTMENTS'), + _buildSummaryCard(context, 'Payables', payablesBalance, NatureColors.getColor('PAYABLES'), LucideIcons.alertCircle, 'PAYABLES'), + _buildSummaryCard(context, 'Receivables', receivablesBalance, NatureColors.getColor('RECEIVABLES'), LucideIcons.arrowDownLeft, 'RECEIVABLES'), + ], + ), + const SizedBox(height: 32), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Recent Transactions', style: Theme.of(context).textTheme.bodyLarge?.copyWith(fontWeight: FontWeight.bold)), + TextButton( + onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => const AllTransactionsScreen())); + }, + child: const Text('See All'), + ), + ], + ), + const SizedBox(height: 8), + allTransactions.isEmpty + ? const Center(child: Padding(padding: EdgeInsets.all(16), child: Text('No transactions yet!'))) + : ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: allTransactions.length > 5 ? 5 : allTransactions.length, + itemBuilder: (context, index) { + final t = allTransactions[index]; + final isIncome = t.type == 'INCOME' || (t.type == 'TRANSFER' && t.fromWalletId == null); + final isInvestment = t.type == 'INVESTMENT'; + final isExpense = t.type == 'EXPENSE' || (t.type == 'TRANSFER' && t.toWalletId == null); + final isTransfer = t.type == 'TRANSFER' && t.fromWalletId != null && t.toWalletId != null; + + Color typeColor = Colors.grey; + IconData typeIcon = LucideIcons.arrowRightLeft; + + if (isIncome) { + typeColor = NatureColors.getColor('INCOME'); + typeIcon = LucideIcons.arrowDownCircle; + } else if (isExpense) { + typeColor = NatureColors.getColor('EXPENSE'); + typeIcon = LucideIcons.arrowUpCircle; + } else if (isInvestment) { + typeColor = NatureColors.getColor('INVESTMENTS'); + typeIcon = LucideIcons.trendingUp; + } else if (isTransfer) { + typeColor = NatureColors.getColor('TRANSFER'); + if (walletsState.hasValue) { + final toW = walletsState.value!.where((w) => w.id == t.toWalletId).firstOrNull; + final fromW = walletsState.value!.where((w) => w.id == t.fromWalletId).firstOrNull; + + if (toW != null && (toW.nature == 'PAYABLES' || toW.nature == 'LOAN')) { + typeColor = NatureColors.getColor('PAYABLES'); + typeIcon = LucideIcons.alertCircle; + } else if (toW != null && (toW.nature == 'RECEIVABLES' || toW.nature == 'LENDING')) { + typeColor = NatureColors.getColor('RECEIVABLES'); + typeIcon = LucideIcons.arrowDownLeft; + } else if (fromW != null && (fromW.nature == 'PAYABLES' || fromW.nature == 'LOAN')) { + typeColor = NatureColors.getColor('PAYABLES'); + typeIcon = LucideIcons.alertCircle; + } else if (fromW != null && (fromW.nature == 'RECEIVABLES' || fromW.nature == 'LENDING')) { + typeColor = NatureColors.getColor('RECEIVABLES'); + typeIcon = LucideIcons.arrowDownLeft; + } + } + } + + String categoryName = 'Unknown'; + if (categoriesState.hasValue) { + final match = categoriesState.value!.where((c) => c.id == t.categoryId); + if (match.isNotEmpty) categoryName = match.first.name; + } + + String accountName = 'Unknown'; + if (walletsState.hasValue) { + if (isExpense && t.toWalletId != null) { + final match = walletsState.value!.where((w) => w.id == t.toWalletId); + if (match.isNotEmpty) accountName = match.first.name; + } else if (isIncome && (t.toWalletId != null)) { + final match = walletsState.value!.where((w) => w.id == t.toWalletId); + if (match.isNotEmpty) accountName = match.first.name; + } else if (isTransfer && t.toWalletId != null) { + final match = walletsState.value!.where((w) => w.id == t.toWalletId); + if (match.isNotEmpty) accountName = 'To ${match.first.name}'; + } + } + + String fromName = ''; + if (t.fromWalletId != null && walletsState.hasValue) { + final match = walletsState.value!.where((w) => w.id == t.fromWalletId); + if (match.isNotEmpty) fromName = match.first.name; + } + + String toName = ''; + if (t.toWalletId != null && walletsState.hasValue) { + final match = walletsState.value!.where((w) => w.id == t.toWalletId); + if (match.isNotEmpty) toName = match.first.name; + } + + String subtitleText = ''; + if (categoryName == 'Unknown' && fromName.isNotEmpty && toName.isNotEmpty) { + subtitleText = '$fromName → $toName • ${DateFormat('MMM dd, yyyy').format(t.date)}'; + } else if (categoryName == 'Unknown' && toName.isNotEmpty) { + subtitleText = 'To $toName • ${DateFormat('MMM dd, yyyy').format(t.date)}'; + } else if (categoryName == 'Unknown' && fromName.isNotEmpty) { + subtitleText = 'From $fromName • ${DateFormat('MMM dd, yyyy').format(t.date)}'; + } else { + subtitleText = '$categoryName • ${DateFormat('MMM dd, yyyy').format(t.date)}${fromName.isNotEmpty ? ' • 💼 $fromName' : ''}'; + } + + return Card( + margin: const EdgeInsets.only(bottom: 12), + child: ListTile( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => AddTransactionScreen(transaction: t))); + }, + leading: CircleAvatar( + backgroundColor: typeColor.withOpacity(0.1), + child: Icon(typeIcon, color: typeColor), + ), + title: Text((t.description != null && t.description!.isNotEmpty) ? t.description! : accountName, style: const TextStyle(fontWeight: FontWeight.bold)), + subtitle: Text(subtitleText), + trailing: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + '${isIncome ? '+' : (isTransfer ? '' : '-')}Rs. ${t.amount.toStringAsFixed(0)}', + style: TextStyle(fontWeight: FontWeight.bold, color: typeColor), + ), + if (t.investmentStatus == 'OPEN' && (typeColor == NatureColors.getColor('INVESTMENTS') || typeColor == NatureColors.getColor('RECEIVABLES'))) + GestureDetector( + onTap: () { + showDialog(context: context, builder: (_) => MaturityDialog(transaction: t)); + }, + child: const Padding( + padding: EdgeInsets.only(top: 4.0), + child: Text('Close', style: TextStyle(color: Colors.blue, fontWeight: FontWeight.bold, fontSize: 12)), + ), + ), + ], + ), + ), + ); + }, + ) + ], + ), + ), + ), + + // ---------------- STATS TAB ---------------- + StatisticsTab( + transactions: transactions, + wallets: safeWallets, + categories: categoriesState.value ?? [], + selectedFilter: _selectedFilter, + startDate: startDate, + endDate: endDate, + filters: _filters, + onFilterChanged: (val) { + setState(() => _selectedFilter = val); + }, + onPickCustomDateRange: _pickCustomDateRange, + onRefresh: _onRefresh, + ), + + // ---------------- WALLETS TAB ---------------- + const AccountsScreen(), + + // ---------------- BUDGETS TAB ---------------- + const BudgetScreen(), + ], + ); + }, + ), + bottomNavigationBar: BottomNavigationBar( + currentIndex: _currentIndex >= 2 ? _currentIndex + 1 : _currentIndex, + type: BottomNavigationBarType.fixed, + onTap: (index) { + if (index == 2) { + Navigator.push(context, MaterialPageRoute(builder: (_) => const AddTransactionScreen())); + } else { + setState(() { + _currentIndex = index > 2 ? index - 1 : index; + }); + } + }, + selectedItemColor: Theme.of(context).colorScheme.primary, + unselectedItemColor: Colors.grey, + showSelectedLabels: true, + showUnselectedLabels: true, + items: const [ + BottomNavigationBarItem(icon: Icon(LucideIcons.home), label: 'Home'), + BottomNavigationBarItem(icon: Icon(LucideIcons.pieChart), label: 'Stats'), + BottomNavigationBarItem(icon: Icon(LucideIcons.plusCircle), label: 'Add'), + BottomNavigationBarItem(icon: Icon(LucideIcons.wallet), label: 'Wallets'), + BottomNavigationBarItem(icon: Icon(LucideIcons.target), label: 'Budgets'), + ], + ), + ); + } + + Widget _buildSummaryCard(BuildContext context, String title, double amount, Color color, IconData icon, [String? nature]) { + return GestureDetector( + onTap: nature != null ? () { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => AccountsScreen(initialFilterNature: nature), + ), + ); + } : null, + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: color.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + border: Border.all(color: color.withOpacity(0.2)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Icon(icon, color: color, size: 16), + const SizedBox(width: 8), + Text(title, style: TextStyle(color: color, fontWeight: FontWeight.w600)), + ], + ), + Text( + 'Rs. ${amount.toStringAsFixed(0)}', + style: TextStyle(color: color, fontSize: 20, fontWeight: FontWeight.bold), + ), + ], + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/dashboard/presentation/maturity_dialog.dart b/kifi-app/lib/features/dashboard/presentation/maturity_dialog.dart new file mode 100644 index 0000000..9e71c10 --- /dev/null +++ b/kifi-app/lib/features/dashboard/presentation/maturity_dialog.dart @@ -0,0 +1,313 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import 'package:intl/intl.dart'; +import '../../transactions/data/models.dart'; +import '../../transactions/providers/providers.dart'; + +class MaturityDialog extends ConsumerStatefulWidget { + final Transaction transaction; + + const MaturityDialog({super.key, required this.transaction}); + + @override + ConsumerState createState() => _MaturityDialogState(); +} + +class _MaturityDialogState extends ConsumerState { + final _amountController = TextEditingController(); + DateTime _maturityDate = DateTime.now(); + Wallet? _toWallet; + + @override + void initState() { + super.initState(); + _amountController.text = widget.transaction.amount.toStringAsFixed(2); + } + + void _pickDate() async { + final date = await showDatePicker( + context: context, + initialDate: _maturityDate, + firstDate: DateTime(2000), + lastDate: DateTime(2100), + builder: (context, child) { + return Theme( + data: Theme.of(context).copyWith( + colorScheme: const ColorScheme.light( + primary: Color(0xFF6C63FF), + onPrimary: Colors.white, + onSurface: Colors.black, + ), + ), + child: child!, + ); + }, + ); + if (date != null) { + setState(() => _maturityDate = date); + } + } + + @override + Widget build(BuildContext context) { + final walletsState = ref.watch(walletProvider); + List validWallets = []; + if (walletsState.hasValue) { + validWallets = walletsState.value!.where((w) => w.nature == 'CASH' || w.nature == 'SAVINGS').toList(); + if (_toWallet == null && validWallets.length == 1) { + _toWallet = validWallets.first; + } + } + + return Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(28), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.1), + blurRadius: 20, + offset: const Offset(0, 10), + ), + ], + ), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // Header + Row( + children: [ + Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: const Color(0xFF6C63FF).withValues(alpha: 0.1), + shape: BoxShape.circle, + ), + child: const Icon(LucideIcons.checkCircle, color: Color(0xFF6C63FF)), + ), + const SizedBox(width: 16), + const Expanded( + child: Text( + 'Close Investment', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Color(0xFF1E1E2D), + ), + ), + ), + ], + ), + const SizedBox(height: 24), + + // Original Investment Details Card + Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.grey.shade50, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.grey.shade200), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Original Investment', + style: TextStyle(fontSize: 12, color: Colors.grey.shade600, fontWeight: FontWeight.w600), + ), + const SizedBox(height: 8), + Text( + widget.transaction.description ?? 'Investment', + style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ), + const SizedBox(height: 4), + Text( + 'Rs. ${widget.transaction.amount.toStringAsFixed(2)}', + style: const TextStyle(color: Color(0xFF6C63FF), fontWeight: FontWeight.bold), + ), + ], + ), + ), + const SizedBox(height: 24), + + // Maturity Amount Field + Text( + 'Maturity Amount', + style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Colors.grey.shade700), + ), + const SizedBox(height: 8), + TextField( + controller: _amountController, + keyboardType: const TextInputType.numberWithOptions(decimal: true, signed: false), + textInputAction: TextInputAction.done, + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w500), + decoration: InputDecoration( + prefixText: 'Rs. ', + prefixStyle: const TextStyle(color: Colors.black87, fontWeight: FontWeight.w500, fontSize: 16), + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2), + ), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + ), + ), + const SizedBox(height: 20), + + // Date Picker Field + Text( + 'Closure Date', + style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Colors.grey.shade700), + ), + const SizedBox(height: 8), + InkWell( + onTap: _pickDate, + borderRadius: BorderRadius.circular(16), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + decoration: BoxDecoration( + color: Colors.grey.shade100, + borderRadius: BorderRadius.circular(16), + ), + child: Row( + children: [ + Icon(LucideIcons.calendar, color: Colors.grey.shade600, size: 20), + const SizedBox(width: 12), + Text( + DateFormat('dd MMM yyyy').format(_maturityDate), + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w500), + ), + ], + ), + ), + ), + const SizedBox(height: 20), + + // To Account Dropdown + Text( + 'Deposit To (Savings/Cash)', + style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Colors.grey.shade700), + ), + const SizedBox(height: 8), + DropdownButtonFormField( + decoration: InputDecoration( + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2), + ), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + ), + icon: Icon(LucideIcons.chevronDown, color: Colors.grey.shade600), + value: _toWallet, + hint: const Text('Select an account'), + items: validWallets.map((w) { + return DropdownMenuItem( + value: w, + child: Text(w.name, style: const TextStyle(fontWeight: FontWeight.w500)), + ); + }).toList(), + onChanged: (val) { + setState(() => _toWallet = val); + }, + ), + const SizedBox(height: 32), + + // Action Buttons + Row( + children: [ + Expanded( + child: TextButton( + onPressed: () => Navigator.pop(context), + style: TextButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + ), + child: Text( + 'Cancel', + style: TextStyle(color: Colors.grey.shade600, fontWeight: FontWeight.bold, fontSize: 16), + ), + ), + ), + const SizedBox(width: 12), + Expanded( + child: ElevatedButton( + onPressed: () async { + final amount = double.tryParse(_amountController.text); + if (amount == null || amount <= 0) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Enter a valid amount'))); + return; + } + if (_toWallet == null) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Select a To Account'))); + return; + } + + try { + await ref.read(transactionProvider.notifier).closeInvestment( + widget.transaction.id, + amount, + _maturityDate, + _toWallet!.id + ); + if (mounted) { + Navigator.pop(context); + ScaffoldMessenger.of(context).showSnackBar(const SnackBar( + content: Text('Closure processed successfully!'), + backgroundColor: Colors.green, + behavior: SnackBarBehavior.floating, + )); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text('Error: $e'), + backgroundColor: Colors.red, + behavior: SnackBarBehavior.floating, + )); + } + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text( + 'Confirm', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ), + ), + ), + ], + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/dashboard/presentation/wallet_ledger_screen.dart b/kifi-app/lib/features/dashboard/presentation/wallet_ledger_screen.dart new file mode 100644 index 0000000..4ef084d --- /dev/null +++ b/kifi-app/lib/features/dashboard/presentation/wallet_ledger_screen.dart @@ -0,0 +1,249 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:intl/intl.dart'; +import '../../transactions/providers/providers.dart'; +import '../../transactions/data/models.dart'; +import '../../../core/theme/nature_colors.dart'; + +class WalletLedgerScreen extends ConsumerStatefulWidget { + final Wallet wallet; + + const WalletLedgerScreen({super.key, required this.wallet}); + + @override + ConsumerState createState() => _WalletLedgerScreenState(); +} + +class _WalletLedgerScreenState extends ConsumerState { + String _selectedFilter = 'All Time'; + DateTimeRange? _customDateRange; + + void _showFilterSheet() { + showModalBottomSheet( + context: context, + shape: const RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(20))), + builder: (ctx) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 24, horizontal: 16), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text('Filter Ledger', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + const SizedBox(height: 16), + ListTile( + title: const Text('Today'), + onTap: () { + setState(() => _selectedFilter = 'Today'); + Navigator.pop(ctx); + }, + ), + ListTile( + title: const Text('Current Month'), + onTap: () { + setState(() => _selectedFilter = 'Current Month'); + Navigator.pop(ctx); + }, + ), + ListTile( + title: const Text('All Time'), + onTap: () { + setState(() => _selectedFilter = 'All Time'); + Navigator.pop(ctx); + }, + ), + ListTile( + title: const Text('Custom Range'), + onTap: () async { + Navigator.pop(ctx); + final range = await showDateRangePicker( + context: context, + firstDate: DateTime(2000), + lastDate: DateTime(2100), + ); + if (range != null) { + setState(() { + _selectedFilter = 'Custom Range'; + _customDateRange = range; + }); + } + }, + ), + ], + ), + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + final transactionsState = ref.watch(transactionProvider); + final walletsState = ref.watch(walletProvider); + + return Scaffold( + appBar: AppBar( + title: Text('${widget.wallet.name} Ledger'), + actions: [ + IconButton( + icon: const Icon(Icons.filter_list), + onPressed: _showFilterSheet, + ), + ], + ), + body: transactionsState.when( + loading: () => const Center(child: CircularProgressIndicator()), + error: (err, stack) => Center(child: Text('Error: $err')), + data: (transactions) { + // 1. Filter all transactions related to this wallet + final walletTxs = transactions.where((t) => t.fromWalletId == widget.wallet.id || t.toWalletId == widget.wallet.id).toList(); + + // Sort chronologically (oldest first) to compute running balance + walletTxs.sort((a, b) => a.date.compareTo(b.date)); + + // 2. Determine date range + DateTime? startDate; + DateTime? endDate; + final now = DateTime.now(); + if (_selectedFilter == 'Today') { + startDate = DateTime(now.year, now.month, now.day); + endDate = DateTime(now.year, now.month, now.day, 23, 59, 59); + } else if (_selectedFilter == 'Current Month') { + startDate = DateTime(now.year, now.month, 1); + endDate = DateTime(now.year, now.month + 1, 0, 23, 59, 59); + } else if (_selectedFilter == 'Custom Range' && _customDateRange != null) { + startDate = _customDateRange!.start; + endDate = DateTime(_customDateRange!.end.year, _customDateRange!.end.month, _customDateRange!.end.day, 23, 59, 59); + } + + // 3. Calculate opening balance (sum of all transactions BEFORE start date) + double openingBalance = 0.0; + List visibleTxs = []; + + for (var t in walletTxs) { + double impact = 0; + if (t.toWalletId == widget.wallet.id) { + impact = t.amount; + } else if (t.fromWalletId == widget.wallet.id) { + impact = -t.amount; + } + + if (startDate != null && t.date.isBefore(startDate)) { + openingBalance += impact; + } else if (endDate != null && t.date.isAfter(endDate)) { + // skip + } else { + visibleTxs.add(t); + } + } + + // 4. Generate Ledger Rows + double runningBalance = openingBalance; + List rows = []; + + // Add Opening Balance Row if we have a date filter + if (startDate != null) { + rows.add(DataRow( + cells: [ + const DataCell(Text('-')), + DataCell(Text(DateFormat('dd MMM yyyy').format(startDate))), + DataCell(Text('Rs. ${openingBalance.toStringAsFixed(2)}', style: const TextStyle(fontWeight: FontWeight.bold))), + const DataCell(Text('-')), + const DataCell(Text('-')), + DataCell(Text('Rs. ${runningBalance.toStringAsFixed(2)}', style: const TextStyle(fontWeight: FontWeight.bold))), + ], + )); + } + + for (int i = 0; i < visibleTxs.length; i++) { + final t = visibleTxs[i]; + + bool isIncome = t.toWalletId == widget.wallet.id && t.fromWalletId == null; + bool isExpense = t.fromWalletId == widget.wallet.id && t.toWalletId == null; + bool isTransferIn = t.toWalletId == widget.wallet.id && t.fromWalletId != null; + bool isTransferOut = t.fromWalletId == widget.wallet.id && t.toWalletId != null; + + double amount = t.amount; + if (isExpense || isTransferOut) { + runningBalance -= amount; + } else { + runningBalance += amount; + } + + String fromName = '-'; + String toName = '-'; + + if (isIncome || isTransferIn) { + if (t.fromWalletId != null && walletsState.hasValue) { + fromName = walletsState.value!.where((w) => w.id == t.fromWalletId).firstOrNull?.name ?? 'Unknown'; + } else { + fromName = 'External'; + } + toName = widget.wallet.name; + } else if (isExpense || isTransferOut) { + fromName = widget.wallet.name; + if (t.toWalletId != null && walletsState.hasValue) { + toName = walletsState.value!.where((w) => w.id == t.toWalletId).firstOrNull?.name ?? 'Unknown'; + } else { + toName = 'External'; + } + } + + Color amountColor = (isExpense || isTransferOut) ? Colors.red : Colors.green.shade700; + String amountPrefix = (isExpense || isTransferOut) ? '-' : '+'; + + rows.add(DataRow( + cells: [ + DataCell(Text('${startDate != null ? i + 1 : i + 1}')), + DataCell(Text(DateFormat('dd MMM yyyy').format(t.date))), + DataCell(Text('$amountPrefix Rs. ${amount.toStringAsFixed(2)}', style: TextStyle(color: amountColor, fontWeight: FontWeight.w600))), + DataCell(Text(fromName)), + DataCell(Text(toName)), + DataCell(Text('Rs. ${runningBalance.toStringAsFixed(2)}', style: const TextStyle(fontWeight: FontWeight.bold))), + ], + )); + } + + if (rows.isEmpty) { + return const Center(child: Text('No transactions found for this period.')); + } + + return Column( + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Filter: $_selectedFilter', style: TextStyle(color: Colors.grey.shade600)), + Text('Closing Balance: Rs. ${runningBalance.toStringAsFixed(2)}', style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16)), + ], + ), + ), + Expanded( + child: SingleChildScrollView( + scrollDirection: Axis.vertical, + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: DataTable( + headingRowColor: WidgetStateProperty.resolveWith((states) => Colors.grey.shade100), + columnSpacing: 24, + columns: const [ + DataColumn(label: Text('S.No', style: TextStyle(fontWeight: FontWeight.bold))), + DataColumn(label: Text('Date', style: TextStyle(fontWeight: FontWeight.bold))), + DataColumn(label: Text('Amount', style: TextStyle(fontWeight: FontWeight.bold))), + DataColumn(label: Text('From', style: TextStyle(fontWeight: FontWeight.bold))), + DataColumn(label: Text('To', style: TextStyle(fontWeight: FontWeight.bold))), + DataColumn(label: Text('Balance', style: TextStyle(fontWeight: FontWeight.bold))), + ], + rows: rows, + ), + ), + ), + ), + ], + ); + }, + ), + ); + } +} diff --git a/kifi-app/lib/features/dashboard/presentation/widgets/budget_status_card.dart b/kifi-app/lib/features/dashboard/presentation/widgets/budget_status_card.dart new file mode 100644 index 0000000..498f58f --- /dev/null +++ b/kifi-app/lib/features/dashboard/presentation/widgets/budget_status_card.dart @@ -0,0 +1,83 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import '../../../transactions/providers/providers.dart'; + +class BudgetStatusCard extends ConsumerWidget { + const BudgetStatusCard({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final transState = ref.watch(transactionProvider); + final budgetState = ref.watch(budgetProvider); + + if (transState.isLoading || budgetState.isLoading) { + return const CircularProgressIndicator(); + } + + final transactions = transState.value ?? []; + final budgets = budgetState.value ?? []; + + if (budgets.isEmpty) { + return const SizedBox.shrink(); // Hide if no budgets + } + + final now = DateTime.now(); + final currentMonthTxs = transactions.where((t) => t.date.month == now.month && t.date.year == now.year); + + double totalSpent = 0; + for (var b in budgets) { + if (b.walletId != null) { + final spentForWallet = currentMonthTxs.where((t) => t.toWalletId == b.walletId).fold(0.0, (s, t) => s + t.amount); + totalSpent += spentForWallet; + } + } + + final totalLimit = budgets.fold(0.0, (s, b) => s + b.monthlyLimit); + final progress = totalLimit > 0 ? (totalSpent / totalLimit).clamp(0.0, 1.0) : 0.0; + + Color progressColor = Colors.green; + if (progress > 0.9) progressColor = Colors.red; + else if (progress > 0.7) progressColor = Colors.orange; + + return Card( + child: InkWell( + onTap: () { + // Could navigate to budget tab or push budget screen + }, + borderRadius: BorderRadius.circular(12), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Row( + children: [ + Icon(LucideIcons.target, size: 18), + SizedBox(width: 8), + Text('Overall Budget Status', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16)), + ], + ), + const SizedBox(height: 12), + LinearProgressIndicator( + value: progress, + backgroundColor: Colors.grey.shade200, + color: progressColor, + minHeight: 12, + borderRadius: BorderRadius.circular(6), + ), + const SizedBox(height: 12), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Spent: Rs. ${totalSpent.toStringAsFixed(0)}', style: TextStyle(color: Colors.grey.shade700)), + Text('Limit: Rs. ${totalLimit.toStringAsFixed(0)}', style: const TextStyle(fontWeight: FontWeight.bold)), + ], + ) + ], + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/dashboard/presentation/widgets/category_spending_chart.dart b/kifi-app/lib/features/dashboard/presentation/widgets/category_spending_chart.dart new file mode 100644 index 0000000..ca926fa --- /dev/null +++ b/kifi-app/lib/features/dashboard/presentation/widgets/category_spending_chart.dart @@ -0,0 +1,221 @@ +import 'package:flutter/material.dart'; +import 'package:fl_chart/fl_chart.dart'; +import '../../../transactions/data/models.dart'; +import '../../../../core/theme/nature_colors.dart'; + +class CategorySpendingChart extends StatefulWidget { + final List transactions; + final List categories; + final String selectedNature; + + const CategorySpendingChart({ + super.key, + required this.transactions, + required this.categories, + required this.selectedNature, + }); + + @override + State createState() => _CategorySpendingChartState(); +} + +class _CategorySpendingChartState extends State { + int touchedIndex = -1; + + @override + Widget build(BuildContext context) { + final Map categoryTotals = {}; + for (var t in widget.transactions) { + bool matches = false; + if (widget.selectedNature == 'INCOME') matches = t.type == 'INCOME' || (t.type == 'TRANSFER' && t.fromWalletId == null); + else if (widget.selectedNature == 'EXPENSE') matches = t.type == 'EXPENSE' || (t.type == 'TRANSFER' && t.toWalletId == null); + else if (widget.selectedNature == 'INVESTMENTS') matches = t.type == 'INVESTMENT'; + + if (matches) { + final catId = t.categoryId ?? -1; + categoryTotals[catId] = (categoryTotals[catId] ?? 0) + t.amount; + } + } + + if (categoryTotals.isEmpty) { + return const SizedBox(); + } + + final List> sortedTotals = categoryTotals.entries.toList() + ..sort((a, b) => b.value.compareTo(a.value)); + + final List colors = NatureColors.getPalette(widget.selectedNature); + + double totalAmount = categoryTotals.values.fold(0.0, (s, e) => s + e); + + List sections = []; + for (int i = 0; i < sortedTotals.length; i++) { + final isTouched = i == touchedIndex; + final radius = isTouched ? 45.0 : 35.0; + final fontSize = isTouched ? 16.0 : 12.0; + + final amount = sortedTotals[i].value; + final percentage = (amount / totalAmount * 100).toStringAsFixed(1); + + sections.add( + PieChartSectionData( + showTitle: false, + color: colors[i % colors.length], + value: amount, + title: '$percentage%', + radius: radius, + titleStyle: TextStyle( + fontSize: fontSize, + fontWeight: FontWeight.bold, + color: Colors.white, + shadows: const [Shadow(color: Colors.black26, blurRadius: 2)], + ), + badgeWidget: isTouched + ? Container( + padding: const EdgeInsets.all(6), + decoration: BoxDecoration( + color: Colors.white, + shape: BoxShape.circle, + boxShadow: [BoxShadow(color: Colors.black.withValues(alpha: 0.1), blurRadius: 4)], + ), + child: Icon(Icons.touch_app, size: 16, color: colors[i % colors.length]), + ) + : null, + badgePositionPercentageOffset: 1.1, + ), + ); + } + + return Card( + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(32), side: BorderSide(color: Colors.grey.shade200)), + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(32), + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [Colors.white, Colors.grey.shade50], + ), + ), + padding: const EdgeInsets.all(28.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Category Breakdown', style: TextStyle(fontSize: 22, fontWeight: FontWeight.w800, letterSpacing: -0.5)), + const SizedBox(height: 32), + + SizedBox( + height: 220, + child: Stack( + alignment: Alignment.center, + children: [ + PieChart( + PieChartData( + pieTouchData: PieTouchData( + touchCallback: (FlTouchEvent event, pieTouchResponse) { + setState(() { + if (!event.isInterestedForInteractions || pieTouchResponse == null || pieTouchResponse.touchedSection == null) { + touchedIndex = -1; + return; + } + touchedIndex = pieTouchResponse.touchedSection!.touchedSectionIndex; + }); + }, + ), + borderData: FlBorderData(show: false), + sectionsSpace: 4, + centerSpaceRadius: 65, + sections: sections, + ), + ), + // Center Text + Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text('Total', style: TextStyle(fontSize: 14, color: Colors.grey.shade500, fontWeight: FontWeight.w600)), + Text('Rs. ${totalAmount.toStringAsFixed(0)}', style: const TextStyle(fontSize: 18, fontWeight: FontWeight.w900)), + ], + ), + ], + ), + ), + + const SizedBox(height: 40), + const Text('Details', style: TextStyle(fontSize: 16, fontWeight: FontWeight.w700, color: Colors.black87)), + const SizedBox(height: 16), + + // Modern List for Legends + ...List.generate(sortedTotals.length, (i) { + String categoryName = 'Uncategorized'; + if (sortedTotals[i].key != -1) { + final match = widget.categories.where((c) => c.id == sortedTotals[i].key); + if (match.isNotEmpty) categoryName = match.first.name; + } + + final amount = sortedTotals[i].value; + final percentage = (amount / totalAmount * 100).toStringAsFixed(1); + final isTouched = i == touchedIndex; + + return AnimatedContainer( + duration: const Duration(milliseconds: 200), + margin: const EdgeInsets.only(bottom: 12), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20), + decoration: BoxDecoration( + color: isTouched ? colors[i % colors.length].withValues(alpha: 0.05) : Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all( + color: isTouched ? colors[i % colors.length].withValues(alpha: 0.3) : Colors.grey.shade100, + width: isTouched ? 1.5 : 1.0, + ), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: isTouched ? 0.05 : 0.02), + blurRadius: isTouched ? 12 : 6, + offset: const Offset(0, 4), + ) + ], + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: colors[i % colors.length].withValues(alpha: 0.15), + shape: BoxShape.circle, + ), + child: Icon(Icons.category, color: colors[i % colors.length], size: 20), + ), + const SizedBox(width: 16), + Expanded( + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(categoryName, style: TextStyle(fontWeight: FontWeight.w700, fontSize: 15, color: Colors.grey.shade800)), + const SizedBox(height: 4), + Text('Rs. ${amount.toStringAsFixed(0)}', style: TextStyle(fontWeight: FontWeight.w600, fontSize: 13, color: Colors.grey.shade500)), + ], + ), + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 6), + decoration: BoxDecoration( + color: colors[i % colors.length].withValues(alpha: 0.1), + borderRadius: BorderRadius.circular(12), + ), + child: Text('$percentage%', style: TextStyle(fontWeight: FontWeight.w800, fontSize: 13, color: colors[i % colors.length])), + ), + ], + ), + ); + }), + ], + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/dashboard/presentation/widgets/day_wise_spending_chart.dart b/kifi-app/lib/features/dashboard/presentation/widgets/day_wise_spending_chart.dart new file mode 100644 index 0000000..ffb7440 --- /dev/null +++ b/kifi-app/lib/features/dashboard/presentation/widgets/day_wise_spending_chart.dart @@ -0,0 +1,162 @@ +import 'package:flutter/material.dart'; +import 'package:fl_chart/fl_chart.dart'; +import '../../../transactions/data/models.dart'; +import '../../../../core/theme/nature_colors.dart'; + +class DayWiseSpendingChart extends StatelessWidget { + final List transactions; + final List wallets; + final String selectedNature; + final DateTime startDate; + final DateTime endDate; + + const DayWiseSpendingChart({ + super.key, + required this.transactions, + required this.wallets, + required this.selectedNature, + required this.startDate, + required this.endDate, + }); + + @override + Widget build(BuildContext context) { + // 1. Determine date range length + final int daysCount = endDate.difference(startDate).inDays + 1; + final int displayDays = daysCount > 0 && daysCount < 1000 ? daysCount : 30; // Guard against 'All Time' returning thousands + + final days = List.generate(displayDays, (i) => startDate.add(Duration(days: i))); + + // 2. Initialize daily totals + final Map dailyTotals = {}; + for (var d in days) { + dailyTotals["${d.year}-${d.month.toString().padLeft(2, '0')}-${d.day.toString().padLeft(2, '0')}"] = 0.0; + } + + // 3. Populate totals + for (var t in transactions) { + final tDate = "${t.date.year}-${t.date.month.toString().padLeft(2, '0')}-${t.date.day.toString().padLeft(2, '0')}"; + if (dailyTotals.containsKey(tDate)) { + bool matches = false; + if (selectedNature == 'INCOME') matches = t.type == 'INCOME' || (t.type == 'TRANSFER' && t.fromWalletId == null); + else if (selectedNature == 'EXPENSE') matches = t.type == 'EXPENSE' || (t.type == 'TRANSFER' && t.toWalletId == null); + else if (selectedNature == 'INVESTMENTS') matches = t.type == 'INVESTMENT'; + else if (selectedNature == 'PAYABLES' || selectedNature == 'RECEIVABLES') { + if (t.type == 'TRANSFER' && t.toWalletId != null) { + final w = wallets.where((w) => w.id == t.toWalletId); + if (w.isNotEmpty) { + final nature = w.first.nature; + if (selectedNature == 'PAYABLES' && (nature == 'PAYABLES' || nature == 'LOAN')) matches = true; + if (selectedNature == 'RECEIVABLES' && (nature == 'RECEIVABLES' || nature == 'LENDING')) matches = true; + } + } + } + + if (matches) { + dailyTotals[tDate] = dailyTotals[tDate]! + t.amount; + } + } + } + + double maxY = 0.0; + for (var total in dailyTotals.values) { + if (total > maxY) maxY = total; + } + if (maxY == 0) maxY = 100; + + Color barColor = NatureColors.getColor(selectedNature); + + // Make chart horizontally scrollable if there are many days + final screenWidth = MediaQuery.of(context).size.width; + double chartWidth = (screenWidth / 7) * displayDays; + if (chartWidth < screenWidth - 80) { // minimum width + chartWidth = screenWidth - 80; + } + + return Card( + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24), side: BorderSide(color: Colors.grey.shade200)), + child: Padding( + padding: const EdgeInsets.all(24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Spending Trends', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + const SizedBox(height: 32), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: SizedBox( + height: 200, + width: chartWidth, + child: BarChart( + BarChartData( + alignment: BarChartAlignment.spaceAround, + maxY: maxY * 1.2, + barTouchData: BarTouchData(enabled: false), + titlesData: FlTitlesData( + show: true, + bottomTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + getTitlesWidget: (value, meta) { + final index = value.toInt(); + if (index < 0 || index >= days.length) return const SizedBox(); + final date = days[index]; + final text = "${date.day} ${_monthStr(date.month)}"; + + // To prevent overcrowding on large ranges + if (displayDays > 14 && index % 2 != 0) return const SizedBox(); + if (displayDays > 30 && index % 5 != 0) return const SizedBox(); + + return Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Text(text, style: const TextStyle(color: Colors.grey, fontSize: 10, fontWeight: FontWeight.bold)), + ); + }, + reservedSize: 28, + ), + ), + leftTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + rightTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + ), + gridData: FlGridData( + show: true, + drawVerticalLine: false, + horizontalInterval: maxY / 4 == 0 ? 1 : maxY / 4, + getDrawingHorizontalLine: (value) => FlLine(color: Colors.grey.shade200, strokeWidth: 1, dashArray: [4, 4]), + ), + borderData: FlBorderData(show: false), + barGroups: dailyTotals.entries.toList().asMap().entries.map((entry) { + return BarChartGroupData( + x: entry.key, + barRods: [ + BarChartRodData( + toY: entry.value.value, + color: barColor, + width: 16, + borderRadius: BorderRadius.circular(8), + backDrawRodData: BackgroundBarChartRodData( + show: true, + toY: maxY * 1.2, + color: Colors.grey.shade100, + ), + ), + ], + ); + }).toList(), + ), + ), + ), + ), + ], + ), + ), + ); + } + + String _monthStr(int m) { + const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + return months[m - 1]; + } +} diff --git a/kifi-app/lib/features/dashboard/presentation/widgets/statistics_tab.dart b/kifi-app/lib/features/dashboard/presentation/widgets/statistics_tab.dart new file mode 100644 index 0000000..ab80e85 --- /dev/null +++ b/kifi-app/lib/features/dashboard/presentation/widgets/statistics_tab.dart @@ -0,0 +1,224 @@ +import 'package:flutter/material.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import '../../../transactions/data/models.dart'; +import '../../../../core/theme/nature_colors.dart'; +import 'day_wise_spending_chart.dart'; +import 'category_spending_chart.dart'; + +class StatisticsTab extends StatefulWidget { + final List transactions; + final List wallets; + final List categories; + final String selectedFilter; + final DateTime startDate; + final DateTime endDate; + final VoidCallback onPickCustomDateRange; + final Function(String) onFilterChanged; + final Future Function() onRefresh; + final List filters; + + const StatisticsTab({ + super.key, + required this.transactions, + required this.wallets, + required this.categories, + required this.selectedFilter, + required this.startDate, + required this.endDate, + required this.onPickCustomDateRange, + required this.onFilterChanged, + required this.onRefresh, + required this.filters, + }); + + @override + State createState() => _StatisticsTabState(); +} + +class _StatisticsTabState extends State { + String _selectedNature = 'EXPENSE'; + + Widget _buildTotalCard(String title, double amount, Color color, IconData icon) { + return Card( + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16), side: BorderSide(color: Colors.grey.shade200)), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + children: [ + CircleAvatar(backgroundColor: color.withOpacity(0.1), radius: 16, child: Icon(icon, color: color, size: 16)), + const SizedBox(width: 8), + Expanded(child: Text(title, style: const TextStyle(fontSize: 12, color: Colors.grey, fontWeight: FontWeight.bold), maxLines: 1, overflow: TextOverflow.ellipsis)), + ], + ), + const SizedBox(height: 12), + Text('Rs. ${amount.toStringAsFixed(0)}', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: color)), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + // Compute totals + final totalIncome = widget.transactions.where((t) => t.type == 'INCOME' || (t.type == 'TRANSFER' && t.fromWalletId == null)).fold(0.0, (s, t) => s + t.amount); + final totalExpense = widget.transactions.where((t) => t.type == 'EXPENSE' || (t.type == 'TRANSFER' && t.toWalletId == null)).fold(0.0, (s, t) => s + t.amount); + final totalInvestment = widget.transactions.where((t) => t.type == 'INVESTMENT').fold(0.0, (s, t) => s + t.amount); + + double totalPayablesPeriod = 0.0; + double totalReceivablesPeriod = 0.0; + + for (var t in widget.transactions) { + if (t.toWalletId != null) { + final w = widget.wallets.where((w) => w.id == t.toWalletId); + if (w.isNotEmpty) { + final nature = w.first.nature; + if (nature == 'PAYABLES' || nature == 'LOAN') { + totalPayablesPeriod += t.amount; + } else if (nature == 'RECEIVABLES' || nature == 'LENDING') { + totalReceivablesPeriod += t.amount; + } + } + } + } + + Color barColor = NatureColors.getColor(_selectedNature); + + return RefreshIndicator( + onRefresh: widget.onRefresh, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SingleChildScrollView( + scrollDirection: Axis.horizontal, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Row( + children: widget.filters.map((f) { + final isSelected = widget.selectedFilter == f; + return Padding( + padding: const EdgeInsets.only(right: 8), + child: ChoiceChip( + label: Text(f), + selected: isSelected, + onSelected: (val) { + if (val) { + if (f == 'Custom') { + widget.onPickCustomDateRange(); + } else { + widget.onFilterChanged(f); + } + } + }, + ), + ); + }).toList(), + ), + ), + if (widget.selectedFilter == 'Custom') + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Text( + '${widget.startDate.day} ${widget.startDate.month} - ${widget.endDate.day} ${widget.endDate.month}', + style: const TextStyle(fontWeight: FontWeight.bold, color: Colors.grey), + ), + ), + + Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text('Analytics', style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold)), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 0), + decoration: BoxDecoration( + color: barColor.withOpacity(0.1), + borderRadius: BorderRadius.circular(20), + ), + child: DropdownButton( + value: _selectedNature, + underline: const SizedBox(), + icon: Icon(Icons.arrow_drop_down, color: barColor), + style: TextStyle(color: barColor, fontWeight: FontWeight.bold), + items: const [ + DropdownMenuItem(value: 'EXPENSE', child: Text('Expense')), + DropdownMenuItem(value: 'INCOME', child: Text('Income')), + DropdownMenuItem(value: 'PAYABLES', child: Text('Payables')), + DropdownMenuItem(value: 'RECEIVABLES', child: Text('Receivables')), + DropdownMenuItem(value: 'INVESTMENTS', child: Text('Investments')), + ], + onChanged: (val) { + if (val != null) { + setState(() => _selectedNature = val); + } + }, + ), + ), + ], + ), + const SizedBox(height: 24), + + if (widget.transactions.isEmpty) + Card( + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24), side: BorderSide(color: Colors.grey.shade200)), + child: const Padding( + padding: EdgeInsets.all(32.0), + child: Center(child: Text('No transactions in this period.', style: TextStyle(color: Colors.grey))), + ), + ) + else ...[ + DayWiseSpendingChart( + transactions: widget.transactions, + wallets: widget.wallets, + selectedNature: _selectedNature, + startDate: widget.startDate, + endDate: widget.endDate, + ), + const SizedBox(height: 16), + CategorySpendingChart( + transactions: widget.transactions, + categories: widget.categories, + selectedNature: _selectedNature, + ), + ], + + const SizedBox(height: 32), + const Text('Summary Totals', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + const SizedBox(height: 16), + + GridView.count( + crossAxisCount: 2, + crossAxisSpacing: 12, + mainAxisSpacing: 12, + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + childAspectRatio: 1.5, + children: [ + _buildTotalCard('Income', totalIncome, NatureColors.getColor('INCOME'), LucideIcons.arrowDown), + _buildTotalCard('Expense', totalExpense, NatureColors.getColor('EXPENSE'), LucideIcons.arrowUp), + _buildTotalCard('Investment', totalInvestment, NatureColors.getColor('INVESTMENTS'), LucideIcons.trendingUp), + _buildTotalCard('Payables', totalPayablesPeriod, NatureColors.getColor('PAYABLES'), LucideIcons.alertCircle), + _buildTotalCard('Receivables', totalReceivablesPeriod, NatureColors.getColor('RECEIVABLES'), LucideIcons.arrowDownLeft), + ], + ), + const SizedBox(height: 32), + ], + ), + ), + ], + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/dashboard/providers/insight_provider.dart b/kifi-app/lib/features/dashboard/providers/insight_provider.dart new file mode 100644 index 0000000..06fbda5 --- /dev/null +++ b/kifi-app/lib/features/dashboard/providers/insight_provider.dart @@ -0,0 +1,100 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../transactions/providers/providers.dart'; +import '../../transactions/data/models.dart'; + +class Insight { + final String title; + final String message; + final String type; // 'WARNING', 'SUCCESS', 'INFO' + + Insight(this.title, this.message, this.type); +} + +final insightProvider = Provider((ref) { + final transState = ref.watch(transactionProvider); + final budgetsState = ref.watch(budgetProvider); + final categoriesState = ref.watch(categoryProvider); + + if (!transState.hasValue || !budgetsState.hasValue || !categoriesState.hasValue) { + return null; + } + + final transactions = transState.value!; + final budgets = budgetsState.value!; + final categories = categoriesState.value!; + final now = DateTime.now(); + + final currentMonthTxs = transactions.where((t) => t.date.month == now.month && t.date.year == now.year).toList(); + + final totalIncome = currentMonthTxs.where((t) => t.type == 'INCOME').fold(0.0, (s, t) => s + t.amount); + final totalExpense = currentMonthTxs.where((t) => t.type == 'EXPENSE').fold(0.0, (s, t) => s + t.amount); + + // Rule 1: Expenses > Income + if (totalExpense > totalIncome && totalIncome > 0) { + return Insight( + 'Spending Alert', + 'You have spent more than you earned this month! (Rs. ${totalExpense.toStringAsFixed(0)} vs Rs. ${totalIncome.toStringAsFixed(0)})', + 'WARNING' + ); + } + + // Rule 2: Over Budget Categories + for (var budget in budgets) { + final spent = currentMonthTxs + .where((t) => t.type == 'EXPENSE' && t.categoryId == budget.categoryId) + .fold(0.0, (s, t) => s + t.amount); + + if (spent > budget.monthlyLimit) { + final categoryName = categories.firstWhere((c) => c.id == budget.categoryId, orElse: () => Category(id: 0, name: 'Unknown')).name; + return Insight( + 'Budget Exceeded', + 'You have exceeded your $categoryName budget by Rs. ${(spent - budget.monthlyLimit).toStringAsFixed(0)}.', + 'WARNING' + ); + } else if (spent > budget.monthlyLimit * 0.9) { + final categoryName = categories.firstWhere((c) => c.id == budget.categoryId, orElse: () => Category(id: 0, name: 'Unknown')).name; + return Insight( + 'Nearing Budget Limit', + 'Careful! You have used ${(spent / budget.monthlyLimit * 100).toStringAsFixed(0)}% of your $categoryName budget.', + 'WARNING' + ); + } + } + + // Rule 3: Highest spending category warning if > 40% of total + if (totalExpense > 0) { + final Map spentByCategory = {}; + for (var t in currentMonthTxs.where((t) => t.type == 'EXPENSE')) { + if (t.categoryId != null) { + spentByCategory[t.categoryId!] = (spentByCategory[t.categoryId!] ?? 0) + t.amount; + } + } + + if (spentByCategory.isNotEmpty) { + final maxEntry = spentByCategory.entries.reduce((a, b) => a.value > b.value ? a : b); + if (maxEntry.value > totalExpense * 0.4) { + final categoryName = categories.firstWhere((c) => c.id == maxEntry.key, orElse: () => Category(id: 0, name: 'Unknown')).name; + return Insight( + 'High Concentration', + '${(maxEntry.value / totalExpense * 100).toStringAsFixed(0)}% of your expenses this month went to $categoryName.', + 'INFO' + ); + } + } + } + + // Default Positive Insight + if (totalIncome > 0 && totalExpense < totalIncome * 0.5) { + return Insight( + 'Great Job!', + 'You have saved over 50% of your income this month. Keep it up!', + 'SUCCESS' + ); + } + + return Insight( + 'On Track', + 'Your finances are looking stable this month.', + 'SUCCESS' + ); +}); diff --git a/kifi-app/lib/features/onboarding/presentation/onboarding_screen.dart b/kifi-app/lib/features/onboarding/presentation/onboarding_screen.dart new file mode 100644 index 0000000..9828a5c --- /dev/null +++ b/kifi-app/lib/features/onboarding/presentation/onboarding_screen.dart @@ -0,0 +1,139 @@ +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import '../../dashboard/presentation/dashboard_screen.dart'; + +class OnboardingScreen extends StatefulWidget { + const OnboardingScreen({super.key}); + + @override + State createState() => _OnboardingScreenState(); +} + +class _OnboardingScreenState extends State { + final PageController _pageController = PageController(); + int _currentPage = 0; + + final List> _pages = [ + { + 'title': 'Welcome to Kifi', + 'description': 'A beautiful, intelligent way to track your personal finances.', + 'icon': LucideIcons.wallet, + }, + { + 'title': 'Double-Entry, Simplified', + 'description': 'We track money moving from one place to another. Every expense comes from a Wallet (like Cash) and goes to a Category (like Food).', + 'icon': LucideIcons.arrowRightLeft, + }, + { + 'title': 'Intelligent Automation', + 'description': 'Set up recurring transactions and let Kifi handle your monthly subscriptions and salary deposits automatically.', + 'icon': LucideIcons.bot, + }, + { + 'title': 'Powerful Insights', + 'description': 'View day-by-day spending trends and strict monthly budgets to take control of your financial future.', + 'icon': LucideIcons.barChart2, + }, + ]; + + void _completeOnboarding() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool('has_seen_onboarding', true); + if (mounted) { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const DashboardScreen()), + ); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SafeArea( + child: Column( + children: [ + Expanded( + child: PageView.builder( + controller: _pageController, + onPageChanged: (index) { + setState(() => _currentPage = index); + }, + itemCount: _pages.length, + itemBuilder: (context, index) { + final page = _pages[index]; + return Padding( + padding: const EdgeInsets.all(40.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + page['icon'], + size: 100, + color: Theme.of(context).colorScheme.primary, + ), + const SizedBox(height: 60), + Text( + page['title'], + style: Theme.of(context).textTheme.displayLarge?.copyWith(fontSize: 28), + textAlign: TextAlign.center, + ), + const SizedBox(height: 24), + Text( + page['description'], + style: Theme.of(context).textTheme.bodyLarge?.copyWith( + color: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.7), + height: 1.5, + ), + textAlign: TextAlign.center, + ), + ], + ), + ); + }, + ), + ), + Padding( + padding: const EdgeInsets.all(40.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: List.generate( + _pages.length, + (index) => Container( + margin: const EdgeInsets.only(right: 8), + height: 8, + width: _currentPage == index ? 24 : 8, + decoration: BoxDecoration( + color: _currentPage == index + ? Theme.of(context).colorScheme.primary + : Theme.of(context).colorScheme.primary.withValues(alpha: 0.2), + borderRadius: BorderRadius.circular(4), + ), + ), + ), + ), + ElevatedButton( + onPressed: () { + if (_currentPage == _pages.length - 1) { + _completeOnboarding(); + } else { + _pageController.nextPage( + duration: const Duration(milliseconds: 300), + curve: Curves.easeInOut, + ); + } + }, + child: Text(_currentPage == _pages.length - 1 ? 'Get Started' : 'Next'), + ), + ], + ), + ), + ], + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/transactions/data/models.dart b/kifi-app/lib/features/transactions/data/models.dart new file mode 100644 index 0000000..c2ad810 --- /dev/null +++ b/kifi-app/lib/features/transactions/data/models.dart @@ -0,0 +1,358 @@ +class Category { + final int id; + final String name; + final String? iconName; + + Category({required this.id, required this.name, this.iconName}); + + factory Category.fromJson(Map json) { + return Category( + id: json['id'], + name: json['name'], + iconName: json['iconName'], + ); + } + + Map toJson() => {'name': name, 'iconName': iconName}; +} + + +class TransactionItem { + final int? id; + final String name; + final double amount; + + TransactionItem({this.id, required this.name, required this.amount}); + + factory TransactionItem.fromJson(Map json) { + return TransactionItem( + id: json['id'], + name: json['name'], + amount: (json['amount'] is int) ? (json['amount'] as int).toDouble() : json['amount'], + ); + } + + Map toJson() => { + 'name': name, + 'amount': amount, + }; +} + +class TransactionAttachment { + final int id; + final String fileName; + final String filePath; + final String contentType; + + TransactionAttachment({required this.id, required this.fileName, required this.filePath, required this.contentType}); + + factory TransactionAttachment.fromJson(Map json) { + return TransactionAttachment( + id: json['id'], + fileName: json['fileName'], + filePath: json['filePath'], + contentType: json['contentType'], + ); + } +} + +class Transaction { + final int id; + final int? categoryId; + final int? fromWalletId; + final int? toWalletId; + final String? type; // 'INCOME' or 'EXPENSE' or 'INVESTMENT' (kept for backward compatibility during migration) + final double amount; + final DateTime date; + final String? description; + final String? notes; + final String? investmentStatus; + final double? maturityAmount; + final double? profitLoss; + final DateTime? closingDate; + final DateTime? dueDate; + final String? alertSchedule; + final String? alertTime; + final List? items; + final List? attachments; + + Transaction({ + required this.id, + this.categoryId, + this.fromWalletId, + this.toWalletId, + this.type, + required this.amount, + required this.date, + this.description, + this.notes, + this.investmentStatus, + this.maturityAmount, + this.profitLoss, + this.closingDate, + this.dueDate, + this.alertSchedule, + this.alertTime, + this.items, + this.attachments, + }); + + factory Transaction.fromJson(Map json) { + return Transaction( + id: json['id'], + categoryId: json['categoryId'], + fromWalletId: json['fromWalletId'], + toWalletId: json['toWalletId'], + type: json['type'], + amount: (json['amount'] is int) ? (json['amount'] as int).toDouble() : json['amount'], + date: DateTime.parse(json['date']), + description: json['description'], + notes: json['notes'], + investmentStatus: json['investmentStatus'], + maturityAmount: json['maturityAmount'] != null ? ((json['maturityAmount'] is int) ? (json['maturityAmount'] as int).toDouble() : json['maturityAmount']) : null, + profitLoss: json['profitLoss'] != null ? ((json['profitLoss'] is int) ? (json['profitLoss'] as int).toDouble() : json['profitLoss']) : null, + closingDate: json['closingDate'] != null ? DateTime.parse(json['closingDate']) : null, + dueDate: json['dueDate'] != null ? DateTime.parse(json['dueDate']) : null, + alertSchedule: json['alertSchedule'], + alertTime: json['alertTime'], + items: json['items'] != null ? (json['items'] as List).map((i) => TransactionItem.fromJson(i)).toList() : null, + attachments: json['attachments'] != null ? (json['attachments'] as List).map((i) => TransactionAttachment.fromJson(i)).toList() : null, + ); + } + + Map toJson() { + final map = { + 'categoryId': categoryId, + 'fromWalletId': fromWalletId, + 'toWalletId': toWalletId, + 'type': type, + 'amount': amount, + 'date': date.toIso8601String().split('T')[0], + 'description': description, + 'notes': notes, + 'investmentStatus': investmentStatus, + 'maturityAmount': maturityAmount, + 'profitLoss': profitLoss, + 'closingDate': closingDate?.toIso8601String().split('T')[0], + 'dueDate': dueDate?.toIso8601String().split('T')[0], + 'alertSchedule': alertSchedule, + 'alertTime': alertTime, + }; + if (items != null) { + map['items'] = items!.map((i) => i.toJson()).toList(); + } + return map; + } +} + +class Budget { + final int id; + final int? categoryId; + final int? walletId; + final double monthlyLimit; + final bool isShared; + + Budget({required this.id, this.categoryId, this.walletId, required this.monthlyLimit, this.isShared = false}); + + factory Budget.fromJson(Map json) { + double limit = 0.0; + if (json['monthlyLimit'] != null) { + if (json['monthlyLimit'] is num) { + limit = (json['monthlyLimit'] as num).toDouble(); + } else if (json['monthlyLimit'] is String) { + limit = double.tryParse(json['monthlyLimit']) ?? 0.0; + } + } + int parseId(dynamic val, [int defaultVal = 0]) { + if (val == null) return defaultVal; + if (val is int) return val; + if (val is num) return val.toInt(); + if (val is String) return int.tryParse(val) ?? double.tryParse(val)?.toInt() ?? defaultVal; + return defaultVal; + } + + return Budget( + id: parseId(json['id']), + categoryId: json['categoryId'] != null ? parseId(json['categoryId']) : null, + walletId: json['walletId'] != null ? parseId(json['walletId']) : null, + monthlyLimit: limit, + isShared: json['isShared'] ?? false, + ); + } + + Map toJson() => { + 'categoryId': categoryId, + 'walletId': walletId, + 'monthlyLimit': monthlyLimit, + 'isShared': isShared, + }; +} + +class RecurringTransaction { + final int id; + final int? categoryId; + final int? fromWalletId; + final int? toWalletId; + final String type; + final double amount; + final String frequency; // DAILY, WEEKLY, MONTHLY + final DateTime? nextExecutionDate; + final DateTime? endDate; + final String? status; + final String? description; + + RecurringTransaction({ + required this.id, + this.categoryId, + this.fromWalletId, + this.toWalletId, + required this.type, + required this.amount, + required this.frequency, + this.nextExecutionDate, + this.endDate, + this.status, + this.description, + }); + + factory RecurringTransaction.fromJson(Map json) { + return RecurringTransaction( + id: json['id'], + categoryId: json['categoryId'], + fromWalletId: json['fromWalletId'], + toWalletId: json['toWalletId'], + type: json['type'], + amount: (json['amount'] is int) ? (json['amount'] as int).toDouble() : json['amount'], + frequency: json['frequency'], + nextExecutionDate: json['nextExecutionDate'] != null ? DateTime.parse(json['nextExecutionDate']) : null, + endDate: json['endDate'] != null ? DateTime.parse(json['endDate']) : null, + status: json['status'], + description: json['description'], + ); + } + + Map toJson() { + return { + 'id': id, + 'categoryId': categoryId, + 'fromWalletId': fromWalletId, + 'toWalletId': toWalletId, + 'type': type, + 'amount': amount, + 'frequency': frequency, + 'nextExecutionDate': nextExecutionDate?.toIso8601String(), + 'endDate': endDate?.toIso8601String(), + 'status': status ?? 'ACTIVE', + 'description': description, + }; + } +} +class Wallet { + final int id; + final String name; + final int ownerId; + final String? nature; + final double balance; + final String? currency; + final String? icon; + final String? color; + + Wallet({ + required this.id, + required this.name, + required this.ownerId, + this.nature, + this.balance = 0.0, + this.currency, + this.icon, + this.color, + }); + + factory Wallet.fromJson(Map json) { + int parseId(dynamic val, [int defaultVal = 0]) { + if (val == null) return defaultVal; + if (val is int) return val; + if (val is num) return val.toInt(); + if (val is String) return int.tryParse(val) ?? double.tryParse(val)?.toInt() ?? defaultVal; + return defaultVal; + } + + double parseDouble(dynamic val, [double defaultVal = 0.0]) { + if (val == null) return defaultVal; + if (val is num) return val.toDouble(); + if (val is String) return double.tryParse(val) ?? defaultVal; + return defaultVal; + } + + return Wallet( + id: parseId(json['id']), + name: json['name'], + ownerId: parseId(json['ownerId']), + nature: json['nature'], + balance: parseDouble(json['balance']), + currency: json['currency'], + icon: json['icon'], + color: json['color'], + ); + } + + Map toJson() => { + 'name': name, + 'nature': nature, + 'currency': currency, + 'initialBalance': balance, // Note: backend uses initialBalance on creation + 'icon': icon, + 'color': color, + }; +} +class WalletInvitation { + final int id; + final int walletId; + final int inviterId; + final String inviteeEmail; + final String status; + final String createdAt; + + WalletInvitation({ + required this.id, + required this.walletId, + required this.inviterId, + required this.inviteeEmail, + required this.status, + required this.createdAt, + }); + + factory WalletInvitation.fromJson(Map json) { + return WalletInvitation( + id: json['id'], + walletId: json['walletId'], + inviterId: json['inviterId'], + inviteeEmail: json['inviteeEmail'], + status: json['status'], + createdAt: json['createdAt'] ?? '', + ); + } +} + +class WalletMember { + final int userId; + final String email; + final String role; + final String joinedAt; + + WalletMember({ + required this.userId, + required this.email, + required this.role, + required this.joinedAt, + }); + + factory WalletMember.fromJson(Map json) { + return WalletMember( + userId: json['userId'], + email: json['email'], + role: json['role'], + joinedAt: json['joinedAt'] ?? '', + ); + } +} diff --git a/kifi-app/lib/features/transactions/data/repository.dart b/kifi-app/lib/features/transactions/data/repository.dart new file mode 100644 index 0000000..ef341cb --- /dev/null +++ b/kifi-app/lib/features/transactions/data/repository.dart @@ -0,0 +1,220 @@ +import 'dart:convert'; +import 'package:dio/dio.dart'; +import '../../../../core/network/dio_client.dart'; +import 'models.dart'; + +class ApiRepository { + final Dio dio = DioClient().dio; + + Future> getCategories() async { + final response = await dio.get('/categories'); + return (response.data as List).map((j) => Category.fromJson(j)).toList(); + } + + Future addCategory(Category category) async { + final response = await dio.post('/categories', data: category.toJson()); + return Category.fromJson(response.data); + } + + Future> getTransactions() async { + final response = await dio.get('/transactions'); + return (response.data as List).map((j) => Transaction.fromJson(j)).toList(); + } + + Future> searchTransactions({ + String? type, + int? walletId, + int? categoryId, + String? startDate, + String? endDate, + String? search, + int page = 0, + int size = 20, + }) async { + final queryParams = { + if (type != null) 'type': type, + if (walletId != null) 'walletId': walletId, + if (categoryId != null) 'categoryId': categoryId, + if (startDate != null) 'startDate': startDate, + if (endDate != null) 'endDate': endDate, + if (search != null && search.isNotEmpty) 'search': search, + 'page': page, + 'size': size, + }; + + final response = await dio.get('/transactions/search', queryParameters: queryParams); + + final content = (response.data['content'] as List).map((j) => Transaction.fromJson(j)).toList(); + final totalElements = response.data['totalElements'] as int; + final totalPages = response.data['totalPages'] as int; + + return { + 'content': content, + 'totalElements': totalElements, + 'totalPages': totalPages, + }; + } + + Future addTransaction(Transaction transaction) async { + final response = await dio.post('/transactions', data: transaction.toJson()); + return Transaction.fromJson(response.data); + } + + Future updateTransaction(Transaction transaction) async { + final response = await dio.put('/transactions/${transaction.id}', data: transaction.toJson()); + return Transaction.fromJson(response.data); + } + + Future deleteTransaction(int id) async { + await dio.delete('/transactions/$id'); + } + + Future addAttachment(int transactionId, String fileName, String contentType, String base64Content) async { + final bytes = base64Decode(base64Content); + final formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes(bytes, filename: fileName, contentType: DioMediaType.parse(contentType)), + }); + + final response = await dio.post('/transactions/$transactionId/attachments', data: formData); + return TransactionAttachment.fromJson(response.data); + } + + Future deleteAttachment(int attachmentId) async { + await dio.delete('/transactions/attachments/$attachmentId'); + } + + Future closeInvestment(int transactionId, double maturityAmount, DateTime closingDate, int toWalletId) async { + final response = await dio.put('/transactions/$transactionId/close-investment', data: { + 'maturityAmount': maturityAmount, + 'closingDate': closingDate.toIso8601String().split('T')[0], + 'toWalletId': toWalletId, + }); + return Transaction.fromJson(response.data); + } + + // Budgets + Future> getBudgets() async { + try { + final response = await dio.get('/budgets'); + if (response.data is List) { + return (response.data as List).map((j) => Budget.fromJson(j)).toList(); + } else if (response.data is Map && response.data.containsKey('data')) { + return (response.data['data'] as List).map((j) => Budget.fromJson(j)).toList(); + } + return []; + } catch (e) { + print('Error fetching budgets: $e'); + return []; + } + } + + Future addOrUpdateBudget(Budget budget) async { + final response = await dio.post('/budgets', data: budget.toJson()); + return Budget.fromJson(response.data); + } + + // Recurring Transactions + Future> getRecurringTransactions() async { + final response = await dio.get('/recurring-transactions'); + return (response.data as List).map((j) => RecurringTransaction.fromJson(j)).toList(); + } + + Future addRecurringTransaction(RecurringTransaction rt) async { + final response = await dio.post('/recurring-transactions', data: rt.toJson()); + return RecurringTransaction.fromJson(response.data); + } + + Future deleteRecurringTransaction(int id) async { + await dio.delete('/recurring-transactions/$id'); + } + + // Reports + Future> exportTransactions() async { + final response = await dio.get( + '/reports/export', + options: Options(responseType: ResponseType.bytes), + ); + return response.data; + } + + // Wallets + Future> getWallets() async { + final response = await dio.get('/wallets'); + return (response.data as List).map((j) => Wallet.fromJson(j)).toList(); + } + + Future createWallet({ + required String name, + String nature = 'CASH', + double initialBalance = 0.0, + String currency = 'INR', + String? icon, + String? color, + }) async { + final response = await dio.post('/wallets', data: { + 'name': name, + 'nature': nature, + 'initialBalance': initialBalance, + 'currency': currency, + 'icon': icon, + 'color': color, + }); + return Wallet.fromJson(response.data); + } + Future editWallet({ + required int id, + String? name, + String? nature, + String? icon, + String? color, + }) async { + final response = await dio.put('/wallets/$id', data: { + if (name != null) 'name': name, + if (nature != null) 'nature': nature, + if (icon != null) 'icon': icon, + if (color != null) 'color': color, + }); + return Wallet.fromJson(response.data); + } + + Future deleteWallet(int id) async { + try { + await dio.delete('/wallets/$id'); + } on DioException catch (e) { + if (e.response != null && e.response!.data != null && e.response!.data is Map) { + throw Exception(e.response!.data['error'] ?? 'Failed to delete wallet'); + } + throw Exception('Failed to delete wallet'); + } + } + Future inviteUserToWallet(int walletId, String email) async { + await dio.post('/wallets/$walletId/invite', data: {'email': email}); + } + + Future> getInvitations() async { + final response = await dio.get('/wallets/invitations'); + return (response.data as List).map((x) => WalletInvitation.fromJson(x)).toList(); + } + + Future acceptInvitation(int invitationId) async { + await dio.post('/wallets/invitations/$invitationId/accept'); + } + + Future rejectInvitation(int invitationId) async { + await dio.post('/wallets/invitations/$invitationId/reject'); + } + + Future> getWalletMembers(int walletId) async { + final response = await dio.get('/wallets/$walletId/members'); + return (response.data as List).map((x) => WalletMember.fromJson(x)).toList(); + } + + Future removeWalletMember(int walletId, int memberId) async { + await dio.delete('/wallets/$walletId/members/$memberId'); + } + + Future> getKnownContacts() async { + final response = await dio.get('/wallets/user-contacts'); + return (response.data as List).map((x) => x.toString()).toList(); + } +} diff --git a/kifi-app/lib/features/transactions/models/invitation.dart b/kifi-app/lib/features/transactions/models/invitation.dart new file mode 100644 index 0000000..41a72bf --- /dev/null +++ b/kifi-app/lib/features/transactions/models/invitation.dart @@ -0,0 +1,28 @@ +class WalletInvitation { + final int id; + final int walletId; + final int inviterId; + final String inviteeEmail; + final String status; + final String createdAt; + + WalletInvitation({ + required this.id, + required this.walletId, + required this.inviterId, + required this.inviteeEmail, + required this.status, + required this.createdAt, + }); + + factory WalletInvitation.fromJson(Map json) { + return WalletInvitation( + id: json['id'], + walletId: json['walletId'], + inviterId: json['inviterId'], + inviteeEmail: json['inviteeEmail'], + status: json['status'], + createdAt: json['createdAt'] ?? '', + ); + } +} diff --git a/kifi-app/lib/features/transactions/presentation/add_transaction_screen.dart b/kifi-app/lib/features/transactions/presentation/add_transaction_screen.dart new file mode 100644 index 0000000..00e8d37 --- /dev/null +++ b/kifi-app/lib/features/transactions/presentation/add_transaction_screen.dart @@ -0,0 +1,1110 @@ +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'widgets/attachment_gallery_screen.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import 'package:intl/intl.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart' as flutter_secure_storage; +import 'package:image_picker/image_picker.dart'; +import 'package:flutter_image_compress/flutter_image_compress.dart'; +import '../providers/providers.dart'; +import '../data/models.dart'; +import '../../../core/utils/snackbar_service.dart'; +import '../../../core/services/ocr_service.dart'; +import '../../../core/services/notification_service.dart'; + +class AddTransactionScreen extends ConsumerStatefulWidget { + final Transaction? transaction; + + const AddTransactionScreen({super.key, this.transaction}); + + @override + ConsumerState createState() => _AddTransactionScreenState(); +} + +class _AddTransactionScreenState extends ConsumerState { + final amountController = TextEditingController(); + final descriptionController = TextEditingController(); + DateTime selectedDate = DateTime.now(); + Category? selectedCategory; + Wallet? fromWallet; + Wallet? toWallet; + bool isSaving = false; + + bool isRecurring = false; + String recurringFrequency = 'MONTHLY'; + final List frequencies = ['DAILY', 'WEEKLY', 'MONTHLY']; + + DateTime? dueDate; + String alertSchedule = 'NONE'; + TimeOfDay alertTime = const TimeOfDay(hour: 9, minute: 0); + + final List lineItems = []; + final List existingAttachments = []; + final List deletedAttachmentIds = []; + final List> base64Attachments = []; + final ImagePicker _picker = ImagePicker(); + String? _jwtToken; + + final OcrService _ocrService = OcrService(); + + void _handleOcrResult(OcrResult? res) { + if (res == null) return; + if (res.amount != null) { + setState(() { + amountController.text = res.amount.toString(); + }); + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Found amount: Rs. ${res.amount}'))); + } else { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Could not find an amount in the receipt.'))); + } + } + + @override + void initState() { + super.initState(); + const flutter_secure_storage.FlutterSecureStorage().read(key: 'jwt_token').then((value) { + if (mounted) setState(() => _jwtToken = value); + }); + if (widget.transaction != null) { + final t = widget.transaction!; + amountController.text = t.amount.toString(); + if (t.description != null) descriptionController.text = t.description!; + selectedDate = t.date; + if (t.items != null) lineItems.addAll(t.items!); + if (t.attachments != null) existingAttachments.addAll(t.attachments!); + dueDate = t.dueDate; + alertSchedule = t.alertSchedule ?? 'NONE'; + if (t.alertTime != null) { + final parts = t.alertTime!.split(':'); + if (parts.length >= 2) { + alertTime = TimeOfDay(hour: int.tryParse(parts[0]) ?? 9, minute: int.tryParse(parts[1]) ?? 0); + } + } + } + } + + void _resolveInitialSelections(List? categories, List? wallets) { + if (widget.transaction != null && selectedCategory == null && categories != null) { + final matches = categories.where((c) => c.id == widget.transaction!.categoryId); + if (matches.isNotEmpty) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) setState(() => selectedCategory = matches.first); + }); + } + } + + if (wallets != null && wallets.isNotEmpty && (fromWallet == null || toWallet == null)) { + if (widget.transaction != null) { + final fMatches = wallets.where((w) => w.id == widget.transaction!.fromWalletId); + if (fMatches.isNotEmpty && fromWallet == null) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) setState(() => fromWallet = fMatches.first); + }); + } + final tMatches = wallets.where((w) => w.id == widget.transaction!.toWalletId); + if (tMatches.isNotEmpty && toWallet == null) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) setState(() => toWallet = tMatches.first); + }); + } + } + } + + if (widget.transaction == null) { + if (categories != null && categories.length == 1 && selectedCategory == null) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) setState(() => selectedCategory = categories.first); + }); + } + if (wallets != null && wallets.length == 1 && toWallet == null) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) setState(() => toWallet = wallets.first); + }); + } + } + } + + Future _pickImage(ImageSource source) async { + if ((base64Attachments.length + existingAttachments.length) >= 3) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Max 3 attachments allowed'))); + return; + } + final XFile? image = await _picker.pickImage(source: source); + if (image != null) { + final bytes = await image.readAsBytes(); + final compressedBytes = await FlutterImageCompress.compressWithList( + bytes, + minWidth: 600, + quality: 80, + ); + final base64String = base64Encode(compressedBytes); + setState(() { + base64Attachments.add({ + 'fileName': image.name, + 'contentType': 'image/jpeg', + 'base64Content': base64String, + }); + }); + } + } + + void _addLineItem() { + final nameCtrl = TextEditingController(); + final amountCtrl = TextEditingController(); + showDialog( + context: context, + builder: (ctx) => Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(28), + boxShadow: [BoxShadow(color: Colors.black.withValues(alpha: 0.1), blurRadius: 20, offset: const Offset(0, 10))], + ), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Add Item', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + const SizedBox(height: 24), + TextField( + controller: nameCtrl, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + labelText: 'Item Name', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ) + ), + const SizedBox(height: 16), + TextField( + controller: amountCtrl, + keyboardType: const TextInputType.numberWithOptions(decimal: true, signed: false), + textInputAction: TextInputAction.done, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + labelText: 'Amount', + prefixText: 'Rs. ', + prefixStyle: const TextStyle(color: Colors.black87, fontWeight: FontWeight.w500, fontSize: 16), + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ) + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + style: TextButton.styleFrom(foregroundColor: Colors.grey.shade700, padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12))), + child: const Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold)) + ), + const SizedBox(width: 12), + ElevatedButton( + onPressed: () { + if (nameCtrl.text.isNotEmpty && amountCtrl.text.isNotEmpty) { + setState(() { + lineItems.add(TransactionItem(name: nameCtrl.text, amount: double.parse(amountCtrl.text))); + double currentTotal = double.tryParse(amountController.text) ?? 0; + amountController.text = (currentTotal + double.parse(amountCtrl.text)).toString(); + }); + Navigator.pop(ctx); + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text('Add', style: TextStyle(fontWeight: FontWeight.bold)) + ), + ], + ), + ], + ), + ), + ), + ), + ), + ); + } + + Future _showCreateWalletDialog() async { + final ctrl = TextEditingController(); + String selectedNature = 'CASH'; + final natures = ['CASH', 'SAVINGS', 'INVESTMENTS', 'LOAN', 'LENDING', 'PAYABLES', 'INCOME', 'EXPENSE']; + + await showDialog( + context: context, + builder: (ctx) => StatefulBuilder( + builder: (context, setStateDialog) { + return Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(28), + boxShadow: [BoxShadow(color: Colors.black.withValues(alpha: 0.1), blurRadius: 20, offset: const Offset(0, 10))], + ), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration(color: const Color(0xFF6C63FF).withValues(alpha: 0.1), shape: BoxShape.circle), + child: const Icon(LucideIcons.wallet, color: Color(0xFF6C63FF), size: 24), + ), + const SizedBox(width: 16), + const Text('New Account', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + ], + ), + const SizedBox(height: 24), + TextField( + controller: ctrl, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Account Name (e.g. Household)', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 16), + DropdownButtonFormField( + value: selectedNature, + style: const TextStyle(fontWeight: FontWeight.w500, color: Colors.black87), + decoration: InputDecoration( + labelText: 'Account Nature', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + items: natures.map((n) => DropdownMenuItem(value: n, child: Text(n))).toList(), + onChanged: (val) { + if (val != null) setStateDialog(() => selectedNature = val); + }, + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + style: TextButton.styleFrom(foregroundColor: Colors.grey.shade700, padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12))), + child: const Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold)), + ), + const SizedBox(width: 12), + ElevatedButton( + onPressed: () async { + if (ctrl.text.isNotEmpty) { + await ref.read(walletProvider.notifier).createWallet(name: ctrl.text, nature: selectedNature); + if (context.mounted) Navigator.pop(ctx); + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text('Create', style: TextStyle(fontWeight: FontWeight.bold)), + ) + ], + ), + ], + ), + ), + ), + ), + ); + } + ), + ); + } + + void _showCategoryPicker() { + showModalBottomSheet( + context: context, + builder: (ctx) { + return Consumer(builder: (context, ref, child) { + final categoriesState = ref.watch(categoryProvider); + return Column( + children: [ + ListTile( + title: const Text('Select Category', style: TextStyle(fontWeight: FontWeight.bold)), + trailing: IconButton( + icon: const Icon(LucideIcons.plus), + onPressed: () => _showQuickAdd('Category'), + ), + ), + Expanded( + child: categoriesState.when( + loading: () => const Center(child: CircularProgressIndicator()), + error: (e, st) => Center(child: Text('Error: $e')), + data: (categories) => ListView.builder( + itemCount: categories.length, + itemBuilder: (context, index) { + final c = categories[index]; + return ListTile( + leading: const Icon(LucideIcons.tag), + title: Text(c.name), + onTap: () { + setState(() => selectedCategory = c); + Navigator.pop(context); + }, + ); + }, + ), + ), + ) + ], + ); + }); + }, + ); + } + + void _showWalletPicker(bool isDestination) { + showModalBottomSheet( + context: context, + builder: (ctx) { + return Consumer(builder: (context, ref, child) { + final walletsState = ref.watch(walletProvider); + return Column( + children: [ + ListTile( + title: Text(isDestination ? 'Select To Account' : 'Select From Account', style: const TextStyle(fontWeight: FontWeight.bold)), + leading: IconButton( + icon: const Icon(LucideIcons.plus), + tooltip: 'Create New Account', + onPressed: () { + Navigator.pop(context); // Close picker + _showCreateWalletDialog(); + }, + ), + trailing: IconButton( + icon: const Icon(LucideIcons.x), + onPressed: () { + if (isDestination) { + setState(() => toWallet = null); + } else { + setState(() => fromWallet = null); + } + Navigator.pop(context); + }, + ), + ), + Expanded( + child: walletsState.when( + loading: () => const Center(child: CircularProgressIndicator()), + error: (e, st) => Center(child: Text('Error: $e')), + data: (wallets) { + return ListView.builder( + itemCount: wallets.length, + itemBuilder: (context, index) { + final w = wallets[index]; + return ListTile( + leading: const Icon(LucideIcons.wallet), + title: Text(w.name), + subtitle: Text('${w.nature ?? "CASH"} • Balance: Rs. ${w.balance}'), + onTap: () { + if (isDestination) { + setState(() => toWallet = w); + } else { + setState(() => fromWallet = w); + } + Navigator.pop(context); + }, + ); + }, + ); + } + ), + ) + ], + ); + }); + }, + ); + } + + Future _pickDate() async { + final picked = await showDatePicker( + context: context, + initialDate: selectedDate, + firstDate: DateTime(2000), + lastDate: DateTime(2101), + ); + if (picked != null && picked != selectedDate) { + setState(() { + selectedDate = picked; + }); + } + } + + void _showQuickAdd(String type) { + Navigator.pop(context); + final ctrl = TextEditingController(); + showDialog( + context: context, + builder: (ctx) => Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(28)), + elevation: 0, + backgroundColor: Colors.transparent, + child: GestureDetector( + onTap: () => FocusScope.of(context).unfocus(), + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(28), + boxShadow: [BoxShadow(color: Colors.black.withValues(alpha: 0.1), blurRadius: 20, offset: const Offset(0, 10))], + ), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Add New $type', style: const TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + const SizedBox(height: 24), + TextField( + controller: ctrl, + textInputAction: TextInputAction.done, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Name', + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + style: TextButton.styleFrom(foregroundColor: Colors.grey.shade700, padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12))), + child: const Text('Cancel', style: TextStyle(fontWeight: FontWeight.bold)), + ), + const SizedBox(width: 12), + ElevatedButton( + onPressed: () async { + if (ctrl.text.isEmpty) return; + if (type == 'Category') { + await ref.read(categoryProvider.notifier).addCategory(ctrl.text, 'tag'); + } + if (mounted) Navigator.pop(ctx); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text('Add', style: TextStyle(fontWeight: FontWeight.bold)), + ) + ], + ), + ], + ), + ), + ), + ), + ), + ); + } + + Future _saveTransaction() async { + final amountText = amountController.text.trim(); + if (amountText.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Please enter an amount'))); + return; + } + + if (toWallet == null) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Please select a To Account'))); + return; + } + + // Check if From Account is mandatory + bool fromAccountOptional = (toWallet?.nature == 'SAVINGS' || toWallet?.nature == 'INCOME'); + if (fromWallet == null && !fromAccountOptional) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Please select a From Account'))); + return; + } + + if (fromWallet != null && toWallet != null && fromWallet?.id == toWallet?.id) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('From and To accounts cannot be the same'))); + return; + } + + final amount = double.tryParse(amountText); + if (amount == null) return; + + if (fromWallet != null && fromWallet!.balance < amount) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Insufficient balance in From Account'))); + return; + } + + setState(() => isSaving = true); + + // Determine internal type based on natures + String type = 'TRANSFER'; + if (fromWallet == null) { + type = 'INCOME'; + } else if (toWallet == null) { // Though toWallet is mandatory, just in case + type = 'EXPENSE'; + } else if (fromWallet?.nature == 'INCOME') { + type = 'INCOME'; + } else if (toWallet?.nature == 'PAYABLES' || toWallet?.nature == 'EXPENSE') { + type = 'EXPENSE'; + } else if (toWallet?.nature == 'INVESTMENTS') { + type = 'INVESTMENT'; + } + + if (isRecurring && widget.transaction == null) { + DateTime nextDate = selectedDate; + if (recurringFrequency == 'DAILY') { + nextDate = nextDate.add(const Duration(days: 1)); + } else if (recurringFrequency == 'WEEKLY') { + nextDate = nextDate.add(const Duration(days: 7)); + } else if (recurringFrequency == 'MONTHLY') { + nextDate = DateTime(nextDate.year, nextDate.month + 1, nextDate.day); + } + + final rt = RecurringTransaction( + id: 0, + type: type, + amount: amount, + categoryId: selectedCategory?.id, + fromWalletId: fromWallet?.id, + toWalletId: toWallet?.id, + frequency: recurringFrequency, + description: descriptionController.text.trim(), + nextExecutionDate: nextDate, + status: 'ACTIVE', + ); + await ref.read(recurringTransactionProvider.notifier).addRecurringTransaction(rt); + + final tx = Transaction( + id: 0, + type: type, + amount: amount, + date: selectedDate, + description: descriptionController.text.trim(), + categoryId: selectedCategory?.id, + fromWalletId: fromWallet?.id, + toWalletId: toWallet?.id, + dueDate: dueDate, + alertSchedule: alertSchedule == 'NONE' ? null : alertSchedule, + alertTime: alertSchedule == 'NONE' ? null : '${alertTime.hour.toString().padLeft(2, '0')}:${alertTime.minute.toString().padLeft(2, '0')}:00', + items: lineItems.isNotEmpty ? lineItems : null, + ); + await ref.read(transactionProvider.notifier).addTransaction(tx, base64Attachments: base64Attachments); + } else { + final tx = Transaction( + id: widget.transaction?.id ?? 0, + type: type, + amount: amount, + date: selectedDate, + description: descriptionController.text.trim(), + categoryId: selectedCategory?.id, + fromWalletId: fromWallet?.id, + toWalletId: toWallet?.id, + dueDate: dueDate, + alertSchedule: alertSchedule == 'NONE' ? null : alertSchedule, + alertTime: alertSchedule == 'NONE' ? null : '${alertTime.hour.toString().padLeft(2, '0')}:${alertTime.minute.toString().padLeft(2, '0')}:00', + items: lineItems.isNotEmpty ? lineItems : null, + ); + + if (widget.transaction == null) { + await ref.read(transactionProvider.notifier).addTransaction(tx, base64Attachments: base64Attachments); + } else { + await ref.read(transactionProvider.notifier).updateTransaction( + tx, + base64Attachments: base64Attachments, + deletedAttachmentIds: deletedAttachmentIds, + ); + } + + if (alertSchedule != 'NONE' && dueDate != null) { + DateTime alertDate = dueDate!; + if (alertSchedule == '1_DAY_BEFORE') { + alertDate = dueDate!.subtract(const Duration(days: 1)); + } else if (alertSchedule == '2_DAYS_BEFORE') { + alertDate = dueDate!.subtract(const Duration(days: 2)); + } else if (alertSchedule == '1_WEEK_BEFORE') { + alertDate = dueDate!.subtract(const Duration(days: 7)); + } + + final notifyDate = DateTime(alertDate.year, alertDate.month, alertDate.day, alertTime.hour, alertTime.minute); + if (notifyDate.isAfter(DateTime.now())) { + NotificationService().scheduleNotification( + id: DateTime.now().millisecondsSinceEpoch.remainder(100000), + title: 'Payment Due!', + body: 'Rs. ${amount.toStringAsFixed(0)} is due for ${toWallet?.name}', + scheduledDate: notifyDate, + ); + } + } + } + + if (mounted) { + SnackBarService.showSuccess(context, 'Transaction saved successfully'); + Navigator.pop(context); + } + } + + @override + Widget build(BuildContext context) { + final categoriesState = ref.watch(categoryProvider); + final walletsState = ref.watch(walletProvider); + + _resolveInitialSelections(categoriesState.value, walletsState.value); + + return Scaffold( + appBar: AppBar( + title: Text(widget.transaction == null ? 'Add Transaction' : 'Edit Transaction'), + backgroundColor: Colors.transparent, + elevation: 0, + actions: [ + IconButton( + icon: const Icon(LucideIcons.camera), + tooltip: 'Scan Receipt', + onPressed: () async { + showModalBottomSheet( + context: context, + builder: (ctx) => SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ListTile( + leading: const Icon(LucideIcons.camera), + title: const Text('Take a Photo'), + onTap: () async { + Navigator.pop(ctx); + final res = await _ocrService.scanReceiptFromCamera(); + _handleOcrResult(res); + }, + ), + ListTile( + leading: const Icon(LucideIcons.image), + title: const Text('Choose from Gallery'), + onTap: () async { + Navigator.pop(ctx); + final res = await _ocrService.scanReceiptFromGallery(); + _handleOcrResult(res); + }, + ), + ], + ), + ), + ); + }, + ) + ], + ), + body: SafeArea( + child: SingleChildScrollView( + padding: const EdgeInsets.all(24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextField( + controller: amountController, + keyboardType: const TextInputType.numberWithOptions(decimal: true, signed: false), + textInputAction: TextInputAction.next, + style: const TextStyle(fontSize: 32, fontWeight: FontWeight.bold, color: Color(0xFF6C63FF)), + textAlign: TextAlign.center, + decoration: InputDecoration( + hintText: '0.00', + hintStyle: TextStyle(color: Colors.grey.shade400), + prefixText: 'Rs. ', + prefixStyle: const TextStyle(fontSize: 24, fontWeight: FontWeight.bold, color: Colors.black87), + filled: true, + fillColor: const Color(0xFF6C63FF).withValues(alpha: 0.05), + contentPadding: const EdgeInsets.symmetric(vertical: 24, horizontal: 24), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(24), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(24), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 24), + TextField( + controller: descriptionController, + textInputAction: TextInputAction.done, + style: const TextStyle(fontWeight: FontWeight.w500), + decoration: InputDecoration( + hintText: 'Description (Optional)', + prefixIcon: const Icon(LucideIcons.alignLeft, color: Colors.grey), + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + ), + const SizedBox(height: 16), + ListTile( + title: Text(DateFormat('dd MMM yyyy').format(selectedDate)), + trailing: const Icon(LucideIcons.calendar), + onTap: _pickDate, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: Colors.grey.shade300)), + ), + const SizedBox(height: 12), + + Tooltip( + message: 'The destination account where the money is going to.', + child: ListTile( + title: Text(toWallet?.name ?? 'To Account'), + subtitle: toWallet != null ? Text(toWallet!.nature ?? 'CASH') : null, + trailing: const Icon(LucideIcons.chevronRight), + onTap: () => _showWalletPicker(true), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: Colors.grey.shade300)), + ), + ), + const SizedBox(height: 12), + + Tooltip( + message: 'The source account where the money is coming from.', + child: ListTile( + title: Text(fromWallet?.name ?? 'From Account${(toWallet?.nature == "SAVINGS" || toWallet?.nature == "INCOME") ? " (Optional)" : ""}'), + subtitle: fromWallet != null ? Text(fromWallet!.nature ?? 'CASH') : null, + trailing: const Icon(LucideIcons.chevronRight), + onTap: () => _showWalletPicker(false), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: Colors.grey.shade300)), + ), + ), + const SizedBox(height: 12), + + ListTile( + title: Text(selectedCategory?.name ?? 'Select Category (Optional)'), + trailing: const Icon(LucideIcons.chevronRight), + onTap: _showCategoryPicker, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: Colors.grey.shade300)), + ), + const SizedBox(height: 12), + + if (toWallet?.nature == 'PAYABLES' || toWallet?.nature == 'LOAN') ...[ + ListTile( + title: Text(dueDate == null ? 'Set Due Date (Optional)' : 'Due Date: ${DateFormat('dd MMM yyyy').format(dueDate!)}'), + trailing: const Icon(LucideIcons.calendar), + onTap: () async { + final picked = await showDatePicker( + context: context, + initialDate: dueDate ?? DateTime.now(), + firstDate: DateTime.now().subtract(const Duration(days: 30)), + lastDate: DateTime.now().add(const Duration(days: 365 * 5)), + ); + if (picked != null) { + setState(() => dueDate = picked); + } + }, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: Colors.grey.shade300)), + ), + if (dueDate != null) ...[ + const SizedBox(height: 8), + DropdownButtonFormField( + value: alertSchedule, + decoration: InputDecoration( + labelText: 'Alert Notification', + border: OutlineInputBorder(borderRadius: BorderRadius.circular(12)), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + ), + items: const [ + DropdownMenuItem(value: 'NONE', child: Text('No Alert')), + DropdownMenuItem(value: 'ON_DUE_DATE', child: Text('On Due Date')), + DropdownMenuItem(value: '1_DAY_BEFORE', child: Text('1 Day Before')), + DropdownMenuItem(value: '2_DAYS_BEFORE', child: Text('2 Days Before')), + DropdownMenuItem(value: '1_WEEK_BEFORE', child: Text('1 Week Before')), + ], + onChanged: (val) { + if (val != null) setState(() => alertSchedule = val); + }, + ), + if (alertSchedule != 'NONE') ...[ + const SizedBox(height: 8), + ListTile( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), side: BorderSide(color: Colors.grey.shade300)), + title: const Text('Alert Time'), + trailing: Text(alertTime.format(context), style: const TextStyle(fontWeight: FontWeight.bold)), + onTap: () async { + final time = await showTimePicker( + context: context, + initialTime: alertTime, + ); + if (time != null) { + setState(() => alertTime = time); + } + }, + ), + ], + ], + const SizedBox(height: 12), + ], + + // Line Items Section + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text('Items', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16)), + TextButton.icon( + onPressed: _addLineItem, + icon: const Icon(LucideIcons.plus, size: 16), + label: const Text('Add Item'), + ) + ], + ), + if (lineItems.isNotEmpty) + Container( + decoration: BoxDecoration(border: Border.all(color: Colors.grey.shade300), borderRadius: BorderRadius.circular(12)), + child: ListView.separated( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: lineItems.length, + separatorBuilder: (c, i) => const Divider(height: 1), + itemBuilder: (c, i) { + final item = lineItems[i]; + return ListTile( + title: Text(item.name), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text('Rs. ${item.amount}', style: const TextStyle(fontWeight: FontWeight.bold)), + IconButton( + icon: const Icon(LucideIcons.trash2, color: Colors.red, size: 18), + onPressed: () => setState(() => lineItems.removeAt(i)), + ) + ], + ), + ); + }, + ), + ), + const SizedBox(height: 12), + + // Attachments Section + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Attachments (${base64Attachments.length}/3)', style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16)), + if (base64Attachments.length < 3) + TextButton.icon( + onPressed: () { + showModalBottomSheet( + context: context, + builder: (ctx) => SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ListTile( + leading: const Icon(LucideIcons.camera), + title: const Text('Camera'), + onTap: () { + Navigator.pop(ctx); + _pickImage(ImageSource.camera); + }, + ), + ListTile( + leading: const Icon(LucideIcons.image), + title: const Text('Gallery'), + onTap: () { + Navigator.pop(ctx); + _pickImage(ImageSource.gallery); + }, + ), + ], + ), + ), + ); + }, + icon: const Icon(LucideIcons.paperclip, size: 16), + label: const Text('Attach'), + ) + ], + ), + if (existingAttachments.isNotEmpty) + SizedBox( + height: 100, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: existingAttachments.length, + itemBuilder: (c, i) { + final att = existingAttachments[i]; + return Stack( + children: [ + GestureDetector( + onTap: () => _openGallery(i), + child: Container( + margin: const EdgeInsets.only(right: 8, top: 8), + width: 80, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + image: DecorationImage( + image: _jwtToken != null + ? NetworkImage('https://app.technobeesolutions.in/api/kifi/transactions/${widget.transaction!.id}/attachments/${att.id}/content', headers: {'Authorization': 'Bearer $_jwtToken'}) + : const AssetImage('assets/images/placeholder.png') as ImageProvider, + fit: BoxFit.cover, + ), + ), + ), + ), + Positioned( + top: 0, + right: 0, + child: GestureDetector( + onTap: () { + setState(() { + deletedAttachmentIds.add(att.id); + existingAttachments.removeAt(i); + }); + }, + child: Container( + padding: const EdgeInsets.all(2), + decoration: const BoxDecoration(color: Colors.red, shape: BoxShape.circle), + child: const Icon(LucideIcons.x, size: 12, color: Colors.white), + ), + ), + ), + ], + ); + }, + ), + ), + if (base64Attachments.isNotEmpty) + SizedBox( + height: 100, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: base64Attachments.length, + itemBuilder: (c, i) { + final att = base64Attachments[i]; + return Stack( + children: [ + GestureDetector( + onTap: () => _openGallery(existingAttachments.length + i), + child: Container( + margin: const EdgeInsets.only(right: 8, top: 8), + width: 80, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + image: DecorationImage( + image: MemoryImage(base64Decode(att['base64Content']!)), + fit: BoxFit.cover, + ), + ), + ), + ), + Positioned( + top: 0, + right: 0, + child: GestureDetector( + onTap: () => setState(() => base64Attachments.removeAt(i)), + child: Container( + padding: const EdgeInsets.all(2), + decoration: const BoxDecoration(color: Colors.red, shape: BoxShape.circle), + child: const Icon(LucideIcons.x, size: 12, color: Colors.white), + ), + ), + ), + ], + ); + }, + ), + ), + const SizedBox(height: 24), + if (widget.transaction == null) + SwitchListTile( + title: const Text('Recurring Transaction'), + value: isRecurring, + activeColor: Theme.of(context).colorScheme.primary, + onChanged: (val) => setState(() => isRecurring = val), + ), + if (isRecurring && widget.transaction == null) + DropdownButtonFormField( + value: recurringFrequency, + decoration: InputDecoration( + labelText: 'Frequency', + border: OutlineInputBorder(borderRadius: BorderRadius.circular(12)), + ), + items: frequencies.map((f) => DropdownMenuItem(value: f, child: Text(f))).toList(), + onChanged: (val) { + if (val != null) setState(() => recurringFrequency = val); + }, + ), + const SizedBox(height: 32), + SizedBox( + height: 56, + child: ElevatedButton( + onPressed: isSaving ? null : _saveTransaction, + style: ElevatedButton.styleFrom( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + ), + child: isSaving + ? const CircularProgressIndicator() + : const Text('Save Transaction', style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)), + ), + ), + const SizedBox(height: 32), + ], + ), + ), + ), + ); + } + + void _openGallery(int index) { + final List allImages = []; + + // Add existing attachments + for (final att in existingAttachments) { + if (_jwtToken != null) { + allImages.add(NetworkImage('https://app.technobeesolutions.in/api/kifi/transactions/${widget.transaction!.id}/attachments/${att.id}/content', headers: {'Authorization': 'Bearer $_jwtToken'})); + } else { + allImages.add(const AssetImage('assets/images/placeholder.png')); + } + } + + // Add new attachments + for (final att in base64Attachments) { + allImages.add(MemoryImage(base64Decode(att['base64Content']!))); + } + + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => AttachmentGalleryScreen( + images: allImages, + initialIndex: index, + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/transactions/presentation/all_transactions_screen.dart b/kifi-app/lib/features/transactions/presentation/all_transactions_screen.dart new file mode 100644 index 0000000..73b011f --- /dev/null +++ b/kifi-app/lib/features/transactions/presentation/all_transactions_screen.dart @@ -0,0 +1,308 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import 'package:intl/intl.dart'; +import '../providers/providers.dart'; +import '../../dashboard/presentation/maturity_dialog.dart'; +import '../providers/paginated_transaction_provider.dart'; +import '../../../core/widgets/shimmer_loading.dart'; +import '../../../core/widgets/empty_state.dart'; +import 'add_transaction_screen.dart'; +import '../presentation/widgets/transaction_filter_sheet.dart'; +import '../../../core/theme/nature_colors.dart'; + +class AllTransactionsScreen extends ConsumerStatefulWidget { + const AllTransactionsScreen({super.key}); + + @override + ConsumerState createState() => _AllTransactionsScreenState(); +} + +class _AllTransactionsScreenState extends ConsumerState { + final ScrollController _scrollController = ScrollController(); + final TextEditingController _searchController = TextEditingController(); + + @override + void initState() { + super.initState(); + _scrollController.addListener(() { + if (_scrollController.position.pixels >= _scrollController.position.maxScrollExtent - 200) { + ref.read(paginatedTransactionProvider.notifier).loadMore(); + } + }); + } + + @override + void dispose() { + _scrollController.dispose(); + _searchController.dispose(); + super.dispose(); + } + + void _onSearchChanged(String value) { + // Basic debounce for text search + Future.delayed(const Duration(milliseconds: 500), () { + if (_searchController.text == value) { + ref.read(paginatedTransactionProvider.notifier).updateFilters(search: value); + } + }); + } + + void _openFilterSheet() { + showModalBottomSheet( + context: context, + isScrollControlled: true, + builder: (context) => const TransactionFilterSheet(), + ); + } + + @override + Widget build(BuildContext context) { + final paginatedState = ref.watch(paginatedTransactionProvider); + final transactions = paginatedState.transactions; + final categoriesState = ref.watch(categoryProvider); + final walletsState = ref.watch(walletProvider); + + return Scaffold( + appBar: AppBar( + title: const Text('Transactions'), + actions: [ + IconButton( + icon: const Icon(LucideIcons.filter), + onPressed: _openFilterSheet, + ), + IconButton( + icon: const Icon(LucideIcons.plus), + onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => const AddTransactionScreen())); + }, + ), + ], + bottom: PreferredSize( + preferredSize: const Size.fromHeight(60), + child: Padding( + padding: const EdgeInsets.fromLTRB(16, 0, 16, 12), + child: TextField( + controller: _searchController, + onChanged: _onSearchChanged, + decoration: InputDecoration( + hintText: 'Search transactions...', + prefixIcon: const Icon(LucideIcons.search), + suffixIcon: _searchController.text.isNotEmpty ? IconButton( + icon: const Icon(LucideIcons.x), + onPressed: () { + _searchController.clear(); + _onSearchChanged(''); + }, + ) : null, + filled: true, + fillColor: Colors.grey.shade100, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2) + ), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + ), + ), + ), + ), + ), + body: Builder( + builder: (context) { + if (transactions.isEmpty && paginatedState.isLoading) { + return ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: 8, + itemBuilder: (context, index) => const ShimmerCard(), + ); + } + + if (transactions.isEmpty) { + return const EmptyStateWidget( + icon: LucideIcons.fileText, + title: 'No Transactions', + message: 'No transactions found matching your criteria.', + ); + } + + return RefreshIndicator( + onRefresh: () async { + ref.read(paginatedTransactionProvider.notifier).clearFilters(); + _searchController.clear(); + }, + child: ListView.builder( + controller: _scrollController, + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.all(16.0), + itemCount: transactions.length + (paginatedState.hasMore ? 1 : 0), + itemBuilder: (context, index) { + if (index == transactions.length) { + return const Padding( + padding: EdgeInsets.all(16.0), + child: Center(child: CircularProgressIndicator()), + ); + } + + final t = transactions[index]; + final isIncome = t.type == 'INCOME' || (t.type == 'TRANSFER' && t.fromWalletId == null); + final isInvestment = t.type == 'INVESTMENT'; + final isExpense = t.type == 'EXPENSE' || (t.type == 'TRANSFER' && t.toWalletId == null); + final isTransfer = t.type == 'TRANSFER' && t.fromWalletId != null && t.toWalletId != null; + + Color typeColor = Colors.grey; + IconData typeIcon = LucideIcons.arrowRightLeft; + + if (isIncome) { + typeColor = NatureColors.getColor('INCOME'); + typeIcon = LucideIcons.arrowDownCircle; + } else if (isExpense) { + typeColor = NatureColors.getColor('EXPENSE'); + typeIcon = LucideIcons.arrowUpCircle; + } else if (isInvestment) { + typeColor = NatureColors.getColor('INVESTMENTS'); + typeIcon = LucideIcons.trendingUp; + } else if (isTransfer) { + typeColor = NatureColors.getColor('TRANSFER'); + if (walletsState.hasValue) { + final toW = walletsState.value!.where((w) => w.id == t.toWalletId).firstOrNull; + final fromW = walletsState.value!.where((w) => w.id == t.fromWalletId).firstOrNull; + + if (toW != null && (toW.nature == 'PAYABLES' || toW.nature == 'LOAN')) { + typeColor = NatureColors.getColor('PAYABLES'); + typeIcon = LucideIcons.alertCircle; + } else if (toW != null && (toW.nature == 'RECEIVABLES' || toW.nature == 'LENDING')) { + typeColor = NatureColors.getColor('RECEIVABLES'); + typeIcon = LucideIcons.arrowDownLeft; + } else if (fromW != null && (fromW.nature == 'PAYABLES' || fromW.nature == 'LOAN')) { + typeColor = NatureColors.getColor('PAYABLES'); + typeIcon = LucideIcons.alertCircle; + } else if (fromW != null && (fromW.nature == 'RECEIVABLES' || fromW.nature == 'LENDING')) { + typeColor = NatureColors.getColor('RECEIVABLES'); + typeIcon = LucideIcons.arrowDownLeft; + } + } + } + + String categoryName = 'Unknown'; + if (categoriesState.hasValue) { + final match = categoriesState.value!.where((c) => c.id == t.categoryId); + if (match.isNotEmpty) categoryName = match.first.name; + } + + String accountName = 'Unknown'; + if (walletsState.hasValue) { + if (isExpense && t.toWalletId != null) { + final match = walletsState.value!.where((w) => w.id == t.toWalletId); + if (match.isNotEmpty) accountName = match.first.name; + } else if (isIncome && t.toWalletId != null) { + final match = walletsState.value!.where((w) => w.id == t.toWalletId); + if (match.isNotEmpty) accountName = match.first.name; + } else if (isTransfer && t.toWalletId != null) { + final match = walletsState.value!.where((w) => w.id == t.toWalletId); + if (match.isNotEmpty) accountName = 'To ${match.first.name}'; + } + } + + String fromName = ''; + if (t.fromWalletId != null && walletsState.hasValue) { + final match = walletsState.value!.where((w) => w.id == t.fromWalletId); + if (match.isNotEmpty) fromName = match.first.name; + } + + String toName = ''; + if (t.toWalletId != null && walletsState.hasValue) { + final match = walletsState.value!.where((w) => w.id == t.toWalletId); + if (match.isNotEmpty) toName = match.first.name; + } + + String subtitleText = ''; + if (categoryName == 'Unknown' && fromName.isNotEmpty && toName.isNotEmpty) { + subtitleText = '$fromName → $toName • ${DateFormat('MMM dd, yyyy').format(t.date)}'; + } else if (categoryName == 'Unknown' && toName.isNotEmpty) { + subtitleText = 'To $toName • ${DateFormat('MMM dd, yyyy').format(t.date)}'; + } else if (categoryName == 'Unknown' && fromName.isNotEmpty) { + subtitleText = 'From $fromName • ${DateFormat('MMM dd, yyyy').format(t.date)}'; + } else { + subtitleText = '$categoryName • ${DateFormat('MMM dd, yyyy').format(t.date)}${fromName.isNotEmpty ? ' • 💼 $fromName' : ''}'; + } + + return Dismissible( + key: Key(t.id.toString()), + direction: DismissDirection.endToStart, + background: Container( + color: Colors.red, + alignment: Alignment.centerRight, + padding: const EdgeInsets.only(right: 20), + child: const Icon(LucideIcons.trash2, color: Colors.white), + ), + confirmDismiss: (dir) async { + return await showDialog( + context: context, + builder: (ctx) => AlertDialog( + title: const Text('Delete Transaction?'), + content: const Text('Are you sure you want to delete this transaction?'), + actions: [ + TextButton(onPressed: () => Navigator.pop(ctx, false), child: const Text('Cancel')), + TextButton( + onPressed: () => Navigator.pop(ctx, true), + child: const Text('Delete', style: TextStyle(color: Colors.red)) + ), + ], + ), + ); + }, + onDismissed: (dir) { + ref.read(transactionProvider.notifier).deleteTransaction(t.id); + ref.read(paginatedTransactionProvider.notifier).removeTransactionFromState(t.id); + }, + child: Card( + margin: const EdgeInsets.only(bottom: 12), + child: Column( + children: [ + ListTile( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => AddTransactionScreen(transaction: t))); + }, + leading: CircleAvatar( + backgroundColor: typeColor.withValues(alpha: 0.1), + child: Icon(typeIcon, color: typeColor), + ), + title: Text((t.description != null && t.description!.isNotEmpty) ? t.description! : accountName, style: const TextStyle(fontWeight: FontWeight.bold)), + subtitle: Text(subtitleText), + trailing: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + '${isIncome ? '+' : (isTransfer ? '' : '-')}Rs. ${t.amount.toStringAsFixed(0)}', + style: TextStyle(fontWeight: FontWeight.bold, color: typeColor), + ), + if (t.investmentStatus == 'OPEN' && (typeColor == NatureColors.getColor('INVESTMENTS') || typeColor == NatureColors.getColor('RECEIVABLES'))) + GestureDetector( + onTap: () { + showDialog(context: context, builder: (_) => MaturityDialog(transaction: t)); + }, + child: const Padding( + padding: EdgeInsets.only(top: 4.0), + child: Text('Close', style: TextStyle(color: Colors.blue, fontWeight: FontWeight.bold, fontSize: 12)), + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ), + ); + } + ), + ); + } +} diff --git a/kifi-app/lib/features/transactions/presentation/widgets/attachment_gallery_screen.dart b/kifi-app/lib/features/transactions/presentation/widgets/attachment_gallery_screen.dart new file mode 100644 index 0000000..a68e604 --- /dev/null +++ b/kifi-app/lib/features/transactions/presentation/widgets/attachment_gallery_screen.dart @@ -0,0 +1,138 @@ +import 'package:flutter/material.dart'; + +class AttachmentGalleryScreen extends StatefulWidget { + final List images; + final int initialIndex; + + const AttachmentGalleryScreen({ + super.key, + required this.images, + required this.initialIndex, + }); + + @override + State createState() => _AttachmentGalleryScreenState(); +} + +class _AttachmentGalleryScreenState extends State { + late PageController _pageController; + int _currentIndex = 0; + + @override + void initState() { + super.initState(); + _currentIndex = widget.initialIndex; + _pageController = PageController(initialPage: widget.initialIndex); + } + + @override + void dispose() { + _pageController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + backgroundColor: Colors.black, + iconTheme: const IconThemeData(color: Colors.white), + title: Text( + '${_currentIndex + 1} / ${widget.images.length}', + style: const TextStyle(color: Colors.white), + ), + ), + body: PageView.builder( + controller: _pageController, + onPageChanged: (index) { + setState(() { + _currentIndex = index; + }); + }, + itemCount: widget.images.length, + itemBuilder: (context, index) { + return _ZoomableImage(image: widget.images[index]); + }, + ), + ); + } +} + +class _ZoomableImage extends StatefulWidget { + final ImageProvider image; + const _ZoomableImage({required this.image}); + + @override + State<_ZoomableImage> createState() => _ZoomableImageState(); +} + +class _ZoomableImageState extends State<_ZoomableImage> with SingleTickerProviderStateMixin { + final TransformationController _transformationController = TransformationController(); + late AnimationController _animationController; + Animation? _animation; + TapDownDetails? _doubleTapDetails; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + vsync: this, + duration: const Duration(milliseconds: 200), + )..addListener(() { + if (_animation != null) { + _transformationController.value = _animation!.value; + } + }); + } + + @override + void dispose() { + _animationController.dispose(); + _transformationController.dispose(); + super.dispose(); + } + + void _handleDoubleTap() { + if (_doubleTapDetails == null) return; + final position = _doubleTapDetails!.localPosition; + + final matrix = _transformationController.value; + final scale = matrix.getMaxScaleOnAxis(); + + Matrix4 endMatrix; + if (scale > 1.0) { + // Zoom out + endMatrix = Matrix4.identity(); + } else { + // Zoom in + endMatrix = Matrix4.identity() + ..translate(-position.dx * 1.5, -position.dy * 1.5) + ..scale(2.5); + } + + _animation = Matrix4Tween( + begin: _transformationController.value, + end: endMatrix, + ).animate(CurveTween(curve: Curves.easeInOut).animate(_animationController)); + + _animationController.forward(from: 0); + } + + @override + Widget build(BuildContext context) { + return GestureDetector( + onDoubleTapDown: (d) => _doubleTapDetails = d, + onDoubleTap: _handleDoubleTap, + child: InteractiveViewer( + transformationController: _transformationController, + minScale: 1.0, + maxScale: 4.0, + child: Image( + image: widget.image, + fit: BoxFit.contain, + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/transactions/presentation/widgets/transaction_filter_sheet.dart b/kifi-app/lib/features/transactions/presentation/widgets/transaction_filter_sheet.dart new file mode 100644 index 0000000..86f0a17 --- /dev/null +++ b/kifi-app/lib/features/transactions/presentation/widgets/transaction_filter_sheet.dart @@ -0,0 +1,173 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:lucide_icons/lucide_icons.dart'; +import '../../providers/providers.dart'; +import '../../providers/paginated_transaction_provider.dart'; + +class TransactionFilterSheet extends ConsumerStatefulWidget { + const TransactionFilterSheet({super.key}); + + @override + ConsumerState createState() => _TransactionFilterSheetState(); +} + +class _TransactionFilterSheetState extends ConsumerState { + String? _selectedType; + int? _selectedWalletId; + int? _selectedCategoryId; + + @override + void initState() { + super.initState(); + final currentState = ref.read(paginatedTransactionProvider); + _selectedType = currentState.type; + _selectedWalletId = currentState.walletId; + _selectedCategoryId = currentState.categoryId; + } + + void _applyFilters() { + ref.read(paginatedTransactionProvider.notifier).updateFilters( + type: _selectedType, + walletId: _selectedWalletId, + categoryId: _selectedCategoryId, + ); + Navigator.pop(context); + } + + void _resetFilters() { + ref.read(paginatedTransactionProvider.notifier).clearFilters(); + Navigator.pop(context); + } + + @override + Widget build(BuildContext context) { + final walletsState = ref.watch(walletProvider); + final categoriesState = ref.watch(categoryProvider); + + return Container( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + ), + child: SafeArea( + child: Padding( + padding: const EdgeInsets.all(24.0), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Filter Transactions', style: Theme.of(context).textTheme.titleLarge), + IconButton( + icon: const Icon(LucideIcons.x), + onPressed: () => Navigator.pop(context), + ), + ], + ), + const SizedBox(height: 24), + + // Type Filter + Text('Transaction Type', style: Theme.of(context).textTheme.titleSmall), + const SizedBox(height: 8), + SegmentedButton( + segments: const [ + ButtonSegment(value: 'ALL', label: Text('All')), + ButtonSegment(value: 'EXPENSE', label: Text('Expense')), + ButtonSegment(value: 'INCOME', label: Text('Income')), + ], + selected: {_selectedType ?? 'ALL'}, + onSelectionChanged: (set) { + setState(() => _selectedType = set.first == 'ALL' ? null : set.first); + }, + ), + const SizedBox(height: 24), + + // Wallet Filter + Text('Wallet', style: Theme.of(context).textTheme.titleSmall), + const SizedBox(height: 8), + DropdownButtonFormField( + value: _selectedWalletId, + style: const TextStyle(fontWeight: FontWeight.w500, color: Colors.black87, fontSize: 16), + decoration: InputDecoration( + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + items: [ + const DropdownMenuItem(value: null, child: Text('All Wallets')), + if (walletsState.hasValue) + ...walletsState.value!.map((w) => DropdownMenuItem( + value: w.id, + child: Text(w.name), + )), + ], + onChanged: (val) => setState(() => _selectedWalletId = val), + ), + const SizedBox(height: 24), + + // Category Filter + Text('Category', style: Theme.of(context).textTheme.titleSmall), + const SizedBox(height: 8), + DropdownButtonFormField( + value: _selectedCategoryId, + style: const TextStyle(fontWeight: FontWeight.w500, color: Colors.black87, fontSize: 16), + decoration: InputDecoration( + filled: true, + fillColor: Colors.grey.shade100, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: BorderSide.none), + focusedBorder: OutlineInputBorder(borderRadius: BorderRadius.circular(16), borderSide: const BorderSide(color: Color(0xFF6C63FF), width: 2)), + ), + items: [ + const DropdownMenuItem(value: null, child: Text('All Categories')), + if (categoriesState.hasValue) + ...categoriesState.value!.map((c) => DropdownMenuItem( + value: c.id, + child: Text(c.name), + )), + ], + onChanged: (val) => setState(() => _selectedCategoryId = val), + ), + const SizedBox(height: 32), + + Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: _resetFilters, + style: OutlinedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + foregroundColor: Colors.grey.shade700, + side: BorderSide(color: Colors.grey.shade300), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + ), + child: const Text('Reset', style: TextStyle(fontWeight: FontWeight.bold)), + ), + ), + const SizedBox(width: 16), + Expanded( + flex: 2, + child: ElevatedButton( + onPressed: _applyFilters, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + backgroundColor: const Color(0xFF6C63FF), + foregroundColor: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 0, + ), + child: const Text('Apply Filters', style: TextStyle(fontWeight: FontWeight.bold)), + ), + ), + ], + ), + ], + ), + ), + ), + ); + } +} diff --git a/kifi-app/lib/features/transactions/providers/paginated_transaction_provider.dart b/kifi-app/lib/features/transactions/providers/paginated_transaction_provider.dart new file mode 100644 index 0000000..fa0c91f --- /dev/null +++ b/kifi-app/lib/features/transactions/providers/paginated_transaction_provider.dart @@ -0,0 +1,115 @@ +import 'dart:async'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../data/repository.dart'; +import '../data/models.dart'; +import 'providers.dart'; + +class PaginatedTransactionState { + final List transactions; + final bool isLoading; + final bool hasMore; + final String? type; + final int? walletId; + final int? categoryId; + final String? search; + + PaginatedTransactionState({ + required this.transactions, + this.isLoading = false, + this.hasMore = true, + this.type, + this.walletId, + this.categoryId, + this.search, + }); + + PaginatedTransactionState copyWith({ + List? transactions, + bool? isLoading, + bool? hasMore, + String? type, + int? walletId, + int? categoryId, + String? search, + }) { + return PaginatedTransactionState( + transactions: transactions ?? this.transactions, + isLoading: isLoading ?? this.isLoading, + hasMore: hasMore ?? this.hasMore, + type: type != null ? (type == 'ALL' ? null : type) : this.type, + walletId: walletId != null ? (walletId == -1 ? null : walletId) : this.walletId, + categoryId: categoryId != null ? (categoryId == -1 ? null : categoryId) : this.categoryId, + search: search != null ? (search == '' ? null : search) : this.search, + ); + } +} + +class PaginatedTransactionNotifier extends Notifier { + int _currentPage = 0; + + @override + PaginatedTransactionState build() { + _currentPage = 0; + Future.microtask(() => loadMore()); + return PaginatedTransactionState(transactions: []); + } + + void updateFilters({String? type, int? walletId, int? categoryId, String? search}) { + state = state.copyWith( + type: type, + walletId: walletId, + categoryId: categoryId, + search: search, + transactions: [], // reset + hasMore: true, + ); + _currentPage = 0; + loadMore(); + } + + void clearFilters() { + state = PaginatedTransactionState(transactions: []); + _currentPage = 0; + loadMore(); + } + + Future loadMore() async { + if (state.isLoading || !state.hasMore) return; + + state = state.copyWith(isLoading: true); + try { + final repository = ref.read(apiRepositoryProvider); + final response = await repository.searchTransactions( + page: _currentPage, + size: 20, + type: state.type, + walletId: state.walletId, + categoryId: state.categoryId, + search: state.search, + ); + + final newContent = response['content'] as List; + final totalPages = response['totalPages'] as int; + + _currentPage++; + + state = state.copyWith( + transactions: [...state.transactions, ...newContent], + isLoading: false, + hasMore: _currentPage < totalPages, + ); + } catch (e) { + state = state.copyWith(isLoading: false); + print("Error loading paginated transactions: $e"); + } + } + + void removeTransactionFromState(int id) { + final updatedList = state.transactions.where((t) => t.id != id).toList(); + state = state.copyWith(transactions: updatedList); + } +} + +final paginatedTransactionProvider = NotifierProvider(() { + return PaginatedTransactionNotifier(); +}); diff --git a/kifi-app/lib/features/transactions/providers/providers.dart b/kifi-app/lib/features/transactions/providers/providers.dart new file mode 100644 index 0000000..5c28e79 --- /dev/null +++ b/kifi-app/lib/features/transactions/providers/providers.dart @@ -0,0 +1,221 @@ +import 'dart:async'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../data/repository.dart'; +import '../data/models.dart'; + +final apiRepositoryProvider = Provider((ref) => ApiRepository()); + +class CategoryNotifier extends AsyncNotifier> { + @override + FutureOr> build() { + return ref.watch(apiRepositoryProvider).getCategories(); + } + + Future addCategory(String name, String? iconName) async { + final newCategory = await ref.read(apiRepositoryProvider).addCategory(Category(id: 0, name: name, iconName: iconName)); + if (state.value != null) { + state = AsyncValue.data([...state.value!, newCategory]); + } + } +} + +final categoryProvider = AsyncNotifierProvider>(() => CategoryNotifier()); + + +class TransactionNotifier extends AsyncNotifier> { + @override + FutureOr> build() { + return ref.watch(apiRepositoryProvider).getTransactions(); + } + + Future addTransaction(Transaction transaction, {List>? base64Attachments}) async { + final newTransaction = await ref.read(apiRepositoryProvider).addTransaction(transaction); + + // Upload attachments if any + if (base64Attachments != null && base64Attachments.isNotEmpty) { + for (var attachment in base64Attachments) { + await ref.read(apiRepositoryProvider).addAttachment( + newTransaction.id, + attachment['fileName']!, + attachment['contentType']!, + attachment['base64Content']! + ); + } + } + + if (state.value != null) { + // Re-fetch transactions to get the fully populated transaction with attachments from backend + ref.invalidateSelf(); + } + } + + Future updateTransaction(Transaction transaction, {List>? base64Attachments, List? deletedAttachmentIds}) async { + final updatedTransaction = await ref.read(apiRepositoryProvider).updateTransaction(transaction); + + bool hasChanges = false; + if (base64Attachments != null && base64Attachments.isNotEmpty) { + for (var attachment in base64Attachments) { + await ref.read(apiRepositoryProvider).addAttachment( + updatedTransaction.id, + attachment['fileName']!, + attachment['contentType']!, + attachment['base64Content']! + ); + } + hasChanges = true; + } + + if (deletedAttachmentIds != null && deletedAttachmentIds.isNotEmpty) { + for (var id in deletedAttachmentIds) { + await ref.read(apiRepositoryProvider).deleteAttachment(id); + } + hasChanges = true; + } + + if (hasChanges) { + ref.invalidateSelf(); + } else { + if (state.value != null) { + final updatedList = state.value!.map((t) => t.id == updatedTransaction.id ? updatedTransaction : t).toList(); + state = AsyncValue.data(updatedList); + } + } + } + + Future deleteTransaction(int id) async { + await ref.read(apiRepositoryProvider).deleteTransaction(id); + if (state.value != null) { + state = AsyncValue.data(state.value!.where((t) => t.id != id).toList()); + } + } + + Future closeInvestment(int id, double maturityAmount, DateTime closingDate, int toWalletId) async { + final updatedTransaction = await ref.read(apiRepositoryProvider).closeInvestment(id, maturityAmount, closingDate, toWalletId); + if (state.value != null) { + final updatedList = state.value!.map((t) => t.id == updatedTransaction.id ? updatedTransaction : t).toList(); + state = AsyncValue.data(updatedList); + } + } +} + +final transactionProvider = AsyncNotifierProvider>(() => TransactionNotifier()); + +class BudgetNotifier extends AsyncNotifier> { + @override + FutureOr> build() { + return ref.watch(apiRepositoryProvider).getBudgets(); + } + + Future addOrUpdateBudget(Budget budget) async { + final updatedBudget = await ref.read(apiRepositoryProvider).addOrUpdateBudget(budget); + if (state.value != null) { + final list = List.from(state.value!); + final index = list.indexWhere((b) => + (b.categoryId != null && b.categoryId == budget.categoryId) || + (b.walletId != null && b.walletId == budget.walletId) + ); + if (index >= 0) { + list[index] = updatedBudget; + } else { + list.add(updatedBudget); + } + state = AsyncValue.data(list); + } + } +} + +final budgetProvider = AsyncNotifierProvider>(() => BudgetNotifier()); + +class RecurringTransactionNotifier extends AsyncNotifier> { + @override + FutureOr> build() { + return ref.watch(apiRepositoryProvider).getRecurringTransactions(); + } + + Future addRecurringTransaction(RecurringTransaction rt) async { + final newRt = await ref.read(apiRepositoryProvider).addRecurringTransaction(rt); + if (state.value != null) { + state = AsyncValue.data([newRt, ...state.value!]); + } + } +} + +final recurringTransactionProvider = AsyncNotifierProvider>(() => RecurringTransactionNotifier()); + +class WalletNotifier extends AsyncNotifier> { + @override + FutureOr> build() { + return ref.watch(apiRepositoryProvider).getWallets(); + } + + Future createWallet({ + required String name, + String nature = 'CASH', + double initialBalance = 0.0, + String currency = 'INR', + String? icon, + String? color, + }) async { + final newWallet = await ref.read(apiRepositoryProvider).createWallet( + name: name, + nature: nature, + initialBalance: initialBalance, + currency: currency, + icon: icon, + color: color, + ); + if (state.value != null) { + state = AsyncValue.data([...state.value!, newWallet]); + } + return newWallet; + } + + Future inviteUser(int walletId, String email) async { + await ref.read(apiRepositoryProvider).inviteUserToWallet(walletId, email); + } + + Future editWallet(int id, {String? name, String? nature, String? icon, String? color}) async { + final updated = await ref.read(apiRepositoryProvider).editWallet( + id: id, + name: name, + nature: nature, + icon: icon, + color: color, + ); + if (state.value != null) { + state = AsyncValue.data( + state.value!.map((w) => w.id == id ? updated : w).toList(), + ); + } + } + + Future deleteWallet(int id) async { + await ref.read(apiRepositoryProvider).deleteWallet(id); + if (state.value != null) { + state = AsyncValue.data( + state.value!.where((w) => w.id != id).toList(), + ); + } + } +} + +class InvitationNotifier extends AsyncNotifier> { + @override + Future> build() async { + return ref.read(apiRepositoryProvider).getInvitations(); + } + + Future acceptInvitation(int invitationId) async { + await ref.read(apiRepositoryProvider).acceptInvitation(invitationId); + state = AsyncValue.data(state.value?.where((inv) => inv.id != invitationId).toList() ?? []); + ref.invalidate(walletProvider); // Refresh wallets + } + + Future rejectInvitation(int invitationId) async { + await ref.read(apiRepositoryProvider).rejectInvitation(invitationId); + state = AsyncValue.data(state.value?.where((inv) => inv.id != invitationId).toList() ?? []); + } +} + +final walletProvider = AsyncNotifierProvider>(() => WalletNotifier()); +final invitationProvider = AsyncNotifierProvider>(() => InvitationNotifier()); diff --git a/kifi-app/lib/main.dart b/kifi-app/lib/main.dart new file mode 100644 index 0000000..492eebf --- /dev/null +++ b/kifi-app/lib/main.dart @@ -0,0 +1,122 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:local_auth/local_auth.dart'; +import 'core/theme/app_theme.dart'; +import 'core/theme/theme_provider.dart'; +import 'features/auth/presentation/auth_screen.dart'; +import 'features/dashboard/presentation/dashboard_screen.dart'; +import 'features/onboarding/presentation/onboarding_screen.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'core/network/dio_client.dart'; + +final GlobalKey navigatorKey = GlobalKey(); + +void main() { + WidgetsFlutterBinding.ensureInitialized(); + runApp( + const ProviderScope( + child: KifiApp(), + ), + ); +} + +class KifiApp extends ConsumerStatefulWidget { + const KifiApp({super.key}); + + @override + ConsumerState createState() => _KifiAppState(); +} + +class _KifiAppState extends ConsumerState { + bool _isLoading = true; + bool _isAuthenticated = false; + bool _hasSeenOnboarding = false; + final LocalAuthentication _localAuth = LocalAuthentication(); + String? _startupError; + + @override + void initState() { + super.initState(); + _checkAuthStatus(); + } + + Future _authenticateWithBiometrics() async { + try { + final canCheckBiometrics = await _localAuth.canCheckBiometrics; + final isDeviceSupported = await _localAuth.isDeviceSupported(); + + if (!canCheckBiometrics && !isDeviceSupported) { + return true; // Pass if device doesn't support biometrics to avoid locking users out + } + + return await _localAuth.authenticate( + localizedReason: 'Please authenticate to access Kifi', + biometricOnly: true, + persistAcrossBackgrounding: true, + ); + } catch (e) { + return false; // Fail safe + } + } + + Future _checkAuthStatus() async { + try { + const storage = FlutterSecureStorage(); + final token = await storage.read(key: 'jwt_token'); + final prefs = await SharedPreferences.getInstance(); + final hasSeenOnboarding = prefs.getBool('has_seen_onboarding') ?? false; + + if (token != null && token.isNotEmpty) { + // Prompt for biometrics if returning user + final authSuccess = await _authenticateWithBiometrics(); + if (!authSuccess) { + setState(() { + _isAuthenticated = false; + _hasSeenOnboarding = hasSeenOnboarding; + _isLoading = false; + }); + return; // User failed biometrics, leave them on login screen + } + + setState(() { + _isAuthenticated = true; + _hasSeenOnboarding = hasSeenOnboarding; + _isLoading = false; + }); + } else { + setState(() { + _isAuthenticated = false; + _hasSeenOnboarding = hasSeenOnboarding; + _isLoading = false; + }); + } + } catch (e, stacktrace) { + setState(() { + _startupError = e.toString(); + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + final themeMode = ref.watch(themeProvider); + + return MaterialApp( + navigatorKey: navigatorKey, + title: 'Kifi', + debugShowCheckedModeBanner: false, + theme: AppTheme.lightTheme, + darkTheme: AppTheme.darkTheme, + themeMode: themeMode, + home: _startupError != null + ? Scaffold(body: Center(child: Padding(padding: const EdgeInsets.all(20), child: Text("Startup Error: $_startupError", style: const TextStyle(color: Colors.red))))) + : _isLoading + ? const Scaffold(body: Center(child: CircularProgressIndicator())) + : (!_hasSeenOnboarding + ? const OnboardingScreen() + : (_isAuthenticated ? const DashboardScreen() : const AuthScreen())), + ); + } +} diff --git a/kifi-app/linux/.gitignore b/kifi-app/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/kifi-app/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/kifi-app/linux/CMakeLists.txt b/kifi-app/linux/CMakeLists.txt new file mode 100644 index 0000000..682c3db --- /dev/null +++ b/kifi-app/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 "kifi_app") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.kifi_app") + +# 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/kifi-app/linux/flutter/CMakeLists.txt b/kifi-app/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/kifi-app/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/kifi-app/linux/flutter/generated_plugin_registrant.cc b/kifi-app/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..3ccd551 --- /dev/null +++ b/kifi-app/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,23 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#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); + g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); + flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); +} diff --git a/kifi-app/linux/flutter/generated_plugin_registrant.h b/kifi-app/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/kifi-app/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/kifi-app/linux/flutter/generated_plugins.cmake b/kifi-app/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..fbedf4a --- /dev/null +++ b/kifi-app/linux/flutter/generated_plugins.cmake @@ -0,0 +1,27 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + file_selector_linux + flutter_secure_storage_linux + url_launcher_linux +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni +) + +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/kifi-app/linux/runner/CMakeLists.txt b/kifi-app/linux/runner/CMakeLists.txt new file mode 100644 index 0000000..e97dabc --- /dev/null +++ b/kifi-app/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/kifi-app/linux/runner/main.cc b/kifi-app/linux/runner/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/kifi-app/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/kifi-app/linux/runner/my_application.cc b/kifi-app/linux/runner/my_application.cc new file mode 100644 index 0000000..ce55b5d --- /dev/null +++ b/kifi-app/linux/runner/my_application.cc @@ -0,0 +1,148 @@ +#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) + +// Called when first Flutter frame received. +static void first_frame_cb(MyApplication* self, FlView* view) { + gtk_widget_show(gtk_widget_get_toplevel(GTK_WIDGET(view))); +} + +// 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, "kifi_app"); + 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, "kifi_app"); + } + + gtk_window_set_default_size(window, 1280, 720); + + 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); + GdkRGBA background_color; + // Background defaults to black, override it here if necessary, e.g. #00000000 + // for transparent. + gdk_rgba_parse(&background_color, "#000000"); + fl_view_set_background_color(view, &background_color); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + // Show the window when Flutter renders. + // Requires the view to be realized so we can start rendering. + g_signal_connect_swapped(view, "first-frame", G_CALLBACK(first_frame_cb), + self); + gtk_widget_realize(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/kifi-app/linux/runner/my_application.h b/kifi-app/linux/runner/my_application.h new file mode 100644 index 0000000..db16367 --- /dev/null +++ b/kifi-app/linux/runner/my_application.h @@ -0,0 +1,21 @@ +#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/kifi-app/macos/.gitignore b/kifi-app/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/kifi-app/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/kifi-app/macos/Flutter/Flutter-Debug.xcconfig b/kifi-app/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..4b81f9b --- /dev/null +++ b/kifi-app/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/kifi-app/macos/Flutter/Flutter-Release.xcconfig b/kifi-app/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..5caa9d1 --- /dev/null +++ b/kifi-app/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/kifi-app/macos/Flutter/GeneratedPluginRegistrant.swift b/kifi-app/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..a5ddc0a --- /dev/null +++ b/kifi-app/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,24 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import file_selector_macos +import flutter_image_compress_macos +import flutter_local_notifications +import flutter_secure_storage_darwin +import local_auth_darwin +import share_plus +import shared_preferences_foundation + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) + FlutterImageCompressMacosPlugin.register(with: registry.registrar(forPlugin: "FlutterImageCompressMacosPlugin")) + FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) + FlutterSecureStorageDarwinPlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStorageDarwinPlugin")) + LocalAuthPlugin.register(with: registry.registrar(forPlugin: "LocalAuthPlugin")) + SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) +} diff --git a/kifi-app/macos/Podfile b/kifi-app/macos/Podfile new file mode 100644 index 0000000..ff5ddb3 --- /dev/null +++ b/kifi-app/macos/Podfile @@ -0,0 +1,42 @@ +platform :osx, '10.15' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/kifi-app/macos/Podfile.lock b/kifi-app/macos/Podfile.lock new file mode 100644 index 0000000..c147388 --- /dev/null +++ b/kifi-app/macos/Podfile.lock @@ -0,0 +1,61 @@ +PODS: + - file_selector_macos (0.0.1): + - FlutterMacOS + - flutter_image_compress_macos (1.0.0): + - FlutterMacOS + - flutter_local_notifications (0.0.1): + - FlutterMacOS + - flutter_secure_storage_darwin (10.0.0): + - Flutter + - FlutterMacOS + - FlutterMacOS (1.0.0) + - local_auth_darwin (0.0.1): + - Flutter + - FlutterMacOS + - share_plus (0.0.1): + - FlutterMacOS + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`) + - flutter_image_compress_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_image_compress_macos/macos`) + - flutter_local_notifications (from `Flutter/ephemeral/.symlinks/plugins/flutter_local_notifications/macos`) + - flutter_secure_storage_darwin (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_darwin/darwin`) + - FlutterMacOS (from `Flutter/ephemeral`) + - local_auth_darwin (from `Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin`) + - share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`) + - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) + +EXTERNAL SOURCES: + file_selector_macos: + :path: Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos + flutter_image_compress_macos: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_image_compress_macos/macos + flutter_local_notifications: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_local_notifications/macos + flutter_secure_storage_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_darwin/darwin + FlutterMacOS: + :path: Flutter/ephemeral + local_auth_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin + share_plus: + :path: Flutter/ephemeral/.symlinks/plugins/share_plus/macos + shared_preferences_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin + +SPEC CHECKSUMS: + file_selector_macos: 9e9e068e90ebee155097d00e89ae91edb2374db7 + flutter_image_compress_macos: 525b2993bb7d77af94af6ccf1f5848c6a111de02 + flutter_local_notifications: 1fc7ffb10a83d6a2eeeeddb152d43f1944b0aad0 + flutter_secure_storage_darwin: 46e401699982ee74142909676535e0f6a7321e58 + FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 + local_auth_darwin: c3ee6cce0a8d56be34c8ccb66ba31f7f180aaebb + share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc + shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb + +PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009 + +COCOAPODS: 1.17.0 diff --git a/kifi-app/macos/Runner.xcodeproj/project.pbxproj b/kifi-app/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1276bb3 --- /dev/null +++ b/kifi-app/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,801 @@ +// !$*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 */ + 13E6D52C1D4C7DCFFA42F4D5 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0AD46F4CF08D8ABFA9389B7 /* Pods_RunnerTests.framework */; }; + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + D019B287D22B2C8451B0E7CC /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D55D63F0CCF6B67251ACB58F /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 2BCE98CE5839AF75A04CE444 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* kifi_app.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = kifi_app.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 = ""; }; + 34CB04CE37E9F9B5EBAECDB0 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 4DE98C080236BCC68E8BEB72 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.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 = ""; }; + 9EBB28CEEBC01F87DD9B5565 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + D55D63F0CCF6B67251ACB58F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D5F39AE8AAF8101E5D5F9A78 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + E3B1F981FA12914383F7B827 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + F0AD46F4CF08D8ABFA9389B7 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 13E6D52C1D4C7DCFFA42F4D5 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D019B287D22B2C8451B0E7CC /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 14E3581C47422ABFFAEFB9FF /* Pods */ = { + isa = PBXGroup; + children = ( + 9EBB28CEEBC01F87DD9B5565 /* Pods-Runner.debug.xcconfig */, + 4DE98C080236BCC68E8BEB72 /* Pods-Runner.release.xcconfig */, + 34CB04CE37E9F9B5EBAECDB0 /* Pods-Runner.profile.xcconfig */, + E3B1F981FA12914383F7B827 /* Pods-RunnerTests.debug.xcconfig */, + 2BCE98CE5839AF75A04CE444 /* Pods-RunnerTests.release.xcconfig */, + D5F39AE8AAF8101E5D5F9A78 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 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 */, + 14E3581C47422ABFFAEFB9FF /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* kifi_app.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 = ( + D55D63F0CCF6B67251ACB58F /* Pods_Runner.framework */, + F0AD46F4CF08D8ABFA9389B7 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 4E1F3EE715BD8D5266BD5445 /* [CP] Check Pods Manifest.lock */, + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 4586E3D7DB52F0D22DFF7D16 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + 437B54CF114302BCDA978CCC /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* kifi_app.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"; + }; + 437B54CF114302BCDA978CCC /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 4586E3D7DB52F0D22DFF7D16 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 4E1F3EE715BD8D5266BD5445 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* 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; + baseConfigurationReference = E3B1F981FA12914383F7B827 /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.kifiApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/kifi_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/kifi_app"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2BCE98CE5839AF75A04CE444 /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.kifiApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/kifi_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/kifi_app"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D5F39AE8AAF8101E5D5F9A78 /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.kifiApp.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/kifi_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/kifi_app"; + }; + 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.15; + 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.15; + 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.15; + 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/kifi-app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/kifi-app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/kifi-app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/kifi-app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/kifi-app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..c7d9bf4 --- /dev/null +++ b/kifi-app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kifi-app/macos/Runner.xcworkspace/contents.xcworkspacedata b/kifi-app/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/kifi-app/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/kifi-app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/kifi-app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/kifi-app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/kifi-app/macos/Runner/AppDelegate.swift b/kifi-app/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..b3c1761 --- /dev/null +++ b/kifi-app/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/kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/kifi-app/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/kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/kifi-app/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/kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/kifi-app/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/kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/kifi-app/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/kifi-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/kifi-app/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/kifi-app/macos/Runner/Configs/AppInfo.xcconfig b/kifi-app/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..8ce0c62 --- /dev/null +++ b/kifi-app/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 = kifi_app + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.kifiApp + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2026 com.example. All rights reserved. diff --git a/kifi-app/macos/Runner/Configs/Debug.xcconfig b/kifi-app/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/kifi-app/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/kifi-app/macos/Runner/Configs/Release.xcconfig b/kifi-app/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/kifi-app/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/kifi-app/macos/Runner/Configs/Warnings.xcconfig b/kifi-app/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/kifi-app/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/kifi-app/macos/Runner/DebugProfile.entitlements b/kifi-app/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/kifi-app/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/kifi-app/macos/Runner/Info.plist b/kifi-app/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/kifi-app/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/kifi-app/macos/Runner/MainFlutterWindow.swift b/kifi-app/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/kifi-app/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/kifi-app/macos/Runner/Release.entitlements b/kifi-app/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/kifi-app/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/kifi-app/macos/RunnerTests/RunnerTests.swift b/kifi-app/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..61f3bd1 --- /dev/null +++ b/kifi-app/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/kifi-app/pubspec.lock b/kifi-app/pubspec.lock new file mode 100644 index 0000000..fe3288f --- /dev/null +++ b/kifi-app/pubspec.lock @@ -0,0 +1,1282 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d + url: "https://pub.dev" + source: hosted + version: "91.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08 + url: "https://pub.dev" + source: hosted + version: "8.4.1" + archive: + dependency: transitive + description: + name: archive + sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff + url: "https://pub.dev" + source: hosted + version: "4.0.9" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + asn1lib: + dependency: transitive + description: + name: asn1lib + sha256: "9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024" + url: "https://pub.dev" + source: hosted + version: "1.6.5" + async: + dependency: transitive + description: + name: async + sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 + url: "https://pub.dev" + source: hosted + version: "2.13.1" + 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" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + cli_config: + dependency: transitive + description: + name: cli_config + sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec + url: "https://pub.dev" + source: hosted + version: "0.2.0" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c + url: "https://pub.dev" + source: hosted + version: "0.4.2" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: bf394f466ba9205f1812a0433b392d6af280f155f56651eda7c18cc32ed493b8 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + coverage: + dependency: transitive + description: + name: coverage + sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d" + url: "https://pub.dev" + source: hosted + version: "1.15.1" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "92c9c43c383bfa1c32079d3bc492d55d6d4318044b7b47edaff8971cbb555c51" + url: "https://pub.dev" + source: hosted + version: "0.3.5+4" + crypto: + dependency: transitive + description: + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + url: "https://pub.dev" + source: hosted + version: "3.0.7" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" + url: "https://pub.dev" + source: hosted + version: "1.0.9" + dbus: + dependency: transitive + description: + name: dbus + sha256: "0ce9b0a839e6dee59a37a623d2fc26a35bbbe6404213e419b0d6411023d62645" + url: "https://pub.dev" + source: hosted + version: "0.7.14" + dio: + dependency: "direct main" + description: + name: dio + sha256: "0df44ebba85e503958eb75d07eedd3c86275a58c1d3eda2f2ce8f0a2c3abbb3c" + url: "https://pub.dev" + source: hosted + version: "5.11.0" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "0786d0b7295a373de356fc0af4f6f1d0ab2844ed31b19dfc5e7556b70e24212c" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + encrypt: + dependency: "direct main" + description: + name: encrypt + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" + url: "https://pub.dev" + source: hosted + version: "5.0.3" + equatable: + dependency: transitive + description: + name: equatable + sha256: "3bce007a596ff8b3119c45d68aaef631272537c03d30e5d4534dd24bf4c5eaa2" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + ffi_leak_tracker: + dependency: transitive + description: + name: ffi_leak_tracker + sha256: "4093d4ef9ca06ffe2786e73bfb25e22aa92112b9bb4ec941f11e3e6b61489a97" + url: "https://pub.dev" + source: hosted + version: "0.1.2" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "2567f398e06ac72dcf2e98a0c95df2a9edd03c2c2e0cacd4780f20cdf56263a0" + url: "https://pub.dev" + source: hosted + version: "0.9.4" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "5e0bbe9c312416f1787a68259ea1505b52f258c587f12920422671807c4d618a" + url: "https://pub.dev" + source: hosted + version: "0.9.5" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85" + url: "https://pub.dev" + source: hosted + version: "2.7.0" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd" + url: "https://pub.dev" + source: hosted + version: "0.9.3+5" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + sha256: b938f77d042cbcd822936a7a359a7235bad8bd72070de1f827efc2cc297ac888 + url: "https://pub.dev" + source: hosted + version: "1.2.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_image_compress: + dependency: "direct main" + description: + name: flutter_image_compress + sha256: "98a48c05a7add6869c6838270e862124a4d571f9dd5d0cf209ed03a71b20ea84" + url: "https://pub.dev" + source: hosted + version: "2.5.1" + flutter_image_compress_common: + dependency: transitive + description: + name: flutter_image_compress_common + sha256: "76869e4d5f3d65f3431e7edff0b2d8ad1eea68b49c6a37772fdb1ae6016da9ed" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_image_compress_macos: + dependency: transitive + description: + name: flutter_image_compress_macos + sha256: "0d2a842d2e544828fb32bda16dcfccb3149107df568898a4936d78232e486847" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + flutter_image_compress_ohos: + dependency: transitive + description: + name: flutter_image_compress_ohos + sha256: "1491bb7bcfdf59e3b127c263c116cfbf8ed3afade6e7fa691d9622e838ed7e48" + url: "https://pub.dev" + source: hosted + version: "0.0.3+1" + flutter_image_compress_platform_interface: + dependency: transitive + description: + name: flutter_image_compress_platform_interface + sha256: bbefb7967bda565004fdabdb3300dcbfb40c7ef8402675d23206e5bddc358178 + url: "https://pub.dev" + source: hosted + version: "1.1.0" + flutter_image_compress_web: + dependency: transitive + description: + name: flutter_image_compress_web + sha256: "91cc58e091a1e09c7683d216d579e2b964119a8527fc43b64dfdb00f1acc94ec" + url: "https://pub.dev" + source: hosted + version: "0.1.5+1" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" + url: "https://pub.dev" + source: hosted + version: "0.14.4" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_local_notifications: + dependency: "direct main" + description: + name: flutter_local_notifications + sha256: "1447ba911c60f2ba3f25dae1af151ec187162566b0f57e37771bf0b400f013ad" + url: "https://pub.dev" + source: hosted + version: "22.3.0" + flutter_local_notifications_linux: + dependency: transitive + description: + name: flutter_local_notifications_linux + sha256: "9ca97e63776f29ab1b955725c09999fc2c150523269db150c39274f2a43c5a8b" + url: "https://pub.dev" + source: hosted + version: "8.0.1" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + sha256: "43c3761d916c9bd3d5c7ebbc44d82f4990329840c0c5d62ad5260cc1b5d399bd" + url: "https://pub.dev" + source: hosted + version: "12.2.0" + flutter_local_notifications_web: + dependency: transitive + description: + name: flutter_local_notifications_web + sha256: "516afaf97a2d1e67a036c6617321b00d205d72f7a67b6eccf936cd565f985878" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + flutter_local_notifications_windows: + dependency: transitive + description: + name: flutter_local_notifications_windows + sha256: "6f43bdd03b171b7a90f22647506fea33e2bb12294b7c7c7a3d690e960a382945" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785" + url: "https://pub.dev" + source: hosted + version: "2.0.35" + flutter_riverpod: + dependency: "direct main" + description: + name: flutter_riverpod + sha256: "9255e1e3ad6e38906a1b4f8287678f95f378744c5b46b1985588543f3f19046e" + url: "https://pub.dev" + source: hosted + version: "3.3.2" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "15e8c8fe269fdf7d469b23008ab3df521c8b826ed345820532364c31bdebace6" + url: "https://pub.dev" + source: hosted + version: "11.0.0" + flutter_secure_storage_darwin: + dependency: transitive + description: + name: flutter_secure_storage_darwin + sha256: ac6d76a752de0cd738334eb4b21743fc4943f449f5b6e308f18838b048c02ac0 + url: "https://pub.dev" + source: hosted + version: "0.4.0" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: "76fa9c841b3b1619fc5b5bc36efc7d158fa2356f223b6caeb1d0c80a54168546" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: "788060052712555182aba55ecb5f8b6e5cb9cfe8f776c83249a61fe3ce877db4" + url: "https://pub.dev" + source: hosted + version: "2.0.3" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: "073a62b3aeb866ab4ce795f960413948e51e5a42a9b0c8333b6daf5bb3208a1c" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: "471951813a97006d899db4948acc654a4f28c440083ea08178935ce20b173ec1" + url: "https://pub.dev" + source: hosted + version: "4.2.2" + 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" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + sha256: e3cb3ee6b47fd2472c23de6da5744796a4da195137759ddb3fbcc9467b7b3c7d + url: "https://pub.dev" + source: hosted + version: "8.2.1" + google_mlkit_commons: + dependency: transitive + description: + name: google_mlkit_commons + sha256: c7fc384bdb66c3b83e24e3a41818e61d7a378d900f65f5e775344fbca95a0917 + url: "https://pub.dev" + source: hosted + version: "0.12.0" + google_mlkit_text_recognition: + dependency: "direct main" + description: + name: google_mlkit_text_recognition + sha256: "8324fdc2628ebeb63568ad06437b984b716d938d87e4ce63ab24dfd3eeebf08a" + url: "https://pub.dev" + source: hosted + version: "0.16.0" + hooks: + dependency: transitive + description: + name: hooks + sha256: "9a62a50b50b769a737bc0a8ff381f333529df3ab746b2f6b02e83760231455ba" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + http: + dependency: transitive + description: + name: http + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" + url: "https://pub.dev" + source: hosted + version: "1.6.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce + url: "https://pub.dev" + source: hosted + version: "4.8.0" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: d8402284df184bc05f4a2210c6c23983b0720f4cd87cbd05c5390a78af602667 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: d5b3e1774af29c9ab00103afb0d4614070f924d2e0057ac867ec98800114793f + url: "https://pub.dev" + source: hosted + version: "0.8.13+17" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "66257a3191ab360d23a55c8241c91a6e329d31e94efa7be9cf7a212e65850214" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: b9c4a438a9ff4f60808c9cf0039b93a42bb6c2211ef6ebb647394b2b3fa84588 + url: "https://pub.dev" + source: hosted + version: "0.8.13+6" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91" + url: "https://pub.dev" + source: hosted + version: "0.2.2+1" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" + url: "https://pub.dev" + source: hosted + version: "2.11.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae + url: "https://pub.dev" + source: hosted + version: "0.2.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: "1ca20c894b1717686a2319b8548763d812bc0aabdac580420a44c5178c57a867" + url: "https://pub.dev" + source: hosted + version: "0.20.3" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + jni: + dependency: transitive + description: + name: jni + sha256: f038e58b4dc2c9037f50e233175086337e0b305e356d28211bf55f21c504cbd3 + url: "https://pub.dev" + source: hosted + version: "1.0.3" + jni_flutter: + dependency: transitive + description: + name: jni_flutter + sha256: "7b717011ea40d04fd47c2731d3d1d36eb99eba3435c2753d62489e8c3c9991d5" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + jni_util: + dependency: transitive + description: + name: jni_util + sha256: "1ba86da04a5f2bf18fde2edb235587e70c5b0fc5bd4ba955f46b00942c3fc35f" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + js: + dependency: transitive + description: + name: js + sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" + url: "https://pub.dev" + source: hosted + version: "0.7.2" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" + url: "https://pub.dev" + source: hosted + version: "4.12.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + url: "https://pub.dev" + source: hosted + version: "11.0.2" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + url: "https://pub.dev" + source: hosted + version: "3.0.10" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + lints: + dependency: transitive + description: + name: lints + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + local_auth: + dependency: "direct main" + description: + name: local_auth + sha256: ecf24edf2283c509ecd217e3595f6f71034b68888d28ad1dae6bfa0857b816ac + url: "https://pub.dev" + source: hosted + version: "3.0.2" + local_auth_android: + dependency: transitive + description: + name: local_auth_android + sha256: b201c006fa769c23386f89aa6837ec0eb8179fcfb212eadcf87b422b3f9a6a78 + url: "https://pub.dev" + source: hosted + version: "2.0.8" + local_auth_darwin: + dependency: transitive + description: + name: local_auth_darwin + sha256: a8c3d4e17454111f7fd31ff72a31222359f6059f7fe956c2dcfe0f88f49826d4 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + local_auth_platform_interface: + dependency: transitive + description: + name: local_auth_platform_interface + sha256: f98b8e388588583d3f781f6806e4f4c9f9e189d898d27f0c249b93a1973dd122 + url: "https://pub.dev" + source: hosted + version: "1.1.0" + local_auth_windows: + dependency: transitive + description: + name: local_auth_windows + sha256: be12c5b8ba5e64896983123655c5f67d2484ecfcc95e367952ad6e3bff94cb16 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + lucide_icons: + dependency: "direct main" + description: + name: lucide_icons + sha256: ad24d0fd65707e48add30bebada7d90bff2a1bba0a72d6e9b19d44246b0e83c4 + url: "https://pub.dev" + source: hosted + version: "0.257.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + url: "https://pub.dev" + source: hosted + version: "0.12.17" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + url: "https://pub.dev" + source: hosted + version: "1.17.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: b7fb95a6d9a4f009edd63dc5ac69f07420b23a16161c6dd8660290b59c602e8e + url: "https://pub.dev" + source: hosted + version: "9.5.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825 + url: "https://pub.dev" + source: hosted + version: "2.1.6" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" + url: "https://pub.dev" + source: hosted + version: "2.6.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: "58c2005f147315b11e9b4a7bc889cd5203e250cba8e3f012dae259b4972b5c16" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "484838772624c3a4b94f1e44a3e19897fee738f2d5c4ce448443b0417f7c9dda" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" + url: "https://pub.dev" + source: hosted + version: "7.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pointycastle: + dependency: "direct main" + description: + name: pointycastle + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" + url: "https://pub.dev" + source: hosted + version: "3.9.1" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.dev" + source: hosted + version: "1.5.2" + posix: + dependency: transitive + description: + name: posix + sha256: bc1bad54ad2b735816e31f8d4600cfde6c7839975085ddfbca48b6c9f7c4044e + url: "https://pub.dev" + source: hosted + version: "6.5.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + record_use: + dependency: transitive + description: + name: record_use + sha256: "2551bd8eecfe95d14ae75f6021ad0248be5c27f138c2ec12fcb52b500b3ba1ed" + url: "https://pub.dev" + source: hosted + version: "0.6.0" + riverpod: + dependency: transitive + description: + name: riverpod + sha256: "17100416c51db7810c71a7bb2c34d1f881faa0074fd452afb0c4db6f8f126c76" + url: "https://pub.dev" + source: hosted + version: "3.3.2" + share_plus: + dependency: "direct main" + description: + name: share_plus + sha256: "34f00f9becd2743c1fb05363d624f9f70d37f7ccdcdda47450bc0b8c9d327b8c" + url: "https://pub.dev" + source: hosted + version: "13.3.0" + share_plus_platform_interface: + dependency: transitive + description: + name: share_plus_platform_interface + sha256: "365ef7379fc22507256adda3385152942ffce08935452bc972c2e52a0bebae41" + url: "https://pub.dev" + source: hosted + version: "7.2.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf + url: "https://pub.dev" + source: hosted + version: "2.5.5" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53 + url: "https://pub.dev" + source: hosted + version: "2.4.23" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f" + url: "https://pub.dev" + source: hosted + version: "2.5.6" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + shimmer: + dependency: "direct main" + description: + name: shimmer + sha256: "5f88c883a22e9f9f299e5ba0e4f7e6054857224976a5d9f839d4ebdc94a14ac9" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b + url: "https://pub.dev" + source: hosted + version: "2.1.2" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" + url: "https://pub.dev" + source: hosted + version: "0.10.13" + source_span: + dependency: transitive + description: + name: source_span + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + url: "https://pub.dev" + source: hosted + version: "1.10.2" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + state_notifier: + dependency: transitive + description: + name: state_notifier + sha256: b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb + url: "https://pub.dev" + source: hosted + version: "1.0.0" + 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: + dependency: transitive + description: + name: test + sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7" + url: "https://pub.dev" + source: hosted + version: "1.26.3" + test_api: + dependency: transitive + description: + name: test_api + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 + url: "https://pub.dev" + source: hosted + version: "0.7.7" + test_core: + dependency: transitive + description: + name: test_core + sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0" + url: "https://pub.dev" + source: hosted + version: "0.6.12" + timezone: + dependency: "direct main" + description: + name: timezone + sha256: "981d1020d6ef8fe1e7b3de5054e5b25579ae7c403d7734adc508ffc47668e9cb" + url: "https://pub.dev" + source: hosted + version: "0.11.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a + url: "https://pub.dev" + source: hosted + version: "3.2.2" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34" + url: "https://pub.dev" + source: hosted + version: "2.4.3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + uuid: + dependency: transitive + description: + name: uuid + sha256: "9b129329f58692f6e6578329498a8fe9fbe98f090beb764ffbb8ee2eadd01dcd" + url: "https://pub.dev" + source: hosted + version: "4.6.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + url: "https://pub.dev" + source: hosted + version: "2.2.0" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" + url: "https://pub.dev" + source: hosted + version: "15.2.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + win32: + dependency: transitive + description: + name: win32 + sha256: a0b93865d5644f11cf6a8c3f6db909f1ec168958b5805f6cc684adea957cd63d + url: "https://pub.dev" + source: hosted + version: "6.4.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: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + url: "https://pub.dev" + source: hosted + version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" +sdks: + dart: ">=3.10.7 <4.0.0" + flutter: ">=3.38.4" diff --git a/kifi-app/pubspec.yaml b/kifi-app/pubspec.yaml new file mode 100644 index 0000000..550d382 --- /dev/null +++ b/kifi-app/pubspec.yaml @@ -0,0 +1,109 @@ +name: kifi_app +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.10.7 + +# 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 + flutter_riverpod: ^3.3.2 + dio: ^5.11.0 + flutter_secure_storage: ^11.0.0 + fl_chart: ^1.2.0 + google_fonts: ^8.2.1 + intl: ^0.20.3 + lucide_icons: ^0.257.0 + local_auth: ^3.0.2 + path_provider: ^2.1.6 + share_plus: ^13.3.0 + image_picker: ^1.2.3 + flutter_image_compress: ^2.3.0 + google_mlkit_text_recognition: ^0.16.0 + shared_preferences: ^2.5.5 + shimmer: ^3.0.0 + flutter_local_notifications: ^22.3.0 + timezone: ^0.11.1 + encrypt: ^5.0.3 + pointycastle: ^3.9.1 + +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: ^6.0.0 + flutter_launcher_icons: ^0.14.4 + +# 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/kifi-app/web/favicon.png b/kifi-app/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/kifi-app/web/icons/Icon-192.png b/kifi-app/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/kifi-app/web/icons/Icon-512.png b/kifi-app/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/kifi-app/web/icons/Icon-maskable-192.png b/kifi-app/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/kifi-app/web/icons/Icon-maskable-512.png b/kifi-app/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/kifi-app/web/index.html b/kifi-app/web/index.html new file mode 100644 index 0000000..3ba871a --- /dev/null +++ b/kifi-app/web/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + kifi_app + + + + + + diff --git a/kifi-app/web/manifest.json b/kifi-app/web/manifest.json new file mode 100644 index 0000000..264f6bf --- /dev/null +++ b/kifi-app/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "kifi_app", + "short_name": "kifi_app", + "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/kifi-app/windows/.gitignore b/kifi-app/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/kifi-app/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/kifi-app/windows/CMakeLists.txt b/kifi-app/windows/CMakeLists.txt new file mode 100644 index 0000000..630698e --- /dev/null +++ b/kifi-app/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(kifi_app 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 "kifi_app") + +# 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/kifi-app/windows/flutter/CMakeLists.txt b/kifi-app/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..903f489 --- /dev/null +++ b/kifi-app/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/kifi-app/windows/flutter/generated_plugin_registrant.cc b/kifi-app/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..24a84f1 --- /dev/null +++ b/kifi-app/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,26 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include +#include +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + FileSelectorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FileSelectorWindows")); + FlutterSecureStorageWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); + LocalAuthPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("LocalAuthPlugin")); + SharePlusWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); +} diff --git a/kifi-app/windows/flutter/generated_plugin_registrant.h b/kifi-app/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/kifi-app/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/kifi-app/windows/flutter/generated_plugins.cmake b/kifi-app/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..845f504 --- /dev/null +++ b/kifi-app/windows/flutter/generated_plugins.cmake @@ -0,0 +1,30 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + file_selector_windows + flutter_secure_storage_windows + local_auth_windows + share_plus + url_launcher_windows +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + flutter_local_notifications_windows + jni +) + +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/kifi-app/windows/runner/CMakeLists.txt b/kifi-app/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/kifi-app/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/kifi-app/windows/runner/Runner.rc b/kifi-app/windows/runner/Runner.rc new file mode 100644 index 0000000..6c8889a --- /dev/null +++ b/kifi-app/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", "kifi_app" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "kifi_app" "\0" + VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "kifi_app.exe" "\0" + VALUE "ProductName", "kifi_app" "\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/kifi-app/windows/runner/flutter_window.cpp b/kifi-app/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/kifi-app/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/kifi-app/windows/runner/flutter_window.h b/kifi-app/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/kifi-app/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/kifi-app/windows/runner/main.cpp b/kifi-app/windows/runner/main.cpp new file mode 100644 index 0000000..1cef646 --- /dev/null +++ b/kifi-app/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"kifi_app", 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/kifi-app/windows/runner/resource.h b/kifi-app/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/kifi-app/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/kifi-app/windows/runner/resources/app_icon.ico b/kifi-app/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/kifi-app/windows/runner/runner.exe.manifest b/kifi-app/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..153653e --- /dev/null +++ b/kifi-app/windows/runner/runner.exe.manifest @@ -0,0 +1,14 @@ + + + + + PerMonitorV2 + + + + + + + + + diff --git a/kifi-app/windows/runner/utils.cpp b/kifi-app/windows/runner/utils.cpp new file mode 100644 index 0000000..3a0b465 --- /dev/null +++ b/kifi-app/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/kifi-app/windows/runner/utils.h b/kifi-app/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/kifi-app/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/kifi-app/windows/runner/win32_window.cpp b/kifi-app/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/kifi-app/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/kifi-app/windows/runner/win32_window.h b/kifi-app/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/kifi-app/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_ diff --git a/prompt.md b/prompt.md new file mode 100644 index 0000000..59620b1 --- /dev/null +++ b/prompt.md @@ -0,0 +1,1070 @@ +You are a senior software architect, Flutter/mobile engineer, and Spring Boot/Java backend engineer with 10+ years of production experience. + +You are working on an EXISTING application repository. + +Your job is to transform the existing application into a modern, platform-independent PERSONAL FINANCE MANAGEMENT application while preserving and reusing as much existing functionality as possible. + +IMPORTANT: +Do NOT rebuild the application from scratch. +Do NOT replace working functionality simply because you prefer another architecture. +Do NOT introduce a new framework/state-management/library without first checking what the project already uses. +Do NOT make destructive database changes. +Do NOT remove existing features unless explicitly required. + +============================================================ +PRIMARY PRODUCT GOAL +============================================================ + +Transform the existing application into a personal finance/accounting management app for ordinary users. + +The user should be able to: + +- track income +- track expenses +- manage cash +- manage bank accounts +- manage savings +- manage investments +- track loans +- track money lent to others +- transfer money between wallets +- create budgets +- analyze spending +- view financial history +- attach receipts/documents/images +- share wallets with other users + +The application must be understandable to users who know nothing about accounting. + +Avoid accounting terminology in the UI where possible. + +Use friendly terminology such as: + +"Wallet" +"Money In" +"Money Out" +"Transfer" +"Savings" +"Investment" +"Money Lent" +"Loan" +"Balance" + +Internal technical/accounting terminology may remain different if necessary. + +============================================================ +PHASE 0 — INSPECT BEFORE CODING +============================================================ + +FIRST inspect the entire repository. + +Do NOT start making large changes immediately. + +Understand: + +1. Flutter architecture +2. Flutter state management +3. Flutter navigation +4. Existing screens +5. Existing widgets/components +6. Existing models +7. Existing API layer +8. Existing authentication +9. Existing transaction workflow +10. Existing account/wallet implementation +11. Existing category implementation +12. Existing items implementation +13. Existing attachment/image upload implementation +14. Existing wallet-sharing implementation +15. Spring Boot architecture +16. Controllers +17. Services +18. Repositories +19. DTOs +20. Entities +21. Database schema +22. Database migrations +23. Configuration +24. Security/authorization +25. Existing tests + +Search the repository instead of guessing. + +Identify what can be reused. + +Identify broken functionality. + +Identify technical debt that directly affects this transformation. + +Then produce a concise report: + +- Current architecture +- Current application workflow +- Current data model +- Current transaction model +- Existing reusable functionality +- Existing broken functionality +- Attachment implementation +- Wallet sharing implementation +- Risks +- Recommended implementation order + +Only after this analysis begin implementation. + +============================================================ +PRODUCT REQUIREMENT +============================================================ + +The client wants to change the nature of the application. + +Current application workflow is too limited. + +New application: + +PERSONAL FINANCE MANAGEMENT + +============================================================ +1. WALLETS +============================================================ + +Use "Wallet" as the primary user-facing concept instead of "Account" if this fits the existing architecture. + +A wallet represents a place/type where money is tracked. + +Examples: + +Cash +Bank Account +Credit Card +Savings +Investment +Loan +Money Lent +Salary +Other + +Users can create custom wallets. + +However, the system must control the underlying financial nature/type. + +Separate: + +USER-FACING WALLET +from +SYSTEM FINANCIAL NATURE + +Suggested internal nature values: + +EXPENSE +INCOME +CASH +DEPOSIT +SAVINGS +INVESTMENT +LOAN +LEND +TRANSFER + +You may improve this model if repository analysis indicates a better normalized design. + +The user should not be able to create arbitrary financial natures. + +Each wallet should support where applicable: + +- id +- name +- icon +- customizable icon +- color/theme +- nature/type +- opening balance +- current balance +- currency +- description +- active/archived +- createdAt +- updatedAt + +Prefer ARCHIVE over DELETE when transactions already reference a wallet. + +Do not destroy historical financial data. + +============================================================ +2. TRANSACTIONS +============================================================ + +The primary "+" action should be extremely simple. + +When the user taps "+": + +Step 1: +Amount + +Step 2: +From Wallet + +Step 3: +To Wallet + +Then: + +- Category +- Description +- Items +- Attachments +- Date/time +- Notes + +Negative transaction amounts must be supported. + +Examples: + +Expense: +Bank → Food/Expense + +Income: +Income → Bank + +Transfer: +Bank → Cash + +Savings: +Bank → Savings + +Investment: +Bank → Investment + +Money lent: +Bank → Money Lent + +Loan received: +Loan → Bank + +The UI should explain From/To in simple language. + +Example: + +"From Wallet" +Where the money comes from. + +"To Wallet" +Where the money goes. + +Do not force users to understand debit/credit terminology. + +============================================================ +3. TRANSACTION EDITING +============================================================ + +Users must be able to edit: + +- amount +- from wallet +- to wallet +- category +- description +- items +- attachments +- date/time +- notes + +After editing: + +- balances must be recalculated correctly +- reports must remain correct +- dashboard totals must remain correct +- ledger must remain correct + +Support: + +- edit +- delete/cancel +- attachment add/remove/replace +- item add/edit/remove + +Use confirmation for destructive operations. + +============================================================ +4. ATTACHMENTS +============================================================ + +The existing image upload is currently not working. + +FIX THE ROOT CAUSE. + +Inspect the entire pipeline: + +Flutter +→ request/multipart +→ Spring Boot +→ storage +→ database/reference +→ retrieval +→ Flutter display + +Do not hide the error. + +Support where practical: + +- camera +- gallery +- file picker +- image preview +- multiple attachments +- upload progress +- retry +- delete +- replace +- error state + +Preserve existing attachment data. + +============================================================ +5. WALLET SHARING +============================================================ + +Existing wallet-sharing functionality MUST remain. + +Do not remove it. + +Inspect the existing implementation first. + +Preserve existing behavior. + +Improve UX if useful. + +Potential permissions: + +OWNER +VIEW +EDIT + +Authorization must be enforced on the backend. + +Never rely only on Flutter UI restrictions. + +============================================================ +6. DASHBOARD +============================================================ + +Build a rich financial dashboard. + +Include: + +- total balance / net position +- income +- expenses +- savings +- investments +- loans +- money lent +- cash +- recent transactions +- budget status +- spending trends +- wallet summaries + +Provide nature-based tabs/cards such as: + +All +Cash +Spending +Savings +Investments +Loans +Money Lent + +Each card should show: + +- current balance +- trend +- relevant summary +- icon +- visual indicator + +Cards must be tappable. + +Tap a card → detailed ledger. + +============================================================ +7. LEDGER +============================================================ + +Dashboard cards and wallets should open a ledger-style transaction view. + +Conceptually show: + +Date | Amount | From | To | Balance + +On mobile use responsive cards/list rows rather than literal desktop tables. + +Each transaction should show: + +- date/time +- amount +- from wallet +- to wallet +- category +- description +- attachment indicator +- item count +- running balance + +Support: + +- search +- date range +- wallet filter +- nature filter +- category filter +- amount range +- income/expense filter +- attachment filter +- sorting +- ascending/descending +- pagination/infinite scrolling + +============================================================ +8. CATEGORIES +============================================================ + +Preserve existing categories. + +Improve where appropriate. + +Examples: + +Food +Transport +Shopping +Bills +Health +Education +Entertainment +Salary +Freelance +Investment +Loan +Other + +Allow user management where safe: + +- create +- rename +- archive +- icon +- color + +Do not break existing category records. + +============================================================ +9. ITEMS +============================================================ + +Preserve existing transaction item functionality. + +Example: + +Grocery ₹1,250 + +Rice ₹500 +Vegetables ₹300 +Snacks ₹250 +Other ₹200 + +Display: + +- item name +- quantity if supported +- price +- total + +Transaction total should be validated against item totals where appropriate. + +============================================================ +10. BUDGETING +============================================================ + +Add budgeting functionality. + +Support: + +- monthly budgets +- category budgets +- wallet-specific budgets + +Show: + +Allocated +Spent +Remaining +Percentage used + +Provide warning levels. + +Examples: + +70% → informational +90% → warning +100%+ → exceeded + +Make thresholds configurable if appropriate. + +============================================================ +11. REPORTS / ANALYTICS +============================================================ + +Provide understandable financial analytics. + +Charts: + +- income vs expenses +- spending by category +- cash flow +- savings trend +- investment trend +- wallet distribution +- top spending categories +- monthly comparison +- recurring expenses + +Charts must be mobile friendly. + +Avoid excessive complexity. + +============================================================ +12. SEARCH / FILTER +============================================================ + +Provide powerful transaction filtering. + +Filters: + +- date +- wallet +- category +- nature +- amount +- income/expense +- attachment +- item +- text search + +Make filtering easy for non-technical users. + +============================================================ +13. RECURRING TRANSACTIONS +============================================================ + +If compatible with the existing architecture, support: + +- salary +- rent +- EMI +- subscriptions +- insurance +- SIP +- recurring bills + +Fields: + +- frequency +- start date +- end date +- next occurrence +- active/inactive + +Do not over-engineer this if it conflicts heavily with the current architecture. + +============================================================ +14. ALERTS / NOTIFICATIONS +============================================================ + +Useful alerts: + +- budget nearing limit +- budget exceeded +- upcoming recurring payment +- loan due +- lending due +- unusual spending +- failed upload +- wallet activity + +Allow notification preferences. + +============================================================ +15. USER EDUCATION +============================================================ + +The application must teach users how to use it. + +Provide: + +- onboarding +- contextual hints +- tooltips +- "What is this?" explanations +- guided tours +- contextual help +- examples + +Example: + +"From Wallet" +Where the money comes from. + +"To Wallet" +Where the money goes. + +"Nature" +How the app categorizes this money movement. + +Users should be able to: + +- skip +- replay +- disable hints + +Do not make onboarding annoying. + +============================================================ +16. UI / UX +============================================================ + +Create a polished modern financial application. + +Requirements: + +- modern Flutter UI +- responsive design +- light theme +- dark theme +- customizable icons +- meaningful icons +- smooth animations +- animated dashboard cards +- page transitions +- bottom sheets +- dialogs +- snackbars +- loading states +- skeleton loaders +- empty states +- error states +- confirmation dialogs +- pull-to-refresh +- swipe actions where appropriate +- floating Add button + +Suggested navigation: + +Dashboard +Wallets +Transactions +Budgets +Reports +Profile + +BUT: + +Do not force this navigation if the existing application's navigation architecture is better. + +Reuse existing navigation where practical. + +============================================================ +17. PROFILE / SECURITY +============================================================ + +Preserve existing authentication. + +Improve where appropriate. + +Possible features: + +- profile +- password/security +- PIN +- biometric lock +- logout +- notification settings +- currency +- theme +- privacy +- data export +- account deletion + +Never expose another user's financial information. + +============================================================ +18. FINANCIAL DATA MODEL +============================================================ + +This is CRITICAL. + +Design a consistent transaction model. + +Every transaction should have: + +- id +- user/owner context +- amount +- fromWallet +- toWallet +- timestamp +- category +- description +- items +- attachments +- metadata + +Wallet balance must be deterministic. + +Avoid duplicated balance calculations. + +Do not use floating point for money. + +Backend: +Use Java BigDecimal. + +Flutter: +Use a safe monetary representation appropriate for the existing architecture. + +Use database transactions for financial operations. + +Ensure edits/deletes correctly update financial calculations. + +============================================================ +19. NEGATIVE AMOUNTS +============================================================ + +Negative values are explicitly allowed. + +Define and document exactly how negative transactions affect: + +- from wallet +- to wallet +- wallet balance +- income +- expense +- reports +- budgets + +Do not let different parts of the application interpret negative amounts differently. + +The backend is the source of truth. + +============================================================ +20. BACKEND +============================================================ + +Inspect the existing Spring Boot architecture first. + +Reuse: + +- controllers +- services +- repositories +- DTOs +- entities +- authentication +- exception handling +- migrations + +Extend existing APIs rather than creating duplicates. + +Use: + +- DTO validation +- service-layer business logic +- transaction boundaries +- authorization +- consistent API errors + +Financial business rules belong on the backend. + +Never rely exclusively on Flutter validation. + +============================================================ +21. DATABASE +============================================================ + +Before modifying entities: + +1. Understand existing schema. +2. Understand existing data. +3. Preserve existing records. +4. Create migrations. +5. Avoid destructive migrations. +6. Provide defaults for old records. +7. Maintain backward compatibility where practical. + +Never silently delete user financial data. + +============================================================ +22. FLUTTER ARCHITECTURE +============================================================ + +Inspect the current Flutter architecture first. + +Preserve existing: + +- state management +- routing +- API client +- repository pattern +- dependency injection +- theme +- widgets + +Do NOT replace state management just because another solution is preferred. + +Create reusable: + +- wallet widgets +- transaction widgets +- dashboard cards +- ledger rows +- filters +- forms +- dialogs +- charts +- attachment components + +Maintain iOS/Android parity. + +============================================================ +23. TESTING +============================================================ + +Backend tests: + +- unit tests +- service tests +- controller tests +- authorization tests +- transaction tests +- balance tests + +Flutter tests: + +- widget tests +- transaction form tests +- wallet tests +- balance tests +- dashboard tests +- attachment tests + +Critical scenarios: + +1. Create wallet +2. Create income +3. Create expense +4. Transfer money +5. Negative transaction +6. Edit transaction +7. Delete transaction +8. Upload attachment +9. Replace attachment +10. Shared wallet +11. Budget calculation +12. Dashboard totals +13. Ledger running balance +14. Unauthorized wallet access + +============================================================ +24. PERFORMANCE +============================================================ + +The application should remain responsive with large transaction histories. + +Consider: + +- pagination +- lazy loading +- database indexes +- optimized queries +- cached dashboard summaries +- debounced search +- image compression +- thumbnail generation +- background upload +- efficient chart data + +Do not optimize prematurely. + +Measure first where possible. + +============================================================ +25. ACCESSIBILITY +============================================================ + +Support: + +- readable typography +- sufficient contrast +- semantic labels +- screen-reader friendly controls +- touch-friendly controls +- scalable text where practical + +Do not rely only on color to communicate financial status. + +============================================================ +26. IMPLEMENTATION PHASES +============================================================ + +Do NOT implement everything in one giant change. + +PHASE 1: +Repository analysis +Architecture understanding +Data model analysis +Existing functionality inventory +Implementation plan + +PHASE 2: +Wallet/account model +Transaction model +Balance calculation +Create/edit transaction + +PHASE 3: +Dashboard +Ledger +Search +Filters + +PHASE 4: +Attachments +Items +Categories +Wallet sharing + +PHASE 5: +Budgets +Reports +Analytics +Recurring transactions + +PHASE 6: +Notifications +Onboarding +Guided tours +Profile/security + +PHASE 7: +UI polish +Animations +Accessibility +Performance +Testing +iOS/Android validation + +After every phase: + +- build backend +- run backend tests +- run Flutter analyzer +- run Flutter tests +- fix compilation errors +- fix test failures +- verify affected functionality + +============================================================ +27. CODE QUALITY RULES +============================================================ + +Follow existing project conventions. + +Prefer small, maintainable changes. + +Avoid unnecessary abstractions. + +Avoid duplicate models/services. + +Avoid dead code. + +Avoid magic constants. + +Use meaningful names. + +Document complicated financial business rules. + +Do not hide errors. + +Do not suppress compiler warnings simply to make builds pass. + +Do not disable tests. + +Do not remove tests to make the implementation pass. + +============================================================ +28. GIT / CHANGE SAFETY +============================================================ + +Before major modifications: + +Inspect git status. + +Do not overwrite unrelated user changes. + +Do not reset/revert user work. + +Do not delete files unless you have established they are obsolete. + +Keep changes logically grouped. + +============================================================ +29. IMPORTANT AGENT BEHAVIOR +============================================================ + +When uncertain: + +1. Inspect the code. +2. Search for existing implementation. +3. Follow existing conventions. +4. Make the smallest safe change. + +Do not guess the architecture. + +Do not assume an API exists. + +Do not create duplicate functionality. + +Do not rewrite working modules unnecessarily. + +If a requirement conflicts with existing behavior, explain the conflict before making a destructive architectural change. + +============================================================ +30. FIRST RESPONSE / FIRST ACTION +============================================================ + +DO NOT IMPLEMENT FEATURES YET. + +First inspect the repository. + +Then report: + +A. Current architecture +B. Flutter architecture +C. Spring Boot architecture +D. Current database model +E. Current account/wallet model +F. Current transaction workflow +G. Current dashboard +H. Current attachment implementation +I. Current wallet sharing implementation +J. Existing reusable functionality +K. Existing bugs/problems +L. Proposed target architecture +M. Database migration strategy +N. API changes required +O. Flutter screens/components required +P. Implementation phases + +Then begin PHASE 1. + +Do not proceed with a massive rewrite. + +Implement incrementally and verify every phase. \ No newline at end of file

Ssqt5WsWE3-CP{b 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 z z�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

xH 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