/// <summary> /// Invoked when the application is launched normally by the end user. Other entry points /// will be used such as when the application is launched to open a specific file. /// </summary> /// <param name="e">Details about the launch request and process.</param> protected override async void OnLaunched(LaunchActivatedEventArgs e) { #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { this.DebugSettings.EnableFrameRateCounter = true; } #endif // Initialize ApplicationStart try { Windows.ApplicationModel.StartupTask startupTask = await Windows.ApplicationModel.StartupTask.GetAsync("TestMediaAppStartupId"); if (startupTask.State == StartupTaskState.Enabled) { ViewModels.StaticSettingsViewModel.ApplicationStart = true; } else { ViewModels.StaticSettingsViewModel.ApplicationStart = false; } } catch (Exception) { System.Diagnostics.Debug.WriteLine("Exception while Getting Startup Task"); } if (e.PreviousExecutionState != ApplicationExecutionState.Running) { bool loadState = (e.PreviousExecutionState == ApplicationExecutionState.Terminated); ExtendedSplash extendedSplash = new ExtendedSplash(e.SplashScreen, loadState); Window.Current.Content = extendedSplash; } else { Frame rootFrame = Window.Current.Content as Frame; // Do not repeat app initialization when the Window already has content, // just ensure that the window is active if (rootFrame == null) { // Create a Frame to act as the navigation context and navigate to the first page rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: Load state from previously suspended application } // Place the frame in the current Window Window.Current.Content = rootFrame; } if (rootFrame.Content == null) { // When the navigation stack isn't restored navigate to the first page, // configuring the new page by passing required information as a navigation // parameter rootFrame.Navigate(typeof(Shell), e.Arguments); } } // Core Windows Bound if (string.Equals(Information.SystemInformation.SystemFamily, "Windows.Xbox", StringComparison.OrdinalIgnoreCase)) { Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().SetDesiredBoundsMode(Windows.UI.ViewManagement.ApplicationViewBoundsMode.UseCoreWindow); } // Ensure the current window is active Window.Current.Activate(); }
protected override async void OnActivated(IActivatedEventArgs args) { LogMessage("OnActivated"); Frame rootFrame = Window.Current.Content as Frame; if (rootFrame == null) { rootFrame = new Frame(); Window.Current.Content = rootFrame; } // Initialize ApplicationStart try { Windows.ApplicationModel.StartupTask startupTask = await Windows.ApplicationModel.StartupTask.GetAsync("TestMediaAppStartupId"); if (startupTask.State == StartupTaskState.Enabled) { ViewModels.StaticSettingsViewModel.ApplicationStart = true; } else { ViewModels.StaticSettingsViewModel.ApplicationStart = false; } } catch (Exception) { System.Diagnostics.Debug.WriteLine("Exception while Getting Startup Task"); } // Protocol activation is the only type of activation that this app handles if (args.Kind == ActivationKind.Protocol) { LogMessage("OnProtocolActivated"); ProtocolActivatedEventArgs protocolArgs = args as ProtocolActivatedEventArgs; var p = rootFrame.Content as Shell; if (p == null) { if (protocolArgs != null) { rootFrame.Navigate(typeof(Shell), args); } else { rootFrame.Navigate(typeof(Shell)); } } else { LogMessage("SetProtocolArgs:" + protocolArgs.Uri.ToString()); p.SetProtocolArgs(protocolArgs.Uri); } } else if (args.Kind == ActivationKind.StartupTask) { LogMessage("OnStartupTaskActivated"); StartupTaskActivatedEventArgs startupTaskArgs = args as StartupTaskActivatedEventArgs; LogMessage("StartupTask ID:" + startupTaskArgs.TaskId.ToString()); var p = rootFrame.Content as Shell; if (p == null) { ViewModels.StaticSettingsViewModel.ApplicationStart = true; rootFrame.Navigate(typeof(Shell)); } else { p.SetProtocolArgs(new Uri("testmediaapp://?page=playerpage")); } } else { rootFrame.Navigate(typeof(Shell)); } Window.Current.Activate(); }