diff --git a/.github/workflows/stream_flutter_workflow.yml b/.github/workflows/stream_flutter_workflow.yml index 20a76230..5f92c714 100644 --- a/.github/workflows/stream_flutter_workflow.yml +++ b/.github/workflows/stream_flutter_workflow.yml @@ -15,6 +15,7 @@ on: jobs: analyze: timeout-minutes: 15 + if: github.event.pull_request.draft == false runs-on: ubuntu-latest steps: - name: "Git Checkout" @@ -45,6 +46,7 @@ jobs: format: runs-on: ubuntu-latest + if: github.event.pull_request.draft == false timeout-minutes: 15 steps: - name: "Git Checkout" @@ -73,6 +75,7 @@ jobs: test: runs-on: macos-latest + if: github.event.pull_request.draft == false timeout-minutes: 20 steps: - name: "Git Checkout" @@ -123,3 +126,12 @@ jobs: with: path: packages/stream_chat_flutter/coverage/lcov.info min_coverage: 67 + + draft-build: + runs-on: ubuntu-latest + if: github.event.pull_request.draft == true + timeout-minutes: 1 + + steps: + - name: Run a one-line script + run: echo Draft PR, you are good. \ No newline at end of file diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index f8a5bee7..a74b920e 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -1,3 +1,9 @@ +## 3.5.1 + +🐞 Fixed +- `channel.unreadCount` was being set as using global unread count on a very specific case. +- The reconnection logic for the WebSocket connection is now more robust. + ## 3.5.0 ✅ Added diff --git a/packages/stream_chat/lib/src/client/channel.dart b/packages/stream_chat/lib/src/client/channel.dart index 70bdd3b1..9d0c98d2 100644 --- a/packages/stream_chat/lib/src/client/channel.dart +++ b/packages/stream_chat/lib/src/client/channel.dart @@ -1926,7 +1926,6 @@ class ChannelClientState { readList.add(Read( user: event.user!, lastRead: event.createdAt, - unreadMessages: event.totalUnreadCount ?? 0, )); _channelState = _channelState.copyWith(read: readList); } diff --git a/packages/stream_chat/lib/src/ws/websocket.dart b/packages/stream_chat/lib/src/ws/websocket.dart index 82c7d7c1..888ba08b 100644 --- a/packages/stream_chat/lib/src/ws/websocket.dart +++ b/packages/stream_chat/lib/src/ws/websocket.dart @@ -190,8 +190,12 @@ class WebSocket with TimerHelper { _connectionStatus = ConnectionStatus.connecting; connectionCompleter = Completer(); - final uri = await _buildUri(); - _initWebSocketChannel(uri); + try { + final uri = await _buildUri(); + _initWebSocketChannel(uri); + } catch (e, stk) { + _onConnectionError(e, stk); + } return connectionCompleter!.future; } @@ -216,7 +220,11 @@ class WebSocket with TimerHelper { Duration(milliseconds: delay), () async { final uri = await _buildUri(refreshToken: refreshToken); - _initWebSocketChannel(uri); + try { + _initWebSocketChannel(uri); + } catch (e, stk) { + _onConnectionError(e, stk); + } }, ); } diff --git a/packages/stream_chat/lib/version.dart b/packages/stream_chat/lib/version.dart index 0ae6a20a..8d0584a0 100644 --- a/packages/stream_chat/lib/version.dart +++ b/packages/stream_chat/lib/version.dart @@ -3,4 +3,4 @@ import 'package:stream_chat/src/client/client.dart'; /// Current package version /// Used in [StreamChatClient] to build the `x-stream-client` header // ignore: constant_identifier_names -const PACKAGE_VERSION = '3.5.0'; +const PACKAGE_VERSION = '3.5.1'; diff --git a/packages/stream_chat/pubspec.yaml b/packages/stream_chat/pubspec.yaml index 6e6893c1..2e195f6b 100644 --- a/packages/stream_chat/pubspec.yaml +++ b/packages/stream_chat/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: 3.5.0 +version: 3.5.1 repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues @@ -30,5 +30,5 @@ dev_dependencies: dart_code_metrics: ^4.4.0 freezed: ^1.0.0 json_serializable: ^6.0.1 - mocktail: ^0.2.0 + mocktail: ^0.3.0 test: ^1.17.12 \ No newline at end of file diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 3187e001..98ea1160 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -1,4 +1,4 @@ -## Upcoming +## 3.5.1 🛑️ Breaking Changes @@ -7,7 +7,8 @@ 🐞 Fixed -- Mentions overlay now doesn't overflow when not enough height available +- Mentions overlay now doesn't overflow when there is not enough height available +- Updated `stream_chat_flutter_core` dependency to [`3.5.1`](https://pub.dev/packages/stream_chat_flutter_core/changelog). ## 3.5.0 diff --git a/packages/stream_chat_flutter/lib/src/media_list_view.dart b/packages/stream_chat_flutter/lib/src/media_list_view.dart index 6a3d6cdd..c2404208 100644 --- a/packages/stream_chat_flutter/lib/src/media_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/media_list_view.dart @@ -153,7 +153,10 @@ class _StreamMediaListViewState extends State { )) .firstOrNull; - final media = await assetList?.getAssetListPaged(_currentPage, 50); + final media = await assetList?.getAssetListPaged( + page: _currentPage, + size: 50, + ); if (media?.isNotEmpty == true) { setState(() { @@ -192,7 +195,7 @@ class MediaThumbnailProvider extends ImageProvider { DecoderCallback decode, ) async { assert(key == this, 'Checks MediaThumbnailProvider'); - final bytes = await media.thumbData; + final bytes = await media.thumbnailData; return decode(bytes!); } diff --git a/packages/stream_chat_flutter/lib/src/message_input.dart b/packages/stream_chat_flutter/lib/src/message_input.dart index b0cce913..240d318a 100644 --- a/packages/stream_chat_flutter/lib/src/message_input.dart +++ b/packages/stream_chat_flutter/lib/src/message_input.dart @@ -1921,12 +1921,12 @@ class _PickerWidget extends StatefulWidget { } class _PickerWidgetState extends State<_PickerWidget> { - Future? requestPermission; + Future? requestPermission; @override void initState() { super.initState(); - requestPermission = PhotoManager.requestPermission(); + requestPermission = PhotoManager.requestPermissionExtend(); } @override @@ -1934,14 +1934,15 @@ class _PickerWidgetState extends State<_PickerWidget> { if (widget.filePickerIndex != 0) { return const Offstage(); } - return FutureBuilder( + return FutureBuilder( future: requestPermission, builder: (context, snapshot) { if (!snapshot.hasData) { return const Offstage(); } - if (snapshot.data!) { + if ([PermissionState.authorized, PermissionState.limited] + .contains(snapshot.data)) { if (widget.containsFile) { return GestureDetector( onTap: () { diff --git a/packages/stream_chat_flutter/pubspec.yaml b/packages/stream_chat_flutter/pubspec.yaml index 5dab31a1..9b769039 100644 --- a/packages/stream_chat_flutter/pubspec.yaml +++ b/packages/stream_chat_flutter/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat_flutter homepage: https://github.com/GetStream/stream-chat-flutter description: Stream Chat official Flutter SDK. Build your own chat experience using Dart and Flutter. -version: 3.5.0 +version: 3.5.1 repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues @@ -31,12 +31,12 @@ dependencies: lottie: ^1.0.1 meta: ^1.3.0 path_provider: ^2.0.1 - photo_manager: ^1.2.6+1 + photo_manager: ^2.0.1 photo_view: ^0.13.0 rxdart: ^0.27.0 - share_plus: ^3.0.4 + share_plus: ^4.0.1 shimmer: ^2.0.0 - stream_chat_flutter_core: ^3.5.0 + stream_chat_flutter_core: ^3.5.1 substring_highlight: ^1.0.26 url_launcher: ^6.0.3 video_player: ^2.1.0 @@ -56,5 +56,5 @@ dev_dependencies: flutter_test: sdk: flutter golden_toolkit: ^0.13.0 - mocktail: ^0.2.0 + mocktail: ^0.3.0 path: ^1.8.0 diff --git a/packages/stream_chat_flutter_core/CHANGELOG.md b/packages/stream_chat_flutter_core/CHANGELOG.md index f7881045..ab1e2504 100644 --- a/packages/stream_chat_flutter_core/CHANGELOG.md +++ b/packages/stream_chat_flutter_core/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.5.1 + +- Updated `stream_chat` dependency to [`3.5.1`](https://pub.dev/packages/stream_chat/changelog). + ## 3.5.0 - Updated `stream_chat` dependency to [`3.5.0`](https://pub.dev/packages/stream_chat/changelog). diff --git a/packages/stream_chat_flutter_core/pubspec.yaml b/packages/stream_chat_flutter_core/pubspec.yaml index 2f6f49f2..09ce3733 100644 --- a/packages/stream_chat_flutter_core/pubspec.yaml +++ b/packages/stream_chat_flutter_core/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat_flutter_core homepage: https://github.com/GetStream/stream-chat-flutter description: Stream Chat official Flutter SDK Core. Build your own chat experience using Dart and Flutter. -version: 3.5.0 +version: 3.5.1 repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues @@ -17,7 +17,7 @@ dependencies: freezed_annotation: ^1.0.0 meta: ^1.3.0 rxdart: ^0.27.0 - stream_chat: ^3.5.0 + stream_chat: ^3.5.1 dev_dependencies: build_runner: ^2.0.1 @@ -26,5 +26,5 @@ dev_dependencies: flutter_test: sdk: flutter freezed: ^1.0.0 - mocktail: ^0.2.0 + mocktail: ^0.3.0