mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
new: webdav sync test
This commit is contained in:
@@ -1406,6 +1406,12 @@ abstract class S {
|
|||||||
/// **'Terminal'**
|
/// **'Terminal'**
|
||||||
String get terminal;
|
String get terminal;
|
||||||
|
|
||||||
|
/// No description provided for @test.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Test'**
|
||||||
|
String get test;
|
||||||
|
|
||||||
/// No description provided for @theme.
|
/// No description provided for @theme.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|||||||
@@ -688,6 +688,9 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get terminal => 'Terminal';
|
String get terminal => 'Terminal';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get test => 'Prüfung';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get theme => 'Themen';
|
String get theme => 'Themen';
|
||||||
|
|
||||||
|
|||||||
@@ -688,6 +688,9 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get terminal => 'Terminal';
|
String get terminal => 'Terminal';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get test => 'Test';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get theme => 'Theme';
|
String get theme => 'Theme';
|
||||||
|
|
||||||
|
|||||||
@@ -688,6 +688,9 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get terminal => 'Terminal';
|
String get terminal => 'Terminal';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get test => 'pengujian';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get theme => ' Tema';
|
String get theme => ' Tema';
|
||||||
|
|
||||||
|
|||||||
@@ -688,6 +688,9 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get terminal => '终端';
|
String get terminal => '终端';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get test => '测试';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get theme => '主题';
|
String get theme => '主题';
|
||||||
|
|
||||||
@@ -1477,6 +1480,9 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get terminal => '终端機';
|
String get terminal => '终端機';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get test => '測試';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get theme => '主題';
|
String get theme => '主題';
|
||||||
|
|
||||||
|
|||||||
@@ -586,7 +586,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -596,7 +596,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
@@ -720,7 +720,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -730,7 +730,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
@@ -748,7 +748,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -758,7 +758,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
@@ -779,7 +779,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -792,7 +792,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
@@ -818,7 +818,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -831,7 +831,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -854,7 +854,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -867,7 +867,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -890,7 +890,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -902,7 +902,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
@@ -931,7 +931,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -943,7 +943,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
PRODUCT_NAME = ServerBox;
|
PRODUCT_NAME = ServerBox;
|
||||||
@@ -969,7 +969,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 654;
|
CURRENT_PROJECT_VERSION = 660;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -981,7 +981,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.654;
|
MARKETING_VERSION = 1.0.660;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
PRODUCT_NAME = ServerBox;
|
PRODUCT_NAME = ServerBox;
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ class PersistentStore {
|
|||||||
//encryptionCipher: SecureStore._cipher,
|
//encryptionCipher: SecureStore._cipher,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
/// Get all db filenames.
|
/// Get all db filenames.
|
||||||
///
|
///
|
||||||
/// - [suffixs] defaults to ['.hive']
|
/// - [suffixs] defaults to ['.hive']
|
||||||
@@ -69,7 +68,6 @@ class PersistentStore {
|
|||||||
files.map((e) => e.path.replaceFirst('$docPath/', '')).toList();
|
files.map((e) => e.path.replaceFirst('$docPath/', '')).toList();
|
||||||
return paths;
|
return paths;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension BoxX on Box {
|
extension BoxX on Box {
|
||||||
|
|||||||
@@ -16,6 +16,17 @@ abstract final class Webdav {
|
|||||||
pwd: Stores.setting.webdavPwd.fetch(),
|
pwd: Stores.setting.webdavPwd.fetch(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
static Future<String?> test(String url, String user, String pwd) async {
|
||||||
|
final client = WebdavClient(url: url, user: user, pwd: pwd);
|
||||||
|
try {
|
||||||
|
await client.ping();
|
||||||
|
return null;
|
||||||
|
} catch (e, s) {
|
||||||
|
Loggers.app.warning('Webdav test failed', e, s);
|
||||||
|
return e.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static Future<WebdavErr?> upload({
|
static Future<WebdavErr?> upload({
|
||||||
required String relativePath,
|
required String relativePath,
|
||||||
String? localPath,
|
String? localPath,
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ enum ErrFrom {
|
|||||||
ssh,
|
ssh,
|
||||||
status,
|
status,
|
||||||
icloud,
|
icloud,
|
||||||
webdav,;
|
webdav,
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class Err<T> {
|
abstract class Err<T> {
|
||||||
@@ -73,7 +74,8 @@ class ICloudErr extends Err<ICloudErrType> {
|
|||||||
|
|
||||||
enum WebdavErrType {
|
enum WebdavErrType {
|
||||||
generic,
|
generic,
|
||||||
notFound,;
|
notFound,
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
class WebdavErr extends Err<WebdavErrType> {
|
class WebdavErr extends Err<WebdavErrType> {
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
abstract class RemoteStorage {
|
|
||||||
Future<Error> upload({
|
|
||||||
required String relativePath,
|
|
||||||
String? localPath
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<Error> download({
|
|
||||||
required String relativePath,
|
|
||||||
String? localPath
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<Error> delete(String relativePath);
|
|
||||||
}
|
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
class BuildData {
|
class BuildData {
|
||||||
static const String name = "ServerBox";
|
static const String name = "ServerBox";
|
||||||
static const int build = 654;
|
static const int build = 660;
|
||||||
static const String engine = "3.16.2";
|
static const String engine = "3.16.2";
|
||||||
static const String buildAt = "2023-12-02 00:21:29";
|
static const String buildAt = "2023-12-04 13:43:20";
|
||||||
static const int modifications = 2;
|
static const int modifications = 11;
|
||||||
static const int script = 31;
|
static const int script = 31;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -218,6 +218,7 @@
|
|||||||
"tag": "Tags",
|
"tag": "Tags",
|
||||||
"temperature": "Temperatur",
|
"temperature": "Temperatur",
|
||||||
"terminal": "Terminal",
|
"terminal": "Terminal",
|
||||||
|
"test": "Prüfung",
|
||||||
"theme": "Themen",
|
"theme": "Themen",
|
||||||
"themeMode": "Themen-Modus",
|
"themeMode": "Themen-Modus",
|
||||||
"times": "x",
|
"times": "x",
|
||||||
|
|||||||
@@ -218,6 +218,7 @@
|
|||||||
"tag": "Tags",
|
"tag": "Tags",
|
||||||
"temperature": "Temperature",
|
"temperature": "Temperature",
|
||||||
"terminal": "Terminal",
|
"terminal": "Terminal",
|
||||||
|
"test": "Test",
|
||||||
"theme": "Theme",
|
"theme": "Theme",
|
||||||
"themeMode": "Theme mode",
|
"themeMode": "Theme mode",
|
||||||
"times": "Times",
|
"times": "Times",
|
||||||
|
|||||||
@@ -218,6 +218,7 @@
|
|||||||
"tag": "Tag",
|
"tag": "Tag",
|
||||||
"temperature": "Suhu",
|
"temperature": "Suhu",
|
||||||
"terminal": "Terminal",
|
"terminal": "Terminal",
|
||||||
|
"test": "pengujian",
|
||||||
"theme": " Tema",
|
"theme": " Tema",
|
||||||
"themeMode": "Mode tema",
|
"themeMode": "Mode tema",
|
||||||
"times": "Waktu",
|
"times": "Waktu",
|
||||||
|
|||||||
@@ -218,6 +218,7 @@
|
|||||||
"tag": "标签",
|
"tag": "标签",
|
||||||
"temperature": "温度",
|
"temperature": "温度",
|
||||||
"terminal": "终端",
|
"terminal": "终端",
|
||||||
|
"test": "测试",
|
||||||
"theme": "主题",
|
"theme": "主题",
|
||||||
"themeMode": "主题模式",
|
"themeMode": "主题模式",
|
||||||
"times": "次",
|
"times": "次",
|
||||||
|
|||||||
@@ -218,6 +218,7 @@
|
|||||||
"tag": "标签",
|
"tag": "标签",
|
||||||
"temperature": "溫度",
|
"temperature": "溫度",
|
||||||
"terminal": "终端機",
|
"terminal": "终端機",
|
||||||
|
"test": "測試",
|
||||||
"theme": "主題",
|
"theme": "主題",
|
||||||
"themeMode": "主題模式",
|
"themeMode": "主題模式",
|
||||||
"times": "次",
|
"times": "次",
|
||||||
|
|||||||
@@ -119,9 +119,8 @@ class BackupPage extends StatelessWidget {
|
|||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await backup.restore(force: true);
|
await backup.restore(force: true);
|
||||||
Pros.reload();
|
|
||||||
context.pop();
|
context.pop();
|
||||||
RebuildNodes.app.rebuild();
|
_reload();
|
||||||
},
|
},
|
||||||
child: Text(l10n.ok),
|
child: Text(l10n.ok),
|
||||||
),
|
),
|
||||||
@@ -156,6 +155,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
icloudLoading.value = true;
|
icloudLoading.value = true;
|
||||||
await ICloud.sync();
|
await ICloud.sync();
|
||||||
icloudLoading.value = false;
|
icloudLoading.value = false;
|
||||||
|
_reload();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -195,6 +195,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
await compute(Backup.fromJsonString, dlFile);
|
await compute(Backup.fromJsonString, dlFile);
|
||||||
await dlBak.restore(force: true);
|
await dlBak.restore(force: true);
|
||||||
icloudLoading.value = false;
|
icloudLoading.value = false;
|
||||||
|
_reload();
|
||||||
},
|
},
|
||||||
child: Text(l10n.download),
|
child: Text(l10n.download),
|
||||||
),
|
),
|
||||||
@@ -251,7 +252,8 @@ class BackupPage extends StatelessWidget {
|
|||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
Input(
|
Input(
|
||||||
label: 'url',
|
label: 'URL',
|
||||||
|
hint: 'https://example.com/webdav/',
|
||||||
controller: urlCtrl,
|
controller: urlCtrl,
|
||||||
),
|
),
|
||||||
Input(
|
Input(
|
||||||
@@ -271,6 +273,21 @@ class BackupPage extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
child: Text(l10n.ok),
|
child: Text(l10n.ok),
|
||||||
),
|
),
|
||||||
|
TextButton(
|
||||||
|
onPressed: () async {
|
||||||
|
final result = await Webdav.test(
|
||||||
|
urlCtrl.text,
|
||||||
|
userCtrl.text,
|
||||||
|
pwdCtrl.text,
|
||||||
|
);
|
||||||
|
if (result == null) {
|
||||||
|
context.showSnackBar(l10n.success);
|
||||||
|
} else {
|
||||||
|
context.showSnackBar(result);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: Text(l10n.test),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
if (result == true) {
|
if (result == true) {
|
||||||
@@ -294,6 +311,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
webdavLoading.value = true;
|
webdavLoading.value = true;
|
||||||
await Webdav.sync();
|
await Webdav.sync();
|
||||||
webdavLoading.value = false;
|
webdavLoading.value = false;
|
||||||
|
_reload();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -334,6 +352,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
await compute(Backup.fromJsonString, dlFile);
|
await compute(Backup.fromJsonString, dlFile);
|
||||||
await dlBak.restore(force: true);
|
await dlBak.restore(force: true);
|
||||||
webdavLoading.value = false;
|
webdavLoading.value = false;
|
||||||
|
_reload();
|
||||||
},
|
},
|
||||||
child: Text(l10n.download),
|
child: Text(l10n.download),
|
||||||
),
|
),
|
||||||
@@ -363,4 +382,9 @@ class BackupPage extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _reload() {
|
||||||
|
Pros.reload();
|
||||||
|
RebuildNodes.app.rebuild();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import 'dart:async';
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:code_text_field/code_text_field.dart';
|
import 'package:code_text_field/code_text_field.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_highlight/theme_map.dart';
|
import 'package:flutter_highlight/theme_map.dart';
|
||||||
import 'package:flutter_highlight/themes/a11y-light.dart';
|
import 'package:flutter_highlight/themes/a11y-light.dart';
|
||||||
@@ -64,15 +65,25 @@ class _EditorPageState extends State<EditorPage> {
|
|||||||
language: Highlights.all[_langCode],
|
language: Highlights.all[_langCode],
|
||||||
);
|
);
|
||||||
|
|
||||||
/// TODO: This is a temporary solution to avoid the loading stuck
|
if (_langCode == null) {
|
||||||
Future.delayed(const Duration(milliseconds: 377)).then((value) async {
|
_setupCtrl();
|
||||||
if (widget.path != null) {
|
} else {
|
||||||
final code = await File(widget.path!).readAsString();
|
Future.delayed(const Duration(milliseconds: 377)).then(
|
||||||
_controller.text = code;
|
(value) async => await _setupCtrl(),
|
||||||
} else if (widget.text != null) {
|
);
|
||||||
_controller.text = widget.text!;
|
}
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
Future<void> _setupCtrl() async {
|
||||||
|
if (widget.path != null) {
|
||||||
|
final code = await compute(
|
||||||
|
(path) async => await File(path).readAsString(),
|
||||||
|
widget.path!,
|
||||||
|
);
|
||||||
|
_controller.text = code;
|
||||||
|
} else if (widget.text != null) {
|
||||||
|
_controller.text = widget.text!;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
Reference in New Issue
Block a user