Browse Source

Remove limit of 7 home sections

Patrick Barron 5 years ago
parent
commit
f3263c7d8e
1 changed files with 12 additions and 7 deletions
  1. 12 7
      MediaBrowser.Api/DisplayPreferencesService.cs

+ 12 - 7
MediaBrowser.Api/DisplayPreferencesService.cs

@@ -1,10 +1,12 @@
 using System;
+using System.Linq;
 using Jellyfin.Data.Entities;
 using Jellyfin.Data.Enums;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Net;
 using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.Querying;
 using MediaBrowser.Model.Services;
 using Microsoft.Extensions.Logging;
 
@@ -135,16 +137,19 @@ namespace MediaBrowser.Api
             prefs.ScrollDirection = request.ScrollDirection;
             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);