Ejemplo n.º 1
0
        private async void OnExecuteTracksListItemCommand(object item)
        {
            if (item is AudioAlbum)
            {
                _navigationService.Navigate("AudioAlbumView", JsonConvert.SerializeObject(item));
            }
            else if (item is Audio)
            {
                _appLoaderService.Show();
                var audios = AudioGroup.FirstOrDefault(g => (string)g.Key == "audios");
                if (audios == null)
                {
                    throw new Exception("Не найдена группа аудиозаписей.");
                }

                _playerService.IsShuffleMode = false;
                await _playerService.PlayNewTracks(audios.Cast <Audio>().ToPlayerTracks(),
                                                   audios.IndexOf(item));

#if !WINDOWS_UWP
                _navigationService.Navigate("PlayerView", null);
#endif

                _appLoaderService.Hide();
            }
            else if (item is Video)
            {
                _navigationService.Navigate("VideoInfoView", JsonConvert.SerializeObject(item));
            }
            else if (item is VideoAlbum)
            {
                _navigationService.Navigate("VideoAlbumView", JsonConvert.SerializeObject(item));
            }
            else if (item is Doc)
            {
                var doc = (Doc)item;
                if (doc.Ext == "gif" || doc.Ext == "png" || doc.Ext == "jpg")
                {
                    await Launcher.LaunchUriAsync(new Uri(doc.Url));
                }
                else
                {
                    await _downloadsServiceHelper.StartDownloadingAsync(doc.ToDownloadable());
                }
            }
        }
Ejemplo n.º 2
0
        private async void OnPlayShuffleCommand()
        {
            _appLoaderService.Show();
            var audios = AudioGroup.FirstOrDefault(g => (string)g.Key == "audios");

            if (audios == null)
            {
                throw new Exception("Не найдена группа аудиозаписей.");
            }

            _playerService.IsShuffleMode = true;
            await _playerService.PlayNewTracks(audios.Cast <Audio>().ToPlayerTracks(), 0);

#if !WINDOWS_UWP
            _navigationService.Navigate("PlayerView", null);
#endif
            _appLoaderService.Hide();
        }
Ejemplo n.º 3
0
        private bool CanSelectionMode()
        {
            switch (LastPivotIndex)
            {
            case 0:
                var audios = AudioGroup.FirstOrDefault(g => (string)g.Key == "audios");
                if (audios != null && audios.Any())
                {
                    return(true);
                }
                break;

            case 2:
                return(Documents != null && Documents.Any());
            }

            return(false);
        }
Ejemplo n.º 4
0
        private void RemoveDeletedItems(List <object> items)
        {
            var audios = AudioGroup.FirstOrDefault(g => (string)g.Key == "audios");
            var videos = VideoGroup.FirstOrDefault(g => (string)g.Key == "videos");

            foreach (var item in items)
            {
                if (item is Audio)
                {
                    audios.Remove(item);
                }
                else if (item is Video)
                {
                    videos.Remove(item);
                }
                else if (item is Doc)
                {
                    Documents.Remove((Doc)item);
                }
            }
        }
