summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Konstantin2013-04-25 23:35:23 +0400
committerGravatar Vitaly Takmazov2013-04-26 22:32:41 +0400
commitacb14d7db321ba26c085872a96c48e7434332154 (patch)
tree769417dbacedb9a92b8d83e3f7dde48bdecfdc44
parent7b07fab8f74787775af9fe1f3c002f74afe12b63 (diff)
merge again
-rw-r--r--Juick/ThreadView.xaml2
-rw-r--r--Juick/ThreadView.xaml.cs199
2 files changed, 109 insertions, 92 deletions
diff --git a/Juick/ThreadView.xaml b/Juick/ThreadView.xaml
index 14a6f75..2778e2f 100644
--- a/Juick/ThreadView.xaml
+++ b/Juick/ThreadView.xaml
@@ -83,6 +83,8 @@
<phoneshell:ApplicationBar.MenuItems>
<phoneshell:ApplicationBarMenuItem Text="Recommend/Unrecommend" Click="RecommendBarMenuItem_Click"/>
+ <phoneshell:ApplicationBarMenuItem Text="Subscribe" Click="SubscribeBarMenuItem_Click"/>
+ <phoneshell:ApplicationBarMenuItem Text="Unsubscribe" Click="UnsubscribeBarMenuItem_Click"/>
</phoneshell:ApplicationBar.MenuItems>
</phoneshell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
diff --git a/Juick/ThreadView.xaml.cs b/Juick/ThreadView.xaml.cs
index 4e1da97..354a3cd 100644
--- a/Juick/ThreadView.xaml.cs
+++ b/Juick/ThreadView.xaml.cs
@@ -1,93 +1,108 @@
-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;
- }
- }
+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;
+ }
+ }
} \ No newline at end of file