diff --git a/example/lib/main.dart b/example/lib/main.dart index f81c61be..81322040 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -90,6 +90,7 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( +// debugShowMaterialGrid: true, theme: ThemeData.light(), darkTheme: ThemeData.dark(), themeMode: ThemeMode.system, diff --git a/lib/src/message_list_view.dart b/lib/src/message_list_view.dart index c4b5a390..121109c4 100644 --- a/lib/src/message_list_view.dart +++ b/lib/src/message_list_view.dart @@ -463,7 +463,9 @@ class _MessageListViewState extends State { topRight: Radius.circular(16), bottomRight: Radius.circular(16), ), - showUserAvatar: isNextUser ? DisplayWidget.hide : DisplayWidget.show, + showUserAvatar: isMyMessage + ? DisplayWidget.gone + : (isNextUser ? DisplayWidget.hide : DisplayWidget.show), messageTheme: isMyMessage ? StreamChatTheme.of(context).ownMessageTheme : StreamChatTheme.of(context).otherMessageTheme, diff --git a/lib/src/message_widget.dart b/lib/src/message_widget.dart index 3294ab17..752c1b23 100644 --- a/lib/src/message_widget.dart +++ b/lib/src/message_widget.dart @@ -201,8 +201,8 @@ class _MessageWidgetState extends State { @override Widget build(BuildContext context) { var leftPadding = widget.showUserAvatar != DisplayWidget.gone - ? widget.messageTheme.avatarTheme.constraints.maxWidth + 23.0 - : 12.0; + ? widget.messageTheme.avatarTheme.constraints.maxWidth + 16.0 + : 6.0; if (widget.showSendingIndicator == DisplayWidget.gone) { leftPadding -= 7; } @@ -232,17 +232,6 @@ class _MessageWidgetState extends State { crossAxisAlignment: CrossAxisAlignment.end, mainAxisSize: MainAxisSize.min, children: [ - if (widget.showSendingIndicator == - DisplayWidget.show) - _buildSendingIndicator(), - SizedBox( - width: 2, - ), - if (widget.showSendingIndicator == - DisplayWidget.hide) - SizedBox( - width: 8, - ), if (widget.showUserAvatar == DisplayWidget.show) _buildUserAvatar(), SizedBox( @@ -389,12 +378,14 @@ class _MessageWidgetState extends State { if (widget.message.createdAt != null && widget.showTimestamp) TextSpan( text: Jiffy(widget.message.createdAt.toLocal()) - .format(' HH:mm'), + .format(' HH:mm'), ), ], ), ), ), + if (widget.showSendingIndicator == DisplayWidget.show) + _buildSendingIndicator(), if (widget.readList?.isNotEmpty == true) SizedBox.fromSize( size: Size((widget.readList.length * 10.0) + 10, 17), @@ -623,17 +614,11 @@ class _MessageWidgetState extends State { } Widget _buildSendingIndicator() { - return Transform.translate( - offset: Offset( - 0, - 4, - ), - child: Transform( - transform: Matrix4.rotationY(widget.reverse ? pi : 0), - alignment: Alignment.center, - child: SendingIndicator( - message: widget.message, - ), + return Transform( + transform: Matrix4.rotationY(widget.reverse ? pi : 0), + alignment: Alignment.center, + child: SendingIndicator( + message: widget.message, ), ); } diff --git a/lib/src/sending_indicator.dart b/lib/src/sending_indicator.dart index 81e7dfef..b51f07ae 100644 --- a/lib/src/sending_indicator.dart +++ b/lib/src/sending_indicator.dart @@ -13,39 +13,24 @@ class SendingIndicator extends StatelessWidget { @override Widget build(BuildContext context) { if (message.status == MessageSendingStatus.SENT || message.status == null) { - return CircleAvatar( - radius: 4, - backgroundColor: StreamChatTheme.of(context).accentColor, - child: Icon( - Icons.done, - color: Colors.white, - size: 4, - ), + return Icon( + Icons.done, + size: 8, ); } if (message.status == MessageSendingStatus.SENDING || message.status == MessageSendingStatus.UPDATING) { - return CircleAvatar( - radius: 4, - backgroundColor: Colors.grey, - child: Icon( - Icons.access_time, - size: 4, - color: Colors.white, - ), + return Icon( + Icons.access_time, + size: 8, ); } if (message.status == MessageSendingStatus.FAILED || message.status == MessageSendingStatus.FAILED_UPDATE || message.status == MessageSendingStatus.FAILED_DELETE) { - return CircleAvatar( - radius: 4, - backgroundColor: Color(0xffd0021B).withOpacity(.1), - child: Icon( - Icons.error_outline, - size: 4, - color: Colors.white, - ), + return Icon( + Icons.error_outline, + size: 8, ); } diff --git a/lib/src/stream_chat_theme.dart b/lib/src/stream_chat_theme.dart index c1d44b9b..c4a4fa45 100644 --- a/lib/src/stream_chat_theme.dart +++ b/lib/src/stream_chat_theme.dart @@ -287,7 +287,7 @@ class StreamChatThemeData { fontWeight: FontWeight.bold, fontSize: 12, ), - messageBackgroundColor: Color(0x33ebebeb), + messageBackgroundColor: Color(0xffE6E6E6), avatarTheme: AvatarTheme( borderRadius: BorderRadius.circular(20), constraints: BoxConstraints.tightFor(