Kaynağa Gözat

fix music album image inheritance

Luke Pulverenti 8 yıl önce
ebeveyn
işleme
cc73830cd6

+ 4 - 0
Emby.Server.Core/ApplicationHost.cs

@@ -548,6 +548,8 @@ namespace Emby.Server.Core
             RegisterSingleInstance(UserDataManager);
 
             UserRepository = GetUserRepository();
+            // This is only needed for disposal purposes. If removing this, make sure to have the manager handle disposing it
+            RegisterSingleInstance(UserRepository);
 
             var displayPreferencesRepo = new SqliteDisplayPreferencesRepository(LogManager.GetLogger("SqliteDisplayPreferencesRepository"), JsonSerializer, ApplicationPaths, MemoryStreamFactory);
             DisplayPreferencesRepository = displayPreferencesRepo;
@@ -678,6 +680,8 @@ namespace Emby.Server.Core
 
             var sharingRepo = new SharingRepository(LogManager.GetLogger("SharingRepository"), ApplicationPaths);
             sharingRepo.Initialize();
+            // This is only needed for disposal purposes. If removing this, make sure to have the manager handle disposing it
+            RegisterSingleInstance<ISharingRepository>(sharingRepo);
             RegisterSingleInstance<ISharingManager>(new SharingManager(sharingRepo, ServerConfigurationManager, LibraryManager, this));
 
             var activityLogRepo = GetActivityLogRepository();

+ 4 - 1
Emby.Server.Implementations/Data/BaseSqliteRepository.cs

@@ -286,7 +286,10 @@ namespace Emby.Server.Implementations.Data
                         {
                             if (_connection != null)
                             {
-                                _connection.Close();
+                                using (_connection)
+                                {
+                                    
+                                }
                                 _connection = null;
                             }
 

+ 16 - 2
Emby.Server.Implementations/Dto/DtoService.cs

@@ -1504,6 +1504,20 @@ namespace Emby.Server.Implementations.Dto
             }
         }
 
+        private BaseItem GetImageDisplayParent(BaseItem item)
+        {
+            var musicAlbum = item as MusicAlbum;
+            if (musicAlbum != null)
+            {
+                var artist = musicAlbum.MusicArtist;
+                if (artist != null)
+                {
+                    return artist;
+                }
+            }
+            return item.GetParent();
+        }
+
         private void AddInheritedImages(BaseItemDto dto, BaseItem item, DtoOptions options, BaseItem owner)
         {
             if (!item.SupportsInheritedParentImages)
@@ -1528,7 +1542,7 @@ namespace Emby.Server.Implementations.Dto
             var isFirst = true;
 
             while (((!dto.HasLogo && logoLimit > 0) || (!dto.HasArtImage && artLimit > 0) || (!dto.HasThumb && thumbLimit > 0) || parent is Series) &&
-                (parent = parent ?? (isFirst ? item.GetParent() ?? owner : parent)) != null)
+                (parent = parent ?? (isFirst ? GetImageDisplayParent(item) ?? owner : parent)) != null)
             {
                 if (parent == null)
                 {
@@ -1585,7 +1599,7 @@ namespace Emby.Server.Implementations.Dto
                     break;
                 }
 
-                parent = parent.GetParent();
+                parent = GetImageDisplayParent(parent);
             }
         }
 

+ 6 - 0
MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs

@@ -32,6 +32,12 @@ namespace MediaBrowser.Controller.Entities.Audio
             get { return true; }
         }
 
+        [IgnoreDataMember]
+        public override bool SupportsInheritedParentImages
+        {
+            get { return true; }
+        }
+
         [IgnoreDataMember]
         public MusicArtist MusicArtist
         {

+ 5 - 0
MediaBrowser.Controller/Entities/Movies/BoxSet.cs

@@ -202,5 +202,10 @@ namespace MediaBrowser.Controller.Entities.Movies
 
             return false;
         }
+
+        public override bool IsVisibleStandalone(User user)
+        {
+            return IsVisible(user);
+        }
     }
 }

+ 11 - 1
MediaBrowser.ServerApplication/Updates/ApplicationUpdater.cs

@@ -47,7 +47,17 @@ namespace MediaBrowser.ServerApplication.Updates
                     product, archive, Process.GetCurrentProcess().Id, version, restartServiceName ?? string.Empty, appPaths.ProgramDataPath, MainStartup.ApplicationPath, systemPath);
 
             logger.Info("Args: {0}", args);
-            Process.Start(tempUpdater, args);
+
+            Process.Start(new ProcessStartInfo
+            {
+                FileName = tempUpdater,
+                Arguments = args,
+                UseShellExecute = false,
+                CreateNoWindow = true,
+                ErrorDialog = false,
+                WindowStyle = ProcessWindowStyle.Hidden,
+                WorkingDirectory = Path.GetDirectoryName(tempUpdater)
+            });
 
             // That's it.  The installer will do the work once we exit
         }