Ejemplo n.º 1
0
        public void Activate(object parameter, Dictionary <string, object> state)
        {
            //App.Current.Suspending += ForegroundApp_Suspending;
            //App.Current.Resuming += ForegroundApp_Resuming;

            index = CurrentSongIndex;
            if (index > -1)
            {
                SongItem song = Library.Current.NowPlayingList.ElementAt(index);
                CurrentNr  = index + 1;
                SongsCount = Library.Current.NowPlayingList.Count;
                songId     = song.SongId;
                Title      = song.Title;
                Artist     = song.Artist;
                Album      = song.Album;
                fromDB     = true;
                Rating     = song.Rating;
                //PlaybackRate = 100.0;
                SetCover(song.Path);

                SetupTimer();

                RepeatButtonContent     = Repeat.CurrentStateContent();
                RepeatButtonForeground  = Repeat.CurrentStateColor();
                ShuffleButtonForeground = Shuffle.CurrentStateColor();

                if (IsMyBackgroundTaskRunning)
                {
                    //Library.Current.Save("BG running");

                    AddMediaPlayerEventHandlers();

                    if (BackgroundMediaPlayer.Current.CurrentState == MediaPlayerState.Playing)
                    {
                        PlayButtonContent = "\uE17e\uE103";//pause
                    }

                    object r = ApplicationSettingsHelper.ReadResetSettingsValue(AppConstants.ResumePlayback);
                    if (r != null)
                    {
                        SendMessage(AppConstants.ResumePlayback);
                        TimeSpan t        = BackgroundMediaPlayer.Current.NaturalDuration;
                        double   absvalue = (int)Math.Round(t.TotalSeconds - 0.5, MidpointRounding.AwayFromZero);
                        ProgressBarMaxValue = absvalue;
                        EndTime             = BackgroundMediaPlayer.Current.NaturalDuration;
                        PlaybackRate        = BackgroundMediaPlayer.Current.PlaybackRate * 100.0;
                    }
                    else if (NextPlayer.Common.SuspensionManager.SessionState.ContainsKey("lyrics"))//mozna chyba zmienic na Dict<> state
                    {
                        NextPlayer.Common.SuspensionManager.SessionState.Remove("lyrics");
                    }
                    else if (NextPlayer.Common.SuspensionManager.SessionState.ContainsKey("nplist"))//mozna chyba zmienic na Dict<> state
                    {
                        NextPlayer.Common.SuspensionManager.SessionState.Remove("nplist");
                    }
                    else if (NextPlayer.Common.SuspensionManager.SessionState.ContainsKey("mainpage"))//mozna chyba zmienic na Dict<> state
                    {
                        NextPlayer.Common.SuspensionManager.SessionState.Remove("mainpage");

                        TimeSpan t        = BackgroundMediaPlayer.Current.NaturalDuration;
                        double   absvalue = (int)Math.Round(t.TotalSeconds - 0.5, MidpointRounding.AwayFromZero);
                        ProgressBarMaxValue = absvalue;
                        EndTime             = BackgroundMediaPlayer.Current.NaturalDuration;
                        PlaybackRate        = BackgroundMediaPlayer.Current.PlaybackRate * 100.0;
                    }
                    else
                    {
                        SendMessage(AppConstants.NowPlayingListChanged);
                        SendMessage(AppConstants.StartPlayback, CurrentSongIndex);
                    }
                }
                else
                {
                    if (NextPlayer.Common.SuspensionManager.SessionState.ContainsKey("mainpage"))
                    {
                        NextPlayer.Common.SuspensionManager.SessionState.Remove("mainpage");
                    }
                    object r = ApplicationSettingsHelper.ReadResetSettingsValue(AppConstants.ResumePlayback);
                    //if (r != null)
                    //{
                    //    StartBackgroundAudioTask(AppConstants.ResumePlayback, CurrentSongIndex);
                    //}
                    //else
                    //{
                    StartBackgroundAudioTask(AppConstants.StartPlayback, CurrentSongIndex);
                    //}
                }
                StartTimer();
            }
            else
            {
                navigationService.NavigateTo(ViewNames.MainView);
            }
            //if (parameter != null)
            //{

            //    if (parameter.GetType() == typeof(int))
            //    {
            //        songId = (int)parameter;
            //    }
            //}
        }