Merge pull request #6354 from 21pages/relay_hint
Show relay hint regardless of whether data is received or not
This commit is contained in:
commit
45d70f73bd
@ -512,7 +512,7 @@ class FfiModel with ChangeNotifier {
|
|||||||
showWaitUacDialog(sessionId, dialogManager, type);
|
showWaitUacDialog(sessionId, dialogManager, type);
|
||||||
} else if (type == 'elevation-error') {
|
} else if (type == 'elevation-error') {
|
||||||
showElevationError(sessionId, type, title, text, dialogManager);
|
showElevationError(sessionId, type, title, text, dialogManager);
|
||||||
} else if (type == 'relay-hint') {
|
} else if (type == 'relay-hint' || type == 'relay-hint2') {
|
||||||
showRelayHintDialog(sessionId, type, title, text, dialogManager, peerId);
|
showRelayHintDialog(sessionId, type, title, text, dialogManager, peerId);
|
||||||
} else if (text == 'Connected, waiting for image...') {
|
} else if (text == 'Connected, waiting for image...') {
|
||||||
showConnectedWaitingForImage(dialogManager, sessionId, type, title, text);
|
showConnectedWaitingForImage(dialogManager, sessionId, type, title, text);
|
||||||
@ -564,17 +564,19 @@ class FfiModel with ChangeNotifier {
|
|||||||
if (text.contains("10054") || text.contains("104")) {
|
if (text.contains("10054") || text.contains("104")) {
|
||||||
hint = "";
|
hint = "";
|
||||||
}
|
}
|
||||||
final alreadyForceAlwaysRelay = bind
|
|
||||||
.mainGetPeerOptionSync(id: peerId, key: 'force-always-relay')
|
|
||||||
.isNotEmpty;
|
|
||||||
return CustomAlertDialog(
|
return CustomAlertDialog(
|
||||||
title: null,
|
title: null,
|
||||||
content: msgboxContent(type, title, "${translate(text)}$hint"),
|
content: msgboxContent(type, title, "${translate(text)}$hint"),
|
||||||
actions: [
|
actions: [
|
||||||
dialogButton('Close', onPressed: onClose, isOutline: true),
|
dialogButton('Close', onPressed: onClose, isOutline: true),
|
||||||
|
if (type == 'relay-hint')
|
||||||
|
dialogButton('Connect via relay',
|
||||||
|
onPressed: () => reconnect(dialogManager, sessionId, true),
|
||||||
|
buttonStyle: style,
|
||||||
|
isOutline: true),
|
||||||
dialogButton('Retry',
|
dialogButton('Retry',
|
||||||
onPressed: () => reconnect(dialogManager, sessionId, false)),
|
onPressed: () => reconnect(dialogManager, sessionId, false)),
|
||||||
if (!alreadyForceAlwaysRelay)
|
if (type == 'relay-hint2')
|
||||||
dialogButton('Connect via relay',
|
dialogButton('Connect via relay',
|
||||||
onPressed: () => reconnect(dialogManager, sessionId, true),
|
onPressed: () => reconnect(dialogManager, sessionId, true),
|
||||||
buttonStyle: style),
|
buttonStyle: style),
|
||||||
|
@ -1801,7 +1801,11 @@ impl LoginConfigHandler {
|
|||||||
crate::flutter::push_global_event(crate::flutter::APP_TYPE_MAIN, evt);
|
crate::flutter::push_global_event(crate::flutter::APP_TYPE_MAIN, evt);
|
||||||
}
|
}
|
||||||
if config.keyboard_mode.is_empty() {
|
if config.keyboard_mode.is_empty() {
|
||||||
if is_keyboard_mode_supported(&KeyboardMode::Map, get_version_number(&pi.version), &pi.platform) {
|
if is_keyboard_mode_supported(
|
||||||
|
&KeyboardMode::Map,
|
||||||
|
get_version_number(&pi.version),
|
||||||
|
&pi.platform,
|
||||||
|
) {
|
||||||
config.keyboard_mode = KeyboardMode::Map.to_string();
|
config.keyboard_mode = KeyboardMode::Map.to_string();
|
||||||
} else {
|
} else {
|
||||||
config.keyboard_mode = KeyboardMode::Legacy.to_string();
|
config.keyboard_mode = KeyboardMode::Legacy.to_string();
|
||||||
@ -2670,21 +2674,25 @@ pub trait Interface: Send + Clone + 'static + Sized {
|
|||||||
let lc = self.get_lch();
|
let lc = self.get_lch();
|
||||||
let direct = lc.read().unwrap().direct;
|
let direct = lc.read().unwrap().direct;
|
||||||
let received = lc.read().unwrap().received;
|
let received = lc.read().unwrap().received;
|
||||||
let relay_condition = direct == Some(true) && !received;
|
|
||||||
|
|
||||||
|
let mut relay_hint = false;
|
||||||
|
let mut relay_hint_type = "relay-hint";
|
||||||
// force relay
|
// force relay
|
||||||
let errno = errno::errno().0;
|
let errno = errno::errno().0;
|
||||||
log::error!("Connection closed: {err}({errno})");
|
log::error!("Connection closed: {err}({errno})");
|
||||||
if relay_condition
|
if direct == Some(true)
|
||||||
&& (cfg!(windows) && (errno == 10054 || err.contains("10054"))
|
&& ((cfg!(windows) && (errno == 10054 || err.contains("10054")))
|
||||||
|| !cfg!(windows) && (errno == 104 || err.contains("104")))
|
|| (!cfg!(windows) && (errno == 104 || err.contains("104"))))
|
||||||
{
|
{
|
||||||
lc.write().unwrap().force_relay = true;
|
relay_hint = true;
|
||||||
|
if !received {
|
||||||
|
relay_hint_type = "relay-hint2"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// relay-hint
|
// relay-hint
|
||||||
if cfg!(feature = "flutter") && relay_condition {
|
if cfg!(feature = "flutter") && relay_hint {
|
||||||
self.msgbox("relay-hint", title, &text, "");
|
self.msgbox(relay_hint_type, title, &text, "");
|
||||||
} else {
|
} else {
|
||||||
self.msgbox("error", title, &text, "");
|
self.msgbox("error", title, &text, "");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user