Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 977d98c

Browse files
committed
Pass JoinableTaskContext to UsageTracker
Enable UsageTracker in TestApp.
1 parent a0da57f commit 977d98c

File tree

1 file changed

+32
-10
lines changed

1 file changed

+32
-10
lines changed

src/GitHub.VisualStudio.16/CompositionServices.cs

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.ComponentModel;
34
using System.ComponentModel.Composition;
45
using System.ComponentModel.Composition.Hosting;
56
using System.ComponentModel.Composition.Primitives;
67
using System.Diagnostics;
78
using System.Linq;
8-
using System.Linq.Expressions;
99
using System.Reflection;
1010
using GitHub.Api;
1111
using GitHub.Factories;
12-
using GitHub.Models;
1312
using GitHub.Services;
13+
using GitHub.Settings;
1414
using GitHub.VisualStudio.Settings;
1515
using GitHub.VisualStudio.Views;
1616
using GitHub.VisualStudio.Views.Dialog.Clone;
1717
using Microsoft.VisualStudio.Shell;
18+
using Microsoft.VisualStudio.Threading;
1819
using Rothko;
19-
using Task = System.Threading.Tasks.Task;
2020

2121
namespace GitHub.VisualStudio
2222
{
@@ -28,8 +28,7 @@ public CompositionContainer CreateVisualStudioCompositionContainer(ExportProvide
2828

2929
var gitHubServiceProvider = compositionContainer.GetExportedValue<IGitHubServiceProvider>();
3030
var packageSettings = new PackageSettings(gitHubServiceProvider);
31-
var usageService = compositionContainer.GetExportedValue<IUsageService>();
32-
var usageTracker = new UsageTracker(gitHubServiceProvider, usageService, packageSettings);
31+
var usageTracker = CreateUsageTracker(compositionContainer, packageSettings);
3332
compositionContainer.ComposeExportedValue<IUsageTracker>(usageTracker);
3433

3534
return compositionContainer;
@@ -39,17 +38,33 @@ public CompositionContainer CreateOutOfProcCompositionContainer()
3938
{
4039
var compositionContainer = CreateCompositionContainer(CreateOutOfProcExports());
4140

42-
var usageTracker = new OutOfProcUsageTracker();
41+
var packageSettings = new OutOfProcPackageSettings();
42+
var usageTracker = CreateUsageTracker(compositionContainer, packageSettings);
4343
compositionContainer.ComposeExportedValue<IUsageTracker>(usageTracker);
4444

4545
return compositionContainer;
4646
}
4747

48+
static UsageTracker CreateUsageTracker(CompositionContainer compositionContainer, IPackageSettings packageSettings)
49+
{
50+
var gitHubServiceProvider = compositionContainer.GetExportedValue<IGitHubServiceProvider>();
51+
var usageService = compositionContainer.GetExportedValue<IUsageService>();
52+
var joinableTaskContext = compositionContainer.GetExportedValue<JoinableTaskContext>();
53+
return new UsageTracker(gitHubServiceProvider, usageService, packageSettings, joinableTaskContext);
54+
}
55+
4856
static CompositionContainer CreateOutOfProcExports()
4957
{
5058
var container = new CompositionContainer();
59+
5160
var serviceProvider = new OutOfProcSVsServiceProvider();
5261
container.ComposeExportedValue<SVsServiceProvider>(serviceProvider);
62+
63+
#pragma warning disable VSSDK005 // Avoid instantiating JoinableTaskContext
64+
var joinableTaskContext = new JoinableTaskContext();
65+
#pragma warning restore VSSDK005 // Avoid instantiating JoinableTaskContext
66+
container.ComposeExportedValue(joinableTaskContext);
67+
5368
return container;
5469
}
5570

@@ -214,12 +229,19 @@ public object TryGetService(string typeName)
214229
public ExportProvider ExportProvider { get; }
215230
}
216231

217-
public class OutOfProcUsageTracker : IUsageTracker
232+
public class OutOfProcPackageSettings : IPackageSettings
218233
{
219-
public Task IncrementCounter(Expression<Func<UsageModel.MeasuresModel, int>> counter)
234+
public bool CollectMetrics { get; set; } = true;
235+
public bool EnableTraceLogging { get; set; } = true;
236+
public bool EditorComments { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
237+
public UIState UIState { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
238+
public bool HideTeamExplorerWelcomeMessage { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
239+
240+
public event PropertyChangedEventHandler PropertyChanged;
241+
242+
public void Save()
220243
{
221-
Trace.WriteLine($"IncrementCounter {counter}");
222-
return Task.CompletedTask;
244+
throw new NotImplementedException();
223245
}
224246
}
225247

0 commit comments

Comments
 (0)