mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
69 lines
3.4 KiB
C#
69 lines
3.4 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: ZuneUI.DownloadManagerHelper
|
|
// Assembly: ZuneShell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
|
// MVID: FC8028F3-A47B-4FB4-B35B-11D1752D8264
|
|
// Assembly location: C:\Program Files\Zune\ZuneShell.dll
|
|
|
|
using Microsoft.Zune.Util;
|
|
using System;
|
|
using System.Collections;
|
|
|
|
namespace ZuneUI
|
|
{
|
|
public static class DownloadManagerHelper
|
|
{
|
|
public static void RetryDownloading(IList items)
|
|
{
|
|
if (items == null || items.Count == 0)
|
|
return;
|
|
ArrayList arrayList1 = new ArrayList(items.Count);
|
|
ArrayList arrayList2 = new ArrayList(items.Count);
|
|
Microsoft.Zune.Service.EDownloadFlags eDownloadFlags = Microsoft.Zune.Service.EDownloadFlags.None;
|
|
string str = null;
|
|
for (int index = 0; index < items.Count; ++index)
|
|
{
|
|
if (items[index] is DownloadTask task)
|
|
{
|
|
switch (task.GetState())
|
|
{
|
|
case EDownloadTaskState.DLTaskCancelled:
|
|
case EDownloadTaskState.DLTaskFailed:
|
|
switch (Microsoft.Zune.Service.Service.Instance.GetContentType(task.GetProperty("Type")))
|
|
{
|
|
case Microsoft.Zune.Service.EContentType.MusicTrack:
|
|
case Microsoft.Zune.Service.EContentType.Video:
|
|
case Microsoft.Zune.Service.EContentType.App:
|
|
Microsoft.Zune.Service.EDownloadFlags propertyInt = (Microsoft.Zune.Service.EDownloadFlags)task.GetPropertyInt("DownloadFlags");
|
|
string property = task.GetProperty("DeviceEndpointId");
|
|
bool flag1 = index == 0;
|
|
bool flag2 = eDownloadFlags == propertyInt;
|
|
bool flag3 = string.Equals(str, property, StringComparison.InvariantCultureIgnoreCase);
|
|
if (flag1 || flag2 && flag3)
|
|
{
|
|
eDownloadFlags = propertyInt;
|
|
str = property;
|
|
arrayList2.Add(task);
|
|
DownloadManager.Instance.RemoveFailed(task);
|
|
continue;
|
|
}
|
|
arrayList1.Add(task);
|
|
continue;
|
|
case Microsoft.Zune.Service.EContentType.PodcastEpisode:
|
|
EpisodeDownloadCommand.DownloadEpisode(task.GetPropertyInt("SubscriptionId"), task.GetPropertyInt("MediaId"));
|
|
DownloadManager.Instance.RemoveFailed(task);
|
|
continue;
|
|
default:
|
|
continue;
|
|
}
|
|
default:
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
if (arrayList2.Count > 0)
|
|
Download.Instance.DownloadContent(arrayList2, eDownloadFlags, str);
|
|
RetryDownloading(arrayList1);
|
|
}
|
|
}
|
|
}
|