From e2639b695172cff2347c03c4321eb621dd6af734 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Tue, 5 Aug 2025 19:06:31 +0800 Subject: [PATCH] opt del later view Signed-off-by: bggRGjQaUbCoE --- lib/pages/fav_detail/controller.dart | 16 ++++---- lib/pages/later/child_view.dart | 6 +-- lib/pages/later/controller.dart | 55 +++++++++++++++----------- lib/pages/later_search/controller.dart | 23 ----------- 4 files changed, 40 insertions(+), 60 deletions(-) diff --git a/lib/pages/fav_detail/controller.dart b/lib/pages/fav_detail/controller.dart index da72d763..3a9e95a7 100644 --- a/lib/pages/fav_detail/controller.dart +++ b/lib/pages/fav_detail/controller.dart @@ -13,6 +13,7 @@ import 'package:PiliPlus/pages/fav_sort/view.dart'; import 'package:PiliPlus/services/account_service.dart'; import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/page_utils.dart'; +import 'package:flutter/services.dart' show ValueChanged; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; @@ -23,7 +24,7 @@ mixin BaseFavController bool get isOwner; int get mediaId; - void updateLength(int count) {} + ValueChanged? updateLength; void onViewFav(FavDetailItemModel item, int? index); @@ -36,7 +37,7 @@ mixin BaseFavController loadingState ..value.data!.removeAt(index) ..refresh(); - updateLength(1); + updateLength?.call(1); SmartDialog.showToast('取消收藏'); } else { SmartDialog.showToast(result['msg']); @@ -58,7 +59,7 @@ mixin BaseFavController delIds: mediaId.toString(), ); if (result['status']) { - updateLength(removeList.length); + updateLength?.call(removeList.length); afterDelete(removeList); SmartDialog.showToast('取消收藏'); } else { @@ -123,11 +124,10 @@ class FavDetailController } @override - void updateLength(int count) { - folderInfo - ..value.mediaCount -= count - ..refresh(); - } + ValueChanged? get updateLength => + (count) => folderInfo + ..value.mediaCount -= count + ..refresh(); @override Future> customGetData() => diff --git a/lib/pages/later/child_view.dart b/lib/pages/later/child_view.dart index c433ea00..0ae04c2b 100644 --- a/lib/pages/later/child_view.dart +++ b/lib/pages/later/child_view.dart @@ -101,11 +101,7 @@ class _LaterViewChildPageState extends State context, index, videoItem.aid, - onSuccess: () { - final counts = _laterController.baseCtr.counts; - counts[widget.laterViewType] = - counts[widget.laterViewType]! - 1; - }, + onSuccess: () => _laterController.updateLength?.call(1), ), ); }, diff --git a/lib/pages/later/controller.dart b/lib/pages/later/controller.dart index 19fdf126..3d4644c7 100644 --- a/lib/pages/later/controller.dart +++ b/lib/pages/later/controller.dart @@ -20,7 +20,32 @@ import 'package:get/get.dart'; mixin BaseLaterController on CommonListController, - CommonMultiSelectMixin { + CommonMultiSelectMixin, + DeleteItemMixin { + ValueChanged? updateLength; + + @override + void onRemove() { + showConfirmDialog( + context: Get.context!, + content: '确认删除所选稍后再看吗?', + title: '提示', + onConfirm: () async { + final removeList = allChecked; + SmartDialog.showLoading(msg: '请求中'); + final res = await UserHttp.toViewDel( + aids: removeList.map((item) => item.aid).join(','), + ); + if (res['status']) { + updateLength?.call(removeList.length); + afterDelete(removeList); + } + SmartDialog.dismiss(); + SmartDialog.showToast(res['msg']); + }, + ); + } + // single void toViewDel( BuildContext context, @@ -134,29 +159,6 @@ class LaterController extends MultiSelectController ); } - @override - void onRemove() { - showConfirmDialog( - context: Get.context!, - content: '确认删除所选稍后再看吗?', - title: '提示', - onConfirm: () async { - final removeList = allChecked; - SmartDialog.showLoading(msg: '请求中'); - final res = await UserHttp.toViewDel( - aids: removeList.map((item) => item.aid!).join(','), - ); - if (res['status']) { - baseCtr.counts[laterViewType] = - baseCtr.counts[laterViewType]! - removeList.length; - afterDelete(removeList); - } - SmartDialog.dismiss(); - SmartDialog.showToast(res['msg']); - }, - ); - } - // 稍后再看播放全部 void toViewPlayAll() { if (loadingState.value.isSuccess) { @@ -189,6 +191,11 @@ class LaterController extends MultiSelectController } } + @override + ValueChanged? get updateLength => + (count) => baseCtr.counts[laterViewType] = + baseCtr.counts[laterViewType]! - count; + @override Future onReload() { scrollController.jumpToTop(); diff --git a/lib/pages/later_search/controller.dart b/lib/pages/later_search/controller.dart index 57f1304f..7774e9e7 100644 --- a/lib/pages/later_search/controller.dart +++ b/lib/pages/later_search/controller.dart @@ -1,4 +1,3 @@ -import 'package:PiliPlus/common/widgets/dialog/dialog.dart'; import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/http/user.dart'; import 'package:PiliPlus/models_new/later/data.dart'; @@ -6,7 +5,6 @@ import 'package:PiliPlus/models_new/later/list.dart'; import 'package:PiliPlus/pages/common/multi_select/base.dart'; import 'package:PiliPlus/pages/common/search/common_search_controller.dart'; import 'package:PiliPlus/pages/later/controller.dart' show BaseLaterController; -import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; class LaterSearchController @@ -28,25 +26,4 @@ class LaterSearchController List? getDataList(LaterData response) { return response.list; } - - @override - void onRemove() { - showConfirmDialog( - context: Get.context!, - content: '确认删除所选稍后再看吗?', - title: '提示', - onConfirm: () async { - final removeList = allChecked; - SmartDialog.showLoading(msg: '请求中'); - var res = await UserHttp.toViewDel( - aids: removeList.map((item) => item.aid).join(','), - ); - if (res['status']) { - afterDelete(removeList); - } - SmartDialog.dismiss(); - SmartDialog.showToast(res['msg']); - }, - ); - } }