fix: webdav settings (#683)

This commit is contained in:
lollipopkit🏳️‍⚧️
2025-01-29 13:13:12 +08:00
committed by GitHub
parent 16948c3e0f
commit dbbb10364b
4 changed files with 28 additions and 90 deletions

View File

@@ -1,7 +1,6 @@
import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/data/store/container.dart';
import 'package:server_box/data/store/history.dart';
import 'package:server_box/data/store/no_backup.dart';
import 'package:server_box/data/store/private_key.dart';
import 'package:server_box/data/store/server.dart';
import 'package:server_box/data/store/setting.dart';
@@ -27,7 +26,6 @@ abstract final class Stores {
static Future<void> init() async {
await Future.wait(_allBackup.map((store) => store.init()));
await NoBackupStore.instance.init();
}
static DateTime? get lastModTime {

View File

@@ -1,72 +0,0 @@
// ignore_for_file: non_constant_identifier_names
import 'package:fl_lib/fl_lib.dart';
import 'package:server_box/data/res/store.dart';
final class NoBackupStore extends HiveStore {
NoBackupStore._() : super('no_backup');
static final instance = NoBackupStore._();
/// Only valid on iOS and macOS
late final _icloudSync = propertyDefault('icloudSync', false);
/// Webdav sync
late final webdavSync = propertyDefault('webdavSync', false);
late final webdavUrl = propertyDefault('webdavUrl', '');
late final webdavUser = propertyDefault('webdavUser', '');
late final webdavPwd = propertyDefault('webdavPwd', '');
void migrate(int lastVer) {
if (lastVer > 1104) return;
// Settings store -> NoBackup store
final settings = Stores.setting;
final icloudSync_ = settings.box.get('icloudSync');
if (icloudSync_ is bool) {
_icloudSync.set(icloudSync_);
settings.box.delete('icloudSync');
}
final webdavSync_ = settings.box.get('webdavSync');
if (webdavSync_ is bool) {
webdavSync.set(webdavSync_);
settings.box.delete('webdavSync');
}
final webdavUrl_ = settings.box.get('webdavUrl');
if (webdavUrl_ is String) {
webdavUrl.set(webdavUrl_);
settings.box.delete('webdavUrl');
}
final webdavUser_ = settings.box.get('webdavUser');
if (webdavUser_ is String) {
webdavUser.set(webdavUser_);
settings.box.delete('webdavUser');
}
final webdavPwd_ = settings.box.get('webdavPwd');
if (webdavPwd_ is String) {
webdavPwd.set(webdavPwd_);
settings.box.delete('webdavPwd');
}
// NoBackup store -> Pref store
final icloudSync__ = _icloudSync.get();
PrefProps.icloudSync.set(icloudSync__);
_icloudSync.remove();
final webdavSync__ = webdavSync.get();
PrefProps.webdavSync.set(webdavSync__);
webdavSync.remove();
final webdavUrl__ = webdavUrl.get();
PrefProps.webdavUrl.set(webdavUrl__);
webdavUrl.remove();
final webdavUser__ = webdavUser.get();
PrefProps.webdavUser.set(webdavUser__);
webdavUser.remove();
final webdavPwd__ = webdavPwd.get();
PrefProps.webdavPwd.set(webdavPwd__);
webdavPwd.remove();
}
}