From 81118bfbf5fcc7f24090fdcabdecdd68c3c93410 Mon Sep 17 00:00:00 2001 From: dom Date: Wed, 17 Jun 2026 15:46:42 +0800 Subject: [PATCH] update icons Signed-off-by: dom --- assets/fonts/bili_icon.ttf | Bin 0 -> 11664 bytes assets/fonts/custom_icon.ttf | Bin 17392 -> 6052 bytes lib/common/widgets/custom_icon.dart | 47 ------------------ lib/common/widgets/icon/bili_icons.dart | 31 ++++++++++++ lib/common/widgets/icon/custom_icons.dart | 23 +++++++++ lib/common/widgets/video_popup_menu.dart | 2 +- lib/pages/article/view.dart | 14 +++--- lib/pages/audio/view.dart | 27 ++++------ lib/pages/common/dyn/common_dyn_page.dart | 2 +- lib/pages/dynamics/widgets/action_panel.dart | 10 ++-- lib/pages/dynamics/widgets/author_panel.dart | 2 +- lib/pages/dynamics/widgets/content_panel.dart | 4 +- lib/pages/dynamics/widgets/interaction.dart | 6 +-- lib/pages/dynamics_create/view.dart | 6 +-- lib/pages/dynamics_detail/view.dart | 10 ++-- .../dynamics_select_topic/widgets/item.dart | 4 +- lib/pages/dynamics_topic/view.dart | 13 +++-- lib/pages/live_room/view.dart | 6 +-- .../live_room/widgets/bottom_control.dart | 8 +-- lib/pages/live_room/widgets/chat_panel.dart | 4 +- .../child/widgets/search_archive_grpc.dart | 2 +- lib/pages/music/view.dart | 8 +-- lib/pages/pgc_review/child/view.dart | 10 ++-- lib/pages/pgc_review/post/view.dart | 6 +-- lib/pages/setting/models/extra_settings.dart | 2 +- lib/pages/setting/models/play_settings.dart | 4 +- lib/pages/video/introduction/pgc/view.dart | 18 +++---- lib/pages/video/introduction/ugc/view.dart | 21 +++----- .../introduction/ugc/widgets/action_item.dart | 17 ++++--- .../video/reply/widgets/reply_item_grpc.dart | 2 +- lib/pages/video/reply/widgets/zan_grpc.dart | 10 ++-- lib/pages/video/reply_new/view.dart | 2 +- lib/pages/video/view.dart | 6 +-- lib/pages/video/widgets/header_control.dart | 28 ++++++----- lib/plugin/pl_player/view/view.dart | 2 +- pubspec.yaml | 3 ++ 36 files changed, 174 insertions(+), 186 deletions(-) create mode 100644 assets/fonts/bili_icon.ttf delete mode 100644 lib/common/widgets/custom_icon.dart create mode 100644 lib/common/widgets/icon/bili_icons.dart create mode 100644 lib/common/widgets/icon/custom_icons.dart diff --git a/assets/fonts/bili_icon.ttf b/assets/fonts/bili_icon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4c0de9c326fddb100d133feba7ecf7e4f57e2179 GIT binary patch literal 11664 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 literal 17392 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 { final forward = stats.forward; return textIconButton( text: '转发', - icon: FontAwesomeIcons.shareFromSquare, + icon: BiliIcons.ic_share, stat: forward, onPressed: () { if (controller.opusData == null && @@ -635,8 +635,8 @@ class _ArticlePageState extends CommonDynPageState { ), Expanded( child: textIconButton( - icon: FontAwesomeIcons.star, - activatedIcon: FontAwesomeIcons.solidStar, + icon: BiliIcons.ic_favorite, + activatedIcon: BiliIcons.ic_favorited, text: '收藏', stat: stats.favorite, onPressed: controller.onFav, @@ -644,8 +644,8 @@ class _ArticlePageState extends CommonDynPageState { ), Expanded( child: textIconButton( - icon: FontAwesomeIcons.thumbsUp, - activatedIcon: FontAwesomeIcons.solidThumbsUp, + icon: BiliIcons.ic_like, + activatedIcon: BiliIcons.ic_liked, text: '点赞', stat: stats.like, onPressed: controller.onLike, diff --git a/lib/pages/audio/view.dart b/lib/pages/audio/view.dart index 75ef20b02..29ba477a2 100644 --- a/lib/pages/audio/view.dart +++ b/lib/pages/audio/view.dart @@ -5,6 +5,7 @@ import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/widgets/button/icon_button.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/image_viewer/hero.dart'; import 'package:PiliPlus/common/widgets/progress_bar/audio_video_progress_bar.dart'; @@ -667,10 +668,7 @@ class _AudioPageState extends State { Obx( () => ActionItem( animation: _controller.tripleAnimation, - icon: const Icon(FontAwesomeIcons.thumbsUp), - selectIcon: const Icon( - FontAwesomeIcons.solidThumbsUp, - ), + icon: const Icon(BiliIcons.ugcvideo_ic_like), selectStatus: _controller.hasLike.value, text: NumUtils.numFormat(audioItem.stat.like), onStartTriple: _controller.onStartTriple, @@ -680,8 +678,7 @@ class _AudioPageState extends State { Obx( () => ActionItem( animation: _controller.tripleAnimation, - icon: const Icon(FontAwesomeIcons.b), - selectIcon: const Icon(FontAwesomeIcons.b), + icon: const Icon(BiliIcons.ugcvideo_ic_coin, size: 20), onTap: _controller.actionCoinVideo, selectStatus: _controller.hasCoin, text: NumUtils.numFormat(audioItem.stat.coin), @@ -690,10 +687,7 @@ class _AudioPageState extends State { Obx( () => ActionItem( animation: _controller.tripleAnimation, - icon: const Icon(FontAwesomeIcons.star), - selectIcon: const Icon( - FontAwesomeIcons.solidStar, - ), + icon: const Icon(BiliIcons.ugcvideo_ic_favorite), onTap: () => _controller.showFavBottomSheet(context), onLongPress: () => _controller.showFavBottomSheet( context, @@ -704,22 +698,21 @@ class _AudioPageState extends State { ), ), ActionItem( - icon: const Icon(FontAwesomeIcons.comment), + icon: const Icon(FontAwesomeIcons.solidCommentDots), onTap: _controller.showReply, text: NumUtils.numFormat(audioItem.stat.reply), ), ActionItem( - icon: const Icon( - FontAwesomeIcons.shareFromSquare, - ), + icon: const Icon(BiliIcons.ugcvideo_ic_share), onTap: () => _controller.actionShareVideo(context), selectStatus: false, text: NumUtils.numFormat(audioItem.stat.share), ), - if (audioItem.associatedItem.hasOid() && - audioItem.associatedItem.subId.isNotEmpty) + if (kDebugMode || + (audioItem.associatedItem.hasOid() && + audioItem.associatedItem.subId.isNotEmpty)) ActionItem( - icon: const Icon(FontAwesomeIcons.circlePlay), + icon: const Icon(FontAwesomeIcons.solidCirclePlay, size: 18), onTap: () { _controller.player?.pause(); PageUtils.toVideoPage( diff --git a/lib/pages/common/dyn/common_dyn_page.dart b/lib/pages/common/dyn/common_dyn_page.dart index 8111a1ee1..d2e200f96 100644 --- a/lib/pages/common/dyn/common_dyn_page.dart +++ b/lib/pages/common/dyn/common_dyn_page.dart @@ -1,6 +1,6 @@ import 'package:PiliPlus/common/skeleton/video_reply.dart'; import 'package:PiliPlus/common/style.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart'; import 'package:PiliPlus/common/widgets/scaffold.dart'; import 'package:PiliPlus/common/widgets/sliver/sliver_pinned_header.dart'; diff --git a/lib/pages/dynamics/widgets/action_panel.dart b/lib/pages/dynamics/widgets/action_panel.dart index cbf93d5c2..44e7dddef 100644 --- a/lib/pages/dynamics/widgets/action_panel.dart +++ b/lib/pages/dynamics/widgets/action_panel.dart @@ -1,3 +1,4 @@ +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:PiliPlus/pages/dynamics_repost/view.dart'; import 'package:PiliPlus/utils/num_utils.dart'; @@ -5,7 +6,6 @@ import 'package:PiliPlus/utils/page_utils.dart'; import 'package:PiliPlus/utils/request_utils.dart'; import 'package:easy_debounce/easy_throttle.dart'; import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; class ActionPanel extends StatelessWidget { const ActionPanel({ @@ -55,7 +55,7 @@ class ActionPanel extends StatelessWidget { ), ), icon: Icon( - FontAwesomeIcons.shareFromSquare, + BiliIcons.ic_share, size: 16, color: outline, semanticLabel: "转发", @@ -78,7 +78,7 @@ class ActionPanel extends StatelessWidget { () => PageUtils.pushDynDetail(item, isPush: true), ), icon: Icon( - FontAwesomeIcons.comment, + BiliIcons.ic_comment, size: 16, color: outline, semanticLabel: "评论", @@ -93,9 +93,7 @@ class ActionPanel extends StatelessWidget { child: Builder( builder: (context) { final likeIcon = Icon( - like.status! - ? FontAwesomeIcons.solidThumbsUp - : FontAwesomeIcons.thumbsUp, + like.status! ? BiliIcons.ic_liked : BiliIcons.ic_like, size: 16, color: like.status! ? primary : outline, semanticLabel: like.status! ? "已赞" : "点赞", diff --git a/lib/pages/dynamics/widgets/author_panel.dart b/lib/pages/dynamics/widgets/author_panel.dart index a21c02154..b97764df9 100644 --- a/lib/pages/dynamics/widgets/author_panel.dart +++ b/lib/pages/dynamics/widgets/author_panel.dart @@ -2,9 +2,9 @@ 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/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/pendant_avatar.dart'; import 'package:PiliPlus/http/constants.dart'; import 'package:PiliPlus/http/loading_state.dart'; diff --git a/lib/pages/dynamics/widgets/content_panel.dart b/lib/pages/dynamics/widgets/content_panel.dart index 3cfbee435..3a9bfedc4 100644 --- a/lib/pages/dynamics/widgets/content_panel.dart +++ b/lib/pages/dynamics/widgets/content_panel.dart @@ -1,6 +1,6 @@ // 内容 -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/text/text.dart' as custom_text; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image_grid/image_grid_view.dart'; import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:PiliPlus/pages/dynamics/widgets/rich_node_panel.dart'; @@ -50,7 +50,7 @@ Widget content( padding: const EdgeInsets.only(right: 4), child: Icon( size: 18, - CustomIcons.topic_tag, + BiliIcons.topic_tag, color: theme.colorScheme.primary, ), ), diff --git a/lib/pages/dynamics/widgets/interaction.dart b/lib/pages/dynamics/widgets/interaction.dart index cf34ff42f..4d58f59f2 100644 --- a/lib/pages/dynamics/widgets/interaction.dart +++ b/lib/pages/dynamics/widgets/interaction.dart @@ -1,8 +1,8 @@ import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:flutter/foundation.dart' show kDebugMode; import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:get/get_navigation/src/extension_navigation.dart'; @@ -63,8 +63,8 @@ Widget _item( size: 13, color: theme.colorScheme.outline, switch (item.type) { - 1 => FontAwesomeIcons.comment, - _ => FontAwesomeIcons.thumbsUp, + 1 => BiliIcons.ic_comment, + _ => BiliIcons.ic_like, }, ), ), diff --git a/lib/pages/dynamics_create/view.dart b/lib/pages/dynamics_create/view.dart index 1b6dda72d..17ffe0352 100644 --- a/lib/pages/dynamics_create/view.dart +++ b/lib/pages/dynamics_create/view.dart @@ -3,10 +3,10 @@ import 'dart:math' show max; import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/widgets/button/icon_button.dart'; import 'package:PiliPlus/common/widgets/button/toolbar_icon_button.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/draggable_scrollable_sheet.dart'; import 'package:PiliPlus/common/widgets/flutter/text_field/controller.dart'; import 'package:PiliPlus/common/widgets/flutter/text_field/text_field.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/pair.dart'; import 'package:PiliPlus/common/widgets/time_picker.dart'; import 'package:PiliPlus/http/dynamics.dart'; @@ -182,7 +182,7 @@ class _CreateDynPanelState extends CommonRichTextPubPageState { child: Padding( padding: const EdgeInsets.only(right: 5), child: Icon( - CustomIcons.topic_tag, + BiliIcons.topic_tag, size: 18, color: hasTopic ? null @@ -637,7 +637,7 @@ class _CreateDynPanelState extends CommonRichTextPubPageState { children: [ item( onTap: _onReserve, - icon: Icon(CustomIcons.live_reserve, size: 28, color: color), + icon: Icon(BiliIcons.live_reserve, size: 28, color: color), title: '直播预约', ), ], diff --git a/lib/pages/dynamics_detail/view.dart b/lib/pages/dynamics_detail/view.dart index 5e5480b57..668740d4a 100644 --- a/lib/pages/dynamics_detail/view.dart +++ b/lib/pages/dynamics_detail/view.dart @@ -1,8 +1,9 @@ import 'dart:math'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; import 'package:PiliPlus/common/widgets/flutter/text_field/controller.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/pair.dart'; import 'package:PiliPlus/common/widgets/scaffold.dart'; import 'package:PiliPlus/http/constants.dart'; @@ -23,7 +24,6 @@ import 'package:PiliPlus/utils/request_utils.dart'; import 'package:PiliPlus/utils/share_utils.dart'; import 'package:flutter/foundation.dart' show kDebugMode; import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; class DynamicDetailPage extends StatefulWidget { @@ -403,7 +403,7 @@ class _DynamicDetailPageState extends CommonDynPageState { builder: (btnContext) { final forward = moduleStat?.forward; return textIconButton( - icon: FontAwesomeIcons.shareFromSquare, + icon: BiliIcons.ic_share, text: '转发', stat: forward, onPressed: (_) => showModalBottomSheet( @@ -441,8 +441,8 @@ class _DynamicDetailPageState extends CommonDynPageState { child: Builder( builder: (context) { return textIconButton( - icon: FontAwesomeIcons.thumbsUp, - activatedIcon: FontAwesomeIcons.solidThumbsUp, + icon: BiliIcons.ic_like, + activatedIcon: BiliIcons.ic_liked, text: '点赞', stat: moduleStat?.like, onPressed: (iconColor) => RequestUtils.onLikeDynamic( diff --git a/lib/pages/dynamics_select_topic/widgets/item.dart b/lib/pages/dynamics_select_topic/widgets/item.dart index 54ec85a0b..f2b8f2bea 100644 --- a/lib/pages/dynamics_select_topic/widgets/item.dart +++ b/lib/pages/dynamics_select_topic/widgets/item.dart @@ -1,4 +1,4 @@ -import 'package:PiliPlus/common/widgets/custom_icon.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/models_new/dynamic/dyn_topic_top/topic_item.dart'; import 'package:PiliPlus/utils/num_utils.dart'; import 'package:flutter/material.dart'; @@ -28,7 +28,7 @@ class DynTopicItem extends StatelessWidget { child: Padding( padding: EdgeInsets.only(right: 5), child: Icon( - CustomIcons.topic_tag, + BiliIcons.topic_tag, size: 18, ), ), diff --git a/lib/pages/dynamics_topic/view.dart b/lib/pages/dynamics_topic/view.dart index 3bbe5234d..99ae95bb3 100644 --- a/lib/pages/dynamics_topic/view.dart +++ b/lib/pages/dynamics_topic/view.dart @@ -1,7 +1,7 @@ import 'package:PiliPlus/common/assets.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/dynamic_sliver_app_bar/dynamic_sliver_app_bar.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart'; import 'package:PiliPlus/common/widgets/pair.dart'; @@ -23,7 +23,6 @@ import 'package:PiliPlus/utils/utils.dart'; import 'package:PiliPlus/utils/waterfall.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:waterfall_flow/waterfall_flow.dart' @@ -164,7 +163,7 @@ class _DynTopicPageState extends State SmartDialog.showToast('账号未登录'); } }, - icon: const Icon(CustomIcons.topic_tag, size: 20), + icon: const Icon(BiliIcons.topic_tag, size: 20), label: const Text('参与话题'), ), ), @@ -280,8 +279,8 @@ class _DynTopicPageState extends State ), onPressed: _controller.onLike, icon: _controller.isLike.value - ? const Icon(FontAwesomeIcons.solidThumbsUp, size: 13) - : const Icon(FontAwesomeIcons.thumbsUp, size: 13), + ? const Icon(BiliIcons.ic_liked, size: 13) + : const Icon(BiliIcons.ic_like, size: 13), label: Text( NumUtils.numFormat(response.topicItem!.like), style: const TextStyle(fontSize: 13), @@ -304,8 +303,8 @@ class _DynTopicPageState extends State ), onPressed: _controller.onFav, icon: _controller.isFav.value - ? const Icon(FontAwesomeIcons.solidStar, size: 13) - : const Icon(FontAwesomeIcons.star, size: 13), + ? const Icon(BiliIcons.ic_favorited, size: 13) + : const Icon(BiliIcons.ic_favorite, size: 13), label: Text( NumUtils.numFormat(response.topicItem!.fav), style: const TextStyle(fontSize: 13), diff --git a/lib/pages/live_room/view.dart b/lib/pages/live_room/view.dart index a22f9b0f9..29b01b4db 100644 --- a/lib/pages/live_room/view.dart +++ b/lib/pages/live_room/view.dart @@ -4,12 +4,12 @@ import 'dart:math' as math; import 'package:PiliPlus/common/assets.dart'; import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/widgets/button/icon_button.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/extra_hittest_stack.dart'; import 'package:PiliPlus/common/widgets/flutter/page/page_view.dart'; import 'package:PiliPlus/common/widgets/flutter/pop_scope.dart'; import 'package:PiliPlus/common/widgets/flutter/text_field/controller.dart'; import 'package:PiliPlus/common/widgets/gesture/horizontal_drag_gesture_recognizer.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/keep_alive_wrapper.dart'; import 'package:PiliPlus/common/widgets/route_aware_mixin.dart'; @@ -784,12 +784,12 @@ class _LiveRoomPageState extends State icon: enableShowLiveDanmaku ? const Icon( size: 22, - CustomIcons.dm_on, + BiliIcons.danmaku_opened, color: baseWhite, ) : const Icon( size: 22, - CustomIcons.dm_off, + BiliIcons.danmaku_closed, color: baseWhite, ), ), diff --git a/lib/pages/live_room/widgets/bottom_control.dart b/lib/pages/live_room/widgets/bottom_control.dart index 932b2ab94..e17c7dfb1 100644 --- a/lib/pages/live_room/widgets/bottom_control.dart +++ b/lib/pages/live_room/widgets/bottom_control.dart @@ -1,4 +1,4 @@ -import 'package:PiliPlus/common/widgets/custom_icon.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/pages/live_room/controller.dart'; import 'package:PiliPlus/pages/video/widgets/header_mixin.dart'; import 'package:PiliPlus/plugin/pl_player/controller.dart'; @@ -96,12 +96,12 @@ class _BottomControlState extends State with HeaderMixin { icon: enableShowLiveDanmaku ? const Icon( size: 18, - CustomIcons.dm_on, + BiliIcons.danmaku_opened, color: Colors.white, ) : const Icon( size: 18, - CustomIcons.dm_off, + BiliIcons.danmaku_closed, color: Colors.white, ), onTap: () { @@ -120,7 +120,7 @@ class _BottomControlState extends State with HeaderMixin { tooltip: '弹幕设置', icon: const Icon( size: 18, - CustomIcons.dm_settings, + BiliIcons.danmaku_settings, color: Colors.white, ), onTap: () => showSetDanmaku(isLive: true), diff --git a/lib/pages/live_room/widgets/chat_panel.dart b/lib/pages/live_room/widgets/chat_panel.dart index ff970d404..914d822d9 100644 --- a/lib/pages/live_room/widgets/chat_panel.dart +++ b/lib/pages/live_room/widgets/chat_panel.dart @@ -1,6 +1,6 @@ -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/popup_menu.dart'; import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/http/live.dart'; import 'package:PiliPlus/models_new/live/live_danmaku/danmaku_msg.dart'; @@ -191,7 +191,7 @@ class LiveRoomChatPanel extends StatelessWidget { position: .under, tooltip: '', iconColor: const Color(0xFFEEEEEE), - icon: const Icon(CustomIcons.dm_settings), + icon: const Icon(BiliIcons.danmaku_settings), itemBuilder: (context) => [ if (liveRoomController.msgStream != null) PopupMenuItem( 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 4bc421be9..b2bf01606 100644 --- a/lib/pages/member_search/child/widgets/search_archive_grpc.dart +++ b/lib/pages/member_search/child/widgets/search_archive_grpc.dart @@ -1,6 +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/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/image/image_save.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/stat/stat.dart'; diff --git a/lib/pages/music/view.dart b/lib/pages/music/view.dart index 23dc0258f..d389b0c71 100644 --- a/lib/pages/music/view.dart +++ b/lib/pages/music/view.dart @@ -1,8 +1,9 @@ import 'dart:math' as math; import 'package:PiliPlus/common/widgets/badge.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/image_viewer/hero.dart'; import 'package:PiliPlus/common/widgets/marquee.dart'; @@ -26,7 +27,6 @@ import 'package:PiliPlus/utils/share_utils.dart'; import 'package:PiliPlus/utils/utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; class MusicDetailPage extends StatefulWidget { @@ -284,8 +284,8 @@ class _MusicDetailPageState extends CommonDynPageState { Expanded( child: Builder( builder: (context) => textIconButton( - icon: FontAwesomeIcons.thumbsUp, - activatedIcon: FontAwesomeIcons.solidThumbsUp, + icon: BiliIcons.ic_like, + activatedIcon: BiliIcons.ic_liked, text: '点赞', count: item.wishCount, status: item.wishListen ?? false, diff --git a/lib/pages/pgc_review/child/view.dart b/lib/pages/pgc_review/child/view.dart index 3c01fe3df..28bb24c05 100644 --- a/lib/pages/pgc_review/child/view.dart +++ b/lib/pages/pgc_review/child/view.dart @@ -1,8 +1,8 @@ import 'package:PiliPlus/common/skeleton/video_reply.dart'; import 'package:PiliPlus/common/style.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/dialog/dialog.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart'; import 'package:PiliPlus/common/widgets/sliver/sliver_floating_header.dart'; @@ -262,13 +262,13 @@ class _PgcReviewChildPageState extends State (index) { if (index <= item.score - 1) { return const Icon( - CustomIcons.star_favorite_solid, + BiliIcons.star_favorite_solid, size: 13, color: Color(0xFFFFAD35), ); } return const Icon( - CustomIcons.star_favorite_line, + BiliIcons.star_favorite_line, size: 14, color: Colors.grey, ); @@ -349,9 +349,7 @@ class _PgcReviewChildPageState extends State spacing: 4, children: [ Icon( - isLike - ? FontAwesomeIcons.solidThumbsUp - : FontAwesomeIcons.thumbsUp, + isLike ? BiliIcons.ic_liked : BiliIcons.ic_like, size: 16, color: isLike ? primary : color, ), diff --git a/lib/pages/pgc_review/post/view.dart b/lib/pages/pgc_review/post/view.dart index 0e908f815..d3391c8dc 100644 --- a/lib/pages/pgc_review/post/view.dart +++ b/lib/pages/pgc_review/post/view.dart @@ -1,4 +1,4 @@ -import 'package:PiliPlus/common/widgets/custom_icon.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/http/pgc.dart'; import 'package:PiliPlus/utils/accounts.dart'; import 'package:flutter/material.dart'; @@ -96,12 +96,12 @@ class _PgcReviewPostPanelState extends State { return Obx( () => index <= _score.value - 1 ? const Icon( - CustomIcons.star_favorite_solid, + BiliIcons.star_favorite_solid, size: 50, color: Color(0xFFFFAD35), ) : const Icon( - CustomIcons.star_favorite_line, + BiliIcons.star_favorite_line, size: 50, color: Colors.grey, ), diff --git a/lib/pages/setting/models/extra_settings.dart b/lib/pages/setting/models/extra_settings.dart index de75269d4..8debc8068 100644 --- a/lib/pages/setting/models/extra_settings.dart +++ b/lib/pages/setting/models/extra_settings.dart @@ -1,9 +1,9 @@ import 'dart:io' show Platform; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; import 'package:PiliPlus/common/widgets/gesture/horizontal_drag_gesture_recognizer.dart' show deviceTouchSlop, touchSlopH; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/image_grid/image_grid_view.dart' show ImageGridView; import 'package:PiliPlus/http/fav.dart'; diff --git a/lib/pages/setting/models/play_settings.dart b/lib/pages/setting/models/play_settings.dart index a815eb90d..e789823bc 100644 --- a/lib/pages/setting/models/play_settings.dart +++ b/lib/pages/setting/models/play_settings.dart @@ -1,6 +1,6 @@ import 'dart:io' show Platform; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/pages/setting/models/model.dart'; import 'package:PiliPlus/pages/setting/widgets/slider_dialog.dart'; import 'package:PiliPlus/plugin/pl_player/models/play_repeat.dart'; @@ -17,7 +17,7 @@ List get playSettings => [ const SwitchModel( title: '弹幕开关', subtitle: '是否展示弹幕', - leading: Icon(CustomIcons.dm_settings), + leading: Icon(BiliIcons.danmaku_settings), setKey: SettingBoxKey.enableShowDanmaku, defaultVal: true, ), diff --git a/lib/pages/video/introduction/pgc/view.dart b/lib/pages/video/introduction/pgc/view.dart index 400234fd4..fb4aa43cb 100644 --- a/lib/pages/video/introduction/pgc/view.dart +++ b/lib/pages/video/introduction/pgc/view.dart @@ -3,8 +3,8 @@ import 'dart:math'; import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/widgets/badge.dart'; import 'package:PiliPlus/common/widgets/button/icon_button.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/dialog/dialog.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/image_viewer/hero.dart'; import 'package:PiliPlus/common/widgets/stat/stat.dart'; @@ -395,8 +395,7 @@ class _PgcIntroPageState extends State { Obx( () => ActionItem( animation: introController.tripleAnimation, - icon: const Icon(FontAwesomeIcons.thumbsUp), - selectIcon: const Icon(FontAwesomeIcons.solidThumbsUp), + icon: const Icon(BiliIcons.ugcvideo_ic_like), selectStatus: introController.hasLike.value, text: NumUtils.numFormat(item.stat!.like), onStartTriple: introController.onStartTriple, @@ -406,8 +405,7 @@ class _PgcIntroPageState extends State { Obx( () => ActionItem( animation: introController.tripleAnimation, - icon: const Icon(FontAwesomeIcons.b), - selectIcon: const Icon(FontAwesomeIcons.b), + icon: const Icon(BiliIcons.ugcvideo_ic_coin, size: 20), onTap: introController.actionCoinVideo, selectStatus: introController.hasCoin, text: NumUtils.numFormat(item.stat!.coin), @@ -416,8 +414,7 @@ class _PgcIntroPageState extends State { Obx( () => ActionItem( animation: introController.tripleAnimation, - icon: const Icon(FontAwesomeIcons.star), - selectIcon: const Icon(FontAwesomeIcons.solidStar), + icon: const Icon(BiliIcons.ugcvideo_ic_favorite), onTap: () => introController.showFavBottomSheet(context), onLongPress: () => introController.showFavBottomSheet( context, @@ -428,14 +425,13 @@ class _PgcIntroPageState extends State { ), ), ActionItem( - icon: const Icon(CustomIcons.download), + icon: const Icon(BiliIcons.ugcvideo_ic_offline), onTap: () => videoDetailCtr.onDownload(context), text: '缓存', ), Obx( () => ActionItem( - icon: const Icon(FontAwesomeIcons.clock), - selectIcon: const Icon(FontAwesomeIcons.solidClock), + icon: const Icon(FontAwesomeIcons.solidClock, size: 19), onTap: () => introController.handleAction(introController.viewLater), selectStatus: introController.hasLater.value, @@ -443,7 +439,7 @@ class _PgcIntroPageState extends State { ), ), ActionItem( - icon: const Icon(FontAwesomeIcons.shareFromSquare), + icon: const Icon(BiliIcons.ugcvideo_ic_share), onTap: () => introController.actionShareVideo(context), selectStatus: false, text: NumUtils.numFormat(item.stat!.share), diff --git a/lib/pages/video/introduction/ugc/view.dart b/lib/pages/video/introduction/ugc/view.dart index 57d773ea2..534c9ba16 100644 --- a/lib/pages/video/introduction/ugc/view.dart +++ b/lib/pages/video/introduction/ugc/view.dart @@ -1,8 +1,8 @@ import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/style.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/dialog/dialog.dart'; import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/pendant_avatar.dart'; import 'package:PiliPlus/common/widgets/scroll_physics.dart'; @@ -515,8 +515,7 @@ class _UgcIntroPanelState extends State { Obx( () => ActionItem( animation: introController.tripleAnimation, - icon: const Icon(FontAwesomeIcons.thumbsUp), - selectIcon: const Icon(FontAwesomeIcons.solidThumbsUp), + icon: const Icon(BiliIcons.ugcvideo_ic_like), selectStatus: introController.hasLike.value, text: !isLoading ? NumUtils.numFormat(videoDetail.stat!.like) @@ -527,8 +526,7 @@ class _UgcIntroPanelState extends State { ), Obx( () => ActionItem( - icon: const Icon(FontAwesomeIcons.thumbsDown), - selectIcon: const Icon(FontAwesomeIcons.solidThumbsDown), + icon: const Icon(BiliIcons.ugcvideo_ic_dislike), onTap: () => introController.handleAction( introController.actionDislikeVideo, ), @@ -539,8 +537,7 @@ class _UgcIntroPanelState extends State { Obx( () => ActionItem( animation: introController.tripleAnimation, - icon: const Icon(FontAwesomeIcons.b), - selectIcon: const Icon(FontAwesomeIcons.b), + icon: const Icon(BiliIcons.ugcvideo_ic_coin, size: 20), onTap: introController.actionCoinVideo, selectStatus: introController.hasCoin, text: !isLoading @@ -551,8 +548,7 @@ class _UgcIntroPanelState extends State { Obx( () => ActionItem( animation: introController.tripleAnimation, - icon: const Icon(FontAwesomeIcons.star), - selectIcon: const Icon(FontAwesomeIcons.solidStar), + icon: const Icon(BiliIcons.ugcvideo_ic_favorite), onTap: () => introController.showFavBottomSheet(context), onLongPress: () => introController.showFavBottomSheet( context, @@ -565,14 +561,13 @@ class _UgcIntroPanelState extends State { ), ), ActionItem( - icon: const Icon(CustomIcons.download), + icon: const Icon(BiliIcons.ugcvideo_ic_offline), onTap: () => videoDetailCtr.onDownload(context), text: '缓存', ), Obx( () => ActionItem( - icon: const Icon(FontAwesomeIcons.clock), - selectIcon: const Icon(FontAwesomeIcons.solidClock), + icon: const Icon(FontAwesomeIcons.solidClock, size: 19), onTap: () => introController.handleAction(introController.viewLater), selectStatus: introController.hasLater.value, @@ -580,7 +575,7 @@ class _UgcIntroPanelState extends State { ), ), ActionItem( - icon: const Icon(FontAwesomeIcons.shareFromSquare), + icon: const Icon(BiliIcons.ugcvideo_ic_share), onTap: () => introController.actionShareVideo(context), selectStatus: false, text: !isLoading diff --git a/lib/pages/video/introduction/ugc/widgets/action_item.dart b/lib/pages/video/introduction/ugc/widgets/action_item.dart index 2a1ea45a1..f85e1e57b 100644 --- a/lib/pages/video/introduction/ugc/widgets/action_item.dart +++ b/lib/pages/video/introduction/ugc/widgets/action_item.dart @@ -7,7 +7,6 @@ class ActionItem extends StatelessWidget { const ActionItem({ super.key, required this.icon, - this.selectIcon, this.onTap, this.onLongPress, this.text, @@ -16,11 +15,9 @@ class ActionItem extends StatelessWidget { this.animation, this.onStartTriple, this.onCancelTriple, - }) : assert(!selectStatus || selectIcon != null), - _isThumbsUp = onStartTriple != null; + }) : _isThumbsUp = onStartTriple != null; final Icon icon; - final Icon? selectIcon; final VoidCallback? onTap; final VoidCallback? onLongPress; final String? text; @@ -39,8 +36,8 @@ class ActionItem extends StatelessWidget { ? colorScheme.inversePrimary : colorScheme.primary; Widget child = Icon( - selectStatus ? selectIcon!.icon! : icon.icon, - size: 18, + icon.icon, + size: icon.size ?? 20.5, color: selectStatus ? primary : icon.color ?? colorScheme.outline, ); @@ -51,8 +48,12 @@ class ActionItem extends StatelessWidget { children: [ AnimatedBuilder( animation: animation!, - builder: (context, child) => - Arc(size: 28, color: primary, progress: -animation!.value), + builder: (context, child) => Arc( + size: 28, + color: primary, + progress: -animation!.value, + strokeWidth: 1.6, + ), ), child, ], diff --git a/lib/pages/video/reply/widgets/reply_item_grpc.dart b/lib/pages/video/reply/widgets/reply_item_grpc.dart index 1c1d74350..67a4350f8 100644 --- a/lib/pages/video/reply/widgets/reply_item_grpc.dart +++ b/lib/pages/video/reply/widgets/reply_item_grpc.dart @@ -4,11 +4,11 @@ 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/report.dart'; import 'package:PiliPlus/common/widgets/extra_hit_test_widget.dart'; import 'package:PiliPlus/common/widgets/flutter/text/text.dart' as custom_text; import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart'; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/image_grid/image_grid_view.dart'; import 'package:PiliPlus/common/widgets/pendant_avatar.dart'; diff --git a/lib/pages/video/reply/widgets/zan_grpc.dart b/lib/pages/video/reply/widgets/zan_grpc.dart index cb718ff41..283bdf138 100644 --- a/lib/pages/video/reply/widgets/zan_grpc.dart +++ b/lib/pages/video/reply/widgets/zan_grpc.dart @@ -1,3 +1,4 @@ +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart' show ReplyInfo; import 'package:PiliPlus/http/reply.dart'; @@ -6,7 +7,6 @@ import 'package:easy_debounce/easy_throttle.dart'; import 'package:fixnum/fixnum.dart' as $fixnum; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; class ZanButtonGrpc extends StatelessWidget { const ZanButtonGrpc({ @@ -130,9 +130,7 @@ class ZanButtonGrpc extends StatelessWidget { ), ), child: Icon( - isDislike - ? FontAwesomeIcons.solidThumbsDown - : FontAwesomeIcons.thumbsDown, + isDislike ? BiliIcons.ic_disliked : BiliIcons.ic_dislike, size: 16, color: isDislike ? primary : outline, semanticLabel: isDislike ? '已踩' : '点踩', @@ -158,9 +156,7 @@ class ZanButtonGrpc extends StatelessWidget { spacing: 4, children: [ Icon( - isLike - ? FontAwesomeIcons.solidThumbsUp - : FontAwesomeIcons.thumbsUp, + isLike ? BiliIcons.ic_liked : BiliIcons.ic_like, size: 16, color: isLike ? primary : outline, semanticLabel: isLike ? '已赞' : '点赞', diff --git a/lib/pages/video/reply_new/view.dart b/lib/pages/video/reply_new/view.dart index 488e1d09c..5cf69bff0 100644 --- a/lib/pages/video/reply_new/view.dart +++ b/lib/pages/video/reply_new/view.dart @@ -2,8 +2,8 @@ import 'dart:io' show File; import 'dart:math' as math; import 'package:PiliPlus/common/widgets/button/toolbar_icon_button.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/flutter/text_field/text_field.dart'; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/view_safe_area.dart'; import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart' show ReplyInfo; diff --git a/lib/pages/video/view.dart b/lib/pages/video/view.dart index 1f135f5aa..024e22094 100644 --- a/lib/pages/video/view.dart +++ b/lib/pages/video/view.dart @@ -3,8 +3,8 @@ import 'dart:math' as 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/flutter/pop_scope.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/keep_alive_wrapper.dart'; import 'package:PiliPlus/common/widgets/route_aware_mixin.dart'; @@ -1183,8 +1183,8 @@ class _VideoDetailPageVState extends State icon: Icon( size: 22, enableShowDanmaku - ? CustomIcons.dm_on - : CustomIcons.dm_off, + ? BiliIcons.danmaku_opened + : BiliIcons.danmaku_closed, color: enableShowDanmaku ? themeData.colorScheme.secondary : themeData.colorScheme.outline, diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index 76f6476cc..3b1b560bf 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -4,8 +4,9 @@ import 'dart:io' show Platform, File; import 'dart:typed_data' show Uint8List; import 'package:PiliPlus/common/constants.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/dialog/report.dart'; +import 'package:PiliPlus/common/widgets/icon/bili_icons.dart'; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/marquee.dart'; import 'package:PiliPlus/http/danmaku.dart'; import 'package:PiliPlus/http/danmaku_block.dart'; @@ -631,7 +632,7 @@ class HeaderControlState extends State Get.back(); showSetDanmaku(); }, - leading: const Icon(CustomIcons.dm_settings, size: 20), + leading: const Icon(BiliIcons.danmaku_settings, size: 20), title: const Text('弹幕设置', style: titleStyle), ), ListTile( @@ -1694,12 +1695,12 @@ class HeaderControlState extends State icon: enableShowDanmaku ? const Icon( size: 20, - CustomIcons.dm_on, + BiliIcons.danmaku_opened, color: Colors.white, ) : const Icon( size: 20, - CustomIcons.dm_off, + BiliIcons.danmaku_closed, color: Colors.white, ), ); @@ -1716,7 +1717,7 @@ class HeaderControlState extends State onPressed: showSetDanmaku, icon: const Icon( size: 20, - CustomIcons.dm_settings, + BiliIcons.danmaku_settings, color: Colors.white, ), ), @@ -1773,10 +1774,9 @@ class HeaderControlState extends State () => ActionItem( expand: false, icon: const Icon( - FontAwesomeIcons.thumbsUp, + BiliIcons.ugcvideo_ic_like, color: Colors.white, ), - selectIcon: const Icon(FontAwesomeIcons.solidThumbsUp), selectStatus: introController.hasLike.value, animation: introController.tripleAnimation, onStartTriple: () { @@ -1800,10 +1800,10 @@ class HeaderControlState extends State expand: false, animation: introController.tripleAnimation, icon: const Icon( - FontAwesomeIcons.b, + BiliIcons.ugcvideo_ic_coin, color: Colors.white, + size: 20, ), - selectIcon: const Icon(FontAwesomeIcons.b), onTap: introController.actionCoinVideo, selectStatus: introController.hasCoin, ), @@ -1817,10 +1817,9 @@ class HeaderControlState extends State expand: false, animation: introController.tripleAnimation, icon: const Icon( - FontAwesomeIcons.star, + BiliIcons.ugcvideo_ic_favorite, color: Colors.white, ), - selectIcon: const Icon(FontAwesomeIcons.solidStar), onTap: () => introController.showFavBottomSheet(context), onLongPress: () => introController.showFavBottomSheet( context, @@ -1835,7 +1834,10 @@ class HeaderControlState extends State height: btnHeight, child: ActionItem( expand: false, - icon: const Icon(CustomIcons.download, color: Colors.white), + icon: const Icon( + BiliIcons.ugcvideo_ic_offline, + color: Colors.white, + ), onTap: () => videoDetailCtr.onDownload(context), ), ), @@ -1845,7 +1847,7 @@ class HeaderControlState extends State child: ActionItem( expand: false, icon: const Icon( - FontAwesomeIcons.shareFromSquare, + BiliIcons.ugcvideo_ic_share, color: Colors.white, ), onTap: () => introController.actionShareVideo(context), diff --git a/lib/plugin/pl_player/view/view.dart b/lib/plugin/pl_player/view/view.dart index 60beb9223..1385bc48a 100644 --- a/lib/plugin/pl_player/view/view.dart +++ b/lib/plugin/pl_player/view/view.dart @@ -7,10 +7,10 @@ import 'package:PiliPlus/common/assets.dart'; import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/style.dart'; import 'package:PiliPlus/common/widgets/cropped_image.dart'; -import 'package:PiliPlus/common/widgets/custom_icon.dart'; import 'package:PiliPlus/common/widgets/disabled_icon.dart'; import 'package:PiliPlus/common/widgets/gesture/mouse_interactive_viewer.dart'; import 'package:PiliPlus/common/widgets/gesture/player_gesture_recognizer.dart'; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/common/widgets/pair.dart'; import 'package:PiliPlus/common/widgets/player_bar.dart'; import 'package:PiliPlus/common/widgets/progress_bar/audio_video_progress_bar.dart'; diff --git a/pubspec.yaml b/pubspec.yaml index a95c66159..c0026a6cb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -292,3 +292,6 @@ flutter: - family: custom_icon fonts: - asset: assets/fonts/custom_icon.ttf + - family: bili_icon + fonts: + - asset: assets/fonts/bili_icon.ttf