mirror of
https://github.com/haorendashu/nowser.git
synced 2025-12-18 10:04:20 +01:00
download some codes
This commit is contained in:
@@ -105,6 +105,10 @@ class _BookmarkRouter extends CustState<BookmarkRouter>
|
||||
setState(() {
|
||||
selectedIds.add(bookmark.id!);
|
||||
});
|
||||
} else {
|
||||
setState(() {
|
||||
selectedIds.remove(bookmark.id!);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
113
lib/router/downloads/downloads_router.dart
Normal file
113
lib/router/downloads/downloads_router.dart
Normal file
@@ -0,0 +1,113 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:nowser/component/cust_state.dart';
|
||||
import 'package:nowser/component/download_list_item_component.dart';
|
||||
import 'package:nowser/data/download_log.dart';
|
||||
import 'package:nowser/data/download_log_db.dart';
|
||||
import 'package:nowser/provider/download_provider.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../../component/appbar_back_btn_component.dart';
|
||||
import '../../component/deletable_list_mixin.dart';
|
||||
import '../../const/base.dart';
|
||||
import '../../generated/l10n.dart';
|
||||
import '../../util/router_util.dart';
|
||||
|
||||
class DownloadsRouter extends StatefulWidget {
|
||||
@override
|
||||
State<StatefulWidget> createState() {
|
||||
return _DownloadsRouter();
|
||||
}
|
||||
}
|
||||
|
||||
class _DownloadsRouter extends CustState<DownloadsRouter>
|
||||
with DeletableListMixin {
|
||||
List<int> selectedIds = [];
|
||||
|
||||
List<DownloadLog> completedLogs = [];
|
||||
|
||||
@override
|
||||
Future<void> onReady(BuildContext context) async {
|
||||
var allList = await DownloadLogDB.all();
|
||||
print(allList);
|
||||
setState(() {
|
||||
completedLogs = allList;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget doBuild(BuildContext context) {
|
||||
var themeData = Theme.of(context);
|
||||
var s = S.of(context);
|
||||
|
||||
var _downloadProvider = Provider.of<DownloadProvider>(context);
|
||||
List<DownloadLog> currentDownloadLogs =
|
||||
_downloadProvider.currentDownloadLogs;
|
||||
|
||||
List<Widget> list = [];
|
||||
for (var logItem in currentDownloadLogs) {
|
||||
list.add(wrapItem(DownloadListItemComponent(logItem), logItem));
|
||||
}
|
||||
|
||||
int? lastMonth;
|
||||
int? lastDay;
|
||||
|
||||
for (var logItem in completedLogs) {
|
||||
if (logItem.createdAt != null) {
|
||||
var date =
|
||||
DateTime.fromMillisecondsSinceEpoch(logItem.createdAt! * 1000);
|
||||
if (date.month != lastMonth || date.day != lastDay) {
|
||||
var dateStr = DateFormat.yMd().format(date);
|
||||
list.add(Container(
|
||||
margin: EdgeInsets.only(
|
||||
left: Base.BASE_PADDING, top: Base.BASE_PADDING),
|
||||
child: Text(
|
||||
dateStr,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
list.add(wrapItem(DownloadListItemComponent(logItem), logItem));
|
||||
}
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: AppbarBackBtnComponent(),
|
||||
title: Text(
|
||||
s.Downloads,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: themeData.textTheme.bodyLarge!.fontSize,
|
||||
),
|
||||
),
|
||||
actions: genAppBarActions(context),
|
||||
),
|
||||
body: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: list,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget wrapItem(Widget child, DownloadLog downloadLog) {
|
||||
return wrapListItem(child, onTap: () {
|
||||
// RouterUtil.back(context, history.url);
|
||||
}, onSelect: () {
|
||||
if (!selectedIds.contains(downloadLog.id)) {
|
||||
setState(() {
|
||||
selectedIds.add(downloadLog.id!);
|
||||
});
|
||||
} else {
|
||||
setState(() {
|
||||
selectedIds.remove(downloadLog.id!);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -86,6 +86,10 @@ class _HistoryRouter extends CustState<HistoryRouter> with DeletableListMixin {
|
||||
setState(() {
|
||||
selectedIds.add(history.id!);
|
||||
});
|
||||
} else {
|
||||
setState(() {
|
||||
selectedIds.remove(history.id!);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@ class _WebControlComponent extends State<WebControlComponent> {
|
||||
size: 30,
|
||||
),
|
||||
onTap: () {
|
||||
BotToast.showText(text: s.Comming_soon);
|
||||
RouterUtil.router(context, RouterPath.DOWNLOADS);
|
||||
},
|
||||
),
|
||||
),
|
||||
|
||||
@@ -9,6 +9,7 @@ import 'package:nowser/const/router_path.dart';
|
||||
import 'package:nowser/data/auth_log_db.dart';
|
||||
import 'package:nowser/data/bookmark_db.dart';
|
||||
import 'package:nowser/data/browser_history_db.dart';
|
||||
import 'package:nowser/data/download_log_db.dart';
|
||||
import 'package:nowser/main.dart';
|
||||
import 'package:nowser/provider/app_provider.dart';
|
||||
import 'package:nowser/provider/key_provider.dart';
|
||||
@@ -53,6 +54,7 @@ class _MeRouter extends CustState<MeRouter> {
|
||||
Future<void> updateNumber() async {
|
||||
bookmarkNum = await BookmarkDB.total();
|
||||
historyNum = await BrowserHistoryDB.total();
|
||||
downloadNum = await DownloadLogDB.total();
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@@ -186,7 +188,7 @@ class _MeRouter extends CustState<MeRouter> {
|
||||
name: s.Downloads,
|
||||
iconData: Icons.download,
|
||||
onTap: () {
|
||||
BotToast.showText(text: s.Comming_soon);
|
||||
RouterUtil.router(context, RouterPath.DOWNLOADS);
|
||||
},
|
||||
));
|
||||
// webItemList.add(MeRouterWebItemComponent(
|
||||
|
||||
Reference in New Issue
Block a user