From ee21f04aef789c984e176aa1339c4cbeb7600520 Mon Sep 17 00:00:00 2001 From: git-elliot Date: Mon, 3 Oct 2022 20:27:35 +0530 Subject: [PATCH] All analyzer warnings fixed with some lint options --- analysis_options.yaml | 6 +++ lib/api/isp_loader.dart | 10 ++--- lib/api/update_checker.dart | 8 +--- lib/helper/utils_helper.dart | 5 +++ lib/main.dart | 8 ++-- lib/pages/dns/dns_page.dart | 2 +- lib/pages/dns/reverse_dns_page.dart | 2 +- lib/pages/home_page.dart | 13 +++--- .../host_scna_bloc/host_scan_bloc.dart | 18 +++++---- .../widgets/host_scan_widget.dart | 13 ++++-- lib/pages/location_consent_page.dart | 8 ++-- .../network_troubleshoot/port_scan_page.dart | 18 ++++----- lib/pages/ping_page/bloc/ping_bloc.dart | 6 +-- lib/pages/ping_page/ping_page.dart | 14 +++---- .../port_scan_bloc/port_scan_bloc.dart | 6 +-- lib/pages/port_scan_page/port_scan_page.dart | 40 +++++++++---------- lib/pages/settings_page.dart | 12 +++--- lib/ui/custom_tile.dart | 3 +- lib/ui/popular_chip.dart | 3 +- .../settings_dialog/first_subnet_dialog.dart | 3 +- .../settings_dialog/last_subnet_dialog.dart | 3 +- lib/ui/settings_dialog/ping_count_dialog.dart | 3 +- .../socket_timeout_dialog.dart | 3 +- .../flutter/generated_plugin_registrant.cc | 3 ++ windows/flutter/generated_plugins.cmake | 1 + 25 files changed, 114 insertions(+), 97 deletions(-) create mode 100644 lib/helper/utils_helper.dart diff --git a/analysis_options.yaml b/analysis_options.yaml index 98085c9d..eaebed0b 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -25,3 +25,9 @@ linter: avoid_classes_with_only_static_members: false sort_constructors_first: true + + # Good packages document everything + public_member_api_docs: false + avoid_dynamic_calls: false + use_build_context_synchronously: false + avoid_positional_boolean_parameters: false diff --git a/lib/api/isp_loader.dart b/lib/api/isp_loader.dart index 83d9e2c1..a039bd0a 100644 --- a/lib/api/isp_loader.dart +++ b/lib/api/isp_loader.dart @@ -36,10 +36,10 @@ class ISPLoader { return _mimicLoad(); } final SharedPreferences sp = await SharedPreferences.getInstance(); - final String _ip = await compute(loadIP, 'https://api.ipify.org'); - if (_ip.isNotEmpty) { + final String ip = await compute(loadIP, 'https://api.ipify.org'); + if (ip.isNotEmpty) { //Fetch internet provider data - final String? json = sp.getString(_ip); + final String? json = sp.getString(ip); if (json != null && json.isNotEmpty) { // print('Response fetched from local $json'); return InternetProvider.fromMap( @@ -50,11 +50,11 @@ class ISPLoader { // Secret secret = await SecretLoader('assets/secrets.json').load(); final String url = - 'http://ipwhois.app/json/$_ip?objects=isp,country,region,city,latitude,longitude,country_flag,ip,type'; + 'http://ipwhois.app/json/$ip?objects=isp,country,region,city,latitude,longitude,country_flag,ip,type'; final String body = await compute(loadISP, url); if (body.isNotEmpty) { - sp.setString(_ip, body); + sp.setString(ip, body); return InternetProvider.fromMap(jsonDecode(body) as Map); } return null; diff --git a/lib/api/update_checker.dart b/lib/api/update_checker.dart index f5d39254..ce4d4fa5 100644 --- a/lib/api/update_checker.dart +++ b/lib/api/update_checker.dart @@ -5,7 +5,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:package_info_plus/package_info_plus.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:vernet/helper/utils_helper.dart'; Future _checkUpdates(String v) async { final Uri url = Uri.parse( @@ -30,10 +30,6 @@ Future _checkUpdates(String v) async { return false; } -Future _launchURL(String url) async { - await canLaunch(url) ? await launch(url) : throw 'Could not launch $url'; -} - Future checkForUpdates( BuildContext context, { bool showIfNoUpdate = false, @@ -80,5 +76,5 @@ Future _navigateToStore() async { 'https://play.google.com/store/apps/details?id=org.fsociety.vernet.store'; } } - _launchURL(url); + launchURL(url); } diff --git a/lib/helper/utils_helper.dart b/lib/helper/utils_helper.dart new file mode 100644 index 00000000..262cf8c9 --- /dev/null +++ b/lib/helper/utils_helper.dart @@ -0,0 +1,5 @@ +import 'package:url_launcher/url_launcher_string.dart'; + +Future launchURL(String url) async => await canLaunchUrlString(url) + ? await launchUrlString(url) + : throw 'Could not launch $url'; diff --git a/lib/main.dart b/lib/main.dart index 00777287..3d699e1a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -20,7 +20,7 @@ Future main() async { } class MyApp extends StatefulWidget { - const MyApp(this.allowed, {Key? key}) : super(key: key); + const MyApp(this.allowed, {super.key}); final bool allowed; @@ -66,7 +66,7 @@ class _MyAppState extends State { } class TabBarPage extends StatefulWidget { - const TabBarPage({Key? key}) : super(key: key); + const TabBarPage({super.key}); @override _HomePageState createState() => _HomePageState(); } @@ -87,11 +87,11 @@ class _HomePageState extends State { @override Widget build(BuildContext context) { - final List _children = [const HomePage(), const SettingsPage()]; + final List children = [const HomePage(), const SettingsPage()]; return Scaffold( body: Container( padding: MediaQuery.of(context).padding, - child: _children[_currentIndex], + child: children[_currentIndex], ), bottomNavigationBar: BottomNavigationBar( onTap: onTabTapped, // new diff --git a/lib/pages/dns/dns_page.dart b/lib/pages/dns/dns_page.dart index 14442478..351f4eb5 100644 --- a/lib/pages/dns/dns_page.dart +++ b/lib/pages/dns/dns_page.dart @@ -5,7 +5,7 @@ import 'package:flutter/services.dart'; import 'package:vernet/pages/base_page.dart'; class DNSPage extends StatefulWidget { - const DNSPage({Key? key}) : super(key: key); + const DNSPage({super.key}); @override _DNSPageState createState() => _DNSPageState(); diff --git a/lib/pages/dns/reverse_dns_page.dart b/lib/pages/dns/reverse_dns_page.dart index f6328a06..b67c7de9 100644 --- a/lib/pages/dns/reverse_dns_page.dart +++ b/lib/pages/dns/reverse_dns_page.dart @@ -5,7 +5,7 @@ import 'package:flutter/services.dart'; import 'package:vernet/pages/base_page.dart'; class ReverseDNSPage extends StatefulWidget { - const ReverseDNSPage({Key? key}) : super(key: key); + const ReverseDNSPage({super.key}); @override _ReverseDNSPageState createState() => _ReverseDNSPageState(); diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index ae887798..6714a317 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -3,19 +3,19 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:network_info_plus/network_info_plus.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:url_launcher/url_launcher.dart'; import 'package:vernet/api/isp_loader.dart'; +import 'package:vernet/helper/utils_helper.dart'; import 'package:vernet/models/internet_provider.dart'; import 'package:vernet/models/wifi_info.dart'; import 'package:vernet/pages/dns/dns_page.dart'; import 'package:vernet/pages/dns/reverse_dns_page.dart'; import 'package:vernet/pages/host_scan_page/host_scan_page.dart'; +import 'package:vernet/pages/network_troubleshoot/port_scan_page.dart'; import 'package:vernet/pages/ping_page/ping_page.dart'; -import 'package:vernet/pages/port_scan_page/port_scan_page.dart'; import 'package:vernet/ui/custom_tile.dart'; class HomePage extends StatefulWidget { - const HomePage({Key? key}) : super(key: key); + const HomePage({super.key}); @override _WifiDetailState createState() => _WifiDetailState(); @@ -133,7 +133,7 @@ class _WifiDetailState extends State { Navigator.push( context, MaterialPageRoute( - builder: (context) => PortScanPage(), + builder: (context) => const PortScanPage(), ), ); }, @@ -239,7 +239,7 @@ class _WifiDetailState extends State { const SizedBox(height: 10), ElevatedButton.icon( onPressed: () { - _launchURL('https://fast.com'); + launchURL('https://fast.com'); }, icon: const Icon(Icons.speed), label: const Text('Speed Test'), @@ -253,7 +253,4 @@ class _WifiDetailState extends State { ), ); } - - Future _launchURL(String url) async => - await canLaunch(url) ? await launch(url) : throw 'Could not launch $url'; } diff --git a/lib/pages/host_scan_page/host_scna_bloc/host_scan_bloc.dart b/lib/pages/host_scan_page/host_scna_bloc/host_scan_bloc.dart index ef61e3f7..7bbc94bf 100644 --- a/lib/pages/host_scan_page/host_scna_bloc/host_scan_bloc.dart +++ b/lib/pages/host_scan_page/host_scna_bloc/host_scan_bloc.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:bloc/bloc.dart'; -import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:injectable/injectable.dart'; import 'package:isolate_contactor/isolate_contactor.dart'; @@ -75,10 +75,14 @@ class HostScanBloc extends Bloc { activeHostList.add(tempDeviceInTheNetwork); activeHostList.sort((a, b) { - final int aIp = int.parse(a.internetAddress.address - .substring(a.internetAddress.address.lastIndexOf('.') + 1)); - final int bIp = int.parse(b.internetAddress.address - .substring(b.internetAddress.address.lastIndexOf('.') + 1)); + final int aIp = int.parse( + a.internetAddress.address + .substring(a.internetAddress.address.lastIndexOf('.') + 1), + ); + final int bIp = int.parse( + b.internetAddress.address + .substring(b.internetAddress.address.lastIndexOf('.') + 1), + ); return aIp.compareTo(bIp); }); emit(const HostScanState.loadInProgress()); @@ -91,7 +95,7 @@ class HostScanBloc extends Bloc { } } } - print('The end of the scan'); + debugPrint('The end of the scan'); // emit(HostScanState.loadSuccess(activeHostList)); } @@ -110,7 +114,7 @@ class HostScanBloc extends Bloc { final String subnetIsolate = paramsListString[0]; final int firstSubnetIsolate = int.parse(paramsListString[1]); final int lastSubnetIsolate = int.parse(paramsListString[2]); - print('scanning from $firstSubnetIsolate to $lastSubnetIsolate'); + debugPrint('scanning from $firstSubnetIsolate to $lastSubnetIsolate'); /// Will contain all the hosts that got discovered in the network, will /// be use inorder to cancel on dispose of the page. diff --git a/lib/pages/host_scan_page/widgets/host_scan_widget.dart b/lib/pages/host_scan_page/widgets/host_scan_widget.dart index 47e9661e..7f293725 100644 --- a/lib/pages/host_scan_page/widgets/host_scan_widget.dart +++ b/lib/pages/host_scan_page/widgets/host_scan_widget.dart @@ -3,7 +3,8 @@ import 'package:flutter/services.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:vernet/pages/host_scan_page/device_in_the_network.dart'; import 'package:vernet/pages/host_scan_page/host_scna_bloc/host_scan_bloc.dart'; -import 'package:vernet/pages/port_scan_page/port_scan_page.dart'; +import 'package:vernet/pages/network_troubleshoot/port_scan_page.dart'; +// import 'package:vernet/pages/port_scan_page/port_scan_page.dart'; class HostScanWidget extends StatelessWidget { @override @@ -63,14 +64,18 @@ class HostScanWidget extends StatelessWidget { context, MaterialPageRoute( builder: (context) => PortScanPage( - target: host.internetAddress.address), + target: host.internetAddress.address, + ), ), ); }, ), onLongPress: () { - Clipboard.setData(ClipboardData( - text: host.internetAddress.address)); + Clipboard.setData( + ClipboardData( + text: host.internetAddress.address, + ), + ); ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('IP copied to clipboard'), diff --git a/lib/pages/location_consent_page.dart b/lib/pages/location_consent_page.dart index 63795b7d..0ab123c3 100644 --- a/lib/pages/location_consent_page.dart +++ b/lib/pages/location_consent_page.dart @@ -7,7 +7,7 @@ import 'package:vernet/helper/consent_loader.dart'; import 'package:vernet/main.dart'; class LocationConsentPage extends StatefulWidget { - const LocationConsentPage({Key? key}) : super(key: key); + const LocationConsentPage({super.key}); @override _LocationConsentPageState createState() => _LocationConsentPageState(); @@ -44,16 +44,16 @@ class _LocationConsentPageState extends State { const SizedBox(height: 10), TextButton( onPressed: () async { - final NetworkInfo _networkInfo = NetworkInfo(); + final NetworkInfo networkInfo = NetworkInfo(); if (Platform.isMacOS || Platform.isLinux || Platform.isWindows) { _navigate(context); } else if (Platform.isIOS) { LocationAuthorizationStatus status = - await _networkInfo.getLocationServiceAuthorization(); + await networkInfo.getLocationServiceAuthorization(); if (status == LocationAuthorizationStatus.notDetermined) { - status = await _networkInfo + status = await networkInfo .requestLocationServiceAuthorization(); } if (status == diff --git a/lib/pages/network_troubleshoot/port_scan_page.dart b/lib/pages/network_troubleshoot/port_scan_page.dart index 3228d958..1b9f709e 100644 --- a/lib/pages/network_troubleshoot/port_scan_page.dart +++ b/lib/pages/network_troubleshoot/port_scan_page.dart @@ -9,8 +9,8 @@ import 'package:vernet/models/port.dart'; import 'package:vernet/ui/custom_tile.dart'; import 'package:vernet/ui/popular_chip.dart'; -class _PortScanPage extends StatefulWidget { - const _PortScanPage({Key? key, this.target = ''}) : super(key: key); +class PortScanPage extends StatefulWidget { + const PortScanPage({this.target = ''}); final String target; @@ -20,7 +20,7 @@ class _PortScanPage extends StatefulWidget { enum ScanType { single, top, range } -class _PortScanPageState extends State<_PortScanPage> +class _PortScanPageState extends State with SingleTickerProviderStateMixin { final Set _openPorts = {}; final Map _allPorts = {}; @@ -417,7 +417,7 @@ class _PortScanPageState extends State<_PortScanPage> : ListView.builder( itemCount: _openPorts.length, itemBuilder: (context, index) { - final OpenPort _openPort = _openPorts.toList()[index]; + final OpenPort openPort = _openPorts.toList()[index]; return Column( children: [ ListTile( @@ -429,7 +429,7 @@ class _PortScanPageState extends State<_PortScanPage> style: Theme.of(context).textTheme.subtitle1, ), trailing: Text( - '${_openPort.port}', + '${openPort.port}', style: Theme.of(context) .textTheme .headline6! @@ -441,24 +441,24 @@ class _PortScanPageState extends State<_PortScanPage> title: _allPorts.isEmpty ? const SizedBox() : Text( - _allPorts[_openPort.port.toString()]!.desc, + _allPorts[openPort.port.toString()]!.desc, ), subtitle: _allPorts.isEmpty ? const SizedBox() : Row( children: [ - if (_allPorts[_openPort.port.toString()]! + if (_allPorts[openPort.port.toString()]! .isTCP) const Text('TCP ') else const SizedBox(), - if (_allPorts[_openPort.port.toString()]! + if (_allPorts[openPort.port.toString()]! .isUDP) const Text('UDP ') else const SizedBox(), Text( - _allPorts[_openPort.port.toString()]! + _allPorts[openPort.port.toString()]! .status, ), ], diff --git a/lib/pages/ping_page/bloc/ping_bloc.dart b/lib/pages/ping_page/bloc/ping_bloc.dart index 35c0ef82..f7f5b1f0 100644 --- a/lib/pages/ping_page/bloc/ping_bloc.dart +++ b/lib/pages/ping_page/bloc/ping_bloc.dart @@ -6,12 +6,12 @@ part 'ping_state.dart'; part 'ping_bloc.freezed.dart'; class PingBloc extends Bloc { - PingBloc() : super(PingState.initial()) { + PingBloc() : super(const PingState.initial()) { on(_startPing); on(_stopPing); } - _startPing(StartPing event, Emitter emit) {} + void _startPing(StartPing event, Emitter emit) {} - _stopPing(StopPing event, Emitter emit) {} + void _stopPing(StopPing event, Emitter emit) {} } diff --git a/lib/pages/ping_page/ping_page.dart b/lib/pages/ping_page/ping_page.dart index c6bb62e9..06f1ec6f 100644 --- a/lib/pages/ping_page/ping_page.dart +++ b/lib/pages/ping_page/ping_page.dart @@ -6,7 +6,7 @@ import 'package:vernet/main.dart'; import 'package:vernet/pages/base_page.dart'; class PingPage extends StatefulWidget { - const PingPage({Key? key}) : super(key: key); + const PingPage({super.key}); @override _PingPageState createState() => _PingPageState(); @@ -67,8 +67,8 @@ class _PingPageState extends BasePage { void _stop() { try { _ping?.stop(); - } catch (e) { - print(e); + } catch (e, stack) { + debugPrintStack(stackTrace: stack); } setState(() { _ping = null; @@ -89,9 +89,9 @@ class _PingPageState extends BasePage { child: ListView.builder( itemCount: _pingPackets.length, itemBuilder: (context, index) { - final PingResponse? _response = _pingPackets[index].response; - String? title = _response?.ip ?? ''; - final String trailing = _getTime(_response?.time); + final PingResponse? response = _pingPackets[index].response; + String? title = response?.ip ?? ''; + final String trailing = _getTime(response?.time); if (_pingPackets[index].error != null) { title = _pingPackets[index].error.toString(); @@ -102,7 +102,7 @@ class _PingPageState extends BasePage { dense: true, contentPadding: const EdgeInsets.only(left: 10.0, right: 10.0), - leading: Text('${_response?.seq}'), + leading: Text('${response?.seq}'), title: Text(title), trailing: Text(trailing), ), diff --git a/lib/pages/port_scan_page/port_scan_bloc/port_scan_bloc.dart b/lib/pages/port_scan_page/port_scan_bloc/port_scan_bloc.dart index 0c5a5e21..051fc21c 100644 --- a/lib/pages/port_scan_page/port_scan_bloc/port_scan_bloc.dart +++ b/lib/pages/port_scan_page/port_scan_bloc/port_scan_bloc.dart @@ -17,14 +17,14 @@ class PortScanBloc extends Bloc { Future _initialized(Initialized event, Emitter emit) { emit(const PortScanState.loadInProgress()); - return Future.delayed(Duration(microseconds: 1)); + return Future.delayed(const Duration(microseconds: 1)); } Future _startNewScan(StartNewScan event, Emitter emit) { - return Future.delayed(Duration(microseconds: 1)); + return Future.delayed(const Duration(microseconds: 1)); } Future _stopScan(StopScan event, Emitter emit) { - return Future.delayed(Duration(microseconds: 1)); + return Future.delayed(const Duration(microseconds: 1)); } } diff --git a/lib/pages/port_scan_page/port_scan_page.dart b/lib/pages/port_scan_page/port_scan_page.dart index 6a988f3c..dabb2f54 100644 --- a/lib/pages/port_scan_page/port_scan_page.dart +++ b/lib/pages/port_scan_page/port_scan_page.dart @@ -1,23 +1,23 @@ -import 'package:flutter/material.dart'; +// import 'package:flutter/material.dart'; -class PortScanPage extends StatefulWidget { - final String target; - const PortScanPage({Key? key, this.target = ''}) : super(key: key); +// class PortScanPage extends StatefulWidget { +// const PortScanPage({super.key, this.target = ''}); +// final String target; - @override - State createState() => _PortScanPageState(); -} +// @override +// State createState() => _PortScanPageState(); +// } -class _PortScanPageState extends State { - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text('Open Port Scanner'), - ), - body: Center( - child: Text('Hi'), - ), - ); - } -} +// class _PortScanPageState extends State { +// @override +// Widget build(BuildContext context) { +// return Scaffold( +// appBar: AppBar( +// title: const Text('Open Port Scanner'), +// ), +// body: const Center( +// child: Text('Hi'), +// ), +// ); +// } +// } diff --git a/lib/pages/settings_page.dart b/lib/pages/settings_page.dart index 30bc8742..feaf2d9f 100644 --- a/lib/pages/settings_page.dart +++ b/lib/pages/settings_page.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:provider/provider.dart'; -import 'package:url_launcher/url_launcher.dart'; import 'package:vernet/api/update_checker.dart'; +import 'package:vernet/helper/utils_helper.dart'; import 'package:vernet/main.dart'; import 'package:vernet/models/dark_theme_provider.dart'; import 'package:vernet/ui/settings_dialog/first_subnet_dialog.dart'; @@ -12,7 +12,7 @@ import 'package:vernet/ui/settings_dialog/socket_timeout_dialog.dart'; import 'package:vernet/values/strings.dart'; class SettingsPage extends StatefulWidget { - const SettingsPage({Key? key}) : super(key: key); + const SettingsPage({super.key}); @override _SettingsPageState createState() => _SettingsPageState(); @@ -153,7 +153,7 @@ class _SettingsPageState extends State { // }, // ), onTap: () { - _launchURL(_issueUrl); + launchURL(_issueUrl); }, ), ListTile( @@ -167,7 +167,7 @@ class _SettingsPageState extends State { // }, // ), onTap: () { - _launchURL(_donateUrl); + launchURL(_donateUrl); }, ), ListTile( @@ -175,7 +175,7 @@ class _SettingsPageState extends State { title: const Text('Source Code'), // subtitle: Text(_srcUrl), onTap: () { - _launchURL(_srcUrl); + launchURL(_srcUrl); }, // trailing: IconButton( @@ -204,6 +204,4 @@ class _SettingsPageState extends State { static const String _srcUrl = 'https://github.com/git-elliot/vernet'; final String _issueUrl = '$_srcUrl/issues'; final String _donateUrl = '$_srcUrl#support-and-donate'; - Future _launchURL(String url) async => - await canLaunch(url) ? await launch(url) : throw 'Could not launch $url'; } diff --git a/lib/ui/custom_tile.dart b/lib/ui/custom_tile.dart index ae46f9fe..d4afa611 100644 --- a/lib/ui/custom_tile.dart +++ b/lib/ui/custom_tile.dart @@ -1,8 +1,7 @@ import 'package:flutter/material.dart'; class CustomTile extends StatelessWidget { - const CustomTile({Key? key, required this.leading, required this.child}) - : super(key: key); + const CustomTile({super.key, required this.leading, required this.child}); final Widget leading; final Widget child; diff --git a/lib/ui/popular_chip.dart b/lib/ui/popular_chip.dart index 2d74f6de..b690f31b 100644 --- a/lib/ui/popular_chip.dart +++ b/lib/ui/popular_chip.dart @@ -1,8 +1,7 @@ import 'package:flutter/material.dart'; class PopularChip extends StatelessWidget { - const PopularChip({Key? key, required this.label, required this.onPressed}) - : super(key: key); + const PopularChip({super.key, required this.label, required this.onPressed}); final String label; final VoidCallback onPressed; diff --git a/lib/ui/settings_dialog/first_subnet_dialog.dart b/lib/ui/settings_dialog/first_subnet_dialog.dart index ddc0f134..d786558c 100644 --- a/lib/ui/settings_dialog/first_subnet_dialog.dart +++ b/lib/ui/settings_dialog/first_subnet_dialog.dart @@ -4,7 +4,7 @@ import 'package:vernet/ui/base_settings_dialog.dart'; import 'package:vernet/values/strings.dart'; class FirstSubnetDialog extends StatefulWidget { - const FirstSubnetDialog({Key? key}) : super(key: key); + const FirstSubnetDialog({super.key}); @override _FirstSubnetDialogState createState() => _FirstSubnetDialogState(); @@ -48,6 +48,7 @@ class _FirstSubnetDialogState extends BaseSettingsDialog { } catch (e) { return 'Must be a number'; } + return null; } @override diff --git a/lib/ui/settings_dialog/last_subnet_dialog.dart b/lib/ui/settings_dialog/last_subnet_dialog.dart index 741b7b60..777d849c 100644 --- a/lib/ui/settings_dialog/last_subnet_dialog.dart +++ b/lib/ui/settings_dialog/last_subnet_dialog.dart @@ -4,7 +4,7 @@ import 'package:vernet/ui/base_settings_dialog.dart'; import 'package:vernet/values/strings.dart'; class LastSubnetDialog extends StatefulWidget { - const LastSubnetDialog({Key? key}) : super(key: key); + const LastSubnetDialog({super.key}); @override _LastSubnetDialogState createState() => _LastSubnetDialogState(); @@ -48,6 +48,7 @@ class _LastSubnetDialogState extends BaseSettingsDialog { } catch (e) { return 'Must be a number'; } + return null; } @override diff --git a/lib/ui/settings_dialog/ping_count_dialog.dart b/lib/ui/settings_dialog/ping_count_dialog.dart index 278e242b..c0e29cff 100644 --- a/lib/ui/settings_dialog/ping_count_dialog.dart +++ b/lib/ui/settings_dialog/ping_count_dialog.dart @@ -4,7 +4,7 @@ import 'package:vernet/ui/base_settings_dialog.dart'; import 'package:vernet/values/strings.dart'; class PingCountDialog extends StatefulWidget { - const PingCountDialog({Key? key}) : super(key: key); + const PingCountDialog({super.key}); @override _PingCountDialogState createState() => _PingCountDialogState(); @@ -45,6 +45,7 @@ class _PingCountDialogState extends BaseSettingsDialog { } catch (e) { return 'Must be a number'; } + return null; } @override diff --git a/lib/ui/settings_dialog/socket_timeout_dialog.dart b/lib/ui/settings_dialog/socket_timeout_dialog.dart index d147e789..41695b13 100644 --- a/lib/ui/settings_dialog/socket_timeout_dialog.dart +++ b/lib/ui/settings_dialog/socket_timeout_dialog.dart @@ -4,7 +4,7 @@ import 'package:vernet/ui/base_settings_dialog.dart'; import 'package:vernet/values/strings.dart'; class SocketTimeoutDialog extends StatefulWidget { - const SocketTimeoutDialog({Key? key}) : super(key: key); + const SocketTimeoutDialog({super.key}); @override _SocketTimeoutDialogState createState() => _SocketTimeoutDialogState(); @@ -46,6 +46,7 @@ class _SocketTimeoutDialogState } catch (e) { return 'Must be a number'; } + return null; } @override diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 7276edce..1307fa99 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,11 +7,14 @@ #include "generated_plugin_registrant.h" #include +#include #include void RegisterPlugins(flutter::PluginRegistry* registry) { NetworkInfoPlusWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("NetworkInfoPlusWindowsPlugin")); + PermissionHandlerWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("UrlLauncherWindows")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 6fc3075a..4dd330bf 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST network_info_plus_windows + permission_handler_windows url_launcher_windows )