فهرست منبع

Remove limit of 7 home sections

Patrick Barron 5 سال پیش
والد
کامیت
f3263c7d8e
1فایلهای تغییر یافته به همراه12 افزوده شده و 7 حذف شده
  1. 12 7
      MediaBrowser.Api/DisplayPreferencesService.cs

+ 12 - 7
MediaBrowser.Api/DisplayPreferencesService.cs

@@ -1,10 +1,12 @@
 using System;
 using System;
+using System.Linq;
 using Jellyfin.Data.Entities;
 using Jellyfin.Data.Entities;
 using Jellyfin.Data.Enums;
 using Jellyfin.Data.Enums;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Net;
 using MediaBrowser.Controller.Net;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.Querying;
 using MediaBrowser.Model.Services;
 using MediaBrowser.Model.Services;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Logging;
 
 
@@ -135,16 +137,19 @@ namespace MediaBrowser.Api
             prefs.ScrollDirection = request.ScrollDirection;
             prefs.ScrollDirection = request.ScrollDirection;
             prefs.HomeSections.Clear();
             prefs.HomeSections.Clear();
 
 
-            for (int i = 0; i < 7; i++)
+            foreach (var key in request.CustomPrefs.Keys.Where(key => key.StartsWith("homesection")))
             {
             {
-                if (request.CustomPrefs.TryGetValue("homesection" + i, out var homeSection))
+                var order = int.Parse(key.Substring("homesection".Length));
+                if (!Enum.TryParse<HomeSectionType>(request.CustomPrefs[key], true, out var type))
                 {
                 {
-                    prefs.HomeSections.Add(new HomeSection
-                    {
-                        Order = i,
-                        Type = Enum.TryParse<HomeSectionType>(homeSection, true, out var type) ? type : defaults[i]
-                    });
+                    type = order < 7 ? defaults[order] : HomeSectionType.None;
                 }
                 }
+
+                prefs.HomeSections.Add(new HomeSection
+                {
+                    Order = order,
+                    Type = type
+                });
             }
             }
 
 
             _displayPreferencesManager.SaveChanges(prefs);
             _displayPreferencesManager.SaveChanges(prefs);