Selaa lähdekoodia

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 <[email protected]>
Onyedika Israel Ukwueze 2 vuotta sitten
vanhempi
commit
a1e0282df0

+ 6 - 3
frontend/app_flowy/lib/core/network_monitor.dart

@@ -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;
       }
     }();

+ 2 - 2
frontend/app_flowy/pubspec.lock

@@ -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:

+ 1 - 0
frontend/app_flowy/pubspec.yaml

@@ -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.

+ 4 - 4
frontend/rust-lib/flowy-net/src/entities/network_state.rs

@@ -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,
         }
     }
 }