feat: cm interface
This commit is contained in:
parent
850c4bcbbf
commit
040396b3f8
@ -537,6 +537,18 @@ pub mod connection_manager {
|
||||
fn show_elevation(&self, show: bool) {
|
||||
self.push_event("show_elevation", vec![("show", &show.to_string())]);
|
||||
}
|
||||
|
||||
fn voice_call_started(&self, id: i32) {
|
||||
self.push_event("voice_call_started", vec![("show", &id.to_string())]);
|
||||
}
|
||||
|
||||
fn voice_call_incoming(&self, id: i32) {
|
||||
self.push_event("voice_call_incoming", vec![("id", &id.to_string())]);
|
||||
}
|
||||
|
||||
fn voice_call_closed(&self, id: i32, reason: &str) {
|
||||
self.push_event("voice_call_closed", vec![("id", &id.to_string()), ("reason", &reason.to_string())]);
|
||||
}
|
||||
}
|
||||
|
||||
impl FlutterHandler {
|
||||
|
@ -212,6 +212,7 @@ pub enum Data {
|
||||
SwitchSidesBack,
|
||||
UrlLink(String),
|
||||
VoiceCallIncoming,
|
||||
StartVoiceCall,
|
||||
VoiceCallResponse(bool),
|
||||
CloseVoiceCall(String),
|
||||
}
|
||||
|
@ -1624,6 +1624,7 @@ impl Connection {
|
||||
if let Some(device) = default_sound_device {
|
||||
set_sound_input(device);
|
||||
}
|
||||
self.send_to_cm(Data::StartVoiceCall);
|
||||
}
|
||||
} else {
|
||||
log::warn!("Possible a voice call attack.");
|
||||
|
12
src/ui/cm.rs
12
src/ui/cm.rs
@ -55,6 +55,18 @@ impl InvokeUiCM for SciterHandler {
|
||||
fn show_elevation(&self, show: bool) {
|
||||
self.call("showElevation", &make_args!(show));
|
||||
}
|
||||
|
||||
fn voice_call_started(&self, id: i32) {
|
||||
self.call("voice_call_started", &make_args!(id));
|
||||
}
|
||||
|
||||
fn voice_call_incoming(&self, id: i32) {
|
||||
self.call("voice_call_incoming", &make_args!(id));
|
||||
}
|
||||
|
||||
fn voice_call_closed(&self, id: i32, reason: &str) {
|
||||
self.call("voice_call_incoming", &make_args!(id, reason));
|
||||
}
|
||||
}
|
||||
|
||||
impl SciterHandler {
|
||||
|
@ -88,6 +88,12 @@ pub trait InvokeUiCM: Send + Clone + 'static + Sized {
|
||||
fn change_language(&self);
|
||||
|
||||
fn show_elevation(&self, show: bool);
|
||||
|
||||
fn voice_call_started(&self, id: i32);
|
||||
|
||||
fn voice_call_incoming(&self, id: i32);
|
||||
|
||||
fn voice_call_closed(&self, id: i32, reason: &str);
|
||||
}
|
||||
|
||||
impl<T: InvokeUiCM> Deref for ConnectionManager<T> {
|
||||
@ -180,6 +186,18 @@ impl<T: InvokeUiCM> ConnectionManager<T> {
|
||||
fn show_elevation(&self, show: bool) {
|
||||
self.ui_handler.show_elevation(show);
|
||||
}
|
||||
|
||||
fn voice_call_started(&self, id: i32) {
|
||||
self.ui_handler.voice_call_started(id);
|
||||
}
|
||||
|
||||
fn voice_call_incoming(&self, id: i32) {
|
||||
self.ui_handler.voice_call_incoming(id);
|
||||
}
|
||||
|
||||
fn voice_call_closed(&self, id: i32, reason: &str) {
|
||||
self.ui_handler.voice_call_closed(id, reason);
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
@ -389,6 +407,15 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
|
||||
Data::DataPortableService(ipc::DataPortableService::CmShowElevation(show)) => {
|
||||
self.cm.show_elevation(show);
|
||||
}
|
||||
Data::StartVoiceCall => {
|
||||
self.cm.voice_call_started(self.conn_id);
|
||||
}
|
||||
Data::VoiceCallIncoming => {
|
||||
self.cm.voice_call_incoming(self.conn_id);
|
||||
}
|
||||
Data::CloseVoiceCall(reason) => {
|
||||
self.cm.voice_call_closed(self.conn_id, reason.as_str());
|
||||
}
|
||||
_ => {
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user