Lower frequency of popup warning when leaving a call

Mikayla and conrad created

co-authored-by: conrad <conrad.irwin@gmail.com>

Change summary

crates/call/src/room.rs              |  4 ++++
crates/collab_ui/src/collab_panel.rs | 11 +++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)

Detailed changes

crates/call/src/room.rs 🔗

@@ -104,6 +104,10 @@ impl Room {
         self.channel_id
     }
 
+    pub fn is_sharing_project(&self) -> bool {
+        !self.shared_projects.is_empty()
+    }
+
     #[cfg(any(test, feature = "test-support"))]
     pub fn is_connected(&self) -> bool {
         if let Some(live_kit) = self.live_kit.as_ref() {

crates/collab_ui/src/collab_panel.rs 🔗

@@ -3165,10 +3165,17 @@ impl CollabPanel {
         let window = cx.window();
         let active_call = ActiveCall::global(cx);
         cx.spawn(|_, mut cx| async move {
-            if active_call.read_with(&mut cx, |active_call, _| active_call.room().is_some()) {
+            if active_call.read_with(&mut cx, |active_call, cx| {
+                if let Some(room) = active_call.room() {
+                    let room = room.read(cx);
+                    room.is_sharing_project() && room.remote_participants().len() > 0
+                } else {
+                    false
+                }
+            }) {
                 let answer = window.prompt(
                     PromptLevel::Warning,
-                    "Do you want to leave the current call?",
+                    "Leaving this call will unshare your current project.\nDo you want to switch channels?",
                     &["Yes, Join Channel", "Cancel"],
                     &mut cx,
                 );