opt live emote

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-03-29 18:08:28 +08:00
parent 886c53c7d8
commit 82483b33fc
2 changed files with 13 additions and 8 deletions

View File

@@ -3,7 +3,7 @@ class BaseEmote {
late String emoticonUnique;
late double width;
late double height;
late final isUpower = emoticonUnique.startsWith('upower_');
late final isOfficial = emoticonUnique.startsWith('official_');
BaseEmote.fromJson(Map<String, dynamic> json) {
url = json['url'];

View File

@@ -2,7 +2,6 @@ import 'package:PiliPlus/common/widgets/flutter/popup_menu.dart';
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/http/live.dart';
import 'package:PiliPlus/models/common/image_type.dart';
import 'package:PiliPlus/models_new/live/live_danmaku/danmaku_msg.dart';
import 'package:PiliPlus/models_new/live/live_superchat/item.dart';
import 'package:PiliPlus/pages/live_room/controller.dart';
@@ -241,14 +240,20 @@ class LiveRoomChatPanel extends StatelessWidget {
InlineSpan _buildMsg(double devicePixelRatio, DanmakuMsg obj) {
final uemote = obj.uemote;
if (uemote != null) {
// "room_{{room_id}}_{{int}}" or "upower_[{{emote}}]"
final isUpower = uemote.isUpower;
// "room_{{room_id}}_{{int}}" , "upower_[{{emote}}]" , "official_{{int}}"
final double width, height;
if (uemote.isOfficial) {
width = uemote.width / devicePixelRatio;
height = uemote.height / devicePixelRatio;
} else {
width = height = 162.0 / devicePixelRatio;
}
return WidgetSpan(
child: NetworkImgLayer(
src: uemote.url,
type: ImageType.emote,
width: isUpower ? uemote.width : uemote.width / devicePixelRatio,
height: isUpower ? uemote.height : uemote.height / devicePixelRatio,
type: .emote,
width: width,
height: height,
),
);
}
@@ -265,7 +270,7 @@ class LiveRoomChatPanel extends StatelessWidget {
WidgetSpan(
child: NetworkImgLayer(
src: emote.url,
type: ImageType.emote,
type: .emote,
width: emote.width,
height: emote.height,
),