Files
PiliPlus/lib/pages/rcmd/controller.dart
dom 07843a5e77 drop
Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-08 21:27:01 +08:00

48 lines
1.1 KiB
Dart

import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/home/rcmd/result.dart';
import 'package:PiliPlus/pages/common/common_list_controller.dart';
class RcmdController
extends
CommonListController<
List<RcmdVideoItemAppModel>,
RcmdVideoItemAppModel
> {
int? lastRefreshAt;
@override
void onInit() {
super.onInit();
page = 0;
queryData();
}
@override
Future<LoadingState<List<RcmdVideoItemAppModel>>> customGetData() =>
VideoHttp.rcmdVideoListApp(freshIdx: page);
@override
void handleListResponse(List<RcmdVideoItemAppModel> dataList) {
if (page == 0) {
if (loadingState.value case Success(:final response)) {
if (response != null && response.isNotEmpty) {
lastRefreshAt = dataList.length;
if (response.length > 200) {
dataList.addAll(response.take(50));
} else {
dataList.addAll(response);
}
}
}
}
}
@override
Future<void> onRefresh() {
page = 0;
isEnd = false;
return queryData();
}
}