Merge pull request #2437 from zed-industries/fix-joining-call

Fix "IncomingCallNotification was dropped" error when accepting a call
This commit is contained in:
Antonio Scandurra 2023-05-03 10:49:04 +02:00 committed by GitHub
commit 3f037e5128
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -78,24 +78,26 @@ impl IncomingCallNotification {
let join = active_call.update(cx, |active_call, cx| active_call.accept_incoming(cx));
let caller_user_id = self.call.calling_user.id;
let initial_project_id = self.call.initial_project.as_ref().map(|project| project.id);
cx.spawn(|this, mut cx| async move {
join.await?;
if let Some(project_id) = initial_project_id {
this.update(&mut cx, |this, cx| {
if let Some(app_state) = this.app_state.upgrade() {
workspace::join_remote_project(
project_id,
caller_user_id,
app_state,
cx,
)
.detach_and_log_err(cx);
}
})?;
}
anyhow::Ok(())
})
.detach_and_log_err(cx);
let app_state = self.app_state.clone();
cx.app_context()
.spawn(|mut cx| async move {
join.await?;
if let Some(project_id) = initial_project_id {
cx.update(|cx| {
if let Some(app_state) = app_state.upgrade() {
workspace::join_remote_project(
project_id,
caller_user_id,
app_state,
cx,
)
.detach_and_log_err(cx);
}
});
}
anyhow::Ok(())
})
.detach_and_log_err(cx);
} else {
active_call.update(cx, |active_call, _| {
active_call.decline_incoming().log_err();