diff --git a/assets/fonts/custom_icon.ttf b/assets/fonts/custom_icon.ttf index 74be24827..f7e4a4eac 100644 Binary files a/assets/fonts/custom_icon.ttf and b/assets/fonts/custom_icon.ttf differ diff --git a/lib/common/widgets/custom_icon.dart b/lib/common/widgets/custom_icon.dart index 6c31eff6c..e7c17d079 100644 --- a/lib/common/widgets/custom_icon.dart +++ b/lib/common/widgets/custom_icon.dart @@ -3,37 +3,43 @@ import 'package:flutter/widgets.dart'; class CustomIcons { - static const IconData coin = _CustomIconData(0xe800); - static const IconData dm_off = _CustomIconData(0xe801); - static const IconData dm_on = _CustomIconData(0xe802); - static const IconData dm_settings = _CustomIconData(0xe803); - static const IconData dyn = _CustomIconData(0xe804); - static const IconData fav = _CustomIconData(0xe805); - static const IconData flip_rotate_90 = _CustomIconData(0xe806); - static const IconData live_reserve = _CustomIconData(0xe807); - static const IconData open_in_full_rotate_45 = _CustomIconData(0xe808); - static const IconData player_dm_tip_back = _CustomIconData(0xe809); - static const IconData player_dm_tip_copy = _CustomIconData(0xe80a); - static const IconData player_dm_tip_like = _CustomIconData(0xe80b); - static const IconData player_dm_tip_like_solid = _CustomIconData(0xe80c); - static const IconData player_dm_tip_recall = _CustomIconData(0xe80d); - static const IconData repeat_rounded_rotate_90 = _CustomIconData(0xe80e); - static const IconData share = _CustomIconData(0xe80f); - static const IconData share_line = _CustomIconData(0xe810); - static const IconData share_node = _CustomIconData(0xe811); - static const IconData splitscreen_rotate_90 = _CustomIconData(0xe812); - static const IconData star_favorite_line = _CustomIconData(0xe813); - static const IconData star_favorite_solid = _CustomIconData(0xe814); - static const IconData thumbs_down = _CustomIconData(0xe815); - static const IconData thumbs_down_outline = _CustomIconData(0xe816); - static const IconData thumbs_up = _CustomIconData(0xe817); - static const IconData thumbs_up_fill = _CustomIconData(0xe818); - static const IconData thumbs_up_line = _CustomIconData(0xe819); - static const IconData thumbs_up_outline = _CustomIconData(0xe81a); - static const IconData topic_tag = _CustomIconData(0xe81b); - static const IconData touch_app_rotate_270 = _CustomIconData(0xe81c); - static const IconData view_headline_rotate_90 = _CustomIconData(0xe81d); - static const IconData watch_later = _CustomIconData(0xe81e); + static const IconData ai_circle = _CustomIconData(0xe800); + static const IconData coin = _CustomIconData(0xe801); + static const IconData dm_off = _CustomIconData(0xe802); + static const IconData dm_on = _CustomIconData(0xe803); + static const IconData dm_settings = _CustomIconData(0xe804); + static const IconData dyn = _CustomIconData(0xe805); + static const IconData fav = _CustomIconData(0xe806); + static const IconData flip_rotate_90 = _CustomIconData(0xe807); + static const IconData identifier_circle = _CustomIconData(0xe808); + static const IconData live_reserve = _CustomIconData(0xe809); + static const IconData open_in_full_rotate_45 = _CustomIconData(0xe80a); + static const IconData player_dm_tip_back = _CustomIconData(0xe80b); + static const IconData player_dm_tip_copy = _CustomIconData(0xe80c); + static const IconData player_dm_tip_like = _CustomIconData(0xe80d); + static const IconData player_dm_tip_like_solid = _CustomIconData(0xe80e); + static const IconData player_dm_tip_recall = _CustomIconData(0xe80f); + static const IconData repeat_rounded_rotate_90 = _CustomIconData(0xe810); + static const IconData share = _CustomIconData(0xe811); + static const IconData share_line = _CustomIconData(0xe812); + static const IconData share_node = _CustomIconData(0xe813); + static const IconData shield_play_arrow = _CustomIconData(0xe814); + static const IconData shield_published = _CustomIconData(0xe815); + static const IconData shield_reply = _CustomIconData(0xe816); + static const IconData shopping_bag_not_interested = _CustomIconData(0xe817); + static const IconData splitscreen_rotate_90 = _CustomIconData(0xe818); + static const IconData star_favorite_line = _CustomIconData(0xe819); + static const IconData star_favorite_solid = _CustomIconData(0xe81a); + static const IconData thumbs_down = _CustomIconData(0xe81b); + static const IconData thumbs_down_outline = _CustomIconData(0xe81c); + static const IconData thumbs_up = _CustomIconData(0xe81d); + static const IconData thumbs_up_fill = _CustomIconData(0xe81e); + static const IconData thumbs_up_line = _CustomIconData(0xe81f); + static const IconData thumbs_up_outline = _CustomIconData(0xe820); + static const IconData topic_tag = _CustomIconData(0xe821); + static const IconData touch_app_rotate_270 = _CustomIconData(0xe822); + static const IconData view_headline_rotate_90 = _CustomIconData(0xe823); + static const IconData watch_later = _CustomIconData(0xe824); } class _CustomIconData extends IconData { diff --git a/lib/common/widgets/video_popup_menu.dart b/lib/common/widgets/video_popup_menu.dart index 75deb6243..cde21a56f 100644 --- a/lib/common/widgets/video_popup_menu.dart +++ b/lib/common/widgets/video_popup_menu.dart @@ -1,3 +1,4 @@ +import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/http/user.dart'; import 'package:PiliPlus/http/video.dart'; import 'package:PiliPlus/models/common/account_type.dart'; @@ -52,13 +53,7 @@ class VideoPopupMenu extends StatelessWidget { if (videoItem.bvid?.isNotEmpty == true) ...[ _VideoCustomAction( videoItem.bvid!, - const Stack( - clipBehavior: Clip.none, - children: [ - Icon(MdiIcons.identifier, size: 16), - Icon(MdiIcons.circleOutline, size: 16), - ], - ), + const Icon(CustomIcons.identifier_circle, size: 16), () => Utils.copyText(videoItem.bvid!), ), _VideoCustomAction( @@ -69,30 +64,7 @@ class VideoPopupMenu extends StatelessWidget { if (videoItem.cid != null && Pref.enableAi) _VideoCustomAction( 'AI总结', - const Stack( - alignment: Alignment.center, - clipBehavior: Clip.none, - children: [ - Icon(Icons.circle_outlined, size: 16), - ExcludeSemantics( - child: Text( - 'AI', - style: TextStyle( - fontSize: 10, - height: 1, - fontWeight: FontWeight.w700, - ), - strutStyle: StrutStyle( - fontSize: 10, - height: 1, - leading: 0, - fontWeight: FontWeight.w700, - ), - textScaler: TextScaler.noScaling, - ), - ), - ], - ), + const Icon(CustomIcons.ai_circle, size: 16), () async { final res = await UgcIntroController.getAiConclusion( videoItem.bvid!, diff --git a/lib/pages/dynamics/widgets/author_panel.dart b/lib/pages/dynamics/widgets/author_panel.dart index 78a690379..c4d71c7d3 100644 --- a/lib/pages/dynamics/widgets/author_panel.dart +++ b/lib/pages/dynamics/widgets/author_panel.dart @@ -2,6 +2,7 @@ import 'dart:math'; import 'package:PiliPlus/common/assets.dart'; import 'package:PiliPlus/common/style.dart'; +import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/dialog/report.dart'; import 'package:PiliPlus/common/widgets/extra_hit_test_widget.dart'; import 'package:PiliPlus/common/widgets/pendant_avatar.dart'; @@ -395,14 +396,7 @@ class AuthorPanel extends StatelessWidget { ); }, minLeadingWidth: 0, - leading: const Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, - children: [ - Icon(Icons.shield_outlined, size: 19), - Icon(Icons.published_with_changes_sharp, size: 12), - ], - ), + leading: const Icon(CustomIcons.shield_published, size: 19), title: Text('检查动态', style: theme.textTheme.titleSmall!), ), if (onSetTop != null) diff --git a/lib/pages/live_room/controller.dart b/lib/pages/live_room/controller.dart index 06ccb6dce..e9d8a986b 100644 --- a/lib/pages/live_room/controller.dart +++ b/lib/pages/live_room/controller.dart @@ -593,7 +593,7 @@ class LiveRoomController extends GetxController { } void onSendDanmaku([bool fromEmote = false]) { - if (kReleaseMode&& !isLogin) { + if (kReleaseMode && !isLogin) { SmartDialog.showToast('账号未登录'); return; } diff --git a/lib/pages/member_search/child/widgets/search_archive_grpc.dart b/lib/pages/member_search/child/widgets/search_archive_grpc.dart index ff4098e52..13ab69ce3 100644 --- a/lib/pages/member_search/child/widgets/search_archive_grpc.dart +++ b/lib/pages/member_search/child/widgets/search_archive_grpc.dart @@ -1,5 +1,6 @@ import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/widgets/badge.dart'; +import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/layout_builder.dart'; import 'package:PiliPlus/common/widgets/image/image_save.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; @@ -132,13 +133,7 @@ class SearchArchiveGrpc extends StatelessWidget { child: Row( spacing: 6, children: [ - const Stack( - clipBehavior: Clip.none, - children: [ - Icon(MdiIcons.identifier, size: 16), - Icon(MdiIcons.circleOutline, size: 16), - ], - ), + const Icon(CustomIcons.identifier_circle, size: 16), Text(bvid, style: const TextStyle(fontSize: 13)), ], ), diff --git a/lib/pages/setting/models/extra_settings.dart b/lib/pages/setting/models/extra_settings.dart index a851bd1f2..b8a2e263b 100644 --- a/lib/pages/setting/models/extra_settings.dart +++ b/lib/pages/setting/models/extra_settings.dart @@ -74,14 +74,7 @@ List get extraSettings => [ normalModel: const NormalModel.split( title: '空降助手', subtitle: '点击配置', - leading: Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, - children: [ - Icon(Icons.shield_outlined), - Icon(Icons.play_arrow_rounded, size: 15), - ], - ), + leading: Icon(CustomIcons.shield_play_arrow), ), switchModel: SwitchModel.split( defaultVal: false, @@ -377,14 +370,7 @@ List get extraSettings => [ const SwitchModel( title: '发评反诈', subtitle: '发送评论后检查评论是否可见', - leading: Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, - children: [ - Icon(Icons.shield_outlined), - Icon(Icons.reply, size: 14), - ], - ), + leading: Icon(CustomIcons.shield_reply), setKey: SettingBoxKey.enableCommAntifraud, defaultVal: false, ), @@ -401,41 +387,20 @@ List get extraSettings => [ const SwitchModel( title: '发布/转发动态反诈', subtitle: '发布/转发动态后检查动态是否可见', - leading: Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, - children: [ - Icon(Icons.shield_outlined), - Icon(Icons.motion_photos_on, size: 12), - ], - ), + leading: Icon(CustomIcons.shield_published), setKey: SettingBoxKey.enableCreateDynAntifraud, defaultVal: false, ), SwitchModel( title: '屏蔽带货动态', - leading: const Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, - children: [ - Icon(Icons.shopping_bag_outlined, size: 14), - Icon(Icons.not_interested), - ], - ), + leading: const Icon(CustomIcons.shopping_bag_not_interested), setKey: SettingBoxKey.antiGoodsDyn, defaultVal: false, onChanged: (value) => DynamicsDataModel.antiGoodsDyn = value, ), SwitchModel( title: '屏蔽带货评论', - leading: const Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, - children: [ - Icon(Icons.shopping_bag_outlined, size: 14), - Icon(Icons.not_interested), - ], - ), + leading: const Icon(CustomIcons.shopping_bag_not_interested), setKey: SettingBoxKey.antiGoodsReply, defaultVal: false, onChanged: (value) => ReplyGrpc.antiGoodsReply = value, diff --git a/lib/pages/video/reply/widgets/reply_item_grpc.dart b/lib/pages/video/reply/widgets/reply_item_grpc.dart index a9b44a025..ba5bd1aa2 100644 --- a/lib/pages/video/reply/widgets/reply_item_grpc.dart +++ b/lib/pages/video/reply/widgets/reply_item_grpc.dart @@ -4,6 +4,7 @@ import 'package:PiliPlus/common/assets.dart'; import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/widgets/badge.dart'; +import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/dialog/dialog.dart'; import 'package:PiliPlus/common/widgets/dialog/report.dart'; import 'package:PiliPlus/common/widgets/extra_hit_test_widget.dart'; @@ -1195,14 +1196,7 @@ class ReplyItemGrpc extends StatelessWidget { onCheckReply?.call(item); }, minLeadingWidth: 0, - leading: const Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, - children: [ - Icon(Icons.shield_outlined, size: 19), - Icon(Icons.reply, size: 12), - ], - ), + leading: const Icon(CustomIcons.shield_reply, size: 19), title: Text('检查评论', style: style), ), ], diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index e80e8ba58..8a645007a 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -1843,21 +1843,10 @@ class HeaderControlState extends State tooltip: '提交片段', style: btnStyle, onPressed: () => videoDetailCtr.onBlock(context), - icon: const Stack( - clipBehavior: Clip.none, - alignment: Alignment.center, - children: [ - Icon( - Icons.shield_outlined, - size: 19, - color: Colors.white, - ), - Icon( - Icons.play_arrow_rounded, - size: 13, - color: Colors.white, - ), - ], + icon: const Icon( + CustomIcons.shield_play_arrow, + size: 20, + color: Colors.white, ), ), ),