mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-20 17:16:29 +08:00
68 lines
1.6 KiB
Dart
68 lines
1.6 KiB
Dart
import 'package:PiliPlus/http/fav.dart';
|
|
import 'package:PiliPlus/http/loading_state.dart';
|
|
import 'package:PiliPlus/models_new/sub/sub/list.dart';
|
|
import 'package:PiliPlus/models_new/sub/sub_detail/data.dart';
|
|
import 'package:PiliPlus/models_new/sub/sub_detail/media.dart';
|
|
import 'package:PiliPlus/pages/common/common_list_controller.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
class SubDetailController
|
|
extends CommonListController<SubDetailData, SubDetailItemModel> {
|
|
late SubItemModel item;
|
|
|
|
late int id;
|
|
late String heroTag;
|
|
|
|
late final RxInt mediaCount;
|
|
late final RxInt playCount;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
item = Get.arguments;
|
|
mediaCount = (item.mediaCount ?? 0).obs;
|
|
playCount = (item.viewCount ?? 0).obs;
|
|
id = int.parse(Get.parameters['id']!);
|
|
heroTag = Get.parameters['heroTag']!;
|
|
queryData();
|
|
}
|
|
|
|
@override
|
|
List<SubDetailItemModel>? getDataList(SubDetailData response) {
|
|
return response.medias;
|
|
}
|
|
|
|
@override
|
|
void checkIsEnd(int length) {
|
|
if (length >= mediaCount.value) {
|
|
isEnd = true;
|
|
}
|
|
}
|
|
|
|
@override
|
|
bool customHandleResponse(bool isRefresh, Success<SubDetailData> response) {
|
|
mediaCount.value = response.response.info!.mediaCount!;
|
|
if (item.type == 11) {
|
|
playCount.value = response.response.info!.cntInfo!.play!;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@override
|
|
Future<LoadingState<SubDetailData>> customGetData() {
|
|
if (item.type == 11) {
|
|
return FavHttp.favResourceList(
|
|
id: id,
|
|
ps: 20,
|
|
pn: page,
|
|
);
|
|
} else {
|
|
return FavHttp.favSeasonList(
|
|
id: id,
|
|
ps: 20,
|
|
pn: page,
|
|
);
|
|
}
|
|
}
|
|
}
|