mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 15:24:35 +01:00
opt.: backup page
This commit is contained in:
@@ -806,6 +806,12 @@ abstract class S {
|
|||||||
/// **'Made with ❤️ by {myGithub}'**
|
/// **'Made with ❤️ by {myGithub}'**
|
||||||
String madeWithLove(Object myGithub);
|
String madeWithLove(Object myGithub);
|
||||||
|
|
||||||
|
/// No description provided for @manual.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Manual'**
|
||||||
|
String get manual;
|
||||||
|
|
||||||
/// No description provided for @max.
|
/// No description provided for @max.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -1325,7 +1331,7 @@ abstract class S {
|
|||||||
/// No description provided for @syncTip.
|
/// No description provided for @syncTip.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'After auto sync, a restart may be required for some changes to take effect.'**
|
/// **'A restart may be required for some changes to take effect.'**
|
||||||
String get syncTip;
|
String get syncTip;
|
||||||
|
|
||||||
/// No description provided for @system.
|
/// No description provided for @system.
|
||||||
|
|||||||
@@ -380,6 +380,9 @@ class SDe extends S {
|
|||||||
return 'Erstellt mit ❤️ von $myGithub';
|
return 'Erstellt mit ❤️ von $myGithub';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manual => 'Handbuch';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get max => 'max';
|
String get max => 'max';
|
||||||
|
|
||||||
@@ -647,7 +650,7 @@ class SDe extends S {
|
|||||||
String get suspendTip => 'Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.';
|
String get suspendTip => 'Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get syncTip => 'Nach der automatischen Synchronisierung kann es erforderlich sein, die App neu zu starten, damit bestimmte Änderungen wirksam werden.';
|
String get syncTip => 'Damit einige Änderungen wirksam werden, kann ein Neustart erforderlich sein.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get system => 'Systeme';
|
String get system => 'Systeme';
|
||||||
|
|||||||
@@ -380,6 +380,9 @@ class SEn extends S {
|
|||||||
return 'Made with ❤️ by $myGithub';
|
return 'Made with ❤️ by $myGithub';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manual => 'Manual';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get max => 'max';
|
String get max => 'max';
|
||||||
|
|
||||||
@@ -647,7 +650,7 @@ class SEn extends S {
|
|||||||
String get suspendTip => 'The suspend function requires root privileges and systemd support.';
|
String get suspendTip => 'The suspend function requires root privileges and systemd support.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get syncTip => 'After auto sync, a restart may be required for some changes to take effect.';
|
String get syncTip => 'A restart may be required for some changes to take effect.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get system => 'System';
|
String get system => 'System';
|
||||||
|
|||||||
@@ -380,6 +380,9 @@ class SId extends S {
|
|||||||
return 'Dibuat dengan ❤️ oleh $myGithub';
|
return 'Dibuat dengan ❤️ oleh $myGithub';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manual => 'Manual';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get max => 'Max';
|
String get max => 'Max';
|
||||||
|
|
||||||
@@ -647,7 +650,7 @@ class SId extends S {
|
|||||||
String get suspendTip => 'Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.';
|
String get suspendTip => 'Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get syncTip => 'Setelah sinkronisasi otomatis, mungkin perlu memulai ulang aplikasi agar perubahan tertentu dapat diterapkan.';
|
String get syncTip => 'Pengaktifan ulang mungkin diperlukan agar beberapa perubahan dapat diterapkan.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get system => 'Sistem';
|
String get system => 'Sistem';
|
||||||
|
|||||||
@@ -380,6 +380,9 @@ class SZh extends S {
|
|||||||
return '用❤️制作 by $myGithub';
|
return '用❤️制作 by $myGithub';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manual => '手动';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get max => '最大';
|
String get max => '最大';
|
||||||
|
|
||||||
@@ -647,7 +650,7 @@ class SZh extends S {
|
|||||||
String get suspendTip => 'suspend 功能需要 root 权限及 systemd 支持。';
|
String get suspendTip => 'suspend 功能需要 root 权限及 systemd 支持。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get syncTip => '在自动同步后,可能需要重新启动,某些更改才能生效。';
|
String get syncTip => '可能需要重新启动,某些更改才能生效。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get system => '系统';
|
String get system => '系统';
|
||||||
@@ -1136,6 +1139,9 @@ class SZhTw extends SZh {
|
|||||||
return '用❤️製作 by $myGithub';
|
return '用❤️製作 by $myGithub';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get manual => '手動';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get max => '最大';
|
String get max => '最大';
|
||||||
|
|
||||||
@@ -1403,7 +1409,7 @@ class SZhTw extends SZh {
|
|||||||
String get suspendTip => 'suspend 功能需要 root 權限及 systemd 支持。';
|
String get suspendTip => 'suspend 功能需要 root 權限及 systemd 支持。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get syncTip => '在自動同步後,可能需要重新啟動,某些更改才能生效。';
|
String get syncTip => '可能需要重新啟動,某些更改才能生效。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get system => '系統';
|
String get system => '系統';
|
||||||
|
|||||||
@@ -47,6 +47,14 @@ class UIs {
|
|||||||
|
|
||||||
static const centerLoading = Center(child: CircularProgressIndicator());
|
static const centerLoading = Center(child: CircularProgressIndicator());
|
||||||
|
|
||||||
|
static const centerSizedLoadingSmall = SizedBox(
|
||||||
|
width: 23,
|
||||||
|
height: 23,
|
||||||
|
child: Center(
|
||||||
|
child: CircularProgressIndicator(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
static const centerSizedLoading = SizedBox(
|
static const centerSizedLoading = SizedBox(
|
||||||
width: 77,
|
width: 77,
|
||||||
height: 77,
|
height: 77,
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
"log": "Log",
|
"log": "Log",
|
||||||
"loss": "loss",
|
"loss": "loss",
|
||||||
"madeWithLove": "Erstellt mit ❤️ von {myGithub}",
|
"madeWithLove": "Erstellt mit ❤️ von {myGithub}",
|
||||||
|
"manual": "Handbuch",
|
||||||
"max": "max",
|
"max": "max",
|
||||||
"maxRetryCount": "Anzahl an Verbindungsversuchen",
|
"maxRetryCount": "Anzahl an Verbindungsversuchen",
|
||||||
"maxRetryCountEqual0": "Unbegrenzte Verbindungsversuche zum Server",
|
"maxRetryCountEqual0": "Unbegrenzte Verbindungsversuche zum Server",
|
||||||
@@ -204,7 +205,7 @@
|
|||||||
"success": "Erfolgreich",
|
"success": "Erfolgreich",
|
||||||
"suspend": "Suspend",
|
"suspend": "Suspend",
|
||||||
"suspendTip": "Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.",
|
"suspendTip": "Die Suspend-Funktion erfordert Root-Rechte und systemd-Unterstützung.",
|
||||||
"syncTip": "Nach der automatischen Synchronisierung kann es erforderlich sein, die App neu zu starten, damit bestimmte Änderungen wirksam werden.",
|
"syncTip": "Damit einige Änderungen wirksam werden, kann ein Neustart erforderlich sein.",
|
||||||
"system": "Systeme",
|
"system": "Systeme",
|
||||||
"tag": "Tags",
|
"tag": "Tags",
|
||||||
"terminal": "Terminal",
|
"terminal": "Terminal",
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
"log": "Log",
|
"log": "Log",
|
||||||
"loss": "loss",
|
"loss": "loss",
|
||||||
"madeWithLove": "Made with ❤️ by {myGithub}",
|
"madeWithLove": "Made with ❤️ by {myGithub}",
|
||||||
|
"manual": "Manual",
|
||||||
"max": "max",
|
"max": "max",
|
||||||
"maxRetryCount": "Number of server reconnection",
|
"maxRetryCount": "Number of server reconnection",
|
||||||
"maxRetryCountEqual0": "Will retry again and again.",
|
"maxRetryCountEqual0": "Will retry again and again.",
|
||||||
@@ -204,7 +205,7 @@
|
|||||||
"success": "Success",
|
"success": "Success",
|
||||||
"suspend": "Suspend",
|
"suspend": "Suspend",
|
||||||
"suspendTip": "The suspend function requires root privileges and systemd support.",
|
"suspendTip": "The suspend function requires root privileges and systemd support.",
|
||||||
"syncTip": "After auto sync, a restart may be required for some changes to take effect.",
|
"syncTip": "A restart may be required for some changes to take effect.",
|
||||||
"system": "System",
|
"system": "System",
|
||||||
"tag": "Tags",
|
"tag": "Tags",
|
||||||
"terminal": "Terminal",
|
"terminal": "Terminal",
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
"log": "Catatan",
|
"log": "Catatan",
|
||||||
"loss": "kehilangan",
|
"loss": "kehilangan",
|
||||||
"madeWithLove": "Dibuat dengan ❤️ oleh {myGithub}",
|
"madeWithLove": "Dibuat dengan ❤️ oleh {myGithub}",
|
||||||
|
"manual": "Manual",
|
||||||
"max": "Max",
|
"max": "Max",
|
||||||
"maxRetryCount": "Jumlah penyambungan kembali server",
|
"maxRetryCount": "Jumlah penyambungan kembali server",
|
||||||
"maxRetryCountEqual0": "Akan mencoba lagi lagi dan lagi.",
|
"maxRetryCountEqual0": "Akan mencoba lagi lagi dan lagi.",
|
||||||
@@ -204,7 +205,7 @@
|
|||||||
"success": "Kesuksesan",
|
"success": "Kesuksesan",
|
||||||
"suspend": "Suspend",
|
"suspend": "Suspend",
|
||||||
"suspendTip": "Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.",
|
"suspendTip": "Fungsi penangguhan memerlukan hak akses root dan dukungan systemd.",
|
||||||
"syncTip": "Setelah sinkronisasi otomatis, mungkin perlu memulai ulang aplikasi agar perubahan tertentu dapat diterapkan.",
|
"syncTip": "Pengaktifan ulang mungkin diperlukan agar beberapa perubahan dapat diterapkan.",
|
||||||
"system": "Sistem",
|
"system": "Sistem",
|
||||||
"tag": "Tag",
|
"tag": "Tag",
|
||||||
"terminal": "Terminal",
|
"terminal": "Terminal",
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
"log": "日志",
|
"log": "日志",
|
||||||
"loss": "丢包率",
|
"loss": "丢包率",
|
||||||
"madeWithLove": "用❤️制作 by {myGithub}",
|
"madeWithLove": "用❤️制作 by {myGithub}",
|
||||||
|
"manual": "手动",
|
||||||
"max": "最大",
|
"max": "最大",
|
||||||
"maxRetryCount": "服务器尝试重连次数",
|
"maxRetryCount": "服务器尝试重连次数",
|
||||||
"maxRetryCountEqual0": "会无限重试",
|
"maxRetryCountEqual0": "会无限重试",
|
||||||
@@ -204,7 +205,7 @@
|
|||||||
"success": "成功",
|
"success": "成功",
|
||||||
"suspend": "挂起",
|
"suspend": "挂起",
|
||||||
"suspendTip": "suspend 功能需要 root 权限及 systemd 支持。",
|
"suspendTip": "suspend 功能需要 root 权限及 systemd 支持。",
|
||||||
"syncTip": "在自动同步后,可能需要重新启动,某些更改才能生效。",
|
"syncTip": "可能需要重新启动,某些更改才能生效。",
|
||||||
"system": "系统",
|
"system": "系统",
|
||||||
"tag": "标签",
|
"tag": "标签",
|
||||||
"terminal": "终端",
|
"terminal": "终端",
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
"log": "日誌",
|
"log": "日誌",
|
||||||
"loss": "丟包率",
|
"loss": "丟包率",
|
||||||
"madeWithLove": "用❤️製作 by {myGithub}",
|
"madeWithLove": "用❤️製作 by {myGithub}",
|
||||||
|
"manual": "手動",
|
||||||
"max": "最大",
|
"max": "最大",
|
||||||
"maxRetryCount": "服務器嘗試重連次數",
|
"maxRetryCount": "服務器嘗試重連次數",
|
||||||
"maxRetryCountEqual0": "會無限重試",
|
"maxRetryCountEqual0": "會無限重試",
|
||||||
@@ -204,7 +205,7 @@
|
|||||||
"success": "成功",
|
"success": "成功",
|
||||||
"suspend": "挂起",
|
"suspend": "挂起",
|
||||||
"suspendTip": "suspend 功能需要 root 權限及 systemd 支持。",
|
"suspendTip": "suspend 功能需要 root 權限及 systemd 支持。",
|
||||||
"syncTip": "在自動同步後,可能需要重新啟動,某些更改才能生效。",
|
"syncTip": "可能需要重新啟動,某些更改才能生效。",
|
||||||
"system": "系統",
|
"system": "系統",
|
||||||
"tag": "标签",
|
"tag": "标签",
|
||||||
"terminal": "终端機",
|
"terminal": "终端機",
|
||||||
|
|||||||
@@ -52,31 +52,29 @@ class BackupPage extends StatelessWidget {
|
|||||||
|
|
||||||
Widget _buildManual(BuildContext context) {
|
Widget _buildManual(BuildContext context) {
|
||||||
return CardX(
|
return CardX(
|
||||||
ListTile(
|
ExpandTile(
|
||||||
title: Text(l10n.files),
|
title: Text(l10n.files),
|
||||||
|
initiallyExpanded: true,
|
||||||
|
children: [
|
||||||
|
ListTile(
|
||||||
|
title: Text(l10n.backup),
|
||||||
|
trailing: const Icon(Icons.save),
|
||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
l10n.backupTip,
|
l10n.backupTip,
|
||||||
style: UIs.textGrey,
|
style: UIs.textGrey,
|
||||||
),
|
),
|
||||||
trailing: SizedBox(
|
onTap: () async {
|
||||||
width: 120,
|
|
||||||
child: Row(
|
|
||||||
children: [
|
|
||||||
TextButton(
|
|
||||||
onPressed: () => _onRestore(context),
|
|
||||||
child: Text(l10n.restore),
|
|
||||||
),
|
|
||||||
TextButton(
|
|
||||||
onPressed: () async {
|
|
||||||
await Backup.backup();
|
await Backup.backup();
|
||||||
await shareFiles([await Paths.bak]);
|
await shareFiles([await Paths.bak]);
|
||||||
},
|
},
|
||||||
child: Text(l10n.backup),
|
),
|
||||||
|
ListTile(
|
||||||
|
trailing: const Icon(Icons.restore),
|
||||||
|
title: Text(l10n.restore),
|
||||||
|
onTap: () => _onRestore(context),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,7 +91,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
ListTile(
|
ListTile(
|
||||||
title: Text(l10n.auto),
|
title: Text(l10n.auto),
|
||||||
subtitle: const Text(
|
subtitle: const Text(
|
||||||
'Please wait for optimization :)',
|
'Unavailable, please wait for optimization :)',
|
||||||
style: UIs.textGrey,
|
style: UIs.textGrey,
|
||||||
),
|
),
|
||||||
trailing: StoreSwitch(
|
trailing: StoreSwitch(
|
||||||
@@ -107,12 +105,12 @@ class BackupPage extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
title: Text('Manual'),
|
title: Text(l10n.manual),
|
||||||
trailing: ValueBuilder(
|
trailing: ValueBuilder(
|
||||||
listenable: icloudLoading,
|
listenable: icloudLoading,
|
||||||
build: () {
|
build: () {
|
||||||
if (icloudLoading.value) {
|
if (icloudLoading.value) {
|
||||||
return UIs.centerSizedLoading;
|
return UIs.centerSizedLoadingSmall;
|
||||||
}
|
}
|
||||||
return SizedBox(
|
return SizedBox(
|
||||||
width: 120,
|
width: 120,
|
||||||
@@ -125,6 +123,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
for (final file in files) {
|
for (final file in files) {
|
||||||
await ICloud.download(relativePath: file);
|
await ICloud.download(relativePath: file);
|
||||||
}
|
}
|
||||||
|
icloudLoading.value = false;
|
||||||
},
|
},
|
||||||
child: Text(l10n.download),
|
child: Text(l10n.download),
|
||||||
),
|
),
|
||||||
@@ -136,6 +135,7 @@ class BackupPage extends StatelessWidget {
|
|||||||
for (final file in files) {
|
for (final file in files) {
|
||||||
await ICloud.upload(relativePath: file);
|
await ICloud.upload(relativePath: file);
|
||||||
}
|
}
|
||||||
|
icloudLoading.value = false;
|
||||||
},
|
},
|
||||||
child: Text(l10n.upload),
|
child: Text(l10n.upload),
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user