You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jellyfin/MediaBrowser.UI/Converters/WatchedVisibilityConverter.cs

118 lines
3.3 KiB

using MediaBrowser.Model.DTO;
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace MediaBrowser.UI.Converters
{
public class WatchedVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var item = value as DtoBaseItem;
if (item == null)
{
return null;
}
if (item.IsFolder)
{
return item.PlayedPercentage.HasValue && item.PlayedPercentage.Value == 100 ? Visibility.Visible : Visibility.Collapsed;
}
if (item.UserData == null)
{
return Visibility.Collapsed;
}
return item.UserData.PlayCount == 0 ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class FavoriteVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var item = value as DtoBaseItem;
if (item == null)
{
return null;
}
if (item.UserData == null)
{
return Visibility.Collapsed;
}
return item.UserData.IsFavorite ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class LikeVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var item = value as DtoBaseItem;
if (item == null)
{
return null;
}
if (item.UserData == null)
{
return Visibility.Collapsed;
}
var userdata = item.UserData;
return userdata.Likes.HasValue && userdata.Likes.Value && !userdata.IsFavorite ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class DislikeVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var item = value as DtoBaseItem;
if (item == null)
{
return null;
}
if (item.UserData == null)
{
return Visibility.Collapsed;
}
var userdata = item.UserData;
return userdata.Likes.HasValue && !userdata.Likes.Value && !userdata.IsFavorite ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}