45 lines
1.1 KiB
Dart
45 lines
1.1 KiB
Dart
import 'package:mangayomi/main.dart';
|
|
import 'package:mangayomi/models/sync_preference.dart';
|
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|
part 'sync_providers.g.dart';
|
|
|
|
@riverpod
|
|
class Synching extends _$Synching {
|
|
@override
|
|
SyncPreference? build({required int? syncId}) {
|
|
return isar.syncPreferences.getSync(syncId!);
|
|
}
|
|
|
|
void login(SyncPreference syncPreference) {
|
|
isar.writeTxnSync(() {
|
|
isar.syncPreferences.putSync(syncPreference);
|
|
});
|
|
}
|
|
|
|
void logout() {
|
|
isar.writeTxnSync(() {
|
|
isar.syncPreferences.deleteSync(syncId!);
|
|
});
|
|
}
|
|
|
|
void setLastUpload(int timestamp) {
|
|
isar.writeTxnSync(() {
|
|
isar.syncPreferences.putSync(
|
|
isar.syncPreferences.getSync(syncId!)!..lastUpload = timestamp);
|
|
});
|
|
}
|
|
|
|
void setLastDownload(int timestamp) {
|
|
isar.writeTxnSync(() {
|
|
isar.syncPreferences.putSync(
|
|
isar.syncPreferences.getSync(syncId!)!..lastDownload = timestamp);
|
|
});
|
|
}
|
|
|
|
void setServer(String? server) {
|
|
isar.writeTxnSync(() {
|
|
isar.syncPreferences
|
|
.putSync(isar.syncPreferences.getSync(syncId!)!..server = server);
|
|
});
|
|
}
|
|
}
|