fix: ssh session not inited

This commit is contained in:
lollipopkit
2023-08-17 14:59:23 +08:00
parent 329922a836
commit 1be87d0ec0
18 changed files with 90 additions and 160 deletions

View File

@@ -956,11 +956,11 @@ abstract class S {
/// **'Preview'** /// **'Preview'**
String get preview; String get preview;
/// No description provided for @primaryColor. /// No description provided for @primaryColorSeed.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Primary color'** /// **'Primary color seed'**
String get primaryColor; String get primaryColorSeed;
/// No description provided for @privateKey. /// No description provided for @privateKey.
/// ///

View File

@@ -456,7 +456,7 @@ class SDe extends S {
String get preview => 'Vorschau'; String get preview => 'Vorschau';
@override @override
String get primaryColor => 'Farbschema'; String get primaryColorSeed => 'Farbschema';
@override @override
String get privateKey => 'Private Key'; String get privateKey => 'Private Key';

View File

@@ -456,7 +456,7 @@ class SEn extends S {
String get preview => 'Preview'; String get preview => 'Preview';
@override @override
String get primaryColor => 'Primary color'; String get primaryColorSeed => 'Primary color seed';
@override @override
String get privateKey => 'Private Key'; String get privateKey => 'Private Key';

View File

@@ -456,7 +456,7 @@ class SId extends S {
String get preview => 'Pratinjau'; String get preview => 'Pratinjau';
@override @override
String get primaryColor => 'Warna utama'; String get primaryColorSeed => 'Warna utama';
@override @override
String get privateKey => 'Kunci Pribadi'; String get privateKey => 'Kunci Pribadi';

View File

@@ -456,7 +456,7 @@ class SZh extends S {
String get preview => '预览'; String get preview => '预览';
@override @override
String get primaryColor => '主题色'; String get primaryColorSeed => '主题色种子';
@override @override
String get privateKey => '私钥'; String get privateKey => '私钥';
@@ -1155,7 +1155,7 @@ class SZhTw extends SZh {
String get preview => '預覽'; String get preview => '預覽';
@override @override
String get primaryColor => '主要色調'; String get primaryColorSeed => '主要色調種子';
@override @override
String get privateKey => '私鑰'; String get privateKey => '私鑰';

View File

@@ -470,7 +470,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -478,7 +478,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
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";
@@ -602,7 +602,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -610,7 +610,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
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";
@@ -628,7 +628,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -636,7 +636,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
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";
@@ -657,7 +657,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -670,7 +670,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
@@ -696,7 +696,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -709,7 +709,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@@ -732,7 +732,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -745,7 +745,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";

View File

@@ -2,8 +2,8 @@
class BuildData { class BuildData {
static const String name = "ServerBox"; static const String name = "ServerBox";
static const int build = 473; static const int build = 474;
static const String engine = "3.10.6"; static const String engine = "3.10.6";
static const String buildAt = "2023-08-15 23:06:31.430481"; static const String buildAt = "2023-08-16 15:42:48.857532";
static const int modifications = 2; static const int modifications = 24;
} }

View File

@@ -143,7 +143,7 @@
"plzSelectKey": "Wähle einen Key.", "plzSelectKey": "Wähle einen Key.",
"port": "Port", "port": "Port",
"preview": "Vorschau", "preview": "Vorschau",
"primaryColor": "Farbschema", "primaryColorSeed": "Farbschema",
"privateKey": "Private Key", "privateKey": "Private Key",
"process": "Prozess", "process": "Prozess",
"pushToken": "Push Token", "pushToken": "Push Token",

View File

@@ -143,7 +143,7 @@
"plzSelectKey": "Please select a key.", "plzSelectKey": "Please select a key.",
"port": "Port", "port": "Port",
"preview": "Preview", "preview": "Preview",
"primaryColor": "Primary color", "primaryColorSeed": "Primary color seed",
"privateKey": "Private Key", "privateKey": "Private Key",
"process": "Process", "process": "Process",
"pushToken": "Push token", "pushToken": "Push token",

View File

@@ -143,7 +143,7 @@
"plzSelectKey": "Pilih kunci.", "plzSelectKey": "Pilih kunci.",
"port": "Port", "port": "Port",
"preview": "Pratinjau", "preview": "Pratinjau",
"primaryColor": "Warna utama", "primaryColorSeed": "Warna utama",
"privateKey": "Kunci Pribadi", "privateKey": "Kunci Pribadi",
"process": "Proses", "process": "Proses",
"pushToken": "Dorong token", "pushToken": "Dorong token",

View File

@@ -143,7 +143,7 @@
"plzSelectKey": "请选择私钥", "plzSelectKey": "请选择私钥",
"port": "端口", "port": "端口",
"preview": "预览", "preview": "预览",
"primaryColor": "主题色", "primaryColorSeed": "主题色种子",
"privateKey": "私钥", "privateKey": "私钥",
"process": "进程", "process": "进程",
"pushToken": "消息推送 Token", "pushToken": "消息推送 Token",

View File

@@ -143,7 +143,7 @@
"plzSelectKey": "請選擇私鑰", "plzSelectKey": "請選擇私鑰",
"port": "端口", "port": "端口",
"preview": "預覽", "preview": "預覽",
"primaryColor": "主要色調", "primaryColorSeed": "主要色調種子",
"privateKey": "私鑰", "privateKey": "私鑰",
"process": "進程", "process": "進程",
"pushToken": "消息推送 Token", "pushToken": "消息推送 Token",

View File

@@ -437,10 +437,12 @@ class _ServerDetailPageState extends State<ServerDetailPage>
), ),
], ],
))); )));
return RoundRectCard(Padding( return RoundRectCard(
padding: roundRectCardPadding, Padding(
child: Column(children: children), padding: roundRectCardPadding,
),); child: Column(children: children),
),
);
} }
Widget _buildAnimatedText(Key key, String text, TextStyle style) { Widget _buildAnimatedText(Key key, String text, TextStyle style) {

View File

@@ -274,14 +274,12 @@ class _SettingPageState extends State<SettingPage> {
width: 27, width: 27,
), ),
), ),
title: Text( title: Text(_s.primaryColorSeed),
_s.primaryColor,
),
onTap: () async { onTap: () async {
final ctrl = TextEditingController(text: primaryColor.toHex); final ctrl = TextEditingController(text: primaryColor.toHex);
await showRoundDialog( await showRoundDialog(
context: context, context: context,
title: Text(_s.primaryColor), title: Text(_s.primaryColorSeed),
child: Input( child: Input(
onSubmitted: _onSaveColor, onSubmitted: _onSaveColor,
controller: ctrl, controller: ctrl,
@@ -674,7 +672,7 @@ class _SettingPageState extends State<SettingPage> {
}, },
).toList(); ).toList();
return ListTile( return ListTile(
title: Text(_s.light + _s.theme), title: Text('${_s.light} ${_s.theme.toLowerCase()}'),
trailing: ValueBuilder( trailing: ValueBuilder(
listenable: _editorTheme, listenable: _editorTheme,
build: () => PopupMenuButton( build: () => PopupMenuButton(
@@ -707,7 +705,7 @@ class _SettingPageState extends State<SettingPage> {
}, },
).toList(); ).toList();
return ListTile( return ListTile(
title: Text(_s.dark + _s.theme), title: Text('${_s.dark} ${_s.theme.toLowerCase()}'),
trailing: ValueBuilder( trailing: ValueBuilder(
listenable: _editorDarkTheme, listenable: _editorDarkTheme,
build: () => PopupMenuButton( build: () => PopupMenuButton(

View File

@@ -40,7 +40,6 @@ class _SSHPageState extends State<SSHPage> {
final _setting = locator<SettingStore>(); final _setting = locator<SettingStore>();
late final _terminal = Terminal(inputHandler: _keyboard); late final _terminal = Terminal(inputHandler: _keyboard);
final TerminalController _terminalController = TerminalController(); final TerminalController _terminalController = TerminalController();
final ContextMenuController _menuController = ContextMenuController();
final List<List<VirtKey>> _virtKeysList = []; final List<List<VirtKey>> _virtKeysList = [];
late MediaQueryData _media; late MediaQueryData _media;
@@ -48,13 +47,13 @@ class _SSHPageState extends State<SSHPage> {
late TerminalStyle _terminalStyle; late TerminalStyle _terminalStyle;
late TerminalTheme _terminalTheme; late TerminalTheme _terminalTheme;
late TextInputType _keyboardType; late TextInputType _keyboardType;
late SSHSession _session;
late double _virtKeyWidth; late double _virtKeyWidth;
late double _virtKeysHeight; late double _virtKeysHeight;
bool _isDark = false; bool _isDark = false;
Timer? _virtKeyLongPressTimer; Timer? _virtKeyLongPressTimer;
SSHClient? _client; SSHClient? _client;
SSHSession? _session;
@override @override
void initState() { void initState() {
@@ -76,10 +75,7 @@ class _SSHPageState extends State<SSHPage> {
_virtKeyLongPressTimer?.cancel(); _virtKeyLongPressTimer?.cancel();
_terminalController.dispose(); _terminalController.dispose();
_client?.close(); _client?.close();
// ignore: unnecessary_null_comparison _session?.close();
if (_session != null) {
_session.close();
}
} }
@override @override
@@ -116,16 +112,18 @@ class _SSHPageState extends State<SSHPage> {
_virtKeysHeight - _virtKeysHeight -
_media.padding.bottom - _media.padding.bottom -
_media.padding.top, _media.padding.top,
child: TerminalView( child: Padding(
_terminal, padding: EdgeInsets.only(top: _media.padding.top),
onTapUp: _onTapUp, child: TerminalView(
controller: _terminalController, _terminal,
keyboardType: _keyboardType, controller: _terminalController,
textStyle: _terminalStyle, keyboardType: _keyboardType,
theme: _terminalTheme, textStyle: _terminalStyle,
deleteDetection: isIOS, theme: _terminalTheme,
autofocus: true, deleteDetection: isIOS,
keyboardAppearance: _isDark ? Brightness.dark : Brightness.light, autofocus: true,
keyboardAppearance: _isDark ? Brightness.dark : Brightness.light,
),
), ),
); );
} }
@@ -268,13 +266,8 @@ class _SSHPageState extends State<SSHPage> {
); );
return; return;
} }
AppRoute( final page = SftpPage(widget.spi, initPath: initPath);
SftpPage( AppRoute(page, 'SSH SFTP').go(context);
widget.spi,
initPath: initPath,
),
'SSH SFTP')
.go(context);
} }
} }
@@ -338,76 +331,42 @@ class _SSHPageState extends State<SSHPage> {
), ),
); );
if (_session == null) {
showSnackBar(context, const Text('Null session'));
return;
}
_terminal.buffer.clear(); _terminal.buffer.clear();
_terminal.buffer.setCursor(0, 0); _terminal.buffer.setCursor(0, 0);
_terminal.onOutput = (data) { _terminal.onOutput = (data) {
_session.write(utf8.encode(data) as Uint8List); _session?.write(utf8.encode(data) as Uint8List);
};
_terminal.onResize = (width, height, pixelWidth, pixelHeight) {
_session?.resizeTerminal(width, height);
}; };
_listen(_session.stdout); _listen(_session?.stdout);
_listen(_session.stderr); _listen(_session?.stderr);
if (widget.initCmd != null) { if (widget.initCmd != null) {
_terminal.textInput(widget.initCmd!); _terminal.textInput(widget.initCmd!);
_terminal.keyInput(TerminalKey.enter); _terminal.keyInput(TerminalKey.enter);
} }
await _session.done; await _session?.done;
if (mounted) { if (mounted) {
context.pop(); context.pop();
} }
} }
void _listen(Stream<Uint8List> stream) { void _listen(Stream<Uint8List>? stream) {
if (stream == null) {
return;
}
stream stream
.cast<List<int>>() .cast<List<int>>()
.transform(const Utf8Decoder()) .transform(const Utf8Decoder())
.listen(_terminal.write); .listen(_terminal.write);
} }
void _onTapUp(TapUpDetails details, CellOffset offset) {
if (_menuController.isShown) {
_menuController.remove();
return;
}
final selected = terminalSelected;
final children = <Widget>[
// TextButton(
// onPressed: () {
// _paste();
// },
// child: Text(_s.paste),
// ),
];
if (selected?.trim().isNotEmpty ?? false) {
children.add(
TextButton(
child: Text(
_s.copy,
),
onPressed: () {
_terminalController.setSelection(CellAnchor(0), CellAnchor(0));
if (selected != null) {
copy2Clipboard(selected);
}
_menuController.remove();
},
),
);
}
if (children.isEmpty) {
return;
}
_menuController.show(
context: context,
contextMenuBuilder: (context) {
return TextSelectionToolbar(
anchorAbove: details.globalPosition,
anchorBelow: details.globalPosition,
children: children,
);
},
);
}
} }

