/// <summary> /// Populates the page with content passed during navigation. Any saved state is also /// provided when recreating a page from a prior session. /// </summary> /// <param name="navigationParameter">The parameter value passed to /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested. /// </param> /// <param name="pageState">A dictionary of state preserved by this page during an earlier /// session. This will be null the first time a page is visited.</param> protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) { if (pageState != null && pageState.ContainsKey("SelectedCommentTreeMessage")) { _selectedCommentTree = pageState["SelectedCommentTreeMessage"] as SelectCommentTreeMessage; Messenger.Default.Send<SelectCommentTreeMessage>(_selectedCommentTree); } else if (navigationParameter != null && navigationParameter is SelectCommentTreeMessage) { _selectedCommentTree = navigationParameter as SelectCommentTreeMessage; Messenger.Default.Send<SelectCommentTreeMessage>(_selectedCommentTree); } RegisterShareSourceContract(); }
private async void GotoFullLinkImpl() { MessengerInstance.Send<LoadingMessage>(new LoadingMessage { Loading = true }); var linkThing = await _redditService.GetThingById(_comment.Data.LinkId); var commentTree = new SelectCommentTreeMessage { Context = 3, LinkThing = new TypedThing<Link>(linkThing) }; MessengerInstance.Send<LoadingMessage>(new LoadingMessage { Loading = false }); _navigationService.Navigate(_dynamicViewLocator.CommentsView, commentTree); }
private async void GotoContextImpl() { try { if (_comment.Data.ParentId == null) return; MessengerInstance.Send<LoadingMessage>(new LoadingMessage { Loading = true }); var linkThing = new TypedThing<Link>(await _redditService.GetThingById(_comment.Data.LinkId)); var parentThing = await _redditService.GetLinkByUrl("http://www.reddit.com/" + linkThing.Data.Permalink + _comment.Data.ParentId.Substring(3)); var commentTree = new SelectCommentTreeMessage { LinkThing = new TypedThing<Link>(parentThing) }; MessengerInstance.Send<LoadingMessage>(new LoadingMessage { Loading = false }); _navigationService.Navigate(_dynamicViewLocator.CommentsView, commentTree); } catch (Exception ex) { _baconProvider.GetService<INotificationService>().CreateErrorNotification(ex); } }
protected override void OnNavigatedTo(NavigationEventArgs e) { if (e.NavigationMode == NavigationMode.Back) { } else if (e.NavigationMode == NavigationMode.Reset) { //do nothing we have everything we want already here } else { if (this.State != null && this.State.ContainsKey("SelectedCommentTreeMessage")) { _selectedCommentTree = this.State["SelectedCommentTreeMessage"] as SelectCommentTreeMessage; Messenger.Default.Send<SelectCommentTreeMessage>(_selectedCommentTree); } else if (!string.IsNullOrWhiteSpace(this.NavigationContext.QueryString["data"])) { var unescapedData = HttpUtility.UrlDecode(this.NavigationContext.QueryString["data"]); var deserializedObject = JsonConvert.DeserializeObject<SelectCommentTreeMessage>(unescapedData); if (deserializedObject is SelectCommentTreeMessage) { _selectedCommentTree = deserializedObject as SelectCommentTreeMessage; Messenger.Default.Send<SelectCommentTreeMessage>(_selectedCommentTree); } } else { var notificationService = ServiceLocator.Current.GetInstance<INotificationService>(); notificationService.CreateNotification("TLDR; something bad happened, send /u/hippiehunter a PM letting us know what you clicked on"); } RegisterShareSourceContract(); } _viewModelContextService.PushViewModelContext(DataContext as ViewModelBase); _smartOfflineService.NavigatedToView(typeof(CommentsView), e.NavigationMode == NavigationMode.New); }
private void OnComentTreeSelection(SelectCommentTreeMessage msg) { LoadLink(msg.LinkThing, msg.RootComment); }