remove calling refreshCurrentUser when connect status become ready (#8849)

When refreshCurrentUser throw error, show check network in ab and group
tab.

Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
21pages 2024-07-28 10:15:09 +08:00 committed by GitHub
parent 9750e1409c
commit 7e8d3bd2ac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
51 changed files with 90 additions and 13 deletions

View File

@ -3490,3 +3490,20 @@ disableWindowMovable(int? windowId) {
WindowController.fromWindowId(windowId).setMovable(false); WindowController.fromWindowId(windowId).setMovable(false);
} }
} }
Widget netWorkErrorWidget() {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(translate("network_error_tip")),
ElevatedButton(
onPressed: gFFI.userModel.refreshCurrentUser,
child: Text(translate("Retry")))
.marginSymmetric(vertical: 16),
Text(gFFI.userModel.networkError.value,
style: TextStyle(fontSize: 11, color: Colors.red)),
],
));
}

View File

@ -41,6 +41,8 @@ class _AddressBookState extends State<AddressBook> {
return Center( return Center(
child: ElevatedButton( child: ElevatedButton(
onPressed: loginDialog, child: Text(translate("Login")))); onPressed: loginDialog, child: Text(translate("Login"))));
} else if (gFFI.userModel.networkError.isNotEmpty) {
return netWorkErrorWidget();
} else { } else {
return Column( return Column(
children: [ children: [

View File

@ -30,6 +30,8 @@ class _MyGroupState extends State<MyGroup> {
return Center( return Center(
child: ElevatedButton( child: ElevatedButton(
onPressed: loginDialog, child: Text(translate("Login")))); onPressed: loginDialog, child: Text(translate("Login"))));
} else if (gFFI.userModel.networkError.isNotEmpty) {
return netWorkErrorWidget();
} else if (gFFI.groupModel.groupLoading.value && gFFI.groupModel.emtpy) { } else if (gFFI.groupModel.groupLoading.value && gFFI.groupModel.emtpy) {
return const Center( return const Center(
child: CircularProgressIndicator(), child: CircularProgressIndicator(),

View File

@ -34,7 +34,6 @@ class _OnlineStatusWidgetState extends State<OnlineStatusWidget> {
final _svcStopped = Get.find<RxBool>(tag: 'stop-service'); final _svcStopped = Get.find<RxBool>(tag: 'stop-service');
final _svcIsUsingPublicServer = true.obs; final _svcIsUsingPublicServer = true.obs;
Timer? _updateTimer; Timer? _updateTimer;
final DateTime _appStartTime = DateTime.now();
double get em => 14.0; double get em => 14.0;
double? get height => bind.isIncomingOnly() ? null : em * 3; double? get height => bind.isIncomingOnly() ? null : em * 3;
@ -170,17 +169,12 @@ class _OnlineStatusWidgetState extends State<OnlineStatusWidget> {
final status = final status =
jsonDecode(await bind.mainGetConnectStatus()) as Map<String, dynamic>; jsonDecode(await bind.mainGetConnectStatus()) as Map<String, dynamic>;
final statusNum = status['status_num'] as int; final statusNum = status['status_num'] as int;
final preStatus = stateGlobal.svcStatus.value;
if (statusNum == 0) { if (statusNum == 0) {
stateGlobal.svcStatus.value = SvcStatus.connecting; stateGlobal.svcStatus.value = SvcStatus.connecting;
} else if (statusNum == -1) { } else if (statusNum == -1) {
stateGlobal.svcStatus.value = SvcStatus.notReady; stateGlobal.svcStatus.value = SvcStatus.notReady;
} else if (statusNum == 1) { } else if (statusNum == 1) {
stateGlobal.svcStatus.value = SvcStatus.ready; stateGlobal.svcStatus.value = SvcStatus.ready;
if (preStatus != SvcStatus.ready &&
DateTime.now().difference(_appStartTime) > Duration(seconds: 5)) {
gFFI.userModel.refreshCurrentUser();
}
} else { } else {
stateGlobal.svcStatus.value = SvcStatus.notReady; stateGlobal.svcStatus.value = SvcStatus.notReady;
} }

View File

@ -112,6 +112,7 @@ class AbModel {
{required ForcePullAb? force, required bool quiet}) async { {required ForcePullAb? force, required bool quiet}) async {
if (bind.isDisableAb()) return; if (bind.isDisableAb()) return;
if (!gFFI.userModel.isLogin) return; if (!gFFI.userModel.isLogin) return;
if (gFFI.userModel.networkError.isNotEmpty) return;
if (force == null && listInitialized && current.initialized) return; if (force == null && listInitialized && current.initialized) return;
debugPrint("pullAb, force: $force, quiet: $quiet"); debugPrint("pullAb, force: $force, quiet: $quiet");
if (!listInitialized || force == ForcePullAb.listAndCurrent) { if (!listInitialized || force == ForcePullAb.listAndCurrent) {

View File

@ -28,6 +28,7 @@ class GroupModel {
Future<void> pull({force = true, quiet = false}) async { Future<void> pull({force = true, quiet = false}) async {
if (bind.isDisableGroupPanel()) return; if (bind.isDisableGroupPanel()) return;
if (!gFFI.userModel.isLogin || groupLoading.value) return; if (!gFFI.userModel.isLogin || groupLoading.value) return;
if (gFFI.userModel.networkError.isNotEmpty) return;
if (!force && initialized) return; if (!force && initialized) return;
if (!quiet) { if (!quiet) {
groupLoading.value = true; groupLoading.value = true;

View File

@ -17,13 +17,23 @@ bool refreshingUser = false;
class UserModel { class UserModel {
final RxString userName = ''.obs; final RxString userName = ''.obs;
final RxBool isAdmin = false.obs; final RxBool isAdmin = false.obs;
final RxString networkError = ''.obs;
bool get isLogin => userName.isNotEmpty; bool get isLogin => userName.isNotEmpty;
WeakReference<FFI> parent; WeakReference<FFI> parent;
UserModel(this.parent); UserModel(this.parent) {
userName.listen((p0) {
// When user name becomes empty, show login button
// When user name becomes non-empty:
// For _updateLocalUserInfo, network error will be set later
// For login success, should clear network error
networkError.value = '';
});
}
void refreshCurrentUser() async { void refreshCurrentUser() async {
if (bind.isDisableAccount()) return; if (bind.isDisableAccount()) return;
networkError.value = '';
final token = bind.mainGetLocalOption(key: 'access_token'); final token = bind.mainGetLocalOption(key: 'access_token');
if (token == '') { if (token == '') {
await updateOtherModels(); await updateOtherModels();
@ -38,12 +48,18 @@ class UserModel {
if (refreshingUser) return; if (refreshingUser) return;
try { try {
refreshingUser = true; refreshingUser = true;
final response = await http.post(Uri.parse('$url/api/currentUser'), final http.Response response;
headers: { try {
'Content-Type': 'application/json', response = await http.post(Uri.parse('$url/api/currentUser'),
'Authorization': 'Bearer $token' headers: {
}, 'Content-Type': 'application/json',
body: json.encode(body)); 'Authorization': 'Bearer $token'
},
body: json.encode(body));
} catch (e) {
networkError.value = e.toString();
rethrow;
}
refreshingUser = false; refreshingUser = false;
final status = response.statusCode; final status = response.statusCode;
if (status == 401 || status == 400) { if (status == 401 || status == 400) {

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "确定要取消 Telegram 机器人吗?"), ("cancel-bot-confirm-tip", "确定要取消 Telegram 机器人吗?"),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", "请检查网络连接, 然后点击再试"),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "Jste si jisti, že chcete zrušit bota Telegramu?"), ("cancel-bot-confirm-tip", "Jste si jisti, že chcete zrušit bota Telegramu?"),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "Sind Sie sicher, dass Sie Telegram-Bot abbrechen möchten?"), ("cancel-bot-confirm-tip", "Sind Sie sicher, dass Sie Telegram-Bot abbrechen möchten?"),
("About RustDesk", "Über RustDesk"), ("About RustDesk", "Über RustDesk"),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "Είστε βέβαιοι ότι θέλετε να ακυρώσετε το Telegram bot;"), ("cancel-bot-confirm-tip", "Είστε βέβαιοι ότι θέλετε να ακυρώσετε το Telegram bot;"),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -232,5 +232,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-2fa-confirm-tip", "Are you sure you want to cancel 2FA?"), ("cancel-2fa-confirm-tip", "Are you sure you want to cancel 2FA?"),
("cancel-bot-confirm-tip", "Are you sure you want to cancel Telegram bot?"), ("cancel-bot-confirm-tip", "Are you sure you want to cancel Telegram bot?"),
("About RustDesk", ""), ("About RustDesk", ""),
("network_error_tip", "Please check your network connection, then click retry.")
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "¿Seguro que quieres cancelar el bot de Telegram?"), ("cancel-bot-confirm-tip", "¿Seguro que quieres cancelar el bot de Telegram?"),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "Sei sicuro di voler annulare Telegram?"), ("cancel-bot-confirm-tip", "Sei sicuro di voler annulare Telegram?"),
("About RustDesk", "Info su RustDesk"), ("About RustDesk", "Info su RustDesk"),
("Send clipboard keystrokes", "Invia sequenze tasti appunti"), ("Send clipboard keystrokes", "Invia sequenze tasti appunti"),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "本当にTelegram Botをキャンセルしますか"), ("cancel-bot-confirm-tip", "本当にTelegram Botをキャンセルしますか"),
("About RustDesk", "RustDeskについて"), ("About RustDesk", "RustDeskについて"),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "Vai tiešām vēlaties atcelt Telegram robotu?"), ("cancel-bot-confirm-tip", "Vai tiešām vēlaties atcelt Telegram robotu?"),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "Weet je zeker dat je de Telegram-bot wilt annuleren?"), ("cancel-bot-confirm-tip", "Weet je zeker dat je de Telegram-bot wilt annuleren?"),
("About RustDesk", "Over RustDesk"), ("About RustDesk", "Over RustDesk"),
("Send clipboard keystrokes", "Klembord toetsaanslagen verzenden"), ("Send clipboard keystrokes", "Klembord toetsaanslagen verzenden"),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "Отключить Telegram-бота?"), ("cancel-bot-confirm-tip", "Отключить Telegram-бота?"),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "Ste si istí, že chcete zrušiť bota Telegramu?"), ("cancel-bot-confirm-tip", "Ste si istí, že chcete zrušiť bota Telegramu?"),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", "確定要取消 Telegram 機器人嗎?"), ("cancel-bot-confirm-tip", "確定要取消 Telegram 機器人嗎?"),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }

View File

@ -631,5 +631,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("cancel-bot-confirm-tip", ""), ("cancel-bot-confirm-tip", ""),
("About RustDesk", ""), ("About RustDesk", ""),
("Send clipboard keystrokes", ""), ("Send clipboard keystrokes", ""),
("network_error_tip", ""),
].iter().cloned().collect(); ].iter().cloned().collect();
} }