opt: playall

Closes #450

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-03-16 17:28:51 +08:00
parent b07cf62bdd
commit b99cf4f629
7 changed files with 106 additions and 39 deletions

View File

@@ -190,6 +190,9 @@ class _FavDetailPageState extends State<FavDetailPage> {
Get.toNamed('/favSearch', arguments: {
'type': 0,
'mediaId': int.parse(mediaId),
'title': _favDetailController.item.value.title,
'count':
_favDetailController.item.value.mediaCount,
'searchType': SearchType.fav,
}),
icon: const Icon(Icons.search_outlined),
@@ -426,15 +429,34 @@ class _FavDetailPageState extends State<FavDetailPage> {
),
);
}
final element = loadingState.response[index];
return Stack(
children: [
Positioned.fill(
child: FavVideoCardH(
videoItem: loadingState.response[index],
videoItem: element,
callFn: () => _favDetailController.onCancelFav(
loadingState.response[index].id,
loadingState.response[index].type,
element.id,
element.type,
),
onViewFav: () {
Utils.toViewPage(
'bvid=${element.bvid}&cid=${element.cid}',
arguments: {
'videoItem': element,
'heroTag': Utils.makeHeroTag(element.bvid),
'sourceType': 'fav',
'mediaId': _favDetailController.item.value.id,
'oid': element.id,
'favTitle':
_favDetailController.item.value.title,
'count': _favDetailController
.item.value.mediaCount,
'desc': true,
'isContinuePlaying': index != 0,
},
);
},
onTap: _favDetailController.enableMultiSelect.value
? () {
_favDetailController.onSelect(index);

View File

@@ -10,7 +10,6 @@ import 'package:PiliPlus/common/widgets/stat/danmu.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/http/search.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/common/search_type.dart';
import 'package:PiliPlus/utils/id_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:PiliPlus/common/widgets/network_img_layer.dart';
@@ -24,6 +23,7 @@ class FavVideoCardH extends StatelessWidget {
final GestureTapCallback? onTap;
final GestureLongPressCallback? onLongPress;
final bool isOwner;
final VoidCallback? onViewFav;
const FavVideoCardH({
super.key,
@@ -33,6 +33,7 @@ class FavVideoCardH extends StatelessWidget {
this.onTap,
this.onLongPress,
this.isOwner = false,
this.onViewFav,
});
@override
@@ -66,15 +67,16 @@ class FavVideoCardH extends StatelessWidget {
Get.toNamed('/member?mid=${videoItem.owner?.mid}');
return;
}
Utils.toViewPage(
'bvid=$bvid&cid=${videoItem.cid}${epId?.isNotEmpty == true ? '&epId=$epId' : ''}',
arguments: {
'videoItem': videoItem,
'heroTag': Utils.makeHeroTag(id),
'videoType':
epId != null ? SearchType.media_bangumi : SearchType.video,
},
);
onViewFav!();
// Utils.toViewPage(
// 'bvid=$bvid&cid=${videoItem.cid}${epId?.isNotEmpty == true ? '&epId=$epId' : ''}',
// arguments: {
// 'videoItem': videoItem,
// 'heroTag': Utils.makeHeroTag(id),
// 'videoType':
// epId != null ? SearchType.media_bangumi : SearchType.video,
// },
// );
},
onLongPress: () {
if (onLongPress != null) {