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

Commit b69500e

Browse files
Calling UsageTracker from other threads
1 parent be778e4 commit b69500e

File tree

8 files changed

+42
-38
lines changed

8 files changed

+42
-38
lines changed

src/GitHub.Api/Application/ApplicationManagerBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ public ITask InitializeRepository()
166166
Environment.InitializeRepository();
167167
RestartRepository();
168168
})
169-
.ThenInUI(UsageTracker.IncrementNumberOfProjectsInitialized)
169+
.Then(UsageTracker.IncrementNumberOfProjectsInitialized)
170170
.ThenInUI(InitializeUI);
171171
return task;
172172
}
@@ -213,7 +213,7 @@ protected void SetupMetrics(string unityVersion, bool firstRun)
213213

214214
if (firstRun)
215215
{
216-
UsageTracker.IncrementNumberOfStartups();
216+
TaskManager.Run(UsageTracker.IncrementNumberOfStartups);
217217
}
218218
#endif
219219
}

src/GitHub.Api/Tasks/ITaskManager.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public interface ITaskManager : IDisposable
1313

1414
T Schedule<T>(T task) where T : ITask;
1515
Task Wait();
16+
ITask Run(Action action);
1617
ITask RunInUI(Action action);
1718
}
1819
}

src/GitHub.Api/Tasks/TaskManager.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ public static TaskScheduler GetScheduler(TaskAffinity affinity)
5151
}
5252
}
5353

54+
public ITask Run(Action action)
55+
{
56+
return new ActionTask(Token, action).Start();
57+
}
58+
5459
public ITask RunInUI(Action action)
5560
{
5661
return new ActionTask(Token, action) { Affinity = TaskAffinity.UI }.Start();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ private void DoResult(bool success, string msg)
214214

215215
if (success)
216216
{
217-
Manager.UsageTracker.IncrementNumberOfAuthentications();
217+
TaskManager.Run(UsageTracker.IncrementNumberOfAuthentications);
218218

219219
Clear();
220220
Finish(true);

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

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -305,11 +305,11 @@ private void OnButtonBarGUI()
305305
if (createBranch)
306306
{
307307
GitClient.CreateBranch(newBranchName, treeLocals.SelectedNode.Path)
308+
.Then(UsageTracker.IncrementNumberOfLocalBranchCreations)
308309
.FinallyInUI((success, e) =>
309310
{
310311
if (success)
311312
{
312-
Manager.UsageTracker.IncrementNumberOfLocalBranchCreations();
313313
Redraw();
314314
}
315315
else
@@ -474,18 +474,20 @@ private void CheckoutRemoteBranch(string branch)
474474

475475
if (confirmCheckout)
476476
{
477-
GitClient.CreateBranch(branchName, branch).FinallyInUI((success, e) => {
478-
if (success)
477+
GitClient.CreateBranch(branchName, branch)
478+
.Then(UsageTracker.IncrementNumberOfRemoteBranchCheckouts)
479+
.FinallyInUI((success, e) =>
479480
{
480-
Manager.UsageTracker.IncrementNumberOfRemoteBranchCheckouts();
481-
Redraw();
482-
}
483-
else
484-
{
485-
EditorUtility.DisplayDialog(Localization.SwitchBranchTitle,
486-
String.Format(Localization.SwitchBranchFailedDescription, branch), Localization.Ok);
487-
}
488-
}).Start();
481+
if (success)
482+
{
483+
Redraw();
484+
}
485+
else
486+
{
487+
EditorUtility.DisplayDialog(Localization.SwitchBranchTitle,
488+
String.Format(Localization.SwitchBranchFailedDescription, branch), Localization.Ok);
489+
}
490+
}).Start();
489491
}
490492
}
491493
}
@@ -495,18 +497,20 @@ private void SwitchBranch(string branch)
495497
if (EditorUtility.DisplayDialog(ConfirmSwitchTitle, String.Format(ConfirmSwitchMessage, branch), ConfirmSwitchOK,
496498
ConfirmSwitchCancel))
497499
{
498-
GitClient.SwitchBranch(branch).FinallyInUI((success, e) => {
499-
if (success)
500+
GitClient.SwitchBranch(branch)
501+
.Then(UsageTracker.IncrementNumberOfLocalBranchCheckouts)
502+
.FinallyInUI((success, e) =>
500503
{
501-
Manager.UsageTracker.IncrementNumberOfLocalBranchCheckouts();
502-
Redraw();
503-
}
504-
else
505-
{
506-
EditorUtility.DisplayDialog(Localization.SwitchBranchTitle,
507-
String.Format(Localization.SwitchBranchFailedDescription, branch), Localization.Ok);
508-
}
509-
}).Start();
504+
if (success)
505+
{
506+
Redraw();
507+
}
508+
else
509+
{
510+
EditorUtility.DisplayDialog(Localization.SwitchBranchTitle,
511+
String.Format(Localization.SwitchBranchFailedDescription, branch), Localization.Ok);
512+
}
513+
}).Start();
510514
}
511515
}
512516

