Merge branch 'develop' into fix/reaction_card_text_overflow

This commit is contained in:
Salvatore Giordano
2022-04-22 13:26:27 +02:00
committed by GitHub
4 changed files with 68 additions and 56 deletions
+14 -14
View File
@@ -64,7 +64,7 @@ class StreamChatClient {
StreamChatClient( StreamChatClient(
String apiKey, { String apiKey, {
this.logLevel = Level.WARNING, this.logLevel = Level.WARNING,
LogHandlerFunction? logHandlerFunction, this.logHandlerFunction = StreamChatClient.defaultLogHandler,
RetryPolicy? retryPolicy, RetryPolicy? retryPolicy,
@Deprecated(''' @Deprecated('''
Location is now deprecated in favor of the new edge server. Will be removed in v4.0.0. Location is now deprecated in favor of the new edge server. Will be removed in v4.0.0.
@@ -77,7 +77,6 @@ class StreamChatClient {
WebSocket? ws, WebSocket? ws,
AttachmentFileUploader? attachmentFileUploader, AttachmentFileUploader? attachmentFileUploader,
}) { }) {
this.logHandlerFunction = logHandlerFunction ?? _defaultLogHandler;
logger.info('Initiating new StreamChatClient'); logger.info('Initiating new StreamChatClient');
final options = StreamHttpClientOptions( final options = StreamHttpClientOptions(
@@ -134,7 +133,7 @@ class StreamChatClient {
'${CurrentPlatform.name}-' '${CurrentPlatform.name}-'
'${PACKAGE_VERSION.split('+')[0]}'; '${PACKAGE_VERSION.split('+')[0]}';
/// Additionals headers for all requests /// Additional headers for all requests
static Map<String, Object?> additionalHeaders = {}; static Map<String, Object?> additionalHeaders = {};
ChatPersistenceClient? _originalChatPersistenceClient; ChatPersistenceClient? _originalChatPersistenceClient;
@@ -189,7 +188,7 @@ class StreamChatClient {
/// final client = StreamChatClient("stream-chat-api-key", /// final client = StreamChatClient("stream-chat-api-key",
/// logHandlerFunction: myLogHandlerFunction); /// logHandlerFunction: myLogHandlerFunction);
///``` ///```
late LogHandlerFunction logHandlerFunction; final LogHandlerFunction logHandlerFunction;
StreamSubscription<ConnectionStatus>? _connectionStatusSubscription; StreamSubscription<ConnectionStatus>? _connectionStatusSubscription;
@@ -214,17 +213,18 @@ class StreamChatClient {
Stream<ConnectionStatus> get wsConnectionStatusStream => Stream<ConnectionStatus> get wsConnectionStatusStream =>
_wsConnectionStatusController.stream.distinct(); _wsConnectionStatusController.stream.distinct();
LogHandlerFunction get _defaultLogHandler => (LogRecord record) { /// Default log handler function for the [StreamChatClient] logger.
print( static void defaultLogHandler(LogRecord record) {
'${record.time} ' print(
'${_levelEmojiMapper[record.level] ?? record.level.name} ' '${record.time} '
'${record.loggerName} ${record.message} ', '${_levelEmojiMapper[record.level] ?? record.level.name} '
); '${record.loggerName} ${record.message} ',
if (record.error != null) print(record.error); );
if (record.stackTrace != null) print(record.stackTrace); if (record.error != null) print(record.error);
}; if (record.stackTrace != null) print(record.stackTrace);
}
/// /// Default logger for the [StreamChatClient].
Logger detachedLogger(String name) => Logger.detached(name) Logger detachedLogger(String name) => Logger.detached(name)
..level = logLevel ..level = logLevel
..onRecord.listen(logHandlerFunction); ..onRecord.listen(logHandlerFunction);
+29 -30
View File
@@ -5,37 +5,36 @@ export 'package:dio/src/dio_error.dart';
export 'package:dio/src/multipart_file.dart'; export 'package:dio/src/multipart_file.dart';
export 'package:dio/src/options.dart'; export 'package:dio/src/options.dart';
export 'package:dio/src/options.dart' show ProgressCallback; export 'package:dio/src/options.dart' show ProgressCallback;
export 'package:logging/logging.dart' show Logger, Level; export 'package:logging/logging.dart' show Logger, Level, LogRecord;
export 'package:rate_limiter/rate_limiter.dart'; export 'package:rate_limiter/rate_limiter.dart';
export './src/core/api/attachment_file_uploader.dart'
show AttachmentFileUploader;
export './src/core/api/requests.dart';
export './src/core/api/requests.dart';
export './src/core/api/responses.dart';
export './src/core/api/stream_chat_api.dart' show PushProvider;
export './src/core/error/error.dart';
export './src/core/models/action.dart';
export './src/core/models/attachment.dart';
export './src/core/models/attachment_file.dart';
export './src/core/models/channel_config.dart';
export './src/core/models/channel_model.dart';
export './src/core/models/channel_state.dart';
export './src/core/models/command.dart';
export './src/core/models/device.dart';
export './src/core/models/event.dart';
export './src/core/models/filter.dart' show Filter;
export './src/core/models/member.dart';
export './src/core/models/message.dart';
export './src/core/models/mute.dart';
export './src/core/models/own_user.dart';
export './src/core/models/reaction.dart';
export './src/core/models/read.dart';
export './src/core/models/user.dart';
export './src/core/util/extension.dart';
export './src/db/chat_persistence_client.dart';
export './src/event_type.dart';
export './src/location.dart';
export './src/ws/connection_status.dart';
export 'src/client/channel.dart'; export 'src/client/channel.dart';
export 'src/client/client.dart'; export 'src/client/client.dart';
export 'src/core/api/attachment_file_uploader.dart' show AttachmentFileUploader;
export 'src/core/api/requests.dart';
export 'src/core/api/requests.dart';
export 'src/core/api/responses.dart';
export 'src/core/api/stream_chat_api.dart' show PushProvider;
export 'src/core/error/error.dart';
export 'src/core/models/action.dart';
export 'src/core/models/attachment.dart';
export 'src/core/models/attachment_file.dart';
export 'src/core/models/channel_config.dart';
export 'src/core/models/channel_model.dart';
export 'src/core/models/channel_state.dart';
export 'src/core/models/command.dart';
export 'src/core/models/device.dart';
export 'src/core/models/event.dart';
export 'src/core/models/filter.dart' show Filter;
export 'src/core/models/member.dart';
export 'src/core/models/message.dart';
export 'src/core/models/mute.dart';
export 'src/core/models/own_user.dart';
export 'src/core/models/reaction.dart';
export 'src/core/models/read.dart';
export 'src/core/models/user.dart';
export 'src/core/util/extension.dart';
export 'src/db/chat_persistence_client.dart';
export 'src/event_type.dart';
export 'src/location.dart';
export 'src/ws/connection_status.dart';
@@ -3,6 +3,7 @@
🐞 Fixed 🐞 Fixed
- [[#1067]](https://github.com/GetStream/stream-chat-flutter/issues/1067): Fix name text overflow in reaction card. - [[#1067]](https://github.com/GetStream/stream-chat-flutter/issues/1067): Fix name text overflow in reaction card.
- [[#842]](https://github.com/GetStream/stream-chat-flutter/issues/842): show date divider for first message.
## 3.6.1 ## 3.6.1
@@ -559,6 +559,9 @@ class _MessageListViewState extends State<MessageListView> {
if (widget.reverse if (widget.reverse
? widget.headerBuilder == null ? widget.headerBuilder == null
: widget.footerBuilder == null) { : widget.footerBuilder == null) {
if (messages.isNotEmpty) {
return _buildDateDivider(messages.last);
}
if (_isThreadConversation) return const Offstage(); if (_isThreadConversation) return const Offstage();
return const SizedBox(height: 52); return const SizedBox(height: 52);
} }
@@ -583,21 +586,12 @@ class _MessageListViewState extends State<MessageListView> {
message = messages[i - 2]; message = messages[i - 2];
nextMessage = messages[i - 1]; nextMessage = messages[i - 1];
} }
if (!Jiffy(message.createdAt.toLocal()).isSame( if (!Jiffy(message.createdAt.toLocal()).isSame(
nextMessage.createdAt.toLocal(), nextMessage.createdAt.toLocal(),
Units.DAY, Units.DAY,
)) { )) {
final divider = widget.dateDividerBuilder != null return _buildDateDivider(nextMessage);
? widget.dateDividerBuilder!(
nextMessage.createdAt.toLocal(),
)
: Padding(
padding: const EdgeInsets.symmetric(vertical: 12),
child: DateDivider(
dateTime: nextMessage.createdAt.toLocal(),
),
);
return divider;
} }
final timeDiff = final timeDiff =
Jiffy(nextMessage.createdAt.toLocal()).diff( Jiffy(nextMessage.createdAt.toLocal()).diff(
@@ -747,6 +741,20 @@ class _MessageListViewState extends State<MessageListView> {
return child; return child;
} }
Widget _buildDateDivider(Message message) {
final divider = widget.dateDividerBuilder != null
? widget.dateDividerBuilder!(
message.createdAt.toLocal(),
)
: Padding(
padding: const EdgeInsets.symmetric(vertical: 12),
child: DateDivider(
dateTime: message.createdAt.toLocal(),
),
);
return divider;
}
Widget _buildThreadSeparator() { Widget _buildThreadSeparator() {
if (widget.threadSeparatorBuilder != null) { if (widget.threadSeparatorBuilder != null) {
return widget.threadSeparatorBuilder!.call(context); return widget.threadSeparatorBuilder!.call(context);
@@ -803,7 +811,11 @@ class _MessageListViewState extends State<MessageListView> {
index = _getBottomElementIndex(values); index = _getBottomElementIndex(values);
} }
if (index == null) return const Offstage(); if ((index == null) ||
(!_isThreadConversation && index == itemCount - 2) ||
(_isThreadConversation && index == itemCount - 1)) {
return const Offstage();
}
if (index <= 2 || index >= itemCount - 3) { if (index <= 2 || index >= itemCount - 3) {
if (widget.reverse) { if (widget.reverse) {