/// <summary>
        ///     Initialize items that require the page to be
        ///     completely loaded.
        /// </summary>
        private void PageLoaded()
        {
            PostTuple.SetViewCommand(viewModel.ViewCommand);

            if (ApplicationBar.Buttons.Count == 0)
                ApplicationBar.Buttons.Add(new AppBarButton
                    {
                        IconUri = new Uri("/Assets/SDK/favs.addto.png", UriKind.Relative),
                        Text = "bookmark",
                        Command = viewModel.BookmarkCommand
                    });

            if (ApplicationBar.MenuItems.Count == 0)
            {
                ApplicationBar.MenuItems.Add(new AppBarMenuItem
                    {
                        Text = "settings",
                        Command = viewModel.SettingsCommand
                    });
                ApplicationBar.MenuItems.Add(new AppBarMenuItem
                {
                    Text = "logout",
                    Command = viewModel.LogoutCommand
                });
            }

            infinityDaemon = new ListViewInfinityDaemon(SearchResultList, 60, viewModel.LoadPageCommand);
            PostTuple.SetViewCommand(viewModel.ViewCommand);

            // Load search results if not already searching
            if (NavigationHelper.NavigationArgument != null)
            {
                String query = NavigationHelper.NavigationArgument as String;
                if (query != null)
                {
                    query = query.Replace("+", " ");
                    viewModel.SearchString = query;
                    SearchBox.Text = query;
                    Focus();
                    viewModel.SearchCommand.Execute(null);
                }
            }
        }
Example #2
0
        public HomeView()
        {
            InitializeComponent();

            // Create ViewModel
            viewModel = new HomeViewModel(this);
            viewModel.ChangeState += (@s, e) => {
                if (e.State == HomeViewModel.LogoutState)
                {
                    if (MessageBox.Show("Are you sure you want to log out?", "O!Pix Log Out", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
                        Session.Instance.LogOut();
                }
                else if (e.State == HomeViewModel.FavChangedState)
                {
                    // Show or hide the "No Favorite" prompt
                    NoFavTextBlock.Visibility = viewModel.Favorites.Count == 0 ? Visibility.Visible : Visibility.Collapsed;
                }else
                    VisualStateManager.GoToState(this, e.State, e.Transition);
            };
            DataContext = viewModel;

            // Load Appropriate Banner
            String bannerUrl = App.IsInDarkTheme()
                                   ? "/Assets/application-banner-dark.png"
                                   : "/Assets/application-banner-light.png";
            BitmapImage bannerSrc = new BitmapImage(new Uri(bannerUrl, UriKind.Relative));
            Panorama.Title = bannerSrc;

            // Page Loaded Handler
            Loaded += (@s, e) => PageLoaded();

            // App Bar Handler
            Panorama.SelectionChanged += (@s, e) => UpdateAppBarButtons();

            // Initialize Infinity Daemons
            NewPostList.Loaded += (@s, e) =>
                { newPostInfinityDaemon = new ListViewInfinityDaemon(NewPostList, 60, viewModel.LoadNewPostsCommand); };
            FavoriteList.Loaded += (@s, e) =>
                {
                    favPostInfinityDaemon = new ListViewInfinityDaemon(FavoriteList, 60,
                                                                       viewModel.LoadFavoritePostsCommand);
                };

            // Set up App Bar Buttons
            whatsNewAppbarButtons = new ApplicationBarIconButton[]
                {
                    new AppBarButton { IconUri = new Uri("/Assets/SDK/feature.search.png", UriKind.Relative), Text = "search", Command = viewModel.SearchCommand }
                };

            favoriteAppbarButtons = new ApplicationBarIconButton[]
                {

                };

            subscriptionAppbarButtons = new ApplicationBarIconButton[]
                {
                    new AppBarButton { IconUri = new Uri("/Assets/SDK/add.png", UriKind.Relative), Text = "add new", Command = viewModel.SearchCommand },
                    new AppBarButton { IconUri = new Uri("/Assets/SDK/refresh.png", UriKind.Relative), Text = "refresh", Command = viewModel.SearchCommand }
                };

            profileAppbarButtons = new ApplicationBarIconButton[]
                {

                };
        }