示例#1
0
        async void OnSelectionChanged(object sender, SelectionChangedEventArgs args)
        {
            if (args.CurrentSelection.Count != 1)
            {
                return;
            }
            if (!(args.CurrentSelection[0] is YoutubeExplode.Models.Video vidItem))
            {
                return;
            }
            SearchCollectionView.SelectedItem = null;
            var captions = await viewModel.GetCaptions(vidItem.Id);

            if (captions.Count <= 0)
            {
                await DisplayAlert("Captions", $"No Captions Available for \"{vidItem.Title}\"!", "Dang!");

                return;
            }
            ClosedCaptionTrackInfo info;

            if (captions.Count == 1)
            {
                info = captions.First();
            }
            else
            {
                var capList = captions.Select(n => n.Language.Name).ToArray();
                var action  = await DisplayActionSheet("Pick Caption Language: ", "Cancel", null, capList);

                info = captions.FirstOrDefault(n => n.Language.Name == action);
                if (info == null)
                {
                    return;
                }
            }
            var captionPage = new CaptionsPage(vidItem.Title, vidItem.Id, info);
            await Navigation.PushAsync(captionPage);

            await captionPage.GetCaptionsAsync();
        }
        async void OnSelectionChanged(object sender, SelectionChangedEventArgs args)
        {
            // TODO: Temp workaround
            if (args.CurrentSelection.Count != 1)
            {
                return;
            }
            var item = args.CurrentSelection.FirstOrDefault() as PlaylistItem;

            if (item == null)
            {
                return;
            }
            var caption = await viewModel.TempGetCaptions(item);

            var captionPage = new CaptionsPage(item.Snippet.Title, item.Snippet.ResourceId.VideoId, caption);
            await Navigation.PushAsync(captionPage);

            await captionPage.GetCaptionsAsync();

            VideoCollectionView.SelectedItem = null;
        }