Display intended mute status while still connecting to a room

Co-authored-by: Mikayla <mikayla@zed.dev>
This commit is contained in:
Max Brunsfeld 2023-08-14 16:47:26 -07:00
parent 5af8ee71aa
commit 13982fe2f4
3 changed files with 6 additions and 6 deletions

View file

@ -1116,11 +1116,11 @@ impl Room {
}) })
} }
pub fn is_muted(&self) -> bool { pub fn is_muted(&self, cx: &AppContext) -> bool {
self.live_kit self.live_kit
.as_ref() .as_ref()
.and_then(|live_kit| match &live_kit.microphone_track { .and_then(|live_kit| match &live_kit.microphone_track {
LocalTrack::None => Some(true), LocalTrack::None => Some(settings::get::<CallSettings>(cx).mute_on_join),
LocalTrack::Pending { muted, .. } => Some(*muted), LocalTrack::Pending { muted, .. } => Some(*muted),
LocalTrack::Published { muted, .. } => Some(*muted), LocalTrack::Published { muted, .. } => Some(*muted),
}) })
@ -1310,7 +1310,7 @@ impl Room {
} }
pub fn toggle_mute(&mut self, cx: &mut ModelContext<Self>) -> Result<Task<Result<()>>> { pub fn toggle_mute(&mut self, cx: &mut ModelContext<Self>) -> Result<Task<Result<()>>> {
let should_mute = !self.is_muted(); let should_mute = !self.is_muted(cx);
if let Some(live_kit) = self.live_kit.as_mut() { if let Some(live_kit) = self.live_kit.as_mut() {
if matches!(live_kit.microphone_track, LocalTrack::None) { if matches!(live_kit.microphone_track, LocalTrack::None) {
return Ok(self.share_microphone(cx)); return Ok(self.share_microphone(cx));

View file

@ -90,7 +90,7 @@ impl View for CollabTitlebarItem {
right_container right_container
.add_children(self.render_in_call_share_unshare_button(&workspace, &theme, cx)); .add_children(self.render_in_call_share_unshare_button(&workspace, &theme, cx));
right_container.add_child(self.render_leave_call(&theme, cx)); right_container.add_child(self.render_leave_call(&theme, cx));
let muted = room.read(cx).is_muted(); let muted = room.read(cx).is_muted(cx);
let speaking = room.read(cx).is_speaking(); let speaking = room.read(cx).is_speaking();
left_container.add_child( left_container.add_child(
self.render_current_user(&workspace, &theme, &user, peer_id, muted, speaking, cx), self.render_current_user(&workspace, &theme, &user, peer_id, muted, speaking, cx),
@ -544,7 +544,7 @@ impl CollabTitlebarItem {
) -> AnyElement<Self> { ) -> AnyElement<Self> {
let icon; let icon;
let tooltip; let tooltip;
let is_muted = room.read(cx).is_muted(); let is_muted = room.read(cx).is_muted(cx);
if is_muted { if is_muted {
icon = "icons/radix/mic-mute.svg"; icon = "icons/radix/mic-mute.svg";
tooltip = "Unmute microphone"; tooltip = "Unmute microphone";

View file

@ -64,7 +64,7 @@ pub fn toggle_mute(_: &ToggleMute, cx: &mut AppContext) {
if let Some(room) = call.room().cloned() { if let Some(room) = call.room().cloned() {
let client = call.client(); let client = call.client();
room.update(cx, |room, cx| { room.update(cx, |room, cx| {
if room.is_muted() { if room.is_muted(cx) {
ActiveCall::report_call_event_for_room("enable microphone", room.id(), &client, cx); ActiveCall::report_call_event_for_room("enable microphone", room.id(), &client, cx);
} else { } else {
ActiveCall::report_call_event_for_room( ActiveCall::report_call_event_for_room(