opt play all

Closes #1383

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-10-01 23:07:30 +08:00
parent 35df23194f
commit d9bff6237d
5 changed files with 73 additions and 29 deletions

View File

@@ -85,6 +85,8 @@ class FavDetailController
AccountService accountService = Get.find<AccountService>();
late final RxBool isPlayAll = true.obs;
@override
void onInit() {
super.onInit();
@@ -206,16 +208,18 @@ class FavDetailController
cid: item.ugc!.firstCid!,
cover: item.cover,
title: item.title,
extraArguments: {
'sourceType': SourceType.fav,
'mediaId': folder.id,
'oid': item.id,
'favTitle': folder.title,
'count': folder.mediaCount,
'desc': true,
if (index != null) 'isContinuePlaying': index != 0,
'isOwner': isOwner,
},
extraArguments: isPlayAll.value
? {
'sourceType': SourceType.fav,
'mediaId': folder.id,
'oid': item.id,
'favTitle': folder.title,
'count': folder.mediaCount,
'desc': true,
if (index != null) 'isContinuePlaying': index != 0,
'isOwner': isOwner,
}
: null,
);
}
}

View File

@@ -60,10 +60,27 @@ class _FavDetailPageState extends State<FavDetailPage> with GridMixin {
resizeToAvoidBottomInset: false,
floatingActionButton: Obx(
() => _favDetailController.folderInfo.value.mediaCount > 0
? FloatingActionButton.extended(
onPressed: _favDetailController.toViewPlayAll,
label: const Text('播放全部'),
icon: const Icon(Icons.playlist_play),
? AnimatedSlide(
offset: _favDetailController.isPlayAll.value
? Offset.zero
: const Offset(0.75, 0),
duration: const Duration(milliseconds: 120),
child: GestureDetector(
onHorizontalDragUpdate: (details) =>
_favDetailController.isPlayAll.value =
details.delta.dx < 0,
child: FloatingActionButton.extended(
onPressed: () {
if (_favDetailController.isPlayAll.value) {
_favDetailController.toViewPlayAll();
} else {
_favDetailController.isPlayAll.value = true;
}
},
label: const Text('播放全部'),
icon: const Icon(Icons.playlist_play),
),
),
)
: const SizedBox.shrink(),
),