Skip to content

Commit

Permalink
[connectivity_platform_interface] Add ConnectivityResult.unknown. (f…
Browse files Browse the repository at this point in the history
…lutter#2560)

Some platforms might not be able to determine the connectivity status of
the device on which the app is running (like some desktop Web browsers).

This allows users of the `connectivity` plugin to distinguish between
"no connectivity" and "connectivity couldn't be determined".

This requires a Major Version bump for users of the plugin who may be
switch/case on ConnectivityResult values, since Dart forces users to be
exhaustive in those cases (if they don't have a "default" entry, this
new value becomes a compilation error in their code).

This will also cause a Major Version bump in the core `connectivity`
plugin itself.

Note that by default, the ConnectivityResults returned by the MethodChannel implementation will now default to 'unknown' if they're not explicitly "none", so this might have some effect in your code!
  • Loading branch information
ditman authored Feb 27, 2020
1 parent 0269c3f commit 4411247
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 2.0.0

* Added `ConnectivityResult.unknown`, for the cases where the plugin is unable to determine the
connectivity status of the device. _(This happens mostly in the `web` platform.)_

## 1.0.3

* Make the pedantic dev_dependency explicit.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ enum ConnectivityResult {
mobile,

/// None: Device not connected to any network
none
none,

/// Unknown: The plugin wasn't able to determine the connectivity status of the device
unknown,
}

/// The status of the location service authorization.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ ConnectivityResult parseConnectivityResult(String state) {
case 'mobile':
return ConnectivityResult.mobile;
case 'none':
default:
return ConnectivityResult.none;
default:
return ConnectivityResult.unknown;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: A common platform interface for the connectivity plugin.
homepage: https://github.com/flutter/plugins/tree/master/packages/connectivity/connectivity_platform_interface
# NOTE: We strongly prefer non-breaking changes, even at the expense of a
# less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
version: 1.0.3
version: 2.0.0

dependencies:
flutter:
Expand Down

0 comments on commit 4411247

Please sign in to comment.