opt: non null (#1091)

* opt: type

* opt: type 2

* opt: type 3
This commit is contained in:
My-Responsitories
2025-08-23 18:25:41 +08:00
committed by GitHub
parent 6009668427
commit 3c34e43827
75 changed files with 400 additions and 362 deletions

View File

@@ -1,9 +1,15 @@
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/model_rec_video_item.dart';
import 'package:PiliPlus/pages/common/common_list_controller.dart';
import 'package:PiliPlus/utils/storage_pref.dart';
class RcmdController extends CommonListController {
class RcmdController
extends
CommonListController<
List<BaseRecVideoItemModel>,
BaseRecVideoItemModel
> {
late bool enableSaveLastData = Pref.enableSaveLastData;
final bool appRcmd = Pref.appRcmd;
@@ -18,16 +24,16 @@ class RcmdController extends CommonListController {
}
@override
Future<LoadingState> customGetData() {
Future<LoadingState<List<BaseRecVideoItemModel>>> customGetData() {
return appRcmd
? VideoHttp.rcmdVideoListApp(freshIdx: page)
: VideoHttp.rcmdVideoList(freshIdx: page, ps: 20);
}
@override
void handleListResponse(List dataList) {
void handleListResponse(List<BaseRecVideoItemModel> dataList) {
if (enableSaveLastData && page == 0 && loadingState.value.isSuccess) {
List? currentList = loadingState.value.data;
final currentList = loadingState.value.data;
if (currentList?.isNotEmpty == true) {
if (savedRcmdTip) {
lastRefreshAt = dataList.length;

View File

@@ -4,6 +4,7 @@ import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/video_card/video_card_v.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/model_rec_video_item.dart';
import 'package:PiliPlus/pages/common/common_page.dart';
import 'package:PiliPlus/pages/rcmd/controller.dart';
import 'package:PiliPlus/utils/grid.dart';
@@ -59,7 +60,7 @@ class _RcmdPageState extends CommonPageState<RcmdPage, RcmdController>
mainAxisExtent: MediaQuery.textScalerOf(context).scale(90),
);
Widget _buildBody(LoadingState<List<dynamic>?> loadingState) {
Widget _buildBody(LoadingState<List<BaseRecVideoItemModel>?> loadingState) {
return switch (loadingState) {
Loading() => _buildSkeleton,
Success(:var response) =>