@@ -81,20 +81,25 @@ class SettingsView : Subview
8181 [ SerializeField ] private bool isBusy ;
8282 [ SerializeField ] private int lockedFileSelection = - 1 ;
8383 [ SerializeField ] private bool hasRemote ;
84- [ SerializeField ] private bool remoteHasChanged ;
84+ [ SerializeField ] private bool metricsEnabled ;
85+ [ NonSerialized ] private bool metricsHasChanged ;
86+ [ NonSerialized ] private bool remoteHasChanged ;
8587 [ NonSerialized ] private bool userDataHasChanged ;
8688
8789 [ SerializeField ] private string newGitName ;
8890 [ SerializeField ] private string newGitEmail ;
8991 [ SerializeField ] private string newRepositoryRemoteUrl ;
9092 [ SerializeField ] private User cachedUser ;
9193
94+ [ NonSerialized ] private IUsageTracker usageTracker ;
95+
9296 public override void OnEnable ( )
9397 {
9498 base . OnEnable ( ) ;
9599 AttachHandlers ( Repository ) ;
96100
97101 remoteHasChanged = true ;
102+ metricsHasChanged = true ;
98103 }
99104
100105 public override void OnDisable ( )
@@ -175,8 +180,20 @@ public override void OnGUI()
175180 GUILayout . EndScrollView ( ) ;
176181 }
177182
183+ public override void InitializeView ( IView parent )
184+ {
185+ base . InitializeView ( parent ) ;
186+ usageTracker = Manager != null && Manager . UsageTracker != null ? Manager . UsageTracker : null ;
187+ }
188+
178189 private void MaybeUpdateData ( )
179190 {
191+ if ( metricsHasChanged )
192+ {
193+ metricsEnabled = usageTracker != null && usageTracker . Enabled ;
194+ metricsHasChanged = false ;
195+ }
196+
180197 if ( lockedFiles == null )
181198 lockedFiles = new List < GitLock > ( ) ;
182199
@@ -752,13 +769,10 @@ private void OnInstallPathGUI()
752769
753770 private void OnPrivacyGui ( )
754771 {
755- var service = Manager != null && Manager . UsageTracker != null ? Manager . UsageTracker : null ;
756-
757772 GUILayout . Label ( PrivacyTitle , EditorStyles . boldLabel ) ;
758773
759- EditorGUI . BeginDisabledGroup ( isBusy || service == null ) ;
774+ EditorGUI . BeginDisabledGroup ( isBusy || usageTracker == null ) ;
760775 {
761- var metricsEnabled = service != null ? service . Enabled : false ;
762776 EditorGUI . BeginChangeCheck ( ) ;
763777 {
764778 metricsEnabled = GUILayout . Toggle ( metricsEnabled , MetricsOptInLabel ) ;
0 commit comments