Merge pull request #4684 from 21pages/fix

decode utf8 json
This commit is contained in:
RustDesk 2023-06-18 14:15:21 +08:00 committed by GitHub
commit 0e61d4e819
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 8 deletions

View File

@ -1369,7 +1369,7 @@ class _AccountState extends State<_Account> {
physics: DraggableNeverScrollableScrollPhysics(), physics: DraggableNeverScrollableScrollPhysics(),
controller: scrollController, controller: scrollController,
children: [ children: [
_Card(title: 'Account', children: [accountAction()]), _Card(title: 'Account', children: [accountAction(), useInfo()]),
], ],
).marginOnly(bottom: _kListViewBottomMargin)); ).marginOnly(bottom: _kListViewBottomMargin));
} }
@ -1383,6 +1383,26 @@ class _AccountState extends State<_Account> {
: gFFI.userModel.logOut() : gFFI.userModel.logOut()
})); }));
} }
Widget useInfo() {
text(String key, String value) {
return Align(
alignment: Alignment.centerLeft,
child: SelectionArea(child: Text('${translate(key)}: $value'))
.marginSymmetric(vertical: 4),
);
}
return Obx(() => Offstage(
offstage: gFFI.userModel.userName.value.isEmpty,
child: Column(
children: [
text('Username', gFFI.userModel.userName.value),
text('Group', gFFI.groupModel.groupName.value),
],
),
)).marginOnly(left: 18, top: 16);
}
} }
class _Checkbox extends StatefulWidget { class _Checkbox extends StatefulWidget {

View File

@ -76,7 +76,7 @@ class GroupModel {
}); });
final resp = await http.get(uri, headers: getHttpHeaders()); final resp = await http.get(uri, headers: getHttpHeaders());
if (resp.body.isNotEmpty && resp.body.toLowerCase() != "null") { if (resp.body.isNotEmpty && resp.body.toLowerCase() != "null") {
Map<String, dynamic> json = jsonDecode(resp.body); Map<String, dynamic> json = jsonDecode(utf8.decode(resp.bodyBytes));
if (json.containsKey('error')) { if (json.containsKey('error')) {
throw json['error']; throw json['error'];
} else { } else {
@ -119,7 +119,7 @@ class GroupModel {
if (status == 401 || status == 400) { if (status == 401 || status == 400) {
return false; return false;
} }
final data = json.decode(response.body); final data = json.decode(utf8.decode(response.bodyBytes));
final error = data['error']; final error = data['error'];
if (error != null) { if (error != null) {
throw error; throw error;
@ -159,7 +159,7 @@ class GroupModel {
}); });
final resp = await http.get(uri, headers: getHttpHeaders()); final resp = await http.get(uri, headers: getHttpHeaders());
if (resp.body.isNotEmpty && resp.body.toLowerCase() != "null") { if (resp.body.isNotEmpty && resp.body.toLowerCase() != "null") {
Map<String, dynamic> json = jsonDecode(resp.body); Map<String, dynamic> json = jsonDecode(utf8.decode(resp.bodyBytes));
if (json.containsKey('error')) { if (json.containsKey('error')) {
throw json['error']; throw json['error'];
} else { } else {

View File

@ -41,7 +41,7 @@ class UserModel {
reset(); reset();
return; return;
} }
final data = json.decode(response.body); final data = json.decode(utf8.decode(response.bodyBytes));
final error = data['error']; final error = data['error'];
if (error != null) { if (error != null) {
throw error; throw error;
@ -105,7 +105,7 @@ class UserModel {
final Map<String, dynamic> body; final Map<String, dynamic> body;
try { try {
body = jsonDecode(resp.body); body = jsonDecode(utf8.decode(resp.bodyBytes));
} catch (e) { } catch (e) {
print("login: jsonDecode resp body failed: ${e.toString()}"); print("login: jsonDecode resp body failed: ${e.toString()}");
rethrow; rethrow;

View File

@ -509,8 +509,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("resolution_fit_local_tip", "Adatta risoluzione locale"), ("resolution_fit_local_tip", "Adatta risoluzione locale"),
("resolution_custom_tip", "Risoluzione personalizzata"), ("resolution_custom_tip", "Risoluzione personalizzata"),
("Collapse toolbar", "Comprimi barra strumenti"), ("Collapse toolbar", "Comprimi barra strumenti"),
("Accept and Elevate", ""),
("accept_and_elevate_btn_tooltip", ""),
("Accept and Elevate", "Accetta ed eleva"), ("Accept and Elevate", "Accetta ed eleva"),
("accept_and_elevate_btn_tooltip", "Accetta la connessione ed eleva le autorizzazioni UAC."), ("accept_and_elevate_btn_tooltip", "Accetta la connessione ed eleva le autorizzazioni UAC."),
].iter().cloned().collect(); ].iter().cloned().collect();