mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
Fix webdav prevent immediate upload when webdavAutoSync toggle (#221)
This commit is contained in:
@@ -190,6 +190,7 @@
|
||||
"Operation": "操作",
|
||||
"Upload": "上传",
|
||||
"Saved": "已保存",
|
||||
"Saved Failed": "保存失败",
|
||||
"Sync Data": "同步数据",
|
||||
"Syncing Data": "正在同步数据",
|
||||
"Data Sync": "数据同步",
|
||||
@@ -553,6 +554,7 @@
|
||||
"Operation": "操作",
|
||||
"Upload": "上傳",
|
||||
"Saved": "已保存",
|
||||
"Saved Failed": "保存失敗",
|
||||
"Sync Data": "同步數據",
|
||||
"Syncing Data": "正在同步數據",
|
||||
"Data Sync": "數據同步",
|
||||
|
@@ -56,6 +56,18 @@ void _checkOldConfigs() {
|
||||
.map((e) => e.key)
|
||||
.toList();
|
||||
}
|
||||
|
||||
if (appdata.implicitData['webdavAutoSync'] == null) {
|
||||
var webdavConfig = appdata.settings['webdav'];
|
||||
if (webdavConfig is List &&
|
||||
webdavConfig.length == 3 &&
|
||||
webdavConfig.whereType<String>().length == 3) {
|
||||
appdata.implicitData['webdavAutoSync'] = true;
|
||||
} else {
|
||||
appdata.implicitData['webdavAutoSync'] = false;
|
||||
}
|
||||
appdata.writeImplicitData();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _checkAppUpdates() async {
|
||||
|
@@ -350,7 +350,15 @@ class _WebdavSettingState extends State<_WebdavSetting> {
|
||||
user = configs[1];
|
||||
pass = configs[2];
|
||||
isEnabled = true;
|
||||
autoSync = appdata.settings['webdavAutoSync'] ?? false;
|
||||
autoSync = appdata.implicitData['webdavAutoSync'] ?? false;
|
||||
}
|
||||
|
||||
void onAutoSyncChanged(bool value) {
|
||||
setState(() {
|
||||
autoSync = value;
|
||||
appdata.implicitData['webdavAutoSync'] = value;
|
||||
appdata.writeImplicitData();
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -364,13 +372,7 @@ class _WebdavSettingState extends State<_WebdavSetting> {
|
||||
SwitchListTile(
|
||||
title: Text("WebDAV Auto Sync".tl),
|
||||
value: autoSync,
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
autoSync = value;
|
||||
appdata.settings['webdavAutoSync'] = value;
|
||||
appdata.saveData();
|
||||
});
|
||||
},
|
||||
onChanged: onAutoSyncChanged,
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
TextField(
|
||||
@@ -448,11 +450,14 @@ class _WebdavSettingState extends State<_WebdavSetting> {
|
||||
isLoading: isTesting,
|
||||
onPressed: () async {
|
||||
var oldConfig = appdata.settings['webdav'];
|
||||
var oldAutoSync = appdata.settings['webdavAutoSync'];
|
||||
|
||||
if (url.trim().isEmpty && user.trim().isEmpty && pass.trim().isEmpty) {
|
||||
var oldAutoSync = appdata.implicitData['webdavAutoSync'];
|
||||
|
||||
if (url.trim().isEmpty &&
|
||||
user.trim().isEmpty &&
|
||||
pass.trim().isEmpty) {
|
||||
appdata.settings['webdav'] = [];
|
||||
appdata.settings['webdavAutoSync'] = false;
|
||||
appdata.implicitData['webdavAutoSync'] = false;
|
||||
appdata.writeImplicitData();
|
||||
appdata.saveData();
|
||||
context.showMessage(message: "Saved".tl);
|
||||
App.rootPop();
|
||||
@@ -460,7 +465,8 @@ class _WebdavSettingState extends State<_WebdavSetting> {
|
||||
}
|
||||
|
||||
appdata.settings['webdav'] = [url, user, pass];
|
||||
appdata.settings['webdavAutoSync'] = autoSync;
|
||||
appdata.implicitData['webdavAutoSync'] = autoSync;
|
||||
appdata.writeImplicitData();
|
||||
|
||||
if (!autoSync) {
|
||||
appdata.saveData();
|
||||
@@ -480,13 +486,16 @@ class _WebdavSettingState extends State<_WebdavSetting> {
|
||||
isTesting = false;
|
||||
});
|
||||
appdata.settings['webdav'] = oldConfig;
|
||||
appdata.settings['webdavAutoSync'] = oldAutoSync;
|
||||
appdata.implicitData['webdavAutoSync'] = oldAutoSync;
|
||||
appdata.writeImplicitData();
|
||||
appdata.saveData();
|
||||
context.showMessage(message: testResult.errorMessage!);
|
||||
return;
|
||||
context.showMessage(message: "Saved Failed".tl);
|
||||
} else {
|
||||
appdata.saveData();
|
||||
context.showMessage(message: "Saved".tl);
|
||||
App.rootPop();
|
||||
}
|
||||
appdata.saveData();
|
||||
context.showMessage(message: "Saved".tl);
|
||||
App.rootPop();
|
||||
},
|
||||
child: Text("Continue".tl),
|
||||
),
|
||||
|
@@ -44,7 +44,7 @@ class DataSync with ChangeNotifier {
|
||||
|
||||
bool get isEnabled {
|
||||
var config = appdata.settings['webdav'];
|
||||
var autoSync = appdata.settings['webdavAutoSync'] ?? false;
|
||||
var autoSync = appdata.implicitData['webdavAutoSync'] ?? false;
|
||||
return autoSync && config is List && config.isNotEmpty;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user