diff --git a/lib/pages/bangumi/widgets/bangumi_card_v.dart b/lib/pages/bangumi/widgets/bangumi_card_v.dart index 45273844..47647f81 100644 --- a/lib/pages/bangumi/widgets/bangumi_card_v.dart +++ b/lib/pages/bangumi/widgets/bangumi_card_v.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/common/widgets/image_save.dart'; import 'package:flutter/material.dart'; import 'package:PiliPalaX/common/constants.dart'; import 'package:PiliPalaX/common/widgets/badge.dart'; @@ -30,6 +31,11 @@ class BangumiCardV extends StatelessWidget { // longPressEnd!(); // } // }, + onLongPress: () => imageSaveDialog( + context: context, + title: bangumiItem.title, + cover: bangumiItem.cover, + ), child: InkWell( onTap: () async { final int seasonId = bangumiItem.seasonId; diff --git a/lib/pages/bangumi/widgets/bangumi_card_v_member_home.dart b/lib/pages/bangumi/widgets/bangumi_card_v_member_home.dart index 3d9e0b18..87bdf43e 100644 --- a/lib/pages/bangumi/widgets/bangumi_card_v_member_home.dart +++ b/lib/pages/bangumi/widgets/bangumi_card_v_member_home.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/common/widgets/image_save.dart'; import 'package:PiliPalaX/models/space_archive/item.dart'; import 'package:flutter/material.dart'; import 'package:PiliPalaX/common/constants.dart'; @@ -63,6 +64,11 @@ class BangumiCardVMemberHome extends StatelessWidget { // } // }); }, + onLongPress: () => imageSaveDialog( + context: context, + title: bangumiItem.title, + cover: bangumiItem.cover, + ), child: Column( children: [ ClipRRect( diff --git a/lib/pages/search_panel/widgets/article_panel.dart b/lib/pages/search_panel/widgets/article_panel.dart index 495e22fd..b70e39cb 100644 --- a/lib/pages/search_panel/widgets/article_panel.dart +++ b/lib/pages/search_panel/widgets/article_panel.dart @@ -1,4 +1,5 @@ import 'package:PiliPalaX/common/widgets/http_error.dart'; +import 'package:PiliPalaX/common/widgets/image_save.dart'; import 'package:PiliPalaX/common/widgets/loading_widget.dart'; import 'package:PiliPalaX/http/loading_state.dart'; import 'package:PiliPalaX/pages/search/widgets/search_text.dart'; @@ -103,6 +104,14 @@ Widget searchArticlePanel(context, searchPanelCtr, LoadingState loadingState) { 'dynamicType': 'read' }); }, + onLongPress: () => imageSaveDialog( + context: context, + title: (loadingState.response[index].title as List?) + ?.map((item) => item['text']) + .join() ?? + '', + cover: loadingState.response[index].imageUrls.first, + ), child: Padding( padding: const EdgeInsets.symmetric( horizontal: StyleString.safeSpace, diff --git a/lib/pages/search_panel/widgets/live_panel.dart b/lib/pages/search_panel/widgets/live_panel.dart index 645f9960..a37fc28c 100644 --- a/lib/pages/search_panel/widgets/live_panel.dart +++ b/lib/pages/search_panel/widgets/live_panel.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/common/widgets/image_save.dart'; import 'package:PiliPalaX/common/widgets/loading_widget.dart'; import 'package:PiliPalaX/http/loading_state.dart'; import 'package:flutter/material.dart'; @@ -62,6 +63,13 @@ class LiveItem extends StatelessWidget { Get.toNamed('/liveRoom?roomid=${liveItem.roomid}', arguments: {'liveItem': liveItem, 'heroTag': heroTag}); }, + onLongPress: () => imageSaveDialog( + context: context, + title: + (liveItem.title as List?)?.map((item) => item['text']).join() ?? + '', + cover: liveItem.cover, + ), child: Column( children: [ ClipRRect( diff --git a/lib/pages/search_panel/widgets/media_bangumi_panel.dart b/lib/pages/search_panel/widgets/media_bangumi_panel.dart index 49ff7d1e..5333de35 100644 --- a/lib/pages/search_panel/widgets/media_bangumi_panel.dart +++ b/lib/pages/search_panel/widgets/media_bangumi_panel.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/common/widgets/image_save.dart'; import 'package:PiliPalaX/common/widgets/loading_widget.dart'; import 'package:PiliPalaX/http/loading_state.dart'; import 'package:flutter/material.dart'; @@ -36,6 +37,14 @@ Widget searchBangumiPanel(context, ctr, LoadingState loadingState) { onTap: () { Utils.viewBangumi(seasonId: i.seasonId); }, + onLongPress: () => imageSaveDialog( + context: context, + title: (i.title as List?) + ?.map((item) => item['text']) + .join() ?? + '', + cover: i.cover, + ), child: Padding( padding: const EdgeInsets.symmetric( horizontal: StyleString.safeSpace, diff --git a/lib/pages/subscription/widgets/item.dart b/lib/pages/subscription/widgets/item.dart index 8397868b..ca2079fa 100644 --- a/lib/pages/subscription/widgets/item.dart +++ b/lib/pages/subscription/widgets/item.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/common/widgets/image_save.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:PiliPalaX/common/constants.dart'; @@ -27,6 +28,11 @@ class SubItem extends StatelessWidget { 'id': subFolderItem.id.toString(), }, ), + onLongPress: () => imageSaveDialog( + context: context, + title: subFolderItem.title, + cover: subFolderItem.cover, + ), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 5), child: LayoutBuilder( diff --git a/lib/pages/subscription_detail/widget/sub_video_card.dart b/lib/pages/subscription_detail/widget/sub_video_card.dart index 71ac4aff..0efff4a0 100644 --- a/lib/pages/subscription_detail/widget/sub_video_card.dart +++ b/lib/pages/subscription_detail/widget/sub_video_card.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/common/widgets/image_save.dart'; import 'package:get/get.dart'; import 'package:flutter/material.dart'; import 'package:PiliPalaX/common/constants.dart'; @@ -40,6 +41,11 @@ class SubVideoCardH extends StatelessWidget { 'videoType': SearchType.video, }); }, + onLongPress: () => imageSaveDialog( + context: context, + title: videoItem.title, + cover: videoItem.cover, + ), child: Padding( padding: const EdgeInsets.symmetric( horizontal: StyleString.safeSpace,