@@ -517,7 +521,7 @@ private void DeleteLocalBranch(string branch)
517521
{
518522
GitClient
519523
.DeleteBranch(branch, true)
520-
.ThenInUI(Manager.UsageTracker.IncrementNumberOfLocalBranchDeletions)
524+
.Then(UsageTracker.IncrementNumberOfLocalBranchDeletions)
521525
.Start();
522526
}
523527
}

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -353,13 +353,9 @@ private void Commit()
353353
}
354354

355355
addTask
356+
.Then(UsageTracker.IncrementNumberOfCommits)
356357
.FinallyInUI((b, exception) =>
357358
{
358-
if (b)
359-
{
360-
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfCommits();
361-
}
362-
363359
commitMessage = "";
364360
commitBody = "";
365361
}).Start();

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -702,11 +702,10 @@ private void Pull()
702702
// (either git rebase --abort or git merge --abort)
703703
}
704704
}, runOptions: TaskRunOptions.OnAlways)
705+
.Then(UsageTracker.IncrementNumberOfPulls)
705706
.FinallyInUI((success, e) => {
706707
if (success)
707708
{
708-
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfPulls();
709-
710709
EditorUtility.DisplayDialog(Localization.PullActionTitle,
711710
String.Format(Localization.PullSuccessDescription, currentRemoteName),
712711
Localization.Ok);
@@ -726,11 +725,10 @@ private void Push()
726725
{
727726
Repository
728727
.Push()
728+
.Then(UsageTracker.IncrementNumberOfPushes)
729729
.FinallyInUI((success, e) => {
730730
if (success)
731731
{
732-
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfPushes();
733-
734732
EditorUtility.DisplayDialog(Localization.PushActionTitle,
735733
String.Format(Localization.PushSuccessDescription, currentRemoteName),
736734
Localization.Ok);
@@ -749,9 +747,8 @@ private void Fetch()
749747
{
750748
Repository
751749
.Fetch()
750+
.Then(UsageTracker.IncrementNumberOfFetches)
752751
.FinallyInUI((success, e) => {
753-
EntryPoint.ApplicationManager.UsageTracker.IncrementNumberOfFetches();
754-
755752
if (!success)
756753
{
757754
EditorUtility.DisplayDialog(FetchActionTitle, FetchFailureDescription,

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public virtual bool IsBusy
6868
protected IGitClient GitClient { get { return Manager.GitClient; } }
6969
protected IEnvironment Environment { get { return Manager.Environment; } }
7070
protected IPlatform Platform { get { return Manager.Platform; } }
71+
protected IUsageTracker UsageTracker { get { return Manager.UsageTracker; } }
7172
public Rect Position { get { return Parent.Position; } }
7273
public string Title { get; protected set; }
7374
public Vector2 Size { get; protected set; }

0 commit comments

Comments
 (0)