import 'dart:async'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:flutter/material.dart'; class ConnectivityManager extends StatefulWidget { final Function(List results)? onConnectivityChanged; final Widget child; const ConnectivityManager({ super.key, this.onConnectivityChanged, required this.child, }); @override State createState() => _ConnectivityManagerState(); } class _ConnectivityManagerState extends State { late StreamSubscription subscription; @override void initState() { super.initState(); subscription = Connectivity().onConnectivityChanged.listen((results) async { if (widget.onConnectivityChanged != null) { widget.onConnectivityChanged!(results); } }); } @override void dispose() { subscription.cancel(); super.dispose(); } @override Widget build(BuildContext context) { return widget.child; } }