示例#1
0
        private async Task <IEnumerable <Audio> > LoadRecommendedTracks()
        {
            if (RecommendedTracksVK.Any())
            {
                return(new List <Audio>());
            }

            int trackToLoad = 10;

#if WINDOWS_UWP
            trackToLoad = 15;
#endif

            var response = await _inTouchWrapper.ExecuteRequest(_inTouch.Audio.GetRecommendations(count: trackToLoad));

            if (response.IsError)
            {
                throw new Exception(response.Error.ToString());
            }

#if WINDOWS_UWP
            var tracks = new List <Audio>(response.Data.Items);
            tracks.Add(new Audio
            {
                Title = VKSAVER_SEE_ALSO_TEXT
            });
            return(tracks);
#else
            return(response.Data.Items);
#endif
        }
示例#2
0
        private async void OnPlayRecommendedTracksCommand(Audio track)
        {
            if (track.Title == VKSAVER_SEE_ALSO_TEXT)
            {
                OnGoToRecommendedViewCommand();
                return;
            }

            await _playerService.PlayNewTracks(RecommendedTracksVK
                                               .Where(a => a.Title != VKSAVER_SEE_ALSO_TEXT)
                                               .Select(a => a.ToPlayerTrack()),
                                               RecommendedTracksVK.IndexOf(track));

#if !WINDOWS_UWP
            _navigationService.Navigate("PlayerView", null);
#endif
        }
示例#3
0
        public override async void OnNavigatedTo(NavigatedToEventArgs e, Dictionary <string, object> viewModelState)
        {
            _backgroundLoaded = false;
            if (viewModelState.Count > 0)
            {
#if !WINDOWS_UWP
                FirstTrack = JsonConvert.DeserializeObject <VKAudioWithImage>(
                    viewModelState[nameof(FirstTrack)].ToString());
#endif

                UserTracks = JsonConvert.DeserializeObject <SimpleStateSupportCollection <Audio> >(
                    viewModelState[nameof(UserTracks)].ToString());
                TopArtistsLF = JsonConvert.DeserializeObject <SimpleStateSupportCollection <LastArtist> >(
                    viewModelState[nameof(TopArtistsLF)].ToString(), _lastImageSetConverter);
                RecommendedTracksVK = JsonConvert.DeserializeObject <SimpleStateSupportCollection <Audio> >(
                    viewModelState[nameof(RecommendedTracksVK)].ToString());

                UserTracks.LoadItems          = LoadUserTracks;
                TopArtistsLF.LoadItems        = LoadTopArtists;
                RecommendedTracksVK.LoadItems = LoadRecommendedTracks;
            }
            else
            {
                UserTracks          = new SimpleStateSupportCollection <Audio>(LoadUserTracks);
                TopArtistsLF        = new SimpleStateSupportCollection <LastArtist>(LoadTopArtists);
                RecommendedTracksVK = new SimpleStateSupportCollection <Audio>(LoadRecommendedTracks);
            }

            UserTracks.Load();
            TopArtistsLF.Load();
            RecommendedTracksVK.Load();

#if !WINDOWS_UWP
            TryLoadBackground(FirstTrack);
#endif

            base.OnNavigatedTo(e, viewModelState);

            await Task.Delay(2000);

            _adsService.ActivateAds();
        }
示例#4
0
        public override void OnNavigatingFrom(NavigatingFromEventArgs e, Dictionary <string, object> viewModelState, bool suspending)
        {
            if (e.NavigationMode == NavigationMode.New)
            {
#if !WINDOWS_UWP
                viewModelState[nameof(FirstTrack)] = JsonConvert.SerializeObject(FirstTrack);
#endif
                viewModelState[nameof(UserTracks)]          = JsonConvert.SerializeObject(UserTracks.ToList());
                viewModelState[nameof(TopArtistsLF)]        = JsonConvert.SerializeObject(TopArtistsLF.ToList(), _lastImageSetConverter);
                viewModelState[nameof(RecommendedTracksVK)] = JsonConvert.SerializeObject(RecommendedTracksVK.ToList());
            }

            base.OnNavigatingFrom(e, viewModelState, suspending);
        }