Commit 21c8d902 authored by Uditha Prabhasha 's avatar Uditha Prabhasha

new updates

parent 47ccb2f3
...@@ -9,8 +9,12 @@ ...@@ -9,8 +9,12 @@
import 'package:cloud_firestore_web/cloud_firestore_web.dart'; import 'package:cloud_firestore_web/cloud_firestore_web.dart';
import 'package:firebase_auth_web/firebase_auth_web.dart'; import 'package:firebase_auth_web/firebase_auth_web.dart';
import 'package:firebase_core_web/firebase_core_web.dart'; import 'package:firebase_core_web/firebase_core_web.dart';
import 'package:firebase_storage_web/firebase_storage_web.dart';
import 'package:image_picker_for_web/image_picker_for_web.dart'; import 'package:image_picker_for_web/image_picker_for_web.dart';
import 'package:rive_common/rive_web.dart'; import 'package:rive_common/rive_web.dart';
import 'package:shared_preferences_web/shared_preferences_web.dart';
import 'package:url_launcher_web/url_launcher_web.dart';
import 'package:video_player_web/video_player_web.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart'; import 'package:flutter_web_plugins/flutter_web_plugins.dart';
void registerPlugins([final Registrar? pluginRegistrar]) { void registerPlugins([final Registrar? pluginRegistrar]) {
...@@ -18,7 +22,11 @@ void registerPlugins([final Registrar? pluginRegistrar]) { ...@@ -18,7 +22,11 @@ void registerPlugins([final Registrar? pluginRegistrar]) {
FirebaseFirestoreWeb.registerWith(registrar); FirebaseFirestoreWeb.registerWith(registrar);
FirebaseAuthWeb.registerWith(registrar); FirebaseAuthWeb.registerWith(registrar);
FirebaseCoreWeb.registerWith(registrar); FirebaseCoreWeb.registerWith(registrar);
FirebaseStorageWeb.registerWith(registrar);
ImagePickerPlugin.registerWith(registrar); ImagePickerPlugin.registerWith(registrar);
RivePlugin.registerWith(registrar); RivePlugin.registerWith(registrar);
SharedPreferencesPlugin.registerWith(registrar);
UrlLauncherPlugin.registerWith(registrar);
VideoPlayerPlugin.registerWith(registrar);
registrar.registerMessageHandler(); registrar.registerMessageHandler();
} }
...@@ -25,6 +25,24 @@ ...@@ -25,6 +25,24 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.17" "languageVersion": "2.17"
}, },
{
"name": "cached_network_image",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "cached_network_image_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "cached_network_image_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_web-1.1.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{ {
"name": "characters", "name": "characters",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/characters-1.3.0", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/characters-1.3.0",
...@@ -67,6 +85,18 @@ ...@@ -67,6 +85,18 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "3.0" "languageVersion": "3.0"
}, },
{
"name": "crypto",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/crypto-3.0.3",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "csslib",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/csslib-1.0.0",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{ {
"name": "cupertino_icons", "name": "cupertino_icons",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.6", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.6",
...@@ -85,6 +115,12 @@ ...@@ -85,6 +115,12 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "3.0" "languageVersion": "3.0"
}, },
{
"name": "file",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file-7.0.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{ {
"name": "file_selector_linux", "name": "file_selector_linux",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1",
...@@ -145,12 +181,36 @@ ...@@ -145,12 +181,36 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.18" "languageVersion": "2.18"
}, },
{
"name": "firebase_storage",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "firebase_storage_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_platform_interface-5.1.3",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "firebase_storage_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{ {
"name": "flutter", "name": "flutter",
"rootUri": "file:///Users/avishka/Desktop/FLUTTER/flutter/packages/flutter", "rootUri": "file:///Users/avishka/Desktop/FLUTTER/flutter/packages/flutter",
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "3.0" "languageVersion": "3.0"
}, },
{
"name": "flutter_cache_manager",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{ {
"name": "flutter_lints", "name": "flutter_lints",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_lints-2.0.3", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_lints-2.0.3",
...@@ -181,6 +241,12 @@ ...@@ -181,6 +241,12 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.18" "languageVersion": "2.18"
}, },
{
"name": "html",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/html-0.15.4",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{ {
"name": "http", "name": "http",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http-1.1.0", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http-1.1.0",
...@@ -195,9 +261,9 @@ ...@@ -195,9 +261,9 @@
}, },
{ {
"name": "image_picker", "name": "image_picker",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-0.8.9", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-1.0.7",
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.18" "languageVersion": "3.0"
}, },
{ {
"name": "image_picker_android", "name": "image_picker_android",
...@@ -213,7 +279,7 @@ ...@@ -213,7 +279,7 @@
}, },
{ {
"name": "image_picker_ios", "name": "image_picker_ios",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1",
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "3.0" "languageVersion": "3.0"
}, },
...@@ -277,12 +343,66 @@ ...@@ -277,12 +343,66 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.18" "languageVersion": "2.18"
}, },
{
"name": "octo_image",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/octo_image-2.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{ {
"name": "path", "name": "path",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3",
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.12" "languageVersion": "2.12"
}, },
{
"name": "path_provider",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider-2.1.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_android",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_foundation",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_linux",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "path_provider_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_windows",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "pie_chart",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/pie_chart-5.4.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "platform",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/platform-3.1.4",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{ {
"name": "plugin_platform_interface", "name": "plugin_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.7", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.7",
...@@ -301,6 +421,54 @@ ...@@ -301,6 +421,54 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.14" "languageVersion": "2.14"
}, },
{
"name": "rxdart",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rxdart-0.27.7",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "shared_preferences",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences-2.2.2",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "shared_preferences_android",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "shared_preferences_foundation",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "shared_preferences_linux",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "shared_preferences_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.3.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "shared_preferences_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "shared_preferences_windows",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{ {
"name": "sky_engine", "name": "sky_engine",
"rootUri": "file:///Users/avishka/Desktop/FLUTTER/flutter/bin/cache/pkg/sky_engine", "rootUri": "file:///Users/avishka/Desktop/FLUTTER/flutter/bin/cache/pkg/sky_engine",
...@@ -313,6 +481,24 @@ ...@@ -313,6 +481,24 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.14" "languageVersion": "2.14"
}, },
{
"name": "sprintf",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sprintf-7.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "sqflite",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "sqflite_common",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite_common-2.5.3",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{ {
"name": "stack_trace", "name": "stack_trace",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/stack_trace-1.11.0", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/stack_trace-1.11.0",
...@@ -331,6 +517,12 @@ ...@@ -331,6 +517,12 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.18" "languageVersion": "2.18"
}, },
{
"name": "synchronized",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{ {
"name": "term_glyph", "name": "term_glyph",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/term_glyph-1.2.1", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/term_glyph-1.2.1",
...@@ -349,6 +541,60 @@ ...@@ -349,6 +541,60 @@
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "2.17" "languageVersion": "2.17"
}, },
{
"name": "url_launcher",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher-6.1.14",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_android",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_ios",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_linux",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_macos",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "url_launcher_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "url_launcher_windows",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "uuid",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/uuid-4.2.2",
"packageUri": "lib/",
"languageVersion": "2.14"
},
{ {
"name": "vector_math", "name": "vector_math",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4", "rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4",
...@@ -356,13 +602,55 @@ ...@@ -356,13 +602,55 @@
"languageVersion": "2.14" "languageVersion": "2.14"
}, },
{ {
"name": "jema_app", "name": "video_player",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player-2.7.2",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "video_player_android",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "video_player_avfoundation",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "video_player_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_platform_interface-6.2.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "video_player_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "win32",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/win32-5.0.9",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "xdg_directories",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/xdg_directories-1.0.4",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "mobile_application_kids",
"rootUri": "../", "rootUri": "../",
"packageUri": "lib/", "packageUri": "lib/",
"languageVersion": "3.0" "languageVersion": "3.0"
} }
], ],
"generated": "2024-02-07T12:20:09.439018Z", "generated": "2024-02-19T06:34:56.311121Z",
"generator": "pub", "generator": "pub",
"generatorVersion": "3.0.1" "generatorVersion": "3.0.1"
} }
...@@ -30,6 +30,18 @@ boolean_selector ...@@ -30,6 +30,18 @@ boolean_selector
2.17 2.17
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/lib/
cached_network_image
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1/lib/
cached_network_image_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0/lib/
cached_network_image_web
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_web-1.1.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_web-1.1.1/lib/
characters characters
2.12 2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/characters-1.3.0/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/characters-1.3.0/
...@@ -58,6 +70,14 @@ cross_file ...@@ -58,6 +70,14 @@ cross_file
3.0 3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cross_file-0.3.3+7/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cross_file-0.3.3+7/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cross_file-0.3.3+7/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cross_file-0.3.3+7/lib/
crypto
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/crypto-3.0.3/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/crypto-3.0.3/lib/
csslib
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/csslib-1.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/csslib-1.0.0/lib/
cupertino_icons cupertino_icons
2.19 2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.6/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.6/
...@@ -70,6 +90,10 @@ ffi ...@@ -70,6 +90,10 @@ ffi
3.0 3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/ffi-2.1.0/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/ffi-2.1.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/ffi-2.1.0/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/ffi-2.1.0/lib/
file
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file-7.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file-7.0.0/lib/
file_selector_linux file_selector_linux
2.19 2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/
...@@ -110,6 +134,22 @@ firebase_core_web ...@@ -110,6 +134,22 @@ firebase_core_web
2.18 2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/lib/
firebase_storage
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/lib/
firebase_storage_platform_interface
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_platform_interface-5.1.3/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_platform_interface-5.1.3/lib/
firebase_storage_web
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17/lib/
flutter_cache_manager
2.17
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1/lib/
flutter_lints flutter_lints
2.19 2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_lints-2.0.3/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_lints-2.0.3/
...@@ -122,6 +162,10 @@ graphs ...@@ -122,6 +162,10 @@ graphs
2.18 2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/graphs-2.3.1/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/graphs-2.3.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/graphs-2.3.1/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/graphs-2.3.1/lib/
html
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/html-0.15.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/html-0.15.4/lib/
http http
3.0 3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http-1.1.0/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http-1.1.0/
...@@ -131,9 +175,9 @@ http_parser ...@@ -131,9 +175,9 @@ http_parser
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http_parser-4.0.2/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http_parser-4.0.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http_parser-4.0.2/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http_parser-4.0.2/lib/
image_picker image_picker
2.18 3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-0.8.9/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-1.0.7/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-0.8.9/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-1.0.7/lib/
image_picker_android image_picker_android
3.0 3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/
...@@ -144,8 +188,8 @@ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/ ...@@ -144,8 +188,8 @@ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/lib/
image_picker_ios image_picker_ios
3.0 3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1/lib/
image_picker_linux image_picker_linux
2.19 2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/
...@@ -186,10 +230,46 @@ mime ...@@ -186,10 +230,46 @@ mime
2.18 2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/mime-1.0.4/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/mime-1.0.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/mime-1.0.4/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/mime-1.0.4/lib/
octo_image
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/octo_image-2.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/octo_image-2.0.0/lib/
path path
2.12 2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3/lib/
path_provider
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider-2.1.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider-2.1.2/lib/
path_provider_android
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2/lib/
path_provider_foundation
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/lib/
path_provider_linux
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/lib/
path_provider_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/lib/
path_provider_windows
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/lib/
pie_chart
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/pie_chart-5.4.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/pie_chart-5.4.0/lib/
platform
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/platform-3.1.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/platform-3.1.4/lib/
plugin_platform_interface plugin_platform_interface
3.0 3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.7/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.7/
...@@ -202,10 +282,54 @@ rive_common ...@@ -202,10 +282,54 @@ rive_common
2.14 2.14
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/lib/
rxdart
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rxdart-0.27.7/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rxdart-0.27.7/lib/
shared_preferences
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences-2.2.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences-2.2.2/lib/
shared_preferences_android
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1/lib/
shared_preferences_foundation
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/lib/
shared_preferences_linux
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/lib/
shared_preferences_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.3.2/lib/
shared_preferences_web
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1/lib/
shared_preferences_windows
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/lib/
source_span source_span
2.14 2.14
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/source_span-1.9.1/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/source_span-1.9.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/source_span-1.9.1/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/source_span-1.9.1/lib/
sprintf
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sprintf-7.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sprintf-7.0.0/lib/
sqflite
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/lib/
sqflite_common
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite_common-2.5.3/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite_common-2.5.3/lib/
stack_trace stack_trace
2.18 2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/stack_trace-1.11.0/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/stack_trace-1.11.0/
...@@ -218,6 +342,10 @@ string_scanner ...@@ -218,6 +342,10 @@ string_scanner
2.18 2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/lib/
synchronized
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1/lib/
term_glyph term_glyph
2.12 2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/
...@@ -230,11 +358,75 @@ typed_data ...@@ -230,11 +358,75 @@ typed_data
2.17 2.17
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/typed_data-1.3.2/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/typed_data-1.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib/
url_launcher
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher-6.1.14/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher-6.1.14/lib/
url_launcher_android
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0/lib/
url_launcher_ios
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4/lib/
url_launcher_linux
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1/lib/
url_launcher_macos
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0/lib/
url_launcher_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.1/lib/
url_launcher_web
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19/lib/
url_launcher_windows
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1/lib/
uuid
2.14
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/uuid-4.2.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/uuid-4.2.2/lib/
vector_math vector_math
2.14 2.14
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/
jema_app video_player
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player-2.7.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player-2.7.2/lib/
video_player_android
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11/lib/
video_player_avfoundation
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11/lib/
video_player_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_platform_interface-6.2.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_platform_interface-6.2.2/lib/
video_player_web
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17/lib/
win32
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/win32-5.0.9/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/win32-5.0.9/lib/
xdg_directories
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/xdg_directories-1.0.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/xdg_directories-1.0.4/lib/
mobile_application_kids
3.0 3.0
file:///Users/avishkanew/Desktop/Avishk678/monitoring-and-recommendations-for-early-childhood-development/ file:///Users/avishkanew/Desktop/Avishk678/monitoring-and-recommendations-for-early-childhood-development/
file:///Users/avishkanew/Desktop/Avishk678/monitoring-and-recommendations-for-early-childhood-development/lib/ file:///Users/avishkanew/Desktop/Avishk678/monitoring-and-recommendations-for-early-childhood-development/lib/
......
...@@ -8,12 +8,37 @@ firebase_auth=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/ ...@@ -8,12 +8,37 @@ firebase_auth=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/
firebase_auth_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth_web-5.8.12/ firebase_auth_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth_web-5.8.12/
firebase_core=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/ firebase_core=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/
firebase_core_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/ firebase_core_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/
firebase_storage=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/
firebase_storage_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17/
flutter_plugin_android_lifecycle=/Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/ flutter_plugin_android_lifecycle=/Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/
image_picker=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-0.8.9/ image_picker=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-1.0.7/
image_picker_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/ image_picker_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/
image_picker_for_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/ image_picker_for_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/
image_picker_ios=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9/ image_picker_ios=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1/
image_picker_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/ image_picker_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/
image_picker_macos=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/ image_picker_macos=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/
image_picker_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/ image_picker_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/
path_provider=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider-2.1.2/
path_provider_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2/
path_provider_foundation=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/
path_provider_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
path_provider_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/
rive_common=/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/ rive_common=/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/
shared_preferences=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences-2.2.2/
shared_preferences_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1/
shared_preferences_foundation=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/
shared_preferences_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/
shared_preferences_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1/
shared_preferences_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/
sqflite=/Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/
url_launcher=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher-6.1.14/
url_launcher_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0/
url_launcher_ios=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4/
url_launcher_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1/
url_launcher_macos=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0/
url_launcher_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19/
url_launcher_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1/
video_player=/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player-2.7.2/
video_player_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11/
video_player_avfoundation=/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11/
video_player_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17/
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9/","native_build":true,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]}],"android":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]}],"macos":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"file_selector_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]}],"windows":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"file_selector_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]}],"web":[{"name":"cloud_firestore_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore_web-3.8.10/","dependencies":["firebase_core_web"]},{"name":"firebase_auth_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth_web-5.8.12/","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/","dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","dependencies":[]}]},"dependencyGraph":[{"name":"cloud_firestore","dependencies":["cloud_firestore_web","firebase_core"]},{"name":"cloud_firestore_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"firebase_auth","dependencies":["firebase_auth_web","firebase_core"]},{"name":"firebase_auth_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"rive_common","dependencies":[]}],"date_created":"2024-02-07 16:20:09.507","version":"3.10.1"} {"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"firebase_storage","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/","native_build":true,"dependencies":["firebase_core"]},{"name":"image_picker_ios","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4/","native_build":true,"dependencies":[]},{"name":"video_player_avfoundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11/","native_build":true,"dependencies":[]}],"android":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"firebase_storage","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"path_provider_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2/","native_build":true,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0/","native_build":true,"dependencies":[]},{"name":"video_player_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11/","native_build":true,"dependencies":[]}],"macos":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"file_selector_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"firebase_storage","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/","native_build":true,"dependencies":["firebase_core"]},{"name":"image_picker_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"path_provider_foundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0/","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]},{"name":"path_provider_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"file_selector_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"firebase_storage","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/","native_build":true,"dependencies":["firebase_core"]},{"name":"image_picker_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"path_provider_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/","native_build":false,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1/","native_build":true,"dependencies":[]}],"web":[{"name":"cloud_firestore_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore_web-3.8.10/","dependencies":["firebase_core_web"]},{"name":"firebase_auth_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth_web-5.8.12/","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/","dependencies":[]},{"name":"firebase_storage_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17/","dependencies":["firebase_core_web"]},{"name":"image_picker_for_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/","dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19/","dependencies":[]},{"name":"video_player_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17/","dependencies":[]}]},"dependencyGraph":[{"name":"cloud_firestore","dependencies":["cloud_firestore_web","firebase_core"]},{"name":"cloud_firestore_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"firebase_auth","dependencies":["firebase_auth_web","firebase_core"]},{"name":"firebase_auth_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"firebase_storage","dependencies":["firebase_core","firebase_storage_web"]},{"name":"firebase_storage_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"rive_common","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]}],"date_created":"2024-02-19 10:34:56.397361","version":"3.10.1"}
\ No newline at end of file \ No newline at end of file
This contains all the project files of Student Monitoring system # mobile_application_kids
\ No newline at end of file
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.
...@@ -13,8 +13,7 @@ linter: ...@@ -13,8 +13,7 @@ linter:
# The lint rules applied to this project can be customized in the # The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml` # 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 # included above or to enable additional rules. A list of all available lints
# and their documentation is published at # and their documentation is published at https://dart.dev/lints.
# https://dart-lang.github.io/linter/lints/index.html.
# #
# Instead of disabling a lint rule for the entire project in the # 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 # section below, it can also be suppressed for a single line of code
......
File added
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:video_player/video_player.dart';
class UserActivitiesScreen extends StatelessWidget {
final String userId;
UserActivitiesScreen({required this.userId});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('User Activities'),
),
body: StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection('activities')
.where('user', isEqualTo: userId)
.snapshots(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator(); // Loading indicator
}
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}'); // Error handling
}
if (snapshot.data == null || snapshot.data!.docs.isEmpty) {
return Center(
child: Text('No activities found for this user.'),
); // No activities found
}
return ListView(
children: snapshot.data!.docs.map((document) {
final videoUrl = document['videoUrl'];
final imageUrl = document['imageUrl'];
if (videoUrl != null) {
return _buildVideoItem(videoUrl);
} else if (imageUrl != null) {
return _buildImageItem(imageUrl);
} else {
return SizedBox(); // Return an empty widget if neither video nor image URL is available
}
}).toList(),
);
},
),
);
}
Widget _buildVideoItem(String videoUrl) {
return ListTile(
title: Text('Activity Video'),
leading: FutureBuilder(
future: VideoPlayerController.network(videoUrl).initialize(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator(); // Placeholder while video loads
}
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
}
if (snapshot.connectionState == ConnectionState.done) {
try {
final controller = VideoPlayerController.network(videoUrl);
return AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: VideoPlayer(controller),
);
} catch (e) {
return Text('Error playing video: $e');
}
} else {
return SizedBox(); // Return empty widget if still loading
}
},
),
onTap: () {
// Handle tap, e.g., navigate to a detail screen
},
);
}
Widget _buildImageItem(String imageUrl) {
return ListTile(
title: Text('Activity Image'),
leading: CachedNetworkImage(
imageUrl: imageUrl,
placeholder: (context, url) =>
CircularProgressIndicator(), // Placeholder while image loads
errorWidget: (context, url, error) => Icon(Icons.error),
),
onTap: () {
// Handle tap, e.g., navigate to a detail screen
},
);
}
}
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
import 'package:pie_chart/pie_chart.dart'; import 'package:pie_chart/pie_chart.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
...@@ -59,7 +59,7 @@ class _AttendanceState extends State<Attendance> { ...@@ -59,7 +59,7 @@ class _AttendanceState extends State<Attendance> {
), ),
actions: [ actions: [
Text( Text(
'Attendance', 'Attendance ',
style: TextStyle( style: TextStyle(
color: Color(0xFF554994), color: Color(0xFF554994),
fontSize: 24, fontSize: 24,
......
...@@ -18,11 +18,19 @@ class _ChatScreenState extends State<ChatScreen> { ...@@ -18,11 +18,19 @@ class _ChatScreenState extends State<ChatScreen> {
late User? _user; late User? _user;
File? _imageFile; File? _imageFile;
String? _voiceFilePath; String? _voiceFilePath;
String? _username;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_user = _auth.currentUser; _user = _auth.currentUser;
fetchFullName(_user!.uid).then((fullName) {
if (fullName != null) {
_username = fullName;
} else {
print('No such document');
}
});
} }
void _sendMessage() async { void _sendMessage() async {
...@@ -43,6 +51,15 @@ class _ChatScreenState extends State<ChatScreen> { ...@@ -43,6 +51,15 @@ class _ChatScreenState extends State<ChatScreen> {
if (_voiceFilePath != null) { if (_voiceFilePath != null) {
voiceUrl = await _uploadFile(File(_voiceFilePath!)); voiceUrl = await _uploadFile(File(_voiceFilePath!));
} }
CollectionReference ref =
FirebaseFirestore.instance.collection('users');
DocumentSnapshot snapshot = await ref.doc(_user!.uid).get();
if (snapshot.exists) {
_username = (snapshot.data() as Map<String, dynamic>)['fullName'];
} else {
return null;
}
await _firestore.collection('messages').add({ await _firestore.collection('messages').add({
'text': message, 'text': message,
...@@ -50,6 +67,7 @@ class _ChatScreenState extends State<ChatScreen> { ...@@ -50,6 +67,7 @@ class _ChatScreenState extends State<ChatScreen> {
'user': _user!.uid, 'user': _user!.uid,
'imageUrl': imageUrl, 'imageUrl': imageUrl,
'voiceUrl': voiceUrl, 'voiceUrl': voiceUrl,
'userName': _username
}); });
_imageFile = null; _imageFile = null;
...@@ -75,7 +93,7 @@ class _ChatScreenState extends State<ChatScreen> { ...@@ -75,7 +93,7 @@ class _ChatScreenState extends State<ChatScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text('Chat'), title: Text('Chat '),
), ),
body: Column( body: Column(
children: <Widget>[ children: <Widget>[
...@@ -105,13 +123,15 @@ class _ChatScreenState extends State<ChatScreen> { ...@@ -105,13 +123,15 @@ class _ChatScreenState extends State<ChatScreen> {
as Map<String, dynamic>)['imageUrl'] as String?; as Map<String, dynamic>)['imageUrl'] as String?;
String? voiceUrl = (message.data() String? voiceUrl = (message.data()
as Map<String, dynamic>)['voiceUrl'] as String?; as Map<String, dynamic>)['voiceUrl'] as String?;
String? __username = (message.data()
as Map<String, dynamic>)['userName'] as String?;
return MessageBubble( return MessageBubble(
message: text ?? '', message: text ?? '',
imageUrl: imageUrl, imageUrl: imageUrl,
voiceUrl: voiceUrl, voiceUrl: voiceUrl,
isCurrentUser: isCurrentUser, isCurrentUser: isCurrentUser,
); userName: __username!);
}, },
); );
}, },
...@@ -152,6 +172,22 @@ class _ChatScreenState extends State<ChatScreen> { ...@@ -152,6 +172,22 @@ class _ChatScreenState extends State<ChatScreen> {
), ),
); );
} }
Future<String?> getFullNameByUid(String uid) async {
CollectionReference ref = FirebaseFirestore.instance.collection('users');
DocumentSnapshot snapshot = await ref.doc(uid).get();
if (snapshot.exists) {
return (snapshot.data() as Map<String, dynamic>)['fullName'];
} else {
return null;
}
}
Future<String?> fetchFullName(String uid) async {
String? fullName = await getFullNameByUid(_user!.uid);
return fullName;
}
} }
class MessageBubble extends StatelessWidget { class MessageBubble extends StatelessWidget {
...@@ -159,6 +195,7 @@ class MessageBubble extends StatelessWidget { ...@@ -159,6 +195,7 @@ class MessageBubble extends StatelessWidget {
final String? imageUrl; final String? imageUrl;
final String? voiceUrl; final String? voiceUrl;
final bool isCurrentUser; final bool isCurrentUser;
final String userName;
const MessageBubble({ const MessageBubble({
Key? key, Key? key,
...@@ -166,6 +203,7 @@ class MessageBubble extends StatelessWidget { ...@@ -166,6 +203,7 @@ class MessageBubble extends StatelessWidget {
required this.isCurrentUser, required this.isCurrentUser,
this.imageUrl, this.imageUrl,
this.voiceUrl, this.voiceUrl,
required this.userName,
}) : super(key: key); }) : super(key: key);
@override @override
...@@ -191,6 +229,13 @@ class MessageBubble extends StatelessWidget { ...@@ -191,6 +229,13 @@ class MessageBubble extends StatelessWidget {
width: 200, width: 200,
), ),
if (message.isNotEmpty) Text(message), if (message.isNotEmpty) Text(message),
Text(
userName,
style: TextStyle(
color: Color.fromARGB(255, 248, 4, 4),
fontSize: 8,
),
)
], ],
), ),
), ),
......
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/ChatScreen.dart'; import 'package:mobile_application_kids/ChatScreen.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
import 'TeacherProfile.dart'; import 'TeacherProfile.dart';
...@@ -41,7 +41,7 @@ class CheckKidsPage extends StatelessWidget { ...@@ -41,7 +41,7 @@ class CheckKidsPage extends StatelessWidget {
), ),
actions: [ actions: [
Text( Text(
'Check In / Out', 'Check In / Out ',
style: TextStyle( style: TextStyle(
color: Color(0xFF554994), color: Color(0xFF554994),
fontSize: 24, fontSize: 24,
...@@ -158,9 +158,9 @@ class CheckKidsPage extends StatelessWidget { ...@@ -158,9 +158,9 @@ class CheckKidsPage extends StatelessWidget {
decoration: ShapeDecoration( decoration: ShapeDecoration(
color: isCheck == 1 color: isCheck == 1
? Color.fromARGB( ? Color.fromARGB(
72, 219, 219, 219) 71, 228, 11, 11)
: Color.fromARGB( : Color.fromARGB(
71, 218, 49, 11), 70, 70, 218, 11),
shape: OvalBorder(), shape: OvalBorder(),
), ),
), ),
......
...@@ -6,11 +6,11 @@ import 'package:cross_file/src/types/interface.dart'; ...@@ -6,11 +6,11 @@ import 'package:cross_file/src/types/interface.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart'; import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/ChatScreen.dart'; import 'package:mobile_application_kids/ChatScreen.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
import 'TeacherProfile.dart'; import 'TeacherProfile.dart';
......
...@@ -4,9 +4,9 @@ import 'package:cloud_firestore/cloud_firestore.dart'; ...@@ -4,9 +4,9 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:jema_app/Attendance.dart'; import 'package:mobile_application_kids/Attendance.dart';
import 'package:jema_app/ChildrenVideo.dart'; import 'package:mobile_application_kids/ChildrenVideo.dart';
import 'package:jema_app/ReportKids.dart'; import 'package:mobile_application_kids/ReportKids.dart';
import 'CheckKids.dart'; import 'CheckKids.dart';
import 'ChildrenActiPhone.dart'; import 'ChildrenActiPhone.dart';
import 'ChildrenHomePage.dart'; import 'ChildrenHomePage.dart';
...@@ -31,6 +31,7 @@ class ChildrenActivity extends StatelessWidget { ...@@ -31,6 +31,7 @@ class ChildrenActivity extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
leading: IconButton( leading: IconButton(
...@@ -60,7 +61,7 @@ class ChildrenActivity extends StatelessWidget { ...@@ -60,7 +61,7 @@ class ChildrenActivity extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.fromLTRB(20, 40, 20, 20), padding: EdgeInsets.fromLTRB(width * 0.1, 20, width * 0.1, 20),
child: Container( child: Container(
width: 293, width: 293,
height: 44, height: 44,
...@@ -188,9 +189,9 @@ class ChildrenActivity extends StatelessWidget { ...@@ -188,9 +189,9 @@ class ChildrenActivity extends StatelessWidget {
), ),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Navigator.of(context).push(MaterialPageRoute( // Navigator.of(context).push(MaterialPageRoute(
builder: (_) => ReportKidsPage(), // builder: (_) => ReportKidsPage( classroom: ),
)); // ));
}, },
child: Padding( child: Padding(
padding: const EdgeInsets.all(10.0), padding: const EdgeInsets.all(10.0),
......
...@@ -3,9 +3,9 @@ import 'dart:async'; ...@@ -3,9 +3,9 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'childrenProfile.dart'; import 'childrenProfile.dart';
...@@ -14,19 +14,24 @@ class ChildrenHomePage extends StatelessWidget { ...@@ -14,19 +14,24 @@ class ChildrenHomePage extends StatelessWidget {
final TextEditingController _searchController = TextEditingController(); final TextEditingController _searchController = TextEditingController();
late StreamController<String> _searchTermController; late StreamController<String> _searchTermController;
late final Stream<QuerySnapshot> _usersStream; late final Stream<QuerySnapshot> _usersStream;
ChildrenHomePage() { String classroom;
ChildrenHomePage({required this.classroom}) {
user = FirebaseAuth.instance.currentUser; user = FirebaseAuth.instance.currentUser;
_searchTermController = StreamController<String>.broadcast(); _searchTermController = StreamController<String>.broadcast();
_usersStream = FirebaseFirestore.instance _usersStream = FirebaseFirestore.instance
.collection('students') .collection('students')
.where('user', isEqualTo: user?.uid) .where('user', isEqualTo: user?.uid)
.where('className', isEqualTo: classroom)
.snapshots(); .snapshots();
_searchTermController.stream.listen((searchTerm) { _searchTermController.stream.listen((searchTerm) {
_usersStream = searchStudents(searchTerm); _usersStream = searchStudents(searchTerm);
}); });
} }
final TextStyle poppinsTextStyle = TextStyle(
fontFamily: 'Poppins',
);
@override @override
void dispose() { void dispose() {
...@@ -38,6 +43,7 @@ class ChildrenHomePage extends StatelessWidget { ...@@ -38,6 +43,7 @@ class ChildrenHomePage extends StatelessWidget {
_usersStream = FirebaseFirestore.instance _usersStream = FirebaseFirestore.instance
.collection('students') .collection('students')
.where('user', isEqualTo: user?.uid) .where('user', isEqualTo: user?.uid)
.where('className', isEqualTo: classroom)
.snapshots(); .snapshots();
} }
...@@ -46,6 +52,7 @@ class ChildrenHomePage extends StatelessWidget { ...@@ -46,6 +52,7 @@ class ChildrenHomePage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return WillPopScope( return WillPopScope(
onWillPop: () async { onWillPop: () async {
// Disable the back button press // Disable the back button press
...@@ -61,7 +68,7 @@ class ChildrenHomePage extends StatelessWidget { ...@@ -61,7 +68,7 @@ class ChildrenHomePage extends StatelessWidget {
), ),
actions: [ actions: [
Text( Text(
'Children', 'Children ',
style: TextStyle( style: TextStyle(
color: Color(0xFF554994), color: Color(0xFF554994),
fontSize: 24, fontSize: 24,
...@@ -90,7 +97,7 @@ class ChildrenHomePage extends StatelessWidget { ...@@ -90,7 +97,7 @@ class ChildrenHomePage extends StatelessWidget {
), ),
), ),
Padding( Padding(
padding: const EdgeInsets.fromLTRB(20, 40, 20, 20), padding: EdgeInsets.fromLTRB(width * 0.1, 40, width * 0.1, 40),
child: Container( child: Container(
width: 293, width: 293,
height: 44, height: 44,
...@@ -149,128 +156,66 @@ class ChildrenHomePage extends StatelessWidget { ...@@ -149,128 +156,66 @@ class ChildrenHomePage extends StatelessWidget {
var className = document['className']; var className = document['className'];
var image = document['image']; var image = document['image'];
return Padding( return ListTile(
padding: const EdgeInsets.all(8.0), leading: CircleAvatar(
child: Container( radius: 27.0,
width: 358, backgroundImage: NetworkImage(image),
height: 77, ),
child: Row( title: Column(
mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start, children: [
crossAxisAlignment: CrossAxisAlignment.center, Row(
children: [ children: [
Container( Text(
child: Row( '$name',
mainAxisSize: MainAxisSize.min, style: poppinsTextStyle.copyWith(
mainAxisAlignment: MainAxisAlignment.start, fontWeight: FontWeight.bold),
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
width: 77,
height: 77,
decoration: ShapeDecoration(
image: DecorationImage(
image: NetworkImage(image),
fit: BoxFit.fill,
),
shape: OvalBorder(),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 12.32,
offset: Offset(0, 3.08),
spreadRadius: 0,
)
],
),
),
const SizedBox(width: 15),
Container(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
name,
style: TextStyle(
color: Colors.black,
fontSize: 20,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
letterSpacing: -0.80,
),
),
const SizedBox(height: 10),
Padding(
padding:
const EdgeInsets.all(8.0),
child: Text(
className,
style: TextStyle(
color: Colors.black,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w300,
height: 0.08,
letterSpacing: -0.56,
),
),
),
],
),
),
],
), ),
],
),
Row(
children: [
Text(
'$className',
style: poppinsTextStyle.copyWith(
fontSize: 12.0),
)
],
),
],
),
trailing: Container(
height: 35.0,
width: 80.0,
decoration: BoxDecoration(
color: Color.fromARGB(203, 164, 88, 177),
borderRadius: BorderRadius.circular(4.0),
),
child: TextButton(
onPressed: () {
print(document);
// Handle view class button press
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) =>
ChildrenProfilePage(document),
),
);
},
child: Text(
'View',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
), ),
const SizedBox(width: 70), ),
Row(
mainAxisAlignment: MainAxisAlignment
.end, // Aligns children to the right
children: [
GestureDetector(
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) =>
ChildrenProfilePage(document),
),
);
},
child: Container(
width: 75,
height: 36,
padding: const EdgeInsets.symmetric(
horizontal: 20, vertical: 12),
decoration: ShapeDecoration(
color: Color(0xFFB983FF),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(4)),
),
child: Text(
'View',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
textAlign: TextAlign.right,
),
),
),
],
),
],
), ),
), ),
); );
;
}, },
); );
}, },
......
...@@ -6,9 +6,9 @@ import 'package:cross_file/src/types/interface.dart'; ...@@ -6,9 +6,9 @@ import 'package:cross_file/src/types/interface.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart'; import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'package:video_player/video_player.dart'; import 'package:video_player/video_player.dart';
import 'TeacherProfile.dart'; import 'TeacherProfile.dart';
...@@ -54,7 +54,7 @@ class ChildrenVideo extends StatelessWidget { ...@@ -54,7 +54,7 @@ class ChildrenVideo extends StatelessWidget {
), ),
actions: [ actions: [
Text( Text(
'Video ', 'Video ',
style: TextStyle( style: TextStyle(
color: Color(0xFF554994), color: Color(0xFF554994),
fontSize: 24, fontSize: 24,
......
...@@ -2,8 +2,10 @@ import 'package:awesome_dialog/awesome_dialog.dart'; ...@@ -2,8 +2,10 @@ import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/parentHome.dart'; import 'package:mobile_application_kids/parentHome.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
import 'main.dart';
class ParentLoginPage extends StatefulWidget { class ParentLoginPage extends StatefulWidget {
const ParentLoginPage({Key? key, required this.backgroundColor}) const ParentLoginPage({Key? key, required this.backgroundColor})
...@@ -32,7 +34,15 @@ class _ParentLoginPage extends State<ParentLoginPage> { ...@@ -32,7 +34,15 @@ class _ParentLoginPage extends State<ParentLoginPage> {
color: Color.fromARGB(255, 0, 0, 0), color: Color.fromARGB(255, 0, 0, 0),
), ),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => MyHomePage(
title: '',
backgroundColor: Color.fromARGB(255, 181, 181, 181),
),
),
);
}, },
), ),
), ),
...@@ -168,13 +178,12 @@ class _ParentLoginPage extends State<ParentLoginPage> { ...@@ -168,13 +178,12 @@ class _ParentLoginPage extends State<ParentLoginPage> {
animType: AnimType.rightSlide, animType: AnimType.rightSlide,
title: 'Successfully login', title: 'Successfully login',
desc: ' Go to your home page', desc: ' Go to your home page',
btnCancelOnPress: () {},
btnOkOnPress: () { btnOkOnPress: () {
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) =>
ParentHomePage(documentSnapshot.get('phoneNo')), ParentHomePage(documentSnapshot.get('phoneNo'), "p"),
), ),
); );
}, },
......
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
import 'ChatScreen.dart'; import 'ChatScreen.dart';
import 'TeacherProfile.dart'; // Import the AddClassroomPage file import 'TeacherProfile.dart';
import 'kidsReport.dart'; // Import the AddClassroomPage file
class ReportKidsPage extends StatelessWidget { class ReportKidsPage extends StatelessWidget {
late User? user; late User? user;
late final Stream<QuerySnapshot> _usersStream; late final Stream<QuerySnapshot> _usersStream;
ReportKidsPage() { String classroom;
ReportKidsPage({required this.classroom}) {
user = FirebaseAuth.instance.currentUser; user = FirebaseAuth.instance.currentUser;
initializeStreams(); initializeStreams();
} }
void initializeStreams() { void initializeStreams() {
_usersStream = FirebaseFirestore.instance _usersStream = FirebaseFirestore.instance
.collection('classroom') .collection('students')
.where('userId', isEqualTo: user?.uid) .where('user', isEqualTo: user?.uid)
.where('className', isEqualTo: classroom)
.snapshots(); .snapshots();
} }
...@@ -41,7 +44,7 @@ class ReportKidsPage extends StatelessWidget { ...@@ -41,7 +44,7 @@ class ReportKidsPage extends StatelessWidget {
), ),
actions: [ actions: [
Text( Text(
'Report', 'Report ',
style: TextStyle( style: TextStyle(
color: Color(0xFF554994), color: Color(0xFF554994),
fontSize: 24, fontSize: 24,
...@@ -108,7 +111,7 @@ class ReportKidsPage extends StatelessWidget { ...@@ -108,7 +111,7 @@ class ReportKidsPage extends StatelessWidget {
itemCount: itemCount, itemCount: itemCount,
itemBuilder: (context, index) { itemBuilder: (context, index) {
var document = snapshot.data!.docs[index]; var document = snapshot.data!.docs[index];
var className = document['className']; var className = document['Firstname'];
return Padding( return Padding(
padding: const EdgeInsets.fromLTRB(0, 20, 0, 0), padding: const EdgeInsets.fromLTRB(0, 20, 0, 0),
...@@ -119,9 +122,8 @@ class ReportKidsPage extends StatelessWidget { ...@@ -119,9 +122,8 @@ class ReportKidsPage extends StatelessWidget {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => ClassroomViewPage( builder: (context) =>
documents: className, KidsReportPage(id: document.id),
),
), ),
); );
}, },
......
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/login.dart'; import 'package:mobile_application_kids/login.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
import 'ChatScreen.dart'; import 'ChatScreen.dart';
...@@ -89,7 +89,7 @@ class _TeacherProfilePageState extends State<TeacherProfilePage> { ...@@ -89,7 +89,7 @@ class _TeacherProfilePageState extends State<TeacherProfilePage> {
), ),
actions: [ actions: [
Text( Text(
'Profile', 'Profile ',
style: TextStyle( style: TextStyle(
color: Color(0xFF554994), color: Color(0xFF554994),
fontSize: 24, fontSize: 24,
......
...@@ -5,7 +5,7 @@ class ActivitiesPage extends StatelessWidget { ...@@ -5,7 +5,7 @@ class ActivitiesPage extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text('Activities'), title: Text('Activities '),
), ),
body: Padding( body: Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
...@@ -162,7 +162,8 @@ class CameraScreen extends StatelessWidget { ...@@ -162,7 +162,8 @@ class CameraScreen extends StatelessWidget {
// Implement your camera screen UI here // Implement your camera screen UI here
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text(cameraType == CameraType.photo ? 'Take Photo' : 'Record Video'), title: Text(
cameraType == CameraType.photo ? 'Take Photo' : 'Record Video'),
), ),
body: Center( body: Center(
child: Text('Camera Screen Placeholder'), child: Text('Camera Screen Placeholder'),
......
...@@ -2,7 +2,7 @@ import 'package:awesome_dialog/awesome_dialog.dart'; ...@@ -2,7 +2,7 @@ import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
class AddClassroomPage extends StatefulWidget { class AddClassroomPage extends StatefulWidget {
@override @override
...@@ -24,7 +24,7 @@ class _AddClassroomPageState extends State<AddClassroomPage> { ...@@ -24,7 +24,7 @@ class _AddClassroomPageState extends State<AddClassroomPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text('Add Classroom'), title: Text('Add Classroom '),
), ),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Center( child: Center(
......
...@@ -48,7 +48,6 @@ class _AddStudentState extends State<AddStudentPage> { ...@@ -48,7 +48,6 @@ class _AddStudentState extends State<AddStudentPage> {
//imagepicker //imagepicker
ImagePicker _imagePicker = ImagePicker(); ImagePicker _imagePicker = ImagePicker();
XFile? _selectedImage; XFile? _selectedImage;
String classname; String classname;
_AddStudentState(String classname) : this.classname = classname; _AddStudentState(String classname) : this.classname = classname;
...@@ -68,7 +67,7 @@ class _AddStudentState extends State<AddStudentPage> { ...@@ -68,7 +67,7 @@ class _AddStudentState extends State<AddStudentPage> {
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Text( child: Text(
'Add Kid', 'Add Kid ',
style: TextStyle( style: TextStyle(
fontSize: 20.0, fontSize: 20.0,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
...@@ -587,7 +586,7 @@ class _AddStudentState extends State<AddStudentPage> { ...@@ -587,7 +586,7 @@ class _AddStudentState extends State<AddStudentPage> {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
ElevatedButton( TextButton(
onPressed: () async { onPressed: () async {
if (Image == null) { if (Image == null) {
AwesomeDialog( AwesomeDialog(
...@@ -630,10 +629,16 @@ class _AddStudentState extends State<AddStudentPage> { ...@@ -630,10 +629,16 @@ class _AddStudentState extends State<AddStudentPage> {
var storageRef = FirebaseStorage.instance var storageRef = FirebaseStorage.instance
.ref() .ref()
.child('student_images/$imageName.jpg'); .child('student_images/$imageName.jpg');
var uploadTask = var uploadTask;
storageRef.putFile(File(_selectedImage!.path)); var downloadUrl = "";
var downloadUrl = if (_selectedImage != null) {
await (await uploadTask).ref.getDownloadURL(); uploadTask = storageRef
.putFile(File(_selectedImage!.path));
downloadUrl =
await (await uploadTask).ref.getDownloadURL();
}
// You can perform signup/authentication logic here // You can perform signup/authentication logic here
postDetailsToFirestore( postDetailsToFirestore(
downloadUrl, downloadUrl,
...@@ -658,39 +663,37 @@ class _AddStudentState extends State<AddStudentPage> { ...@@ -658,39 +663,37 @@ class _AddStudentState extends State<AddStudentPage> {
context); context);
} }
}, },
style: ElevatedButton.styleFrom( style:
primary: Colors.green, TextButton.styleFrom(backgroundColor: Colors.green),
onPrimary: Colors.white, child: Text(
), 'Save',
child: Row( style: TextStyle(
children: [ color: Colors.white,
Column( fontSize: 14,
children: [ fontFamily: 'Poppins',
Text('Signup'), fontWeight: FontWeight.w600,
], height: 1,
), ),
],
), ),
), ),
ElevatedButton( TextButton(
onPressed: () { onPressed: () {
// Handle signup logic here // Handle signup logic here
Navigator.pop(context); Navigator.pop(context);
}, },
style: ElevatedButton.styleFrom( style: TextButton.styleFrom(
primary: Colors.white, backgroundColor: Colors.grey.shade200),
onPrimary: Colors.black, child: Text(
), 'Cancel',
child: Row( style: TextStyle(
children: [ color: Colors.black,
Column( fontSize: 14,
children: [ fontFamily: 'Poppins',
Text('Cancel'), fontWeight: FontWeight.w600,
], height: 1,
), ),
],
), ),
), )
], ],
), ),
], ],
......
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
import 'package:url_launcher/url_launcher.dart';
import 'ActivitiesView.dart';
import 'ChatScreen.dart'; import 'ChatScreen.dart';
import 'TeacherProfile.dart'; import 'TeacherProfile.dart';
import 'kidsReportView.dart';
class ChildrenProfilePage extends StatelessWidget { class ChildrenProfilePage extends StatelessWidget {
late User? user; late User? user;
late final Stream<QuerySnapshot> _usersStream; late final Stream<QuerySnapshot> _usersStream, _usersStream2;
int _age = 0; int _age = 0;
late final userDetails; late final userDetails;
ChildrenProfilePage(document) { ChildrenProfilePage(document) {
...@@ -26,6 +29,11 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -26,6 +29,11 @@ class ChildrenProfilePage extends StatelessWidget {
.collection('classroom') .collection('classroom')
.where('userId', isEqualTo: user?.uid) .where('userId', isEqualTo: user?.uid)
.snapshots(); .snapshots();
_usersStream2 = FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.snapshots();
} }
@override @override
...@@ -45,7 +53,7 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -45,7 +53,7 @@ class ChildrenProfilePage extends StatelessWidget {
), ),
actions: [ actions: [
Text( Text(
'Children', 'Children ',
style: TextStyle( style: TextStyle(
color: Color(0xFF554994), color: Color(0xFF554994),
fontSize: 24, fontSize: 24,
...@@ -57,7 +65,7 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -57,7 +65,7 @@ class ChildrenProfilePage extends StatelessWidget {
) )
], ],
), ),
body: Padding( body: SingleChildScrollView(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
...@@ -264,7 +272,7 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -264,7 +272,7 @@ class ChildrenProfilePage extends StatelessWidget {
TextSpan( TextSpan(
children: [ children: [
TextSpan( TextSpan(
text: 'Gender', text: 'Sex',
style: TextStyle( style: TextStyle(
color: Color(0xFF21205B), color: Color(0xFF21205B),
fontSize: 14, fontSize: 14,
...@@ -338,37 +346,50 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -338,37 +346,50 @@ class ChildrenProfilePage extends StatelessWidget {
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.center, CrossAxisAlignment.center,
children: [ children: [
Container( GestureDetector(
height: double.infinity, onTap: () {
child: Row( Navigator.push(
mainAxisSize: context,
MainAxisSize.min, MaterialPageRoute(
mainAxisAlignment: builder: (context) =>
MainAxisAlignment ChatScreen()),
.start, );
crossAxisAlignment: },
CrossAxisAlignment child: Container(
.center, height: double.infinity,
children: [ child: Row(
Icon( mainAxisSize:
Icons.chat, MainAxisSize.min,
color: Colors.black26, mainAxisAlignment:
), MainAxisAlignment
Text( .start,
'Chat', crossAxisAlignment:
style: TextStyle( CrossAxisAlignment
color: Colors.black, .center,
fontSize: 12, children: [
fontFamily: Icon(
'Poppins', Icons.chat,
fontWeight: color:
FontWeight.w400, Colors.black26,
height: 0.08,
), ),
), Text(
const SizedBox( 'Chat',
width: 10), style: TextStyle(
], color:
Colors.black,
fontSize: 12,
fontFamily:
'Poppins',
fontWeight:
FontWeight
.w400,
height: 0.08,
),
),
const SizedBox(
width: 10),
],
),
), ),
), ),
], ],
...@@ -403,97 +424,119 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -403,97 +424,119 @@ class ChildrenProfilePage extends StatelessWidget {
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.center, CrossAxisAlignment.center,
children: [ children: [
Container( GestureDetector(
height: double.infinity, onTap: () {
child: Row( _getPhoneNumber(user?.uid);
mainAxisSize: },
MainAxisSize.min, child: Container(
mainAxisAlignment: height: double.infinity,
MainAxisAlignment.start, child: Row(
crossAxisAlignment: mainAxisSize:
CrossAxisAlignment MainAxisSize.min,
.center, mainAxisAlignment:
children: [ MainAxisAlignment
Icon( .start,
Icons.call, crossAxisAlignment:
color: Colors.black26, CrossAxisAlignment
), .center,
Text( children: [
'Call', Icon(
style: TextStyle( Icons.call,
color: Colors.black, color: Colors.black26,
fontSize: 12,
fontFamily: 'Poppins',
fontWeight:
FontWeight.w400,
height: 0.08,
), ),
), Text(
const SizedBox(width: 10), 'Call',
], style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily:
'Poppins',
fontWeight:
FontWeight.w400,
height: 0.08,
),
),
const SizedBox(
width: 10),
],
),
), ),
), ),
], ],
), ),
), ),
const SizedBox(width: 16), const SizedBox(width: 16),
Container( GestureDetector(
padding: const EdgeInsets.only( onTap: () {
top: 11, Navigator.push(
bottom: 12, context,
), MaterialPageRoute(
decoration: ShapeDecoration( builder: (context) =>
color: Colors.white, UserActivitiesScreen(
shape: RoundedRectangleBorder( userId: user!.uid)),
borderRadius: );
BorderRadius.circular(6)), },
shadows: [ child: Container(
BoxShadow( padding: const EdgeInsets.only(
color: Color(0x3F000000), top: 11,
blurRadius: 4, bottom: 12,
offset: Offset(0, 1), ),
spreadRadius: 0, decoration: ShapeDecoration(
) color: Colors.white,
], shape: RoundedRectangleBorder(
), borderRadius:
child: Row( BorderRadius.circular(
mainAxisSize: MainAxisSize.min, 6)),
mainAxisAlignment: shadows: [
MainAxisAlignment.center, BoxShadow(
crossAxisAlignment: color: Color(0x3F000000),
CrossAxisAlignment.center, blurRadius: 4,
children: [ offset: Offset(0, 1),
Container( spreadRadius: 0,
height: double.infinity, )
child: Row( ],
mainAxisSize: ),
MainAxisSize.min, child: Row(
mainAxisAlignment: mainAxisSize: MainAxisSize.min,
MainAxisAlignment mainAxisAlignment:
.center, MainAxisAlignment.center,
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment CrossAxisAlignment.center,
.center, children: [
children: [ Container(
Icon( height: double.infinity,
Icons.book, child: Row(
color: Colors.black26, mainAxisSize:
), MainAxisSize.min,
Text( mainAxisAlignment:
'Activites', MainAxisAlignment
style: TextStyle( .center,
color: Colors.black, crossAxisAlignment:
fontSize: 12, CrossAxisAlignment
fontFamily: 'Poppins', .center,
fontWeight: children: [
FontWeight.w400, Icon(
Icons.book,
color: Colors.black26,
), ),
), Text(
const SizedBox(width: 10), 'Activites',
], style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily:
'Poppins',
fontWeight:
FontWeight.w400,
),
),
const SizedBox(
width: 10),
],
),
), ),
), ],
], ),
), ),
), ),
], ],
...@@ -506,134 +549,125 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -506,134 +549,125 @@ class ChildrenProfilePage extends StatelessWidget {
], ],
), ),
))), ))),
/* Padding( Padding(
padding: const EdgeInsets.fromLTRB(8, 30, 0, 0), padding: const EdgeInsets.fromLTRB(8, 30, 0, 0),
child: SingleChildScrollView( child: SingleChildScrollView(
child: Container( child: Column(
width: 358, mainAxisSize: MainAxisSize.min,
height: 171, mainAxisAlignment: MainAxisAlignment.start,
child: Column( crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, children: [
mainAxisAlignment: MainAxisAlignment.start, Container(
crossAxisAlignment: CrossAxisAlignment.start, width: 359,
children: [ height: 178,
Text( child: Column(
'Report', mainAxisSize: MainAxisSize.min,
style: TextStyle( mainAxisAlignment: MainAxisAlignment.start,
color: Color(0xFF21205B), crossAxisAlignment: CrossAxisAlignment.center,
fontSize: 16, children: [
fontFamily: 'Poppins', Container(
fontWeight: FontWeight.w500, width: 359,
height: 0.06, height: 128,
), clipBehavior: Clip.antiAlias,
), decoration: ShapeDecoration(
const SizedBox(height: 20), image: DecorationImage(
SingleChildScrollView( image: AssetImage("lib/assets/banner.png"),
child: Row( fit: BoxFit.cover,
mainAxisSize: MainAxisSize.min, ),
mainAxisAlignment: MainAxisAlignment.start, shape: RoundedRectangleBorder(
crossAxisAlignment: CrossAxisAlignment.start, borderRadius: BorderRadius.circular(10),
children: [ ),
const SizedBox(width: 18), shadows: [
Container( BoxShadow(
width: 150, color: Color(0x19000000),
height: 135, blurRadius: 20,
child: Stack( offset: Offset(0, 2),
children: [ spreadRadius: 0,
Positioned( )
left: 0, ],
top: 0, ),
child: Container( ),
width: 170, const SizedBox(height: 14),
height: 135, Container(
decoration: ShapeDecoration( child: Row(
color: Color(0xFFF1EFFF), mainAxisSize: MainAxisSize.min,
shape: RoundedRectangleBorder( mainAxisAlignment: MainAxisAlignment.start,
borderRadius: crossAxisAlignment: CrossAxisAlignment.start,
BorderRadius.circular(8.44), children: [
), Container(
), padding: const EdgeInsets.symmetric(
), horizontal: 40, vertical: 12),
decoration: ShapeDecoration(
color: Color(0xFF48B62C),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(4)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 4,
offset: Offset(0, 1),
spreadRadius: 0,
)
],
), ),
Positioned( child: Row(
left: 16, mainAxisSize: MainAxisSize.min,
top: 17, mainAxisAlignment:
child: Container( MainAxisAlignment.center,
width: 119.18, crossAxisAlignment:
height: 100.88, CrossAxisAlignment.center,
child: Column( children: [
mainAxisSize: MainAxisSize.min, Text(
mainAxisAlignment: 'Play Here ',
MainAxisAlignment.start, style: TextStyle(
crossAxisAlignment: color: Colors.white,
CrossAxisAlignment.start, fontSize: 14,
children: [ fontFamily: 'Poppins',
Padding( fontWeight: FontWeight.w600,
padding: height: 0.06,
const EdgeInsets.fromLTRB( ),
0, 0, 0, 10),
child: Container(
width: 16.88,
height: 16.88,
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(),
child: Stack(children: [
Icon(
Icons.book,
color: Colors.black26,
),
]),
),
),
const SizedBox(height: 1),
SizedBox(
width: 119.18,
child: Text.rich(
TextSpan(
children: [
TextSpan(
text: 'Monthly \n ',
style: TextStyle(
color:
Color(0xFF403572),
fontSize: 14,
fontFamily: 'Roboto',
fontWeight:
FontWeight.w500,
height: 0.09,
),
),
],
),
),
),
const SizedBox(height: 12),
SizedBox(
width: 119.18,
child: Opacity(
opacity: 0.70,
child: Text(
'Some short description of this type of report.',
style: TextStyle(
color: Color(0xFF8DAEAE),
fontSize: 10.55,
fontFamily: 'Roboto',
fontWeight: FontWeight.w400,
height: 0,
),
),
),
),
],
), ),
), ],
), ),
], ),
), ],
), ),
const SizedBox(width: 18), ),
Container( ],
width: 150, ),
),
SizedBox(
height: 10,
),
Text(
'Report',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
const SizedBox(height: 20),
SingleChildScrollView(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ReportKidsViewPage(
sid: userDetails.id)),
);
},
child: Container(
width: MediaQuery.of(context).size.width * 0.4,
height: 135, height: 135,
child: Stack( child: Stack(
children: [ children: [
...@@ -641,10 +675,11 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -641,10 +675,11 @@ class ChildrenProfilePage extends StatelessWidget {
left: 0, left: 0,
top: 0, top: 0,
child: Container( child: Container(
width: 170, width:
MediaQuery.of(context).size.width,
height: 135, height: 135,
decoration: ShapeDecoration( decoration: ShapeDecoration(
color: Color(0xFFC4F3F3), color: Color(0xFFF1EFFF),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: borderRadius:
BorderRadius.circular(8.44), BorderRadius.circular(8.44),
...@@ -689,10 +724,10 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -689,10 +724,10 @@ class ChildrenProfilePage extends StatelessWidget {
TextSpan( TextSpan(
children: [ children: [
TextSpan( TextSpan(
text: 'Monthly \n', text: 'Monthly \n ',
style: TextStyle( style: TextStyle(
color: color:
Color(0xFF479696), Color(0xFF403572),
fontSize: 14, fontSize: 14,
fontFamily: 'Roboto', fontFamily: 'Roboto',
fontWeight: fontWeight:
...@@ -728,14 +763,122 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -728,14 +763,122 @@ class ChildrenProfilePage extends StatelessWidget {
], ],
), ),
), ),
], ),
),
// GestureDetector(
// onTap: () {
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) =>
// ReportKidsViewPage(
// sid: userDetails.id)));
// },
// child: Container(
// width: 150,
// height: 135,
// child: Stack(
// children: [
// Positioned(
// left: 0,
// top: 0,
// child: Container(
// width: 170,
// height: 135,
// decoration: ShapeDecoration(
// color: Color(0xFFC4F3F3),
// shape: RoundedRectangleBorder(
// borderRadius:
// BorderRadius.circular(8.44),
// ),
// ),
// ),
// ),
// Positioned(
// left: 16,
// top: 17,
// child: Container(
// width: 119.18,
// height: 100.88,
// child: Column(
// mainAxisSize: MainAxisSize.min,
// mainAxisAlignment:
// MainAxisAlignment.start,
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: [
// Padding(
// padding:
// const EdgeInsets.fromLTRB(
// 0, 0, 0, 10),
// child: Container(
// width: 16.88,
// height: 16.88,
// clipBehavior: Clip.antiAlias,
// decoration: BoxDecoration(),
// child: Stack(children: [
// Icon(
// Icons.book,
// color: Colors.black26,
// ),
// ]),
// ),
// ),
// const SizedBox(height: 1),
// SizedBox(
// width: 119.18,
// child: Text.rich(
// TextSpan(
// children: [
// TextSpan(
// text: 'Monthly \n',
// style: TextStyle(
// color:
// Color(0xFF479696),
// fontSize: 14,
// fontFamily: 'Roboto',
// fontWeight:
// FontWeight.w500,
// height: 0.09,
// ),
// ),
// ],
// ),
// ),
// ),
// const SizedBox(height: 12),
// SizedBox(
// width: 119.18,
// child: Opacity(
// opacity: 0.70,
// child: Text(
// 'Some short description of this type of report.',
// style: TextStyle(
// color: Color(0xFF8DAEAE),
// fontSize: 10.55,
// fontFamily: 'Roboto',
// fontWeight:
// FontWeight.w400,
// height: 0,
// ),
// ),
// ),
// ),
// ],
// ),
// ),
// ),
// ],
// ),
// ),
// ),
],
), ),
], ),
), ],
), ),
), ),
)**/ )
], ],
), ),
), ),
...@@ -782,6 +925,35 @@ class ChildrenProfilePage extends StatelessWidget { ...@@ -782,6 +925,35 @@ class ChildrenProfilePage extends StatelessWidget {
); );
} }
_launchPhone(url) async {
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
Future<String?> _getPhoneNumber(userUID) async {
try {
var snapshot = await FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: userUID)
.get();
if (snapshot.docs.isNotEmpty) {
// Assuming 'phone' is the field containing the phone number
String mobile = snapshot.docs.first['Parentphone'];
final url = 'tel:$mobile';
_launchPhone(url);
} else {
return null; // Document not found
}
} catch (e) {
print("Error getting phone number: $e");
return null;
}
}
void calculateAge(birthday) { void calculateAge(birthday) {
String birthdayText = birthday.trim(); String birthdayText = birthday.trim();
if (birthdayText.isNotEmpty) { if (birthdayText.isNotEmpty) {
......
...@@ -3,9 +3,9 @@ import 'dart:async'; ...@@ -3,9 +3,9 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/Attendance.dart'; import 'package:mobile_application_kids/Attendance.dart';
import 'package:jema_app/ChildrenActivity.dart'; import 'package:mobile_application_kids/ChildrenActivity.dart';
import 'package:jema_app/ReportKids.dart'; import 'package:mobile_application_kids/ReportKids.dart';
import 'CheckKids.dart'; import 'CheckKids.dart';
import 'ChildrenHomePage.dart'; import 'ChildrenHomePage.dart';
import 'addstudent.dart'; import 'addstudent.dart';
...@@ -29,6 +29,7 @@ class ClassroomViewPage extends StatelessWidget { ...@@ -29,6 +29,7 @@ class ClassroomViewPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
leading: IconButton( leading: IconButton(
...@@ -37,7 +38,7 @@ class ClassroomViewPage extends StatelessWidget { ...@@ -37,7 +38,7 @@ class ClassroomViewPage extends StatelessWidget {
Navigator.pop(context); Navigator.pop(context);
}, },
), ),
title: Text('Class Room'), title: Text('Class Room '),
), ),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Padding( child: Padding(
...@@ -79,7 +80,7 @@ class ClassroomViewPage extends StatelessWidget { ...@@ -79,7 +80,7 @@ class ClassroomViewPage extends StatelessWidget {
), ),
SizedBox(height: 10), SizedBox(height: 10),
Padding( Padding(
padding: const EdgeInsets.fromLTRB(20, 40, 20, 20), padding: EdgeInsets.fromLTRB(width * 0.1, 20, width * 0.1, 20),
child: Container( child: Container(
width: 293, width: 293,
height: 44, height: 44,
...@@ -124,7 +125,8 @@ class ClassroomViewPage extends StatelessWidget { ...@@ -124,7 +125,8 @@ class ClassroomViewPage extends StatelessWidget {
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (_) => ChildrenHomePage(), builder: (_) =>
ChildrenHomePage(classroom: documents),
)); ));
}, },
child: Padding( child: Padding(
...@@ -567,7 +569,7 @@ class ClassroomViewPage extends StatelessWidget { ...@@ -567,7 +569,7 @@ class ClassroomViewPage extends StatelessWidget {
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (_) => ReportKidsPage(), builder: (_) => ReportKidsPage(classroom: documents),
)); ));
}, },
child: Padding( child: Padding(
......
import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
class KidsReportPage extends StatefulWidget {
String id;
KidsReportPage({required this.id});
@override
_kidsReportPageState createState() => _kidsReportPageState(id: id);
}
class _kidsReportPageState extends State<KidsReportPage> {
// value set to false
bool _valu1 = false;
bool _valu2 = false;
bool _valu3 = false;
bool _valu4 = false;
bool _valu5 = false;
final _formkey = GlobalKey<FormState>();
final _auth = FirebaseAuth.instance;
String id;
_kidsReportPageState({required this.id});
// App widget tree
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Student Report '), //IconButton
), //AppBar
body: SingleChildScrollView(
child: Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Understanding'),
subtitle: const Text(
'Understanding commands, Answer questions, Keeping eye contact, Following rules.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: _valu1,
value: _valu1,
onChanged: (bool? value) {
setState(() {
_valu1 = value ?? false;
});
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Movements'),
subtitle: const Text('Motor activities, Correct posture.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: _valu2,
value: _valu2,
onChanged: (bool? value) {
setState(() {
_valu2 = value ?? false;
});
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Manipulating'),
subtitle: const Text(
'Can build/create new things, Knows how to handle accessories'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: _valu3,
value: _valu3,
onChanged: (bool? value) {
setState(() {
_valu3 = value ?? false;
});
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Socializing'),
subtitle: const Text(
'Play with groups, Help each other, Friendly towards peers.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: _valu4,
value: _valu4,
onChanged: (bool? value) {
setState(() {
_valu4 = value ?? false;
});
},
), //CheckboxListTile
),
// SizedBox(height: 20),
// Container(
// // decoration: BoxDecoration(
// // borderRadius: BorderRadius.circular(20),
// // boxShadow: [
// // BoxShadow(
// // color: Colors.black,
// // offset: const Offset(
// // 3.0,
// // 3.0,
// // ), //Offset
// // blurRadius: 10.0,
// // spreadRadius: 2.0,
// // ), //BoxShadow
// // BoxShadow(
// // color: Colors.white,
// // offset: const Offset(0.0, 0.0),
// // blurRadius: 0.0,
// // spreadRadius: 0.0,
// // ), //BoxShadow
// // ],
// // ), //BoxDecoration
// /** CheckboxListTile Widget **/
// child: CheckboxListTile(
// title: const Text('GeeksforGeeks'),
// subtitle: const Text(
// 'A computer science portal for geeks. Here you will find articles on all the technologies.'),
// // secondary: CircleAvatar(
// // backgroundImage: NetworkImage(
// // "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// // radius: 20,
// // ),
// autofocus: false,
// isThreeLine: true,
// activeColor: Colors.green,
// checkColor: Colors.white,
// selected: _valu5,
// value: _valu5,
// onChanged: (bool? value) {
// setState(() {
// _valu5 = value ?? false;
// });
// },
// ), //CheckboxListTile
// ),
// SizedBox(height: 20),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextButton(
onPressed: () async {
postDetailsToFirestore(context);
},
style:
TextButton.styleFrom(backgroundColor: Colors.green),
child: Text(
'Save',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
),
),
TextButton(
onPressed: () {
Navigator.pop(context);
},
style: TextButton.styleFrom(
backgroundColor: Colors.grey.shade200),
child: Text(
'Cancel',
style: TextStyle(
color: Colors.black,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
),
)
],
),
],
), //Container
), //Padding
), //Center
), //SizedBox
);
}
postDetailsToFirestore(context) async {
FirebaseFirestore firebaseFirestore = FirebaseFirestore.instance;
var user = _auth.currentUser;
CollectionReference ref = FirebaseFirestore.instance.collection('reports');
ref.doc(id).set({
"q1": _valu1,
'q2': _valu2,
'q3': _valu3,
"q4": _valu4,
'q5': _valu5,
'sId': id,
});
AwesomeDialog(
context: context,
dialogType: DialogType.success,
animType: AnimType.rightSlide,
title: 'Successfully Created',
btnOkOnPress: () {},
)..show();
}
}
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'ChatScreen.dart';
import 'TeacherProfile.dart';
import 'kidsReport.dart'; // Import the AddClassroomPage file
class ReportKidsViewPage extends StatelessWidget {
late User? user;
late final Stream<QuerySnapshot> _usersStream;
late String sid;
ReportKidsViewPage({sid}) {
this.sid = sid;
print(sid);
user = FirebaseAuth.instance.currentUser;
initializeStreams();
}
void initializeStreams() {
_usersStream = FirebaseFirestore.instance
.collection('reports')
.where('sId', isEqualTo: sid)
.snapshots();
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
// Disable the back button press
return false;
},
child: Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.of(context).pop();
},
),
actions: [
Text(
'Report ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
height: 0.04,
letterSpacing: -0.96,
),
)
],
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Report View',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
SizedBox(height: 30),
Expanded(
child: StreamBuilder<QuerySnapshot>(
stream: _usersStream,
builder: (context, snapshot) {
print("--------------------------------------");
print(snapshot.data!.docs.length);
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
}
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
}
var itemCount = snapshot.data!.docs.length;
return GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount:
1, // Adjust this value to control the number of items per row
crossAxisSpacing:
8.0, // Adjust spacing between items horizontally
mainAxisSpacing:
8.0, // Adjust spacing between items vertically
),
itemCount: itemCount,
itemBuilder: (context, index) {
var document = snapshot.data!.docs[index];
index++;
var _valu = document['q' + index.toString()];
return Container(
color: Color(0xFFE5E5E5),
child: SingleChildScrollView(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Understanding'),
subtitle: const Text(
'Understanding commands, Answer questions, Keeping eye contact, Following rules.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: document["q1"],
value: document["q1"],
onChanged: (bool? value) {
// setState(() {
// _valu1 = value ?? false;
// });
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Movements'),
subtitle: const Text(
'Motor activities, Correct posture.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: document["q2"],
value: document["q2"],
onChanged: (bool? value) {
// setState(() {
// _valu2 = value ?? false;
// });
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Manipulating'),
subtitle: const Text(
'Can build/create new things, Knows how to handle accessories'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: document["q3"],
value: document["q3"],
onChanged: (bool? value) {
// setState(() {
// _valu3 = value ?? false;
// });
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Socializing'),
subtitle: const Text(
'Play with groups, Help each other, Friendly towards peers.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: document["q4"],
value: document["q4"],
onChanged: (bool? value) {
// setState(() {
// _valu4 = value ?? false;
// });
},
), //CheckboxListTile
),
],
),
),
);
},
);
},
),
),
],
),
),
bottomNavigationBar: BottomNavigationBar(
items: const [
BottomNavigationBarItem(
icon: Icon(Icons.home),
label: 'Home',
),
BottomNavigationBarItem(
icon: Icon(Icons.chat),
label: 'Chat',
),
BottomNavigationBarItem(
icon: Icon(Icons.person),
label: 'Profile',
),
],
selectedItemColor: Colors.blue,
onTap: (index) {
switch (index) {
case 0:
Navigator.push(
context,
MaterialPageRoute(builder: (context) => TeacherHomePage()),
);
break;
case 1:
// Navigate to Chat
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ChatScreen()),
);
break;
case 2:
// Navigate to Profile
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TeacherProfilePage(
uid: user?.uid,
)),
);
break;
}
},
),
),
);
}
}
...@@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; ...@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
class KidsReportsPage extends StatelessWidget { class KidsReportsPage extends StatelessWidget {
final List<KidData> kidsData = [ final List<KidData> kidsData = [
KidData(name: 'Adam', imageUrl: "lib/assets/Ellipse 8.png"), KidData(name: 'Adam', imageUrl: "lib/assets/Ellipse 8.png"),
KidData(name: 'Jude', imageUrl: "lib/assets/Ellipse 8.png"), KidData(name: 'Jude', imageUrl: "lib/assets/Ellipse 8.png"),
KidData(name: 'Anne', imageUrl: 'url_to_kid3_image'), KidData(name: 'Anne', imageUrl: 'url_to_kid3_image'),
KidData(name: 'Adam', imageUrl: 'url_to_kid3_image'), KidData(name: 'Adam', imageUrl: 'url_to_kid3_image'),
KidData(name: 'Jeny', imageUrl: 'url_to_kid3_image'), KidData(name: 'Jeny', imageUrl: 'url_to_kid3_image'),
...@@ -15,7 +15,7 @@ class KidsReportsPage extends StatelessWidget { ...@@ -15,7 +15,7 @@ class KidsReportsPage extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text('Reports'), title: Text('Reports '),
), ),
body: Padding( body: Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
......
...@@ -2,10 +2,12 @@ import 'package:awesome_dialog/awesome_dialog.dart'; ...@@ -2,10 +2,12 @@ import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/parentHome.dart'; import 'package:mobile_application_kids/parentHome.dart';
import 'package:jema_app/teacherhome.dart'; import 'package:mobile_application_kids/teacherhome.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'main.dart';
class LoginPage extends StatefulWidget { class LoginPage extends StatefulWidget {
const LoginPage({Key? key, required this.backgroundColor}) : super(key: key); const LoginPage({Key? key, required this.backgroundColor}) : super(key: key);
final Color backgroundColor; final Color backgroundColor;
...@@ -31,7 +33,15 @@ class _LoginPage extends State<LoginPage> { ...@@ -31,7 +33,15 @@ class _LoginPage extends State<LoginPage> {
color: Color.fromARGB(255, 0, 0, 0), color: Color.fromARGB(255, 0, 0, 0),
), ),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => MyHomePage(
title: '',
backgroundColor: Color.fromARGB(255, 181, 181, 181),
),
),
);
}, },
), ),
), ),
...@@ -167,7 +177,6 @@ class _LoginPage extends State<LoginPage> { ...@@ -167,7 +177,6 @@ class _LoginPage extends State<LoginPage> {
animType: AnimType.rightSlide, animType: AnimType.rightSlide,
title: 'Successfully login', title: 'Successfully login',
desc: ' Go to your home page', desc: ' Go to your home page',
btnCancelOnPress: () {},
btnOkOnPress: () { btnOkOnPress: () {
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
...@@ -192,7 +201,7 @@ class _LoginPage extends State<LoginPage> { ...@@ -192,7 +201,7 @@ class _LoginPage extends State<LoginPage> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) =>
ParentHomePage(documentSnapshot.get('phoneNo')), ParentHomePage(documentSnapshot.get('phoneNo'), "p"),
), ),
); );
}, },
......
import 'dart:async'; import 'dart:async';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/sign_in_up.dart'; import 'package:mobile_application_kids/sign_in_up.dart';
import 'firebase_options.dart'; import 'firebase_options.dart';
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/parentSignUp.dart'; import 'package:mobile_application_kids/parentSignUp.dart';
import 'package:jema_app/teachersignup.dart'; import 'package:mobile_application_kids/teachersignup.dart';
import 'ParentLogin.dart'; import 'ParentLogin.dart';
import 'login.dart'; import 'login.dart';
......
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'ChatScreen.dart'; import 'ChatScreen.dart';
import 'TeacherProfile.dart'; import 'TeacherProfile.dart';
...@@ -13,7 +13,9 @@ class ParentHomePage extends StatelessWidget { ...@@ -13,7 +13,9 @@ class ParentHomePage extends StatelessWidget {
late User? user; late User? user;
late final Stream<QuerySnapshot> _usersStream; late final Stream<QuerySnapshot> _usersStream;
late String phoneNo; late String phoneNo;
ParentHomePage(param0) { late String role;
ParentHomePage(param0, role) {
this.role = role;
this.phoneNo = param0; this.phoneNo = param0;
user = FirebaseAuth.instance.currentUser; user = FirebaseAuth.instance.currentUser;
initializeStreams(); initializeStreams();
...@@ -40,13 +42,13 @@ class ParentHomePage extends StatelessWidget { ...@@ -40,13 +42,13 @@ class ParentHomePage extends StatelessWidget {
}, },
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: AppBar(
leading: Flexible( // leading: Flexible(
child: Image.asset( // child: Image.asset(
'lib/assets/logo.png', // 'lib/assets/logo.png',
fit: BoxFit.contain, // fit: BoxFit.contain,
height: 150, // Adjust the height to make the logo bigger // height: 150, // Adjust the height to make the logo bigger
), // ),
), // ),
actions: [ actions: [
IconButton( IconButton(
icon: Icon(Icons.notifications), icon: Icon(Icons.notifications),
...@@ -125,7 +127,7 @@ class ParentHomePage extends StatelessWidget { ...@@ -125,7 +127,7 @@ class ParentHomePage extends StatelessWidget {
var document = snapshot.data!.docs[index]; var document = snapshot.data!.docs[index];
var className = document['className']; var className = document['className'];
var name = document['Firstname']; var name = document['Firstname'];
print(className); print(document);
return Padding( return Padding(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
......
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'package:pie_chart/pie_chart.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'ChatScreen.dart';
import 'TeacherProfile.dart';
class ProggressReport extends StatefulWidget {
@override
_ProggressReportState createState() => _ProggressReportState();
}
class _ProggressReportState extends State<ProggressReport> {
late User? user;
late final Stream<QuerySnapshot> _usersStream;
int absCount = 0;
int preCount = 0;
@override
void initState() {
super.initState();
user = FirebaseAuth.instance.currentUser;
initializeStreams();
getAllStudentCountPresentAbs();
}
Map<String, double> dataMap = {
"Present": 0,
"Absent": 0,
};
void initializeStreams() {
_usersStream = FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.snapshots();
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
// Disable the back button press
return false;
},
child: Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.of(context).pop();
},
),
actions: [
Text(
'Attendance ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
height: 0.04,
letterSpacing: -0.96,
),
)
],
),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Bright Sparkle ',
style: TextStyle(
color: Color(0xFF11324D),
fontSize: 24,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.04,
letterSpacing: -0.96,
),
),
Padding(
padding: const EdgeInsets.fromLTRB(5, 5, 5, 5),
child: Container(
width: 358,
height: 76,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Today’s Absent Count',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
const SizedBox(height: 20),
Container(
width: double.infinity,
height: 40,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: double.infinity,
padding: const EdgeInsets.symmetric(
horizontal: 21, vertical: 12),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 1,
offset: Offset(0, 0),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Male',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.07,
),
),
const SizedBox(width: 2),
SizedBox(
width: 30,
child: FutureBuilder<String>(
future: getMaleStudentCount(
'Male', 1),
builder: (context, snapshot) {
if (snapshot.connectionState ==
ConnectionState.waiting) {
// Future is still loading, show a loading indicator
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Error occurred while fetching data
return Text('0');
} else {
return Text(' ' +
snapshot.data.toString());
}
})),
],
),
),
const SizedBox(width: 2),
Container(
height: double.infinity,
padding: const EdgeInsets.all(12),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 1,
offset: Offset(0, 0),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Female',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.07,
),
),
const SizedBox(width: 2),
SizedBox(
width: 30,
child: FutureBuilder<String>(
future: getMaleStudentCount(
'Female', 1),
builder: (context, snapshot) {
if (snapshot.connectionState ==
ConnectionState.waiting) {
// Future is still loading, show a loading indicator
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Error occurred while fetching data
return Text('0');
} else {
return Text(' ' +
snapshot.data.toString());
}
})),
],
),
),
const SizedBox(width: 14),
Container(
height: double.infinity,
padding: const EdgeInsets.all(12),
decoration: ShapeDecoration(
color: Color(0xFFEF4B4B),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 1,
offset: Offset(0, 1),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
SizedBox(
width: 53,
child: Text(
'All',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.07,
),
),
),
const SizedBox(width: 3),
FutureBuilder<String>(
future: getAllStudentCount(1),
builder: (context, snapshot) {
if (snapshot.connectionState ==
ConnectionState.waiting) {
// Future is still loading, show a loading indicator
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Error occurred while fetching data
return Text('0');
} else {
// Data loaded successfully, display it
return Text(
snapshot.data.toString(),
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 0.06,
),
);
}
},
),
],
),
),
],
),
),
],
),
)),
Padding(
padding: const EdgeInsets.fromLTRB(5, 5, 0, 5),
child: Container(
width: 358,
height: 362,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: double.infinity,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Attendance Summary ',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
],
),
),
const SizedBox(height: 30),
Container(
width: double.infinity,
height: 316,
padding: const EdgeInsets.only(
top: 16,
left: 18,
right: 17,
bottom: 18,
),
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 3,
offset: Offset(0, 1),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: 300,
height: 282,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
SizedBox(
width: 157,
height: 13,
child: Text(
'Attendance ',
style: TextStyle(
color: Color(0xFF2B3674),
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 0.07,
letterSpacing: -0.28,
),
),
),
],
),
),
Center(
child: Container(
width: 300,
height: 250,
child: Stack(
children: [
PieChart(
dataMap: dataMap,
chartType: ChartType.disc,
chartRadius:
MediaQuery.of(context)
.size
.width /
2.2,
colorList: [
Color.fromARGB(
255, 83, 172, 255),
Color.fromARGB(
255, 106, 210, 255),
],
legendOptions: LegendOptions(
showLegendsInRow: true,
legendPosition:
LegendPosition.bottom,
showLegends: true,
legendTextStyle: TextStyle(
fontWeight:
FontWeight.bold),
),
chartValuesOptions:
ChartValuesOptions(
showChartValueBackground:
true,
showChartValues: true,
showChartValuesInPercentage:
true,
showChartValuesOutside: false,
),
),
],
),
),
),
],
),
),
],
),
),
],
),
)),
],
),
),
),
bottomNavigationBar: BottomNavigationBar(
items: const [
BottomNavigationBarItem(
icon: Icon(Icons.home),
label: 'Home',
),
BottomNavigationBarItem(
icon: Icon(Icons.chat),
label: 'Chat',
),
BottomNavigationBarItem(
icon: Icon(Icons.person),
label: 'Profile',
),
],
selectedItemColor: Colors.blue,
onTap: (index) async {
final prefs = await SharedPreferences.getInstance();
String rool = prefs.get('rool').toString();
// Handle bottom navigation item tap
if (index == 0) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => TeacherHomePage()),
);
}
if (index == 1) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ChatScreen()),
);
}
if (index == 2) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TeacherProfilePage(uid: user?.uid)),
);
}
},
),
),
);
}
Stream<QuerySnapshot> getStudentsStream(String genderFilter, int isCheck) {
return FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.where('Sex', isEqualTo: genderFilter)
.where('isCheck', isEqualTo: isCheck)
.snapshots();
}
Future<String> getMaleStudentCount(String sex, int isCheck) async {
try {
QuerySnapshot snapshot = await getStudentsStream(sex, isCheck).first;
return snapshot.size.toString();
} catch (e) {
print('Error getting male student count: $e');
return '0';
}
}
Stream<QuerySnapshot> getAllStudentsStream(int isCheck) {
return FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.where('isCheck', isEqualTo: isCheck)
.snapshots();
}
Future<String> getAllStudentCount(int isCheck) async {
try {
QuerySnapshot snapshot = await getAllStudentsStream(isCheck).first;
print('size' + snapshot.size.toString());
return snapshot.size.toString();
} catch (e) {
print('Error getting male student count: $e');
return '0';
}
}
Stream<QuerySnapshot> getAllStudentsStreams() {
return FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.snapshots();
}
Future<void> getAllStudentCountPresentAbs() async {
try {
QuerySnapshot snapshot2 = await getAllStudentsStreams().first;
QuerySnapshot snapshot = await getAllStudentsStream(0).first;
QuerySnapshot snapshotAbs = await getAllStudentsStream(1).first;
preCount = snapshot.size;
absCount = snapshotAbs.size;
var pre = (snapshot.size / snapshot2.size) * 100;
var abs = (snapshotAbs.size / snapshot2.size) * 100;
setState(() {
dataMap["Present"] = pre.round().toDouble();
dataMap["Absent"] = abs.round().toDouble();
});
print("ss" + preCount.round().toString());
} catch (e) {
print('Error getting male student count: $e');
}
}
}
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/p_or_t.dart'; import 'package:mobile_application_kids/p_or_t.dart';
import 'package:jema_app/parentSignUp.dart'; import 'package:mobile_application_kids/parentSignUp.dart';
import 'package:jema_app/teachersignup.dart'; import 'package:mobile_application_kids/teachersignup.dart';
import 'p_or_t_s.dart'; import 'p_or_t_s.dart';
......
import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:jema_app/classroomview.dart'; import 'package:mobile_application_kids/classroomview.dart';
import 'package:jema_app/addclassroom.dart'; import 'package:mobile_application_kids/addclassroom.dart';
import 'package:jema_app/teacherchat.dart'; import 'package:mobile_application_kids/teacherchat.dart';
import 'ChatScreen.dart'; import 'ChatScreen.dart';
import 'TeacherProfile.dart'; import 'TeacherProfile.dart';
...@@ -37,13 +37,15 @@ class TeacherHomePage extends StatelessWidget { ...@@ -37,13 +37,15 @@ class TeacherHomePage extends StatelessWidget {
}, },
child: Scaffold( child: Scaffold(
appBar: AppBar( appBar: AppBar(
leading: Flexible( // leading: Padding(
child: Image.asset( // padding: const EdgeInsets.only(left: 20),
'lib/assets/logo.png', // child: SizedBox(
fit: BoxFit.contain, // child: Image.asset(
height: 150, // Adjust the height to make the logo bigger // 'lib/assets/logo.png',
), // fit: BoxFit.contain,
), // ),
// ),
// ),
actions: [ actions: [
IconButton( IconButton(
icon: Icon(Icons.notifications), icon: Icon(Icons.notifications),
...@@ -73,7 +75,6 @@ class TeacherHomePage extends StatelessWidget { ...@@ -73,7 +75,6 @@ class TeacherHomePage extends StatelessWidget {
fit: BoxFit.contain, fit: BoxFit.contain,
), ),
), ),
SizedBox(height: 20),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
...@@ -141,7 +142,7 @@ class TeacherHomePage extends StatelessWidget { ...@@ -141,7 +142,7 @@ class TeacherHomePage extends StatelessWidget {
itemBuilder: (context, index) { itemBuilder: (context, index) {
var document = snapshot.data!.docs[index]; var document = snapshot.data!.docs[index];
var className = document['className']; var className = document['className'];
print(document);
return Padding( return Padding(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
bottom: 8.0), // Adjust the spacing as needed bottom: 8.0), // Adjust the spacing as needed
......
...@@ -7,9 +7,13 @@ ...@@ -7,9 +7,13 @@
#include "generated_plugin_registrant.h" #include "generated_plugin_registrant.h"
#include <file_selector_linux/file_selector_plugin.h> #include <file_selector_linux/file_selector_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) { void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
file_selector_plugin_register_with_registrar(file_selector_linux_registrar); file_selector_plugin_register_with_registrar(file_selector_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);
} }
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
list(APPEND FLUTTER_PLUGIN_LIST list(APPEND FLUTTER_PLUGIN_LIST
file_selector_linux file_selector_linux
url_launcher_linux
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST list(APPEND FLUTTER_FFI_PLUGIN_LIST
......
...@@ -9,12 +9,22 @@ import cloud_firestore ...@@ -9,12 +9,22 @@ import cloud_firestore
import file_selector_macos import file_selector_macos
import firebase_auth import firebase_auth
import firebase_core import firebase_core
import firebase_storage
import path_provider_foundation
import rive_common import rive_common
import shared_preferences_foundation
import sqflite
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FLTFirebaseFirestorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseFirestorePlugin")) FLTFirebaseFirestorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseFirestorePlugin"))
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin"))
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
FLTFirebaseStoragePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseStoragePlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
RivePlugin.register(with: registry.registrar(forPlugin: "RivePlugin")) RivePlugin.register(with: registry.registrar(forPlugin: "RivePlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
} }
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/lib" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/.idea" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Flutter Plugins" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component>
</module>
...@@ -33,6 +33,30 @@ packages: ...@@ -33,6 +33,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.1"
cached_network_image:
dependency: "direct main"
description:
name: cached_network_image
sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f"
url: "https://pub.dev"
source: hosted
version: "3.3.1"
cached_network_image_platform_interface:
dependency: transitive
description:
name: cached_network_image_platform_interface
sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f"
url: "https://pub.dev"
source: hosted
version: "4.0.0"
cached_network_image_web:
dependency: transitive
description:
name: cached_network_image_web
sha256: "42a835caa27c220d1294311ac409a43361088625a4f23c820b006dd9bffb3316"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
...@@ -89,6 +113,22 @@ packages: ...@@ -89,6 +113,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.3+7" version: "0.3.3+7"
crypto:
dependency: transitive
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
url: "https://pub.dev"
source: hosted
version: "3.0.3"
csslib:
dependency: transitive
description:
name: csslib
sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -113,6 +153,14 @@ packages: ...@@ -113,6 +153,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
file:
dependency: transitive
description:
name: file
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
file_selector_linux: file_selector_linux:
dependency: transitive dependency: transitive
description: description:
...@@ -193,11 +241,43 @@ packages: ...@@ -193,11 +241,43 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.10.0" version: "2.10.0"
firebase_storage:
dependency: "direct main"
description:
name: firebase_storage
sha256: "75e6cb6bed65138b5bbd86bfd7cf9bc9a175fb0c31aacc400e9203df117ffbe6"
url: "https://pub.dev"
source: hosted
version: "11.6.0"
firebase_storage_platform_interface:
dependency: transitive
description:
name: firebase_storage_platform_interface
sha256: "545a3a8edf337850403bb0fa03c8074a53deb87c0107d19755c77a82ce07919e"
url: "https://pub.dev"
source: hosted
version: "5.1.3"
firebase_storage_web:
dependency: transitive
description:
name: firebase_storage_web
sha256: ee6870ff79aa304b8996ba18a4aefe1e8b3fc31fd385eab6574180267aa8d393
url: "https://pub.dev"
source: hosted
version: "3.6.17"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_cache_manager:
dependency: transitive
description:
name: flutter_cache_manager
sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba"
url: "https://pub.dev"
source: hosted
version: "3.3.1"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
...@@ -232,6 +312,14 @@ packages: ...@@ -232,6 +312,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.1"
html:
dependency: transitive
description:
name: html
sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
url: "https://pub.dev"
source: hosted
version: "0.15.4"
http: http:
dependency: transitive dependency: transitive
description: description:
...@@ -252,10 +340,10 @@ packages: ...@@ -252,10 +340,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: image_picker name: image_picker
sha256: b6951e25b795d053a6ba03af5f710069c99349de9341af95155d52665cb4607c sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.9" version: "1.0.7"
image_picker_android: image_picker_android:
dependency: transitive dependency: transitive
description: description:
...@@ -276,10 +364,10 @@ packages: ...@@ -276,10 +364,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: image_picker_ios name: image_picker_ios
sha256: eac0a62104fa12feed213596df0321f57ce5a572562f72a68c4ff81e9e4caacf sha256: fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.9" version: "0.8.9+1"
image_picker_linux: image_picker_linux:
dependency: transitive dependency: transitive
description: description:
...@@ -360,6 +448,14 @@ packages: ...@@ -360,6 +448,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.4" version: "1.0.4"
octo_image:
dependency: transitive
description:
name: octo_image
sha256: "45b40f99622f11901238e18d48f5f12ea36426d8eced9f4cbf58479c7aa2430d"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
path: path:
dependency: transitive dependency: transitive
description: description:
...@@ -368,6 +464,70 @@ packages: ...@@ -368,6 +464,70 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.3" version: "1.8.3"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170"
url: "https://pub.dev"
source: hosted
version: "2.2.1"
pie_chart:
dependency: "direct main"
description:
name: pie_chart
sha256: "58e6a46999ac938bfa1c3e5be414d6e149f037647197dca03ba3614324c12c82"
url: "https://pub.dev"
source: hosted
version: "5.4.0"
platform:
dependency: transitive
description:
name: platform
sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
url: "https://pub.dev"
source: hosted
version: "3.1.4"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
...@@ -392,6 +552,70 @@ packages: ...@@ -392,6 +552,70 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.7" version: "0.2.7"
rxdart:
dependency: transitive
description:
name: rxdart
sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
url: "https://pub.dev"
source: hosted
version: "0.27.7"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06"
url: "https://pub.dev"
source: hosted
version: "2.2.1"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c"
url: "https://pub.dev"
source: hosted
version: "2.3.5"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf
url: "https://pub.dev"
source: hosted
version: "2.2.1"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -405,6 +629,30 @@ packages: ...@@ -405,6 +629,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.1" version: "1.9.1"
sprintf:
dependency: transitive
description:
name: sprintf
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
sqflite:
dependency: transitive
description:
name: sqflite
sha256: a9016f495c927cb90557c909ff26a6d92d9bd54fc42ba92e19d4e79d61e798c6
url: "https://pub.dev"
source: hosted
version: "2.3.2"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5"
url: "https://pub.dev"
source: hosted
version: "2.5.3"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
...@@ -429,6 +677,14 @@ packages: ...@@ -429,6 +677,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
synchronized:
dependency: transitive
description:
name: synchronized
sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558"
url: "https://pub.dev"
source: hosted
version: "3.1.0+1"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
...@@ -453,6 +709,78 @@ packages: ...@@ -453,6 +709,78 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.2" version: "1.3.2"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
sha256: "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27"
url: "https://pub.dev"
source: hosted
version: "6.1.14"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745
url: "https://pub.dev"
source: hosted
version: "6.3.0"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03"
url: "https://pub.dev"
source: hosted
version: "6.2.4"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811
url: "https://pub.dev"
source: hosted
version: "3.1.1"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234
url: "https://pub.dev"
source: hosted
version: "3.1.0"
url_launcher_platform_interface:
dependency: transitive
description:
name: url_launcher_platform_interface
sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f
url: "https://pub.dev"
source: hosted
version: "2.3.1"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
sha256: ba140138558fcc3eead51a1c42e92a9fb074a1b1149ed3c73e66035b2ccd94f2
url: "https://pub.dev"
source: hosted
version: "2.0.19"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7
url: "https://pub.dev"
source: hosted
version: "3.1.1"
uuid:
dependency: transitive
description:
name: uuid
sha256: "22c94e5ad1e75f9934b766b53c742572ee2677c56bc871d850a57dad0f82127f"
url: "https://pub.dev"
source: hosted
version: "4.2.2"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
...@@ -461,6 +789,62 @@ packages: ...@@ -461,6 +789,62 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
video_player:
dependency: "direct main"
description:
name: video_player
sha256: "74b86e63529cf5885130c639d74cd2f9232e7c8a66cbecbddd1dcb9dbd060d1e"
url: "https://pub.dev"
source: hosted
version: "2.7.2"
video_player_android:
dependency: transitive
description:
name: video_player_android
sha256: "7f8f25d7ad56819a82b2948357f3c3af071f6a678db33833b26ec36bbc221316"
url: "https://pub.dev"
source: hosted
version: "2.4.11"
video_player_avfoundation:
dependency: transitive
description:
name: video_player_avfoundation
sha256: bf1a1322bf68bccd349982ba1f5a41314a3880861fb9a93d25d6d0a2345845f0
url: "https://pub.dev"
source: hosted
version: "2.4.11"
video_player_platform_interface:
dependency: transitive
description:
name: video_player_platform_interface
sha256: "236454725fafcacf98f0f39af0d7c7ab2ce84762e3b63f2cbb3ef9a7e0550bc6"
url: "https://pub.dev"
source: hosted
version: "6.2.2"
video_player_web:
dependency: transitive
description:
name: video_player_web
sha256: "9c34a243785feca23148bfcd772dbb803d63c9304488177ec4f3f4463802fcb7"
url: "https://pub.dev"
source: hosted
version: "2.0.17"
win32:
dependency: transitive
description:
name: win32
sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3"
url: "https://pub.dev"
source: hosted
version: "5.0.9"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
url: "https://pub.dev"
source: hosted
version: "1.0.4"
sdks: sdks:
dart: ">=3.0.1 <4.0.0" dart: ">=3.0.1 <4.0.0"
flutter: ">=3.10.0" flutter: ">=3.10.0"
name: jema_app name: mobile_application_kids
description: A new Flutter project. description: A new Flutter project.
# The following line prevents the package from being accidentally published to # The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages. # pub.dev using `flutter pub publish`. This is preferred for private packages.
...@@ -35,11 +35,17 @@ dependencies: ...@@ -35,11 +35,17 @@ dependencies:
# The following adds the Cupertino Icons font to your application. # The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons. # Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
image_picker: ^0.8.0
firebase_core: ^2.24.2 firebase_core: ^2.24.2
firebase_auth: ^4.15.3 firebase_auth: ^4.15.3
cloud_firestore: ^4.13.6 cloud_firestore: ^4.13.6
awesome_dialog: ^3.1.0 awesome_dialog: ^3.1.0
image_picker: ^1.0.6
firebase_storage: ^11.6.0
pie_chart: ^5.4.0
video_player: ^2.7.2
shared_preferences: ^2.2.2
url_launcher: ^6.1.14
cached_network_image: ^3.3.1
dev_dependencies: dev_dependencies:
...@@ -82,6 +88,13 @@ flutter: ...@@ -82,6 +88,13 @@ flutter:
- lib/assets/Vector25.png - lib/assets/Vector25.png
- lib/assets/Vector26.png - lib/assets/Vector26.png
- lib/assets/Ellipse 8.png - lib/assets/Ellipse 8.png
- lib/assets/classlogo.png
- lib/assets/ac1.png
- lib/assets/ac2.png
- lib/assets/ac3.png
- lib/assets/ac4.png
- lib/assets/ac5.png
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:jema_app/main.dart'; import 'package:mobile_application_kids/main.dart';
void main() { void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async { testWidgets('Counter increments smoke test', (WidgetTester tester) async {
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
#include <file_selector_windows/file_selector_windows.h> #include <file_selector_windows/file_selector_windows.h>
#include <firebase_auth/firebase_auth_plugin_c_api.h> #include <firebase_auth/firebase_auth_plugin_c_api.h>
#include <firebase_core/firebase_core_plugin_c_api.h> #include <firebase_core/firebase_core_plugin_c_api.h>
#include <firebase_storage/firebase_storage_plugin_c_api.h>
#include <rive_common/rive_plugin.h> #include <rive_common/rive_plugin.h>
#include <url_launcher_windows/url_launcher_windows.h>
void RegisterPlugins(flutter::PluginRegistry* registry) { void RegisterPlugins(flutter::PluginRegistry* registry) {
CloudFirestorePluginCApiRegisterWithRegistrar( CloudFirestorePluginCApiRegisterWithRegistrar(
...@@ -21,6 +23,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { ...@@ -21,6 +23,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi")); registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi"));
FirebaseCorePluginCApiRegisterWithRegistrar( FirebaseCorePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
FirebaseStoragePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseStoragePluginCApi"));
RivePluginRegisterWithRegistrar( RivePluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("RivePlugin")); registry->GetRegistrarForPlugin("RivePlugin"));
UrlLauncherWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
} }
...@@ -7,7 +7,9 @@ list(APPEND FLUTTER_PLUGIN_LIST ...@@ -7,7 +7,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
file_selector_windows file_selector_windows
firebase_auth firebase_auth
firebase_core firebase_core
firebase_storage
rive_common rive_common
url_launcher_windows
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST list(APPEND FLUTTER_FFI_PLUGIN_LIST
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment