public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args) { var service = UnigramContainer.Current.ResolveType <IProtoService>(); var state = service.GetAuthorizationState(); if (state == null) { return; } CustomXamlResourceLoader.Current = new XamlResourceLoader(); //var service = UnigramContainer.Current.ResolveType<IProtoService>(); //var response = await service.SendAsync(new GetAuthorizationState()); //if (response is AuthorizationStateReady) if (state is AuthorizationStateReady) { if (args is ShareTargetActivatedEventArgs share) { var package = new DataPackage(); var operation = share.ShareOperation.Data; if (operation.Contains(StandardDataFormats.ApplicationLink)) { package.SetApplicationLink(await operation.GetApplicationLinkAsync()); } if (operation.Contains(StandardDataFormats.Bitmap)) { package.SetBitmap(await operation.GetBitmapAsync()); } //if (operation.Contains(StandardDataFormats.Html)) //{ // package.SetHtmlFormat(await operation.GetHtmlFormatAsync()); //} //if (operation.Contains(StandardDataFormats.Rtf)) //{ // package.SetRtf(await operation.GetRtfAsync()); //} if (operation.Contains(StandardDataFormats.StorageItems)) { package.SetStorageItems(await operation.GetStorageItemsAsync()); } if (operation.Contains(StandardDataFormats.Text)) { package.SetText(await operation.GetTextAsync()); } //if (operation.Contains(StandardDataFormats.Uri)) //{ // package.SetUri(await operation.GetUriAsync()); //} if (operation.Contains(StandardDataFormats.WebLink)) { package.SetWebLink(await operation.GetWebLinkAsync()); } ShareOperation = share.ShareOperation; DataPackage = package.GetView(); var options = new Windows.System.LauncherOptions(); options.TargetApplicationPackageFamilyName = Package.Current.Id.FamilyName; await Windows.System.Launcher.LaunchUriAsync(new Uri("tg://"), options); } else if (args is VoiceCommandActivatedEventArgs voice) { Execute.Initialize(); SpeechRecognitionResult speechResult = voice.Result; string command = speechResult.RulePath[0]; if (command == "ShowAllDialogs") { NavigationService.NavigateToMain(null); } if (command == "ShowSpecificDialog") { //#TODO: Fix that this'll open a specific dialog NavigationService.NavigateToMain(null); } else { NavigationService.NavigateToMain(null); } } else if (args is ContactPanelActivatedEventArgs contact) { WindowContext.GetForCurrentView().SetContactPanel(contact.ContactPanel); var backgroundBrush = Application.Current.Resources["TelegramTitleBarBackgroundBrush"] as SolidColorBrush; contact.ContactPanel.HeaderColor = backgroundBrush.Color; var annotationStore = await ContactManager.RequestAnnotationStoreAsync(ContactAnnotationStoreAccessType.AppAnnotationsReadWrite); var store = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AppContactsReadWrite); if (store != null && annotationStore != null) { var full = await store.GetContactAsync(contact.Contact.Id); if (full == null) { NavigationService.NavigateToMain(null); } else { var annotations = await annotationStore.FindAnnotationsForContactAsync(full); var first = annotations.FirstOrDefault(); if (first == null) { NavigationService.NavigateToMain(null); } else { var remote = first.RemoteId; if (long.TryParse(remote.Substring(1), out long chatId)) { NavigationService.NavigateToChat(chatId); } else { NavigationService.NavigateToMain(null); } } } } else { NavigationService.NavigateToMain(null); } } else if (args is ProtocolActivatedEventArgs protocol) { Execute.Initialize(); if (ShareOperation != null) { ShareOperation.ReportCompleted(); ShareOperation = null; } if (NavigationService?.Frame?.Content is MainPage page) { page.Activate(protocol.Uri); } else { NavigationService.NavigateToMain(protocol.Uri.ToString()); } } //else if (args is CommandLineActivatedEventArgs commandLine && TryParseCommandLine(commandLine, out int id, out bool test)) //{ //} else { Execute.Initialize(); var activate = args as ToastNotificationActivatedEventArgs; var launched = args as LaunchActivatedEventArgs; var launch = activate?.Argument ?? launched?.Arguments; if (NavigationService?.Frame?.Content is MainPage page) { page.Activate(launch); } else { NavigationService.NavigateToMain(launch); } } } else if (state is AuthorizationStateWaitPhoneNumber) { Execute.Initialize(); NavigationService.Navigate(typeof(IntroPage)); } Window.Current.Activated -= Window_Activated; Window.Current.Activated += Window_Activated; Window.Current.VisibilityChanged -= Window_VisibilityChanged; Window.Current.VisibilityChanged += Window_VisibilityChanged; UpdateBars(); ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(320, 500)); SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; Theme.Current.Update(); NotifyThemeChanged(); var dispatcher = Window.Current.Dispatcher; Task.Run(() => OnStartSync(dispatcher)); //return Task.CompletedTask; }
protected override void OnWindowCreated(WindowCreatedEventArgs args) { CustomXamlResourceLoader.Current = new XamlResourceLoader(); WindowContext.GetForCurrentView(); base.OnWindowCreated(args); }