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); } } }