fconnectivity 0.4.0 copy "fconnectivity: ^0.4.0" to clipboard
fconnectivity: ^0.4.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'),
                ),
              ],
            ),
          ),
        ),
      );
}
3
likes
150
points
89
downloads

Publisher

unverified uploader

Weekly Downloads

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