fix: mobile, server page, jumps on loading (#8819)

Signed-off-by: dignow <linlong1265@gmail.com>
This commit is contained in:
dignow 2024-07-25 00:13:22 +08:00 committed by GitHub
parent f7e9057a39
commit 0451a1c45f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 44 additions and 27 deletions

View file

@ -3326,6 +3326,42 @@ bool isInHomePage() {
return controller.state.value.selected == 0; return controller.state.value.selected == 0;
} }
Widget _buildPresetPasswordWarning() {
if (bind.mainGetBuildinOption(key: kOptionRemovePresetPasswordWarning) !=
'N') {
return SizedBox.shrink();
}
return Container(
color: Colors.yellow,
child: Column(
children: [
Align(
child: Text(
translate("Security Alert"),
style: TextStyle(
color: Colors.red,
fontSize:
18, // https://github.com/rustdesk/rustdesk-server-pro/issues/261
fontWeight: FontWeight.bold,
),
)).paddingOnly(bottom: 8),
Text(
translate("preset_password_warning"),
style: TextStyle(color: Colors.red),
)
],
).paddingAll(8),
); // Show a warning message if the Future completed with true
}
Widget buildPresetPasswordWarningMobile() {
if (bind.isPresetPasswordMobileOnly()) {
return _buildPresetPasswordWarning();
} else {
return SizedBox.shrink();
}
}
Widget buildPresetPasswordWarning() { Widget buildPresetPasswordWarning() {
return FutureBuilder<bool>( return FutureBuilder<bool>(
future: bind.isPresetPassword(), future: bind.isPresetPassword(),
@ -3336,32 +3372,7 @@ Widget buildPresetPasswordWarning() {
return Text( return Text(
'Error: ${snapshot.error}'); // Show an error message if the Future completed with an error 'Error: ${snapshot.error}'); // Show an error message if the Future completed with an error
} else if (snapshot.hasData && snapshot.data == true) { } else if (snapshot.hasData && snapshot.data == true) {
if (bind.mainGetBuildinOption( return _buildPresetPasswordWarning();
key: kOptionRemovePresetPasswordWarning) !=
'N') {
return SizedBox.shrink();
}
return Container(
color: Colors.yellow,
child: Column(
children: [
Align(
child: Text(
translate("Security Alert"),
style: TextStyle(
color: Colors.red,
fontSize:
18, // https://github.com/rustdesk/rustdesk-server-pro/issues/261
fontWeight: FontWeight.bold,
),
)).paddingOnly(bottom: 8),
Text(
translate("preset_password_warning"),
style: TextStyle(color: Colors.red),
)
],
).paddingAll(8),
); // Show a warning message if the Future completed with true
} else { } else {
return SizedBox return SizedBox
.shrink(); // Show nothing if the Future completed with false or null .shrink(); // Show nothing if the Future completed with false or null

View file

@ -187,7 +187,7 @@ class _ServerPageState extends State<ServerPage> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
buildPresetPasswordWarning(), buildPresetPasswordWarningMobile(),
gFFI.serverModel.isStart gFFI.serverModel.isStart
? ServerInfo() ? ServerInfo()
: ServiceNotRunningNotification(), : ServiceNotRunningNotification(),

View file

@ -1966,6 +1966,12 @@ pub fn is_preset_password() -> bool {
}) })
} }
// Don't call this function for desktop version.
// We need this function because we want a sync return for mobile version.
pub fn is_preset_password_mobile_only() -> SyncReturn<bool> {
SyncReturn(is_preset_password())
}
/// Send a url scheme through the ipc. /// Send a url scheme through the ipc.
/// ///
/// * macOS only /// * macOS only