Merge pull request #1010 from GetStream/release/3.5.1

chore(llc,core,ui): update pubspec and changelogs
This commit is contained in:
Salvatore Giordano
2022-03-16 09:09:58 +01:00
committed by GitHub
15 changed files with 90 additions and 50 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
@@ -1,3 +1,10 @@
## 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
@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android { android {
compileSdkVersion 30 compileSdkVersion 31
sourceSets { sourceSets {
main.java.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/main/kotlin'
@@ -41,7 +41,7 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.example" applicationId "com.example.example"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 30 targetSdkVersion 31
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName
} }
@@ -16,6 +16,7 @@
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:exported="true"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as <!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user the Android process has started. This theme is visible to the user
@@ -1,5 +1,5 @@
buildscript { buildscript {
ext.kotlin_version = '1.5.20' ext.kotlin_version = '1.6.0'
repositories { repositories {
google() google()
jcenter() jcenter()
@@ -27,9 +27,12 @@ dependencies:
cupertino_icons: ^1.0.3 cupertino_icons: ^1.0.3
flutter: flutter:
sdk: flutter sdk: flutter
stream_chat_flutter: ^2.2.1 stream_chat_flutter:
stream_chat_localizations: ^1.1.0 path: ../
stream_chat_persistence: ^2.2.0 stream_chat_localizations:
path: ../../stream_chat_localizations
stream_chat_persistence:
path: ../../stream_chat_persistence
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
@@ -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