diff --git a/lib/pages/common/multi_select/base.dart b/lib/pages/common/multi_select/base.dart index 7910c1a47..875aab564 100644 --- a/lib/pages/common/multi_select/base.dart +++ b/lib/pages/common/multi_select/base.dart @@ -8,7 +8,6 @@ mixin MultiSelectData { mixin MultiSelectBase { RxBool get enableMultiSelect; - RxBool get allSelected; int get checkedCount; @@ -19,9 +18,6 @@ mixin MultiSelectBase { mixin BaseMultiSelectMixin implements MultiSelectBase { - @override - late final allSelected = false.obs; - late final RxInt rxCount = 0.obs; @override int get checkedCount => rxCount.value; @@ -57,8 +53,6 @@ mixin BaseMultiSelectMixin state.refresh(); if (checkedCount == 0) { enableMultiSelect.value = false; - } else { - allSelected.value = checkedCount == list.length; } } } @@ -67,8 +61,7 @@ mixin CommonMultiSelectMixin implements MultiSelectBase { @override late final RxBool enableMultiSelect = false.obs; - @override - late final allSelected = false.obs; + RxBool? get allSelected => null; Rx?>> get loadingState; late final RxInt rxCount = 0.obs; @@ -92,7 +85,7 @@ mixin CommonMultiSelectMixin if (checkedCount == 0) { enableMultiSelect.value = false; } else { - allSelected.value = checkedCount == list.length; + allSelected?.value = checkedCount == list.length; } } diff --git a/lib/pages/download/search/view.dart b/lib/pages/download/search/view.dart index bf894eb38..6513727ae 100644 --- a/lib/pages/download/search/view.dart +++ b/lib/pages/download/search/view.dart @@ -1,4 +1,5 @@ import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart'; +import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/models_new/download/bili_download_entry_info.dart'; import 'package:PiliPlus/pages/common/search/common_search_page.dart'; import 'package:PiliPlus/pages/download/detail/widgets/item.dart'; @@ -38,6 +39,9 @@ class _DownloadSearchPageState IconButton( tooltip: '多选', onPressed: () { + if (controller.loadingState.value is! Success) { + return; + } if (controller.enableMultiSelect.value) { controller.handleSelect(); } else { diff --git a/lib/pages/fav/note/controller.dart b/lib/pages/fav/note/controller.dart index 4e9102399..114b82f34 100644 --- a/lib/pages/fav/note/controller.dart +++ b/lib/pages/fav/note/controller.dart @@ -3,6 +3,7 @@ import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/models_new/fav/fav_note/list.dart'; import 'package:PiliPlus/pages/common/multi_select/multi_select_controller.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; +import 'package:get/get.dart'; class FavNoteController extends MultiSelectController?, FavNoteItemModel> { @@ -16,6 +17,9 @@ class FavNoteController queryData(); } + @override + final RxBool allSelected = false.obs; + @override void handleSelect({bool checked = false, bool disableSelect = true}) { allSelected.value = checked; diff --git a/lib/pages/fav/pgc/controller.dart b/lib/pages/fav/pgc/controller.dart index 845ec036a..49e69d8a6 100644 --- a/lib/pages/fav/pgc/controller.dart +++ b/lib/pages/fav/pgc/controller.dart @@ -23,6 +23,9 @@ class FavPgcController queryData(); } + @override + final RxBool allSelected = false.obs; + @override void handleSelect({bool checked = false, bool disableSelect = true}) { allSelected.value = checked;