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