Display intended mute status while still connecting to a room
Co-authored-by: Mikayla <mikayla@zed.dev>
This commit is contained in:
parent
5af8ee71aa
commit
13982fe2f4
3 changed files with 6 additions and 6 deletions
|
@ -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));
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue