diff --git a/assets/fonts/custom_icon.ttf b/assets/fonts/custom_icon.ttf index f7e4a4eac..108c5011d 100644 Binary files a/assets/fonts/custom_icon.ttf and b/assets/fonts/custom_icon.ttf differ diff --git a/lib/common/widgets/custom_icon.dart b/lib/common/widgets/custom_icon.dart index 00117db15..b493a2f22 100644 --- a/lib/common/widgets/custom_icon.dart +++ b/lib/common/widgets/custom_icon.dart @@ -11,36 +11,37 @@ abstract final class CustomIcons { 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 dyn = IconData(0xe805, fontFamily: _kFontFam); - static const IconData fav = IconData(0xe806, fontFamily: _kFontFam); - static const IconData flip_rotate_90 = IconData(0xe807, fontFamily: _kFontFam); - static const IconData identifier_circle = IconData(0xe808, fontFamily: _kFontFam); - static const IconData live_reserve = IconData(0xe809, fontFamily: _kFontFam); - static const IconData open_in_full_rotate_45 = IconData(0xe80a, fontFamily: _kFontFam); - static const IconData player_dm_tip_back = IconData(0xe80b, fontFamily: _kFontFam); - static const IconData player_dm_tip_copy = IconData(0xe80c, fontFamily: _kFontFam); - static const IconData player_dm_tip_like = IconData(0xe80d, fontFamily: _kFontFam); - static const IconData player_dm_tip_like_solid = IconData(0xe80e, fontFamily: _kFontFam); - static const IconData player_dm_tip_recall = IconData(0xe80f, fontFamily: _kFontFam); - static const IconData repeat_rounded_rotate_90 = IconData(0xe810, fontFamily: _kFontFam); - static const IconData share = IconData(0xe811, fontFamily: _kFontFam); - static const IconData share_line = IconData(0xe812, fontFamily: _kFontFam); - static const IconData share_node = IconData(0xe813, fontFamily: _kFontFam); - static const IconData shield_play_arrow = IconData(0xe814, fontFamily: _kFontFam); - static const IconData shield_published = IconData(0xe815, fontFamily: _kFontFam); - static const IconData shield_reply = IconData(0xe816, fontFamily: _kFontFam); - static const IconData shopping_bag_not_interested = IconData(0xe817, fontFamily: _kFontFam); - static const IconData splitscreen_rotate_90 = IconData(0xe818, fontFamily: _kFontFam); - static const IconData star_favorite_line = IconData(0xe819, fontFamily: _kFontFam); - static const IconData star_favorite_solid = IconData(0xe81a, fontFamily: _kFontFam); - static const IconData thumbs_down = IconData(0xe81b, fontFamily: _kFontFam); - static const IconData thumbs_down_outline = IconData(0xe81c, fontFamily: _kFontFam); - static const IconData thumbs_up = IconData(0xe81d, fontFamily: _kFontFam); - static const IconData thumbs_up_fill = IconData(0xe81e, fontFamily: _kFontFam); - static const IconData thumbs_up_line = IconData(0xe81f, fontFamily: _kFontFam); - static const IconData thumbs_up_outline = IconData(0xe820, fontFamily: _kFontFam); - static const IconData topic_tag = IconData(0xe821, fontFamily: _kFontFam); - static const IconData touch_app_rotate_270 = IconData(0xe822, fontFamily: _kFontFam); - static const IconData view_headline_rotate_90 = IconData(0xe823, fontFamily: _kFontFam); - static const IconData watch_later = IconData(0xe824, 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/pages/video/introduction/pgc/view.dart b/lib/pages/video/introduction/pgc/view.dart index f7e6134c8..400234fd4 100644 --- a/lib/pages/video/introduction/pgc/view.dart +++ b/lib/pages/video/introduction/pgc/view.dart @@ -3,6 +3,7 @@ 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/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/image_viewer/hero.dart'; @@ -426,6 +427,11 @@ class _PgcIntroPageState extends State { text: NumUtils.numFormat(item.stat!.favorite), ), ), + ActionItem( + icon: const Icon(CustomIcons.download), + onTap: () => videoDetailCtr.onDownload(context), + text: '缓存', + ), Obx( () => ActionItem( icon: const Icon(FontAwesomeIcons.clock), diff --git a/lib/pages/video/introduction/ugc/view.dart b/lib/pages/video/introduction/ugc/view.dart index 4c130e92b..3e288eeec 100644 --- a/lib/pages/video/introduction/ugc/view.dart +++ b/lib/pages/video/introduction/ugc/view.dart @@ -1,5 +1,6 @@ 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/image/network_img_layer.dart'; @@ -524,17 +525,17 @@ class _UgcIntroPanelState extends State { onCancelTriple: introController.onCancelTriple, ), ), - Obx( - () => ActionItem( - icon: const Icon(FontAwesomeIcons.thumbsDown), - selectIcon: const Icon(FontAwesomeIcons.solidThumbsDown), - onTap: () => introController.handleAction( - introController.actionDislikeVideo, - ), - selectStatus: introController.hasDislike.value, - text: "点踩", - ), - ), + // Obx( + // () => ActionItem( + // icon: const Icon(FontAwesomeIcons.thumbsDown), + // selectIcon: const Icon(FontAwesomeIcons.solidThumbsDown), + // onTap: () => introController.handleAction( + // introController.actionDislikeVideo, + // ), + // selectStatus: introController.hasDislike.value, + // text: "点踩", + // ), + // ), Obx( () => ActionItem( animation: introController.tripleAnimation, @@ -563,6 +564,11 @@ class _UgcIntroPanelState extends State { : null, ), ), + ActionItem( + icon: const Icon(CustomIcons.download), + onTap: () => videoDetailCtr.onDownload(context), + text: '缓存', + ), Obx( () => ActionItem( icon: const Icon(FontAwesomeIcons.clock), diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index 1e121d08a..76f6476cc 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -1830,6 +1830,15 @@ class HeaderControlState extends State ), ), ), + SizedBox( + width: btnWidth, + height: btnHeight, + child: ActionItem( + expand: false, + icon: const Icon(CustomIcons.download, color: Colors.white), + onTap: () => videoDetailCtr.onDownload(context), + ), + ), SizedBox( width: btnWidth, height: btnHeight,