diff --git a/assets/fonts/bili_icon.ttf b/assets/fonts/bili_icon.ttf new file mode 100644 index 000000000..4c0de9c32 Binary files /dev/null and b/assets/fonts/bili_icon.ttf differ diff --git a/assets/fonts/custom_icon.ttf b/assets/fonts/custom_icon.ttf index 108c5011d..05adc5b1e 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 deleted file mode 100644 index b493a2f22..000000000 --- a/lib/common/widgets/custom_icon.dart +++ /dev/null @@ -1,47 +0,0 @@ -// ignore_for_file: constant_identifier_names - -import 'package:flutter/widgets.dart' show IconData; - -// dart format off -abstract final class CustomIcons { - static const _kFontFam = 'custom_icon'; - - static const IconData ai_circle = IconData(0xe800, fontFamily: _kFontFam); - static const IconData coin = IconData(0xe801, fontFamily: _kFontFam); - static const IconData dm_off = IconData(0xe802, fontFamily: _kFontFam); - static const IconData dm_on = IconData(0xe803, fontFamily: _kFontFam); - static const IconData dm_settings = IconData(0xe804, fontFamily: _kFontFam); - static const IconData download = IconData(0xe805, fontFamily: _kFontFam); - static const IconData dyn = IconData(0xe806, fontFamily: _kFontFam); - static const IconData fav = IconData(0xe807, fontFamily: _kFontFam); - static const IconData flip_rotate_90 = IconData(0xe808, fontFamily: _kFontFam); - static const IconData identifier_circle = IconData(0xe809, fontFamily: _kFontFam); - static const IconData live_reserve = IconData(0xe80a, fontFamily: _kFontFam); - static const IconData open_in_full_rotate_45 = IconData(0xe80b, fontFamily: _kFontFam); - static const IconData player_dm_tip_back = IconData(0xe80c, fontFamily: _kFontFam); - static const IconData player_dm_tip_copy = IconData(0xe80d, fontFamily: _kFontFam); - static const IconData player_dm_tip_like = IconData(0xe80e, fontFamily: _kFontFam); - static const IconData player_dm_tip_like_solid = IconData(0xe80f, fontFamily: _kFontFam); - static const IconData player_dm_tip_recall = IconData(0xe810, fontFamily: _kFontFam); - static const IconData repeat_rounded_rotate_90 = IconData(0xe811, fontFamily: _kFontFam); - static const IconData share = IconData(0xe812, fontFamily: _kFontFam); - static const IconData share_line = IconData(0xe813, fontFamily: _kFontFam); - static const IconData share_node = IconData(0xe814, fontFamily: _kFontFam); - static const IconData shield_play_arrow = IconData(0xe815, fontFamily: _kFontFam); - static const IconData shield_published = IconData(0xe816, fontFamily: _kFontFam); - static const IconData shield_reply = IconData(0xe817, fontFamily: _kFontFam); - static const IconData shopping_bag_not_interested = IconData(0xe818, fontFamily: _kFontFam); - static const IconData splitscreen_rotate_90 = IconData(0xe819, fontFamily: _kFontFam); - static const IconData star_favorite_line = IconData(0xe81a, fontFamily: _kFontFam); - static const IconData star_favorite_solid = IconData(0xe81b, fontFamily: _kFontFam); - static const IconData thumbs_down = IconData(0xe81c, fontFamily: _kFontFam); - static const IconData thumbs_down_outline = IconData(0xe81d, fontFamily: _kFontFam); - static const IconData thumbs_up = IconData(0xe81e, fontFamily: _kFontFam); - static const IconData thumbs_up_fill = IconData(0xe81f, fontFamily: _kFontFam); - static const IconData thumbs_up_line = IconData(0xe820, fontFamily: _kFontFam); - static const IconData thumbs_up_outline = IconData(0xe821, fontFamily: _kFontFam); - static const IconData topic_tag = IconData(0xe822, fontFamily: _kFontFam); - static const IconData touch_app_rotate_270 = IconData(0xe823, fontFamily: _kFontFam); - static const IconData view_headline_rotate_90 = IconData(0xe824, fontFamily: _kFontFam); - static const IconData watch_later = IconData(0xe825, fontFamily: _kFontFam); -} diff --git a/lib/common/widgets/icon/bili_icons.dart b/lib/common/widgets/icon/bili_icons.dart new file mode 100644 index 000000000..7aba12e2e --- /dev/null +++ b/lib/common/widgets/icon/bili_icons.dart @@ -0,0 +1,31 @@ +// ignore_for_file: constant_identifier_names + +import 'package:flutter/widgets.dart' show IconData; + +// dart format off +abstract final class BiliIcons { + static const _kFontFam = 'bili_icon'; + + static const IconData danmaku_closed = IconData(0xe800, fontFamily: _kFontFam); + static const IconData danmaku_opened = IconData(0xe801, fontFamily: _kFontFam); + static const IconData danmaku_settings = IconData(0xe802, fontFamily: _kFontFam); + static const IconData ic_comment = IconData(0xe803, fontFamily: _kFontFam); + static const IconData ic_comment_filled = IconData(0xe804, fontFamily: _kFontFam); + static const IconData ic_dislike = IconData(0xe805, fontFamily: _kFontFam); + static const IconData ic_disliked = IconData(0xe806, fontFamily: _kFontFam); + static const IconData ic_favorite = IconData(0xe807, fontFamily: _kFontFam); + static const IconData ic_favorited = IconData(0xe808, fontFamily: _kFontFam); + static const IconData ic_like = IconData(0xe809, fontFamily: _kFontFam); + static const IconData ic_liked = IconData(0xe80a, fontFamily: _kFontFam); + static const IconData ic_share = IconData(0xe80b, fontFamily: _kFontFam); + static const IconData live_reserve = IconData(0xe80c, fontFamily: _kFontFam); + static const IconData star_favorite_line = IconData(0xe80d, fontFamily: _kFontFam); + static const IconData star_favorite_solid = IconData(0xe80e, fontFamily: _kFontFam); + static const IconData topic_tag = IconData(0xe80f, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_coin = IconData(0xe810, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_dislike = IconData(0xe811, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_favorite = IconData(0xe812, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_like = IconData(0xe813, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_offline = IconData(0xe814, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_share = IconData(0xe815, fontFamily: _kFontFam); +} diff --git a/lib/common/widgets/icon/custom_icons.dart b/lib/common/widgets/icon/custom_icons.dart new file mode 100644 index 000000000..bfefb1e49 --- /dev/null +++ b/lib/common/widgets/icon/custom_icons.dart @@ -0,0 +1,23 @@ +// ignore_for_file: constant_identifier_names + +import 'package:flutter/widgets.dart' show IconData; + +// dart format off +class CustomIcons { + static const _kFontFam = 'custom_icon'; + + static const IconData ai_circle = IconData(0xe800, fontFamily: _kFontFam); + static const IconData download = IconData(0xe801, fontFamily: _kFontFam); + static const IconData flip_rotate_90 = IconData(0xe802, fontFamily: _kFontFam); + static const IconData identifier_circle = IconData(0xe803, fontFamily: _kFontFam); + static const IconData open_in_full_rotate_45 = IconData(0xe804, fontFamily: _kFontFam); + static const IconData repeat_rounded_rotate_90 = IconData(0xe805, fontFamily: _kFontFam); + static const IconData share_node = IconData(0xe806, fontFamily: _kFontFam); + static const IconData shield_play_arrow = IconData(0xe807, fontFamily: _kFontFam); + static const IconData shield_published = IconData(0xe808, fontFamily: _kFontFam); + static const IconData shield_reply = IconData(0xe809, fontFamily: _kFontFam); + static const IconData shopping_bag_not_interested = IconData(0xe80a, fontFamily: _kFontFam); + static const IconData splitscreen_rotate_90 = IconData(0xe80b, fontFamily: _kFontFam); + static const IconData touch_app_rotate_270 = IconData(0xe80c, fontFamily: _kFontFam); + static const IconData view_headline_rotate_90 = IconData(0xe80d, fontFamily: _kFontFam); +} diff --git a/lib/common/widgets/video_popup_menu.dart b/lib/common/widgets/video_popup_menu.dart index 2f1e674bb..204ec670b 100644 --- a/lib/common/widgets/video_popup_menu.dart +++ b/lib/common/widgets/video_popup_menu.dart @@ -1,4 +1,4 @@ -import 'package:PiliPlus/common/widgets/custom_icon.dart'; +import 'package:PiliPlus/common/widgets/icon/custom_icons.dart'; import 'package:PiliPlus/http/user.dart'; import 'package:PiliPlus/http/video.dart'; import 'package:PiliPlus/models/common/account_type.dart'; diff --git a/lib/pages/article/view.dart b/lib/pages/article/view.dart index bc592ce0f..df07660ef 100644 --- a/lib/pages/article/view.dart +++ b/lib/pages/article/view.dart @@ -1,8 +1,9 @@ import 'dart: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/scaffold.dart'; import 'package:PiliPlus/common/widgets/scroll_physics.dart'; @@ -26,7 +27,6 @@ import 'package:PiliPlus/utils/utils.dart'; import 'package:cached_network_image_ce/cached_network_image.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:html/parser.dart' as parser; @@ -587,7 +587,7 @@ class _ArticlePageState extends CommonDynPageState { 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