fix os password

Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
dignow 2023-07-04 19:43:39 +08:00
parent 06af880b12
commit b75edd9710
2 changed files with 27 additions and 7 deletions

View File

@ -943,15 +943,14 @@ showSetOSPassword(
SessionID sessionId, SessionID sessionId,
bool login, bool login,
OverlayDialogManager dialogManager, OverlayDialogManager dialogManager,
String? osPassword,
) async { ) async {
final controller = TextEditingController(); final controller = TextEditingController();
var password = osPassword ??= await bind.sessionGetOption(sessionId: sessionId, arg: 'os-password') ?? '';
await bind.sessionGetOption(sessionId: sessionId, arg: 'os-password') ??
'';
var autoLogin = var autoLogin =
await bind.sessionGetOption(sessionId: sessionId, arg: 'auto-login') != await bind.sessionGetOption(sessionId: sessionId, arg: 'auto-login') !=
''; '';
controller.text = password; controller.text = osPassword;
dialogManager.show((setState, close, context) { dialogManager.show((setState, close, context) {
submit() { submit() {
var text = controller.text.trim(); var text = controller.text.trim();

View File

@ -11,6 +11,8 @@ import 'package:flutter_hbb/models/model.dart';
import 'package:flutter_hbb/models/platform_model.dart'; import 'package:flutter_hbb/models/platform_model.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
bool isEditOsPassword = false;
class TTextMenu { class TTextMenu {
final Widget child; final Widget child;
final VoidCallback onPressed; final VoidCallback onPressed;
@ -67,13 +69,32 @@ List<TTextMenu> toolbarControls(BuildContext context, String id, FFI ffi) {
Text(translate(pi.is_headless ? 'OS Account' : 'OS Password')), Text(translate(pi.is_headless ? 'OS Account' : 'OS Password')),
Offstage( Offstage(
offstage: isDesktop, offstage: isDesktop,
child: InkWell(
onTap: () =>
showSetOSPassword(sessionId, false, ffi.dialogManager, null),
child: child:
Icon(Icons.edit, color: MyTheme.accent).marginOnly(left: 12)) Icon(Icons.edit, color: MyTheme.accent).marginOnly(left: 12),
),
)
]), ]),
trailingIcon: Transform.scale(scale: 0.8, child: Icon(Icons.edit)), trailingIcon: Transform.scale(scale: 0.8, child: Icon(Icons.edit)),
onPressed: () => pi.is_headless onPressed: () => pi.is_headless
? showSetOSAccount(sessionId, ffi.dialogManager) ? showSetOSAccount(sessionId, ffi.dialogManager)
: showSetOSPassword(sessionId, false, ffi.dialogManager)), : () async {
if (isEditOsPassword) {
isEditOsPassword = false;
return;
}
final password = await bind.sessionGetOption(
sessionId: sessionId, arg: 'os-password') ??
'';
if (password.isEmpty) {
showSetOSPassword(sessionId, true, ffi.dialogManager, password);
} else {
bind.sessionInputOsPassword(
sessionId: sessionId, value: password);
}
}),
); );
// paste // paste
if (isMobile && perms['keyboard'] != false && perms['clipboard'] != false) { if (isMobile && perms['keyboard'] != false && perms['clipboard'] != false) {