View File

@@ -475,9 +475,9 @@
baseConfigurationReference = C1C758C41C4E208965A68933 /* Pods-RunnerTests.debug.xcconfig */; baseConfigurationReference = C1C758C41C4E208965A68933 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -490,9 +490,9 @@
baseConfigurationReference = 15AF97DF993E8968098D6EBE /* Pods-RunnerTests.release.xcconfig */; baseConfigurationReference = 15AF97DF993E8968098D6EBE /* Pods-RunnerTests.release.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -505,9 +505,9 @@
baseConfigurationReference = 7CFA7DE7FABA75685DFB6948 /* Pods-RunnerTests.profile.xcconfig */; baseConfigurationReference = 7CFA7DE7FABA75685DFB6948 /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 473; CURRENT_PROJECT_VERSION = 474;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0.473; MARKETING_VERSION = 1.0.474;
PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;

View File

@@ -1038,9 +1038,11 @@ packages:
xterm: xterm:
dependency: "direct main" dependency: "direct main"
description: description:
path: "../xterm.dart" path: "."
relative: true ref: master
source: path resolved-ref: "937c25f58904432a4eb478a8b7f81bc012d20027"
url: "https://github.com/lollipopkit/xterm.dart"
source: git
version: "3.6.1-pre" version: "3.6.1-pre"
yaml: yaml:
dependency: transitive dependency: transitive

