Fix deafened -> enabled mistranslation

Fix mislocation of caller query in detach_and_log_error
Fix incorrect wording on livekit integration
Add share_mic action for manually enabling the microphone
Make mic sharing wait until the room has been fully established
This commit is contained in:
Mikayla Maki 2023-06-20 15:17:49 -07:00
parent dbd95e35cf
commit cf4251fb55
No known key found for this signature in database
4 changed files with 23 additions and 14 deletions

View file

@ -220,6 +220,14 @@ impl Room {
None None
}; };
match room
.update(&mut cx, |room, cx| {
room.leave_when_empty = true;
room.call(called_user_id, initial_project_id, cx)
})
.await
{
Ok(()) => {
if option_env!("START_MIC").is_some() if option_env!("START_MIC").is_some()
|| &*util::channel::RELEASE_CHANNEL != &ReleaseChannel::Dev || &*util::channel::RELEASE_CHANNEL != &ReleaseChannel::Dev
{ {
@ -229,14 +237,8 @@ impl Room {
}); });
} }
match room Ok(room)
.update(&mut cx, |room, cx| { },
room.leave_when_empty = true;
room.call(called_user_id, initial_project_id, cx)
})
.await
{
Ok(()) => Ok(room),
Err(error) => Err(anyhow!("room creation failed: {:?}", error)), Err(error) => Err(anyhow!("room creation failed: {:?}", error)),
} }
}) })
@ -1201,7 +1203,7 @@ impl Room {
.room .room
.remote_audio_track_publications(&participant.user.id.to_string()) .remote_audio_track_publications(&participant.user.id.to_string())
{ {
tasks.push(cx.background().spawn(track.set_enabled(live_kit.deafened))); tasks.push(cx.background().spawn(track.set_enabled(!live_kit.deafened)));
} }
} }

View file

@ -16,7 +16,7 @@ use std::sync::Arc;
use util::ResultExt; use util::ResultExt;
use workspace::AppState; use workspace::AppState;
actions!(collab, [ToggleScreenSharing, ToggleMute, ToggleDeafen]); actions!(collab, [ToggleScreenSharing, ToggleMute, ToggleDeafen, ShareMic]);
pub fn init(app_state: &Arc<AppState>, cx: &mut AppContext) { pub fn init(app_state: &Arc<AppState>, cx: &mut AppContext) {
collab_titlebar_item::init(cx); collab_titlebar_item::init(cx);
@ -30,6 +30,7 @@ pub fn init(app_state: &Arc<AppState>, cx: &mut AppContext) {
cx.add_global_action(toggle_screen_sharing); cx.add_global_action(toggle_screen_sharing);
cx.add_global_action(toggle_mute); cx.add_global_action(toggle_mute);
cx.add_global_action(toggle_deafen); cx.add_global_action(toggle_deafen);
cx.add_global_action(share_mic);
} }
pub fn toggle_screen_sharing(_: &ToggleScreenSharing, cx: &mut AppContext) { pub fn toggle_screen_sharing(_: &ToggleScreenSharing, cx: &mut AppContext) {
@ -60,3 +61,9 @@ pub fn toggle_deafen(_: &ToggleDeafen, cx: &mut AppContext) {
.log_err(); .log_err();
} }
} }
pub fn share_mic(_: &ShareMic, cx: &mut AppContext) {
if let Some(room) = ActiveCall::global(cx).read(cx).room().cloned() {
room.update(cx, Room::share_mic).detach_and_log_err(cx)
}
}

View file

@ -968,9 +968,9 @@ impl<T> Task<T> {
impl<T: 'static, E: 'static + Display> Task<Result<T, E>> { impl<T: 'static, E: 'static + Display> Task<Result<T, E>> {
#[track_caller] #[track_caller]
pub fn detach_and_log_err(self, cx: &mut AppContext) { pub fn detach_and_log_err(self, cx: &mut AppContext) {
let caller = Location::caller();
cx.spawn(|_| async move { cx.spawn(|_| async move {
if let Err(err) = self.await { if let Err(err) = self.await {
let caller = Location::caller();
log::error!("{}:{}: {:#}", caller.file(), caller.line(), err); log::error!("{}:{}: {:#}", caller.file(), caller.line(), err);
} }
}) })

View file

@ -259,7 +259,7 @@ impl Room {
Box::into_raw(Box::new(tx)) as *mut c_void, Box::into_raw(Box::new(tx)) as *mut c_void,
); );
} }
async { rx.await.unwrap().context("error publishing video track") } async { rx.await.unwrap().context("error publishing audio track") }
} }
pub fn unpublish_track(&self, publication: LocalTrackPublication) { pub fn unpublish_track(&self, publication: LocalTrackPublication) {