fix sync after read or watch option

This commit is contained in:
Schnitzel5 2024-09-12 23:52:04 +02:00
parent 96e5f08a30
commit 6488983464
9 changed files with 17 additions and 20 deletions

View file

@ -313,6 +313,7 @@ class _AnimeStreamPageState extends riv.ConsumerState<AnimeStreamPage>
_currentPosition.value, _currentTotalDuration.value,
save: save);
_streamController.setAnimeHistoryUpdate();
_streamController.checkAndSyncProgress();
}
void _setLandscapeMode(bool state) {

View file

@ -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);
}
}
}

View file

@ -7,7 +7,7 @@ part of 'anime_player_controller_provider.dart';
// **************************************************************************
String _$animeStreamControllerHash() =>
r'afa475dbb6f73d33b2495dd6d4502f3df1ab931d';
r'7c46275f644311fe340792f223d03b907b0c7479';
/// Copied from Dart SDK
class _SystemHash {

View file

@ -658,7 +658,6 @@ class MangasSetIsReadState extends _$MangasSetIsReadState {
chapter.manga.saveSync();
}
});
chapters.last.syncProgressAfterChapterRead(ref);
}
}

View file

@ -2520,7 +2520,7 @@ final isLongPressedMangaStateProvider =
typedef _$IsLongPressedMangaState = AutoDisposeNotifier<bool>;
String _$mangasSetIsReadStateHash() =>
r'926659caebb85b15952f66f437f773a4b660bb78';
r'cb88914fe1c47c1e3a29d43c23a6652b0e8f2ac1';
abstract class _$MangasSetIsReadState
extends BuildlessAutoDisposeNotifier<void> {

View file

@ -764,7 +764,6 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
chapter.manga.saveSync();
if (chapter.isRead!) {
chapter.updateTrackChapterRead(ref);
chapter.syncProgressAfterChapterRead(ref);
}
}
});
@ -823,8 +822,6 @@ class _MangaDetailViewState extends ConsumerState<MangaDetailView>
.read(chaptersListStateProvider.notifier)
.clear();
});
chapters[index + 1]
.syncProgressAfterChapterRead(ref);
},
child: Stack(
children: [

View file

@ -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 {

View file

@ -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 {

View file

@ -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<void> {
late final Chapter chapter;