Merge branch 'develop' into develop

This commit is contained in:
Salvatore Giordano
2022-03-16 09:53:26 +01:00
committed by GitHub
11 changed files with 80 additions and 44 deletions
+6
View File
@@ -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 ## 3.5.0
✅ Added ✅ Added
@@ -1902,7 +1902,6 @@ class ChannelClientState {
readList.add(Read( readList.add(Read(
user: event.user!, user: event.user!,
lastRead: event.createdAt, lastRead: event.createdAt,
unreadMessages: event.totalUnreadCount ?? 0,
)); ));
_channelState = _channelState.copyWith(read: readList); _channelState = _channelState.copyWith(read: readList);
} }
+11 -3
View File
@@ -190,8 +190,12 @@ class WebSocket with TimerHelper {
_connectionStatus = ConnectionStatus.connecting; _connectionStatus = ConnectionStatus.connecting;
connectionCompleter = Completer<Event>(); connectionCompleter = Completer<Event>();
final uri = await _buildUri(); try {
_initWebSocketChannel(uri); final uri = await _buildUri();
_initWebSocketChannel(uri);
} catch (e, stk) {
_onConnectionError(e, stk);
}
return connectionCompleter!.future; return connectionCompleter!.future;
} }
@@ -216,7 +220,11 @@ class WebSocket with TimerHelper {
Duration(milliseconds: delay), Duration(milliseconds: delay),
() async { () async {
final uri = await _buildUri(refreshToken: refreshToken); final uri = await _buildUri(refreshToken: refreshToken);
_initWebSocketChannel(uri); try {
_initWebSocketChannel(uri);
} catch (e, stk) {
_onConnectionError(e, stk);
}
}, },
); );
} }
+1 -1
View File
@@ -3,4 +3,4 @@ import 'package:stream_chat/src/client/client.dart';
/// Current package version /// Current package version
/// Used in [StreamChatClient] to build the `x-stream-client` header /// Used in [StreamChatClient] to build the `x-stream-client` header
// ignore: constant_identifier_names // ignore: constant_identifier_names
const PACKAGE_VERSION = '3.5.0'; const PACKAGE_VERSION = '3.5.1';
+2 -2
View File
@@ -1,7 +1,7 @@
name: stream_chat name: stream_chat
homepage: https://getstream.io/ homepage: https://getstream.io/
description: The official Dart client for Stream Chat, a service for building chat applications. 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 repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
@@ -30,5 +30,5 @@ dev_dependencies:
dart_code_metrics: ^4.4.0 dart_code_metrics: ^4.4.0
freezed: ^1.0.0 freezed: ^1.0.0
json_serializable: ^6.0.1 json_serializable: ^6.0.1
mocktail: ^0.2.0 mocktail: ^0.3.0
test: ^1.17.12 test: ^1.17.12
@@ -4,6 +4,13 @@
- `centerTitle` and `elevation` properties to `ChannelHeader`, `ThreadHeader` and `ChannelListHeader`. - `centerTitle` and `elevation` properties to `ChannelHeader`, `ThreadHeader` and `ChannelListHeader`.
## 3.5.1
🐞 Fixed
- 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 ## 3.5.0
🐞 Fixed 🐞 Fixed
@@ -158,7 +158,10 @@ class _MediaListViewState extends State<MediaListView> {
)) ))
.firstOrNull; .firstOrNull;
final media = await assetList?.getAssetListPaged(_currentPage, 50); final media = await assetList?.getAssetListPaged(
page: _currentPage,
size: 50,
);
if (media?.isNotEmpty == true) { if (media?.isNotEmpty == true) {
setState(() { setState(() {
@@ -197,7 +200,7 @@ class MediaThumbnailProvider extends ImageProvider<MediaThumbnailProvider> {
DecoderCallback decode, DecoderCallback decode,
) async { ) async {
assert(key == this, 'Checks MediaThumbnailProvider'); assert(key == this, 'Checks MediaThumbnailProvider');
final bytes = await media.thumbData; final bytes = await media.thumbnailData;
return decode(bytes!); return decode(bytes!);
} }
@@ -344,6 +344,7 @@ class MessageInputState extends State<MessageInput> {
final _imagePicker = ImagePicker(); final _imagePicker = ImagePicker();
late final _focusNode = widget.focusNode ?? FocusNode(); late final _focusNode = widget.focusNode ?? FocusNode();
late final _isInternalFocusNode = widget.focusNode == null;
bool _inputEnabled = true; bool _inputEnabled = true;
bool _commandEnabled = false; bool _commandEnabled = false;
bool _showCommandsOverlay = false; bool _showCommandsOverlay = false;
@@ -1191,30 +1192,36 @@ class MessageInputState extends State<MessageInput> {
}; };
} }
return UserMentionsOverlay( return LayoutBuilder(
query: query, builder: (context, snapshot) => UserMentionsOverlay(
mentionAllAppUsers: widget.mentionAllAppUsers, query: query,
client: StreamChat.of(context).client, mentionAllAppUsers: widget.mentionAllAppUsers,
channel: channel, client: StreamChat.of(context).client,
size: Size(renderObject.size.width - 16, 400), channel: channel,
mentionsTileBuilder: tileBuilder, size: Size(
onMentionUserTap: (user) { renderObject.size.width - 16,
_mentionedUsers.add(user); min(400, (snapshot.maxHeight - renderObject.size.height - 16).abs()),
splits[splits.length - 1] = user.name; ),
final rejoin = splits.join('@'); mentionsTileBuilder: tileBuilder,
onMentionUserTap: (user) {
_mentionedUsers.add(user);
splits[splits.length - 1] = user.name;
final rejoin = splits.join('@');
textEditingController.value = TextEditingValue( textEditingController.value = TextEditingValue(
text: rejoin + text: rejoin +
textEditingController.text.substring( textEditingController.text.substring(
textEditingController.selection.start, textEditingController.selection.start,
), ),
selection: TextSelection.collapsed( selection: TextSelection.collapsed(
offset: rejoin.length, offset: rejoin.length,
), ),
); );
_onChangedDebounced.cancel(); _onChangedDebounced.cancel();
setState(() => _showMentionsOverlay = false);
}, setState(() => _showMentionsOverlay = false);
},
),
); );
} }
@@ -1925,6 +1932,7 @@ class MessageInputState extends State<MessageInput> {
void dispose() { void dispose() {
textEditingController.dispose(); textEditingController.dispose();
_focusNode.removeListener(_focusNodeListener); _focusNode.removeListener(_focusNodeListener);
if (_isInternalFocusNode) _focusNode.dispose();
_stopSlowMode(); _stopSlowMode();
_onChangedDebounced.cancel(); _onChangedDebounced.cancel();
super.dispose(); super.dispose();
@@ -1970,12 +1978,12 @@ class _PickerWidget extends StatefulWidget {
} }
class _PickerWidgetState extends State<_PickerWidget> { class _PickerWidgetState extends State<_PickerWidget> {
Future<bool>? requestPermission; Future<PermissionState>? requestPermission;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
requestPermission = PhotoManager.requestPermission(); requestPermission = PhotoManager.requestPermissionExtend();
} }
@override @override
@@ -1983,14 +1991,15 @@ class _PickerWidgetState extends State<_PickerWidget> {
if (widget.filePickerIndex != 0) { if (widget.filePickerIndex != 0) {
return const Offstage(); return const Offstage();
} }
return FutureBuilder<bool>( return FutureBuilder<PermissionState>(
future: requestPermission, future: requestPermission,
builder: (context, snapshot) { builder: (context, snapshot) {
if (!snapshot.hasData) { if (!snapshot.hasData) {
return const Offstage(); return const Offstage();
} }
if (snapshot.data!) { if ([PermissionState.authorized, PermissionState.limited]
.contains(snapshot.data)) {
if (widget.containsFile) { if (widget.containsFile) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
+5 -5
View File
@@ -1,7 +1,7 @@
name: stream_chat_flutter name: stream_chat_flutter
homepage: https://github.com/GetStream/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. 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 repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
@@ -31,12 +31,12 @@ dependencies:
lottie: ^1.0.1 lottie: ^1.0.1
meta: ^1.3.0 meta: ^1.3.0
path_provider: ^2.0.1 path_provider: ^2.0.1
photo_manager: ^1.2.6+1 photo_manager: ^2.0.1
photo_view: ^0.13.0 photo_view: ^0.13.0
rxdart: ^0.27.0 rxdart: ^0.27.0
share_plus: ^3.0.4 share_plus: ^4.0.1
shimmer: ^2.0.0 shimmer: ^2.0.0
stream_chat_flutter_core: ^3.5.0 stream_chat_flutter_core: ^3.5.1
substring_highlight: ^1.0.26 substring_highlight: ^1.0.26
synchronized: ^3.0.0 synchronized: ^3.0.0
url_launcher: ^6.0.3 url_launcher: ^6.0.3
@@ -58,5 +58,5 @@ dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
golden_toolkit: ^0.13.0 golden_toolkit: ^0.13.0
mocktail: ^0.2.0 mocktail: ^0.3.0
path: ^1.8.0 path: ^1.8.0
@@ -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 ## 3.5.0
- Updated `stream_chat` dependency to [`3.5.0`](https://pub.dev/packages/stream_chat/changelog). - Updated `stream_chat` dependency to [`3.5.0`](https://pub.dev/packages/stream_chat/changelog).
@@ -1,7 +1,7 @@
name: stream_chat_flutter_core name: stream_chat_flutter_core
homepage: https://github.com/GetStream/stream-chat-flutter homepage: https://github.com/GetStream/stream-chat-flutter
description: Stream Chat official Flutter SDK Core. Build your own chat experience using Dart and 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 repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
@@ -16,12 +16,12 @@ dependencies:
sdk: flutter sdk: flutter
meta: ^1.3.0 meta: ^1.3.0
rxdart: ^0.27.0 rxdart: ^0.27.0
stream_chat: ^3.5.0 stream_chat: ^3.5.1
dev_dependencies: dev_dependencies:
dart_code_metrics: ^4.4.0 dart_code_metrics: ^4.4.0
fake_async: ^1.2.0 fake_async: ^1.2.0
flutter_test: flutter_test:
sdk: flutter sdk: flutter
mocktail: ^0.2.0 mocktail: ^0.3.0