示例#1
0
 private async void PreviousPostsWebView_ScriptNotify(object sender, NotifyEventArgs e)
 {
     string stringJson = e.Value;
     var command = JsonConvert.DeserializeObject<ReplyView.ThreadCommand>(stringJson);
     var replyManager = new ReplyManager();
     switch (command.Command)
     {
         case "profile":
             Frame.Navigate(typeof(UserProfileView), command.Id);
             break;
         case "post_history":
             Frame.Navigate(typeof(UserPostHistoryPage), command.Id);
             break;
         case "rap_sheet":
             Frame.Navigate(typeof(RapSheetView), command.Id);
             break;
         case "quote":
               loadingProgressBar.Visibility = Visibility.Visible;
               string quoteString = await replyManager.GetQuoteString(Convert.ToInt64(command.Id));
                 quoteString = string.Concat(Environment.NewLine, quoteString);
                 string replyText = string.IsNullOrEmpty(ReplyText.Text) ? string.Empty : ReplyText.Text;
             if (replyText != null) ReplyText.Text = replyText.Insert(ReplyText.Text.Length, quoteString);
             loadingProgressBar.Visibility = Visibility.Collapsed;
             break;
         case "setFont":
             if (_localSettings.Values.ContainsKey("zoomSize"))
             {
                 _zoomSize = Convert.ToInt32(_localSettings.Values["zoomSize"]);
                 PreviewLastPostWebView.InvokeScriptAsync("ResizeWebviewFont", new[] { _zoomSize.ToString() });
             }
             else
             {
                 _zoomSize = 14;
             }
             break;
         case "edit":
             Frame.Navigate(typeof(EditReplyPage), command.Id);
             break;
         case "openThread":
             // Because we are coming from an existing thread, rather than the thread lists, we need to get the thread information beforehand.
             // However, right now the managers are not set up to support this. The thread is getting downloaded twice, when it really only needs to happen once.
             var threadManager = new ThreadManager();
             var thread = await threadManager.GetThread(new ForumThreadEntity(), command.Id);
             if (thread == null)
             {
                 var error = new MessageDialog("Specified post was not found in the live forums.")
                 {
                     DefaultCommandIndex = 1
                 };
                 await error.ShowAsync();
                 break;
             }
             string jsonObjectString = JsonConvert.SerializeObject(thread);
             Frame.Navigate(typeof(ThreadPage), jsonObjectString);
             break;
         default:
             var msgDlg = new MessageDialog("Not working yet!")
             {
                 DefaultCommandIndex = 1
             };
             await msgDlg.ShowAsync();
             break;
     }
 }
示例#2
0
 private async void ThreadWebView_ScriptNotify(object sender, NotifyEventArgs e)
 {
     string stringJson = e.Value;
     var command = JsonConvert.DeserializeObject<EditPage.ThreadCommand>(stringJson);
     var replyManager = new ReplyManager();
     switch (command.Command)
     {
         case "quote":
             LoadingProgressBar.Visibility = Visibility.Visible;
             string quoteString = await replyManager.GetQuoteString(Convert.ToInt64(command.Id));
             quoteString = string.Concat(Environment.NewLine, quoteString);
             string replyText = string.IsNullOrEmpty(ReplyTextBox.Text) ? string.Empty : ReplyTextBox.Text;
             if (replyText != null) ReplyTextBox.Text = replyText.Insert(ReplyTextBox.Text.Length, quoteString);
             LoadingProgressBar.Visibility = Visibility.Collapsed;
             break;
         case "edit":
             //Frame.Navigate(typeof(EditReplyPage), command.Id);
             break;
         case "openThread":
             // Because we are coming from an existing thread, rather than the thread lists, we need to get the thread information beforehand.
             // However, right now the managers are not set up to support this. The thread is getting downloaded twice, when it really only needs to happen once.
             var threadManager = new ThreadManager();
             var thread = await threadManager.GetThread(new ForumThreadEntity(), command.Id);
             if (thread == null)
             {
                 var error = new MessageDialog("Specified post was not found in the live forums.")
                 {
                     DefaultCommandIndex = 1
                 };
                 await error.ShowAsync();
                 break;
             }
             string jsonObjectString = JsonConvert.SerializeObject(thread);
             Frame.Navigate(typeof(ThreadPage), jsonObjectString);
             break;
         case "setFont":
             break;
         default:
             var msgDlg = new MessageDialog("Not working yet!")
             {
                 DefaultCommandIndex = 1
             };
             await msgDlg.ShowAsync();
             break;
     }
 }