protected override async void OnLaunched(LaunchActivatedEventArgs e) { Microsoft.Toolkit.Uwp.Helpers.SystemInformation.Instance.TrackAppUse(e); ApplicationViewTitleBar TitleBar = ApplicationView.GetForCurrentView().TitleBar; TitleBar.ButtonBackgroundColor = Colors.Transparent; TitleBar.ButtonInactiveBackgroundColor = Colors.Transparent; CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true; if (Window.Current.Content is Frame frame) { if (frame.Content is MainPage Main && Main.Nav.Content is TabViewContainer TabContainer) { if (!string.IsNullOrWhiteSpace(e.Arguments) && await FileSystemStorageItemBase.CheckExistAsync(e.Arguments)) { await TabContainer.CreateNewTabAsync(e.Arguments); } else { await TabContainer.CreateNewTabAsync(); } } } else { if (!string.IsNullOrWhiteSpace(e.Arguments) && await FileSystemStorageItemBase.CheckExistAsync(e.Arguments)) { ExtendedSplash extendedSplash = new ExtendedSplash(e.SplashScreen, new List <string[]> { new string[] { e.Arguments } }); Window.Current.Content = extendedSplash; } else { StartupMode Mode = StartupModeController.GetStartupMode(); switch (Mode) { case StartupMode.CreateNewTab: { ExtendedSplash extendedSplash = new ExtendedSplash(e.SplashScreen); Window.Current.Content = extendedSplash; break; } case StartupMode.LastOpenedTab: { List <string[]> LastOpenedPathArray = await StartupModeController.GetAllPathAsync(Mode).ToListAsync(); StartupModeController.Clear(StartupMode.LastOpenedTab); if (LastOpenedPathArray.Count == 0) { ExtendedSplash extendedSplash = new ExtendedSplash(e.SplashScreen); Window.Current.Content = extendedSplash; } else { ExtendedSplash extendedSplash = new ExtendedSplash(e.SplashScreen, LastOpenedPathArray); Window.Current.Content = extendedSplash; } break; } case StartupMode.SpecificTab: { string[] SpecificPathArray = await StartupModeController.GetAllPathAsync(Mode).Select((Item) => Item.FirstOrDefault()).OfType <string>().ToArrayAsync(); if (SpecificPathArray.Length == 0) { ExtendedSplash extendedSplash = new ExtendedSplash(e.SplashScreen); Window.Current.Content = extendedSplash; } else { ExtendedSplash extendedSplash = new ExtendedSplash(e.SplashScreen, SpecificPathArray); Window.Current.Content = extendedSplash; } break; } } } } Window.Current.Activate(); }
protected override async void OnActivated(IActivatedEventArgs args) { ApplicationViewTitleBar TitleBar = ApplicationView.GetForCurrentView().TitleBar; TitleBar.ButtonBackgroundColor = Colors.Transparent; TitleBar.ButtonInactiveBackgroundColor = Colors.Transparent; CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true; switch (args) { case CommandLineActivatedEventArgs CmdArgs: { string[] Arguments = CmdArgs.Operation.Arguments.Split(" ", StringSplitOptions.RemoveEmptyEntries); if (Window.Current.Content is Frame frame) { if (frame.Content is MainPage Main && Main.Nav.Content is TabViewContainer TabContainer) { if (Arguments.Length > 1) { string Path = string.Join(" ", Arguments.Skip(1)); if (string.IsNullOrWhiteSpace(Path) || Regex.IsMatch(Path, @"::\{[0-9A-F\-]+\}", RegexOptions.IgnoreCase)) { await TabContainer.CreateNewTabAsync(); } else { await TabContainer.CreateNewTabAsync(Path == "."?CmdArgs.Operation.CurrentDirectoryPath : Path); } } else { await TabContainer.CreateNewTabAsync(); } } } else { string Path = string.Join(" ", Arguments.Skip(1)); if (Arguments.Length > 1) { if (string.IsNullOrWhiteSpace(Path) || Regex.IsMatch(Path, @"::\{[0-9A-F\-]+\}", RegexOptions.IgnoreCase)) { ExtendedSplash extendedSplash = new ExtendedSplash(CmdArgs.SplashScreen); Window.Current.Content = extendedSplash; } else { ExtendedSplash extendedSplash = new ExtendedSplash(CmdArgs.SplashScreen, new List <string[]> { new string[] { Path == "." ? CmdArgs.Operation.CurrentDirectoryPath : Path } }); Window.Current.Content = extendedSplash; } } else { ExtendedSplash extendedSplash = new ExtendedSplash(CmdArgs.SplashScreen); Window.Current.Content = extendedSplash; } } break; } case ProtocolActivatedEventArgs ProtocalArgs: { if (!string.IsNullOrWhiteSpace(ProtocalArgs.Uri.AbsolutePath)) { ExtendedSplash extendedSplash = new ExtendedSplash(ProtocalArgs.SplashScreen, new List <string[]> { Uri.UnescapeDataString(ProtocalArgs.Uri.AbsolutePath).Split("||", StringSplitOptions.RemoveEmptyEntries) }); Window.Current.Content = extendedSplash; } else { ExtendedSplash extendedSplash = new ExtendedSplash(ProtocalArgs.SplashScreen); Window.Current.Content = extendedSplash; } break; } case not ToastNotificationActivatedEventArgs: { ExtendedSplash extendedSplash = new ExtendedSplash(args.SplashScreen); Window.Current.Content = extendedSplash; break; } } Window.Current.Activate(); }
private async Task OnLaunchOrOnActivate(IActivatedEventArgs args) { SystemInformation.Instance.TrackAppUse(args); ApplicationViewTitleBar TitleBar = ApplicationView.GetForCurrentView().TitleBar; TitleBar.ButtonBackgroundColor = Colors.Transparent; TitleBar.ButtonInactiveBackgroundColor = Colors.Transparent; TitleBar.ButtonForegroundColor = AppThemeController.Current.Theme == ElementTheme.Dark ? Colors.White : Colors.Black; CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true; switch (args) { case LaunchActivatedEventArgs LaunchArgs: { if (Window.Current.Content is Frame frame) { if (frame.Content is MainPage Main && Main.Nav.Content is TabViewContainer TabContainer) { if (!string.IsNullOrWhiteSpace(LaunchArgs.Arguments) && await FileSystemStorageItemBase.CheckExistAsync(LaunchArgs.Arguments)) { await TabContainer.CreateNewTabAsync(LaunchArgs.Arguments); } else { await TabContainer.CreateNewTabAsync(); } } } else { if (string.IsNullOrWhiteSpace(LaunchArgs.Arguments) || !await FileSystemStorageItemBase.CheckExistAsync(LaunchArgs.Arguments)) { await LaunchWithStartupMode(LaunchArgs); } else { ExtendedSplash extendedSplash = new ExtendedSplash(LaunchArgs.SplashScreen, new List <string[]> { new string[] { LaunchArgs.Arguments } }); Window.Current.Content = extendedSplash; } } break; } case CommandLineActivatedEventArgs CmdArgs: { string[] Arguments = CmdArgs.Operation.Arguments.Split(" ", StringSplitOptions.RemoveEmptyEntries); if (Window.Current.Content is Frame frame) { if (frame.Content is MainPage Main && Main.Nav.Content is TabViewContainer TabContainer) { if (Arguments.Length > 1) { string Path = string.Join(" ", Arguments.Skip(1)); if (string.IsNullOrWhiteSpace(Path) || Regex.IsMatch(Path, @"::\{[0-9A-F\-]+\}", RegexOptions.IgnoreCase)) { await TabContainer.CreateNewTabAsync(); } else { await TabContainer.CreateNewTabAsync(Path == "."?CmdArgs.Operation.CurrentDirectoryPath : Path); } } else { await TabContainer.CreateNewTabAsync(); } } } else { string Path = string.Join(" ", Arguments.Skip(1)); if (Arguments.Length > 1) { if (string.IsNullOrWhiteSpace(Path) || Regex.IsMatch(Path, @"::\{[0-9A-F\-]+\}", RegexOptions.IgnoreCase)) { await LaunchWithStartupMode(CmdArgs); } else { ExtendedSplash extendedSplash = new ExtendedSplash(CmdArgs.SplashScreen, new List <string[]> { new string[] { Path == "." ? CmdArgs.Operation.CurrentDirectoryPath : Path } }); Window.Current.Content = extendedSplash; } } else { await LaunchWithStartupMode(CmdArgs); } } break; } case ProtocolActivatedEventArgs ProtocalArgs: { if (!string.IsNullOrWhiteSpace(ProtocalArgs.Uri.AbsolutePath)) { ExtendedSplash extendedSplash = new ExtendedSplash(ProtocalArgs.SplashScreen, new List <string[]> { Uri.UnescapeDataString(ProtocalArgs.Uri.AbsolutePath).Split("||", StringSplitOptions.RemoveEmptyEntries) }); Window.Current.Content = extendedSplash; } else { ExtendedSplash extendedSplash = new ExtendedSplash(ProtocalArgs.SplashScreen); Window.Current.Content = extendedSplash; } break; } case not ToastNotificationActivatedEventArgs: { ExtendedSplash extendedSplash = new ExtendedSplash(args.SplashScreen); Window.Current.Content = extendedSplash; break; } } Window.Current.Activate(); }