diff --git a/lib/models/dynamics/result.dart b/lib/models/dynamics/result.dart index 3089a86da..72ed369d6 100644 --- a/lib/models/dynamics/result.dart +++ b/lib/models/dynamics/result.dart @@ -1109,11 +1109,19 @@ class Emoji { late num size; Emoji.fromJson(Map json) { - url = json['webp_url'] ?? json['gif_url'] ?? json['icon_url']; + url = + _parseString(json['webp_url']) ?? + _parseString(json['gif_url']) ?? + _parseString(json['icon_url']); size = json['size'] ?? 1; } } +String? _parseString(String? value) { + if (value == null || value.isEmpty) return null; + return value; +} + class DynamicNoneModel { DynamicNoneModel({ this.tips, diff --git a/lib/pages/video/reply/widgets/reply_item_grpc.dart b/lib/pages/video/reply/widgets/reply_item_grpc.dart index b1798adf4..a3d63ed5b 100644 --- a/lib/pages/video/reply/widgets/reply_item_grpc.dart +++ b/lib/pages/video/reply/widgets/reply_item_grpc.dart @@ -681,7 +681,11 @@ class ReplyItemGrpc extends StatelessWidget { spanChildren.add( WidgetSpan( child: NetworkImgLayer( - src: emote.hasGifUrl() ? emote.gifUrl : emote.url, + src: emote.hasWebpUrl() + ? emote.webpUrl + : emote.hasGifUrl() + ? emote.gifUrl + : emote.url, type: ImageType.emote, width: size, height: size,