opt handle res

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-05-25 11:16:35 +08:00
parent f29385ccef
commit fd55383778
91 changed files with 957 additions and 387 deletions

View File

@@ -1,10 +1,13 @@
import 'package:PiliPlus/http/bangumi.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/bangumi/pgc_index/condition.dart';
import 'package:PiliPlus/models/pgc/pgc_index/condition.dart';
import 'package:PiliPlus/models/pgc/pgc_index_item/data.dart';
import 'package:PiliPlus/models/pgc/pgc_index_item/list.dart';
import 'package:PiliPlus/pages/common/common_list_controller.dart';
import 'package:get/get.dart';
class PgcIndexController extends CommonListController {
class PgcIndexController
extends CommonListController<PgcIndexItemData, PgcIndexItemModel> {
PgcIndexController(this.indexType);
int? indexType;
Rx<LoadingState<PgcIndexCondition>> conditionState =
@@ -42,7 +45,8 @@ class PgcIndexController extends CommonListController {
}
@override
Future<LoadingState> customGetData() => BangumiHttp.pgcIndexResult(
Future<LoadingState<PgcIndexItemData>> customGetData() =>
BangumiHttp.pgcIndexResult(
page: page,
params: indexParams,
seasonType: indexType == null ? 1 : null,
@@ -51,16 +55,10 @@ class PgcIndexController extends CommonListController {
);
@override
List? getDataList(response) {
return response['list'];
}
@override
bool customHandleResponse(bool isRefresh, Success response) {
if (response.response['has_next'] == null ||
response.response['has_next'] == 0) {
List<PgcIndexItemModel>? getDataList(PgcIndexItemData response) {
if (response.hasNext == null || response.hasNext == 0) {
isEnd = true;
}
return false;
return response.list;
}
}

View File

@@ -3,7 +3,8 @@ import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/common/widgets/loading_widget/loading_widget.dart';
import 'package:PiliPlus/common/widgets/self_sized_horizontal_list.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/bangumi/pgc_index/condition.dart';
import 'package:PiliPlus/models/pgc/pgc_index/condition.dart';
import 'package:PiliPlus/models/pgc/pgc_index_item/list.dart';
import 'package:PiliPlus/pages/bangumi/widgets/bangumi_card_v_pgc_index.dart';
import 'package:PiliPlus/pages/pgc_index/controller.dart';
import 'package:PiliPlus/pages/search/widgets/search_text.dart';
@@ -200,7 +201,7 @@ class _PgcIndexPageState extends State<PgcIndexPage>
],
);
Widget _buildList(LoadingState<List<dynamic>?> loadingState) {
Widget _buildList(LoadingState<List<PgcIndexItemModel>?> loadingState) {
return switch (loadingState) {
Loading() => const SliverToBoxAdapter(child: LinearProgressIndicator()),
Success(:var response) => response?.isNotEmpty == true