internal static string GetActivityListItemTitle(TraktActivity.Activity activity, ActivityView view = ActivityView.community)
{
if (activity == null)
return null;
string itemName = GetActivityItemName(activity);
if (string.IsNullOrEmpty(itemName))
return null;
string userName = activity.User == null ? "" : activity.User.Username;
string title = string.Empty;
if (string.IsNullOrEmpty(activity.Action) || string.IsNullOrEmpty(activity.Type))
return null;
var action = (ActivityAction)Enum.Parse(typeof(ActivityAction), activity.Action);
var type = (ActivityType)Enum.Parse(typeof(ActivityType), activity.Type);
switch (action)
{
case ActivityAction.watching:
title = string.Format(Translation.ActivityWatching, userName, itemName);
break;
case ActivityAction.scrobble:
if (activity.Plays() > 1)
{
title = string.Format(Translation.ActivityWatchedWithPlays, userName, itemName, activity.Plays());
}
else
{
title = string.Format(Translation.ActivityWatched, userName, itemName);
}
break;
case ActivityAction.checkin:
title = string.Format(Translation.ActivityCheckedIn, userName, itemName);
break;
case ActivityAction.seen:
if (type == ActivityType.episode && activity.Episodes.Count > 1)
{
title = string.Format(Translation.ActivitySeenEpisodes, userName, activity.Episodes.Count, itemName);
}
else
{
title = string.Format(Translation.ActivitySeen, userName, itemName);
}
break;
case ActivityAction.collection:
if (type == ActivityType.episode && activity.Episodes.Count > 1)
{
title = string.Format(Translation.ActivityCollectedEpisodes, userName, activity.Episodes.Count, itemName);
}
else
{
title = string.Format(Translation.ActivityCollected, userName, itemName);
}
break;
case ActivityAction.rating:
title = string.Format(Translation.ActivityRatingAdvanced, userName, itemName, activity.Rating);
break;
case ActivityAction.watchlist:
if (view != ActivityView.me)
{
title = string.Format(Translation.ActivityWatchlist, userName, itemName);
}
else
{
title = string.Format(Translation.ActivityYourWatchlist, userName, itemName);
}
break;
case ActivityAction.review:
title = string.Format(Translation.ActivityReview, userName, itemName);
break;
case ActivityAction.shout:
title = string.Format(Translation.ActivityShouts, userName, itemName);
break;
case ActivityAction.pause:
title = string.Format(Translation.ActivityPaused, userName, itemName, Math.Round(activity.Progress, 0));
break;
case ActivityAction.created: // created list
title = string.Format(Translation.ActivityCreatedList, userName, itemName);
break;
case ActivityAction.updated: // updated list
if (activity.List.ItemCount == 0)
{
title = string.Format(Translation.ActivityUpdatedList, userName, itemName);
}
else if (activity.List.ItemCount == 1)
{
title = string.Format(Translation.ActivityUpdatedListWithItemCountSingular, userName, itemName, 1);
}
else
{
title = string.Format(Translation.ActivityUpdatedListWithItemCount, userName, itemName, activity.List.ItemCount);
}
break;
case ActivityAction.item_added: // added item to list
title = string.Format(Translation.ActivityAddToList, userName, itemName, activity.List.Name);
break;
case ActivityAction.like:
if (type == ActivityType.comment)
{
title = string.Format(Translation.ActivityLikedComment, userName, activity.Shout.User.Username, itemName);
}
else if (type == ActivityType.list)
{
title = string.Format(Translation.ActivityLikedList, userName, itemName);
}
break;
}
// remove user name from your own feed, its not needed - you know who you are
if ((ActivityView)TraktSettings.ActivityStreamView == ActivityView.me && title.StartsWith(TraktSettings.Username))
title = title.Replace(TraktSettings.Username + " ", string.Empty);
return title;
}