Add setting to disable the call icon

Kay Simmons created

Change summary

assets/settings/default.json |  2 ++
crates/call/src/call.rs      | 14 ++++++++++----
2 files changed, 12 insertions(+), 4 deletions(-)

Detailed changes

assets/settings/default.json 🔗

@@ -20,6 +20,8 @@
     // Whether to pop the completions menu while typing in an editor without
     // explicitly requesting it.
     "show_completions_on_input": true,
+    // Whether the screen sharing icon is showed in the os status bar.
+    "show_call_status_icon": true,
     // Whether new projects should start out 'online'. Online projects
     // appear in the contacts panel under your name, so that your contacts
     // can see which projects you are working on. Regardless of this

crates/call/src/call.rs 🔗

@@ -2,19 +2,23 @@ mod indicator;
 pub mod participant;
 pub mod room;
 
+use std::sync::Arc;
+
 use anyhow::{anyhow, Result};
 use client::{proto, Client, TypedEnvelope, User, UserStore};
 use collections::HashSet;
+use postage::watch;
+
 use gpui::{
     actions, AppContext, AsyncAppContext, Entity, ModelContext, ModelHandle, MutableAppContext,
     Subscription, Task, ViewHandle, WeakModelHandle,
 };
+use project::Project;
+use settings::Settings;
+
 use indicator::SharingStatusIndicator;
 pub use participant::ParticipantLocation;
-use postage::watch;
-use project::Project;
 pub use room::Room;
-use std::sync::Arc;
 
 actions!(collab, [ToggleScreenSharing]);
 
@@ -315,7 +319,9 @@ impl ActiveCall {
 
     pub fn set_sharing_status(&mut self, is_screen_sharing: bool, cx: &mut MutableAppContext) {
         if is_screen_sharing {
-            if self.sharing_status_indicator.is_none() {
+            if self.sharing_status_indicator.is_none()
+                && cx.global::<Settings>().show_call_status_icon
+            {
                 self.sharing_status_indicator =
                     Some(cx.add_status_bar_item(|_| SharingStatusIndicator));
             }