From 96e5f08a30a2edab9756004a294e26f60e17a383 Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Thu, 12 Sep 2024 22:37:53 +0200 Subject: [PATCH 1/5] fix sync after read or watch option --- .../manga/reader/providers/reader_controller_provider.dart | 6 ++++++ lib/modules/manga/reader/reader_view.dart | 1 + 2 files changed, 7 insertions(+) diff --git a/lib/modules/manga/reader/providers/reader_controller_provider.dart b/lib/modules/manga/reader/providers/reader_controller_provider.dart index 9e16b6b..2498cda 100644 --- a/lib/modules/manga/reader/providers/reader_controller_provider.dart +++ b/lib/modules/manga/reader/providers/reader_controller_provider.dart @@ -188,6 +188,12 @@ class ReaderController extends _$ReaderController { }); } + void checkAndSyncProgress() { + final syncAfterReading = ref.watch(syncAfterReadingStateProvider); + if (!syncAfterReading) return; + checkForSyncIndependentProvider.call(true); + } + void setChapterBookmarked() { if (incognitoMode) return; final isBookmarked = getChapterBookmarked(); diff --git a/lib/modules/manga/reader/reader_view.dart b/lib/modules/manga/reader/reader_view.dart index c34d652..ae30de3 100644 --- a/lib/modules/manga/reader/reader_view.dart +++ b/lib/modules/manga/reader/reader_view.dart @@ -144,6 +144,7 @@ class _MangaChapterPageGalleryState @override void dispose() { _readerController.setMangaHistoryUpdate(); + _readerController.checkAndSyncProgress(); _readerController.setPageIndex( _geCurrentIndex(_uChapDataPreload[_currentIndex!].index!), true); _rebuildDetail.close(); From 6488983464e56e0158117db5ce05ae3d05a7b18c Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Thu, 12 Sep 2024 23:52:04 +0200 Subject: [PATCH 2/5] fix sync after read or watch option --- lib/modules/anime/anime_player_view.dart | 1 + .../anime_player_controller_provider.dart | 9 ++++++++- .../anime_player_controller_provider.g.dart | 2 +- .../library/providers/library_state_provider.dart | 1 - .../providers/library_state_provider.g.dart | 2 +- lib/modules/manga/detail/manga_detail_view.dart | 3 --- .../update_manga_detail_providers.g.dart | 2 +- .../providers/reader_controller_provider.dart | 15 ++++----------- .../providers/reader_controller_provider.g.dart | 2 +- 9 files changed, 17 insertions(+), 20 deletions(-) diff --git a/lib/modules/anime/anime_player_view.dart b/lib/modules/anime/anime_player_view.dart index 4cf8a7e..18ab809 100644 --- a/lib/modules/anime/anime_player_view.dart +++ b/lib/modules/anime/anime_player_view.dart @@ -313,6 +313,7 @@ class _AnimeStreamPageState extends riv.ConsumerState _currentPosition.value, _currentTotalDuration.value, save: save); _streamController.setAnimeHistoryUpdate(); + _streamController.checkAndSyncProgress(); } void _setLandscapeMode(bool state) { diff --git a/lib/modules/anime/providers/anime_player_controller_provider.dart b/lib/modules/anime/providers/anime_player_controller_provider.dart index 179d05a..7c483cb 100644 --- a/lib/modules/anime/providers/anime_player_controller_provider.dart +++ b/lib/modules/anime/providers/anime_player_controller_provider.dart @@ -9,6 +9,7 @@ import 'package:mangayomi/modules/manga/reader/providers/reader_controller_provi import 'package:mangayomi/modules/more/settings/player/providers/player_state_provider.dart'; import 'package:mangayomi/modules/more/settings/sync/providers/sync_providers.dart'; import 'package:mangayomi/services/aniskip.dart'; +import 'package:mangayomi/services/sync_server.dart'; import 'package:mangayomi/utils/chapter_recognition.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'anime_player_controller_provider.g.dart'; @@ -149,6 +150,13 @@ class AnimeStreamController extends _$AnimeStreamController { }); } + void checkAndSyncProgress() { + final syncAfterReading = ref.watch(syncAfterReadingStateProvider); + if (syncAfterReading) { + ref.read(syncServerProvider(syncId: 1).notifier).checkForSync(true); + } + } + void setCurrentPosition(Duration duration, Duration? totalDuration, {bool save = false}) { if (episode.isRead!) return; @@ -172,7 +180,6 @@ class AnimeStreamController extends _$AnimeStreamController { }); if (isWatch) { episode.updateTrackChapterRead(ref); - episode.syncProgressAfterChapterRead(ref); } } } diff --git a/lib/modules/anime/providers/anime_player_controller_provider.g.dart b/lib/modules/anime/providers/anime_player_controller_provider.g.dart index e177b2e..353978c 100644 --- a/lib/modules/anime/providers/anime_player_controller_provider.g.dart +++ b/lib/modules/anime/providers/anime_player_controller_provider.g.dart @@ -7,7 +7,7 @@ part of 'anime_player_controller_provider.dart'; // ************************************************************************** String _$animeStreamControllerHash() => - r'afa475dbb6f73d33b2495dd6d4502f3df1ab931d'; + r'7c46275f644311fe340792f223d03b907b0c7479'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/modules/library/providers/library_state_provider.dart b/lib/modules/library/providers/library_state_provider.dart index d662e9e..5e22641 100644 --- a/lib/modules/library/providers/library_state_provider.dart +++ b/lib/modules/library/providers/library_state_provider.dart @@ -658,7 +658,6 @@ class MangasSetIsReadState extends _$MangasSetIsReadState { chapter.manga.saveSync(); } }); - chapters.last.syncProgressAfterChapterRead(ref); } } diff --git a/lib/modules/library/providers/library_state_provider.g.dart b/lib/modules/library/providers/library_state_provider.g.dart index 60f06fc..5f2d9f5 100644 --- a/lib/modules/library/providers/library_state_provider.g.dart +++ b/lib/modules/library/providers/library_state_provider.g.dart @@ -2520,7 +2520,7 @@ final isLongPressedMangaStateProvider = typedef _$IsLongPressedMangaState = AutoDisposeNotifier; String _$mangasSetIsReadStateHash() => - r'926659caebb85b15952f66f437f773a4b660bb78'; + r'cb88914fe1c47c1e3a29d43c23a6652b0e8f2ac1'; abstract class _$MangasSetIsReadState extends BuildlessAutoDisposeNotifier { diff --git a/lib/modules/manga/detail/manga_detail_view.dart b/lib/modules/manga/detail/manga_detail_view.dart index b69d11d..0c865a3 100644 --- a/lib/modules/manga/detail/manga_detail_view.dart +++ b/lib/modules/manga/detail/manga_detail_view.dart @@ -764,7 +764,6 @@ class _MangaDetailViewState extends ConsumerState chapter.manga.saveSync(); if (chapter.isRead!) { chapter.updateTrackChapterRead(ref); - chapter.syncProgressAfterChapterRead(ref); } } }); @@ -823,8 +822,6 @@ class _MangaDetailViewState extends ConsumerState .read(chaptersListStateProvider.notifier) .clear(); }); - chapters[index + 1] - .syncProgressAfterChapterRead(ref); }, child: Stack( children: [ diff --git a/lib/modules/manga/detail/providers/update_manga_detail_providers.g.dart b/lib/modules/manga/detail/providers/update_manga_detail_providers.g.dart index c314898..752197d 100644 --- a/lib/modules/manga/detail/providers/update_manga_detail_providers.g.dart +++ b/lib/modules/manga/detail/providers/update_manga_detail_providers.g.dart @@ -6,7 +6,7 @@ part of 'update_manga_detail_providers.dart'; // RiverpodGenerator // ************************************************************************** -String _$updateMangaDetailHash() => r'c21ac4f7725b5ac4403902bac07a3b5462488bbd'; +String _$updateMangaDetailHash() => r'f72eb5e66fd9fb7ed61aa08365e068d77737438d'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/modules/manga/reader/providers/reader_controller_provider.dart b/lib/modules/manga/reader/providers/reader_controller_provider.dart index 2498cda..708bdd4 100644 --- a/lib/modules/manga/reader/providers/reader_controller_provider.dart +++ b/lib/modules/manga/reader/providers/reader_controller_provider.dart @@ -13,6 +13,7 @@ import 'package:mangayomi/modules/manga/detail/providers/track_state_providers.d import 'package:mangayomi/modules/more/providers/incognito_mode_state_provider.dart'; import 'package:mangayomi/modules/more/settings/sync/providers/sync_providers.dart'; import 'package:mangayomi/modules/more/settings/track/providers/track_providers.dart'; +import 'package:mangayomi/services/sync_server.dart'; import 'package:mangayomi/utils/chapter_recognition.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'reader_controller_provider.g.dart'; @@ -190,8 +191,9 @@ class ReaderController extends _$ReaderController { void checkAndSyncProgress() { final syncAfterReading = ref.watch(syncAfterReadingStateProvider); - if (!syncAfterReading) return; - checkForSyncIndependentProvider.call(true); + if (syncAfterReading) { + ref.read(syncServerProvider(syncId: 1).notifier).checkForSync(true); + } } void setChapterBookmarked() { @@ -347,7 +349,6 @@ class ReaderController extends _$ReaderController { }); if (isRead) { chapter.updateTrackChapterRead(ref); - chapter.syncProgressAfterChapterRead(ref); } } } @@ -411,14 +412,6 @@ extension ChapterExtensions on Chapter { } } } - - void syncProgressAfterChapterRead(dynamic ref) { - if (!(ref is WidgetRef || ref is AutoDisposeNotifierProviderRef)) return; - final syncAfterReading = ref.watch(syncAfterReadingStateProvider); - if (!syncAfterReading) return; - checkForSyncIndependentProvider.call(true); - // ref.read(syncServerProvider(syncId: 1).notifier).checkForSync(ref, true); - } } extension MangaExtensions on Manga { diff --git a/lib/modules/manga/reader/providers/reader_controller_provider.g.dart b/lib/modules/manga/reader/providers/reader_controller_provider.g.dart index 394e9fb..26f6b30 100644 --- a/lib/modules/manga/reader/providers/reader_controller_provider.g.dart +++ b/lib/modules/manga/reader/providers/reader_controller_provider.g.dart @@ -169,7 +169,7 @@ class _CurrentIndexProviderElement Chapter get chapter => (origin as CurrentIndexProvider).chapter; } -String _$readerControllerHash() => r'f615f15a622ac5ccdb16318dcdefc097a175fd33'; +String _$readerControllerHash() => r'cc4f5fbe4192def4d19d9150340d305ba0ecf463'; abstract class _$ReaderController extends BuildlessAutoDisposeNotifier { late final Chapter chapter; From 5e153660ab14c32573638b6b80a99b0d6398ee06 Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Fri, 13 Sep 2024 14:10:04 +0200 Subject: [PATCH 3/5] fix history bug after watching anime --- .../anime/providers/anime_player_controller_provider.dart | 1 + .../anime/providers/anime_player_controller_provider.g.dart | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/modules/anime/providers/anime_player_controller_provider.dart b/lib/modules/anime/providers/anime_player_controller_provider.dart index 7c483cb..5be1355 100644 --- a/lib/modules/anime/providers/anime_player_controller_provider.dart +++ b/lib/modules/anime/providers/anime_player_controller_provider.dart @@ -141,6 +141,7 @@ class AnimeStreamController extends _$AnimeStreamController { .filter() .mangaIdEqualTo(getAnime().id) .findFirstSync())! + ..chapterId = episode.id ..chapter.value = episode ..date = DateTime.now().millisecondsSinceEpoch.toString(); } diff --git a/lib/modules/anime/providers/anime_player_controller_provider.g.dart b/lib/modules/anime/providers/anime_player_controller_provider.g.dart index 353978c..66a5354 100644 --- a/lib/modules/anime/providers/anime_player_controller_provider.g.dart +++ b/lib/modules/anime/providers/anime_player_controller_provider.g.dart @@ -7,7 +7,7 @@ part of 'anime_player_controller_provider.dart'; // ************************************************************************** String _$animeStreamControllerHash() => - r'7c46275f644311fe340792f223d03b907b0c7479'; + r'0d97207a4d015d5089766ccbeeba093c55cb1ef9'; /// Copied from Dart SDK class _SystemHash { From 76897a304099d4c6fd5f1f8825b162e5d62d725a Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Fri, 13 Sep 2024 15:34:32 +0200 Subject: [PATCH 4/5] fix settings double int error --- lib/models/settings.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/models/settings.dart b/lib/models/settings.dart index 5713a54..40b930a 100644 --- a/lib/models/settings.dart +++ b/lib/models/settings.dart @@ -338,7 +338,7 @@ class Settings { .map((e) => FilterScanlator.fromJson(e)) .toList(); } - flexColorSchemeBlendLevel = json['flexColorSchemeBlendLevel']; + flexColorSchemeBlendLevel = json['flexColorSchemeBlendLevel'] is double ? json['flexColorSchemeBlendLevel'] : (json['flexColorSchemeBlendLevel'] as int).toDouble(); flexSchemeColorIndex = json['flexSchemeColorIndex']; id = json['id']; incognitoMode = json['incognitoMode']; From ca859fe968acfb7b73946f503bf09e1d84ccf45f Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Fri, 13 Sep 2024 15:58:28 +0200 Subject: [PATCH 5/5] fix feed json conversion --- lib/models/feed.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/models/feed.dart b/lib/models/feed.dart index 7ef4dca..909563c 100644 --- a/lib/models/feed.dart +++ b/lib/models/feed.dart @@ -25,7 +25,7 @@ class Feed { Feed.fromJson(Map json) { id = json['id']; mangaId = json['mangaId']; - mangaId = json['chapterName']; + chapterName = json['chapterName']; date = json['date']; }