예제 #1
0
        public async void OnScanCompleted(string path, Uri uri)
        {
            System.Console.WriteLine("&Scan Completed with path = " + path + " and uri = " + uri.ToString());

            int position = queue.FindIndex(x => x.Path == path && x.State == DownloadState.Playlist);

            if (position != -1)
            {
                PlaylistManager.InsertToLocalPlaylist(await PlaylistManager.GetOrCreateByName(queue[position].PlaylistName), await LocalManager.GetSong(path), position + 1);
                queue[position].State = DownloadState.Completed;

                if (!queue.Exists(x => x.State == DownloadState.None || x.State == DownloadState.Downloading || x.State == DownloadState.Initialization || x.State == DownloadState.MetaData || x.State == DownloadState.Playlist))
                {
                    StopForeground(true);
                    DownloadQueue.instance?.Finish();
                    queue.Clear();
                }
                else
                {
                    UpdateList(position);
                }
            }
        }