Skip to content

Commit

Permalink
refactor: Removed AutoStopBonsoirAction.
Browse files Browse the repository at this point in the history
Bonsoir does not longer depend on `connectivity_plus` to listen for connection changes as this should be handled by the platform.
Fixes #71.
  • Loading branch information
Skyost committed Nov 30, 2023
1 parent eff86b7 commit 441063a
Show file tree
Hide file tree
Showing 8 changed files with 2 additions and 60 deletions.
Expand Up @@ -6,11 +6,9 @@ import FlutterMacOS
import Foundation

import bonsoir_darwin
import connectivity_plus
import device_info_plus

func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
SwiftBonsoirPlugin.register(with: registry.registrar(forPlugin: "SwiftBonsoirPlugin"))
ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin"))
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
}
13 changes: 0 additions & 13 deletions packages/bonsoir/example/macos/Podfile.lock
Expand Up @@ -2,40 +2,27 @@ PODS:
- bonsoir_darwin (0.0.1):
- Flutter
- FlutterMacOS
- connectivity_plus (0.0.1):
- FlutterMacOS
- ReachabilitySwift
- device_info_plus (0.0.1):
- FlutterMacOS
- FlutterMacOS (1.0.0)
- ReachabilitySwift (5.0.0)

DEPENDENCIES:
- bonsoir_darwin (from `Flutter/ephemeral/.symlinks/plugins/bonsoir_darwin/darwin`)
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`)
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
- FlutterMacOS (from `Flutter/ephemeral`)

SPEC REPOS:
trunk:
- ReachabilitySwift

EXTERNAL SOURCES:
bonsoir_darwin:
:path: Flutter/ephemeral/.symlinks/plugins/bonsoir_darwin/darwin
connectivity_plus:
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos
device_info_plus:
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
FlutterMacOS:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
bonsoir_darwin: e3b8526c42ca46a885142df84229131dfabea842
connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825

PODFILE CHECKSUM: 0d3963a09fc94f580682bd88480486da345dc3f0

Expand Down
Expand Up @@ -7,11 +7,8 @@
#include "generated_plugin_registrant.h"

#include <bonsoir_windows/bonsoir_windows_plugin_c_api.h>
#include <connectivity_plus/connectivity_plus_windows_plugin.h>

void RegisterPlugins(flutter::PluginRegistry* registry) {
BonsoirWindowsPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("BonsoirWindowsPluginCApi"));
ConnectivityPlusWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
}
Expand Up @@ -4,7 +4,6 @@

list(APPEND FLUTTER_PLUGIN_LIST
bonsoir_windows
connectivity_plus
)

list(APPEND FLUTTER_FFI_PLUGIN_LIST
Expand Down
38 changes: 0 additions & 38 deletions packages/bonsoir_platform_interface/lib/src/actions/action.dart
Expand Up @@ -3,7 +3,6 @@ import 'dart:math';

import 'package:bonsoir_platform_interface/src/events/event.dart';
import 'package:bonsoir_platform_interface/src/service/service.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';

Expand Down Expand Up @@ -116,43 +115,6 @@ If you have previously called "$runtimeType.stop()" on this instance, you have t
static int _createRandomId() => Random().nextInt(100000);
}

/// Allows the bonsoir action to automatically stop when the network is disconnected.
mixin AutoStopBonsoirAction<T extends BonsoirEvent> on BonsoirAction<T> {
/// The connectivity change subscription.
StreamSubscription<ConnectivityResult>? _connectivityChangeSubscription;

@override
@mustCallSuper
Future<void> start() async {
await super.start();
if (_connectivityChangeSubscription != null) {
await _cancelConnectivityChangeSubscription();
}
_connectivityChangeSubscription = Connectivity().onConnectivityChanged.listen(_onConnectivityChanged);
}

@override
@mustCallSuper
Future<void> stop() async {
await _cancelConnectivityChangeSubscription();
await super.stop();
}

/// Cancels the connectivity change subscription.
@protected
Future<void> _cancelConnectivityChangeSubscription() async {
await _connectivityChangeSubscription?.cancel();
_connectivityChangeSubscription = null;
}

/// Triggered when the connectivity has changed.
void _onConnectivityChanged(ConnectivityResult result) {
if (result == ConnectivityResult.none) {
stop();
}
}
}

/// An action that is capable of resolving a service.
mixin ServiceResolver {
/// Allows to resolve a service.
Expand Down
Expand Up @@ -5,7 +5,7 @@ import 'package:bonsoir_platform_interface/src/service/service.dart';
import 'package:flutter/foundation.dart';

/// Implementation of [MethodChannelBonsoirEvents] for the broadcast action.
class MethodChannelBonsoirBroadcastAction extends MethodChannelBonsoirAction<BonsoirBroadcastEvent> with AutoStopBonsoirAction<BonsoirBroadcastEvent> {
class MethodChannelBonsoirBroadcastAction extends MethodChannelBonsoirAction<BonsoirBroadcastEvent> {
/// The Bonsoir service.
final BonsoirService service;

Expand Down
Expand Up @@ -5,7 +5,7 @@ import 'package:bonsoir_platform_interface/src/service/service.dart';
import 'package:flutter/foundation.dart';

/// Implementation of [MethodChannelBonsoirEvents] for the discovery action.
class MethodChannelBonsoirDiscoveryAction extends MethodChannelBonsoirAction<BonsoirDiscoveryEvent> with AutoStopBonsoirAction, ServiceResolver {
class MethodChannelBonsoirDiscoveryAction extends MethodChannelBonsoirAction<BonsoirDiscoveryEvent> with ServiceResolver {
/// The service type.
final String type;

Expand Down
1 change: 0 additions & 1 deletion packages/bonsoir_platform_interface/pubspec.yaml
Expand Up @@ -11,7 +11,6 @@ environment:
dependencies:
flutter:
sdk: flutter
connectivity_plus: ">=5.0.0 <5.1.0"
meta: ">=1.10.0 <2.0.0"
plugin_platform_interface: ">=2.1.0 <3.0.0"

Expand Down

0 comments on commit 441063a

Please sign in to comment.