Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit ebada67

Browse files
committed
Fix some race conditions between initialization and OnGUI
1 parent d7dfd20 commit ebada67

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -608,21 +608,30 @@ private void OnGitLfsLocksGUI()
608608

609609
private void OnInstallPathGUI()
610610
{
611+
string gitExecPath = null;
612+
string extension = null;
613+
string gitInstallPath = null;
614+
if (Environment != null)
615+
{
616+
extension = Environment.ExecutableExtension;
617+
gitInstallPath = Environment.GitInstallPath;
618+
if (Environment.GitExecutablePath != null)
619+
gitExecPath = Environment.GitExecutablePath.ToString();
620+
}
621+
622+
611623
// Install path
612624
GUILayout.Label(GitInstallTitle, EditorStyles.boldLabel);
613625

614-
GUI.enabled = !busy;
626+
GUI.enabled = !busy && gitExecPath != null;
615627

616-
var gitExecPath = Environment.GitExecutablePath.ToString();
617628
// Install path field
618629
EditorGUI.BeginChangeCheck();
619630
{
620631
//TODO: Verify necessary value for a non Windows OS
621-
var extension = Environment.ExecutableExtension;
622-
623632
Styles.PathField(ref gitExecPath,
624633
() => EditorUtility.OpenFilePanel(GitInstallBrowseTitle,
625-
Environment.GitInstallPath,
634+
gitInstallPath,
626635
extension), ValidateGitInstall);
627636
}
628637
if (EditorGUI.EndChangeCheck())
@@ -656,11 +665,13 @@ private void OnInstallPathGUI()
656665

657666
private void OnPrivacyGui()
658667
{
668+
var service = Manager != null && Manager.UsageTracker != null ? Manager.UsageTracker : null;
669+
659670
GUILayout.Label(PrivacyTitle, EditorStyles.boldLabel);
660671

661-
GUI.enabled = !busy;
672+
GUI.enabled = !busy && service != null;
662673

663-
var metricsEnabled = EntryPoint.UsageTracker.Enabled;
674+
var metricsEnabled = service != null ? service.Enabled : false;
664675
EditorGUI.BeginChangeCheck();
665676
{
666677
metricsEnabled = EditorGUILayout.Toggle(MetricsOptInLabel, metricsEnabled);

0 commit comments

Comments
 (0)