mobile build
This commit is contained in:
parent
7eeb0f7335
commit
bd733bc108
@ -22,9 +22,9 @@ pub trait FileManager: Interface {
|
||||
|
||||
#[cfg(any(target_os = "android", target_os = "ios", feature = "cli"))]
|
||||
fn read_dir(&self, path: &str, include_hidden: bool) -> String {
|
||||
use crate::common::make_fd_to_json;
|
||||
use crate::flutter::make_fd_to_json;
|
||||
match fs::read_dir(&fs::get_path(path), include_hidden) {
|
||||
Ok(fd) => make_fd_to_json(fd),
|
||||
Ok(fd) => make_fd_to_json(fd.id, fd.path, &fd.entries),
|
||||
Err(_) => "".into(),
|
||||
}
|
||||
}
|
||||
|
@ -340,6 +340,7 @@ pub fn session_start_(id: &str, event_stream: StreamSink<EventToUI>) -> ResultTy
|
||||
pub mod connection_manager {
|
||||
use std::collections::HashMap;
|
||||
|
||||
use hbb_common::log;
|
||||
#[cfg(any(target_os = "android"))]
|
||||
use scrap::android::call_main_service_set_by_name;
|
||||
|
||||
@ -410,9 +411,18 @@ pub mod connection_manager {
|
||||
}
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
pub fn start_channel(rx: UnboundedReceiver<Data>, tx: UnboundedSender<Data>) {
|
||||
use hbb_common::tokio::sync::mpsc::{UnboundedReceiver,UnboundedSender};
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
pub fn start_channel(
|
||||
rx: UnboundedReceiver<crate::ipc::Data>,
|
||||
tx: UnboundedSender<crate::ipc::Data>,
|
||||
) {
|
||||
use crate::ui_cm_interface::start_listen;
|
||||
std::thread::spawn(move || start_listen(rx, tx));
|
||||
let cm = crate::ui_cm_interface::ConnectionManager {
|
||||
ui_handler: FlutterHandler {},
|
||||
};
|
||||
std::thread::spawn(move || start_listen(cm, rx, tx));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -754,7 +754,7 @@ pub fn main_set_home_dir(home: String) {
|
||||
pub fn main_stop_service() {
|
||||
#[cfg(target_os = "android")]
|
||||
{
|
||||
Config::set_option("stop-service".into(), "Y".into());
|
||||
config::Config::set_option("stop-service".into(), "Y".into());
|
||||
crate::rendezvous_mediator::RendezvousMediator::restart();
|
||||
}
|
||||
}
|
||||
@ -762,7 +762,7 @@ pub fn main_stop_service() {
|
||||
pub fn main_start_service() {
|
||||
#[cfg(target_os = "android")]
|
||||
{
|
||||
Config::set_option("stop-service".into(), "".into());
|
||||
config::Config::set_option("stop-service".into(), "".into());
|
||||
crate::rendezvous_mediator::RendezvousMediator::restart();
|
||||
}
|
||||
#[cfg(not(target_os = "android"))]
|
||||
|
@ -114,13 +114,17 @@ impl<T: InvokeUiCM> ConnectionManager<T> {
|
||||
CLIENTS.write().unwrap().remove(&id);
|
||||
|
||||
#[cfg(any(target_os = "android"))]
|
||||
if clients
|
||||
if CLIENTS
|
||||
.read()
|
||||
.unwrap()
|
||||
.iter()
|
||||
.filter(|(_k, v)| !v.is_file_transfer)
|
||||
.next()
|
||||
.is_none()
|
||||
{
|
||||
if let Err(e) = call_main_service_set_by_name("stop_capture", None, None) {
|
||||
if let Err(e) =
|
||||
scrap::android::call_main_service_set_by_name("stop_capture", None, None)
|
||||
{
|
||||
log::debug!("stop_capture err:{}", e);
|
||||
}
|
||||
}
|
||||
@ -312,7 +316,7 @@ pub async fn start_ipc<T: InvokeUiCM>(cm: ConnectionManager<T>) {
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
#[tokio::main(flavor = "current_thread")]
|
||||
pub async fn start_listen(mut rx: UnboundedReceiver<Data>, tx: UnboundedSender<Data>) {
|
||||
pub async fn start_listen<T: InvokeUiCM>(cm: ConnectionManager<T>, mut rx: mpsc::UnboundedReceiver<Data>, tx: mpsc::UnboundedSender<Data>) {
|
||||
let mut current_id = 0;
|
||||
let mut write_jobs: Vec<fs::TransferJob> = Vec::new();
|
||||
loop {
|
||||
@ -332,7 +336,7 @@ pub async fn start_listen(mut rx: UnboundedReceiver<Data>, tx: UnboundedSender<D
|
||||
..
|
||||
}) => {
|
||||
current_id = id;
|
||||
on_login(
|
||||
cm.add_connection(
|
||||
id,
|
||||
is_file_transfer,
|
||||
port_forward,
|
||||
@ -348,7 +352,7 @@ pub async fn start_listen(mut rx: UnboundedReceiver<Data>, tx: UnboundedSender<D
|
||||
);
|
||||
}
|
||||
Some(Data::ChatMessage { text }) => {
|
||||
cm.new_message(conn_id, text);
|
||||
cm.new_message(current_id, text);
|
||||
}
|
||||
Some(Data::FS(fs)) => {
|
||||
handle_fs(fs, &mut write_jobs, &tx).await;
|
||||
@ -362,7 +366,7 @@ pub async fn start_listen(mut rx: UnboundedReceiver<Data>, tx: UnboundedSender<D
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
remove_connection(current_id);
|
||||
cm.remove_connection(current_id);
|
||||
}
|
||||
|
||||
async fn handle_fs(fs: ipc::FS, write_jobs: &mut Vec<fs::TransferJob>, tx: &UnboundedSender<Data>) {
|
||||
|
@ -372,10 +372,11 @@ pub fn get_mouse_time() -> f64 {
|
||||
return res;
|
||||
}
|
||||
|
||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||
pub fn check_mouse_time() {
|
||||
let sender = SENDER.lock().unwrap();
|
||||
allow_err!(sender.send(ipc::Data::MouseMoveTime(0)));
|
||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]{
|
||||
let sender = SENDER.lock().unwrap();
|
||||
allow_err!(sender.send(ipc::Data::MouseMoveTime(0)));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_connect_status() -> Status {
|
||||
|
Loading…
x
Reference in New Issue
Block a user