Fix issues with empty chapter list.

This commit is contained in:
2025-04-05 18:00:55 +08:00
parent 6ff30f8ac3
commit f87afbe397
2 changed files with 18 additions and 12 deletions

View File

@@ -17,10 +17,8 @@ import 'package:venera/foundation/image_provider/cached_image.dart';
import 'package:venera/foundation/local.dart'; import 'package:venera/foundation/local.dart';
import 'package:venera/foundation/res.dart'; import 'package:venera/foundation/res.dart';
import 'package:venera/network/download.dart'; import 'package:venera/network/download.dart';
import 'package:venera/pages/category_comics_page.dart';
import 'package:venera/pages/favorites/favorites_page.dart'; import 'package:venera/pages/favorites/favorites_page.dart';
import 'package:venera/pages/reader/reader.dart'; import 'package:venera/pages/reader/reader.dart';
import 'package:venera/pages/search_result_page.dart';
import 'package:venera/utils/app_links.dart'; import 'package:venera/utils/app_links.dart';
import 'package:venera/utils/ext.dart'; import 'package:venera/utils/ext.dart';
import 'package:venera/utils/io.dart'; import 'package:venera/utils/io.dart';
@@ -411,7 +409,9 @@ class _ComicPageState extends LoadingState<ComicPage, ComicDetails>
var group = history!.group; var group = history!.group;
String text; String text;
if (haveChapter) { if (haveChapter) {
var epName = group == null var epName = "E$ep";
try {
epName = group == null
? comic.chapters!.titles.elementAt( ? comic.chapters!.titles.elementAt(
math.min(ep - 1, comic.chapters!.length - 1), math.min(ep - 1, comic.chapters!.length - 1),
) )
@@ -419,6 +419,10 @@ class _ComicPageState extends LoadingState<ComicPage, ComicDetails>
.getGroupByIndex(group - 1) .getGroupByIndex(group - 1)
.values .values
.elementAt(ep - 1); .elementAt(ep - 1);
}
catch(e) {
// ignore
}
text = "${"Last Reading".tl}: $epName P$page"; text = "${"Last Reading".tl}: $epName P$page";
} else { } else {
text = "${"Last Reading".tl}: P$page"; text = "${"Last Reading".tl}: P$page";

View File

@@ -43,9 +43,10 @@ class _ReaderImagesState extends State<_ReaderImages> {
}); });
} }
} else { } else {
var cp = reader.widget.chapters?.ids.elementAtOrNull(reader.chapter - 1);
var res = await reader.type.comicSource!.loadComicPages!( var res = await reader.type.comicSource!.loadComicPages!(
reader.widget.cid, reader.widget.cid,
reader.widget.chapters?.ids.elementAt(reader.chapter - 1), cp,
); );
if (res.error) { if (res.error) {
setState(() { setState(() {
@@ -747,7 +748,8 @@ class _ContinuousModeState extends State<_ContinuousMode>
} }
Offset offset; Offset offset;
var sp = scrollController.position; var sp = scrollController.position;
if (sp.pixels <= sp.minScrollExtent || sp.pixels >= sp.maxScrollExtent) { if (sp.pixels <= sp.minScrollExtent ||
sp.pixels >= sp.maxScrollExtent) {
offset = Offset(value.dx, value.dy); offset = Offset(value.dx, value.dy);
} else { } else {
if (reader.mode == ReaderMode.continuousTopToBottom) { if (reader.mode == ReaderMode.continuousTopToBottom) {