protected virtual void List_Tap(object sender, GestureEventArgs e)
        {
            LongListSelectorEx list = (LongListSelectorEx)sender;
            var selectedItem        = list.SelectedItem as DACPElement;

            // Clear out the selected item
            list.SelectedItem = null;

            // Make sure a DACPElement was selected
            if (selectedItem == null)
            {
                return;
            }

            _lastTappedList = list;
            _lastTappedItem = selectedItem;

            // Determine whether a play button was tapped
            bool isPlayButton   = false;
            var  originalSource = e.OriginalSource as DependencyObject;

            if (originalSource != null)
            {
                isPlayButton = originalSource.GetVisualAncestors().AnyElementsWithName("PlayButton");
            }

            OnListItemTap(selectedItem, list, isPlayButton);
        }
Example #2
0
        private void SearchResultsListBox_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            LongListSelectorEx list = (LongListSelectorEx)sender;
            var selectedItem        = list.SelectedItem as DACPElement;

            // Clear out the selected item
            list.SelectedItem = null;

            // Make sure a DACPElement was selected
            if (selectedItem == null)
            {
                return;
            }

            _lastTappedItem = selectedItem;

            if (selectedItem is Album)
            {
                NavigationManager.OpenAlbumPage((Album)selectedItem);
                return;
            }
            if (selectedItem is Artist)
            {
                NavigationManager.OpenArtistPage((Artist)selectedItem);
                return;
            }
            if (selectedItem is Song)
            {
                Song song = (Song)selectedItem;

                if (CurrentServer.SupportsPlayQueue)
                {
                    RemoteUtility.HandleLibraryPlayTask(song.PlayQueue());
                    return;
                }

                // Locate the Songs search result set
                var songsSection = (SongsSearchResultSection)CurrentSearchResults.First(sr => sr.ResultType == typeof(Song));
                RemoteUtility.HandleLibraryPlayTask(songsSection.PlaySong(song));
            }
            if (selectedItem is Movie)
            {
                RemoteUtility.HandleLibraryPlayTask(((Movie)selectedItem).Play());
                return;
            }
            if (selectedItem is Podcast)
            {
                NavigationManager.OpenPodcastEpisodesPage((Podcast)selectedItem);
                return;
            }
            if (selectedItem is TVShow)
            {
                NavigationManager.OpenTVShowEpisodesPage((TVShow)selectedItem);
                return;
            }
            if (selectedItem is TVShowEpisode)
            {
                RemoteUtility.HandleLibraryPlayTask(((TVShowEpisode)selectedItem).Play());
                return;
            }
            if (selectedItem is iTunesUCourse)
            {
                NavigationManager.OpeniTunesUCourseEpisodesPage((iTunesUCourse)selectedItem);
                return;
            }
            if (selectedItem is Audiobook)
            {
                NavigationManager.OpenAudiobookEpisodesPage((Audiobook)selectedItem);
                return;
            }
        }
Example #3
0
        public static AnimatorHelperBase GetListSelectorAnimation(this AnimatedBasePage page, LongListSelectorEx listSelector, AnimationType animationType)
        {
            if (listSelector.SelectedItem != null)
            {
                var contentPresenter = listSelector.SelectedContentPresenter;

                if (animationType == AnimationType.NavigateBackwardIn)
                {
                    listSelector.SelectedItem = null;
                }

                if (contentPresenter != null)
                {
                    return(page.GetContinuumAnimation(contentPresenter, animationType));
                }
            }

            return(page.GetContinuumAnimation(page.AnimationContext, animationType));
        }