add: change id on flutter
This commit is contained in:
parent
19c3c6034e
commit
f4e0b6e50a
@ -266,6 +266,8 @@ class _DesktopHomePageState extends State<DesktopHomePage> with TrayListener {
|
||||
} else if (value == "stop-service") {
|
||||
final option = gFFI.getOption(value);
|
||||
gFFI.setOption(value, option == "Y" ? "" : "Y");
|
||||
} else if (value == "change-id") {
|
||||
changeId();
|
||||
}
|
||||
}
|
||||
|
||||
@ -341,4 +343,64 @@ class _DesktopHomePageState extends State<DesktopHomePage> with TrayListener {
|
||||
},
|
||||
), value: 'audio-input',);
|
||||
}
|
||||
|
||||
/// change local ID
|
||||
void changeId() {
|
||||
var newId = "";
|
||||
var msg = "";
|
||||
var isInProgress = false;
|
||||
DialogManager.show( (setState, close) {
|
||||
return CustomAlertDialog(
|
||||
title: Text(translate("Change ID")),
|
||||
content: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(translate("id_change_tip")),
|
||||
Offstage(
|
||||
offstage: msg.isEmpty,
|
||||
child: Text(msg, style: TextStyle(color: Colors.grey),)).marginOnly(bottom: 4.0),
|
||||
TextField(
|
||||
onChanged: (s) {
|
||||
newId = s;
|
||||
},
|
||||
decoration: InputDecoration(
|
||||
border: OutlineInputBorder()
|
||||
),
|
||||
inputFormatters: [
|
||||
LengthLimitingTextInputFormatter(16),
|
||||
// FilteringTextInputFormatter(RegExp(r"[a-zA-z][a-zA-z0-9\_]*"), allow: true)
|
||||
],
|
||||
maxLength: 16,
|
||||
),
|
||||
SizedBox(height: 4.0,),
|
||||
Offstage(
|
||||
offstage: !isInProgress,
|
||||
child: LinearProgressIndicator())
|
||||
],
|
||||
), actions: [
|
||||
TextButton(onPressed: (){
|
||||
close();
|
||||
}, child: Text("取消")),
|
||||
TextButton(onPressed: () async {
|
||||
setState(() {
|
||||
msg = "";
|
||||
isInProgress = true;
|
||||
gFFI.bind.mainChangeId(newId: newId);
|
||||
});
|
||||
|
||||
var status = await gFFI.bind.mainGetAsyncStatus();
|
||||
while (status == " "){
|
||||
await Future.delayed(Duration(milliseconds: 100));
|
||||
status = await gFFI.bind.mainGetAsyncStatus();
|
||||
}
|
||||
setState(() {
|
||||
isInProgress = false;
|
||||
msg = translate(status);
|
||||
});
|
||||
|
||||
}, child: Text("确定")),
|
||||
],
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -187,8 +187,8 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: c7d97cb6615f2def34f8bad4def01af9e0077beb
|
||||
resolved-ref: c7d97cb6615f2def34f8bad4def01af9e0077beb
|
||||
ref: "7b72918710921f5fe79eae2dbaa411a66f5dfb45"
|
||||
resolved-ref: "7b72918710921f5fe79eae2dbaa411a66f5dfb45"
|
||||
url: "https://github.com/Kingtous/rustdesk_desktop_multi_window"
|
||||
source: git
|
||||
version: "0.0.1"
|
||||
|
@ -19,7 +19,7 @@ use crate::flutter::connection_manager::{self, get_clients_length, get_clients_s
|
||||
use crate::flutter::{self, Session, SESSIONS};
|
||||
use crate::start_server;
|
||||
use crate::ui_interface;
|
||||
use crate::ui_interface::get_sound_inputs;
|
||||
use crate::ui_interface::{change_id, get_async_job_status, get_sound_inputs, is_ok_change_id};
|
||||
|
||||
fn initialize(app_dir: &str) {
|
||||
*config::APP_DIR.write().unwrap() = app_dir.to_owned();
|
||||
@ -383,6 +383,14 @@ pub fn main_get_sound_inputs() -> Vec<String> {
|
||||
get_sound_inputs()
|
||||
}
|
||||
|
||||
pub fn main_change_id(new_id: String) {
|
||||
change_id(new_id)
|
||||
}
|
||||
|
||||
pub fn main_get_async_status() -> String {
|
||||
get_async_job_status()
|
||||
}
|
||||
|
||||
/// FFI for **get** commands which are idempotent.
|
||||
/// Return result in c string.
|
||||
///
|
||||
|
Loading…
x
Reference in New Issue
Block a user