update sending indicator

This commit is contained in:
Salvatore Giordano
2020-06-16 17:22:26 +02:00
parent 3c779b6e34
commit 5b5c390c82
5 changed files with 24 additions and 51 deletions
+1
View File
@@ -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,
+3 -1
View File
@@ -463,7 +463,9 @@ class _MessageListViewState extends State<MessageListView> {
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,
+10 -25
View File
@@ -201,8 +201,8 @@ class _MessageWidgetState extends State<MessageWidget> {
@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<MessageWidget> {
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
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<MessageWidget> {
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<MessageWidget> {
}
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,
),
);
}
+9 -24
View File
@@ -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,
);
}
+1 -1
View File
@@ -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(