|
@@ -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);
|