internal void UpdateArtworkMetadata()
        {
            var currentSong             = NepApp.SongManager.CurrentSong;
            var currentSongWithMetadata = currentSong as ExtendedSongMetadata;

            SongMetadata = currentSong;

            //Handle backgrounds
            if (currentSongWithMetadata != null)
            {
                //album artwork
                Uri albumArtUri = null;

                if (currentSongWithMetadata.Album != null && albumArtUri == null)
                {
                    if (!string.IsNullOrWhiteSpace(currentSongWithMetadata.Album?.AlbumCoverUrl))
                    {
                        albumArtUri = new Uri(currentSongWithMetadata.Album?.AlbumCoverUrl);
                    }
                }

                artworkUriDictionary[NepAppSongMetadataBackground.Album] = albumArtUri;
                if (albumArtUri != null)
                {
                    SongArtworkAvailable?.Invoke(this, new NepAppSongMetadataArtworkEventArgs(NepAppSongMetadataBackground.Album, albumArtUri, currentSong));
                }
                else
                {
                    NoSongArtworkAvailable?.Invoke(this, new NepAppSongMetadataArtworkEventArgs(NepAppSongMetadataBackground.Album, null, currentSong));
                }


                //artist artwork
                Uri artistArtUri = null;
                if (!string.IsNullOrWhiteSpace(currentSongWithMetadata.ArtistInfo?.ArtistImage))
                {
                    artistArtUri = new Uri(currentSongWithMetadata.ArtistInfo?.ArtistImage);
                }
                else if (currentSongWithMetadata.FanArtTVBackgroundUrl != null)
                {
                    //from FanArt.TV
                    artistArtUri = currentSongWithMetadata.FanArtTVBackgroundUrl;
                }
                else if (currentSongWithMetadata.JPopAsiaArtistInfo != null)
                {
                    //from JPopAsia
                    if (currentSongWithMetadata.JPopAsiaArtistInfo.ArtistImageUrl != null)
                    {
                        artistArtUri = currentSongWithMetadata.JPopAsiaArtistInfo.ArtistImageUrl;
                    }
                }
                artworkUriDictionary[NepAppSongMetadataBackground.Artist] = artistArtUri;
                if (artistArtUri != null)
                {
                    SongArtworkAvailable?.Invoke(this, new NepAppSongMetadataArtworkEventArgs(NepAppSongMetadataBackground.Artist, artistArtUri, currentSong));
                }
                else
                {
                    NoSongArtworkAvailable?.Invoke(this, new NepAppSongMetadataArtworkEventArgs(NepAppSongMetadataBackground.Artist, null, currentSong));
                }
            }
            else
            {
                ResetArtworkInternal();
            }

            SongArtworkProcessingComplete?.Invoke(this, EventArgs.Empty);
        }
        internal void ResetArtwork()
        {
            ResetArtworkInternal();

            SongArtworkProcessingComplete?.Invoke(this, EventArgs.Empty);
        }