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

Commit e948cca

Browse files
authored
Merge pull request #1480 from github/feature/submodule-changes-progress-on-statusbar
Show progress of sync submodules command on the status bar
2 parents c7576a7 + f6af40a commit e948cca

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/GitHub.App/ViewModels/GitHubPane/PullRequestDetailViewModel.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public sealed class PullRequestDetailViewModel : PanePageViewModelBase, IPullReq
3535
readonly IPullRequestSessionManager sessionManager;
3636
readonly IUsageTracker usageTracker;
3737
readonly ITeamExplorerContext teamExplorerContext;
38+
readonly IStatusBarNotificationService statusBarNotificationService;
3839
IModelService modelService;
3940
IPullRequestModel model;
4041
string sourceBranchDisplayName;
@@ -67,19 +68,22 @@ public PullRequestDetailViewModel(
6768
IPullRequestSessionManager sessionManager,
6869
IModelServiceFactory modelServiceFactory,
6970
IUsageTracker usageTracker,
70-
ITeamExplorerContext teamExplorerContext)
71+
ITeamExplorerContext teamExplorerContext,
72+
IStatusBarNotificationService statusBarNotificationService)
7173
{
7274
Guard.ArgumentNotNull(pullRequestsService, nameof(pullRequestsService));
7375
Guard.ArgumentNotNull(sessionManager, nameof(sessionManager));
7476
Guard.ArgumentNotNull(modelServiceFactory, nameof(modelServiceFactory));
7577
Guard.ArgumentNotNull(usageTracker, nameof(usageTracker));
7678
Guard.ArgumentNotNull(teamExplorerContext, nameof(teamExplorerContext));
79+
Guard.ArgumentNotNull(statusBarNotificationService, nameof(statusBarNotificationService));
7780

7881
this.pullRequestsService = pullRequestsService;
7982
this.sessionManager = sessionManager;
8083
this.modelServiceFactory = modelServiceFactory;
8184
this.usageTracker = usageTracker;
8285
this.teamExplorerContext = teamExplorerContext;
86+
this.statusBarNotificationService = statusBarNotificationService;
8387

8488
Checkout = ReactiveCommand.CreateAsyncObservable(
8589
this.WhenAnyValue(x => x.CheckoutState)
@@ -684,7 +688,11 @@ async Task DoSyncSubmodules(object unused)
684688
usageTracker.IncrementCounter(x => x.NumberOfSyncSubmodules).Forget();
685689

686690
var writer = new StringWriter(CultureInfo.CurrentCulture);
687-
var complete = await pullRequestsService.SyncSubmodules(LocalRepository, writer.WriteLine);
691+
var complete = await pullRequestsService.SyncSubmodules(LocalRepository, line =>
692+
{
693+
writer.WriteLine(line);
694+
statusBarNotificationService.ShowMessage(line);
695+
});
688696
if (!complete)
689697
{
690698
throw new ApplicationException(writer.ToString());
@@ -693,6 +701,7 @@ async Task DoSyncSubmodules(object unused)
693701
finally
694702
{
695703
IsBusy = false;
704+
statusBarNotificationService.ShowMessage(string.Empty);
696705
}
697706
}
698707

test/UnitTests/GitHub.App/ViewModels/GitHubPane/PullRequestDetailViewModelTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,8 @@ static Tuple<PullRequestDetailViewModel, IPullRequestService> CreateTargetAndSer
555555
sessionManager ?? Substitute.For<IPullRequestSessionManager>(),
556556
Substitute.For<IModelServiceFactory>(),
557557
Substitute.For<IUsageTracker>(),
558-
Substitute.For<ITeamExplorerContext>());
558+
Substitute.For<ITeamExplorerContext>(),
559+
Substitute.For<IStatusBarNotificationService>());
559560
vm.InitializeAsync(repository, Substitute.For<IConnection>(), "owner", "repo", 1).Wait();
560561

561562
return Tuple.Create(vm, pullRequestService);

0 commit comments

Comments
 (0)