improve data sync

This commit is contained in:
2024-11-11 11:52:36 +08:00
parent ea3cc8cc58
commit 193ecdb765
2 changed files with 6 additions and 3 deletions

View File

@@ -20,6 +20,7 @@ import 'package:venera/foundation/history.dart';
import 'package:venera/foundation/image_provider/reader_image.dart'; import 'package:venera/foundation/image_provider/reader_image.dart';
import 'package:venera/foundation/local.dart'; import 'package:venera/foundation/local.dart';
import 'package:venera/pages/settings/settings_page.dart'; import 'package:venera/pages/settings/settings_page.dart';
import 'package:venera/utils/data_sync.dart';
import 'package:venera/utils/file_type.dart'; import 'package:venera/utils/file_type.dart';
import 'package:venera/utils/io.dart'; import 'package:venera/utils/io.dart';
import 'package:venera/utils/translations.dart'; import 'package:venera/utils/translations.dart';
@@ -122,6 +123,9 @@ class _ReaderState extends State<Reader> with _ReaderLocation, _ReaderWindow {
focusNode.dispose(); focusNode.dispose();
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
stopVolumeEvent(); stopVolumeEvent();
Future.microtask(() {
DataSync().onDataChanged();
});
super.dispose(); super.dispose();
} }

View File

@@ -4,7 +4,6 @@ import 'package:venera/foundation/app.dart';
import 'package:venera/foundation/appdata.dart'; import 'package:venera/foundation/appdata.dart';
import 'package:venera/foundation/comic_source/comic_source.dart'; import 'package:venera/foundation/comic_source/comic_source.dart';
import 'package:venera/foundation/favorites.dart'; import 'package:venera/foundation/favorites.dart';
import 'package:venera/foundation/history.dart';
import 'package:venera/foundation/log.dart'; import 'package:venera/foundation/log.dart';
import 'package:venera/foundation/res.dart'; import 'package:venera/foundation/res.dart';
import 'package:venera/network/app_dio.dart'; import 'package:venera/network/app_dio.dart';
@@ -19,7 +18,6 @@ class DataSync with ChangeNotifier {
if (isEnabled) { if (isEnabled) {
downloadData(); downloadData();
} }
HistoryManager().addListener(onDataChanged);
LocalFavoritesManager().addListener(onDataChanged); LocalFavoritesManager().addListener(onDataChanged);
ComicSource.addListener(onDataChanged); ComicSource.addListener(onDataChanged);
} }
@@ -57,8 +55,9 @@ class DataSync with ChangeNotifier {
} }
Future<Res<bool>> uploadData() async { Future<Res<bool>> uploadData() async {
if(isDownloading) return const Res(true);
if (haveWaitingTask) return const Res(true); if (haveWaitingTask) return const Res(true);
while (isDownloading || isUploading) { while (isUploading) {
haveWaitingTask = true; haveWaitingTask = true;
await Future.delayed(const Duration(milliseconds: 100)); await Future.delayed(const Duration(milliseconds: 100));
} }