fconnectivity 0.5.0 copy "fconnectivity: ^0.5.0" to clipboard
fconnectivity: ^0.5.0 copied to clipboard

Connectivity package that contains useful utilities for checking if device is connected to the internet.

example/lib/main.dart

import 'package:fconnectivity/fconnectivity.dart';
import 'package:flutter/material.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  // Change the interval of internet access check to 2 seconds.
  InternetAccessChecker.instance.setInternetAccessCheckInterval(
    const Duration(milliseconds: 2000),
  );
  runApp(const AppWidget());
}

class AppWidget extends StatefulWidget {
  const AppWidget({super.key});

  @override
  State<AppWidget> createState() => _AppWidgetState();
}

class _AppWidgetState extends State<AppWidget> {
  final TextEditingController _intervalController = TextEditingController();

  @override
  void dispose() {
    _intervalController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) => MaterialApp(
        home: Scaffold(
          body: Padding(
            padding: const EdgeInsets.symmetric(horizontal: 18.0),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                InternetAccessConsumer(
                  onInternetAccessGained: (BuildContext context) => debugPrint(
                    'Internet access gained (logged by InternetAccessConsumer)',
                  ),
                  onInternetAccessLost: (BuildContext context) => debugPrint(
                    'Internet access lost (logged by InternetAccessConsumer)',
                  ),
                  builder: ({
                    required BuildContext context,
                    required bool hasInternetAccess,
                  }) =>
                      ColoredBox(
                    color: Colors.yellow,
                    child: RichText(
                      text: TextSpan(
                        style: const TextStyle(
                          fontSize: 24,
                          color: Colors.black,
                        ),
                        text:
                            'This text widget is wrapped with InternetAccessConsumer, so '
                            'it listens to internet access states, and also it '
                            'rebuilds when internet access state changes.'
                            '\nCurrent state of internet access:\n',
                        children: [
                          TextSpan(
                            text: hasInternetAccess
                                ? 'Available'
                                : 'Not Available',
                            style: const TextStyle(
                                fontWeight: FontWeight.bold, color: Colors.red),
                          ),
                        ],
                      ),
                      textAlign: TextAlign.center,
                    ),
                  ),
                ),
                const SizedBox(height: 20),
                InternetAccessListener(
                  onInternetAccessGained: (BuildContext context) => debugPrint(
                    'Internet access gained (logged by InternetAccessListener)',
                  ),
                  onInternetAccessLost: (BuildContext context) => debugPrint(
                    'Internet access lost (logged by InternetAccessListener)',
                  ),
                  child: const ColoredBox(
                    color: Colors.cyan,
                    child: Text(
                      'This text widget is wrapped with an InternetAccessListener, '
                      'it listens to internet access states, but it does not '
                      'rebuild when internet access state changes.',
                      textAlign: TextAlign.center,
                      style: TextStyle(fontSize: 24),
                    ),
                  ),
                ),
                const SizedBox(height: 20),
                TextField(
                  controller: _intervalController,
                  decoration: const InputDecoration(
                    labelText: 'Enter the interval in milliseconds',
                  ),
                ),
                const SizedBox(height: 20),
                ElevatedButton(
                  onPressed: () {
                    InternetAccessChecker.instance
                        .setInternetAccessCheckInterval(
                      Duration(
                          milliseconds:
                              int.tryParse(_intervalController.text) ?? 0),
                    );
                  },
                  child: const Text('Change internet access check interval'),
                ),
              ],
            ),
          ),
        ),
      );
}
copied to clipboard
3
likes
160
points
82
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.08 - 2025.03.23

Connectivity package that contains useful utilities for checking if device is connected to the internet.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

connectivity_plus, flutter, flutter_bloc, internet_connection_checker_plus

More

Packages that depend on fconnectivity