mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
29
lib/app.dart
29
lib/app.dart
@@ -3,10 +3,14 @@ import 'package:fl_lib/fl_lib.dart';
|
|||||||
import 'package:fl_lib/l10n/gen_l10n/lib_l10n.dart';
|
import 'package:fl_lib/l10n/gen_l10n/lib_l10n.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||||
|
import 'package:server_box/core/extension/context/locale.dart';
|
||||||
import 'package:server_box/data/res/build_data.dart';
|
import 'package:server_box/data/res/build_data.dart';
|
||||||
import 'package:server_box/data/res/rebuild.dart';
|
import 'package:server_box/data/res/rebuild.dart';
|
||||||
import 'package:server_box/data/res/store.dart';
|
import 'package:server_box/data/res/store.dart';
|
||||||
import 'package:server_box/view/page/home/home.dart';
|
import 'package:server_box/view/page/home/home.dart';
|
||||||
|
import 'package:icons_plus/icons_plus.dart';
|
||||||
|
|
||||||
|
part 'intro.dart';
|
||||||
|
|
||||||
class MyApp extends StatelessWidget {
|
class MyApp extends StatelessWidget {
|
||||||
const MyApp({super.key});
|
const MyApp({super.key});
|
||||||
@@ -82,7 +86,30 @@ class MyApp extends StatelessWidget {
|
|||||||
|
|
||||||
Widget _buildAppContent(BuildContext ctx) {
|
Widget _buildAppContent(BuildContext ctx) {
|
||||||
//if (Pros.app.isWearOS) return const WearHome();
|
//if (Pros.app.isWearOS) return const WearHome();
|
||||||
return const HomePage();
|
return const _AppContent(
|
||||||
|
intro: _IntroPage(),
|
||||||
|
child: HomePage(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// It's used for init settings related to [BuildContext]
|
||||||
|
final class _AppContent extends StatelessWidget {
|
||||||
|
final Widget child;
|
||||||
|
final Widget intro;
|
||||||
|
|
||||||
|
const _AppContent({required this.child, required this.intro});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
context.setLibL10n();
|
||||||
|
final appL10n = AppLocalizations.of(context);
|
||||||
|
if (appL10n != null) l10n = appL10n;
|
||||||
|
|
||||||
|
final showIntro = Stores.setting.showIntro.fetch();
|
||||||
|
if (showIntro) return intro;
|
||||||
|
|
||||||
|
return child;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ abstract final class GithubIds {
|
|||||||
'geol',
|
'geol',
|
||||||
'Mooling0602',
|
'Mooling0602',
|
||||||
'IllTamer',
|
'IllTamer',
|
||||||
|
'marlkiller',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -280,6 +280,8 @@ class SettingStore extends PersistentStore {
|
|||||||
/// Format: {width}x{height}
|
/// Format: {width}x{height}
|
||||||
late final windowSize = property('windowSize', '');
|
late final windowSize = property('windowSize', '');
|
||||||
|
|
||||||
|
late final showIntro = property('showIntro', true);
|
||||||
|
|
||||||
// Never show these settings for users
|
// Never show these settings for users
|
||||||
//
|
//
|
||||||
// ------BEGIN------
|
// ------BEGIN------
|
||||||
|
|||||||
107
lib/intro.dart
Normal file
107
lib/intro.dart
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
part of 'app.dart';
|
||||||
|
|
||||||
|
final class _IntroPage extends StatelessWidget {
|
||||||
|
const _IntroPage();
|
||||||
|
|
||||||
|
static final _setting = Stores.setting;
|
||||||
|
static const _kIconSize = 23.0;
|
||||||
|
static const _introListPad = EdgeInsets.symmetric(horizontal: 17);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return LayoutBuilder(
|
||||||
|
builder: (context, cons) {
|
||||||
|
final padTop = cons.maxHeight * .2;
|
||||||
|
return IntroPage(
|
||||||
|
pages: [
|
||||||
|
_buildAppSettings(context, padTop),
|
||||||
|
_buildRecommended(context, padTop),
|
||||||
|
],
|
||||||
|
onDone: (ctx) {
|
||||||
|
//Stores.setting.showIntro.put(false);
|
||||||
|
Navigator.of(ctx).pushReplacement(
|
||||||
|
MaterialPageRoute(builder: (_) => const HomePage()),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildRecommended(BuildContext context, double padTop) {
|
||||||
|
return ListView(
|
||||||
|
padding: _introListPad,
|
||||||
|
children: [
|
||||||
|
SizedBox(height: padTop),
|
||||||
|
const Icon(Bootstrap.stars, size: 35),
|
||||||
|
SizedBox(height: padTop),
|
||||||
|
ListTile(
|
||||||
|
leading: const Icon(MingCute.delete_2_fill),
|
||||||
|
title: const Text('rm -r'),
|
||||||
|
subtitle: Text(l10n.sftpRmrDirSummary, style: UIs.textGrey),
|
||||||
|
trailing: StoreSwitch(prop: _setting.sftpRmrDir),
|
||||||
|
).cardx,
|
||||||
|
ListTile(
|
||||||
|
leading: const Icon(IonIcons.stats_chart, size: _kIconSize),
|
||||||
|
title: Text(l10n.parseContainerStats),
|
||||||
|
subtitle: Text(l10n.parseContainerStatsTip, style: UIs.textGrey),
|
||||||
|
trailing: StoreSwitch(prop: _setting.containerParseStat),
|
||||||
|
).cardx,
|
||||||
|
ListTile(
|
||||||
|
leading: const Icon(OctIcons.cpu),
|
||||||
|
title: Text('CPU ${l10n.noLineChart}'),
|
||||||
|
subtitle: Text(l10n.cpuViewAsProgressTip, style: UIs.textGrey),
|
||||||
|
trailing: StoreSwitch(prop: _setting.cpuViewAsProgress),
|
||||||
|
).cardx,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildAppSettings(BuildContext ctx, double padTop) {
|
||||||
|
return ListView(
|
||||||
|
padding: _introListPad,
|
||||||
|
children: [
|
||||||
|
SizedBox(height: padTop),
|
||||||
|
_buildTitle(l10n.init, big: true),
|
||||||
|
SizedBox(height: padTop),
|
||||||
|
ListTile(
|
||||||
|
leading: const Icon(IonIcons.language),
|
||||||
|
title: Text(l10n.language),
|
||||||
|
onTap: () async {
|
||||||
|
final selected = await ctx.showPickSingleDialog(
|
||||||
|
title: l10n.language,
|
||||||
|
items: AppLocalizations.supportedLocales,
|
||||||
|
name: (p0) => p0.code,
|
||||||
|
initial: _setting.locale.fetch().toLocale,
|
||||||
|
);
|
||||||
|
if (selected != null) {
|
||||||
|
_setting.locale.put(selected.code);
|
||||||
|
RNodes.app.build();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trailing: Text(
|
||||||
|
l10n.languageName,
|
||||||
|
style: const TextStyle(fontSize: 15, color: Colors.grey),
|
||||||
|
),
|
||||||
|
).cardx,
|
||||||
|
ListTile(
|
||||||
|
leading: const Icon(Icons.update),
|
||||||
|
title: Text(l10n.autoCheckUpdate),
|
||||||
|
subtitle: Text(l10n.fdroidReleaseTip, style: UIs.textGrey),
|
||||||
|
trailing: StoreSwitch(prop: _setting.autoCheckAppUpdate),
|
||||||
|
).cardx,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildTitle(String text, {bool big = false}) {
|
||||||
|
return Center(
|
||||||
|
child: Text(
|
||||||
|
text,
|
||||||
|
style: big
|
||||||
|
? const TextStyle(fontSize: 41, fontWeight: FontWeight.w500)
|
||||||
|
: UIs.textGrey,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "Export",
|
"export": "Export",
|
||||||
"extraArgs": "Extra args",
|
"extraArgs": "Extra args",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
|
"fdroidReleaseTip": "Wenn Sie diese App von Fdroid heruntergeladen haben, wird empfohlen, diese Option zu deaktivieren.",
|
||||||
"feedback": "Feedback",
|
"feedback": "Feedback",
|
||||||
"feedbackOnGithub": "Wenn du Fragen hast, stelle diese bitte auf Github.",
|
"feedbackOnGithub": "Wenn du Fragen hast, stelle diese bitte auf Github.",
|
||||||
"fieldMustNotEmpty": "Die Eingabefelder dürfen nicht leer sein.",
|
"fieldMustNotEmpty": "Die Eingabefelder dürfen nicht leer sein.",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "Images",
|
"imagesList": "Images",
|
||||||
"import": "Importieren",
|
"import": "Importieren",
|
||||||
"inAppUpdate": "Im App aktualisieren? Andernfalls mit einem Browser herunterladen.",
|
"inAppUpdate": "Im App aktualisieren? Andernfalls mit einem Browser herunterladen.",
|
||||||
|
"init": "Initialisieren",
|
||||||
"inner": "Eingebaut",
|
"inner": "Eingebaut",
|
||||||
"inputDomainHere": "Domain eingeben",
|
"inputDomainHere": "Domain eingeben",
|
||||||
"install": "install",
|
"install": "install",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "Export",
|
"export": "Export",
|
||||||
"extraArgs": "Extra args",
|
"extraArgs": "Extra args",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
|
"fdroidReleaseTip": "If you downloaded this app from Fdroid, it is recommended to turn off this option.",
|
||||||
"feedback": "Feedback",
|
"feedback": "Feedback",
|
||||||
"feedbackOnGithub": "If you have any questions, please feedback on Github.",
|
"feedbackOnGithub": "If you have any questions, please feedback on Github.",
|
||||||
"fieldMustNotEmpty": "These fields must not be empty.",
|
"fieldMustNotEmpty": "These fields must not be empty.",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "Images list",
|
"imagesList": "Images list",
|
||||||
"import": "Import",
|
"import": "Import",
|
||||||
"inAppUpdate": "Update within the app? Otherwise, download using a browser.",
|
"inAppUpdate": "Update within the app? Otherwise, download using a browser.",
|
||||||
|
"init": "Initialize",
|
||||||
"inner": "Inner",
|
"inner": "Inner",
|
||||||
"inputDomainHere": "Input Domain here",
|
"inputDomainHere": "Input Domain here",
|
||||||
"install": "install",
|
"install": "install",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "Exportar",
|
"export": "Exportar",
|
||||||
"extraArgs": "Argumentos extra",
|
"extraArgs": "Argumentos extra",
|
||||||
"failed": "Fallido",
|
"failed": "Fallido",
|
||||||
|
"fdroidReleaseTip": "Si descargaste esta aplicación desde Fdroid, se recomienda desactivar esta opción.",
|
||||||
"feedback": "Retroalimentación",
|
"feedback": "Retroalimentación",
|
||||||
"feedbackOnGithub": "Si tienes algún problema, por favor informa en GitHub",
|
"feedbackOnGithub": "Si tienes algún problema, por favor informa en GitHub",
|
||||||
"fieldMustNotEmpty": "Estos campos no pueden estar vacíos.",
|
"fieldMustNotEmpty": "Estos campos no pueden estar vacíos.",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "Lista de imágenes",
|
"imagesList": "Lista de imágenes",
|
||||||
"import": "Importar",
|
"import": "Importar",
|
||||||
"inAppUpdate": "¿Actualizar dentro de la app? De lo contrario, descargar usando un navegador.",
|
"inAppUpdate": "¿Actualizar dentro de la app? De lo contrario, descargar usando un navegador.",
|
||||||
|
"init": "Inicializar",
|
||||||
"inner": "Interno",
|
"inner": "Interno",
|
||||||
"inputDomainHere": "Introduce el dominio aquí",
|
"inputDomainHere": "Introduce el dominio aquí",
|
||||||
"install": "Instalar",
|
"install": "Instalar",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "Exporter",
|
"export": "Exporter",
|
||||||
"extraArgs": "Arguments supplémentaires",
|
"extraArgs": "Arguments supplémentaires",
|
||||||
"failed": "Échoué",
|
"failed": "Échoué",
|
||||||
|
"fdroidReleaseTip": "Si vous avez téléchargé cette application depuis Fdroid, il est recommandé de désactiver cette option.",
|
||||||
"feedback": "Retour",
|
"feedback": "Retour",
|
||||||
"feedbackOnGithub": "Si vous avez des questions, veuillez donner votre avis sur Github.",
|
"feedbackOnGithub": "Si vous avez des questions, veuillez donner votre avis sur Github.",
|
||||||
"fieldMustNotEmpty": "Ces champs ne doivent pas être vides.",
|
"fieldMustNotEmpty": "Ces champs ne doivent pas être vides.",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "Liste des images",
|
"imagesList": "Liste des images",
|
||||||
"import": "Importer",
|
"import": "Importer",
|
||||||
"inAppUpdate": "Mettre à jour dans l'application ? Sinon, téléchargez en utilisant un navigateur.",
|
"inAppUpdate": "Mettre à jour dans l'application ? Sinon, téléchargez en utilisant un navigateur.",
|
||||||
|
"init": "Initialiser",
|
||||||
"inner": "Interne",
|
"inner": "Interne",
|
||||||
"inputDomainHere": "Saisissez le domaine ici",
|
"inputDomainHere": "Saisissez le domaine ici",
|
||||||
"install": "Installer",
|
"install": "Installer",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "Ekspor",
|
"export": "Ekspor",
|
||||||
"extraArgs": "Args ekstra",
|
"extraArgs": "Args ekstra",
|
||||||
"failed": "Gagal",
|
"failed": "Gagal",
|
||||||
|
"fdroidReleaseTip": "Jika Anda mengunduh aplikasi ini dari Fdroid, disarankan untuk mematikan opsi ini.",
|
||||||
"feedback": "Masukan",
|
"feedback": "Masukan",
|
||||||
"feedbackOnGithub": "Jika Anda memiliki pertanyaan, silakan umpan balik tentang GitHub.",
|
"feedbackOnGithub": "Jika Anda memiliki pertanyaan, silakan umpan balik tentang GitHub.",
|
||||||
"fieldMustNotEmpty": "Bidang -bidang ini tidak boleh kosong.",
|
"fieldMustNotEmpty": "Bidang -bidang ini tidak boleh kosong.",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "Daftar gambar",
|
"imagesList": "Daftar gambar",
|
||||||
"import": "Impor",
|
"import": "Impor",
|
||||||
"inAppUpdate": "Perbarui di dalam aplikasi? Jika tidak, unduh menggunakan browser.",
|
"inAppUpdate": "Perbarui di dalam aplikasi? Jika tidak, unduh menggunakan browser.",
|
||||||
|
"init": "Menginisialisasi",
|
||||||
"inner": "Batin",
|
"inner": "Batin",
|
||||||
"inputDomainHere": "Input domain di sini",
|
"inputDomainHere": "Input domain di sini",
|
||||||
"install": "Install",
|
"install": "Install",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "エクスポート",
|
"export": "エクスポート",
|
||||||
"extraArgs": "追加引数",
|
"extraArgs": "追加引数",
|
||||||
"failed": "失敗しました",
|
"failed": "失敗しました",
|
||||||
|
"fdroidReleaseTip": "このアプリをFdroidからダウンロードした場合、このオプションをオフにすることをお勧めします。",
|
||||||
"feedback": "フィードバック",
|
"feedback": "フィードバック",
|
||||||
"feedbackOnGithub": "問題がある場合は、GitHubでフィードバックしてください",
|
"feedbackOnGithub": "問題がある場合は、GitHubでフィードバックしてください",
|
||||||
"fieldMustNotEmpty": "これらの入力フィールドは空にできません。",
|
"fieldMustNotEmpty": "これらの入力フィールドは空にできません。",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "イメージリスト",
|
"imagesList": "イメージリスト",
|
||||||
"import": "インポート",
|
"import": "インポート",
|
||||||
"inAppUpdate": "アプリ内で更新しますか?それ以外の場合は、ブラウザを使用してダウンロードしてください。",
|
"inAppUpdate": "アプリ内で更新しますか?それ以外の場合は、ブラウザを使用してダウンロードしてください。",
|
||||||
|
"init": "初期化する",
|
||||||
"inner": "内蔵",
|
"inner": "内蔵",
|
||||||
"inputDomainHere": "ここにドメインを入力",
|
"inputDomainHere": "ここにドメインを入力",
|
||||||
"install": "インストール",
|
"install": "インストール",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "Exporteren",
|
"export": "Exporteren",
|
||||||
"extraArgs": "Extra argumenten",
|
"extraArgs": "Extra argumenten",
|
||||||
"failed": "Mislukt",
|
"failed": "Mislukt",
|
||||||
|
"fdroidReleaseTip": "Als u deze app van Fdroid heeft gedownload, wordt aanbevolen deze optie uit te schakelen.",
|
||||||
"feedback": "Feedback",
|
"feedback": "Feedback",
|
||||||
"feedbackOnGithub": "Als je vragen hebt, geef dan feedback op Github.",
|
"feedbackOnGithub": "Als je vragen hebt, geef dan feedback op Github.",
|
||||||
"fieldMustNotEmpty": "Deze velden mogen niet leeg zijn.",
|
"fieldMustNotEmpty": "Deze velden mogen niet leeg zijn.",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "Lijst met afbeeldingen",
|
"imagesList": "Lijst met afbeeldingen",
|
||||||
"import": "Importeren",
|
"import": "Importeren",
|
||||||
"inAppUpdate": "Bijwerken binnen de app? Anders downloaden via een browser.",
|
"inAppUpdate": "Bijwerken binnen de app? Anders downloaden via een browser.",
|
||||||
|
"init": "Initialiseren",
|
||||||
"inner": "Intern",
|
"inner": "Intern",
|
||||||
"inputDomainHere": "Voer hier domein in",
|
"inputDomainHere": "Voer hier domein in",
|
||||||
"install": "Installeren",
|
"install": "Installeren",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "Exportar",
|
"export": "Exportar",
|
||||||
"extraArgs": "Argumentos extras",
|
"extraArgs": "Argumentos extras",
|
||||||
"failed": "Falhou",
|
"failed": "Falhou",
|
||||||
|
"fdroidReleaseTip": "Se você baixou este aplicativo do Fdroid, é recomendado desativar esta opção.",
|
||||||
"feedback": "Feedback",
|
"feedback": "Feedback",
|
||||||
"feedbackOnGithub": "Se você tem qualquer problema, por favor, dê feedback no GitHub",
|
"feedbackOnGithub": "Se você tem qualquer problema, por favor, dê feedback no GitHub",
|
||||||
"fieldMustNotEmpty": "Estes campos não podem estar vazios.",
|
"fieldMustNotEmpty": "Estes campos não podem estar vazios.",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "Lista de imagens",
|
"imagesList": "Lista de imagens",
|
||||||
"import": "Importar",
|
"import": "Importar",
|
||||||
"inAppUpdate": "Atualizar dentro do app? Caso contrário, baixe usando um navegador.",
|
"inAppUpdate": "Atualizar dentro do app? Caso contrário, baixe usando um navegador.",
|
||||||
|
"init": "Inicializar",
|
||||||
"inner": "Interno",
|
"inner": "Interno",
|
||||||
"inputDomainHere": "Insira o domínio aqui",
|
"inputDomainHere": "Insira o domínio aqui",
|
||||||
"install": "Instalar",
|
"install": "Instalar",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "экспорт",
|
"export": "экспорт",
|
||||||
"extraArgs": "дополнительные аргументы",
|
"extraArgs": "дополнительные аргументы",
|
||||||
"failed": "неудача",
|
"failed": "неудача",
|
||||||
|
"fdroidReleaseTip": "Если вы скачали это приложение с Fdroid, рекомендуется отключить эту опцию.",
|
||||||
"feedback": "обратная связь",
|
"feedback": "обратная связь",
|
||||||
"feedbackOnGithub": "Если у вас есть какие-либо вопросы, пожалуйста, отправьте отзыв на GitHub",
|
"feedbackOnGithub": "Если у вас есть какие-либо вопросы, пожалуйста, отправьте отзыв на GitHub",
|
||||||
"fieldMustNotEmpty": "Эти поля не могут быть пустыми.",
|
"fieldMustNotEmpty": "Эти поля не могут быть пустыми.",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "список образов",
|
"imagesList": "список образов",
|
||||||
"import": "импорт",
|
"import": "импорт",
|
||||||
"inAppUpdate": "Обновить в приложении? В противном случае загрузите с помощью браузера.",
|
"inAppUpdate": "Обновить в приложении? В противном случае загрузите с помощью браузера.",
|
||||||
|
"init": "Инициализировать",
|
||||||
"inner": "встроенный",
|
"inner": "встроенный",
|
||||||
"inputDomainHere": "введите домен здесь",
|
"inputDomainHere": "введите домен здесь",
|
||||||
"install": "установить",
|
"install": "установить",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "导出",
|
"export": "导出",
|
||||||
"extraArgs": "额外参数",
|
"extraArgs": "额外参数",
|
||||||
"failed": "失败",
|
"failed": "失败",
|
||||||
|
"fdroidReleaseTip": "如果你是从 Fdroid 下载的本应用,推荐关闭此选项",
|
||||||
"feedback": "反馈",
|
"feedback": "反馈",
|
||||||
"feedbackOnGithub": "如果你有任何问题,请在GitHub反馈",
|
"feedbackOnGithub": "如果你有任何问题,请在GitHub反馈",
|
||||||
"fieldMustNotEmpty": "这些输入框不能为空。",
|
"fieldMustNotEmpty": "这些输入框不能为空。",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "镜像列表",
|
"imagesList": "镜像列表",
|
||||||
"import": "导入",
|
"import": "导入",
|
||||||
"inAppUpdate": "在App内更新?否则使用浏览器下载",
|
"inAppUpdate": "在App内更新?否则使用浏览器下载",
|
||||||
|
"init": "初始化",
|
||||||
"inner": "内置",
|
"inner": "内置",
|
||||||
"inputDomainHere": "在这里输入域名",
|
"inputDomainHere": "在这里输入域名",
|
||||||
"install": "安装",
|
"install": "安装",
|
||||||
|
|||||||
@@ -101,6 +101,7 @@
|
|||||||
"export": "導出",
|
"export": "導出",
|
||||||
"extraArgs": "額外參數",
|
"extraArgs": "額外參數",
|
||||||
"failed": "失敗",
|
"failed": "失敗",
|
||||||
|
"fdroidReleaseTip": "如果你是從 Fdroid 下載的本應用,推薦關閉此選項",
|
||||||
"feedback": "反饋",
|
"feedback": "反饋",
|
||||||
"feedbackOnGithub": "如果你有任何問題,請在GitHub反饋",
|
"feedbackOnGithub": "如果你有任何問題,請在GitHub反饋",
|
||||||
"fieldMustNotEmpty": "這些輸入框不能為空。",
|
"fieldMustNotEmpty": "這些輸入框不能為空。",
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
"imagesList": "鏡像列表",
|
"imagesList": "鏡像列表",
|
||||||
"import": "導入",
|
"import": "導入",
|
||||||
"inAppUpdate": "在App內更新?否則使用瀏覽器下載。",
|
"inAppUpdate": "在App內更新?否則使用瀏覽器下載。",
|
||||||
|
"init": "初始化",
|
||||||
"inner": "內置",
|
"inner": "內置",
|
||||||
"inputDomainHere": "在這裡輸入域名",
|
"inputDomainHere": "在這裡輸入域名",
|
||||||
"install": "安裝",
|
"install": "安裝",
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import 'dart:convert';
|
|||||||
|
|
||||||
import 'package:fl_lib/fl_lib.dart';
|
import 'package:fl_lib/fl_lib.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
|
||||||
import 'package:icons_plus/icons_plus.dart';
|
import 'package:icons_plus/icons_plus.dart';
|
||||||
import 'package:server_box/core/channel/home_widget.dart';
|
import 'package:server_box/core/channel/home_widget.dart';
|
||||||
import 'package:server_box/core/extension/build.dart';
|
import 'package:server_box/core/extension/build.dart';
|
||||||
@@ -59,9 +58,6 @@ class _HomePageState extends State<HomePage>
|
|||||||
@override
|
@override
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
context.setLibL10n();
|
|
||||||
final appL10n = AppLocalizations.of(context);
|
|
||||||
if (appL10n != null) l10n = appL10n;
|
|
||||||
_isLandscape.value =
|
_isLandscape.value =
|
||||||
MediaQuery.of(context).orientation == Orientation.landscape;
|
MediaQuery.of(context).orientation == Orientation.landscape;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -385,8 +385,8 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: "v1.0.48"
|
ref: "v1.0.49"
|
||||||
resolved-ref: "48e91d023afa5c73970c75b8fc1f5dffa0c809d7"
|
resolved-ref: "85ae5cfeba1c8a959e0bd83b7e1eff5edc572ab9"
|
||||||
url: "https://github.com/lppcg/fl_lib"
|
url: "https://github.com/lppcg/fl_lib"
|
||||||
source: git
|
source: git
|
||||||
version: "0.0.1"
|
version: "0.0.1"
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ dependencies:
|
|||||||
fl_lib:
|
fl_lib:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/lppcg/fl_lib
|
url: https://github.com/lppcg/fl_lib
|
||||||
ref: v1.0.48
|
ref: v1.0.49
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
# dartssh2:
|
# dartssh2:
|
||||||
|
|||||||
Reference in New Issue
Block a user