예제 #1
0
        public async Task InitializeAsync()
        {
            if (_initialized)
            {
                return;
            }
            _initialized = true;

            if (LocalSettingsHelper.LoadValue(CommonKeys.KeepScreenOn, false))
            {
                DisplayRequestHelper.RequestActive();
            }

            PlaylistsTitle = new ObservableCollection <string>((await Playlist.GetPlaylistsTitleAsync()));

            var lastUsedPlaylist = LocalSettingsHelper.LoadValue(CommonKeys.LastUsedPlaylist, PlaylistsTitle.FirstOrDefault());

            _selectedPlaylistTitle = PlaylistsTitle.SingleOrDefault(p => p.Equals(lastUsedPlaylist, StringComparison.OrdinalIgnoreCase)) ?? PlaylistsTitle.FirstOrDefault();
            RaisePropertyChanged(nameof(SelectedPlaylistTitle));
            await SwitchPlaylist(SelectedPlaylistTitle);

            if (ActivePlaylistViewModel == null)
            {
                return;
            }

            var lastPlayedSong = LocalSettingsHelper.LoadValue(CommonKeys.LastPlayedSong, string.Empty);

            if (string.IsNullOrEmpty(lastPlayedSong))
            {
                return;
            }

            var songs = ActivePlaylistViewModel.GetFlatSongs();

            if (songs.Count == 0)
            {
                return;
            }
            var targetSong = songs.FirstOrDefault(s => s.FileUriPath.Equals(lastPlayedSong, StringComparison.OrdinalIgnoreCase));

            if (targetSong == null)
            {
                return;
            }

            PlayerViewModel.PlaylistTitle = ActivePlaylistViewModel.Title;

            if (((App)Application.Current).IsFileActivated)
            {
                return;
            }

            PlayerViewModel.AutoPlay = LocalSettingsHelper.LoadValue(CommonKeys.AutoPlay, false);
            PlayerViewModel.Play(songs, songs.IndexOf(targetSong));
        }
 void ExitKeepDisplay()
 {
     DisplayRequestHelper.StopKeepDisplay();
 }
        void SetKeepDisplayIfEnable()
        {
            ExitKeepDisplay();

            DisplayRequestHelper.RequestKeepDisplay();
        }