From 8363463eb07fe973e61986dd5abea889ee6340dd Mon Sep 17 00:00:00 2001 From: VINISTAN Date: Thu, 16 Jan 2025 20:08:22 +0530 Subject: [PATCH] offline notification --- assets/logos/no-internet.png | Bin 0 -> 7740 bytes lib/config/my_router.dart | 6 ++ .../InternetConnectivityService.dart | 32 +++++++ .../internet_check.dart | 57 +++++++++++++ .../tab_routes/home_route.dart | 47 ++++++---- macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 80 ++++++++++++------ pubspec.yaml | 1 + 8 files changed, 183 insertions(+), 42 deletions(-) create mode 100644 assets/logos/no-internet.png create mode 100644 lib/infrastructure/services/InternetConnectivity_Service/InternetConnectivityService.dart create mode 100644 lib/presentation/Screens/online_offline_verification/internet_check.dart diff --git a/assets/logos/no-internet.png b/assets/logos/no-internet.png new file mode 100644 index 0000000000000000000000000000000000000000..202a6a1eba995ca3b1a9d68e818f446f0d3e3656 GIT binary patch literal 7740 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 LoginRoute(), builder: (context, state) => MyHomePage(), ), + GoRoute( + path: '/internetcheck', + builder: (context, state) => InternetCheck(), + + ), GoRoute( path: '/login', builder: (context, state) => LoginRoute(), diff --git a/lib/infrastructure/services/InternetConnectivity_Service/InternetConnectivityService.dart b/lib/infrastructure/services/InternetConnectivity_Service/InternetConnectivityService.dart new file mode 100644 index 00000000..d175feb2 --- /dev/null +++ b/lib/infrastructure/services/InternetConnectivity_Service/InternetConnectivityService.dart @@ -0,0 +1,32 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:connectivity_plus/connectivity_plus.dart'; + +class ConnectivityService { + final Connectivity _connectivity = Connectivity(); + + // This will hold the connectivity status + Stream> get connectivityStream => + _connectivity.onConnectivityChanged; +} + +// The provider that will provide the connectivity service +final connectivityServiceProvider = Provider((ref) { + return ConnectivityService(); +}); + +// StateNotifier to manage connectivity state +class ConnectivityNotifier extends StateNotifier { + final ConnectivityService _connectivityService; + + ConnectivityNotifier(this._connectivityService) : super(true) { + _connectivityService.connectivityStream.listen((result) { + state = result != ConnectivityResult.none; + }); + } +} + +// The provider for the connectivity state +final connectivityProvider = StateNotifierProvider((ref) { + final connectivityService = ref.read(connectivityServiceProvider); + return ConnectivityNotifier(connectivityService); +}); diff --git a/lib/presentation/Screens/online_offline_verification/internet_check.dart b/lib/presentation/Screens/online_offline_verification/internet_check.dart new file mode 100644 index 00000000..745f31d3 --- /dev/null +++ b/lib/presentation/Screens/online_offline_verification/internet_check.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; +import 'package:uae_stat/presentation/components/constant/constant.dart'; + +class InternetCheck extends StatelessWidget { + const InternetCheck({super.key}); + + @override + Widget build(BuildContext context) { + double myheight = MediaQuery.of(context).size.height; + double mywidth = MediaQuery.of(context).size.width; + return Scaffold( + body: Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image(image: AssetImage('assets/logos/no-internet.png')), + SizedBox(height: myheight/40,), + Text("No Internet Connection",style: TextStyle(fontSize: 25,fontWeight: FontWeight.bold)), + Text("Please check with your Wi-Fi or Mobile",style: TextStyle(fontSize: 15,fontWeight: FontWeight.w500)), + Text("Data connection and try again",style: TextStyle(fontSize: 15,fontWeight: FontWeight.w500)), + SizedBox(height: myheight/40,), + ElevatedButton( + onPressed: (){ + Navigator.pop(context); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Color( + 0xFFA7887A), // Brownish color for Register + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(10)), + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + "Retry", + style: TextStyle( + fontSize: 16, color: Colors.white), + ), + SizedBox(width: 8), + Icon(Icons.arrow_forward_ios_outlined,size: 12, + color: Colors.white), + ], + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart b/lib/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart index 9779c61f..22e0dd14 100644 --- a/lib/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart +++ b/lib/presentation/routes/bottom_bar_routes/tab_routes/home_route.dart @@ -162,13 +162,40 @@ // } import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; +import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:uae_stat/infrastructure/services/InternetConnectivity_Service/InternetConnectivityService.dart'; +import 'package:uae_stat/presentation/Screens/online_offline_verification/internet_check.dart'; import '../../drawer_routes/custom_drawer_routes.dart'; -class MyHomePage extends StatefulWidget { +class MyHomePage extends ConsumerWidget { const MyHomePage({super.key}); @override - State createState() => _MyHomePageState(); + Widget build(BuildContext context, WidgetRef ref) { + final isConnected = ref.watch(connectivityProvider); + //final isConnected = false; + double myheight = MediaQuery.of(context).size.height; + double mywidth = MediaQuery.of(context).size.width; + + print('Connectivity Status: $isConnected'); + + // Trigger navigation based on connectivity state + WidgetsBinding.instance.addPostFrameCallback((_) { + if (isConnected == false) { + context.go('/internetcheck'); + + } + }); + + return BaseScaffold( + mycenterTitle: true, + title: SizedBox( + height: myheight / 5, + width: mywidth / 3, + child: Image(image: AssetImage('assets/logos/uae_stat.png'))), + body: EconomyStats(), + ); + } } void handleInfoCardClick(BuildContext context, String data) { @@ -185,22 +212,6 @@ void handleInfoCardClick(BuildContext context, String data) { } } -class _MyHomePageState extends State { - @override - Widget build(BuildContext context) { - double myheight = MediaQuery.of(context).size.height; - double mywidth = MediaQuery.of(context).size.width; - return BaseScaffold( - mycenterTitle: true, - title: SizedBox( - height: myheight / 5, - width: mywidth / 3, - child: Image(image: AssetImage('assets/logos/uae_stat.png'))), - body: EconomyStats(), - ); - } -} - class EconomyStats extends StatelessWidget { const EconomyStats({Key? key}) : super(key: key); diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 436f106b..1c9c8dd7 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,7 @@ import FlutterMacOS import Foundation +import connectivity_plus import file_selector_macos import flutter_secure_storage_macos import path_provider_foundation @@ -15,6 +16,7 @@ import video_player_avfoundation import webview_flutter_wkwebview func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 827e44dc..a54ea449 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,23 +5,23 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "72.0.0" + version: "76.0.0" _macros: dependency: transitive description: dart source: sdk - version: "0.3.2" + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.11.0" analyzer_plugin: dependency: transitive description: @@ -186,10 +186,26 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" + connectivity_plus: + dependency: "direct main" + description: + name: connectivity_plus + sha256: "8a68739d3ee113e51ad35583fdf9ab82c55d09d693d3c39da1aebab87c938412" + url: "https://pub.dev" + source: hosted + version: "6.1.2" + connectivity_plus_platform_interface: + dependency: transitive + description: + name: connectivity_plus_platform_interface + sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204" + url: "https://pub.dev" + source: hosted + version: "2.0.1" convert: dependency: transitive description: @@ -266,10 +282,10 @@ packages: dependency: transitive description: name: custom_lint_visitor - sha256: "8aeb3b6ae2bb765e7716b93d1d10e8356d04e0ff6d7592de6ee04e0dd7d6587d" + sha256: bfe9b7a09c4775a587b58d10ebb871d4fe618237639b1e84d5ec62d7dfef25f9 url: "https://pub.dev" source: hosted - version: "1.0.0+6.7.0" + version: "1.0.0+6.11.0" dart_style: dependency: transitive description: @@ -278,6 +294,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.7" + dbus: + dependency: transitive + description: + name: dbus + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + url: "https://pub.dev" + source: hosted + version: "0.7.10" equatable: dependency: transitive description: @@ -781,18 +805,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -821,10 +845,10 @@ packages: dependency: transitive description: name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" url: "https://pub.dev" source: hosted - version: "0.1.2-main.4" + version: "0.1.3-main.0" mailer: dependency: "direct main" description: @@ -889,6 +913,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + nm: + dependency: transitive + description: + name: nm + sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" + url: "https://pub.dev" + source: hosted + version: "0.5.0" package_config: dependency: transitive description: @@ -1180,7 +1212,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" smart_api_client: dependency: "direct main" description: @@ -1224,10 +1256,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" state_notifier: dependency: transitive description: @@ -1256,10 +1288,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" syncfusion_flutter_charts: dependency: "direct main" description: @@ -1288,10 +1320,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3" the_validator: dependency: "direct main" description: @@ -1448,10 +1480,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.0" watcher: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 68b54414..cf520c0b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -60,6 +60,7 @@ dependencies: syncfusion_flutter_charts: 28.1.33 material_charts: ^0.0.23 flutter_staggered_grid_view: ^0.7.0 + connectivity_plus: ^6.1.2 dependency_overrides: fading_edge_scrollview: ^4.1.1