diff options
Diffstat (limited to 'Juick/ThreadView.xaml.cs')
-rw-r--r-- | Juick/ThreadView.xaml.cs | 199 |
1 files changed, 92 insertions, 107 deletions
diff --git a/Juick/ThreadView.xaml.cs b/Juick/ThreadView.xaml.cs index 354a3cd..4e1da97 100644 --- a/Juick/ThreadView.xaml.cs +++ b/Juick/ThreadView.xaml.cs @@ -1,108 +1,93 @@ -using System; -using System.Linq; -using System.Windows.Controls; -using System.Windows.Navigation; -using Juick.ViewModels; -using Microsoft.Phone.Controls; -using Microsoft.Phone.Shell; -using System.Windows.Data; -using System.Windows; -using RestSharp; -using System.Net; - -namespace Juick -{ - public partial class ThreadView : PhoneApplicationPage - { - public ThreadView() - { - InitializeComponent(); - Model = new ThreadViewModel(App.AppContext); - DataContext = Model; - Loaded += (o, args) => - { - var progressIndicator = SystemTray.ProgressIndicator; - - if (progressIndicator != null) - { - return; - } - progressIndicator = new ProgressIndicator(); - - SystemTray.SetProgressIndicator(this, progressIndicator); - - Binding binding = new Binding("IsDataLoading") { Source = App.AppContext }; - - BindingOperations.SetBinding( - progressIndicator, ProgressIndicator.IsVisibleProperty, binding); - - binding = new Binding("IsDataLoading") { Source = App.AppContext }; - - BindingOperations.SetBinding( - progressIndicator, ProgressIndicator.IsIndeterminateProperty, binding); - }; - } - - public ThreadViewModel Model; - - // When page is navigated to set data context to selected item in list - protected override void OnNavigatedTo(NavigationEventArgs e) - { - if (Model.Items.Count > 0) - return; - string _mid = ""; - if (NavigationContext.QueryString.TryGetValue("mid", out _mid)) - { - Model.Mid = int.Parse(_mid); - } - Model.RefreshData(); - } - - private void ListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) - { - // If selected index is -1 (no selection) do nothing - if (((ListBox)sender).SelectedIndex == -1) - return; - - // Navigate to the new page - var item = Model.Items[((ListBox)sender).SelectedIndex]; - var destUri = string.Format("/NewPostView.xaml?mid={0}", item.MID); - if (item.RID > 0) - destUri += string.Format("&rid={0}", item.RID); - NavigationService.Navigate(new Uri(destUri, UriKind.Relative)); - - // Reset selected index to -1 (no selection) - ((ListBox)sender).SelectedIndex = -1; - } - - void RecommendBarMenuItem_Click(object sender, EventArgs e) - { - ExecuteJuickAction("!"); - } - - void SubscribeBarMenuItem_Click(object sender, EventArgs e) - { - ExecuteJuickAction("S"); - } - - void UnsubscribeBarMenuItem_Click(object sender, EventArgs e) - { - ExecuteJuickAction("U"); - } - - void ExecuteJuickAction(string action) - { - var request = new RestRequest("/post", Method.POST); - request.AddParameter("body", string.Concat(action, " #", Model.Mid)); - App.AppContext.Client.ExecuteAsync(request, response => - { - App.AppContext.IsDataLoading = false; - if(response.StatusCode != HttpStatusCode.OK || !string.IsNullOrEmpty(response.Content)) - { - MessageBox.Show(string.Concat(response.StatusCode, ": ", response.Content)); - } - }); - App.AppContext.IsDataLoading = true; - } - } +using System;
+using System.Linq;
+using System.Windows.Controls;
+using System.Windows.Navigation;
+using Juick.ViewModels;
+using Microsoft.Phone.Controls;
+using Microsoft.Phone.Shell;
+using System.Windows.Data;
+using System.Windows;
+using RestSharp;
+using System.Net;
+
+namespace Juick
+{
+ public partial class ThreadView : PhoneApplicationPage
+ {
+ public ThreadView()
+ {
+ InitializeComponent();
+ Model = new ThreadViewModel(App.AppContext);
+ DataContext = Model;
+ Loaded += (o, args) =>
+ {
+ var progressIndicator = SystemTray.ProgressIndicator;
+
+ if (progressIndicator != null)
+ {
+ return;
+ }
+ progressIndicator = new ProgressIndicator();
+
+ SystemTray.SetProgressIndicator(this, progressIndicator);
+
+ Binding binding = new Binding("IsDataLoading") { Source = App.AppContext };
+
+ BindingOperations.SetBinding(
+ progressIndicator, ProgressIndicator.IsVisibleProperty, binding);
+
+ binding = new Binding("IsDataLoading") { Source = App.AppContext };
+
+ BindingOperations.SetBinding(
+ progressIndicator, ProgressIndicator.IsIndeterminateProperty, binding);
+ };
+ }
+
+ public ThreadViewModel Model;
+
+ // When page is navigated to set data context to selected item in list
+ protected override void OnNavigatedTo(NavigationEventArgs e)
+ {
+ if (Model.Items.Count > 0)
+ return;
+ string _mid = "";
+ if (NavigationContext.QueryString.TryGetValue("mid", out _mid))
+ {
+ Model.Mid = int.Parse(_mid);
+ }
+ Model.RefreshData();
+ }
+
+ private void ListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
+ {
+ // If selected index is -1 (no selection) do nothing
+ if (((ListBox)sender).SelectedIndex == -1)
+ return;
+
+ // Navigate to the new page
+ var item = Model.Items[((ListBox)sender).SelectedIndex];
+ var destUri = string.Format("/NewPostView.xaml?mid={0}", item.MID);
+ if (item.RID > 0)
+ destUri += string.Format("&rid={0}", item.RID);
+ NavigationService.Navigate(new Uri(destUri, UriKind.Relative));
+
+ // Reset selected index to -1 (no selection)
+ ((ListBox)sender).SelectedIndex = -1;
+ }
+
+ void RecommendBarMenuItem_Click(object sender, EventArgs e)
+ {
+ var request = new RestRequest("/post", Method.POST);
+ request.AddParameter("body", "! #" + Model.Mid);
+ App.AppContext.Client.ExecuteAsync(request, response =>
+ {
+ App.AppContext.IsDataLoading = false;
+ if (response.StatusCode != HttpStatusCode.OK && !string.IsNullOrEmpty(response.Content))
+ {
+ MessageBox.Show(string.Concat(response.StatusCode, ": ", response.Content));
+ }
+ });
+ App.AppContext.IsDataLoading = true;
+ }
+ }
}
\ No newline at end of file |