diff options
Diffstat (limited to 'Juick/UserFeed.xaml.cs')
-rw-r--r-- | Juick/UserFeed.xaml.cs | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/Juick/UserFeed.xaml.cs b/Juick/UserFeed.xaml.cs new file mode 100644 index 0000000..bfb7128 --- /dev/null +++ b/Juick/UserFeed.xaml.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; +using Microsoft.Phone.Controls; +using Juick.ViewModels; +using Microsoft.Phone.Shell; +using System.Windows.Data; +using System.Windows.Navigation; + +namespace Juick +{ + public partial class UserFeed : PhoneApplicationPage + { + public UserFeed() + { + InitializeComponent(); + Model = new UserFeedViewModel(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 UserFeedViewModel 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 _uid = ""; + if (NavigationContext.QueryString.TryGetValue("uid", out _uid)) + { + Model.Uid = int.Parse(_uid); + } + 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("/ThreadView.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; + } + } +}
\ No newline at end of file |