Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
1.6 kB · 48 lines
C#
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849using System;using Windows.ApplicationModel.Activation;using Windows.UI.Xaml;using Windows.UI.Xaml.Controls;
namespace Aesthetic.DynamicShell{ sealed partial class App : Application { internal static string EndpointOverride { get; private set; } public App() { InitializeComponent(); }
protected override void OnLaunched(LaunchActivatedEventArgs e) { EndpointOverride = ParseEndpoint(e.Arguments); ShowShell(); }
protected override void OnActivated(IActivatedEventArgs args) { var protocol = args as ProtocolActivatedEventArgs; if (protocol != null) EndpointOverride = ParseEndpoint(protocol.Uri.Query); ShowShell(); }
void ShowShell() { var frame = Window.Current.Content as Frame ?? new Frame(); Window.Current.Content = frame; if (frame.Content == null) frame.Navigate(typeof(MainPage)); else ((MainPage)frame.Content).ApplyEndpointOverride(); Window.Current.Activate(); }
static string ParseEndpoint(string arguments) { if (string.IsNullOrWhiteSpace(arguments)) return null; string value = arguments.TrimStart('?'); foreach (string item in value.Split('&')) { string[] pair = item.Split(new[] { '=' }, 2); if (pair.Length == 2 && pair[0].Equals("endpoint", StringComparison.OrdinalIgnoreCase)) return Uri.UnescapeDataString(pair[1]); } return null; } }}