download & view local comics

This commit is contained in:
nyne
2024-10-14 11:10:24 +08:00
parent 5a3537657a
commit c0a0dc59e1
20 changed files with 1467 additions and 158 deletions

View File

@@ -0,0 +1,66 @@
import 'package:flutter/material.dart';
import 'package:venera/components/components.dart';
import 'package:venera/foundation/app.dart';
import 'package:venera/foundation/local.dart';
import 'package:venera/pages/downloading_page.dart';
import 'package:venera/utils/translations.dart';
class LocalComicsPage extends StatefulWidget {
const LocalComicsPage({super.key});
@override
State<LocalComicsPage> createState() => _LocalComicsPageState();
}
class _LocalComicsPageState extends State<LocalComicsPage> {
late List<LocalComic> comics;
void update() {
setState(() {
comics = LocalManager().getComics();
});
}
@override
void initState() {
comics = LocalManager().getComics();
LocalManager().addListener(update);
super.initState();
}
@override
void dispose() {
LocalManager().removeListener(update);
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SmoothCustomScrollView(
slivers: [
SliverAppbar(
title: Text("Local".tl),
actions: [
Tooltip(
message: "Downloading".tl,
child: IconButton(
icon: const Icon(Icons.download),
onPressed: () {
showPopUpWidget(context, const DownloadingPage());
},
),
)
],
),
SliverGridComics(
comics: comics,
onTap: (c) {
(c as LocalComic).read();
},
),
],
),
);
}
}