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