From 7badac37bec1e009796ca13b3f3d0cae26d5e00e Mon Sep 17 00:00:00 2001 From: Rakshithasai123 Date: Fri, 14 Nov 2025 11:35:29 +0530 Subject: [PATCH 1/2] In the auto logged out, while in the offline mode the warning pop up time start after 5 minutes Signed-off-by: Rakshithasai123 --- lib/main.dart | 3 +++ lib/provider/connectivity_provider.dart | 18 ++++++++++++++++ lib/utils/inactivity_tracker.dart | 28 +++++++++++++++++++++++++ 3 files changed, 49 insertions(+) diff --git a/lib/main.dart b/lib/main.dart index db4d4d40a..dbb3b3694 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -114,6 +114,9 @@ class _BuildAppState extends State { void initState() { super.initState(); _loadIdleTimeFromServer(); + final connectivity = Provider.of(context, listen: false); + connectivity.startAutoNetworkCheck(); + } Future _loadIdleTimeFromServer() async { diff --git a/lib/provider/connectivity_provider.dart b/lib/provider/connectivity_provider.dart index 6272a1b77..50b16a161 100644 --- a/lib/provider/connectivity_provider.dart +++ b/lib/provider/connectivity_provider.dart @@ -5,6 +5,8 @@ * */ +import 'dart:async'; + import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/material.dart'; import 'package:geolocator/geolocator.dart'; @@ -20,6 +22,22 @@ class ConnectivityProvider extends ChangeNotifier { bool get isConnected => _isConnected; bool get isGPSEnabled => _isGPSEnabled; + Timer? _autoCheckTimer; + + void startAutoNetworkCheck() { + _autoCheckTimer?.cancel(); + + _autoCheckTimer = Timer.periodic(const Duration(seconds: 3), (timer) { + checkNetworkConnection(); + }); + } + + @override + void dispose() { + _autoCheckTimer?.cancel(); + super.dispose(); + } + checkNetworkConnection() async { String response = await networkService.checkInternetConnection(); if(response == "200") { diff --git a/lib/utils/inactivity_tracker.dart b/lib/utils/inactivity_tracker.dart index 3c1bfee90..d7f5ac69e 100644 --- a/lib/utils/inactivity_tracker.dart +++ b/lib/utils/inactivity_tracker.dart @@ -6,6 +6,7 @@ import 'package:registration_client/provider/global_provider.dart'; import 'package:registration_client/provider/sync_provider.dart'; import '../main.dart'; +import '../provider/connectivity_provider.dart'; class InactivityTracker extends StatefulWidget { final Widget child; @@ -41,6 +42,18 @@ class _InactivityTrackerState extends State with WidgetsBindi super.initState(); globalProvider = Provider.of(context, listen: false); WidgetsBinding.instance.addObserver(this); + + final connectivity = Provider.of(context, listen: false); + + // 🔥 When network status changes, offline should trigger popup + connectivity.addListener(() { + if (!connectivity.isConnected) { + Future.microtask(() { + if (mounted) _showWarningDialog(); + }); + } + }); + _startInactivityTimer(); } @@ -63,7 +76,22 @@ class _InactivityTrackerState extends State with WidgetsBindi } void _startInactivityTimer() { + final connectivity = Provider.of(context, listen: false); + if (!connectivity.isConnected) { + Future.microtask(() { + if (mounted) _showWarningDialog(); + }); + return; + } + if (!widget.isUserLoggedIn) return; + + if (!connectivity.isConnected) { + Future.microtask(() { + if (mounted) _showWarningDialog(); + }); + return; + } _inactivityTimer = Timer(widget.timeout, _showWarningDialog); } From d6c1a2ec32748b5a8804c87ffc35ee2ccf392f42 Mon Sep 17 00:00:00 2001 From: Rakshithasai123 Date: Fri, 14 Nov 2025 11:38:17 +0530 Subject: [PATCH 2/2] Update inactivity_tracker.dart Signed-off-by: Rakshithasai123 --- lib/utils/inactivity_tracker.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/utils/inactivity_tracker.dart b/lib/utils/inactivity_tracker.dart index d7f5ac69e..4ea648dbd 100644 --- a/lib/utils/inactivity_tracker.dart +++ b/lib/utils/inactivity_tracker.dart @@ -45,7 +45,6 @@ class _InactivityTrackerState extends State with WidgetsBindi final connectivity = Provider.of(context, listen: false); - // 🔥 When network status changes, offline should trigger popup connectivity.addListener(() { if (!connectivity.isConnected) { Future.microtask(() {