Files
PiliPlus/lib/pages/fav_search/controller.dart
dom d63116542b tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-09 13:41:09 +08:00

77 lines
2.1 KiB
Dart

import 'package:PiliPlus/http/fav.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/common/fav_order_type.dart';
import 'package:PiliPlus/models/common/video/source_type.dart';
import 'package:PiliPlus/models_new/fav/fav_detail/data.dart';
import 'package:PiliPlus/models_new/fav/fav_detail/media.dart';
import 'package:PiliPlus/pages/common/multi_select/base.dart';
import 'package:PiliPlus/pages/common/search/common_search_controller.dart';
import 'package:PiliPlus/pages/fav_detail/controller.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:get/get.dart';
class FavSearchController
extends CommonSearchController<FavDetailData, FavDetailItemModel>
with
CommonMultiSelectMixin<FavDetailItemModel>,
DeleteItemMixin,
BaseFavController {
late int type;
@override
late int mediaId;
@override
late bool isOwner;
late dynamic count;
late dynamic title;
@override
void onInit() {
final args = Get.arguments;
type = args['type'];
mediaId = args['mediaId'];
isOwner = args['isOwner'];
count = args['count'];
title = args['title'];
super.onInit();
}
final Rx<FavOrderType> order = FavOrderType.mtime.obs;
@override
Future<LoadingState<FavDetailData>> customGetData() =>
FavHttp.userFavFolderDetail(
pn: page,
ps: 20,
mediaId: mediaId,
keyword: editController.text,
type: type,
order: order.value,
);
@override
List<FavDetailItemModel>? getDataList(FavDetailData response) {
if (response.hasMore == false) {
isEnd = true;
}
return response.medias;
}
@override
// TODO: dimension
void onViewFav(FavDetailItemModel item, int? index) => PageUtils.toVideoPage(
bvid: item.bvid,
cid: item.ugc!.firstCid!,
cover: item.cover,
title: item.title,
extraArguments: {
'sourceType': SourceType.fav,
'mediaId': mediaId,
'oid': item.id,
'favTitle': title,
'count': count,
'desc': true,
'isContinuePlaying': true,
},
);
}