mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
migrate flutter3.0
This commit is contained in:
@@ -22,6 +22,8 @@ linter:
|
|||||||
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
|
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
|
||||||
# producing the lint.
|
# producing the lint.
|
||||||
rules:
|
rules:
|
||||||
|
library_private_types_in_public_api: false
|
||||||
|
use_build_context_synchronously: false
|
||||||
# avoid_print: false # Uncomment to disable the `avoid_print` rule
|
# avoid_print: false # Uncomment to disable the `avoid_print` rule
|
||||||
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
|
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
|
||||||
|
|
||||||
|
|||||||
1
android.2.10.5.sksl.json
Normal file
1
android.2.10.5.sksl.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
ios.2.10.5.sksl.json
Normal file
1
ios.2.10.5.sksl.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
|||||||
PODS:
|
PODS:
|
||||||
- countly_flutter (20.11.4):
|
- countly_flutter (21.11.0):
|
||||||
- Flutter
|
- Flutter
|
||||||
- Flutter (1.0.0)
|
- Flutter (1.0.0)
|
||||||
- flutter_native_splash (0.0.1):
|
- flutter_native_splash (0.0.1):
|
||||||
@@ -39,7 +39,7 @@ EXTERNAL SOURCES:
|
|||||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
countly_flutter: 38419412e193a1faa5babeb5d28a63fda260687d
|
countly_flutter: e245f94349d8adf306c22e60c10648c69aae7380
|
||||||
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
||||||
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
|
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
|
||||||
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
|
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
|
||||||
|
|||||||
@@ -354,7 +354,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 129;
|
CURRENT_PROJECT_VERSION = 134;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@@ -362,7 +362,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.129;
|
MARKETING_VERSION = 1.0.134;
|
||||||
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";
|
||||||
@@ -484,7 +484,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 129;
|
CURRENT_PROJECT_VERSION = 134;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@@ -492,7 +492,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.129;
|
MARKETING_VERSION = 1.0.134;
|
||||||
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";
|
||||||
@@ -508,7 +508,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 129;
|
CURRENT_PROJECT_VERSION = 134;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@@ -516,7 +516,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.129;
|
MARKETING_VERSION = 1.0.134;
|
||||||
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";
|
||||||
|
|||||||
@@ -46,5 +46,7 @@
|
|||||||
<string>en</string>
|
<string>en</string>
|
||||||
<string>zh</string>
|
<string>zh</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||||
</plist>
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:countly_flutter/countly_config.dart';
|
||||||
import 'package:countly_flutter/countly_flutter.dart';
|
import 'package:countly_flutter/countly_flutter.dart';
|
||||||
|
import 'package:logging/logging.dart';
|
||||||
|
|
||||||
class Analysis {
|
class Analysis {
|
||||||
static const _url = 'https://countly.xuty.cc';
|
static const _url = 'https://countly.xuty.cc';
|
||||||
@@ -9,12 +12,18 @@ class Analysis {
|
|||||||
static bool _enabled = false;
|
static bool _enabled = false;
|
||||||
|
|
||||||
static Future<void> init(bool debug) async {
|
static Future<void> init(bool debug) async {
|
||||||
_enabled = true;
|
if (Platform.isAndroid || Platform.isIOS) {
|
||||||
await Countly.setLoggingEnabled(debug);
|
_enabled = true;
|
||||||
await Countly.init(_url, _key);
|
final config = CountlyConfig(_url, _key)
|
||||||
await Countly.start();
|
.setLoggingEnabled(debug)
|
||||||
await Countly.enableCrashReporting();
|
.enableCrashReporting();
|
||||||
await Countly.giveAllConsent();
|
await Countly.initWithConfig(config);
|
||||||
|
await Countly.start();
|
||||||
|
await Countly.giveAllConsent();
|
||||||
|
} else {
|
||||||
|
Logger('COUNTLY')
|
||||||
|
.info('Unsupported platform ${Platform.operatingSystem}');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void recordView(String view) {
|
static void recordView(String view) {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:toolbox/data/res/color.dart';
|
import 'package:toolbox/data/res/color.dart';
|
||||||
|
|
||||||
class MenuItem {
|
class DropdownBtnItem {
|
||||||
final String text;
|
final String text;
|
||||||
final IconData icon;
|
final IconData icon;
|
||||||
|
|
||||||
const MenuItem({
|
const DropdownBtnItem({
|
||||||
required this.text,
|
required this.text,
|
||||||
required this.icon,
|
required this.icon,
|
||||||
});
|
});
|
||||||
@@ -24,19 +24,21 @@ class MenuItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ServerTabMenuItems {
|
class ServerTabMenuItems {
|
||||||
static const List<MenuItem> firstItems = [sftp, snippet, apt, docker];
|
static const List<DropdownBtnItem> firstItems = [sftp, snippet, apt, docker];
|
||||||
static const List<MenuItem> secondItems = [edit];
|
static const List<DropdownBtnItem> secondItems = [edit];
|
||||||
|
|
||||||
static const sftp = MenuItem(text: 'SFTP', icon: Icons.insert_drive_file);
|
static const sftp =
|
||||||
static const snippet = MenuItem(text: 'Snippet', icon: Icons.label);
|
DropdownBtnItem(text: 'SFTP', icon: Icons.insert_drive_file);
|
||||||
|
static const snippet = DropdownBtnItem(text: 'Snippet', icon: Icons.label);
|
||||||
static const apt =
|
static const apt =
|
||||||
MenuItem(text: 'Apt/Yum', icon: Icons.system_security_update);
|
DropdownBtnItem(text: 'Apt/Yum', icon: Icons.system_security_update);
|
||||||
static const docker = MenuItem(text: 'Docker', icon: Icons.view_agenda);
|
static const docker =
|
||||||
static const edit = MenuItem(text: 'Edit', icon: Icons.edit);
|
DropdownBtnItem(text: 'Docker', icon: Icons.view_agenda);
|
||||||
|
static const edit = DropdownBtnItem(text: 'Edit', icon: Icons.edit);
|
||||||
}
|
}
|
||||||
|
|
||||||
class DockerMenuItems {
|
class DockerMenuItems {
|
||||||
static const rm = MenuItem(text: 'Remove', icon: Icons.delete);
|
static const rm = DropdownBtnItem(text: 'Remove', icon: Icons.delete);
|
||||||
static const start = MenuItem(text: 'Start', icon: Icons.play_arrow);
|
static const start = DropdownBtnItem(text: 'Start', icon: Icons.play_arrow);
|
||||||
static const stop = MenuItem(text: 'Stop', icon: Icons.stop);
|
static const stop = DropdownBtnItem(text: 'Stop', icon: Icons.stop);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,17 +92,20 @@ class AptProvider extends BusyProvider {
|
|||||||
Future<String> _update() async {
|
Future<String> _update() async {
|
||||||
switch (dist) {
|
switch (dist) {
|
||||||
case Distribution.rehl:
|
case Distribution.rehl:
|
||||||
return await client!.run(_wrap('yum check-update')).string;
|
return await client?.run(_wrap('yum check-update')).string ?? '';
|
||||||
default:
|
default:
|
||||||
final session = await client!.execute(_wrap('apt update'));
|
final session = await client!.execute(_wrap('apt update'));
|
||||||
session.stderr.listen((event) => _onPwd(event, session.stdin));
|
session.stderr.listen((event) => _onPwd(event, session.stdin));
|
||||||
session.stdout.listen((event) {
|
session.stdout.listen((event) {
|
||||||
updateLog = (updateLog ?? '') + event.string;
|
updateLog = (updateLog ?? '') + event.string;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
onUpdate!();
|
onUpdate ?? () {}();
|
||||||
});
|
});
|
||||||
await session.done;
|
await session.done;
|
||||||
return await client!.run('apt list --upgradeable'.withLangExport).string;
|
return await client
|
||||||
|
?.run('apt list --upgradeable'.withLangExport)
|
||||||
|
.string ??
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,7 +154,7 @@ class AptProvider extends BusyProvider {
|
|||||||
if (pwd.isEmpty) {
|
if (pwd.isEmpty) {
|
||||||
logger.info('sudo password request cancelled');
|
logger.info('sudo password request cancelled');
|
||||||
}
|
}
|
||||||
stdin.add(Uint8List.fromList(utf8.encode(pwd + '\n')));
|
stdin.add(Uint8List.fromList(utf8.encode('$pwd\n')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ class DebugProvider extends ChangeNotifier {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
_addWidget(SingleChildScrollView(
|
_addWidget(SingleChildScrollView(
|
||||||
child: widget,
|
|
||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
|
child: widget,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ class DockerProvider extends BusyProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final verRaw = await client!.run('docker version'.withLangExport).string;
|
final verRaw = await client!.run('docker version'.withLangExport).string;
|
||||||
print(verRaw);
|
|
||||||
if (verRaw.contains(dockerNotFound)) {
|
if (verRaw.contains(dockerNotFound)) {
|
||||||
error = 'docker not found';
|
error = 'docker not found';
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ class ServerProvider extends BusyProvider {
|
|||||||
.run("echo '$shellCmd' > $shellPath && chmod +x $shellPath");
|
.run("echo '$shellCmd' > $shellPath && chmod +x $shellPath");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
_servers[idx].connectionState = ServerConnectionState.failed;
|
_servers[idx].connectionState = ServerConnectionState.failed;
|
||||||
_servers[idx].status.failedInfo = e.toString() + ' ## ';
|
_servers[idx].status.failedInfo = '$e ## ';
|
||||||
logger.warning(e);
|
logger.warning(e);
|
||||||
} finally {
|
} finally {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
@@ -264,9 +264,7 @@ class ServerProvider extends BusyProvider {
|
|||||||
}
|
}
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
return (int.parse(value.split('\n')[idx].trim()) / 1000)
|
return '${(int.parse(value.split('\n')[idx].trim()) / 1000).toStringAsFixed(1)}°C';
|
||||||
.toStringAsFixed(1) +
|
|
||||||
'°C';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _getCPU(
|
void _getCPU(
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
class BuildData {
|
class BuildData {
|
||||||
static const String name = "ServerBox";
|
static const String name = "ServerBox";
|
||||||
static const int build = 133;
|
static const int build = 134;
|
||||||
static const String engine =
|
static const String engine =
|
||||||
"Flutter 2.10.5 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision 5464c5bac7 (3 weeks ago) • 2022-04-18 09:55:37 -0700\nEngine • revision 57d3bac3dd\nTools • Dart 2.16.2 • DevTools 2.9.2\n";
|
"Flutter 3.0.0 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision ee4e09cce0 (2 days ago) • 2022-05-09 16:45:18 -0700\nEngine • revision d1b9a6938a\nTools • Dart 2.17.0 • DevTools 2.12.2\n";
|
||||||
static const String buildAt = "2022-05-10 21:49:33.780998";
|
static const String buildAt = "2022-05-12 14:31:57.568409";
|
||||||
static const int modifications = 1;
|
static const int modifications = 37;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const backendUrl = 'https://res.lolli.tech';
|
const backendUrl = 'https://res.lolli.tech';
|
||||||
const baseUrl = backendUrl + '/toolbox';
|
const baseUrl = '$backendUrl/toolbox';
|
||||||
const joinQQGroupUrl = 'https://jq.qq.com/?_wv=1027&k=G0hUmPAq';
|
const joinQQGroupUrl = 'https://jq.qq.com/?_wv=1027&k=G0hUmPAq';
|
||||||
const myGithub = 'https://github.com/LollipopKit';
|
const myGithub = 'https://github.com/LollipopKit';
|
||||||
const rainSunMeGithub = 'https://github.com/RainSunMe';
|
const rainSunMeGithub = 'https://github.com/RainSunMe';
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
static String m8(myGithub) => "\n用❤️制作 by ${myGithub}";
|
static String m8(myGithub) => "\n用❤️制作 by ${myGithub}";
|
||||||
|
|
||||||
static String m9(user) => "用户${user}的密码";
|
static String m9(user) => "${user}的密码";
|
||||||
|
|
||||||
static String m10(url) => "请到 ${url} 提交问题";
|
static String m10(url) => "请到 ${url} 提交问题";
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
"noUpdateAvailable": "没有可用更新",
|
"noUpdateAvailable": "没有可用更新",
|
||||||
"foundNUpdate": "找到 {count} 个更新",
|
"foundNUpdate": "找到 {count} 个更新",
|
||||||
"updateAll": "更新全部",
|
"updateAll": "更新全部",
|
||||||
"pwdForUser": "用户{user}的密码",
|
"pwdForUser": "{user}的密码",
|
||||||
"platformNotSupportUpdate": "当前平台不支持更新,请编译最新源码后手动安装",
|
"platformNotSupportUpdate": "当前平台不支持更新,请编译最新源码后手动安装",
|
||||||
"invalidVersionHelp": "请确保正确安装了docker,或者使用的非自编译版本。如果没有以上问题,请在 {url} 提交问题。",
|
"invalidVersionHelp": "请确保正确安装了docker,或者使用的非自编译版本。如果没有以上问题,请在 {url} 提交问题。",
|
||||||
"noInterface": "没有可用的接口"
|
"noInterface": "没有可用的接口"
|
||||||
|
|||||||
@@ -60,12 +60,15 @@ class _AptManagePageState extends State<AptManagePage>
|
|||||||
|
|
||||||
// ignore: prefer_function_declarations_over_variables
|
// ignore: prefer_function_declarations_over_variables
|
||||||
PwdRequestFunc onPwdRequest = (user) async {
|
PwdRequestFunc onPwdRequest = (user) async {
|
||||||
|
if (!mounted) return '';
|
||||||
final textController = TextEditingController();
|
final textController = TextEditingController();
|
||||||
await showRoundDialog(
|
await showRoundDialog(
|
||||||
context,
|
context,
|
||||||
s.pwdForUser(user ?? s.unknown),
|
s.pwdForUser(user ?? s.unknown),
|
||||||
TextField(
|
TextField(
|
||||||
controller: textController,
|
controller: textController,
|
||||||
|
keyboardType: TextInputType.visiblePassword,
|
||||||
|
obscureText: true,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
labelText: s.pwd,
|
labelText: s.pwd,
|
||||||
),
|
),
|
||||||
@@ -153,7 +156,8 @@ class _AptManagePageState extends State<AptManagePage>
|
|||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.all(17),
|
padding: const EdgeInsets.all(17),
|
||||||
child: UrlText(
|
child: UrlText(
|
||||||
text: '${s.experimentalFeature}\n${s.reportBugsOnGithubIssue(issueUrl)}',
|
text:
|
||||||
|
'${s.experimentalFeature}\n${s.reportBugsOnGithubIssue(issueUrl)}',
|
||||||
replace: 'Github Issue',
|
replace: 'Github Issue',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class _ConvertPageState extends State<ConvertPage>
|
|||||||
Widget _buildTypeOption() {
|
Widget _buildTypeOption() {
|
||||||
final decode = s.decode;
|
final decode = s.decode;
|
||||||
final encode = s.encode;
|
final encode = s.encode;
|
||||||
final List<String> _typeOption = [
|
final List<String> typeOption = [
|
||||||
'Base64 $decode',
|
'Base64 $decode',
|
||||||
'Base64 $encode',
|
'Base64 $encode',
|
||||||
'URL $encode',
|
'URL $encode',
|
||||||
@@ -135,7 +135,7 @@ class _ConvertPageState extends State<ConvertPage>
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text(_typeOption[_typeOptionIndex],
|
Text(typeOption[_typeOptionIndex],
|
||||||
textScaleFactor: 1.0,
|
textScaleFactor: 1.0,
|
||||||
textAlign: TextAlign.left,
|
textAlign: TextAlign.left,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
@@ -151,7 +151,7 @@ class _ConvertPageState extends State<ConvertPage>
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
children: _typeOption
|
children: typeOption
|
||||||
.map((e) => ListTile(
|
.map((e) => ListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
e,
|
e,
|
||||||
@@ -159,7 +159,7 @@ class _ConvertPageState extends State<ConvertPage>
|
|||||||
color:
|
color:
|
||||||
_theme.textTheme.bodyText2!.color!.withAlpha(177)),
|
_theme.textTheme.bodyText2!.color!.withAlpha(177)),
|
||||||
),
|
),
|
||||||
trailing: _buildRadio(_typeOption.indexOf(e)),
|
trailing: _buildRadio(typeOption.indexOf(e)),
|
||||||
))
|
))
|
||||||
.toList(),
|
.toList(),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ class DockerManagePage extends StatefulWidget {
|
|||||||
class _DockerManagePageState extends State<DockerManagePage> {
|
class _DockerManagePageState extends State<DockerManagePage> {
|
||||||
final _docker = locator<DockerProvider>();
|
final _docker = locator<DockerProvider>();
|
||||||
final greyTextStyle = const TextStyle(color: Colors.grey);
|
final greyTextStyle = const TextStyle(color: Colors.grey);
|
||||||
late MediaQueryData _media;
|
|
||||||
late S s;
|
late S s;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -38,7 +37,6 @@ class _DockerManagePageState extends State<DockerManagePage> {
|
|||||||
@override
|
@override
|
||||||
void didChangeDependencies() {
|
void didChangeDependencies() {
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
_media = MediaQuery.of(context);
|
|
||||||
s = S.of(context);
|
s = S.of(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,17 +70,25 @@ class _DockerManagePageState extends State<DockerManagePage> {
|
|||||||
return Consumer<DockerProvider>(builder: (_, docker, __) {
|
return Consumer<DockerProvider>(builder: (_, docker, __) {
|
||||||
final running = docker.items;
|
final running = docker.items;
|
||||||
if (docker.error != null && running == null) {
|
if (docker.error != null && running == null) {
|
||||||
return SizedBox.expand(child: Column(
|
return SizedBox.expand(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
const Icon(Icons.error, size: 37,),
|
children: [
|
||||||
const SizedBox(height: 27),
|
const Icon(
|
||||||
Text(docker.error!),
|
Icons.error,
|
||||||
const SizedBox(height: 27),
|
size: 37,
|
||||||
Padding(padding: const EdgeInsets.all(17), child: _buildSolution(docker.error!),)
|
),
|
||||||
],
|
const SizedBox(height: 27),
|
||||||
),);
|
Text(docker.error!),
|
||||||
|
const SizedBox(height: 27),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(17),
|
||||||
|
child: _buildSolution(docker.error!),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (running == null) {
|
if (running == null) {
|
||||||
_docker.refresh();
|
_docker.refresh();
|
||||||
@@ -109,7 +115,10 @@ class _DockerManagePageState extends State<DockerManagePage> {
|
|||||||
case 'no client':
|
case 'no client':
|
||||||
return Text(s.waitConnection);
|
return Text(s.waitConnection);
|
||||||
case 'invalid version':
|
case 'invalid version':
|
||||||
return UrlText(text: s.invalidVersionHelp(issueUrl), replace: 'Github',);
|
return UrlText(
|
||||||
|
text: s.invalidVersionHelp(issueUrl),
|
||||||
|
replace: 'Github',
|
||||||
|
);
|
||||||
default:
|
default:
|
||||||
return Text(s.unknownError);
|
return Text(s.unknownError);
|
||||||
}
|
}
|
||||||
@@ -154,17 +163,17 @@ class _DockerManagePageState extends State<DockerManagePage> {
|
|||||||
),
|
),
|
||||||
customItemsHeight: 8,
|
customItemsHeight: 8,
|
||||||
items: [
|
items: [
|
||||||
DropdownMenuItem<MenuItem>(
|
DropdownMenuItem<DropdownBtnItem>(
|
||||||
value: item,
|
value: item,
|
||||||
child: item.build,
|
child: item.build,
|
||||||
),
|
),
|
||||||
DropdownMenuItem<MenuItem>(
|
DropdownMenuItem<DropdownBtnItem>(
|
||||||
value: DockerMenuItems.rm,
|
value: DockerMenuItems.rm,
|
||||||
child: DockerMenuItems.rm.build,
|
child: DockerMenuItems.rm.build,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
final item = value as MenuItem;
|
final item = value as DropdownBtnItem;
|
||||||
switch (item) {
|
switch (item) {
|
||||||
case DockerMenuItems.rm:
|
case DockerMenuItems.rm:
|
||||||
_docker.delete(containerId);
|
_docker.delete(containerId);
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class _MyHomePageState extends State<MyHomePage>
|
|||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
_serverProvider = locator<ServerProvider>();
|
_serverProvider = locator<ServerProvider>();
|
||||||
WidgetsBinding.instance?.addObserver(this);
|
WidgetsBinding.instance.addObserver(this);
|
||||||
_selectIndex = locator<SettingStore>().launchPage.fetch()!;
|
_selectIndex = locator<SettingStore>().launchPage.fetch()!;
|
||||||
_pageController = PageController(initialPage: _selectIndex);
|
_pageController = PageController(initialPage: _selectIndex);
|
||||||
_advancedDrawerController = AdvancedDrawerController();
|
_advancedDrawerController = AdvancedDrawerController();
|
||||||
@@ -69,7 +69,7 @@ class _MyHomePageState extends State<MyHomePage>
|
|||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
WidgetsBinding.instance?.removeObserver(this);
|
WidgetsBinding.instance.removeObserver(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -249,7 +249,6 @@ class _MyHomePageState extends State<MyHomePage>
|
|||||||
),
|
),
|
||||||
AboutListTile(
|
AboutListTile(
|
||||||
icon: const Icon(Icons.text_snippet),
|
icon: const Icon(Icons.text_snippet),
|
||||||
child: Text(s.license),
|
|
||||||
applicationName: BuildData.name,
|
applicationName: BuildData.name,
|
||||||
applicationVersion: _buildVersionStr(),
|
applicationVersion: _buildVersionStr(),
|
||||||
applicationIcon: _buildIcon(),
|
applicationIcon: _buildIcon(),
|
||||||
@@ -261,6 +260,7 @@ class _MyHomePageState extends State<MyHomePage>
|
|||||||
replace: 'RainSunMe',
|
replace: 'RainSunMe',
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
child: Text(s.license),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -80,9 +80,7 @@ class _PingPageState extends State<PingPage>
|
|||||||
style: summaryTextStyle,
|
style: summaryTextStyle,
|
||||||
),
|
),
|
||||||
trailing: Text(
|
trailing: Text(
|
||||||
s.pingAvg +
|
'${s.pingAvg}${result.statistic?.avg?.toStringAsFixed(2) ?? s.unknown} $ms',
|
||||||
(result.statistic?.avg?.toStringAsFixed(2) ?? s.unknown) +
|
|
||||||
' $ms',
|
|
||||||
style: TextStyle(fontSize: 14, color: primaryColor)),
|
style: TextStyle(fontSize: 14, color: primaryColor)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ class _PrivateKeyEditPageState extends State<PrivateKeyEditPage>
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
floatingActionButton: FloatingActionButton(
|
floatingActionButton: FloatingActionButton(
|
||||||
child: const Icon(Icons.save),
|
|
||||||
tooltip: s.save,
|
tooltip: s.save,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final name = nameController.text;
|
final name = nameController.text;
|
||||||
@@ -124,6 +123,7 @@ class _PrivateKeyEditPageState extends State<PrivateKeyEditPage>
|
|||||||
}
|
}
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
|
child: const Icon(Icons.save),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
|||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
percent.toStringAsFixed(1) + '%',
|
'${percent.toStringAsFixed(1)}%',
|
||||||
style: const TextStyle(fontSize: 13),
|
style: const TextStyle(fontSize: 13),
|
||||||
textScaleFactor: 1.0,
|
textScaleFactor: 1.0,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -195,10 +195,9 @@ class _ServerPageState extends State<ServerPage>
|
|||||||
children: [
|
children: [
|
||||||
_buildPercentCircle(ss.cpu2Status.usedPercent()),
|
_buildPercentCircle(ss.cpu2Status.usedPercent()),
|
||||||
_buildPercentCircle(ss.memory.used / ss.memory.total * 100),
|
_buildPercentCircle(ss.memory.used / ss.memory.total * 100),
|
||||||
_buildIOData('Conn:\n' + ss.tcp.maxConn.toString(),
|
_buildIOData('Conn:\n${ss.tcp.maxConn}', 'Fail:\n${ss.tcp.fail}'),
|
||||||
'Fail:\n' + ss.tcp.fail.toString()),
|
_buildIOData(
|
||||||
_buildIOData('Total:\n' + rootDisk.size,
|
'Total:\n${rootDisk.size}', 'Used:\n${rootDisk.usedPercent}%')
|
||||||
'Used:\n' + rootDisk.usedPercent.toString() + '%')
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 13),
|
const SizedBox(height: 13),
|
||||||
@@ -229,21 +228,21 @@ class _ServerPageState extends State<ServerPage>
|
|||||||
customItemsHeight: 8,
|
customItemsHeight: 8,
|
||||||
items: [
|
items: [
|
||||||
...ServerTabMenuItems.firstItems.map(
|
...ServerTabMenuItems.firstItems.map(
|
||||||
(item) => DropdownMenuItem<MenuItem>(
|
(item) => DropdownMenuItem<DropdownBtnItem>(
|
||||||
value: item,
|
value: item,
|
||||||
child: item.build,
|
child: item.build,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const DropdownMenuItem<Divider>(enabled: false, child: Divider()),
|
const DropdownMenuItem<Divider>(enabled: false, child: Divider()),
|
||||||
...ServerTabMenuItems.secondItems.map(
|
...ServerTabMenuItems.secondItems.map(
|
||||||
(item) => DropdownMenuItem<MenuItem>(
|
(item) => DropdownMenuItem<DropdownBtnItem>(
|
||||||
value: item,
|
value: item,
|
||||||
child: item.build,
|
child: item.build,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
final item = value as MenuItem;
|
final item = value as DropdownBtnItem;
|
||||||
switch (item) {
|
switch (item) {
|
||||||
case ServerTabMenuItems.apt:
|
case ServerTabMenuItems.apt:
|
||||||
AppRoute(AptManagePage(spi), 'apt manage page').go(context);
|
AppRoute(AptManagePage(spi), 'apt manage page').go(context);
|
||||||
|
|||||||
@@ -150,10 +150,6 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
textColor: priColor,
|
textColor: priColor,
|
||||||
tilePadding: roundRectCardPadding,
|
tilePadding: roundRectCardPadding,
|
||||||
childrenPadding: roundRectCardPadding,
|
childrenPadding: roundRectCardPadding,
|
||||||
children: [
|
|
||||||
_buildAppColorPicker(priColor),
|
|
||||||
_buildColorPickerConfirmBtn()
|
|
||||||
],
|
|
||||||
trailing: ClipOval(
|
trailing: ClipOval(
|
||||||
child: Container(
|
child: Container(
|
||||||
color: priColor,
|
color: priColor,
|
||||||
@@ -164,7 +160,11 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
title: Text(
|
title: Text(
|
||||||
s.appPrimaryColor,
|
s.appPrimaryColor,
|
||||||
style: textStyle,
|
style: textStyle,
|
||||||
));
|
),
|
||||||
|
children: [
|
||||||
|
_buildAppColorPicker(priColor),
|
||||||
|
_buildColorPickerConfirmBtn()
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildAppColorPicker(Color selected) {
|
Widget _buildAppColorPicker(Color selected) {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class _SFTPDownloadedPageState extends State<SFTPDownloadedPage> {
|
|||||||
super.initState();
|
super.initState();
|
||||||
sftpDownloadDir.then((dir) {
|
sftpDownloadDir.then((dir) {
|
||||||
_path = PathWithPrefix(dir.path);
|
_path = PathWithPrefix(dir.path);
|
||||||
_prefixPath = dir.path + '/';
|
_prefixPath = '${dir.path}/';
|
||||||
setState(() {});
|
setState(() {});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -58,8 +58,8 @@ class _SFTPDownloadedPageState extends State<SFTPDownloadedPage> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
body: FadeIn(
|
body: FadeIn(
|
||||||
child: _buildBody(),
|
|
||||||
key: UniqueKey(),
|
key: UniqueKey(),
|
||||||
|
child: _buildBody(),
|
||||||
),
|
),
|
||||||
bottomNavigationBar: SafeArea(
|
bottomNavigationBar: SafeArea(
|
||||||
child: _buildPath(),
|
child: _buildPath(),
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ class _SFTPPageState extends State<SFTPPage> {
|
|||||||
} else {
|
} else {
|
||||||
return RefreshIndicator(
|
return RefreshIndicator(
|
||||||
child: FadeIn(
|
child: FadeIn(
|
||||||
|
key: Key(_status.spi!.name + _status.path!.path),
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
itemCount: _status.files!.length + 1,
|
itemCount: _status.files!.length + 1,
|
||||||
controller: _scrollController,
|
controller: _scrollController,
|
||||||
@@ -155,7 +156,6 @@ class _SFTPPageState extends State<SFTPPage> {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
key: Key(_status.spi!.name + _status.path!.path),
|
|
||||||
),
|
),
|
||||||
onRefresh: () => listDir(path: _status.path?.path));
|
onRefresh: () => listDir(path: _status.path?.path));
|
||||||
}
|
}
|
||||||
@@ -277,7 +277,7 @@ class _SFTPPageState extends State<SFTPPage> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_status.client!
|
_status.client!
|
||||||
.mkdir(_status.path!.path + '/' + textController.text);
|
.mkdir('${_status.path!.path}/${textController.text}');
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
listDir();
|
listDir();
|
||||||
},
|
},
|
||||||
@@ -316,7 +316,7 @@ class _SFTPPageState extends State<SFTPPage> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
(await _status.client!
|
(await _status.client!
|
||||||
.open(_status.path!.path + '/' + textController.text))
|
.open('${_status.path!.path}/${textController.text}'))
|
||||||
.writeBytes(Uint8List(0));
|
.writeBytes(Uint8List(0));
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
listDir();
|
listDir();
|
||||||
|
|||||||
@@ -215,6 +215,10 @@ class _SnippetListPageState extends State<SnippetListPage> {
|
|||||||
height: 111,
|
height: 111,
|
||||||
child: Stack(children: [
|
child: Stack(children: [
|
||||||
Positioned(
|
Positioned(
|
||||||
|
top: 36,
|
||||||
|
bottom: 36,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 37,
|
height: 37,
|
||||||
decoration: const BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
@@ -222,10 +226,6 @@ class _SnippetListPageState extends State<SnippetListPage> {
|
|||||||
color: Colors.black12,
|
color: Colors.black12,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
top: 36,
|
|
||||||
bottom: 36,
|
|
||||||
left: 0,
|
|
||||||
right: 0,
|
|
||||||
),
|
),
|
||||||
ListWheelScrollView.useDelegate(
|
ListWheelScrollView.useDelegate(
|
||||||
itemExtent: 37,
|
itemExtent: 37,
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ class RoundRectCard extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Card(
|
return Card(
|
||||||
child: child,
|
|
||||||
clipBehavior: Clip.antiAlias,
|
clipBehavior: Clip.antiAlias,
|
||||||
shape: const RoundedRectangleBorder(
|
shape: const RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(17))),
|
borderRadius: BorderRadius.all(Radius.circular(17))),
|
||||||
|
child: child,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,11 +22,11 @@ class UrlText extends StatelessWidget {
|
|||||||
List<InlineSpan> _getTextSpans(bool isDarkMode) {
|
List<InlineSpan> _getTextSpans(bool isDarkMode) {
|
||||||
List<InlineSpan> widgets = <InlineSpan>[];
|
List<InlineSpan> widgets = <InlineSpan>[];
|
||||||
final reg = RegExp(regUrl);
|
final reg = RegExp(regUrl);
|
||||||
Iterable<Match> _matches = reg.allMatches(text);
|
Iterable<Match> matches = reg.allMatches(text);
|
||||||
List<_ResultMatch> resultMatches = <_ResultMatch>[];
|
List<_ResultMatch> resultMatches = <_ResultMatch>[];
|
||||||
int start = 0;
|
int start = 0;
|
||||||
|
|
||||||
for (Match match in _matches) {
|
for (Match match in matches) {
|
||||||
final group0 = match.group(0);
|
final group0 = match.group(0);
|
||||||
if (group0 != null && group0.isNotEmpty) {
|
if (group0 != null && group0.isNotEmpty) {
|
||||||
if (start != match.start) {
|
if (start != match.start) {
|
||||||
|
|||||||
@@ -6,6 +6,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
|||||||
url_launcher_linux
|
url_launcher_linux
|
||||||
)
|
)
|
||||||
|
|
||||||
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
|
)
|
||||||
|
|
||||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||||
|
|
||||||
foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
||||||
@@ -14,3 +17,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
|||||||
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
|
||||||
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
|
||||||
endforeach(plugin)
|
endforeach(plugin)
|
||||||
|
|
||||||
|
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
|
||||||
|
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
|
||||||
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
|
||||||
|
endforeach(ffi_plugin)
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ EXTERNAL SOURCES:
|
|||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
FlutterMacOS: 57701585bf7de1b3fc2bb61f6378d73bbdea8424
|
FlutterMacOS: 57701585bf7de1b3fc2bb61f6378d73bbdea8424
|
||||||
path_provider_macos: 160cab0d5461f0c0e02995469a98f24bdb9a3f1f
|
path_provider_macos: 3c0c3b4b0d4a76d2bf989a913c2de869c5641a19
|
||||||
share_plus_macos: 853ee48e7dce06b633998ca0735d482dd671ade4
|
share_plus_macos: 853ee48e7dce06b633998ca0735d482dd671ade4
|
||||||
url_launcher_macos: 597e05b8e514239626bcf4a850fcf9ef5c856ec3
|
url_launcher_macos: 597e05b8e514239626bcf4a850fcf9ef5c856ec3
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ Future<void> updateBuildData() async {
|
|||||||
|
|
||||||
Future<void> dartFormat() async {
|
Future<void> dartFormat() async {
|
||||||
final result = await Process.run('dart', ['format', '.']);
|
final result = await Process.run('dart', ['format', '.']);
|
||||||
print('\n' + result.stdout);
|
print('\n${result.stdout}');
|
||||||
if (result.exitCode != 0) {
|
if (result.exitCode != 0) {
|
||||||
print(result.stderr);
|
print(result.stderr);
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|||||||
70
pubspec.lock
70
pubspec.lock
@@ -21,7 +21,7 @@ packages:
|
|||||||
name: args
|
name: args
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "2.3.1"
|
||||||
asn1lib:
|
asn1lib:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -86,7 +86,7 @@ packages:
|
|||||||
name: collection
|
name: collection
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.15.0"
|
version: "1.16.0"
|
||||||
convert:
|
convert:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -99,10 +99,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: master
|
ref: master
|
||||||
resolved-ref: fb568d2e50714f65f85b822c343bb53f129b9f6f
|
resolved-ref: "585759048345ab7defdfd9cae3a6c76dc451fe51"
|
||||||
url: "https://github.com/Countly/countly-sdk-flutter-bridge.git"
|
url: "https://github.com/Countly/countly-sdk-flutter-bridge.git"
|
||||||
source: git
|
source: git
|
||||||
version: "20.11.4"
|
version: "21.11.0"
|
||||||
crypto:
|
crypto:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -151,14 +151,14 @@ packages:
|
|||||||
name: extended_image
|
name: extended_image
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.3"
|
version: "6.2.0"
|
||||||
extended_image_library:
|
extended_image_library:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: extended_image_library
|
name: extended_image_library
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.4"
|
version: "3.3.0"
|
||||||
fading_edge_scrollview:
|
fading_edge_scrollview:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -172,7 +172,7 @@ packages:
|
|||||||
name: fake_async
|
name: fake_async
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0"
|
version: "1.3.0"
|
||||||
ffi:
|
ffi:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -205,7 +205,7 @@ packages:
|
|||||||
name: flutter_lints
|
name: flutter_lints
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.4"
|
version: "2.0.1"
|
||||||
flutter_localizations:
|
flutter_localizations:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description: flutter
|
description: flutter
|
||||||
@@ -231,7 +231,7 @@ packages:
|
|||||||
name: flutter_plugin_android_lifecycle
|
name: flutter_plugin_android_lifecycle
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.5"
|
version: "2.0.6"
|
||||||
flutter_test:
|
flutter_test:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description: flutter
|
description: flutter
|
||||||
@@ -292,7 +292,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.3"
|
version: "3.1.3"
|
||||||
intl:
|
intl:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: intl
|
name: intl
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
@@ -304,7 +304,7 @@ packages:
|
|||||||
name: js
|
name: js
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.3"
|
version: "0.6.4"
|
||||||
lint:
|
lint:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -318,7 +318,7 @@ packages:
|
|||||||
name: lints
|
name: lints
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.1"
|
version: "2.0.0"
|
||||||
logging:
|
logging:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -346,7 +346,7 @@ packages:
|
|||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.3"
|
version: "0.1.4"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -374,56 +374,56 @@ packages:
|
|||||||
name: path
|
name: path
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.0"
|
version: "1.8.1"
|
||||||
path_provider:
|
path_provider:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: path_provider
|
name: path_provider
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.9"
|
version: "2.0.10"
|
||||||
path_provider_android:
|
path_provider_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_android
|
name: path_provider_android
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.13"
|
version: "2.0.14"
|
||||||
path_provider_ios:
|
path_provider_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_ios
|
name: path_provider_ios
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.8"
|
version: "2.0.9"
|
||||||
path_provider_linux:
|
path_provider_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_linux
|
name: path_provider_linux
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.5"
|
version: "2.1.6"
|
||||||
path_provider_macos:
|
path_provider_macos:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_macos
|
name: path_provider_macos
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.5"
|
version: "2.0.6"
|
||||||
path_provider_platform_interface:
|
path_provider_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_platform_interface
|
name: path_provider_platform_interface
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.3"
|
version: "2.0.4"
|
||||||
path_provider_windows:
|
path_provider_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_windows
|
name: path_provider_windows
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.5"
|
version: "2.0.6"
|
||||||
pedantic:
|
pedantic:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -437,7 +437,7 @@ packages:
|
|||||||
name: petitparser
|
name: petitparser
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.4.0"
|
version: "5.0.0"
|
||||||
pinenacl:
|
pinenacl:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -547,7 +547,7 @@ packages:
|
|||||||
name: source_span
|
name: source_span
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.1"
|
version: "1.8.2"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -582,7 +582,7 @@ packages:
|
|||||||
name: test_api
|
name: test_api
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.8"
|
version: "0.4.9"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -603,35 +603,35 @@ packages:
|
|||||||
name: url_launcher
|
name: url_launcher
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.0"
|
version: "6.1.2"
|
||||||
url_launcher_android:
|
url_launcher_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_android
|
name: url_launcher_android
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.16"
|
version: "6.0.17"
|
||||||
url_launcher_ios:
|
url_launcher_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_ios
|
name: url_launcher_ios
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.15"
|
version: "6.0.16"
|
||||||
url_launcher_linux:
|
url_launcher_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_linux
|
name: url_launcher_linux
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.0"
|
version: "3.0.1"
|
||||||
url_launcher_macos:
|
url_launcher_macos:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_macos
|
name: url_launcher_macos
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.0"
|
version: "3.0.1"
|
||||||
url_launcher_platform_interface:
|
url_launcher_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -645,21 +645,21 @@ packages:
|
|||||||
name: url_launcher_web
|
name: url_launcher_web
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.9"
|
version: "2.0.11"
|
||||||
url_launcher_windows:
|
url_launcher_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_windows
|
name: url_launcher_windows
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.0"
|
version: "3.0.1"
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vector_math
|
name: vector_math
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.1"
|
version: "2.1.2"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -680,7 +680,7 @@ packages:
|
|||||||
name: xml
|
name: xml
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.3.1"
|
version: "5.4.1"
|
||||||
yaml:
|
yaml:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -689,5 +689,5 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.0"
|
version: "3.1.0"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.16.0 <3.0.0"
|
dart: ">=2.17.0 <3.0.0"
|
||||||
flutter: ">=2.10.0"
|
flutter: ">=3.0.0"
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.16.0 <3.0.0"
|
sdk: ">=2.17.0 <3.0.0"
|
||||||
|
|
||||||
# Dependencies specify other packages that your package needs in order to work.
|
# Dependencies specify other packages that your package needs in order to work.
|
||||||
# To automatically upgrade your package dependencies to the latest versions
|
# To automatically upgrade your package dependencies to the latest versions
|
||||||
@@ -60,6 +60,7 @@ dependencies:
|
|||||||
path_provider: ^2.0.9
|
path_provider: ^2.0.9
|
||||||
easy_isolate: ^1.3.0
|
easy_isolate: ^1.3.0
|
||||||
share_plus: ^4.0.4
|
share_plus: ^4.0.4
|
||||||
|
intl: ^0.17.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_native_splash: ^2.1.6
|
flutter_native_splash: ^2.1.6
|
||||||
@@ -71,7 +72,7 @@ dev_dependencies:
|
|||||||
# activated in the `analysis_options.yaml` file located at the root of your
|
# activated in the `analysis_options.yaml` file located at the root of your
|
||||||
# package. See that file for information about deactivating specific lint
|
# package. See that file for information about deactivating specific lint
|
||||||
# rules and activating additional ones.
|
# rules and activating additional ones.
|
||||||
flutter_lints: ^1.0.0
|
flutter_lints: ^2.0.0
|
||||||
|
|
||||||
# For information on the generic Dart part of this file, see the
|
# For information on the generic Dart part of this file, see the
|
||||||
# following page: https://dart.dev/tools/pub/pubspec
|
# following page: https://dart.dev/tools/pub/pubspec
|
||||||
|
|||||||
@@ -6,6 +6,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
|||||||
url_launcher_windows
|
url_launcher_windows
|
||||||
)
|
)
|
||||||
|
|
||||||
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
|
)
|
||||||
|
|
||||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||||
|
|
||||||
foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
||||||
@@ -14,3 +17,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
|||||||
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
|
||||||
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
|
||||||
endforeach(plugin)
|
endforeach(plugin)
|
||||||
|
|
||||||
|
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
|
||||||
|
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
|
||||||
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
|
||||||
|
endforeach(ffi_plugin)
|
||||||
|
|||||||
Reference in New Issue
Block a user