fix: NetworkType null safety issues (#1435)

* fix: Networktype null safety issues

Networktype returns nulls when the connectivity result is vpn resulting to null safety issues.
Implemented a case for when the connectivity result is vpn to resolve this issue.

* chore: update connectivity_plus_platform_interface ^1.2.2

* chore: update network state on Rust side

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
This commit is contained in:
Onyedika Israel Ukwueze 2022-11-13 04:57:47 +01:00 committed by GitHub
parent dd1dcba599
commit a1e0282df0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 9 deletions

View File

@ -11,7 +11,8 @@ class NetworkListener {
late StreamSubscription<ConnectivityResult> _connectivitySubscription;
NetworkListener() {
_connectivitySubscription = _connectivity.onConnectivityChanged.listen(_updateConnectionStatus);
_connectivitySubscription =
_connectivity.onConnectivityChanged.listen(_updateConnectionStatus);
}
Future<void> start() async {
@ -39,9 +40,11 @@ class NetworkListener {
return NetworkType.Ethernet;
case ConnectivityResult.mobile:
return NetworkType.Cell;
case ConnectivityResult.none:
return NetworkType.UnknownNetworkType;
case ConnectivityResult.bluetooth:
return NetworkType.Bluetooth;
case ConnectivityResult.vpn:
return NetworkType.VPN;
case ConnectivityResult.none:
return NetworkType.UnknownNetworkType;
}
}();

View File

@ -212,12 +212,12 @@ packages:
source: hosted
version: "1.2.4"
connectivity_plus_platform_interface:
dependency: transitive
dependency: "direct main"
description:
name: connectivity_plus_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "1.2.3"
connectivity_plus_web:
dependency: transitive
description:

View File

@ -68,6 +68,7 @@ dependencies:
# file_picker: ^4.2.1
clipboard: ^0.1.3
connectivity_plus: ^2.3.6+1
connectivity_plus_platform_interface: ^1.2.2
easy_localization: ^3.0.0
textfield_tags: ^2.0.0
# The following adds the Cupertino Icons font to your application.

View File

@ -6,15 +6,15 @@ pub enum NetworkType {
Wifi = 1,
Cell = 2,
Ethernet = 3,
Bluetooth = 4,
VPN = 5,
}
impl NetworkType {
pub fn is_connect(&self) -> bool {
match self {
NetworkType::UnknownNetworkType => false,
NetworkType::Wifi => true,
NetworkType::Cell => true,
NetworkType::Ethernet => true,
NetworkType::UnknownNetworkType | NetworkType::Bluetooth => false,
NetworkType::Wifi | NetworkType::Cell | NetworkType::Ethernet | NetworkType::VPN => true,
}
}
}