opt.: backup page

This commit is contained in:
lollipopkit
2023-10-17 20:27:47 +08:00
parent 8ce2cc579c
commit cf231f9fe6
12 changed files with 70 additions and 36 deletions

View File

@@ -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.

View File

@@ -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';

View File

@@ -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';

View File

@@ -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';

View File

@@ -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 => '系統';

View File

@@ -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,

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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": "终端",

View File

@@ -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": "终端機",

View File

@@ -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),
), ),