diff --git a/lib/notification_manager.dart b/lib/notification_manager.dart index 448204d2..00042bcc 100644 --- a/lib/notification_manager.dart +++ b/lib/notification_manager.dart @@ -14,7 +14,7 @@ import 'package:flutter_local_notifications_linux/src/model/icon.dart'; import 'package:path/path.dart' as path; -import '../../config.dart'; +import 'config.dart'; // NotificationsManager provides a wrapper around platform specific notifications logic. abstract class NotificationsManager { diff --git a/lib/third_party/connectivity_plus/connectivity_plus/lib/connectivity_plus.dart b/lib/third_party/connectivity_plus/connectivity_plus/lib/connectivity_plus.dart index 38cf3515..dfba08c3 100644 --- a/lib/third_party/connectivity_plus/connectivity_plus/lib/connectivity_plus.dart +++ b/lib/third_party/connectivity_plus/connectivity_plus/lib/connectivity_plus.dart @@ -10,8 +10,7 @@ import 'package:connectivity_plus_platform_interface/connectivity_plus_platform_ export 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart' show ConnectivityResult; -export 'src/connectivity_plus_linux.dart' - if (dart.library.html) 'src/connectivity_plus_web.dart'; +export 'src/connectivity_plus_linux.dart'; /// Discover network connectivity configurations: Distinguish between WI-FI and cellular, check WI-FI status and more. class Connectivity { diff --git a/lib/third_party/connectivity_plus/connectivity_plus/lib/src/connectivity_plus_web.dart b/lib/third_party/connectivity_plus/connectivity_plus/lib/src/connectivity_plus_web.dart deleted file mode 100644 index 28c1db1d..00000000 --- a/lib/third_party/connectivity_plus/connectivity_plus/lib/src/connectivity_plus_web.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart'; -import 'package:flutter_web_plugins/flutter_web_plugins.dart'; - -import 'web/network_information_api_connectivity_plugin.dart'; -import 'web/dart_html_connectivity_plugin.dart'; - -/// The web implementation of the ConnectivityPlatform of the Connectivity plugin. -class ConnectivityPlusWebPlugin extends ConnectivityPlatform { - /// Factory method that initializes the connectivity plugin platform with an instance - /// of the plugin for the web. - static void registerWith(Registrar registrar) { - // Since the `NetworkInformationApi` is currently an experimental API and - // does not provide a reliable way to check a connectivity change - // from an onnline state to an offline state, - // its implementation is disabled for now. - // See also: https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API - // - // TODO: use `NetworkInformationApiConnectivityPlugin.isSupported()` when it becomes a stable DOM API. - const isSupported = false; - - if (isSupported) { - ConnectivityPlatform.instance = NetworkInformationApiConnectivityPlugin(); - } else { - ConnectivityPlatform.instance = DartHtmlConnectivityPlugin(); - } - } -} diff --git a/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/dart_html_connectivity_plugin.dart b/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/dart_html_connectivity_plugin.dart deleted file mode 100644 index d5c0c68b..00000000 --- a/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/dart_html_connectivity_plugin.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'dart:async'; -import 'dart:html' as html show window; - -import 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart'; - -import '../connectivity_plus_web.dart'; - -/// The web implementation of the ConnectivityPlatform of the Connectivity plugin. -class DartHtmlConnectivityPlugin extends ConnectivityPlusWebPlugin { - /// Checks the connection status of the device. - @override - Future checkConnectivity() async { - return (html.window.navigator.onLine ?? false) - ? ConnectivityResult.wifi - : ConnectivityResult.none; - } - - StreamController? _connectivityResult; - - /// Returns a Stream of ConnectivityResults changes. - @override - Stream get onConnectivityChanged { - if (_connectivityResult == null) { - _connectivityResult = StreamController.broadcast(); - // Fallback to dart:html window.onOnline / window.onOffline - html.window.onOnline.listen((event) { - _connectivityResult!.add(ConnectivityResult.wifi); - }); - html.window.onOffline.listen((event) { - _connectivityResult!.add(ConnectivityResult.none); - }); - } - return _connectivityResult!.stream; - } -} diff --git a/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/network_information_api_connectivity_plugin.dart b/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/network_information_api_connectivity_plugin.dart deleted file mode 100644 index bc822a76..00000000 --- a/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/network_information_api_connectivity_plugin.dart +++ /dev/null @@ -1,92 +0,0 @@ -import 'dart:async'; -import 'dart:html' as html show window, NetworkInformation; -import 'dart:js_util'; - -import 'package:connectivity_plus/src/web/utils/connectivity_result.dart'; -import 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart'; -import 'package:flutter/foundation.dart'; -import 'package:js/js.dart'; - -import '../connectivity_plus_web.dart'; - -/// The web implementation of the ConnectivityPlatform of the Connectivity plugin. -class NetworkInformationApiConnectivityPlugin - extends ConnectivityPlusWebPlugin { - final html.NetworkInformation _networkInformation; - - /// A check to determine if this version of the plugin can be used. - static bool isSupported() => html.window.navigator.connection != null; - - /// The constructor of the plugin. - NetworkInformationApiConnectivityPlugin() - : this.withConnection(html.window.navigator.connection!); - - /// Creates the plugin, with an override of the NetworkInformation object. - @visibleForTesting - NetworkInformationApiConnectivityPlugin.withConnection( - html.NetworkInformation connection) - : _networkInformation = connection; - - /// Checks the connection status of the device. - @override - Future checkConnectivity() async { - return networkInformationToConnectivityResult(_networkInformation); - } - - StreamController? _connectivityResultStreamController; - late Stream _connectivityResultStream; - - /// Returns a Stream of ConnectivityResults changes. - @override - Stream get onConnectivityChanged { - // use fallback implementation if [_connectionSupported] is not availible - if (_connectionSupported == null) { - return _webPseudoStream(); - } - if (_connectivityResultStreamController == null) { - _connectivityResultStreamController = - StreamController(); - setProperty(_networkInformation, 'onchange', allowInterop((_) { - _connectivityResultStreamController! - .add(networkInformationToConnectivityResult(_networkInformation)); - })); - // ignore: todo - // TODO: Implement the above with _networkInformation.onChange: - // _networkInformation.onChange.listen((_) { - // _connectivityResult - // .add(networkInformationToConnectivityResult(_networkInformation)); - // }); - // Once we can detect when to *cancel* a subscription to the _networkInformation - // onChange Stream upon hot restart. - // https://github.com/dart-lang/sdk/issues/42679 - _connectivityResultStream = - _connectivityResultStreamController!.stream.asBroadcastStream(); - } - return _connectivityResultStream; - } - - /// stores the last fallback network state - ConnectivityResult? _lastFallbackState; - - /// periodically checks the current network state - Stream _webPseudoStream() { - final StreamController webStream = - StreamController.broadcast(); - Timer.periodic( - const Duration(milliseconds: 250), - (timer) async { - final result = await checkConnectivity(); - if (result != _lastFallbackState) { - webStream.add(result); - } - }, - ); - return webStream.stream; - } -} - -/// accesses the JS-native `navigator.connection` -/// -/// ensures `navigator.connection.onchange` is availible -@JS("navigator.connection") -external get _connectionSupported; diff --git a/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/utils/connectivity_result.dart b/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/utils/connectivity_result.dart deleted file mode 100644 index 1b64b69c..00000000 --- a/lib/third_party/connectivity_plus/connectivity_plus/lib/src/web/utils/connectivity_result.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'dart:html' as html show NetworkInformation; - -import 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart'; - -/// Converts an incoming NetworkInformation object into the correct ConnectivityResult. -ConnectivityResult networkInformationToConnectivityResult( - html.NetworkInformation info, -) { - if (info.downlink == 0 && info.rtt == 0) { - return ConnectivityResult.none; - } - if (info.type != null) { - return _typeToConnectivityResult(info.type!); - } - if (info.effectiveType != null) { - return _effectiveTypeToConnectivityResult(info.effectiveType!); - } - return ConnectivityResult.none; -} - -ConnectivityResult _effectiveTypeToConnectivityResult(String effectiveType) { - // Possible values: - /*'2g'|'3g'|'4g'|'slow-2g'*/ - switch (effectiveType) { - case 'slow-2g': - case '2g': - case '3g': - case '4g': - return ConnectivityResult.mobile; - default: - return ConnectivityResult.wifi; - } -} - -ConnectivityResult _typeToConnectivityResult(String type) { - // Possible values: - /*'bluetooth'|'cellular'|'ethernet'|'mixed'|'none'|'other'|'unknown'|'wifi'|'wimax'*/ - switch (type) { - case 'none': - return ConnectivityResult.none; - case 'bluetooth': - case 'cellular': - case 'mixed': - case 'other': - case 'unknown': - case 'ethernet': - default: - return ConnectivityResult.mobile; - } -} diff --git a/lib/third_party/connectivity_plus/connectivity_plus/pubspec.yaml b/lib/third_party/connectivity_plus/connectivity_plus/pubspec.yaml index 5d9218ab..980638be 100644 --- a/lib/third_party/connectivity_plus/connectivity_plus/pubspec.yaml +++ b/lib/third_party/connectivity_plus/connectivity_plus/pubspec.yaml @@ -21,9 +21,6 @@ flutter: dartPluginClass: ConnectivityPlusLinuxPlugin macos: pluginClass: ConnectivityPlugin - web: - pluginClass: ConnectivityPlusWebPlugin - fileName: src/connectivity_plus_web.dart windows: pluginClass: ConnectivityPlusWindowsPlugin