コード例 #1
0
        private void Timeline_TweetEvent(object sender, EventArgs e)
        {
            ViewTweet tweet = new ViewTweet((Status)sender, Mobile);

            tweet.BackEvent += Tweet_BackEvent;

            if (Mobile)
            {
                PivotItem pi = (PivotItem)twarpPivot.Items[twarpPivot.SelectedIndex];
                tweet.timeline = (TwarpTimeline)pi.Content;
                pi.Content     = tweet;
            }
            else
            {
                foreach (var item in mainStack.Children)
                {
                    if (item is TwarpTimeline && ((TwarpTimeline)item).active)
                    {
                        var index = mainStack.Children.IndexOf(item);
                        tweet.timeline = (TwarpTimeline)mainStack.Children[index];
                        Grid.SetColumn(tweet, index);
                        mainStack.Children[index] = tweet;
                        break;
                    }
                }
            }
            // enable back button - mobile only
            if (Mobile)
            {
                stage = app_stage.tweet;
                SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
            }
        }
コード例 #2
0
        private void favourites_Click(object sender, RoutedEventArgs e)
        {
            // Mobile only...

            if (twarpPivot.Items.Count >= 4)
            {
                Boolean available = false;
                foreach (PivotItem item in twarpPivot.Items)
                {
                    if ((String)item.Header == "New feed")
                    {
                        available = true;
                        break;
                    }
                }
                if (!available)
                {
                    MessageDialog dialog = new MessageDialog("The number of timelines to follow is limited to four.", "Cannot add new search");
                    dialog.ShowAsync();
                    return;
                }
            }

            mainContent.Content = favHist;

            // enable back button
            stage = app_stage.fav;
            SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
        }
コード例 #3
0
        private async void Feed_TwarpEvent(object sender, EventArgs e)
        {
            FeedSelector feeder = sender as FeedSelector;

            if (feeder.hashtag.Length <= 2)
            {
                MessageDialog dialog = new MessageDialog("The hashtag must be greater than two characters in length.", "Invalid hashtag");
                dialog.ShowAsync();
                return;
            }

            TwarpTimeline timeline = new TwarpTimeline(Mobile);

            timeline.feeder      = feeder;
            timeline.TweetEvent += Timeline_TweetEvent;
            timeline.CloseEvent += Timeline_CloseEvent;
            timeline.BackEvent  += Timeline_BackEvent;

            await timeline.init(feeder.hashtag, feeder.startTime);

            if (timeline.noNetwork)
            {
                MessageDialog dialog = new MessageDialog("Please connect to the internet and try again.", "No internet connection");
                dialog.ShowAsync();
                return;
            }
            if (timeline.noData)
            {
                MessageDialog dialog = new MessageDialog("The twitter search returned no results. Try using a different hashtag.", "No results found");
                dialog.ShowAsync();
                return;
            }

            if (Mobile)
            {
                PivotItem pi = feeder.Parent as PivotItem;
                pi.Content = timeline;
                pi.Header  = "#" + feeder.hashtag;
            }
            else
            {
                var index = mainStack.Children.IndexOf(feeder);
                mainStack.Children[index] = timeline;
                Grid.SetColumn(timeline, index);
            }

            // add history item:
            favHist.addHistory(feeder.hashtag, feeder.startTime);

            // enable back button
            if (Mobile)
            {
                stage = app_stage.timeline;
                SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
            }
        }
コード例 #4
0
        private void settings_Click(object sender, RoutedEventArgs e)
        {
            // mobile only...

            mainContent.Content = twarpSettings;

            // enable back button
            stage = app_stage.settings;
            SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
        }
コード例 #5
0
        private void TwarpPivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            // mobile only...
            PivotItem pi = (PivotItem)(sender as Pivot).SelectedItem;

            if (pi.Content is TwarpTimeline)
            {
                SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
                stage = app_stage.timeline;
            }
            else if (pi.Content is ViewTweet)
            {
                SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
                stage = app_stage.tweet;
            }
            else
            {
                SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
                stage = app_stage.feeder;
            }
        }
コード例 #6
0
        public MainPage()
        {
            this.InitializeComponent();

            Application.Current.Resuming += Current_Resuming;

            // check if we're on a mobile device:
            Mobile  = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile";
            Desktop = !Mobile;

            // create menu for desktop version
            if (Desktop)
            {
                // desktop version of the app - create the menu:
                menuContent.Children.Insert(0, favHist);
                // menuContent.Children.Insert(1, twarpSettings);
            }

            // initialise favourites and wire up events:
            favHist.init();
            favHist.FavouriteEvent += Favourites_FavouriteEvent;
            favHist.HistoryEvent   += Favourites_HistoryEvent;

            // add event handler for pivot item change:
            twarpPivot.SelectionChanged += TwarpPivot_SelectionChanged;

            // load feed selection user control and wire up handler:
            // mainContent.Content = feed;
            FeedSelector feed = new FeedSelector();

            feed.TwarpEvent  += Feed_TwarpEvent;
            feed.AddFavEvent += Feed_AddFavEvent;

            // add feed to first item of pivot:
            if (Mobile)
            {
                mainContent.Content = twarpPivot;

                // twarpPivot.Margin = new Thickness { Top = -25 };
                PivotItem pi = new PivotItem()
                {
                    Header = "New feed"
                };
                pi.Content = feed;
                twarpPivot.Items.Add(pi);
                twarpPivot.SelectedIndex = 0;
            }
            else
            {
                mainStack.Children.Add(feed);
                Grid.SetColumn(feed, 0);
            }


            SystemNavigationManager.GetForCurrentView().BackRequested += (s, e) =>
            {
                // mobile only...

                // Restore to previous stage:
                switch (stage)
                {
                case app_stage.tweet:
                    PivotItem pItem = (PivotItem)twarpPivot.Items[twarpPivot.SelectedIndex];
                    ViewTweet tweet = (ViewTweet)pItem.Content;
                    pItem.Content = tweet.timeline;
                    stage         = app_stage.timeline;
                    // SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
                    e.Handled = true;
                    break;

                case app_stage.timeline:
                    // return to feed selector:
                    PivotItem pItem2 = (PivotItem)twarpPivot.Items[twarpPivot.SelectedIndex];
                    pItem2.Header  = "New feed";
                    pItem2.Content = ((TwarpTimeline)pItem2.Content).feeder;
                    SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
                    stage     = app_stage.feeder;
                    e.Handled = true;
                    break;

                case app_stage.settings:
                case app_stage.fav:
                    mainContent.Content = twarpPivot;
                    SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
                    stage     = app_stage.main;
                    e.Handled = true;
                    break;

                default:
                    SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
                    e.Handled = false;
                    break;
                }
            };
        }