mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: history card menu
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -61,6 +61,7 @@ Widget livePanel(item, context, {floor = 1}) {
|
|||||||
Get.toNamed('/liveRoom?roomid=${content.live?.id}');
|
Get.toNamed('/liveRoom?roomid=${content.live?.id}');
|
||||||
},
|
},
|
||||||
onLongPress: () {
|
onLongPress: () {
|
||||||
|
Feedback.forLongPress(context);
|
||||||
imageSaveDialog(
|
imageSaveDialog(
|
||||||
context: context,
|
context: context,
|
||||||
title: content.live.title,
|
title: content.live.title,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:PiliPlus/common/widgets/image_save.dart';
|
import 'package:PiliPlus/common/widgets/image_save.dart';
|
||||||
import 'package:PiliPlus/common/widgets/video_progress_indicator.dart';
|
import 'package:PiliPlus/common/widgets/video_progress_indicator.dart';
|
||||||
|
import 'package:PiliPlus/models/user/history.dart';
|
||||||
import 'package:PiliPlus/pages/common/multi_select_controller.dart';
|
import 'package:PiliPlus/pages/common/multi_select_controller.dart';
|
||||||
import 'package:PiliPlus/pages/fav_search/controller.dart';
|
import 'package:PiliPlus/pages/fav_search/controller.dart';
|
||||||
import 'package:PiliPlus/utils/app_scheme.dart';
|
import 'package:PiliPlus/utils/app_scheme.dart';
|
||||||
@@ -16,6 +17,7 @@ import 'package:PiliPlus/models/common/business_type.dart';
|
|||||||
import 'package:PiliPlus/utils/feed_back.dart';
|
import 'package:PiliPlus/utils/feed_back.dart';
|
||||||
import 'package:PiliPlus/utils/id_utils.dart';
|
import 'package:PiliPlus/utils/id_utils.dart';
|
||||||
import 'package:PiliPlus/utils/utils.dart';
|
import 'package:PiliPlus/utils/utils.dart';
|
||||||
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
class HistoryItem extends StatelessWidget {
|
class HistoryItem extends StatelessWidget {
|
||||||
final dynamic videoItem;
|
final dynamic videoItem;
|
||||||
@@ -340,59 +342,79 @@ class HistoryItem extends StatelessWidget {
|
|||||||
fontSize: Theme.of(context).textTheme.labelMedium!.fontSize,
|
fontSize: Theme.of(context).textTheme.labelMedium!.fontSize,
|
||||||
color: Theme.of(context).colorScheme.outline),
|
color: Theme.of(context).colorScheme.outline),
|
||||||
),
|
),
|
||||||
SizedBox(
|
if (videoItem is HisListItem)
|
||||||
width: 24,
|
SizedBox(
|
||||||
height: 24,
|
width: 29,
|
||||||
child: PopupMenuButton<String>(
|
height: 29,
|
||||||
padding: EdgeInsets.zero,
|
child: PopupMenuButton<String>(
|
||||||
tooltip: '功能菜单',
|
padding: EdgeInsets.zero,
|
||||||
icon: Icon(
|
tooltip: '功能菜单',
|
||||||
Icons.more_vert_outlined,
|
icon: Icon(
|
||||||
color: Theme.of(context).colorScheme.outline,
|
Icons.more_vert_outlined,
|
||||||
size: 18,
|
color: Theme.of(context).colorScheme.outline,
|
||||||
),
|
size: 18,
|
||||||
position: PopupMenuPosition.under,
|
),
|
||||||
// constraints: const BoxConstraints(maxHeight: 35),
|
position: PopupMenuPosition.under,
|
||||||
onSelected: (String type) {},
|
itemBuilder: (BuildContext context) =>
|
||||||
itemBuilder: (BuildContext context) =>
|
<PopupMenuEntry<String>>[
|
||||||
<PopupMenuEntry<String>>[
|
if (videoItem.authorMid != null &&
|
||||||
if (videoItem.history?.business != 'pgc' &&
|
videoItem.authorName?.isNotEmpty == true)
|
||||||
videoItem.badge != '番剧' &&
|
PopupMenuItem<String>(
|
||||||
!videoItem.tagName.contains('动画') &&
|
onTap: () {
|
||||||
videoItem.history.business != 'live' &&
|
Get.toNamed(
|
||||||
!videoItem.history.business.contains('article'))
|
'/member?mid=${videoItem.authorMid}',
|
||||||
|
arguments: {
|
||||||
|
'heroTag': '${videoItem.authorMid}',
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
height: 35,
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
Icon(MdiIcons.accountCircleOutline, size: 16),
|
||||||
|
SizedBox(width: 6),
|
||||||
|
Text(
|
||||||
|
'访问:${videoItem.authorName}',
|
||||||
|
style: TextStyle(fontSize: 13),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
if (videoItem.history?.business != 'pgc' &&
|
||||||
|
videoItem.badge != '番剧' &&
|
||||||
|
!videoItem.tagName.contains('动画') &&
|
||||||
|
videoItem.history.business != 'live' &&
|
||||||
|
!videoItem.history.business.contains('article'))
|
||||||
|
PopupMenuItem<String>(
|
||||||
|
onTap: () async {
|
||||||
|
var res = await UserHttp.toViewLater(
|
||||||
|
bvid: videoItem.history.bvid);
|
||||||
|
SmartDialog.showToast(res['msg']);
|
||||||
|
},
|
||||||
|
height: 35,
|
||||||
|
child: const Row(
|
||||||
|
children: [
|
||||||
|
Icon(Icons.watch_later_outlined, size: 16),
|
||||||
|
SizedBox(width: 6),
|
||||||
|
Text('稍后再看', style: TextStyle(fontSize: 13))
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
PopupMenuItem<String>(
|
PopupMenuItem<String>(
|
||||||
onTap: () async {
|
onTap: () => ctr!.delHistory(
|
||||||
var res = await UserHttp.toViewLater(
|
videoItem.kid, videoItem.history.business),
|
||||||
bvid: videoItem.history.bvid);
|
|
||||||
SmartDialog.showToast(res['msg']);
|
|
||||||
},
|
|
||||||
value: 'pause',
|
|
||||||
height: 35,
|
height: 35,
|
||||||
child: const Row(
|
child: const Row(
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.watch_later_outlined, size: 16),
|
Icon(Icons.close_outlined, size: 16),
|
||||||
SizedBox(width: 6),
|
SizedBox(width: 6),
|
||||||
Text('稍后再看', style: TextStyle(fontSize: 13))
|
Text('删除记录', style: TextStyle(fontSize: 13))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
PopupMenuItem<String>(
|
],
|
||||||
onTap: () => ctr!.delHistory(
|
),
|
||||||
videoItem.kid, videoItem.history.business),
|
|
||||||
value: 'pause',
|
|
||||||
height: 35,
|
|
||||||
child: const Row(
|
|
||||||
children: [
|
|
||||||
Icon(Icons.close_outlined, size: 16),
|
|
||||||
SizedBox(width: 6),
|
|
||||||
Text('删除记录', style: TextStyle(fontSize: 13))
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import 'package:PiliPlus/http/loading_state.dart';
|
|||||||
import 'package:PiliPlus/pages/live/controller.dart';
|
import 'package:PiliPlus/pages/live/controller.dart';
|
||||||
import 'package:PiliPlus/pages/live/widgets/live_item.dart';
|
import 'package:PiliPlus/pages/live/widgets/live_item.dart';
|
||||||
import 'package:PiliPlus/pages/live/widgets/live_item_follow.dart';
|
import 'package:PiliPlus/pages/live/widgets/live_item_follow.dart';
|
||||||
import 'package:PiliPlus/utils/feed_back.dart';
|
|
||||||
import 'package:PiliPlus/utils/utils.dart';
|
import 'package:PiliPlus/utils/utils.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/rendering.dart';
|
import 'package:flutter/rendering.dart';
|
||||||
@@ -226,7 +225,7 @@ class _LivePageState extends State<LivePage>
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
onLongPress: () {
|
onLongPress: () {
|
||||||
feedBack();
|
Feedback.forLongPress(context);
|
||||||
Get.toNamed(
|
Get.toNamed(
|
||||||
'/member?mid=${loadingState.response[index].uid}',
|
'/member?mid=${loadingState.response[index].uid}',
|
||||||
arguments: {
|
arguments: {
|
||||||
|
|||||||
Reference in New Issue
Block a user