diff --git a/lib/data/res/provider.dart b/lib/data/res/provider.dart index 65fcafb6..b25df2ce 100644 --- a/lib/data/res/provider.dart +++ b/lib/data/res/provider.dart @@ -5,7 +5,6 @@ import 'package:toolbox/data/provider/private_key.dart'; import 'package:toolbox/data/provider/server.dart'; import 'package:toolbox/data/provider/sftp.dart'; import 'package:toolbox/data/provider/snippet.dart'; -import 'package:toolbox/data/provider/virtual_keyboard.dart'; import 'package:toolbox/locator.dart'; class Providers { @@ -18,5 +17,4 @@ class Providers { static final server = locator(); static final sftp = locator(); static final snippet = locator(); - static final virtKey = locator(); } diff --git a/lib/main.dart b/lib/main.dart index efda26b8..78cbf2d8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -27,7 +27,6 @@ import 'data/provider/private_key.dart'; import 'data/provider/server.dart'; import 'data/provider/sftp.dart'; import 'data/provider/snippet.dart'; -import 'data/provider/virtual_keyboard.dart'; import 'data/res/color.dart'; import 'locator.dart'; import 'view/widget/custom_appbar.dart'; @@ -43,7 +42,6 @@ Future main() async { ChangeNotifierProvider(create: (_) => locator()), ChangeNotifierProvider(create: (_) => locator()), ChangeNotifierProvider(create: (_) => locator()), - ChangeNotifierProvider(create: (_) => locator()), ChangeNotifierProvider(create: (_) => locator()), ChangeNotifierProvider(create: (_) => locator()), ], diff --git a/lib/view/page/setting/entry.dart b/lib/view/page/setting/entry.dart index be0357b4..d3350954 100644 --- a/lib/view/page/setting/entry.dart +++ b/lib/view/page/setting/entry.dart @@ -118,6 +118,7 @@ class _SettingPageState extends State { ), ], ), + /// Only for debug, this will cause the app to crash // onDoubleTap: () => context.showRoundDialog( // title: Text(l10n.attention), diff --git a/lib/view/page/ssh_term.dart b/lib/view/page/ssh_term.dart index 7612311c..102a90c7 100644 --- a/lib/view/page/ssh_term.dart +++ b/lib/view/page/ssh_term.dart @@ -11,6 +11,7 @@ import 'package:toolbox/core/extension/context/dialog.dart'; import 'package:toolbox/core/extension/context/locale.dart'; import 'package:toolbox/core/extension/context/snackbar.dart'; import 'package:toolbox/core/utils/platform/base.dart'; +import 'package:toolbox/data/provider/virtual_keyboard.dart'; import 'package:toolbox/data/res/store.dart'; import 'package:xterm/core.dart'; import 'package:xterm/ui.dart' hide TerminalThemes; @@ -20,10 +21,8 @@ import '../../core/utils/misc.dart'; import '../../core/utils/server.dart'; import '../../data/model/server/server_private_info.dart'; import '../../data/model/ssh/virtual_key.dart'; -import '../../data/provider/virtual_keyboard.dart'; import '../../data/res/color.dart'; import '../../data/res/terminal.dart'; -import '../../locator.dart'; const echoPWD = 'echo \$PWD'; @@ -37,7 +36,7 @@ class SSHPage extends StatefulWidget { } class _SSHPageState extends State { - final _keyboard = locator(); + final _keyboard = VirtKeyProvider(); late final _terminal = Terminal(inputHandler: _keyboard); final TerminalController _terminalController = TerminalController(); final List> _virtKeysList = []; @@ -144,8 +143,12 @@ class _SSHPageState extends State { child: Container( color: _terminalTheme.background, height: _virtKeysHeight, - child: Consumer( - builder: (_, __, ___) => _buildVirtualKey(), + child: ChangeNotifierProvider( + create: (_) => _keyboard, + builder: (_, __) => + Consumer(builder: (_, __, ___) { + return _buildVirtualKey(); + }), ), ), ),