View File

@@ -1,31 +1,11 @@
name: toolbox name: toolbox
description: A new Flutter project. description: A server toolbox app.
publish_to: 'none'
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1 version: 1.0.0+1
environment: environment:
sdk: ">=2.17.0 <3.0.0" sdk: ">=2.17.0 <3.0.0"
# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
# consider running `flutter pub upgrade --major-versions`. Alternatively,
# dependencies can be manually updated by changing the version numbers below to
# the latest version available on pub.dev. To see which dependencies have newer
# versions available, run `flutter pub outdated`.
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
@@ -54,10 +34,10 @@ dependencies:
intl: ^0.18.0 intl: ^0.18.0
# xterm: ^3.5.0 # xterm: ^3.5.0
xterm: xterm:
path: ../xterm.dart #path: ../xterm.dart
# git: git:
# ref: master ref: master
# url: https://github.com/lollipopkit/xterm.dart url: https://github.com/lollipopkit/xterm.dart
file_picker: ^5.3.2 file_picker: ^5.3.2
plain_notification_token: ^0.0.4 plain_notification_token: ^0.0.4
highlight: ^0.7.0 highlight: ^0.7.0
@@ -70,24 +50,13 @@ dev_dependencies:
flutter_native_splash: ^2.1.6 flutter_native_splash: ^2.1.6
hive_generator: ^2.0.0 hive_generator: ^2.0.0
build_runner: ^2.3.2 build_runner: ^2.3.2
flutter_lints: ^2.0.0
flutter_test: flutter_test:
sdk: flutter sdk: flutter
# The "flutter_lints" package below contains a set of recommended lints to
# encourage good coding practices. The lint set provided by the package is
# activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint
# rules and activating additional ones.
flutter_lints: ^2.0.0
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter.
flutter: flutter:
generate: true generate: true
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true uses-material-design: true
# To add assets to your application, add an assets section, like this: # To add assets to your application, add an assets section, like this:
@@ -182,4 +151,4 @@ flutter_native_splash:
- 'ios/Runner/Info-Profile.plist' - 'ios/Runner/Info-Profile.plist'
- 'ios/Runner/Info-Release.plist' - 'ios/Runner/Info-Release.plist'
# To enable support for Android 12, set the following parameter to true. Defaults to false. # To enable support for Android 12, set the following parameter to true. Defaults to false.
#android12: true android12: true