using System; using System.Threading.Tasks; using Microsoft.PowerToys.Settings.UI.Services; using Windows.ApplicationModel.Activation; namespace Microsoft.PowerToys.Settings.UI.Activation { internal class DefaultActivationHandler : ActivationHandler { private readonly Type _navElement; public DefaultActivationHandler(Type navElement) { _navElement = navElement; } protected override async Task HandleInternalAsync(IActivatedEventArgs args) { // When the navigation stack isn't restored, navigate to the first page and configure // the new page by passing required information in the navigation parameter object arguments = null; if (args is LaunchActivatedEventArgs launchArgs) { arguments = launchArgs.Arguments; } NavigationService.Navigate(_navElement, arguments); await Task.CompletedTask; } protected override bool CanHandleInternal(IActivatedEventArgs args) { // None of the ActivationHandlers has handled the app activation return NavigationService.Frame.Content == null && _navElement != null; } } }