mangayomi/lib/modules/more/settings/sync/providers/sync_providers.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);
});
}
}