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

Commit 39eb5da

Browse files
Changing how InitProjectView updates itself
1 parent 99ab542 commit 39eb5da

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

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

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,10 @@ class InitProjectView : Subview
1111
private const string NoUserOrEmailError = "Name and email not set in git. Go into the settings tab and enter the missing information";
1212

1313
[NonSerialized] private bool isBusy;
14-
1514
[NonSerialized] private bool isUserDataPresent;
15+
[NonSerialized] private bool hasCompletedInitialCheck;
1616
[NonSerialized] private bool userDataHasChanged;
1717

18-
public override void InitializeView(IView parent)
19-
{
20-
base.InitializeView(parent);
21-
22-
if (!string.IsNullOrEmpty(Environment.GitExecutablePath))
23-
{
24-
CheckForUser();
25-
}
26-
}
27-
2818
public override void OnEnable()
2919
{
3020
base.OnEnable();
@@ -69,7 +59,7 @@ public override void OnGUI()
6959
}
7060
GUILayout.EndHorizontal();
7161

72-
if (!isUserDataPresent)
62+
if (hasCompletedInitialCheck && !isUserDataPresent)
7363
{
7464
EditorGUILayout.Space();
7565
EditorGUILayout.HelpBox(NoUserOrEmailError, MessageType.Error);
@@ -80,6 +70,12 @@ public override void OnGUI()
8070
GUILayout.EndVertical();
8171
}
8272

73+
public override void OnDataUpdate()
74+
{
75+
base.OnDataUpdate();
76+
MaybeUpdateData();
77+
}
78+
8379
private void MaybeUpdateData()
8480
{
8581
if (userDataHasChanged)
@@ -91,6 +87,13 @@ private void MaybeUpdateData()
9187

9288
private void CheckForUser()
9389
{
90+
if (string.IsNullOrEmpty(Environment.GitExecutablePath))
91+
{
92+
Logger.Warning("No git exec cannot check for user");
93+
return;
94+
}
95+
96+
Logger.Trace("Checking for user");
9497
isBusy = true;
9598

9699
GitClient.GetConfigUserAndEmail().FinallyInUI((success, ex, strings) => {
@@ -99,8 +102,9 @@ private void CheckForUser()
99102

100103
isBusy = false;
101104
isUserDataPresent = success && !String.IsNullOrEmpty(username) && !String.IsNullOrEmpty(email);
105+
hasCompletedInitialCheck = true;
102106

103-
Logger.Trace("Finally: {0}", isUserDataPresent);
107+
Logger.Trace("User Present: {0}", isUserDataPresent);
104108

105109
Redraw();
106110
}).Start();

0 commit comments

Comments
 (0)