aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/DisplayPreferencesService.cs19
1 files changed, 12 insertions, 7 deletions
diff --git a/MediaBrowser.Api/DisplayPreferencesService.cs b/MediaBrowser.Api/DisplayPreferencesService.cs
index e5dd03807..969bf564c 100644
--- a/MediaBrowser.Api/DisplayPreferencesService.cs
+++ b/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);