Skip to content

Instantly share code, notes, and snippets.

@sigmapie8
Created June 13, 2021 15:12
Show Gist options
  • Save sigmapie8/fc3aea17050e4022c216158c1cfdb1ef to your computer and use it in GitHub Desktop.
Save sigmapie8/fc3aea17050e4022c216158c1cfdb1ef to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
import 'package:network_connectivity_tut/check_connection.dart';
import 'package:network_connectivity_tut/connectionType.dart';
import 'package:internet_speed_test/internet_speed_test.dart';
import 'package:internet_speed_test/callbacks_enum.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Network Connectivity Tutorial',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final internetSpeedTest = InternetSpeedTest();
double connectionDownloadRate = 0;
String connectionUnitText = 'Mb/s';
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
title: Text('Network Connectivity Home'),
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
child: CheckConnection(),
),
Container(
child: ConnectionType(),
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.all(16.0),
child: Text('$connectionDownloadRate, $connectionUnitText'),
),
ElevatedButton(
child: Text('Test Speed'),
onPressed: () {
internetSpeedTest.startDownloadTesting(
onDone: (double transferRate, SpeedUnit unit) {
setState(() {
connectionDownloadRate = transferRate;
connectionUnitText =
unit == SpeedUnit.Kbps ? 'Kb/s' : 'Mb/s';
});
},
onProgress: (double percent, double transferRate,
SpeedUnit unit) {
setState(() {
connectionDownloadRate = transferRate;
connectionUnitText =
unit == SpeedUnit.Kbps ? 'Kb/s' : 'Mb/s';
});
},
onError: (String errorMessage, String speedTestError) {
print(errorMessage);
},
fileSize: 2000000);
},
),
],
)
],
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment