Files
ZuneShell.dll/ZuneUI/ApplicationLibraryPage.cs
T

150 lines
4.9 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneUI.ApplicationLibraryPage
// 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 System;
using System.Collections;
namespace ZuneUI
{
public class ApplicationLibraryPage : LibraryPage
{
private ApplicationsPanel _applicationsPanel;
private object _selectedApplication;
private IList _selectedApplicationIDs;
public ApplicationLibraryPage()
: this(false)
{
}
protected override void OnDispose(bool disposing) => base.OnDispose(disposing);
public ApplicationLibraryPage(bool showDevice)
: base(showDevice, MediaType.Application)
{
this.UI = LibraryTemplate;
if (showDevice)
{
this.UIPath = "Device\\Applications";
this.PivotPreference = Shell.MainFrame.Device.Applications;
Deviceland.InitDevicePage(this);
}
else
{
this.UIPath = "Collection\\Applications";
this.PivotPreference = Shell.MainFrame.Collection.Applications;
}
this.IsRootPage = true;
this.ShowPlaylistIcon = false;
this.ShowCDIcon = false;
this.TransportControlStyle = TransportControlStyle.None;
this._applicationsPanel = new ApplicationsPanel(this);
}
public ApplicationsPanel ApplicationsPanel => this._applicationsPanel;
public object SelectedApplication
{
get => this._selectedApplication;
set
{
if (this._selectedApplication == value)
return;
this._selectedApplication = value;
this.FirePropertyChanged(nameof(SelectedApplication));
}
}
public IList SelectedApplicationIDs
{
get => this._selectedApplicationIDs;
set
{
if (this._selectedApplicationIDs == value)
return;
this._selectedApplicationIDs = value;
this.FirePropertyChanged(nameof(SelectedApplicationIDs));
}
}
protected override void OnNavigatedToWorker()
{
if (this.NavigationArguments != null)
{
if (this.NavigationArguments.Contains("ApplicationLibraryId"))
this._selectedApplicationIDs = (new int[1]
{
(int) this.NavigationArguments[ "ApplicationLibraryId"]
});
this.NavigationArguments = null;
}
base.OnNavigatedToWorker();
}
protected override void OnNavigatedAwayWorker(IPage destination)
{
base.OnNavigatedAwayWorker(destination);
this.SelectedApplication = null;
}
public static void FindInCollection(int applicationId) => ZuneShell.DefaultInstance.Execute("Collection\\Applications", new Hashtable()
{
{
"ApplicationLibraryId",
applicationId
}
});
public static bool DoesApplicationNeedUpdate(int applicationId, string serviceVersionString)
{
if (string.IsNullOrEmpty(serviceVersionString))
return false;
Version version = null;
return TryParseVersion(serviceVersionString, out version) && DoesApplicationNeedUpdate(applicationId, version);
}
public static bool DoesApplicationNeedUpdate(int applicationId, Version serviceVersion)
{
if (null == serviceVersion)
return false;
bool flag = false;
string fieldValue = PlaylistManager.GetFieldValue(applicationId, EListType.eAppList, 376, (string)null);
if (!string.IsNullOrEmpty(fieldValue))
{
Version version = null;
if (TryParseVersion(fieldValue, out version) && version < serviceVersion)
flag = true;
}
return flag;
}
private static bool TryParseVersion(string versionString, out Version version)
{
bool flag = false;
version = null;
try
{
version = new Version(versionString);
flag = true;
}
catch (ArgumentException ex)
{
}
catch (FormatException ex)
{
}
catch (OverflowException ex)
{
}
return flag;
}
public override IPageState SaveAndRelease() => new ApplicationPageState(this);
private static string LibraryTemplate => "res://ZuneShellResources!ApplicationLibrary.uix#ApplicationLibrary";
}
}