protected async override void RepoChanged(bool changed) { IsLoggedIn = true; IsVisible = false; base.RepoChanged(changed); IsVisible = await IsAGitHubRepo(); if (IsVisible) { RepoName = ActiveRepoName; RepoUrl = ActiveRepoUri.ToString(); Icon = GetIcon(false, true, false); // We want to display a welcome message but only if Team Explorer isn't // already displaying the "Install 3rd Party Tools" message and the current repo is hosted on GitHub. if (!settings.HideTeamExplorerWelcomeMessage && !IsGitToolsMessageVisible()) { ShowWelcomeMessage(); } Debug.Assert(SimpleApiClient != null, "If we're in this block, simpleApiClient cannot be null. It was created by UpdateStatus"); var repo = await SimpleApiClient.GetRepository(); Icon = GetIcon(repo.Private, true, repo.Fork); IsLoggedIn = await IsUserAuthenticated(); } else { teamExplorerServices.HideNotification(welcomeMessageGuid); } }
protected async override void RepoChanged() { IsVisible = false; base.RepoChanged(); IsVisible = await IsAGitHubRepo(); if (IsVisible) { RepoName = ActiveRepoName; RepoUrl = ActiveRepoUri.ToString(); Icon = GetIcon(false, true, false); Debug.Assert(SimpleApiClient != null, "If we're in this block, simpleApiClient cannot be null. It was created by UpdateStatus"); var repo = await SimpleApiClient.GetRepository(); Icon = GetIcon(repo.Private, true, repo.Fork); } }
protected void UpdateRepo([AllowNull] IGitRepositoryInfo repo) { if (ActiveRepo.Compare(repo)) { return; } ActiveRepo = repo; if (repo != null) { var gitRepo = Services.GetRepoFromIGit(repo); var uri = Services.GetUriFromRepository(gitRepo); if (uri != null) { var name = uri.GetRepo(); if (name != null) { ActiveRepoUri = uri; ActiveRepoName = ActiveRepoUri.GetUser() + "/" + ActiveRepoUri.GetRepo(); } } } RepoChanged(); }
public override void Initialize(IServiceProvider serviceProvider) { Guard.ArgumentNotNull(serviceProvider, nameof(serviceProvider)); serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.pullRequestCommand, (s, e) => Load(new ViewWithData(UIControllerFlow.PullRequestList)).Forget()); back = serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.backCommand, () => !disabled && (navController?.HasBack ?? false), () => { DisableButtons(); navController.Back(); }, true); forward = serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.forwardCommand, () => !disabled && (navController?.HasForward ?? false), () => { DisableButtons(); navController.Forward(); }, true); refresh = serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.refreshCommand, () => !disabled, () => { DisableButtons(); Refresh(); }, true); serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.githubCommand, () => !disabled && (RepositoryOrigin == RepositoryOrigin.DotCom || RepositoryOrigin == RepositoryOrigin.Enterprise), () => { switch (navController?.Current.CurrentFlow) { case UIControllerFlow.PullRequestDetail: var prDetailViewModel = control.DataContext as IPullRequestDetailViewModel; if (prDetailViewModel != null) { browser.OpenUrl(ActiveRepoUri.ToRepositoryUrl().Append("pull/" + prDetailViewModel.Model.Number)); } else { goto default; } break; case UIControllerFlow.PullRequestList: case UIControllerFlow.PullRequestCreation: browser.OpenUrl(ActiveRepoUri.ToRepositoryUrl().Append("pulls/")); break; case UIControllerFlow.Home: default: browser.OpenUrl(ActiveRepoUri.ToRepositoryUrl()); break; } }, true); serviceProvider.AddCommandHandler(Guids.guidGitHubToolbarCmdSet, PkgCmdIDList.helpCommand, () => true, () => { browser.OpenUrl(new Uri(GitHubUrls.Documentation)); usageTracker.IncrementCounter(x => x.NumberOfGitHubPaneHelpClicks).Forget(); }, true); initialized = true; base.Initialize(serviceProvider); hosts.WhenAnyValue(x => x.IsLoggedInToAnyHost).Subscribe(_ => LoadDefault()); }