update sending indicator
This commit is contained in:
@@ -90,6 +90,7 @@ class MyApp extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MaterialApp(
|
return MaterialApp(
|
||||||
|
// debugShowMaterialGrid: true,
|
||||||
theme: ThemeData.light(),
|
theme: ThemeData.light(),
|
||||||
darkTheme: ThemeData.dark(),
|
darkTheme: ThemeData.dark(),
|
||||||
themeMode: ThemeMode.system,
|
themeMode: ThemeMode.system,
|
||||||
|
|||||||
@@ -463,7 +463,9 @@ class _MessageListViewState extends State<MessageListView> {
|
|||||||
topRight: Radius.circular(16),
|
topRight: Radius.circular(16),
|
||||||
bottomRight: Radius.circular(16),
|
bottomRight: Radius.circular(16),
|
||||||
),
|
),
|
||||||
showUserAvatar: isNextUser ? DisplayWidget.hide : DisplayWidget.show,
|
showUserAvatar: isMyMessage
|
||||||
|
? DisplayWidget.gone
|
||||||
|
: (isNextUser ? DisplayWidget.hide : DisplayWidget.show),
|
||||||
messageTheme: isMyMessage
|
messageTheme: isMyMessage
|
||||||
? StreamChatTheme.of(context).ownMessageTheme
|
? StreamChatTheme.of(context).ownMessageTheme
|
||||||
: StreamChatTheme.of(context).otherMessageTheme,
|
: StreamChatTheme.of(context).otherMessageTheme,
|
||||||
|
|||||||
+10
-25
@@ -201,8 +201,8 @@ class _MessageWidgetState extends State<MessageWidget> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var leftPadding = widget.showUserAvatar != DisplayWidget.gone
|
var leftPadding = widget.showUserAvatar != DisplayWidget.gone
|
||||||
? widget.messageTheme.avatarTheme.constraints.maxWidth + 23.0
|
? widget.messageTheme.avatarTheme.constraints.maxWidth + 16.0
|
||||||
: 12.0;
|
: 6.0;
|
||||||
if (widget.showSendingIndicator == DisplayWidget.gone) {
|
if (widget.showSendingIndicator == DisplayWidget.gone) {
|
||||||
leftPadding -= 7;
|
leftPadding -= 7;
|
||||||
}
|
}
|
||||||
@@ -232,17 +232,6 @@ class _MessageWidgetState extends State<MessageWidget> {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
if (widget.showSendingIndicator ==
|
|
||||||
DisplayWidget.show)
|
|
||||||
_buildSendingIndicator(),
|
|
||||||
SizedBox(
|
|
||||||
width: 2,
|
|
||||||
),
|
|
||||||
if (widget.showSendingIndicator ==
|
|
||||||
DisplayWidget.hide)
|
|
||||||
SizedBox(
|
|
||||||
width: 8,
|
|
||||||
),
|
|
||||||
if (widget.showUserAvatar == DisplayWidget.show)
|
if (widget.showUserAvatar == DisplayWidget.show)
|
||||||
_buildUserAvatar(),
|
_buildUserAvatar(),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@@ -389,12 +378,14 @@ class _MessageWidgetState extends State<MessageWidget> {
|
|||||||
if (widget.message.createdAt != null && widget.showTimestamp)
|
if (widget.message.createdAt != null && widget.showTimestamp)
|
||||||
TextSpan(
|
TextSpan(
|
||||||
text: Jiffy(widget.message.createdAt.toLocal())
|
text: Jiffy(widget.message.createdAt.toLocal())
|
||||||
.format(' HH:mm'),
|
.format(' HH:mm'),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
if (widget.showSendingIndicator == DisplayWidget.show)
|
||||||
|
_buildSendingIndicator(),
|
||||||
if (widget.readList?.isNotEmpty == true)
|
if (widget.readList?.isNotEmpty == true)
|
||||||
SizedBox.fromSize(
|
SizedBox.fromSize(
|
||||||
size: Size((widget.readList.length * 10.0) + 10, 17),
|
size: Size((widget.readList.length * 10.0) + 10, 17),
|
||||||
@@ -623,17 +614,11 @@ class _MessageWidgetState extends State<MessageWidget> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildSendingIndicator() {
|
Widget _buildSendingIndicator() {
|
||||||
return Transform.translate(
|
return Transform(
|
||||||
offset: Offset(
|
transform: Matrix4.rotationY(widget.reverse ? pi : 0),
|
||||||
0,
|
alignment: Alignment.center,
|
||||||
4,
|
child: SendingIndicator(
|
||||||
),
|
message: widget.message,
|
||||||
child: Transform(
|
|
||||||
transform: Matrix4.rotationY(widget.reverse ? pi : 0),
|
|
||||||
alignment: Alignment.center,
|
|
||||||
child: SendingIndicator(
|
|
||||||
message: widget.message,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,39 +13,24 @@ class SendingIndicator extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (message.status == MessageSendingStatus.SENT || message.status == null) {
|
if (message.status == MessageSendingStatus.SENT || message.status == null) {
|
||||||
return CircleAvatar(
|
return Icon(
|
||||||
radius: 4,
|
Icons.done,
|
||||||
backgroundColor: StreamChatTheme.of(context).accentColor,
|
size: 8,
|
||||||
child: Icon(
|
|
||||||
Icons.done,
|
|
||||||
color: Colors.white,
|
|
||||||
size: 4,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (message.status == MessageSendingStatus.SENDING ||
|
if (message.status == MessageSendingStatus.SENDING ||
|
||||||
message.status == MessageSendingStatus.UPDATING) {
|
message.status == MessageSendingStatus.UPDATING) {
|
||||||
return CircleAvatar(
|
return Icon(
|
||||||
radius: 4,
|
Icons.access_time,
|
||||||
backgroundColor: Colors.grey,
|
size: 8,
|
||||||
child: Icon(
|
|
||||||
Icons.access_time,
|
|
||||||
size: 4,
|
|
||||||
color: Colors.white,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (message.status == MessageSendingStatus.FAILED ||
|
if (message.status == MessageSendingStatus.FAILED ||
|
||||||
message.status == MessageSendingStatus.FAILED_UPDATE ||
|
message.status == MessageSendingStatus.FAILED_UPDATE ||
|
||||||
message.status == MessageSendingStatus.FAILED_DELETE) {
|
message.status == MessageSendingStatus.FAILED_DELETE) {
|
||||||
return CircleAvatar(
|
return Icon(
|
||||||
radius: 4,
|
Icons.error_outline,
|
||||||
backgroundColor: Color(0xffd0021B).withOpacity(.1),
|
size: 8,
|
||||||
child: Icon(
|
|
||||||
Icons.error_outline,
|
|
||||||
size: 4,
|
|
||||||
color: Colors.white,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ class StreamChatThemeData {
|
|||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
),
|
),
|
||||||
messageBackgroundColor: Color(0x33ebebeb),
|
messageBackgroundColor: Color(0xffE6E6E6),
|
||||||
avatarTheme: AvatarTheme(
|
avatarTheme: AvatarTheme(
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
constraints: BoxConstraints.tightFor(
|
constraints: BoxConstraints.tightFor(
|
||||||
|
|||||||
Reference in New Issue
Block a user