diff --git a/lib/foundation/history.dart b/lib/foundation/history.dart index bd21d1d..a8a0e01 100644 --- a/lib/foundation/history.dart +++ b/lib/foundation/history.dart @@ -319,7 +319,7 @@ class HistoryManager with ChangeNotifier { for (var element in res) { _cachedHistoryIds![element["id"] as String] = true; } - for (var key in cachedHistories.keys) { + for (var key in cachedHistories.keys.toList()) { if (!_cachedHistoryIds!.containsKey(key)) { cachedHistories.remove(key); } diff --git a/lib/pages/comic_details_page/comic_page.dart b/lib/pages/comic_details_page/comic_page.dart index 6cf8913..f0b34a9 100644 --- a/lib/pages/comic_details_page/comic_page.dart +++ b/lib/pages/comic_details_page/comic_page.dart @@ -165,6 +165,8 @@ class _ComicPageState extends LoadingState cid: widget.id, name: localComic.title, chapters: localComic.chapters, + initialPage: history?.page, + initialChapter: history?.ep, history: history ?? History.fromModel( model: localComic, diff --git a/lib/pages/reader/images.dart b/lib/pages/reader/images.dart index 7b8eee0..0091f01 100644 --- a/lib/pages/reader/images.dart +++ b/lib/pages/reader/images.dart @@ -406,6 +406,9 @@ class _ContinuousModeState extends State<_ContinuousMode> } void onPositionChanged() { + if (itemPositionsListener.itemPositions.value.isEmpty) { + return; + } var page = itemPositionsListener.itemPositions.value.first.index; page = page.clamp(1, reader.maxPage); if (page != reader.page) {