| 
					
				 | 
			
			
				@@ -1,6 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #nullable disable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.IO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Linq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Threading; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -141,19 +142,15 @@ namespace MediaBrowser.Providers.MediaInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 && item.SupportsLocalMetadata 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 && !video.IsPlaceHolder) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!video.SubtitleFiles.SequenceEqual( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        _subtitleResolver.GetExternalFiles(video, directoryService, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .Select(info => info.Path).ToList(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        StringComparer.Ordinal)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var externalFiles = new HashSet<string>(_subtitleResolver.GetExternalFiles(video, directoryService, false).Select(info => info.Path), StringComparer.OrdinalIgnoreCase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!new HashSet<string>(video.SubtitleFiles, StringComparer.Ordinal).SetEquals(externalFiles)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     _logger.LogDebug("Refreshing {ItemPath} due to external subtitles change.", item.Path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!video.AudioFiles.SequenceEqual( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        _audioResolver.GetExternalFiles(video, directoryService, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            .Select(info => info.Path).ToList(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        StringComparer.Ordinal)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                externalFiles = new HashSet<string>(_audioResolver.GetExternalFiles(video, directoryService, false).Select(info => info.Path), StringComparer.OrdinalIgnoreCase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!new HashSet<string>(video.AudioFiles, StringComparer.Ordinal).SetEquals(externalFiles)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     _logger.LogDebug("Refreshing {ItemPath} due to external audio change.", item.Path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -161,14 +158,14 @@ namespace MediaBrowser.Providers.MediaInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (item is Audio audio 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                && item.SupportsLocalMetadata 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                && !audio.LyricFiles.SequenceEqual( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    _lyricResolver.GetExternalFiles(audio, directoryService, false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .Select(info => info.Path).ToList(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    StringComparer.Ordinal)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                && item.SupportsLocalMetadata) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                _logger.LogDebug("Refreshing {ItemPath} due to external lyrics change.", item.Path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var externalFiles = new HashSet<string>(_lyricResolver.GetExternalFiles(audio, directoryService, false).Select(info => info.Path), StringComparer.OrdinalIgnoreCase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!new HashSet<string>(audio.LyricFiles, StringComparer.Ordinal).SetEquals(externalFiles)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    _logger.LogDebug("Refreshing {ItemPath} due to external lyrics change.", item.Path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 |