diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index bf325e5..130cd64 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"advance_pdf_viewer2","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\advance_pdf_viewer2-2.0.4\\\\","native_build":true,"dependencies":[]},{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\file_picker-5.2.5\\\\","native_build":true,"dependencies":[]},{"name":"firebase_analytics","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_analytics-10.1.1\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_auth-4.2.6\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_core-2.5.0\\\\","native_build":true,"dependencies":[]},{"name":"firebase_dynamic_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_dynamic_links-5.0.12\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_facebook_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_facebook_auth-5.0.7\\\\","native_build":true,"dependencies":[]},{"name":"flutter_native_splash","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_native_splash-2.2.0+1\\\\","native_build":true,"dependencies":[]},{"name":"flutter_pdfview","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_pdfview-1.2.5\\\\","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage-7.0.1\\\\","native_build":true,"dependencies":[]},{"name":"google_sign_in_ios","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\google_sign_in_ios-5.5.1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.1.1\\\\","native_build":true,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_foundation-2.1.3\\\\","native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.2.4+1\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_ios-6.1.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"advance_pdf_viewer2","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\advance_pdf_viewer2-2.0.4\\\\","native_build":true,"dependencies":[]},{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\file_picker-5.2.5\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"firebase_analytics","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_analytics-10.1.1\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_auth-4.2.6\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_core-2.5.0\\\\","native_build":true,"dependencies":[]},{"name":"firebase_dynamic_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_dynamic_links-5.0.12\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_facebook_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_facebook_auth-5.0.7\\\\","native_build":true,"dependencies":[]},{"name":"flutter_native_splash","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_native_splash-2.2.0+1\\\\","native_build":true,"dependencies":[]},{"name":"flutter_pdfview","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_pdfview-1.2.5\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_plugin_android_lifecycle-2.0.7\\\\","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage-7.0.1\\\\","native_build":true,"dependencies":[]},{"name":"flutter_windowmanager","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_windowmanager-0.2.0\\\\","native_build":true,"dependencies":[]},{"name":"google_sign_in_android","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\google_sign_in_android-6.1.6\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_android-2.0.22\\\\","native_build":true,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_android-2.0.15\\\\","native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.2.4+1\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_android-6.0.23\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","native_build":true,"dependencies":[]},{"name":"facebook_auth_desktop","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\facebook_auth_desktop-0.0.8\\\\","native_build":true,"dependencies":[]},{"name":"firebase_analytics","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_analytics-10.1.1\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_auth-4.2.6\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_core-2.5.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage_macos","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage_macos-2.0.1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.1.1\\\\","native_build":true,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_foundation-2.1.3\\\\","native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.2.4+1\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_macos-3.0.2\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_secure_storage_linux","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage_linux-1.1.3\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_linux-2.1.8\\\\","native_build":false,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":false,"dependencies":["url_launcher_linux"]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_linux-2.1.3\\\\","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_linux-3.0.2\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage_windows","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage_windows-1.1.3\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_windows-2.1.3\\\\","native_build":false,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":true,"dependencies":["url_launcher_windows"]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_windows-2.1.3\\\\","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_windows-3.0.3\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\file_picker-5.2.5\\\\","dependencies":[]},{"name":"firebase_analytics_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_analytics_web-0.5.1+9\\\\","dependencies":["firebase_core_web"]},{"name":"firebase_auth_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_auth_web-5.2.5\\\\","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_core_web-2.1.1\\\\","dependencies":[]},{"name":"flutter_facebook_auth_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_facebook_auth_web-4.1.1\\\\","dependencies":[]},{"name":"flutter_native_splash","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_native_splash-2.2.0+1\\\\","dependencies":[]},{"name":"flutter_secure_storage_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage_web-1.1.1\\\\","dependencies":[]},{"name":"google_sign_in_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\google_sign_in_web-0.10.2+1\\\\","dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","dependencies":["url_launcher_web"]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_web-2.0.4\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_web-2.0.14\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"advance_pdf_viewer2","dependencies":["path_provider"]},{"name":"app_links","dependencies":[]},{"name":"facebook_auth_desktop","dependencies":["flutter_secure_storage"]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"firebase_analytics","dependencies":["firebase_analytics_web","firebase_core"]},{"name":"firebase_analytics_web","dependencies":["firebase_core","firebase_core_web"]},{"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_dynamic_links","dependencies":["firebase_core"]},{"name":"flutter_facebook_auth","dependencies":["flutter_facebook_auth_web","facebook_auth_desktop"]},{"name":"flutter_facebook_auth_web","dependencies":[]},{"name":"flutter_native_splash","dependencies":[]},{"name":"flutter_pdfview","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":[]},{"name":"flutter_windowmanager","dependencies":[]},{"name":"google_sign_in","dependencies":["google_sign_in_android","google_sign_in_ios","google_sign_in_web"]},{"name":"google_sign_in_android","dependencies":[]},{"name":"google_sign_in_ios","dependencies":[]},{"name":"google_sign_in_web","dependencies":[]},{"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":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"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":[]}],"date_created":"2023-03-22 16:27:49.872336","version":"3.7.7"} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"advance_pdf_viewer2","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\advance_pdf_viewer2-2.0.4\\\\","native_build":true,"dependencies":[]},{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\file_picker-5.2.5\\\\","native_build":true,"dependencies":[]},{"name":"firebase_analytics","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_analytics-10.1.1\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_auth-4.2.6\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_core-2.5.0\\\\","native_build":true,"dependencies":[]},{"name":"firebase_dynamic_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_dynamic_links-5.0.12\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_facebook_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_facebook_auth-5.0.7\\\\","native_build":true,"dependencies":[]},{"name":"flutter_native_splash","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_native_splash-2.2.0+1\\\\","native_build":true,"dependencies":[]},{"name":"flutter_pdfview","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_pdfview-1.2.5\\\\","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage-7.0.1\\\\","native_build":true,"dependencies":[]},{"name":"google_sign_in_ios","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\google_sign_in_ios-5.5.1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.1.1\\\\","native_build":true,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_foundation-2.1.3\\\\","native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.2.4+1\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_ios-6.1.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"advance_pdf_viewer2","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\advance_pdf_viewer2-2.0.4\\\\","native_build":true,"dependencies":[]},{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\file_picker-5.2.5\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"firebase_analytics","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_analytics-10.1.1\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_auth-4.2.6\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_core-2.5.0\\\\","native_build":true,"dependencies":[]},{"name":"firebase_dynamic_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_dynamic_links-5.0.12\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_facebook_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_facebook_auth-5.0.7\\\\","native_build":true,"dependencies":[]},{"name":"flutter_native_splash","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_native_splash-2.2.0+1\\\\","native_build":true,"dependencies":[]},{"name":"flutter_pdfview","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_pdfview-1.2.5\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_plugin_android_lifecycle-2.0.7\\\\","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage-7.0.1\\\\","native_build":true,"dependencies":[]},{"name":"flutter_windowmanager","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_windowmanager-0.2.0\\\\","native_build":true,"dependencies":[]},{"name":"google_sign_in_android","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\google_sign_in_android-6.1.6\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_android-2.0.22\\\\","native_build":true,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_android-2.0.15\\\\","native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.2.4+1\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_android-6.0.23\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","native_build":true,"dependencies":[]},{"name":"facebook_auth_desktop","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\facebook_auth_desktop-0.0.8\\\\","native_build":true,"dependencies":[]},{"name":"firebase_analytics","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_analytics-10.1.1\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_auth-4.2.6\\\\","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_core-2.5.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage_macos","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage_macos-2.0.1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.1.1\\\\","native_build":true,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_foundation-2.1.3\\\\","native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.2.4+1\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_macos-3.0.2\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_secure_storage_linux","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage_linux-1.1.3\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_linux-2.1.8\\\\","native_build":false,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":false,"dependencies":["url_launcher_linux"]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_linux-2.1.3\\\\","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_linux-3.0.2\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage_windows","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage_windows-1.1.3\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_windows-2.1.3\\\\","native_build":false,"dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","native_build":true,"dependencies":["url_launcher_windows"]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_windows-2.1.3\\\\","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_windows-3.0.3\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"app_links","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\app_links-3.4.1\\\\","dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\file_picker-5.2.5\\\\","dependencies":[]},{"name":"firebase_analytics_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_analytics_web-0.5.1+9\\\\","dependencies":["firebase_core_web"]},{"name":"firebase_auth_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_auth_web-5.2.5\\\\","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\firebase_core_web-2.1.1\\\\","dependencies":[]},{"name":"flutter_facebook_auth_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_facebook_auth_web-4.1.1\\\\","dependencies":[]},{"name":"flutter_native_splash","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_native_splash-2.2.0+1\\\\","dependencies":[]},{"name":"flutter_secure_storage_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_secure_storage_web-1.1.1\\\\","dependencies":[]},{"name":"google_sign_in_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\google_sign_in_web-0.10.2+1\\\\","dependencies":[]},{"name":"share_plus","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\share_plus-6.3.1\\\\","dependencies":["url_launcher_web"]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\shared_preferences_web-2.0.4\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\tanis\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_web-2.0.14\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"advance_pdf_viewer2","dependencies":["path_provider"]},{"name":"app_links","dependencies":[]},{"name":"facebook_auth_desktop","dependencies":["flutter_secure_storage"]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"firebase_analytics","dependencies":["firebase_analytics_web","firebase_core"]},{"name":"firebase_analytics_web","dependencies":["firebase_core","firebase_core_web"]},{"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_dynamic_links","dependencies":["firebase_core"]},{"name":"flutter_facebook_auth","dependencies":["flutter_facebook_auth_web","facebook_auth_desktop"]},{"name":"flutter_facebook_auth_web","dependencies":[]},{"name":"flutter_native_splash","dependencies":[]},{"name":"flutter_pdfview","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":[]},{"name":"flutter_windowmanager","dependencies":[]},{"name":"google_sign_in","dependencies":["google_sign_in_android","google_sign_in_ios","google_sign_in_web"]},{"name":"google_sign_in_android","dependencies":[]},{"name":"google_sign_in_ios","dependencies":[]},{"name":"google_sign_in_web","dependencies":[]},{"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":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"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":[]}],"date_created":"2023-04-06 22:04:58.506234","version":"3.7.7"} \ No newline at end of file diff --git a/assets/logo/githublogo.png b/assets/logo/githublogo.png new file mode 100644 index 0000000..41034a5 Binary files /dev/null and b/assets/logo/githublogo.png differ diff --git a/assets/logo/lightheads.png b/assets/logo/lightheads.png new file mode 100644 index 0000000..102b7ff Binary files /dev/null and b/assets/logo/lightheads.png differ diff --git a/assets/logo/linkedinlogo.png b/assets/logo/linkedinlogo.png new file mode 100644 index 0000000..1dd7d19 Binary files /dev/null and b/assets/logo/linkedinlogo.png differ diff --git a/assets/logo/mediumlogo.png b/assets/logo/mediumlogo.png new file mode 100644 index 0000000..21724e8 Binary files /dev/null and b/assets/logo/mediumlogo.png differ diff --git a/lib/core/provider/user_provider.dart b/lib/core/provider/user_provider.dart index e461ce1..0e13891 100644 --- a/lib/core/provider/user_provider.dart +++ b/lib/core/provider/user_provider.dart @@ -12,7 +12,7 @@ class UserProvider with ChangeNotifier{ email: '', cid: [], bid: [], - notificationsEnabled: '', + notificationsEnabled: true, photoUrl: '', isAdmin: false, isPremiumUser: false, diff --git a/lib/features/auth/controller/auth_controller.dart b/lib/features/auth/controller/auth_controller.dart index 3c9ee17..374dfe2 100644 --- a/lib/features/auth/controller/auth_controller.dart +++ b/lib/features/auth/controller/auth_controller.dart @@ -1,6 +1,7 @@ // ignore_for_file: unused_import, unused_local_variable import 'package:companion_rebuild/features/auth/repository/firebase_auth_methods.dart'; +import 'package:companion_rebuild/modal/trendingnotes_modal.dart'; import 'package:companion_rebuild/modal/user_modal.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/cupertino.dart'; @@ -12,7 +13,8 @@ import 'package:shared_preferences/shared_preferences.dart'; import '../../components/snack_bar.dart'; final userProvider = StateProvider((ref) => null); - +final trendingDataProvider = StateProvider?>((ref) => null); +final trendingTodayDataProvider = StateProvider?>((ref) => null); final authControllerProvider = StateNotifierProvider( (ref) => AuthController( authRepository: ref.watch(authRepositoryProvider), @@ -110,8 +112,31 @@ class AuthController extends StateNotifier { state = false; } - void updateName(BuildContext context, fullName, uid) async { + void getTrendingNotes(BuildContext context) async { + state = true; + final a = await _authRepository.getTrendingNotes(); + a.fold((l) => Utils.showSnackBar(l.message), (r) { + _ref.read(trendingDataProvider.notifier).update((state) => r); + }); + state = false; + } + + void getTrendingTodayNotes(BuildContext context) async { + state = true; + final a = await _authRepository.getTrendingNotesDaily(); + a.fold((l) => Utils.showSnackBar(l.message), (r) { + _ref.read(trendingTodayDataProvider.notifier).update((state) => r); + }); + state = false; + } + + void updateName(BuildContext context, fullName, uid) { + state = true; final user = _authRepository.updateName(context, fullName, uid); + var a = _ref.read(userProvider.notifier).state; + a!.name = fullName; + _ref.read(userProvider.notifier).update((state) => a); + state = false; } void deleteAccount(BuildContext context) async { diff --git a/lib/features/auth/repository/firebase_auth_methods.dart b/lib/features/auth/repository/firebase_auth_methods.dart index a265573..e0a91bc 100644 --- a/lib/features/auth/repository/firebase_auth_methods.dart +++ b/lib/features/auth/repository/firebase_auth_methods.dart @@ -7,6 +7,7 @@ import 'package:companion_rebuild/core/provider/firebase_providers.dart'; import 'package:companion_rebuild/core/type_defs.dart'; import 'package:companion_rebuild/features/auth/controller/auth_controller.dart'; import 'package:companion_rebuild/features/components/snack_bar.dart'; +import 'package:companion_rebuild/modal/trendingnotes_modal.dart'; import 'package:companion_rebuild/modal/user_modal.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/cupertino.dart'; @@ -69,17 +70,11 @@ class AuthRepository { ); await sendEmailVerification(context); Routemaster.of(context).push('/sendverification'); - await _supabaseClient.from('userscollection').insert({ - 'uid': result.user!.uid, - 'cid': cid, - 'bid': [], + await _supabaseClient.rpc('insertuserdata', params: { + 'uid': user.uid, 'email': user.email, - 'name': fullName, - 'photoUrl': user.photoURL ?? "", - 'notificationsEnabled': "true", - 'isAdmin': false, - 'isPremiumUser': true, - 'recentlyAccessed': [], + 'name': user.displayName, + 'photourl': user.photoURL ?? "", }); } on FirebaseAuthException catch (e) { if (e.code == 'weak-password') { @@ -167,13 +162,61 @@ class AuthRepository { } } + // TRENDING NOTES + FutureEither> getTrendingNotes() async { + List trendingNotes = []; + var a = await _supabaseClient + .from('notesdata') + .select() + .order('times_opened', ascending: false) + .limit(10) + .execute(); + for (int i = 0; i < a.data.length; i++) { + trendingNotes.add( + TrendingNotesModal( + timesopened: a.data[i]['times_opened'], + course: a.data[i]['course'], + unit: a.data[i]['unit'], + notesname: a.data[i]['notesname'], + trendingnotesmonthly: a.data[i]['trendingnotesmonthly'], + trendingnotestoday: a.data[i]['trendingnotestoday'], + trendingnotesweekly: a.data[i]['trendingnotesweekly'], + id: a.data[i]['id'])); + } + return right(trendingNotes); + } + +FutureEither> getTrendingNotesDaily() async { + List trendingNotes = []; + var a = await _supabaseClient + .from('notesdata') + .select() + .order('trendingnotestoday', ascending: false) + .limit(10) + .execute(); + for (int i = 0; i < a.data.length; i++) { + trendingNotes.add( + TrendingNotesModal( + timesopened: a.data[i]['times_opened'], + course: a.data[i]['course'], + unit: a.data[i]['unit'], + notesname: a.data[i]['notesname'], + trendingnotesmonthly: a.data[i]['trendingnotesmonthly'], + trendingnotestoday: a.data[i]['trendingnotestoday'], + trendingnotesweekly: a.data[i]['trendingnotesweekly'], + id: a.data[i]['id'])); + } + return right(trendingNotes); + } + + incrementnotesopened(String uid, String notesid, String notesname, String course, String unit) async { List data1 = await _supabaseClient .from('userscollection') .select('recentlyAccessed') .eq('uid', uid); - List data2 = data1[0]['recentlyAccessed']; + List data2 = data1[0]['recentlyAccessed'] ?? []; data2.add(notesid); if (data2.length > 30) { data2 = data2.sublist(data2.length - 30, data2.length); @@ -184,7 +227,19 @@ class AuthRepository { var data = await _supabaseClient .from('notesdata') - .select('times_opened') + .select('times_opened', ) + .eq('id', notesid); + var data3 = await _supabaseClient + .from('notesdata') + .select('trendingnotestoday') + .eq('id', notesid); + var data4 = await _supabaseClient + .from('notesdata') + .select('trendingnotesweekly') + .eq('id', notesid); + var data5 = await _supabaseClient + .from('notesdata') + .select('trendingnotesmonthly') .eq('id', notesid); if (data.length == '0' || data.length == 0) { await _supabaseClient.from('notesdata').insert({ @@ -193,12 +248,21 @@ class AuthRepository { 'notesname': notesname, 'course': course, 'unit': unit, + 'trendingnotestoday': 1, + 'trendingnotesweekly': 1, + 'trendingnotesmonthly': 1, }); return; } else { - var timesopened = data[0]['times_opened']; + num timesopened = data[0]['times_opened']; + num trendingnotestoday = data3[0]['trendingnotestoday']; + num trendingnotesweekly = data4[0]['trendingnotesweekly']; + num trendingnotesmonthly = data5[0]['trendingnotesmonthly']; await _supabaseClient.from('notesdata').update({ 'times_opened': timesopened + 1, + 'trendingnotestoday': trendingnotestoday + 1, + 'trendingnotesweekly': trendingnotesweekly + 1, + 'trendingnotesmonthly': trendingnotesmonthly + 1, }).eq('id', notesid); } } @@ -258,22 +322,28 @@ class AuthRepository { email: user.email!, name: user.displayName!, photoUrl: user.photoURL ?? "", - notificationsEnabled: "true", + notificationsEnabled: true, isAdmin: false, isPremiumUser: true, recentlyAccessed: [], ); - await _supabaseClient.from('userscollection').insert({ + // await _supabaseClient.from('userscollection').insert({ + // 'uid': user.uid, + // 'cid': cid, + // 'bid': [], + // 'email': user.email, + // 'name': user.displayName, + // 'photoUrl': user.photoURL ?? "", + // 'notificationsEnabled': "true", + // 'isAdmin': false, + // 'isPremiumUser': true, + // 'recentlyAccessed': [], + // }); + await _supabaseClient.rpc('insertuserdata', params: { 'uid': user.uid, - 'cid': cid, - 'bid': [], 'email': user.email, 'name': user.displayName, - 'photoUrl': user.photoURL ?? "", - 'notificationsEnabled': "true", - 'isAdmin': false, - 'isPremiumUser': true, - 'recentlyAccessed': [], + 'photourl': user.photoURL ?? "", }); userModel = await getUserData(user.uid).first; } else { @@ -355,16 +425,17 @@ class AuthRepository { .eq('uid', uid) .map((event) { return UserCollection( - id: event.elementAt(0)['uid'], - bid: event.elementAt(0)['bid'], - cid: event.elementAt(0)['cid'], - notificationsEnabled: event.elementAt(0)['notificationsEnabled'], - email: event.elementAt(0)['email'], - name: event.elementAt(0)['name'], - photoUrl: event.elementAt(0)['photoUrl'], - isAdmin: event.elementAt(0)['isAdmin'], - isPremiumUser: event.elementAt(0)['isPremiumUser'], - recentlyAccessed: event.elementAt(0)['recentlyAccessed']); + id: event.elementAt(0)['uid'] ?? '', + bid: event.elementAt(0)['bid'] ?? [], + cid: event.elementAt(0)['cid'] ?? [], + notificationsEnabled: + event.elementAt(0)['notificationsEnabled'] ?? true, + email: event.elementAt(0)['email'] ?? '', + name: event.elementAt(0)['name'] ?? '', + photoUrl: event.elementAt(0)['photoUrl'] ?? '', + isAdmin: event.elementAt(0)['isAdmin'] ?? false, + isPremiumUser: event.elementAt(0)['isPremiumUser'] ?? false, + recentlyAccessed: event.elementAt(0)['recentlyAccessed'] ?? []); }); return user; } diff --git a/lib/features/bookmarks/bookmarks.dart b/lib/features/bookmarks/bookmarks.dart index b6b2f01..5fbdd7b 100644 --- a/lib/features/bookmarks/bookmarks.dart +++ b/lib/features/bookmarks/bookmarks.dart @@ -152,6 +152,9 @@ class _BookmarksPageState extends ConsumerState { wdlink: bookmarks[index].wdlink, pressable: true,)), ), + SizedBox( + height: size.height * 0.15, + ) ], ), ), diff --git a/lib/features/home/components/trending_notes_builder.dart b/lib/features/home/components/trending_notes_builder.dart new file mode 100644 index 0000000..13b6c89 --- /dev/null +++ b/lib/features/home/components/trending_notes_builder.dart @@ -0,0 +1,28 @@ +// ignore_for_file: unnecessary_new + +import 'package:companion_rebuild/features/components/notes_preview.dart'; +import 'package:companion_rebuild/modal/notes_modal.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + + +trendingbuilder(Size size, List notesData) { + return SizedBox( + height: size.width * 0.43, + child: ListView.builder( + itemCount: notesData.length, + shrinkWrap: true, + scrollDirection: Axis.horizontal, + itemBuilder: (context, index) => NotesPreview( + id: notesData[index].id, + name: notesData[index].name, + year: notesData[index].year, + branch: notesData[index].branch, + course: notesData[index].course, + semester: notesData[index].semester, + version: notesData[index].version, + unit: notesData[index].unit, + wdlink: notesData[index].wdlink, + pressable: true)), + ); + } diff --git a/lib/features/home/home.dart b/lib/features/home/home.dart index eaa9e07..a5b68d7 100644 --- a/lib/features/home/home.dart +++ b/lib/features/home/home.dart @@ -3,6 +3,10 @@ import 'package:auto_size_text/auto_size_text.dart'; import 'package:companion_rebuild/core/provider/courses_provider.dart'; import 'package:companion_rebuild/features/components/advertisment.dart'; +import 'package:companion_rebuild/features/components/loader.dart'; +import 'package:companion_rebuild/features/home/components/trending_notes_builder.dart'; +import 'package:companion_rebuild/modal/notes_modal.dart'; +import 'package:companion_rebuild/modal/trendingnotes_modal.dart'; import 'package:firebase_dynamic_links/firebase_dynamic_links.dart'; import 'package:flutter/material.dart'; import 'package:flutter_octicons/flutter_octicons.dart'; @@ -42,23 +46,51 @@ class _HomePageState extends ConsumerState { } return 'evening'; } + List mostPopular(AsyncValue> notesData, trendingData) { + List mostpopular = []; + notesData.when(data: (data) { + for(int i = 0;i trendingtoday(AsyncValue> notesData, trendingData) { + List mostrecent = []; + notesData.when(data: (data) { + for (int i = 0; i < data.length; i++) { + trendingData.forEach((TrendingNotesModal element) { + + if (data[i].id == element.id) { + mostrecent.add(data[i]); + } + }); + } + }, loading: () {}, error: (e, s) {}); + return mostrecent; + } @override Widget build(BuildContext context) { var size = MediaQuery.of(context).size; final notesData = ref.watch(notesDataProvider); final courseData = ref.watch(coursesDataProvider); final user = ref.watch(userProvider); + final trendingData = ref.watch(trendingDataProvider)??[]; + final trendingTodayData = ref.watch(trendingTodayDataProvider)??[]; final ButtonStyle leadingStyle = ElevatedButton.styleFrom( minimumSize: Size(size.height * 0.05, size.height * 0.05), backgroundColor: appBackgroundColor, padding: const EdgeInsets.symmetric(horizontal: 16), shape: const CircleBorder(), ); - void recentsNotes() {} - + return Container( - margin: EdgeInsets.only(top: size.height * 0.03), + margin: EdgeInsets.only(top: size.height * 0.02), color: appBackgroundColor, child: SafeArea( child: Scaffold( @@ -73,12 +105,12 @@ class _HomePageState extends ConsumerState { title: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ - const AutoSizeText('Good ', + const AutoSizeText('Hey, ', style: TextStyle( fontSize: 20, fontWeight: FontWeight.bold, color: Colors.white)), - AutoSizeText(greeting(), + AutoSizeText(user.name.split(' ')[0], style: const TextStyle( fontSize: 20, fontWeight: FontWeight.bold, @@ -89,7 +121,9 @@ class _HomePageState extends ConsumerState { (user.isAdmin) ? ZoomTapAnimation( child: IconButton( - visualDensity: VisualDensity(horizontal: -4.0,), + visualDensity: VisualDensity( + horizontal: -4.0, + ), style: leadingStyle, icon: const Icon( OctIcons.plus_circle_16, @@ -105,7 +139,9 @@ class _HomePageState extends ConsumerState { (user.isPremiumUser) ? ZoomTapAnimation( child: IconButton( - visualDensity: VisualDensity(horizontal: -4.0,), + visualDensity: VisualDensity( + horizontal: -4.0, + ), style: leadingStyle, icon: const Icon( OctIcons.history_16, @@ -121,7 +157,9 @@ class _HomePageState extends ConsumerState { : Container(), ZoomTapAnimation( child: IconButton( - visualDensity: VisualDensity(horizontal: -4.0,), + visualDensity: VisualDensity( + horizontal: -4.0, + ), style: leadingStyle, icon: const Icon( OctIcons.gear_16, @@ -156,23 +194,32 @@ class _HomePageState extends ConsumerState { subheading: 'Your courses', ), ), - Padding( - padding: EdgeInsets.only( - left: size.width * 0.04, - right: size.width * 0.04), - child: ZoomTapAnimation( - child: InkWell( - child: const Icon( - OctIcons.filter_16, - color: Colors.white, - size: 20, + Row( + children: [ + Text('Filter', + style: TextStyle( + color: appWhiteColor, + fontSize: 15, + fontWeight: FontWeight.normal)), + Padding( + padding: EdgeInsets.only( + left: size.width * 0.02, + right: size.width * 0.04), + child: ZoomTapAnimation( + child: InkWell( + child: const Icon( + OctIcons.filter_16, + color: appWhiteColor, + size: 20, + ), + onTap: () { + Routemaster.of(context) + .push('/courselistfilter'); + }, + ), ), - onTap: () { - Routemaster.of(context) - .push('/courselistfilter'); - }, ), - ), + ], ), ]), ), @@ -217,7 +264,7 @@ class _HomePageState extends ConsumerState { ), Consumer( builder: (context, ref, child) => - notesBuilder(size, notesData)), + trendingbuilder(size, trendingtoday(notesData, trendingTodayData))), SizedBox( width: size.width * 0.03, ), @@ -285,9 +332,7 @@ class _HomePageState extends ConsumerState { SizedBox( width: size.width * 0.02, ), - Consumer( - builder: (context, ref, child) => - notesBuilder(size, notesData)), + trendingbuilder(size, mostPopular(notesData, trendingData)), SizedBox( width: size.width * 0.03, ), diff --git a/lib/features/infopages/aboutcompanion.dart b/lib/features/infopages/aboutcompanion.dart new file mode 100644 index 0000000..b0b8728 --- /dev/null +++ b/lib/features/infopages/aboutcompanion.dart @@ -0,0 +1,22 @@ + + +import 'package:flutter/material.dart'; + +import '../components/custom_appbar.dart'; + +class AboutCompanion extends StatelessWidget { + const AboutCompanion({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: CustomAppBar( + title: 'About Companion' + ), + body: const Padding( + padding: EdgeInsets.all(20.0), + child: Text('Companion is an innovative student-based notes app designed specifically for college students. The app is designed to be a reliable companion for students throughout their academic journey, from taking notes in class to preparing for exams. \n\n With Companion, students can easily take and organize their notes on their smartphones or tablets. The app allows students to categorize their notes based on subjects and topics, making it easy to access specific information when needed. \n\n Companion also has a powerful search feature, allowing students to quickly find specific notes or information within their notes. \n\n Additionally, students can add tags to their notes, making it easier to filter and organize their notes based on specific keywords.'), + ) + ); + } +} \ No newline at end of file diff --git a/lib/features/infopages/aboutlightheads.dart b/lib/features/infopages/aboutlightheads.dart new file mode 100644 index 0000000..aba0965 --- /dev/null +++ b/lib/features/infopages/aboutlightheads.dart @@ -0,0 +1,26 @@ +import 'package:flutter/material.dart'; + +import '../components/custom_appbar.dart'; + +class AboutLightHeads extends StatelessWidget { + const AboutLightHeads({super.key}); + + @override + Widget build(BuildContext context) { + var size = MediaQuery.of(context).size; + return Scaffold( + appBar: CustomAppBar(title: 'About LightHeads'), + body: SingleChildScrollView( + child: Column( + children: [ + Image(image: AssetImage('assets/logo/lightheads.png')), + Text('LightHeads'), + Text('lightheads.org'), + SizedBox(height: size.height * 0.05), + Text('Join us'), + Text('contact@lightheads.org'), + ], + ), + )); + } +} diff --git a/lib/features/infopages/contactdevs.dart b/lib/features/infopages/contactdevs.dart new file mode 100644 index 0000000..2a291a8 --- /dev/null +++ b/lib/features/infopages/contactdevs.dart @@ -0,0 +1,167 @@ +import 'package:companion_rebuild/theme/colors.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_octicons/flutter_octicons.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import '../components/custom_appbar.dart'; + +class ContactDevs extends StatelessWidget { + const ContactDevs({super.key}); + + @override + Widget build(BuildContext context) { + var size = MediaQuery.of(context).size; + return Scaffold( + appBar: CustomAppBar(title: 'Developers'), + // ignore: prefer_const_constructors + body: Padding( + padding: + EdgeInsets.only(left: size.width * 0.05, right: size.width * 0.05), + child: Column( + children: [ + Spacer(), + SizedBox( + height: size.height * 0.3, + width: size.width * 0.9, + child: Container( + decoration: BoxDecoration( + // color: appAccentColor.withOpacity(0.8), + borderRadius: BorderRadius.circular(20), + gradient: LinearGradient(colors: [ + appAccentColor.withOpacity(0.8), + appAccentColor.withOpacity(0.2), + ], begin: Alignment.topLeft, end: Alignment.bottomRight)), + + // color: appAccentColor.withOpacity(0.8), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: size.height * 0.08, + width: size.width * 0.4, + ), + Text( + 'Tanishq Agarwal', + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 35), + ), + SizedBox( + height: size.height * 0.01, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text('tanishq@lightheads.org'), + ), + IconButton( + onPressed: () { + const url = 'https://github.com/tanishq5414'; + launchUrl(Uri.parse(url), mode: LaunchMode.externalApplication); + }, + icon: Icon(OctIcons.mark_github_16), + color: Colors.white, + ), + ], + ), + ], + ), + ), + ), + ), + Spacer(), + SizedBox( + height: size.height * 0.3, + width: size.width * 0.9, + child: Container( + decoration: BoxDecoration( + // color: appAccentColor.withOpacity(0.8), + borderRadius: BorderRadius.circular(20), + gradient: LinearGradient(colors: [ + appAccentColor.withOpacity(0.8), + appAccentColor.withOpacity(0.2), + ], begin: Alignment.topRight, end: Alignment.bottomLeft)), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: size.height * 0.08, + width: size.width * 0.4, + ), + Text( + 'Kaamil Mirza', + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 35), + ), + SizedBox( + height: size.height * 0.01, + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text('kaamil@lightheads.org'), + ), + Row( + children: [ + IconButton( + onPressed: () { + const url = 'https://github.com/kaamilmirza'; + launchUrl(Uri.parse(url), + mode: LaunchMode.externalApplication); + }, + padding: EdgeInsets.zero, + icon: Icon(OctIcons.mark_github_16), + color: Colors.white, + ), + InkWell( + onTap: () { + const url = + 'https://medium.com/@kaamil.mirza.2002'; + launchUrl(Uri.parse(url), + mode: LaunchMode.externalApplication); + }, + child: Image( + image: AssetImage( + 'assets/logo/mediumlogo.png'), + height: 30, + width: 30, + )), + SizedBox( + width: 10, + ), + InkWell( + onTap: () { + const url = + 'https://www.linkedin.com/in/kaamil-mirza/'; + launchUrl(Uri.parse(url), + mode: LaunchMode.externalApplication); + }, + child: Image( + image: AssetImage( + 'assets/logo/linkedinlogo.png'), + height: 30, + width: 30, + ), + ), + ], + ), + ], + ), + ], + ), + ), + ), + ), + Spacer(), + Spacer(), + ], + ), + ), + ); + } +} diff --git a/lib/features/privacypolicy/privacypolicy.dart b/lib/features/infopages/privacypolicy.dart similarity index 100% rename from lib/features/privacypolicy/privacypolicy.dart rename to lib/features/infopages/privacypolicy.dart diff --git a/lib/features/settings/edit_profile.dart b/lib/features/settings/edit_profile.dart index 838cafa..9c29a5f 100644 --- a/lib/features/settings/edit_profile.dart +++ b/lib/features/settings/edit_profile.dart @@ -2,6 +2,7 @@ import 'package:companion_rebuild/features/auth/controller/auth_controller.dart'; import 'package:companion_rebuild/features/components/custom_appbar.dart'; +import 'package:companion_rebuild/features/components/loader.dart'; import 'package:companion_rebuild/theme/colors.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; @@ -28,6 +29,11 @@ class _EditProfileState extends ConsumerState { super.initState(); nameController = TextEditingController(text: user!.name); } + @override + void dispose() { + nameController.dispose(); + super.dispose(); + } @override Widget build(BuildContext context) { diff --git a/lib/features/settings/settings.dart b/lib/features/settings/settings.dart index 7ab817e..8284c65 100644 --- a/lib/features/settings/settings.dart +++ b/lib/features/settings/settings.dart @@ -146,7 +146,7 @@ class SettingsPage extends ConsumerWidget { SideHeading(title: 'About'), DisplayTile( title: 'Version', - subtitle: '1.0.3 +4', + subtitle: '1.0.4 +5', onpressed: () {}, ), DisplayTile( @@ -155,7 +155,16 @@ class SettingsPage extends ConsumerWidget { onpressed: () { Routemaster.of(context).push('/privacypolicy'); }, - ), + ), + DisplayTile(title: 'Info', subtitle: 'About Companion',onpressed: () { + Routemaster.of(context).push('/about'); + },), + DisplayTile(title: 'About LightHeads', subtitle: 'Join us',onpressed: () { + Routemaster.of(context).push('/aboutLightHeads'); + },), + DisplayTile(title: 'Contact the Devs', subtitle: 'Get in touch',onpressed: () { + Routemaster.of(context).push('/contactdevs'); + },), SizedBox( height: size.height * 0.03, ), diff --git a/lib/main.dart b/lib/main.dart index fe85637..1c16514 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -26,7 +26,6 @@ import 'features/components/snack_bar.dart'; // import 'features/dynamicLinks/firebase_dynamic_links.dart'; - Future main() async { WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized(); FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding); @@ -45,7 +44,6 @@ Future main() async { ); } - class MyApp extends ConsumerStatefulWidget { const MyApp({super.key}); @@ -98,10 +96,14 @@ class _MyAppState extends ConsumerState { ref .read(userProvider.notifier) .update((state) => userModel); + final b = ref + .watch(authControllerProvider.notifier) + .getTrendingNotes(context); + + ref + .watch(authControllerProvider.notifier) + .getTrendingTodayNotes(context); FlutterNativeSplash.remove(); - // if (u1 == null) { - // setState(() {}); - // } } getData(ref, data); diff --git a/lib/modal/trendingnotes_modal.dart b/lib/modal/trendingnotes_modal.dart new file mode 100644 index 0000000..7a00546 --- /dev/null +++ b/lib/modal/trendingnotes_modal.dart @@ -0,0 +1,98 @@ +// ignore_for_file: public_member_api_docs, sort_constructors_first +import 'dart:convert'; + +class TrendingNotesModal { + String notesname; + String id; + String course; + String unit; + int timesopened; + int trendingnotestoday; + int trendingnotesweekly; + int trendingnotesmonthly; + TrendingNotesModal({ + required this.notesname, + required this.id, + required this.course, + required this.unit, + required this.timesopened, + required this.trendingnotestoday, + required this.trendingnotesweekly, + required this.trendingnotesmonthly, + }); + + TrendingNotesModal copyWith({ + String? notesname, + String? id, + String? course, + String? unit, + int? timesopened, + int? trendingnotestoday, + int? trendingnotesweekly, + int? trendingnotesmonthly, + }) { + return TrendingNotesModal( + notesname: notesname ?? this.notesname, + id: id ?? this.id, + course: course ?? this.course, + unit: unit ?? this.unit, + timesopened: timesopened ?? this.timesopened, + trendingnotestoday: trendingnotestoday ?? this.trendingnotestoday, + trendingnotesweekly: trendingnotesweekly ?? this.trendingnotesweekly, + trendingnotesmonthly: trendingnotesmonthly ?? this.trendingnotesmonthly, + ); + } + + Map toMap() { + return { + 'notesname': notesname, + 'id': id, + 'course': course, + 'unit': unit, + 'timesopened': timesopened, + }; + } + + factory TrendingNotesModal.fromMap(Map map) { + return TrendingNotesModal( + notesname: map['notesname'] as String, + id: map['id'] as String, + course: map['course'] as String, + unit: map['unit'] as String, + timesopened: map['timesopened'] as int, + trendingnotesmonthly: map['trendingnotesmonthly'] as int, + trendingnotesweekly: map['trendingnotesweekly'] as int, + trendingnotestoday: map['trendingnotestoday'] as int, + ); + } + + String toJson() => json.encode(toMap()); + + factory TrendingNotesModal.fromJson(String source) => + TrendingNotesModal.fromMap(json.decode(source) as Map); + + @override + String toString() { + return 'TrendingNotesModal(notesname: $notesname, id: $id, course: $course, unit: $unit, timesopened: $timesopened)'; + } + + @override + bool operator ==(covariant TrendingNotesModal other) { + if (identical(this, other)) return true; + + return other.notesname == notesname && + other.id == id && + other.course == course && + other.unit == unit && + other.timesopened == timesopened; + } + + @override + int get hashCode { + return notesname.hashCode ^ + id.hashCode ^ + course.hashCode ^ + unit.hashCode ^ + timesopened.hashCode; + } +} diff --git a/lib/modal/user_modal.dart b/lib/modal/user_modal.dart index f4ca34c..61f1ee9 100644 --- a/lib/modal/user_modal.dart +++ b/lib/modal/user_modal.dart @@ -9,10 +9,10 @@ class UserCollection { final String id; final List bid; final List cid; - final String notificationsEnabled; + final bool notificationsEnabled; final String email; final String photoUrl; - final String name; + String name; final bool isAdmin; final bool isPremiumUser; final List recentlyAccessed; @@ -33,7 +33,7 @@ class UserCollection { String? id, List? bid, List? cid, - String? notificationsEnabled, + bool? notificationsEnabled, String? email, String? photoUrl, String? name, @@ -75,7 +75,7 @@ class UserCollection { id: map['uid'] as String, bid: List.from(map['bid'] as List), cid: List.from(map['cid'] as List), - notificationsEnabled: map['notificationsEnabled'] as String, + notificationsEnabled: map['notificationsEnabled'] as bool, email: map['email'] as String, name: map['name'] as String, photoUrl: map['photoUrl'] as String, diff --git a/lib/router.dart b/lib/router.dart index be7bdfe..7fb729c 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -4,7 +4,7 @@ import 'package:companion_rebuild/features/notes/notes_info.dart'; import 'package:companion_rebuild/features/notes/notes_menu.dart'; import 'package:companion_rebuild/features/premium/premiumpage.dart'; import 'package:companion_rebuild/features/premium/premiumstatuspage.dart'; -import 'package:companion_rebuild/features/privacypolicy/privacypolicy.dart'; +import 'package:companion_rebuild/features/infopages/privacypolicy.dart'; import 'package:companion_rebuild/features/recents/recentlyaccessed.dart'; import 'package:routemaster/routemaster.dart'; import 'package:companion_rebuild/features/admin/addnotes.dart'; @@ -29,6 +29,9 @@ import 'features/auth/screens/send_email_verification.dart'; import 'features/auth/screens/signUpEmail/signup_getemail.dart'; import 'features/auth/screens/signUpEmail/signup_getpassword.dart'; import 'features/bookmarks/bookmarks_search.dart'; +import 'features/infopages/aboutcompanion.dart'; +import 'features/infopages/aboutlightheads.dart'; +import 'features/infopages/contactdevs.dart'; import 'features/notesView/notes_view.dart'; final loggedOutPages = RouteMap( @@ -70,6 +73,9 @@ final loggedInPages = RouteMap( '/privacypolicy': (_) => const MaterialPage(child: PrivacyPolicyPage()), '/changepassword': (_) => const MaterialPage(child: ChangePasswordPage()), '/bookmarksearchpage': (_) => const MaterialPage(child: BookmarksSearchPage()), + '/about': (_) => const MaterialPage(child: AboutCompanion()), + '/contactdevs': (_) => const MaterialPage(child: ContactDevs()), + '/aboutLightHeads': (_) => const MaterialPage(child: AboutLightHeads()), }, ); diff --git a/pubspec.lock b/pubspec.lock index ef4f78a..a31036e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -475,6 +475,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.3" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: c9bb2757b8a0bbf8e45f4069a90d2b9dbafc80b1a5e28d43e29088be533e6df4 + url: "https://pub.dev" + source: hosted + version: "1.0.3" flutter_test: dependency: "direct dev" description: flutter @@ -717,6 +725,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.8.2" + path_drawing: + dependency: transitive + description: + name: path_drawing + sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977 + url: "https://pub.dev" + source: hosted + version: "1.0.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + url: "https://pub.dev" + source: hosted + version: "1.0.1" path_provider: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 5ff5542..f9cc417 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.3+4 +version: 1.0.7+8 environment: sdk: '>=2.19.2 <3.0.0' @@ -64,6 +64,7 @@ dependencies: animations: ^2.0.7 auto_size_text: ^3.0.0 dropdown_search: ^5.0.6 + flutter_svg: ^1.0.3 # upi_pay: ^1.0.1 dev_dependencies: