From a23309eb9ba8e404b3ee479bf79a2402ee3da154 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 7 May 2013 21:17:41 -0400 Subject: [PATCH] fixed watched indicator for folders --- MediaBrowser.Controller/Dto/DtoBuilder.cs | 25 +++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index e9c472e42..e16fb6d94 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -167,21 +167,16 @@ namespace MediaBrowser.Controller.Dto /// The fields. private async Task AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, List fields) { - if (fields.Contains(ItemFields.UserData)) - { - var userData = await _userDataRepository.GetUserData(user.Id, item.GetUserDataKey()).ConfigureAwait(false); - - dto.UserData = GetUserItemDataDto(userData); - } - if (item.IsFolder && fields.Contains(ItemFields.DisplayPreferencesId)) { dto.DisplayPreferencesId = ((Folder)item).GetDisplayPreferencesId(user.Id).ToString(); } + var addUserData = fields.Contains(ItemFields.UserData); + if (item.IsFolder) { - if (fields.Contains(ItemFields.ItemCounts)) + if (fields.Contains(ItemFields.ItemCounts) || addUserData) { var folder = (Folder)item; @@ -191,6 +186,18 @@ namespace MediaBrowser.Controller.Dto await SetSpecialCounts(folder, user, dto, _userDataRepository).ConfigureAwait(false); } } + + if (addUserData) + { + var userData = await _userDataRepository.GetUserData(user.Id, item.GetUserDataKey()).ConfigureAwait(false); + + dto.UserData = GetUserItemDataDto(userData); + + if (item.IsFolder) + { + dto.UserData.Played = dto.PlayedPercentage.HasValue && dto.PlayedPercentage.Value >= 100; + } + } } /// @@ -567,7 +574,7 @@ namespace MediaBrowser.Controller.Dto // Incrememt totalPercentPlayed if (userdata != null) { - if (userdata.PlayCount > 0) + if (userdata.Played) { totalPercentPlayed += 100; }