From 14aac2870d1495e18e363ea5f61ef5a21b28eda5 Mon Sep 17 00:00:00 2001 From: dom Date: Wed, 17 Jun 2026 21:55:23 +0800 Subject: [PATCH] update icons Signed-off-by: dom --- assets/fonts/bili_icon.ttf | Bin 11664 -> 14152 bytes lib/common/widgets/icon/bili_icons.dart | 24 +++-- lib/pages/pgc_review/child/view.dart | 9 +- lib/pages/pgc_review/post/view.dart | 4 +- lib/pages/video/widgets/header_control.dart | 107 +++++++++++--------- 5 files changed, 82 insertions(+), 62 deletions(-) diff --git a/assets/fonts/bili_icon.ttf b/assets/fonts/bili_icon.ttf index 4c0de9c326fddb100d133feba7ecf7e4f57e2179..a0be6a0601580ddd1d0775daa4355064a9255b6b 100644 GIT binary patch delta 3700 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 diff --git a/lib/common/widgets/icon/bili_icons.dart b/lib/common/widgets/icon/bili_icons.dart index 7aba12e2e..4cd0c07c5 100644 --- a/lib/common/widgets/icon/bili_icons.dart +++ b/lib/common/widgets/icon/bili_icons.dart @@ -19,13 +19,19 @@ abstract final class BiliIcons { 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); + static const IconData topbar_coin = IconData(0xe80d, fontFamily: _kFontFam); + static const IconData topbar_coined = IconData(0xe80e, fontFamily: _kFontFam); + static const IconData topbar_favorite = IconData(0xe80f, fontFamily: _kFontFam); + static const IconData topbar_favorited = IconData(0xe810, fontFamily: _kFontFam); + static const IconData topbar_like = IconData(0xe811, fontFamily: _kFontFam); + static const IconData topbar_liked = IconData(0xe812, fontFamily: _kFontFam); + static const IconData topbar_share = IconData(0xe813, fontFamily: _kFontFam); + static const IconData topic_tag = IconData(0xe814, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_coin = IconData(0xe815, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_dislike = IconData(0xe816, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_favorite = IconData(0xe817, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_like = IconData(0xe818, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_offline = IconData(0xe819, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_offline_outline = IconData(0xe81a, fontFamily: _kFontFam); + static const IconData ugcvideo_ic_share = IconData(0xe81b, fontFamily: _kFontFam); } diff --git a/lib/pages/pgc_review/child/view.dart b/lib/pages/pgc_review/child/view.dart index 28bb24c05..ba63ea2e7 100644 --- a/lib/pages/pgc_review/child/view.dart +++ b/lib/pages/pgc_review/child/view.dart @@ -18,7 +18,6 @@ import 'package:PiliPlus/utils/extension/theme_ext.dart'; import 'package:PiliPlus/utils/num_utils.dart'; import 'package:PiliPlus/utils/platform_utils.dart'; import 'package:flutter/material.dart'; -import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; class PgcReviewChildPage extends StatefulWidget { @@ -262,13 +261,13 @@ class _PgcReviewChildPageState extends State (index) { if (index <= item.score - 1) { return const Icon( - BiliIcons.star_favorite_solid, + BiliIcons.ic_favorited, size: 13, color: Color(0xFFFFAD35), ); } return const Icon( - BiliIcons.star_favorite_line, + BiliIcons.ic_favorite, size: 14, color: Colors.grey, ); @@ -327,8 +326,8 @@ class _PgcReviewChildPageState extends State ), child: Icon( isDislike - ? FontAwesomeIcons.solidThumbsDown - : FontAwesomeIcons.thumbsDown, + ? BiliIcons.ic_disliked + : BiliIcons.ic_dislike, size: 16, color: isDislike ? primary : color, ), diff --git a/lib/pages/pgc_review/post/view.dart b/lib/pages/pgc_review/post/view.dart index d3391c8dc..884ed5cee 100644 --- a/lib/pages/pgc_review/post/view.dart +++ b/lib/pages/pgc_review/post/view.dart @@ -96,12 +96,12 @@ class _PgcReviewPostPanelState extends State { return Obx( () => index <= _score.value - 1 ? const Icon( - BiliIcons.star_favorite_solid, + BiliIcons.ic_favorited, size: 50, color: Color(0xFFFFAD35), ) : const Icon( - BiliIcons.star_favorite_line, + BiliIcons.ic_favorite, size: 50, color: Colors.grey, ), diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index 3b1b560bf..c0f01c1cd 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -1771,62 +1771,77 @@ class HeaderControlState extends State width: btnWidth, height: btnHeight, child: Obx( - () => ActionItem( - expand: false, - icon: const Icon( - BiliIcons.ugcvideo_ic_like, - color: Colors.white, - ), - selectStatus: introController.hasLike.value, - animation: introController.tripleAnimation, - onStartTriple: () { - plPlayerController.tripling = true; - introController.onStartTriple(); - }, - onCancelTriple: ([bool isTapUp = false]) { - plPlayerController - ..tripling = false - ..hideTaskControls(); - introController.onCancelTriple(isTapUp); - }, - ), + () { + final hasLike = introController.hasLike.value; + return ActionItem( + expand: false, + icon: hasLike + ? const Icon(BiliIcons.topbar_liked) + : const Icon( + BiliIcons.topbar_like, + color: Colors.white, + ), + selectStatus: hasLike, + animation: introController.tripleAnimation, + onStartTriple: () { + plPlayerController.tripling = true; + introController.onStartTriple(); + }, + onCancelTriple: ([bool isTapUp = false]) { + plPlayerController + ..tripling = false + ..hideTaskControls(); + introController.onCancelTriple(isTapUp); + }, + ); + }, ), ), SizedBox( width: btnWidth, height: btnHeight, child: Obx( - () => ActionItem( - expand: false, - animation: introController.tripleAnimation, - icon: const Icon( - BiliIcons.ugcvideo_ic_coin, - color: Colors.white, - size: 20, - ), - onTap: introController.actionCoinVideo, - selectStatus: introController.hasCoin, - ), + () { + final hasCoin = introController.hasCoin; + return ActionItem( + expand: false, + animation: introController.tripleAnimation, + icon: hasCoin + ? const Icon(BiliIcons.topbar_coined) + : const Icon( + BiliIcons.topbar_coin, + color: Colors.white, + ), + onTap: introController.actionCoinVideo, + selectStatus: hasCoin, + ); + }, ), ), SizedBox( width: btnWidth, height: btnHeight, child: Obx( - () => ActionItem( - expand: false, - animation: introController.tripleAnimation, - icon: const Icon( - BiliIcons.ugcvideo_ic_favorite, - color: Colors.white, - ), - onTap: () => introController.showFavBottomSheet(context), - onLongPress: () => introController.showFavBottomSheet( - context, - isLongPress: true, - ), - selectStatus: introController.hasFav.value, - ), + () { + final hasFav = introController.hasFav.value; + return ActionItem( + expand: false, + animation: introController.tripleAnimation, + icon: hasFav + ? const Icon(BiliIcons.topbar_favorited) + : const Icon( + BiliIcons.topbar_favorite, + color: Colors.white, + ), + onTap: () => + introController.showFavBottomSheet(context), + onLongPress: () => introController.showFavBottomSheet( + context, + isLongPress: true, + ), + selectStatus: hasFav, + ); + }, ), ), SizedBox( @@ -1835,7 +1850,7 @@ class HeaderControlState extends State child: ActionItem( expand: false, icon: const Icon( - BiliIcons.ugcvideo_ic_offline, + BiliIcons.ugcvideo_ic_offline_outline, color: Colors.white, ), onTap: () => videoDetailCtr.onDownload(context), @@ -1847,7 +1862,7 @@ class HeaderControlState extends State child: ActionItem( expand: false, icon: const Icon( - BiliIcons.ugcvideo_ic_share, + BiliIcons.topbar_share, color: Colors.white, ), onTap: () => introController.actionShareVideo(context),