mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-12-04 20:21:35 +08:00
refactor msgbox retry
This commit is contained in:
parent
6130792734
commit
4e85841398
@ -1144,3 +1144,16 @@ lazy_static::lazy_static! {
|
|||||||
("LOCK_SCREEN", Key::ControlKey(ControlKey::LockScreen)),
|
("LOCK_SCREEN", Key::ControlKey(ControlKey::LockScreen)),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
pub fn check_if_retry(msgtype: &str, title: &str, text: &str) -> bool {
|
||||||
|
msgtype == "error"
|
||||||
|
&& title == "Connection Error"
|
||||||
|
&& !text.to_lowercase().contains("offline")
|
||||||
|
&& !text.to_lowercase().contains("exist")
|
||||||
|
&& !text.to_lowercase().contains("handshake")
|
||||||
|
&& !text.to_lowercase().contains("failed")
|
||||||
|
&& !text.to_lowercase().contains("resolve")
|
||||||
|
&& !text.to_lowercase().contains("mismatch")
|
||||||
|
&& !text.to_lowercase().contains("manually")
|
||||||
|
}
|
||||||
|
@ -207,7 +207,7 @@ function getMsgboxParams() {
|
|||||||
return msgbox_params;
|
return msgbox_params;
|
||||||
}
|
}
|
||||||
|
|
||||||
function msgbox(type, title, text, callback, height, width) {
|
function msgbox(type, title, text, callback, height, width, retry=0) {
|
||||||
var has_msgbox = msgbox_params != null;
|
var has_msgbox = msgbox_params != null;
|
||||||
if (!has_msgbox && !type) return;
|
if (!has_msgbox && !type) return;
|
||||||
var remember = false;
|
var remember = false;
|
||||||
@ -217,7 +217,7 @@ function msgbox(type, title, text, callback, height, width) {
|
|||||||
msgbox_params = {
|
msgbox_params = {
|
||||||
remember: remember, type: type, text: text, title: title,
|
remember: remember, type: type, text: text, title: title,
|
||||||
getParams: getMsgboxParams,
|
getParams: getMsgboxParams,
|
||||||
callback: callback
|
callback: callback, retry: retry,
|
||||||
};
|
};
|
||||||
if (has_msgbox) return;
|
if (has_msgbox) return;
|
||||||
var dialog = {
|
var dialog = {
|
||||||
@ -251,10 +251,20 @@ function connecting() {
|
|||||||
handler.msgbox("connecting", "Connecting...", "Connection in progress. Please wait.");
|
handler.msgbox("connecting", "Connecting...", "Connection in progress. Please wait.");
|
||||||
}
|
}
|
||||||
|
|
||||||
handler.msgbox = function(type, title, text, callback=null, height=180, width=500) {
|
handler.msgbox = function(type, title, text, callback=null, height=180, width=500, retry=0) {
|
||||||
// directly call view.Dialog from native may crash, add timer here, seem safe
|
// directly call view.Dialog from native may crash, add timer here, seem safe
|
||||||
// too short time, msgbox won't get focus, per my test, 150 is almost minimun
|
// too short time, msgbox won't get focus, per my test, 150 is almost minimun
|
||||||
self.timer(150ms, function() { msgbox(type, title, text, callback, height, width); });
|
self.timer(150ms, function() { msgbox(type, title, text, callback, height, width, retry); });
|
||||||
|
}
|
||||||
|
|
||||||
|
var reconnectTimeout = 1;
|
||||||
|
handler.msgbox_retry = function(type, title, text, hasRetry, callback=null, height=180, width=500) {
|
||||||
|
handler.msgbox(type, title, text, callback, height, width, hasRetry ? reconnectTimeout : 0);
|
||||||
|
if (hasRetry) {
|
||||||
|
reconnectTimeout *= 2;
|
||||||
|
} else {
|
||||||
|
reconnectTimeout = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/******************** end of msgbox ****************************************/
|
/******************** end of msgbox ****************************************/
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
var type, title, text, getParams, remember, hasRetry, callback;
|
var type, title, text, getParams, remember, retry, callback;
|
||||||
|
|
||||||
function updateParams(params) {
|
function updateParams(params) {
|
||||||
type = params.type;
|
type = params.type;
|
||||||
@ -7,16 +7,9 @@ function updateParams(params) {
|
|||||||
getParams = params.getParams;
|
getParams = params.getParams;
|
||||||
remember = params.remember;
|
remember = params.remember;
|
||||||
callback = params.callback;
|
callback = params.callback;
|
||||||
hasRetry = type == "error" &&
|
retry = params.retry;
|
||||||
title == "Connection Error" &&
|
if (retry > 0) {
|
||||||
text.toLowerCase().indexOf("offline") < 0 &&
|
self.timer(retry * 1000, function() {
|
||||||
text.toLowerCase().indexOf("exist") < 0 &&
|
|
||||||
text.toLowerCase().indexOf("handshake") < 0 &&
|
|
||||||
text.toLowerCase().indexOf("failed") < 0 &&
|
|
||||||
text.toLowerCase().indexOf("resolve") < 0 &&
|
|
||||||
text.toLowerCase().indexOf("manually") < 0;
|
|
||||||
if (hasRetry) {
|
|
||||||
self.timer(1s, function() {
|
|
||||||
view.close({ reconnect: true });
|
view.close({ reconnect: true });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1663,7 +1663,8 @@ fn make_fd(id: i32, entries: &Vec<FileEntry>, only_count: bool) -> Value {
|
|||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl Interface for Handler {
|
impl Interface for Handler {
|
||||||
fn msgbox(&self, msgtype: &str, title: &str, text: &str) {
|
fn msgbox(&self, msgtype: &str, title: &str, text: &str) {
|
||||||
self.call("msgbox", &make_args!(msgtype, title, text));
|
let retry = check_if_retry(msgtype, title, text);
|
||||||
|
self.call("msgbox_retry", &make_args!(msgtype, title, text, retry));
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_login_error(&mut self, err: &str) -> bool {
|
fn handle_login_error(&mut self, err: &str) -> bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user