mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 15:57:25 +00:00
Set initial chapter to first downloaded chapter if there is no history when starting to read a local comic. Close #405
This commit is contained in:
@@ -109,15 +109,42 @@ class LocalComic with HistoryMixin implements Comic {
|
|||||||
|
|
||||||
void read() {
|
void read() {
|
||||||
var history = HistoryManager().find(id, comicType);
|
var history = HistoryManager().find(id, comicType);
|
||||||
|
int? firstDownloadedChapter;
|
||||||
|
int? firstDownloadedChapterGroup;
|
||||||
|
if (downloadedChapters.isNotEmpty && chapters != null) {
|
||||||
|
final chapters = this.chapters!;
|
||||||
|
if (chapters.isGrouped) {
|
||||||
|
for (int i=0; i<chapters.groupCount; i++) {
|
||||||
|
var group = chapters.getGroupByIndex(i);
|
||||||
|
var keys = group.keys.toList();
|
||||||
|
for (int j=0; j<keys.length; j++) {
|
||||||
|
var chapterId = keys[j];
|
||||||
|
if (downloadedChapters.contains(chapterId)) {
|
||||||
|
firstDownloadedChapter = j + 1;
|
||||||
|
firstDownloadedChapterGroup = i + 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var keys = chapters.allChapters.keys;
|
||||||
|
for (int i = 0; i < keys.length; i++) {
|
||||||
|
if (downloadedChapters.contains(keys.elementAt(i))) {
|
||||||
|
firstDownloadedChapter = i + 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
App.rootContext.to(
|
App.rootContext.to(
|
||||||
() => Reader(
|
() => Reader(
|
||||||
type: comicType,
|
type: comicType,
|
||||||
cid: id,
|
cid: id,
|
||||||
name: title,
|
name: title,
|
||||||
chapters: chapters,
|
chapters: chapters,
|
||||||
initialChapter: history?.ep,
|
initialChapter: history?.ep ?? firstDownloadedChapter,
|
||||||
initialPage: history?.page,
|
initialPage: history?.page,
|
||||||
initialChapterGroup: history?.group,
|
initialChapterGroup: history?.group ?? firstDownloadedChapterGroup,
|
||||||
history: history ??
|
history: history ??
|
||||||
History.fromModel(
|
History.fromModel(
|
||||||
model: this,
|
model: this,
|
||||||
|
Reference in New Issue
Block a user