diff --git a/flutter/lib/desktop/pages/desktop_home_page.dart b/flutter/lib/desktop/pages/desktop_home_page.dart index 12f17c95e..632177e29 100644 --- a/flutter/lib/desktop/pages/desktop_home_page.dart +++ b/flutter/lib/desktop/pages/desktop_home_page.dart @@ -806,6 +806,8 @@ Future loginDialog() async { var userNameMsg = ""; String pass = ""; var passMsg = ""; + var userContontroller = TextEditingController(text: userName); + var pwdController = TextEditingController(text: pass); var isInProgress = false; var completer = Completer(); @@ -833,13 +835,10 @@ Future loginDialog() async { ), Expanded( child: TextField( - onChanged: (s) { - userName = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), errorText: userNameMsg.isNotEmpty ? userNameMsg : null), - controller: TextEditingController(text: userName), + controller: userContontroller, ), ), ], @@ -859,13 +858,10 @@ Future loginDialog() async { Expanded( child: TextField( obscureText: true, - onChanged: (s) { - pass = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), errorText: passMsg.isNotEmpty ? passMsg : null), - controller: TextEditingController(text: pass), + controller: pwdController, ), ), ], @@ -896,8 +892,8 @@ Future loginDialog() async { isInProgress = false; }); }; - userName = userName; - pass = pass; + userName = userContontroller.text; + pass = pwdController.text; if (userName.isEmpty) { userNameMsg = translate("Username missed"); cancel(); diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index 4f86974f1..120f8bc7a 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -1025,7 +1025,6 @@ class _ComboBox extends StatelessWidget { void changeServer() async { Map oldOptions = jsonDecode(await bind.mainGetOptions()); - print("${oldOptions}"); String idServer = oldOptions['custom-rendezvous-server'] ?? ""; var idServerMsg = ""; String relayServer = oldOptions['relay-server'] ?? ""; @@ -1033,6 +1032,10 @@ void changeServer() async { String apiServer = oldOptions['api-server'] ?? ""; var apiServerMsg = ""; var key = oldOptions['key'] ?? ""; + var idController = TextEditingController(text: idServer); + var relayController = TextEditingController(text: relayServer); + var apiController = TextEditingController(text: apiServer); + var keyController = TextEditingController(text: key); var isInProgress = false; gFFI.dialogManager.show((setState, close) { @@ -1057,13 +1060,10 @@ void changeServer() async { ), Expanded( child: TextField( - onChanged: (s) { - idServer = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), errorText: idServerMsg.isNotEmpty ? idServerMsg : null), - controller: TextEditingController(text: idServer), + controller: idController, ), ), ], @@ -1082,14 +1082,11 @@ void changeServer() async { ), Expanded( child: TextField( - onChanged: (s) { - relayServer = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), errorText: relayServerMsg.isNotEmpty ? relayServerMsg : null), - controller: TextEditingController(text: relayServer), + controller: relayController, ), ), ], @@ -1108,14 +1105,11 @@ void changeServer() async { ), Expanded( child: TextField( - onChanged: (s) { - apiServer = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), errorText: apiServerMsg.isNotEmpty ? apiServerMsg : null), - controller: TextEditingController(text: apiServer), + controller: apiController, ), ), ], @@ -1134,13 +1128,10 @@ void changeServer() async { ), Expanded( child: TextField( - onChanged: (s) { - key = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), ), - controller: TextEditingController(text: key), + controller: keyController, ), ), ], @@ -1171,10 +1162,10 @@ void changeServer() async { isInProgress = false; }); }; - idServer = idServer.trim(); - relayServer = relayServer.trim(); - apiServer = apiServer.trim(); - key = key.trim(); + idServer = idController.text.trim(); + relayServer = relayController.text.trim(); + apiServer = apiController.text.trim().toLowerCase(); + key = keyController.text.trim(); if (idServer.isNotEmpty) { idServerMsg = translate( @@ -1230,6 +1221,7 @@ void changeWhiteList() async { Map oldOptions = jsonDecode(await bind.mainGetOptions()); var newWhiteList = ((oldOptions['whitelist'] ?? "") as String).split(','); var newWhiteListField = newWhiteList.join('\n'); + var controller = TextEditingController(text: newWhiteListField); var msg = ""; var isInProgress = false; gFFI.dialogManager.show((setState, close) { @@ -1246,15 +1238,12 @@ void changeWhiteList() async { children: [ Expanded( child: TextField( - onChanged: (s) { - newWhiteListField = s; - }, maxLines: null, decoration: InputDecoration( border: OutlineInputBorder(), errorText: msg.isEmpty ? null : translate(msg), ), - controller: TextEditingController(text: newWhiteListField), + controller: controller, ), ), ], @@ -1277,7 +1266,7 @@ void changeWhiteList() async { msg = ""; isInProgress = true; }); - newWhiteListField = newWhiteListField.trim(); + newWhiteListField = controller.text.trim(); var newWhiteList = ""; if (newWhiteListField.isEmpty) { // pass @@ -1319,6 +1308,9 @@ void changeSocks5Proxy() async { username = socks[1]; password = socks[2]; } + var proxyController = TextEditingController(text: proxy); + var userController = TextEditingController(text: username); + var pwdController = TextEditingController(text: password); var isInProgress = false; gFFI.dialogManager.show((setState, close) { @@ -1343,13 +1335,10 @@ void changeSocks5Proxy() async { ), Expanded( child: TextField( - onChanged: (s) { - proxy = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), errorText: proxyMsg.isNotEmpty ? proxyMsg : null), - controller: TextEditingController(text: proxy), + controller: proxyController, ), ), ], @@ -1368,13 +1357,10 @@ void changeSocks5Proxy() async { ), Expanded( child: TextField( - onChanged: (s) { - username = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), ), - controller: TextEditingController(text: username), + controller: userController, ), ), ], @@ -1393,13 +1379,10 @@ void changeSocks5Proxy() async { ), Expanded( child: TextField( - onChanged: (s) { - password = s; - }, decoration: InputDecoration( border: OutlineInputBorder(), ), - controller: TextEditingController(text: password), + controller: pwdController, ), ), ], @@ -1428,9 +1411,9 @@ void changeSocks5Proxy() async { isInProgress = false; }); }; - proxy = proxy.trim(); - username = username.trim(); - password = password.trim(); + proxy = proxyController.text.trim(); + username = userController.text.trim(); + password = pwdController.text.trim(); if (proxy.isNotEmpty) { proxyMsg = diff --git a/flutter/lib/desktop/widgets/peercard_widget.dart b/flutter/lib/desktop/widgets/peercard_widget.dart index 810b84a63..4db43398a 100644 --- a/flutter/lib/desktop/widgets/peercard_widget.dart +++ b/flutter/lib/desktop/widgets/peercard_widget.dart @@ -462,6 +462,7 @@ class _PeerCardState extends State<_PeerCard> void _rename(String id) async { var isInProgress = false; var name = await bind.mainGetPeerOption(id: id, key: 'alias'); + var controller = TextEditingController(text: name); if (widget.type == PeerType.ab) { final peer = gFFI.abModel.peers.firstWhere((p) => id == p['id']); if (peer == null) { @@ -470,7 +471,6 @@ class _PeerCardState extends State<_PeerCard> name = peer['alias'] ?? ""; } } - final k = GlobalKey(); gFFI.dialogManager.show((setState, close) { return CustomAlertDialog( title: Text(translate("Rename")), @@ -480,22 +480,9 @@ class _PeerCardState extends State<_PeerCard> Container( padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), child: Form( - key: k, child: TextFormField( - controller: TextEditingController(text: name), + controller: controller, decoration: InputDecoration(border: OutlineInputBorder()), - onChanged: (newStr) { - name = newStr; - }, - validator: (s) { - if (s == null || s.isEmpty) { - return translate("Empty"); - } - return null; - }, - onSaved: (s) { - name = s ?? "unnamed"; - }, ), ), ), @@ -513,22 +500,17 @@ class _PeerCardState extends State<_PeerCard> setState(() { isInProgress = true; }); - if (k.currentState != null) { - if (k.currentState!.validate()) { - k.currentState!.save(); - await bind.mainSetPeerOption( - id: id, key: 'alias', value: name); - if (widget.type == PeerType.ab) { - gFFI.abModel.setPeerOption(id, 'alias', name); - await gFFI.abModel.updateAb(); - } else { - Future.delayed(Duration.zero, () { - this.setState(() {}); - }); - } - close(); - } + name = controller.text; + await bind.mainSetPeerOption(id: id, key: 'alias', value: name); + if (widget.type == PeerType.ab) { + gFFI.abModel.setPeerOption(id, 'alias', name); + await gFFI.abModel.updateAb(); + } else { + Future.delayed(Duration.zero, () { + this.setState(() {}); + }); } + close(); setState(() { isInProgress = false; });