From dec2968921ee4edf383b6de2c93fc5422d303695 Mon Sep 17 00:00:00 2001 From: Schnitzel5 Date: Sat, 15 Feb 2025 17:30:38 +0100 Subject: [PATCH] optimized sync for library update --- .../providers/update_manga_detail_providers.dart | 13 +++++++++---- .../providers/update_manga_detail_providers.g.dart | 2 +- lib/modules/more/settings/sync/sync.dart | 4 +++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/modules/manga/detail/providers/update_manga_detail_providers.dart b/lib/modules/manga/detail/providers/update_manga_detail_providers.dart index 03091882..9f07d61b 100644 --- a/lib/modules/manga/detail/providers/update_manga_detail_providers.dart +++ b/lib/modules/manga/detail/providers/update_manga_detail_providers.dart @@ -107,15 +107,20 @@ Future updateMangaDetail(Ref ref, for (var i = 0; i < oldChapers.length; i++) { final oldChap = oldChapers[i]; final newChap = chaps[i]; + final hasChanged = oldChap.name != newChap.name || + oldChap.url != newChap.url || + oldChap.scanlator != newChap.scanlator; oldChap.name = newChap.name; oldChap.url = newChap.url; oldChap.scanlator = newChap.scanlator; isar.chapters.putSync(oldChap); oldChap.manga.saveSync(); - ref.read(synchingProvider(syncId: 1).notifier).addChangedPart( - ActionType.updateItem, manga.id, manga.toJson(), false); - ref.read(synchingProvider(syncId: 1).notifier).addChangedPart( - ActionType.updateChapter, oldChap.id, oldChap.toJson(), false); + if (!hasChanged) { + ref.read(synchingProvider(syncId: 1).notifier).addChangedPart( + ActionType.updateItem, manga.id, manga.toJson(), false); + ref.read(synchingProvider(syncId: 1).notifier).addChangedPart( + ActionType.updateChapter, oldChap.id, oldChap.toJson(), false); + } } } }); 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 7c2e6eea..9f295d27 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'ebd820d3e9d1900c464aebfbf711f43f6619e586'; +String _$updateMangaDetailHash() => r'4aed7678d299321491de442c592968df22b62f48'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/modules/more/settings/sync/sync.dart b/lib/modules/more/settings/sync/sync.dart index b38c6d07..e0b27918 100644 --- a/lib/modules/more/settings/sync/sync.dart +++ b/lib/modules/more/settings/sync/sync.dart @@ -540,7 +540,8 @@ class SyncScreen extends ConsumerWidget { changedParts.getChangedParts([ ActionType.addHistory, ActionType.clearHistory, - ActionType.removeHistory + ActionType.removeHistory, + ActionType.updateHistory, ])), const SizedBox(height: 15), buildChangedItemWidget( @@ -552,6 +553,7 @@ class SyncScreen extends ConsumerWidget { l10n.sync_pending_extension, changedParts.getChangedParts([ ActionType.addExtension, + ActionType.clearExtension, ActionType.removeExtension, ActionType.updateExtension ])),