Merge pull request #1010 from GetStream/release/3.5.1
chore(llc,core,ui): update pubspec and changelogs
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -1902,7 +1902,6 @@ class ChannelClientState {
|
||||
readList.add(Read(
|
||||
user: event.user!,
|
||||
lastRead: event.createdAt,
|
||||
unreadMessages: event.totalUnreadCount ?? 0,
|
||||
));
|
||||
_channelState = _channelState.copyWith(read: readList);
|
||||
}
|
||||
|
||||
@@ -190,8 +190,12 @@ class WebSocket with TimerHelper {
|
||||
_connectionStatus = ConnectionStatus.connecting;
|
||||
connectionCompleter = Completer<Event>();
|
||||
|
||||
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);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
🐞 Fixed
|
||||
|
||||
@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
|
||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
compileSdkVersion 31
|
||||
|
||||
sourceSets {
|
||||
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).
|
||||
applicationId "com.example.example"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 30
|
||||
targetSdkVersion 31
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:exported="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||
the Android process has started. This theme is visible to the user
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.5.20'
|
||||
ext.kotlin_version = '1.6.0'
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
|
||||
@@ -27,9 +27,12 @@ dependencies:
|
||||
cupertino_icons: ^1.0.3
|
||||
flutter:
|
||||
sdk: flutter
|
||||
stream_chat_flutter: ^2.2.1
|
||||
stream_chat_localizations: ^1.1.0
|
||||
stream_chat_persistence: ^2.2.0
|
||||
stream_chat_flutter:
|
||||
path: ../
|
||||
stream_chat_localizations:
|
||||
path: ../../stream_chat_localizations
|
||||
stream_chat_persistence:
|
||||
path: ../../stream_chat_persistence
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
@@ -158,7 +158,10 @@ class _MediaListViewState extends State<MediaListView> {
|
||||
))
|
||||
.firstOrNull;
|
||||
|
||||
final media = await assetList?.getAssetListPaged(_currentPage, 50);
|
||||
final media = await assetList?.getAssetListPaged(
|
||||
page: _currentPage,
|
||||
size: 50,
|
||||
);
|
||||
|
||||
if (media?.isNotEmpty == true) {
|
||||
setState(() {
|
||||
@@ -197,7 +200,7 @@ class MediaThumbnailProvider extends ImageProvider<MediaThumbnailProvider> {
|
||||
DecoderCallback decode,
|
||||
) async {
|
||||
assert(key == this, 'Checks MediaThumbnailProvider');
|
||||
final bytes = await media.thumbData;
|
||||
final bytes = await media.thumbnailData;
|
||||
|
||||
return decode(bytes!);
|
||||
}
|
||||
|
||||
@@ -344,6 +344,7 @@ class MessageInputState extends State<MessageInput> {
|
||||
|
||||
final _imagePicker = ImagePicker();
|
||||
late final _focusNode = widget.focusNode ?? FocusNode();
|
||||
late final _isInternalFocusNode = widget.focusNode == null;
|
||||
bool _inputEnabled = true;
|
||||
bool _commandEnabled = false;
|
||||
bool _showCommandsOverlay = false;
|
||||
@@ -1191,30 +1192,36 @@ class MessageInputState extends State<MessageInput> {
|
||||
};
|
||||
}
|
||||
|
||||
return UserMentionsOverlay(
|
||||
query: query,
|
||||
mentionAllAppUsers: widget.mentionAllAppUsers,
|
||||
client: StreamChat.of(context).client,
|
||||
channel: channel,
|
||||
size: Size(renderObject.size.width - 16, 400),
|
||||
mentionsTileBuilder: tileBuilder,
|
||||
onMentionUserTap: (user) {
|
||||
_mentionedUsers.add(user);
|
||||
splits[splits.length - 1] = user.name;
|
||||
final rejoin = splits.join('@');
|
||||
return LayoutBuilder(
|
||||
builder: (context, snapshot) => UserMentionsOverlay(
|
||||
query: query,
|
||||
mentionAllAppUsers: widget.mentionAllAppUsers,
|
||||
client: StreamChat.of(context).client,
|
||||
channel: channel,
|
||||
size: Size(
|
||||
renderObject.size.width - 16,
|
||||
min(400, (snapshot.maxHeight - renderObject.size.height - 16).abs()),
|
||||
),
|
||||
mentionsTileBuilder: tileBuilder,
|
||||
onMentionUserTap: (user) {
|
||||
_mentionedUsers.add(user);
|
||||
splits[splits.length - 1] = user.name;
|
||||
final rejoin = splits.join('@');
|
||||
|
||||
textEditingController.value = TextEditingValue(
|
||||
text: rejoin +
|
||||
textEditingController.text.substring(
|
||||
textEditingController.selection.start,
|
||||
),
|
||||
selection: TextSelection.collapsed(
|
||||
offset: rejoin.length,
|
||||
),
|
||||
);
|
||||
_onChangedDebounced.cancel();
|
||||
setState(() => _showMentionsOverlay = false);
|
||||
},
|
||||
textEditingController.value = TextEditingValue(
|
||||
text: rejoin +
|
||||
textEditingController.text.substring(
|
||||
textEditingController.selection.start,
|
||||
),
|
||||
selection: TextSelection.collapsed(
|
||||
offset: rejoin.length,
|
||||
),
|
||||
);
|
||||
_onChangedDebounced.cancel();
|
||||
|
||||
setState(() => _showMentionsOverlay = false);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1925,6 +1932,7 @@ class MessageInputState extends State<MessageInput> {
|
||||
void dispose() {
|
||||
textEditingController.dispose();
|
||||
_focusNode.removeListener(_focusNodeListener);
|
||||
if (_isInternalFocusNode) _focusNode.dispose();
|
||||
_stopSlowMode();
|
||||
_onChangedDebounced.cancel();
|
||||
super.dispose();
|
||||
@@ -1970,12 +1978,12 @@ class _PickerWidget extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _PickerWidgetState extends State<_PickerWidget> {
|
||||
Future<bool>? requestPermission;
|
||||
Future<PermissionState>? requestPermission;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
requestPermission = PhotoManager.requestPermission();
|
||||
requestPermission = PhotoManager.requestPermissionExtend();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1983,14 +1991,15 @@ class _PickerWidgetState extends State<_PickerWidget> {
|
||||
if (widget.filePickerIndex != 0) {
|
||||
return const Offstage();
|
||||
}
|
||||
return FutureBuilder<bool>(
|
||||
return FutureBuilder<PermissionState>(
|
||||
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: () {
|
||||
|
||||
@@ -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
|
||||
synchronized: ^3.0.0
|
||||
url_launcher: ^6.0.3
|
||||
@@ -58,5 +58,5 @@ dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
golden_toolkit: ^0.13.0
|
||||
mocktail: ^0.2.0
|
||||
mocktail: ^0.3.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
|
||||
|
||||
- Updated `stream_chat` dependency to [`3.5.0`](https://pub.dev/packages/stream_chat/changelog).
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -16,12 +16,12 @@ dependencies:
|
||||
sdk: flutter
|
||||
meta: ^1.3.0
|
||||
rxdart: ^0.27.0
|
||||
stream_chat: ^3.5.0
|
||||
stream_chat: ^3.5.1
|
||||
|
||||
dev_dependencies:
|
||||
dart_code_metrics: ^4.4.0
|
||||
fake_async: ^1.2.0
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
mocktail: ^0.2.0
|
||||
mocktail: ^0.3.0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user