From 1259d7a2c0fadb574946c55e9a828619c6f5b98f Mon Sep 17 00:00:00 2001 From: Fahed Khan <127182880+12fahed@users.noreply.github.com> Date: Sun, 21 Jul 2024 21:59:51 +0530 Subject: [PATCH] Launch Screen with a cipher --- assets/images/devs-dark.png | Bin 0 -> 50956 bytes .../screens/launch_screen/launch_screen.dart | 176 ++++++++++++++++ .../screens/main_screen/main_screen.dart | 5 +- .../screens/splash_screen/splash_screen.dart | 49 ++++- pubspec.lock | 196 ++++++++++-------- pubspec.yaml | 2 + 6 files changed, 328 insertions(+), 100 deletions(-) create mode 100644 assets/images/devs-dark.png create mode 100644 lib/new_ui/screens/launch_screen/launch_screen.dart diff --git a/assets/images/devs-dark.png b/assets/images/devs-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1f3fda2bf8bdf6ededdb3efe02b16a1900b714 GIT binary patch literal 50956 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 literal 0 HcmV?d00001 diff --git a/lib/new_ui/screens/launch_screen/launch_screen.dart b/lib/new_ui/screens/launch_screen/launch_screen.dart new file mode 100644 index 0000000..c928329 --- /dev/null +++ b/lib/new_ui/screens/launch_screen/launch_screen.dart @@ -0,0 +1,176 @@ +import 'package:flutter/material.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'dart:async'; +import 'package:bcrypt/bcrypt.dart'; +import 'package:go_router/go_router.dart'; +import 'package:tsec_app/new_ui/colors.dart'; +// import 'package:tsec_app/new_ui/screens/login_screen/login_screen.dart'; + +class LaunchScreen extends StatefulWidget { + @override + _LaunchScreenState createState() => _LaunchScreenState(); +} + +class _LaunchScreenState extends State { + Timer? _timer; + Duration _duration = Duration(); + DateTime? _launchDate; + final TextEditingController _controller = TextEditingController(); + + @override + void initState() { + super.initState(); + _fetchLaunchDate(); + } + + Future _fetchLaunchDate() async { + try { + DocumentSnapshot> snapshot = await FirebaseFirestore.instance + .collection('Launch') + .doc('launch') + .get(); + Timestamp? timestamp = snapshot.data()?['date'] as Timestamp?; + setState(() { + _launchDate = timestamp?.toDate(); + if (_launchDate != null) { + _startTimer(); + } + }); + } catch (e) { + print('Error fetching launch date: $e'); + } + } + + void _startTimer() { + _timer = Timer.periodic(Duration(milliseconds: 1), (timer) { + if (_launchDate != null) { + setState(() { + _duration = _launchDate!.difference(DateTime.now()); + if (_duration.inMilliseconds <= 0) { + _timer?.cancel(); + _navigateToLogin(); + } + }); + } + }); + } + + void _navigateToLogin() { + print('Navigating to LoginScreen'); + context.go('/login'); + } + + Future _checkAnswer() async { + try { + DocumentSnapshot> snapshot = await FirebaseFirestore.instance + .collection('Launch') + .doc('launch') + .get(); + String hashedAnswer = snapshot.data()?['ans'] ?? ''; + + // Compare the hashed answer with the user input + if (BCrypt.checkpw(_controller.text.trim(), hashedAnswer)) { + _navigateToLogin(); + } else { + // Optionally show an error message + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Incorrect code. Please try again.')), + ); + } + } catch (e) { + print('Error checking answer: $e'); + } + } + + @override + void dispose() { + _timer?.cancel(); + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final int days = _duration.inDays; + final int hours = _duration.inHours % 24; + final int minutes = _duration.inMinutes % 60; + final int seconds = _duration.inSeconds % 60; + final int milliseconds = _duration.inMilliseconds % 1000; + + return Scaffold( + backgroundColor: commonbgblack, + body: Center( + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + 'assets/images/devs-dark.png', + height: 250, + width: 250, + ), + Text( + "App Launch in", + style: TextStyle( + color: Colors.white, + fontSize: 24, + fontWeight: FontWeight.bold, + shadows: [ + Shadow( + offset: Offset(1.0, 1.0), + blurRadius: 4.0, + color: Colors.blue, + ), + ], + ), + ), + SizedBox(height: 10), + Text( + _launchDate == null + ? 'Loading...' + : '$days:${hours.toString().padLeft(2, '0')}:${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}:${milliseconds.toString().padLeft(3, '0')}', + style: TextStyle( + color: Colors.white, + fontSize: 20, + ), + ), + SizedBox(height: 50), + Text( + r'$2a$10$2FYV.6fyPfD4mO7arFVI3eUC.98haCmPBgSmO21IV6.nYbByoW2Ii', + style: TextStyle( + color: Colors.grey[600], + fontSize: 8, + ), + ), + SizedBox(height: 10), + Container( + width: MediaQuery.of(context).size.width * 0.8, + child: TextField( + controller: _controller, + decoration: InputDecoration( + filled: true, + fillColor: commonbgLightblack, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(10.0), + borderSide: BorderSide( + color: commonbgLightblack, + width: 1.5, + ), + ), + hintText: 'Code for pre access', + hintStyle: TextStyle(color: Colors.grey[700], fontSize: 15), + ), + style: TextStyle(color: Colors.white), + onSubmitted: (value) { + _checkAnswer(); + }, + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/new_ui/screens/main_screen/main_screen.dart b/lib/new_ui/screens/main_screen/main_screen.dart index 2b76411..76ec106 100644 --- a/lib/new_ui/screens/main_screen/main_screen.dart +++ b/lib/new_ui/screens/main_screen/main_screen.dart @@ -21,6 +21,7 @@ import 'package:tsec_app/new_ui/screens/notes_screen/notes_screen.dart'; import 'package:tsec_app/new_ui/screens/profile_screen/profile_screen.dart'; import 'package:tsec_app/new_ui/screens/railway_screen/railway_screen.dart'; import 'package:tsec_app/new_ui/screens/railway_screen/railwayform.dart'; +import 'package:tsec_app/new_ui/screens/launch_screen/launch_screen.dart'; import 'package:tsec_app/new_ui/screens/timetable_screen/timetable_screen.dart'; import 'package:tsec_app/provider/appbar_title_provider.dart'; import 'package:tsec_app/provider/auth_provider.dart'; @@ -791,7 +792,7 @@ class _MainScreenState extends ConsumerState { width: size.width, padding: EdgeInsets.all(8), decoration: BoxDecoration( - borderRadius: BorderRadius.circular(5), + borderRadius: BorderRadius.circular(10), color: Color(0xff383838), ), child: InkWell( @@ -803,6 +804,8 @@ class _MainScreenState extends ConsumerState { .headlineMedium! .copyWith( fontSize: 22, + fontFamily: 'Montserrat', + fontWeight: FontWeight.bold, color: Theme .of(context) .colorScheme diff --git a/lib/new_ui/screens/splash_screen/splash_screen.dart b/lib/new_ui/screens/splash_screen/splash_screen.dart index ca0d41c..17769b3 100644 --- a/lib/new_ui/screens/splash_screen/splash_screen.dart +++ b/lib/new_ui/screens/splash_screen/splash_screen.dart @@ -1,16 +1,18 @@ +import 'package:flutter/material.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:tsec_app/models/user_model/user_model.dart'; import 'package:async/async.dart'; -import '/../utils/image_assets.dart'; import 'dart:async'; -import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:tsec_app/models/student_model/student_model.dart'; import 'package:tsec_app/new_ui/screens/main_screen/main_screen.dart'; import 'package:tsec_app/new_ui/screens/profile_screen/profile_screen.dart'; +import 'package:tsec_app/new_ui/screens/launch_screen/launch_screen.dart'; import 'package:tsec_app/provider/app_state_provider.dart'; import 'package:tsec_app/provider/auth_provider.dart'; +import '/../utils/image_assets.dart'; import 'package:tsec_app/provider/concession_provider.dart'; import 'package:tsec_app/provider/firebase_provider.dart'; import 'package:tsec_app/utils/notification_type.dart'; @@ -24,6 +26,8 @@ class SplashScreen extends ConsumerStatefulWidget { class _SplashScreenState extends ConsumerState { final AsyncMemoizer _memoizer = AsyncMemoizer(); + DateTime? _launchDate; + bool _isLaunchDateFetched = false; fetchUserDataOnce() { return _memoizer.runOnce(() async { @@ -32,6 +36,28 @@ class _SplashScreenState extends ConsumerState { }); } + Future _fetchLaunchDate() async { + try { + DocumentSnapshot> snapshot = await FirebaseFirestore.instance + .collection('Launch') + .doc('launch') + .get(); + Timestamp? timestamp = snapshot.data()?['date'] as Timestamp?; + setState(() { + _launchDate = timestamp?.toDate(); + _isLaunchDateFetched = true; + }); + } catch (e) { + print('Error fetching launch date: $e'); + } + } + + @override + void initState() { + super.initState(); + _fetchLaunchDate(); + } + //check permissions void requestpermission() async { final status = await Permission.storage.status; @@ -46,6 +72,18 @@ class _SplashScreenState extends ConsumerState { @override Widget build(BuildContext context) { + if (!_isLaunchDateFetched) { + return Scaffold( + body: Center( + child: CircularProgressIndicator(), + ), + ); + } + + if (_launchDate != null && DateTime.now().isBefore(_launchDate!)) { + return LaunchScreen(); + } + return FutureBuilder( future: fetchUserDataOnce(), builder: (context, snapshot) { @@ -59,17 +97,10 @@ class _SplashScreenState extends ConsumerState { } else { return MainScreen(); } - - // if (userModel != null) { - // return ProfilePage(justLoggedIn: true); - // } else { - // return MainScreen(); - // } } else { return Scaffold( body: Center( child: SizedBox( - //SECOND SCREEN LOGO child: Image.asset(ImageAssets.tsecapplogo), height: 250, width: 250, diff --git a/pubspec.lock b/pubspec.lock index 38701d0..6768492 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "37a42d06068e2fe3deddb2da079a8c4d105f241225ba27b7122b37e9865fd8f7" + sha256: f5628cd9c92ed11083f425fd1f8f1bc60ecdda458c81d73b143aeda036c35fe7 url: "https://pub.dev" source: hosted - version: "1.3.35" + version: "1.3.16" analyzer: dependency: transitive description: @@ -65,6 +65,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" + bcrypt: + dependency: "direct main" + description: + name: bcrypt + sha256: "9dc3f234d5935a76917a6056613e1a6d9b53f7fa56f98e24cd49b8969307764b" + url: "https://pub.dev" + source: hosted + version: "1.1.3" boolean_selector: dependency: transitive description: @@ -93,10 +101,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "4.0.2" build_resolvers: dependency: transitive description: @@ -109,18 +117,18 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: "644dc98a0f179b872f612d3eb627924b578897c629788e858157fa5e704ca0c7" url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.11" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" + sha256: e3c79f69a64bdfcd8a776a3c28db4eb6e3fb5356d013ae5eb2e52007706d5dbe url: "https://pub.dev" source: hosted - version: "7.3.0" + version: "7.3.1" built_collection: dependency: transitive description: @@ -205,26 +213,26 @@ packages: dependency: "direct main" description: name: cloud_firestore - sha256: a0f161b92610e078b4962d7e6ebeb66dc9cce0ada3514aeee442f68165d78185 + sha256: "8bfbb5a2edbc6052452326d60de0113fea2bcbf081d34a3f8e45c8b38307b31c" url: "https://pub.dev" source: hosted - version: "4.17.5" + version: "4.14.0" cloud_firestore_platform_interface: dependency: transitive description: name: cloud_firestore_platform_interface - sha256: "6a55b319f8d33c307396b9104512e8130a61904528ab7bd8b5402678fca54b81" + sha256: "73ff438fe46028f0e19f55da18b6ddc6906ab750562cd7d9ffab77ff8c0c4307" url: "https://pub.dev" source: hosted - version: "6.2.5" + version: "6.1.0" cloud_firestore_web: dependency: transitive description: name: cloud_firestore_web - sha256: "89dfa1304d3da48b3039abbb2865e3d30896ef858e569a16804a99f4362283a9" + sha256: "232e45e95970d3a6baab8f50f9c3a6e2838d145d9d91ec9a7392837c44296397" url: "https://pub.dev" source: hosted - version: "3.12.5" + version: "3.9.0" code_builder: dependency: transitive description: @@ -253,10 +261,10 @@ packages: dependency: transitive description: name: cross_file - sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32" + sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5" url: "https://pub.dev" source: hosted - version: "0.3.4+1" + version: "0.3.3+7" crypto: dependency: transitive description: @@ -413,34 +421,34 @@ packages: dependency: "direct main" description: name: firebase_auth - sha256: cfc2d970829202eca09e2896f0a5aa7c87302817ecc0bdfa954f026046bf10ba + sha256: "279b2773ff61afd9763202cb5582e2b995ee57419d826b9af6517302a59b672f" url: "https://pub.dev" source: hosted - version: "4.20.0" + version: "4.16.0" firebase_auth_platform_interface: dependency: transitive description: name: firebase_auth_platform_interface - sha256: a0270e1db3b2098a14cb2a2342b3cd2e7e458e0c391b1f64f6f78b14296ec093 + sha256: "3c9cfaccb7549492edf5b0c67c6dd1c6727c7830891aa6727f2fb225f0226626" url: "https://pub.dev" source: hosted - version: "7.3.0" + version: "7.0.9" firebase_auth_web: dependency: transitive description: name: firebase_auth_web - sha256: "64e067e763c6378b7e774e872f0f59f6812885e43020e25cde08f42e9459837b" + sha256: c7b1379ccef7abf4b6816eede67a868c44142198e42350f51c01d8fc03f95a7d url: "https://pub.dev" source: hosted - version: "5.12.0" + version: "5.8.13" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "26de145bb9688a90962faec6f838247377b0b0d32cc0abecd9a4e43525fc856c" + sha256: "96607c0e829a581c2a483c658f04e8b159964c3bae2730f73297070bc85d40bb" url: "https://pub.dev" source: hosted - version: "2.32.0" + version: "2.24.2" firebase_core_platform_interface: dependency: transitive description: @@ -453,58 +461,58 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "23509cb3cddfb3c910c143279ac3f07f06d3120f7d835e4a5d4b42558e978712" + sha256: d585bdf3c656c3f7821ba1bd44da5f13365d22fcecaf5eb75c4295246aaa83c0 url: "https://pub.dev" source: hosted - version: "2.17.3" + version: "2.10.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: a1662cc95d9750a324ad9df349b873360af6f11414902021f130c68ec02267c4 + sha256: "980259425fa5e2afc03e533f33723335731d21a56fd255611083bceebf4373a8" url: "https://pub.dev" source: hosted - version: "14.9.4" + version: "14.7.10" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "87c4a922cb6f811cfb7a889bdbb3622702443c52a0271636cbc90d813ceac147" + sha256: "54e283a0e41d81d854636ad0dad73066adc53407a60a7c3189c9656e2f1b6107" url: "https://pub.dev" source: hosted - version: "4.5.37" + version: "4.5.18" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "0d34dca01a7b103ed7f20138bffbb28eb0e61a677bf9e78a028a932e2c7322d5" + sha256: "90dc7ed885e90a24bb0e56d661d4d2b5f84429697fd2cbb9e5890a0ca370e6f4" url: "https://pub.dev" source: hosted - version: "3.8.7" + version: "3.5.18" firebase_storage: dependency: "direct main" description: name: firebase_storage - sha256: "2ae478ceec9f458c1bcbf0ee3e0100e4e909708979e83f16d5d9fba35a5b42c1" + sha256: "75e6cb6bed65138b5bbd86bfd7cf9bc9a175fb0c31aacc400e9203df117ffbe6" url: "https://pub.dev" source: hosted - version: "11.7.7" + version: "11.6.0" firebase_storage_platform_interface: dependency: transitive description: name: firebase_storage_platform_interface - sha256: "4e18662e6a66e2e0e181c06f94707de06d5097d70cfe2b5141bf64660c5b5da9" + sha256: "545a3a8edf337850403bb0fa03c8074a53deb87c0107d19755c77a82ce07919e" url: "https://pub.dev" source: hosted - version: "5.1.22" + version: "5.1.3" firebase_storage_web: dependency: transitive description: name: firebase_storage_web - sha256: "3a44aacd38a372efb159f6fe36bb4a7d79823949383816457fd43d3d47602a53" + sha256: ee6870ff79aa304b8996ba18a4aefe1e8b3fc31fd385eab6574180267aa8d393 url: "https://pub.dev" source: hosted - version: "3.9.7" + version: "3.6.17" fixnum: dependency: transitive description: @@ -562,10 +570,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "0a9068149f0225e81642b03562e99776106edbd967816ee68bc16310d457c60e" + sha256: dd6676d8c2926537eccdf9f72128bbb2a9d0814689527b17f92c248ff192eaf3 url: "https://pub.dev" source: hosted - version: "17.2.1+1" + version: "17.2.1+2" flutter_local_notifications_linux: dependency: transitive description: @@ -586,10 +594,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" + sha256: c6b0b4c05c458e1c01ad9bcc14041dd7b1f6783d487be4386f793f47a8a4d03e url: "https://pub.dev" source: hosted - version: "2.0.19" + version: "2.0.20" flutter_riverpod: dependency: "direct main" description: @@ -644,18 +652,18 @@ packages: dependency: transitive description: name: graphs - sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" http: dependency: transitive description: name: http - sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -692,18 +700,18 @@ packages: dependency: transitive description: name: image_picker_android - sha256: "0f57fee1e8bfadf8cc41818bbcd7f72e53bb768a54d9496355d5e8a5681a19f1" + sha256: cea2bd5b9fcff039a4901d3b13c67fe747f940be9ba76bde1bcd218d168eeb7f url: "https://pub.dev" source: hosted - version: "0.8.12+1" + version: "0.8.12+6" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "5d6eb13048cd47b60dbf1a5495424dea226c5faf3950e20bf8120a58efb5b5f3" + sha256: e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3 url: "https://pub.dev" source: hosted - version: "3.0.4" + version: "3.0.2" image_picker_ios: dependency: transitive description: @@ -764,10 +772,10 @@ packages: dependency: transitive description: name: js - sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 url: "https://pub.dev" source: hosted - version: "0.7.1" + version: "0.6.7" json_annotation: dependency: "direct main" description: @@ -788,26 +796,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.4" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.3" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" linkify: dependency: transitive description: @@ -860,10 +868,10 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.12.0" mime: dependency: transitive description: @@ -916,10 +924,10 @@ packages: dependency: transitive description: name: path_provider_android - sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d + sha256: "30c5aa827a6ae95ce2853cdc5fe3971daaac00f6f081c419c013f7f57bff2f5e" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.2.7" path_provider_foundation: dependency: transitive description: @@ -1068,10 +1076,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" + sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" shared_preferences_foundation: dependency: transitive description: @@ -1092,18 +1100,18 @@ packages: dependency: transitive description: name: shared_preferences_platform_interface - sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" + sha256: "034650b71e73629ca08a0bd789fd1d83cc63c2d1e405946f7cef7bc37432f93a" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" + sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.2.1" shared_preferences_windows: dependency: transitive description: @@ -1124,10 +1132,10 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "2.0.0" sky_engine: dependency: transitive description: flutter @@ -1137,10 +1145,10 @@ packages: dependency: "direct main" description: name: smooth_page_indicator - sha256: eebe23a5bd887ca4bc7b9c6173362edb2c625e37aee6043a567a342973357a7b + sha256: "3b28b0c545fa67ed9e5997d9f9720d486f54c0c607e056a1094544e36934dff3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.0+3" source_gen: dependency: transitive description: @@ -1249,10 +1257,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" textfield_search: dependency: "direct main" description: @@ -1305,10 +1313,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" + sha256: "95d8027db36a0e52caf55680f91e33ea6aa12a3ce608c90b06f4e429a21067ac" url: "https://pub.dev" source: hosted - version: "6.3.2" + version: "6.3.5" url_launcher_ios: dependency: transitive description: @@ -1345,10 +1353,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" + sha256: "7fd2f55fe86cea2897b963e864dc01a7eb0719ecc65fcef4c1cc3d686d718bb2" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.2.0" url_launcher_windows: dependency: transitive description: @@ -1377,10 +1385,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.1" watcher: dependency: transitive description: @@ -1393,18 +1401,26 @@ packages: dependency: transitive description: name: web - sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.1.6" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" url: "https://pub.dev" source: hosted - version: "2.4.5" + version: "3.0.1" webview_flutter: dependency: "direct main" description: @@ -1417,10 +1433,10 @@ packages: dependency: "direct main" description: name: webview_flutter_android - sha256: "0d21cfc3bfdd2e30ab2ebeced66512b91134b39e72e97b43db2d47dda1c4e53a" + sha256: f42447ca49523f11d8f70abea55ea211b3cafe172dd7a0e7ac007bb35dd356dc url: "https://pub.dev" source: hosted - version: "3.16.3" + version: "3.16.4" webview_flutter_platform_interface: dependency: transitive description: @@ -1441,10 +1457,10 @@ packages: dependency: transitive description: name: win32 - sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" + sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 url: "https://pub.dev" source: hosted - version: "5.5.0" + version: "5.5.1" xdg_directories: dependency: transitive description: @@ -1470,5 +1486,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.3.0 <4.0.0" - flutter: ">=3.19.0" + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index 28927a9..12083ac 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -67,6 +67,7 @@ dependencies: easy_stepper: ^0.8.0 flutter_local_notifications: ^17.2.1+1 #firebase_ui_firestore: ^1.6.3 + bcrypt: ^1.1.3 dev_dependencies: build_runner: null @@ -107,6 +108,7 @@ flutter: - assets/images/tsecimage2.png - assets/images/railwayConcession.png - assets/images/devs.png + - assets/images/devs-dark.png - assets/images/tick2.png - assets/images/railway.png - assets/images/attendance.png