From 80d9a426a7c8f00b2a31ec13b7e90d8270e3a341 Mon Sep 17 00:00:00 2001 From: dom Date: Sun, 14 Jun 2026 16:46:47 +0800 Subject: [PATCH] add download btns Signed-off-by: dom --- assets/fonts/custom_icon.ttf | Bin 16944 -> 17392 bytes lib/common/widgets/custom_icon.dart | 65 ++++++++++---------- lib/pages/video/introduction/pgc/view.dart | 6 ++ lib/pages/video/introduction/ugc/view.dart | 28 +++++---- lib/pages/video/widgets/header_control.dart | 9 +++ 5 files changed, 65 insertions(+), 43 deletions(-) diff --git a/assets/fonts/custom_icon.ttf b/assets/fonts/custom_icon.ttf index f7e4a4eaca64a0ee844b15d5f326c2c4629d13c0..108c5011d8fe6d6202d7296376354665222c1bc3 100644 GIT binary patch delta 1280 zcmY*X|7#m%7=NGly}S1=ce%^A%Oy>gWNDgfo7$xLa%IWL=4@r7MT?cKsC2FCY_VU_ zF*i1d!f;bWgt)nh_6L6vMN1(df+G71M36xd1r?D_1c!67A8g}uVS;@g-Y?JR`S#xP zxy?&(=Q6z2-FTl6c!Lmf{M7R7+P6RaF;576nGkk%e(C&k_r71cK!|jdkl}9@PS4Ke zKfP#R?2ovd1q67FoyYr^xH1dNXU<)pYVTmZU(kMUY4y}>_EzyPLd5%MPb|-#TZ1Fe zLVpD9)XMDg=~sVhEUpn!M}TG4R$n~xb@#1NLLNSdk7yA<^ojQKxNo<2+HH2*MfQl@ zK@dIjMf=K0 zX?v%62S%C~X|QkoLC5Qab#4QAdN6sN2xJK>2&hb%d|fWc*Ojokq`s+*cqjCXe$DV08^%Ar zxBZ9xp9RhZ{tVs>^_ppOBb*BVZp~OXBbTDbyIzQSVujdtt1S7o1|#Ib=Q`vSg3N+s zfS=h}S96fo!3rlKY@ybmIP7$^4jmttI0n11g8({k9n6p!wi1|P6;mZ=xDLb4At-kO zFec}Qgi6IuwUC?58|hScr&SpX*P#Y^;Au;T1fb=X{VnVfV7ltF6t03l!nydGIU0;9 zvO-lwy)t8l1rbCo0Uj=gjN&pCL_v=3Ug$ocN)#v`%J6E1)+<$>9#koyNIYc*?Mitt z5T74!Bm|97%Dk*v-q|Ww@dCg!Au%?e&sVDB;b0)|*Qv(iY(g-V-MhPYr>jO-6hbK< zf887nba6qHE>D{g?g^+dCI-F5MH*F9D)XIB#DSDAeYB`LPhvU~1GDqQr1OBL=MnY>+}#Oduh^ z!Jr3Yh^vMmCogDXjHVumF~%5UxcHZNF!&Qi;=yn+@u0;iaB=hIdo$mBGxK)VFTsP0 zFsn`7A_T4wLb@}#bpFR{qeKXuAcSR44~-9G_Px>w;hPCb#IybBzWVk+0=1ve5?LgK zBpXM62`!Y(jgDQ@a61M5>#2YsR z3xp&1Fhs7zuZ8p_+Jh2a53r*C1Pr>L { 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,