public override async Task NavigateTo(IVLCStorageItem storageItem)
        {
            var item = storageItem as VLCStorageFolder;

            if (item != null)
            {
                BackStack.Add(item);
                var _ = Task.Run(async() => await GetFiles());
            }
            else
            {
                var vlcFile = storageItem as VLCStorageFile;
                if (vlcFile == null)
                {
                    return;
                }
                var file = vlcFile.StorageItem as StorageFile;
                if (VLCFileExtensions.AudioExtensions.Contains(file.FileType))
                {
                    await Locator.MediaPlaybackViewModel.PlayAudioFile(file);
                }
                else if (VLCFileExtensions.VideoExtensions.Contains(file.FileType))
                {
                    await Locator.MediaPlaybackViewModel.PlayVideoFile(file);
                }
            }
            OnPropertyChanged(nameof(CurrentFolderName));
        }
        public override async void Execute(object parameter)
        {
            IVLCStorageItem storageItem = ((ItemClickEventArgs)parameter).ClickedItem as IVLCStorageItem;

            if (Locator.NavigationService.CurrentPage == VLCPage.MainPageFileExplorer)
            {
                await Locator.FileExplorerVM.CurrentStorageVM.NavigateTo(storageItem);
            }
        }
Exemplo n.º 3
0
        public override async Task GetFiles()
        {
            try
            {
                await DispatchHelper.InvokeInUIThread(CoreDispatcherPriority.Normal, () =>
                {
                    StorageItems.Clear();
                    IsFolderEmpty  = false;
                    IsLoadingFiles = true;
                });

                var currentMedia = BackStack.Last().Media;
                if (currentMedia == null)
                {
                    return;
                }
                var mediaList = await Locator.MediaLibrary.DiscoverMediaList(currentMedia);

                for (int i = 0; i < mediaList.count(); i++)
                {
                    var             media       = mediaList.itemAtIndex(i);
                    IVLCStorageItem storageItem = null;
                    if (media.type() == MediaType.Directory)
                    {
                        storageItem = new VLCStorageFolder(media);
                    }
                    else if (media.type() == MediaType.File)
                    {
                        storageItem = new VLCStorageFile(media);
                    }
                    if (storageItem == null)
                    {
                        return;
                    }
                    await DispatchHelper.InvokeInUIThread(CoreDispatcherPriority.Normal, () => StorageItems.Add(storageItem));
                }
                await DispatchHelper.InvokeInUIThread(CoreDispatcherPriority.Low, () =>
                {
                    OnPropertyChanged(nameof(StorageItems));
                    IsFolderEmpty  = !StorageItems.Any();
                    IsLoadingFiles = false;
                });
            }
            catch (Exception e)
            {
                Debug.WriteLine($"Exception when getting network files {e.ToString()}");
            }
        }
Exemplo n.º 4
0
        public override async void Execute(object parameter)
        {
            var clickedItem = ((ItemClickEventArgs)parameter).ClickedItem;

            // For some reason, when clicking early while the page is loading, it seems we can click "null items"
            if (clickedItem == null)
            {
                return;
            }
            IVLCStorageItem storageItem = clickedItem as IVLCStorageItem;

            if (Locator.NavigationService.CurrentPage == VLCPage.MainPageFileExplorer)
            {
                await Locator.FileExplorerVM.CurrentStorageVM.NavigateTo(storageItem);
            }
        }
Exemplo n.º 5
0
        public override async Task NavigateTo(IVLCStorageItem storageItem)
        {
            var item = storageItem as VLCStorageFolder;

            if (item != null)
            {
                BackStack.Add(item);
                await GetFiles();
            }
            else
            {
                var file = storageItem as VLCStorageFile;
                // TODO : Difference between audio and video, here ? Hint: i don't think so
                var video = MediaLibraryHelper.GetStreamItem(file);
                await Locator.PlaybackService.SetPlaylist(new List <IMediaItem> {
                    video
                });
            }
            OnPropertyChanged(nameof(CurrentFolderName));
        }
Exemplo n.º 6
0
 public abstract Task NavigateTo(IVLCStorageItem storageItem);