Ejemplo n.º 5
0
        public override void OnNavigatingFrom(NavigatingFromEventArgs e, Dictionary <string, object> viewModelState, bool suspending)
        {
            if (e.NavigationMode == NavigationMode.Back && _appLoaderService.IsShowed)
            {
                e.Cancel          = true;
                _cancelOperations = true;
                _appLoaderService.Hide();
                return;
            }

            if (e.NavigationMode == NavigationMode.Back && IsSelectionMode)
            {
                SetDefaultMode();
                e.Cancel = true;
                return;
            }

            if (e.NavigationMode == NavigationMode.New)
            {
                var audioAlbums = AudioGroup.FirstOrDefault(g => (string)g.Key == "albums");
                var audios      = AudioGroup.FirstOrDefault(g => (string)g.Key == "audios");

                if (audios != null)
                {
                    audios.CollectionChanged -= Downloadable_CollectionChanged;
                    viewModelState["Audios"]  = JsonConvert.SerializeObject(audios.ToList());
                }
                if (audioAlbums != null)
                {
                    viewModelState["AudioAlbums"] = JsonConvert.SerializeObject(audioAlbums.ToList());
                }

                var videoAlbums = VideoGroup.FirstOrDefault(g => (string)g.Key == "albums");
                var videos      = VideoGroup.FirstOrDefault(g => (string)g.Key == "videos");

                if (videos != null)
                {
                    viewModelState["Videos"] = JsonConvert.SerializeObject(videos.ToList());
                }
                if (videoAlbums != null)
                {
                    viewModelState["VideoAlbums"] = JsonConvert.SerializeObject(videoAlbums.ToList());
                }

                Documents.CollectionChanged -= Downloadable_CollectionChanged;

                viewModelState[nameof(Documents)]          = JsonConvert.SerializeObject(Documents.ToList());
                viewModelState[nameof(LastPivotIndex)]     = LastPivotIndex;
                viewModelState[nameof(PageTitle)]          = PageTitle;
                viewModelState[nameof(_audiosOffset)]      = _audiosOffset;
                viewModelState[nameof(_audioAlbumsOffset)] = _audioAlbumsOffset;
                viewModelState[nameof(_videosOffset)]      = _videosOffset;
                viewModelState[nameof(_videoAlbumsOffset)] = _videoAlbumsOffset;
                viewModelState[nameof(_docsOffset)]        = _docsOffset;

                viewModelState[nameof(AudiosScrollPosition)] = AudiosScrollPosition;
                viewModelState[nameof(VideosScrollPosition)] = VideosScrollPosition;
                viewModelState[nameof(DocsScrollPosition)]   = DocsScrollPosition;
            }

            if (!suspending)
            {
                PrimaryItems.Clear();
                SecondaryItems.Clear();
                SelectedItems.Clear();
            }

            base.OnNavigatingFrom(e, viewModelState, suspending);
        }
Ejemplo n.º 6
0
        private async void OnDeleteCommand(object obj)
        {
            _appLoaderService.Show(String.Format(_locService["AppLoader_DeletingItem"], obj.ToString()));

            bool isSuccess = false;

            try
            {
                isSuccess = await DeleteObject(obj);
            }
            catch (Exception) { }

            if (obj is Audio)
            {
                if (!isSuccess)
                {
                    _dialogsService.Show(_locService["Message_AudioDeleteError_Text"],
                                         _locService["Message_AudioDeleteError_Title"]);
                }
                else
                {
                    var audios = AudioGroup.FirstOrDefault(g => (string)g.Key == "audios");
                    audios?.Remove(obj);
                }
            }
            else if (obj is Video)
            {
                if (!isSuccess)
                {
                    _dialogsService.Show(_locService["Message_VideoDeleteError_Text"],
                                         _locService["Message_VideoDeleteError_Title"]);
                }
                else
                {
                    var videos = VideoGroup.FirstOrDefault(g => (string)g.Key == "videos");
                    videos?.Remove(obj);
                }
            }
            else if (obj is Doc)
            {
                if (!isSuccess)
                {
                    _dialogsService.Show(_locService["Message_DocDeleteError_Text"],
                                         _locService["Message_DocDeleteError_Title"]);
                }
                else
                {
                    Documents.Remove((Doc)obj);
                }
            }
            else if (obj is AudioAlbum)
            {
                if (!isSuccess)
                {
                    _dialogsService.Show(_locService["Message_AudioAlbumDeleteError_Text"],
                                         _locService["Message_AudioAlbumDeleteError_Title"]);
                }
                else
                {
                    var audioAlbums = AudioGroup.FirstOrDefault(g => (string)g.Key == "albums");
                    audioAlbums?.Remove(obj);
                }
            }
            else if (obj is VideoAlbum)
            {
                if (!isSuccess)
                {
                    _dialogsService.Show(_locService["Message_VideoAlbumDeleteError_Text"],
                                         _locService["Message_VideoAlbumDeleteError_Title"]);
                }
                else
                {
                    var videoAlbums = VideoGroup.FirstOrDefault(g => (string)g.Key == "albums");
                    videoAlbums?.Remove(obj);
                }
            }

            _appLoaderService.Hide();
        }