diff --git a/.github/workflows/scripts/install-tools.sh b/.github/workflows/scripts/install-tools.sh index b83f55f0..1f77f519 100755 --- a/.github/workflows/scripts/install-tools.sh +++ b/.github/workflows/scripts/install-tools.sh @@ -1,6 +1,6 @@ #!/bin/bash -flutter pub global activate melos 0.4.0-dev.2 +flutter pub global activate melos 0.4.0+1 echo "::add-path::$HOME/.pub-cache/bin" echo "::add-path::$GITHUB_WORKSPACE/_flutter/.pub-cache/bin" echo "::add-path::$GITHUB_WORKSPACE/_flutter/bin/cache/dart-sdk/bin" \ No newline at end of file diff --git a/packages/dart_client/CHANGELOG.md b/packages/dart_client/CHANGELOG.md index 5c799a17..4019cf06 100644 --- a/packages/dart_client/CHANGELOG.md +++ b/packages/dart_client/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.24+1 + +- Stop ws reconnection after calling disconnect + ## 0.2.24 - Create enum for push providers diff --git a/packages/dart_client/lib/src/api/websocket.dart b/packages/dart_client/lib/src/api/websocket.dart index a8288573..bdd14a1e 100644 --- a/packages/dart_client/lib/src/api/websocket.dart +++ b/packages/dart_client/lib/src/api/websocket.dart @@ -108,7 +108,9 @@ class WebSocket { WebSocketChannel _channel; Timer _healthCheck, _reconnectionMonitor; DateTime _lastEventAt; - bool _manuallyClosed = false, _connecting = false, _reconnecting = false; + bool _manuallyDisconnected = false, + _connecting = false, + _reconnecting = false; Event _decodeEvent(String source) { return Event.fromJson(json.decode(source)); @@ -118,7 +120,7 @@ class WebSocket { /// Connect the WS using the parameters passed in the constructor Future connect() { - _manuallyClosed = false; + _manuallyDisconnected = false; if (_connecting) { logger.severe('already connecting'); @@ -151,7 +153,7 @@ class WebSocket { void _onDone() { _connecting = false; - if (_manuallyClosed) { + if (_manuallyDisconnected) { return; } @@ -289,11 +291,15 @@ class WebSocket { } /// Disconnects the WS and releases eventual resources - Future disconnect() { + Future disconnect() async { + if (_manuallyDisconnected) { + return; + } logger.info('disconnecting'); _connectionCompleter = Completer(); _cancelTimers(); - _manuallyClosed = true; + _reconnecting = false; + _manuallyDisconnected = true; connectionStatus.value = ConnectionStatus.disconnected; connectionStatus.dispose(); return _channel.sink.close(); diff --git a/packages/dart_client/lib/version.dart b/packages/dart_client/lib/version.dart index bc746ab0..cf6b0a93 100644 --- a/packages/dart_client/lib/version.dart +++ b/packages/dart_client/lib/version.dart @@ -2,4 +2,4 @@ import 'package:stream_chat/src/client.dart'; /// Current package version /// Used in [Client] to build the `x-stream-client` header -const PACKAGE_VERSION = '0.2.24'; +const PACKAGE_VERSION = '0.2.24+1'; diff --git a/packages/dart_client/pubspec.yaml b/packages/dart_client/pubspec.yaml index 0032453a..1c4afa80 100644 --- a/packages/dart_client/pubspec.yaml +++ b/packages/dart_client/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat homepage: https://getstream.io/ description: The official Dart client for Stream Chat, a service for building chat applications. -version: 0.2.24 +version: 0.2.24+1 repository: https://github.com/GetStream/stream-chat-dart issue_tracker: https://github.com/GetStream/stream-chat-dart/issues diff --git a/packages/flutter_widgets/example/pubspec.yaml b/packages/flutter_widgets/example/pubspec.yaml index 5344b852..fea15136 100644 --- a/packages/flutter_widgets/example/pubspec.yaml +++ b/packages/flutter_widgets/example/pubspec.yaml @@ -1,7 +1,7 @@ name: example description: A new Flutter project. publish_to: 'none' -version: 1.1.3+5 +version: 1.1.3+6 environment: sdk: ">=2.2.2 <3.0.0"