mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-31 08:08:19 +08:00
opt download (#1755)
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
75
lib/pages/download/search/view.dart
Normal file
75
lib/pages/download/search/view.dart
Normal file
@@ -0,0 +1,75 @@
|
||||
import 'package:PiliPlus/common/widgets/loading_widget/http_error.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';
|
||||
import 'package:PiliPlus/pages/download/search/controller.dart';
|
||||
import 'package:PiliPlus/services/download/download_service.dart';
|
||||
import 'package:PiliPlus/utils/grid.dart';
|
||||
import 'package:flutter/material.dart'
|
||||
hide SliverGridDelegateWithMaxCrossAxisExtent;
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class DownloadSearchPage extends StatefulWidget {
|
||||
const DownloadSearchPage({
|
||||
super.key,
|
||||
required this.progress,
|
||||
});
|
||||
|
||||
final ValueNotifier progress;
|
||||
|
||||
@override
|
||||
State<DownloadSearchPage> createState() => _DownloadSearchPageState();
|
||||
}
|
||||
|
||||
class _DownloadSearchPageState
|
||||
extends
|
||||
CommonSearchPageState<
|
||||
DownloadSearchPage,
|
||||
List<BiliDownloadEntryInfo>,
|
||||
BiliDownloadEntryInfo
|
||||
> {
|
||||
@override
|
||||
DownloadSearchController controller = Get.put(DownloadSearchController());
|
||||
final _downloadService = Get.find<DownloadService>();
|
||||
|
||||
@override
|
||||
List<Widget>? get extraActions => [
|
||||
IconButton(
|
||||
tooltip: '多选',
|
||||
onPressed: () {
|
||||
if (controller.enableMultiSelect.value) {
|
||||
controller.handleSelect();
|
||||
} else {
|
||||
controller.enableMultiSelect.value = true;
|
||||
}
|
||||
},
|
||||
icon: const Icon(Icons.edit_note),
|
||||
),
|
||||
];
|
||||
|
||||
@override
|
||||
Widget buildList(List<BiliDownloadEntryInfo> list) {
|
||||
if (list.isNotEmpty) {
|
||||
return SliverGrid.builder(
|
||||
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
|
||||
mainAxisSpacing: 2,
|
||||
mainAxisExtent: 100,
|
||||
maxCrossAxisExtent: Grid.smallCardWidth * 2,
|
||||
),
|
||||
itemBuilder: (context, index) {
|
||||
final entry = list[index];
|
||||
return DetailItem(
|
||||
entry: entry,
|
||||
progress: widget.progress,
|
||||
downloadService: _downloadService,
|
||||
showTitle: true,
|
||||
onDelete: () => controller.onRemoveSingle(index, entry),
|
||||
controller: controller,
|
||||
);
|
||||
},
|
||||
itemCount: list.length,
|
||||
);
|
||||
}
|
||||
return const HttpError();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user