fixed client type display for ios. also fixed display preferences saving.

This commit is contained in:
LukePulverenti
2013-03-17 23:10:21 -04:00
parent c1d38106c7
commit cf61ac0264
20 changed files with 81 additions and 168 deletions

View File

@@ -35,7 +35,7 @@ namespace MediaBrowser.Controller.Entities
/// Allow different display preferences for each collection folder
/// </summary>
/// <value>The display prefs id.</value>
public override Guid DisplayPrefsId
public override Guid DisplayPreferencesId
{
get
{

View File

@@ -64,7 +64,7 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
/// <value>The display prefs id.</value>
[IgnoreDataMember]
public virtual Guid DisplayPrefsId
public virtual Guid DisplayPreferencesId
{
get
{
@@ -76,35 +76,35 @@ namespace MediaBrowser.Controller.Entities
/// <summary>
/// The _display prefs
/// </summary>
private IEnumerable<DisplayPreferences> _displayPrefs;
private IEnumerable<DisplayPreferences> _displayPreferences;
/// <summary>
/// The _display prefs initialized
/// </summary>
private bool _displayPrefsInitialized;
private bool _displayPreferencesInitialized;
/// <summary>
/// The _display prefs sync lock
/// </summary>
private object _displayPrefsSyncLock = new object();
private object _displayPreferencesSyncLock = new object();
/// <summary>
/// Gets the display prefs.
/// </summary>
/// <value>The display prefs.</value>
[IgnoreDataMember]
public IEnumerable<DisplayPreferences> DisplayPrefs
public IEnumerable<DisplayPreferences> DisplayPreferences
{
get
{
// Call ToList to exhaust the stream because we'll be iterating over this multiple times
LazyInitializer.EnsureInitialized(ref _displayPrefs, ref _displayPrefsInitialized, ref _displayPrefsSyncLock, () => Kernel.Instance.DisplayPreferencesRepository.RetrieveDisplayPrefs(this).ToList());
return _displayPrefs;
LazyInitializer.EnsureInitialized(ref _displayPreferences, ref _displayPreferencesInitialized, ref _displayPreferencesSyncLock, () => Kernel.Instance.DisplayPreferencesRepository.RetrieveDisplayPreferences(this).ToList());
return _displayPreferences;
}
private set
{
_displayPrefs = value;
_displayPreferences = value;
if (value == null)
{
_displayPrefsInitialized = false;
_displayPreferencesInitialized = false;
}
}
}
@@ -116,29 +116,29 @@ namespace MediaBrowser.Controller.Entities
/// <param name="createIfNull">if set to <c>true</c> [create if null].</param>
/// <returns>DisplayPreferences.</returns>
/// <exception cref="System.ArgumentNullException"></exception>
public DisplayPreferences GetDisplayPrefs(User user, bool createIfNull)
public DisplayPreferences GetDisplayPreferences(User user, bool createIfNull)
{
if (user == null)
{
throw new ArgumentNullException();
}
if (DisplayPrefs == null)
if (DisplayPreferences == null)
{
if (!createIfNull)
{
return null;
}
AddOrUpdateDisplayPrefs(user, new DisplayPreferences { UserId = user.Id });
AddOrUpdateDisplayPreferences(user, new DisplayPreferences { UserId = user.Id });
}
var data = DisplayPrefs.FirstOrDefault(u => u.UserId == user.Id);
var data = DisplayPreferences.FirstOrDefault(u => u.UserId == user.Id);
if (data == null && createIfNull)
{
data = new DisplayPreferences { UserId = user.Id };
AddOrUpdateDisplayPrefs(user, data);
AddOrUpdateDisplayPreferences(user, data);
}
return data;
@@ -150,7 +150,7 @@ namespace MediaBrowser.Controller.Entities
/// <param name="user">The user.</param>
/// <param name="data">The data.</param>
/// <exception cref="System.ArgumentNullException"></exception>
public void AddOrUpdateDisplayPrefs(User user, DisplayPreferences data)
public void AddOrUpdateDisplayPreferences(User user, DisplayPreferences data)
{
if (user == null)
{
@@ -164,15 +164,15 @@ namespace MediaBrowser.Controller.Entities
data.UserId = user.Id;
if (DisplayPrefs == null)
if (DisplayPreferences == null)
{
DisplayPrefs = new[] { data };
DisplayPreferences = new[] { data };
}
else
{
var list = DisplayPrefs.Where(u => u.UserId != user.Id).ToList();
var list = DisplayPreferences.Where(u => u.UserId != user.Id).ToList();
list.Add(data);
DisplayPrefs = list;
DisplayPreferences = list;
}
}

View File

@@ -175,7 +175,7 @@ namespace MediaBrowser.Controller.Library
if (item.IsFolder && fields.Contains(ItemFields.DisplayPreferences))
{
dto.DisplayPreferences = ((Folder)item).GetDisplayPrefs(user, false) ?? new DisplayPreferences { UserId = user.Id };
dto.DisplayPreferences = ((Folder)item).GetDisplayPreferences(user, false) ?? new DisplayPreferences { UserId = user.Id };
}
if (item.IsFolder)

View File

@@ -73,7 +73,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="deviceName">Name of the device.</param>
/// <returns>Task.</returns>
/// <exception cref="System.ArgumentNullException">user</exception>
Task LogUserActivity(User user, ClientType clientType, string deviceId, string deviceName);
Task LogUserActivity(User user, string clientType, string deviceId, string deviceName);
/// <summary>
/// Refreshes metadata for each user
@@ -128,7 +128,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="deviceId">The device id.</param>
/// <param name="deviceName">Name of the device.</param>
/// <exception cref="System.ArgumentNullException"></exception>
void OnPlaybackStart(User user, BaseItem item, ClientType clientType, string deviceId, string deviceName);
void OnPlaybackStart(User user, BaseItem item, string clientType, string deviceId, string deviceName);
/// <summary>
/// Used to report playback progress for an item
@@ -141,7 +141,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="deviceName">Name of the device.</param>
/// <returns>Task.</returns>
/// <exception cref="System.ArgumentNullException"></exception>
Task OnPlaybackProgress(User user, BaseItem item, long? positionTicks, ClientType clientType, string deviceId, string deviceName);
Task OnPlaybackProgress(User user, BaseItem item, long? positionTicks, string clientType, string deviceId, string deviceName);
/// <summary>
/// Used to report that playback has ended for an item
@@ -154,7 +154,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="deviceName">Name of the device.</param>
/// <returns>Task.</returns>
/// <exception cref="System.ArgumentNullException"></exception>
Task OnPlaybackStopped(User user, BaseItem item, long? positionTicks, ClientType clientType, string deviceId, string deviceName);
Task OnPlaybackStopped(User user, BaseItem item, long? positionTicks, string clientType, string deviceId, string deviceName);
/// <summary>
/// Saves user data for an item

View File

@@ -17,13 +17,13 @@ namespace MediaBrowser.Controller.Persistence
/// <param name="item">The item.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
Task SaveDisplayPrefs(Folder item, CancellationToken cancellationToken);
Task SaveDisplayPreferences(Folder item, CancellationToken cancellationToken);
/// <summary>
/// Gets display preferences for an item
/// </summary>
/// <param name="item">The item.</param>
/// <returns>IEnumerable{DisplayPreferences}.</returns>
IEnumerable<DisplayPreferences> RetrieveDisplayPrefs(Folder item);
IEnumerable<DisplayPreferences> RetrieveDisplayPreferences(Folder item);
}
}