public static async Task<ViewModelBase> Next(LinkViewModel parentLink, ViewModelBase currentActual)
{
if (parentLink != null)
{
var viewModelContextService = ServiceLocator.Current.GetInstance<IViewModelContextService>();
var firstRedditViewModel = viewModelContextService.ContextStack.FirstOrDefault(context => context is RedditViewModel) as RedditViewModel;
if (firstRedditViewModel != null)
{
RepositionContextScroll(parentLink);
var imagesService = ServiceLocator.Current.GetInstance<IImagesService>();
var offlineService = ServiceLocator.Current.GetInstance<IOfflineService>();
var settingsService = ServiceLocator.Current.GetInstance<ISettingsService>();
ViewModelBase stackNext = null;
if (settingsService.OnlyFlipViewUnread && (stackNext = LinkHistory.Forward()) != null)
{
return stackNext;
}
else
{
var currentLinkPos = firstRedditViewModel.Links.IndexOf(parentLink);
var linksEnumerator = new NeverEndingRedditView(firstRedditViewModel, currentLinkPos, true);
var result = await MakeContextedTuple(imagesService, offlineService, settingsService, linksEnumerator);
LinkHistory.Push(currentActual);
return result;
}
}
}
return null;
}